二维曲线网格上的Python-Poisson求解器
calcifer-pde的Python项目详细描述
方解石
在建
Calcifer是二维结构I.J网格上的类Poisson偏微分方程有限差分求解器。 网格是曲线的。在
- 创建一个Geometry对象。在
- 基于这个几何体定义计算域。在
- 解决问题。热传导是来自Calcifer的HeatSolve的解算器。在
热扩散,calcifer求解器
用方解石进行的热扩散试验如下:
fromcalcifer_pde.domainimportDomainfromcalcifer_pde.geometryimportSquaredefheat_solve(dom,k_coeff=1.0):init_field=np.random.random_sample(dom.shp1d)sterm_l=np.zeros_like(dom.lapl)sterm_r=np.zeros(dom.shp1d)# Left Hand Sidelhs_csr=dom.lapl*k_coeff+sterm_l# Right-Hand Siderhs_csr=np.zeros(dom.shp1d)+sterm_rlhs_csr_bc,rhs_csr_bc,grad_n_bc=apply_bc(dom,lhs_csr,rhs_csr)out_1d,info=scp.linalg.bicgstab(lhs_csr_bc,rhs_csr_bc,x0=init_field)ifinfo==0:print(". ^_^ Resolution succesfull.")elifinfo>0:print(". t(-_-t) Resolution failed.")else:print(". =_= Convergence not reached.")temp=out_1d.reshape(dom.shp2d)returntempgeo=Square(nx=80,ny=100,len_x=1.0,len_y=1.0)dom=Domain(geo)dom.switch_bc_vmax_neuman(0.0)dom.switch_bc_vmin_neuman(0.0)dom.switch_bc_umin_dirichlet(200.0)dom.switch_bc_umax_dirichlet(100.0)sol=heat_solve(dom,k_coeff=22.0)
可以通过创建与heat solve
不同的问题来解决另一个PDE
- 项目
标签: