首页 > 解决方案 > 使用 Dolfin 创建一维网格

问题描述

我正在修改代码来求解 Poisson-Nernst-Planck 方程,并尝试在 Python 中使用 Dolfin 创建一维区间网格。网格对应于不同的扩散层长度。在原始代码中,将扩散层长度转换为网格尺寸似乎对应于 v = 100x + 990,其中 x 是所需的扩散层长度(微米),v 是间隔数。下面是我的代码:

from dolfin import *

def gen_mesh(L_n):
    #linear extrapolation for vertices
    v = 100*L_n+990
    
    #generate mesh
    mesh = UnitIntervalMesh(v)
    
    #save mesh to xml.gz file
    file = File('1D_variable_'+ str(L_n) + 'um_mesh_test1_' + str(v) + '.xml.gz')
    file<< mesh

#system length, micrometers    
L_n = 60

#run the function
gen_mesh(L_n) 

但是,当我根据代码附带的网格测试生成的网格时,网格是非常不同的。其中一个代码输入如下所示:

    parser.add_argument(
        '--mesh_structure',
        metavar='bias in mesh structure',
        required=False,
        help='str, uniform/variable',
        default='variable',
        type=str
    )

我不确定网格间隔是否可变,或者此输入可能与我生成网格的方式相关。我对 Dolfin/Fenics 真的很陌生,提前感谢任何帮助/提示!

标签: pythonmeshfenics

解决方案


推荐阅读