假设我对基于 Python 的有限元包Nutils 完全陌生,哪些示例代码可以帮助我入门?
Nuutils '你好世界!
计算科学
有限元
nutils
2021-12-20 18:17:24
1个回答
以下功能齐全的脚本解决了标量值字段的拉普拉斯问题, 这样对于所有测试函数:
在哪里是具有 Neumann 条件的单位平方域在右边界, 齐次狄利克雷条件下边界上,其余边界上的自然边界条件。使用 8x8 计算网格上的二次样条基函数对空间进行离散化。
from nutils import mesh, function, plot
# prepare domain, geometry, basis
domain, geom = mesh.rectilinear( [range(9),range(9)] )
basis = domain.basis( 'spline', degree=2 )
# construct matrix, right hand side, constraints
matrix = domain.integrate( basis['i,k'] * basis['j,k'], geometry=geom, ischeme='gauss2' )
rhs = domain.boundary['right'].integrate( basis, geometry=geom, ischeme='gauss2' )
con = domain.boundary['bottom'].project( 0, onto=basis, geometry=geom, ischeme='gauss2' )
# solve system
lhs = matrix.solve( rhs, constrain=con )
sol = basis.dot( lhs )
# plot solution
points, colors = domain.elem_eval( [geom, sol], ischeme='bezier9', separate=True )
with plot.PyPlot( 'solution' ) as plt:
plt.mesh( points, colors )
plt.colorbar()
运行此代码会生成以下解决方案图:
然后去哪儿?
其它你可能感兴趣的问题
