python - 使用 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 真的很陌生,提前感谢任何帮助/提示!
解决方案
推荐阅读
- python - 我们什么时候调用 de-facto 装饰器中的内部函数?
- php - 如何获得运行该函数的函数?
- html - 如何使用 ngFor 迭代 Map 并在 Angular 2+ 中的 html 上按顺序显示它们?
- php - 此 php 登录代码始终不返回任何内容
- asp.net - 如果单元测试项目引用了 Microsoft.NET.Test.Sdk,.NET Core 2.2 Web 应用程序崩溃
- openssl - 在 MacOS 上安装 pycurl。(链接时 ssl 后端(无/其他)与编译时 ssl 后端(openssl)不同)
- getline - 为什么在第二次迭代中跳过第一个字符
- php - VS Code - PHP 全部自动完成
- ibm-mq - 模拟 MQSeries 服务器
- python - 从 for 循环中的数据框中选择各种日期范围