我正在修改代码来求解 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 真的很陌生,提前感谢任何帮助/提示!