二维曲线网格上的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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何读取、验证和移动数据。csv文件?   用于在线蛇游戏的java解析scaing   java JavaFX:在窗口上移动元素(阶段)调整大小   mysql如何使用java中的IOUtils包在jsp中显示多个图像?   Java dateFormat不可解析日期异常   spring mvc java。执行单元测试时lang.AssertionError   java在一个webapp中运行多个调度器有什么问题吗?   JAVAlang.ArrayIndexOutofBounds异常:1未来。get()多线程   java使用MDC或spring boot中的任何过滤器屏蔽日志消息中的密码,而不使用logback。xml文件   与应用服务器的java AJP和SSL通信   java Hibernate更新列表中的特定对象   Java小程序:使用keylistener移动多边形   java访问是一个独立于MainActivity的进程   来自服务器的java重复密钥或完整性约束冲突消息:“列“volume”不能为null”   java是否有任何方法可以确保在Flink on job cancel with savepoint上通知所有检查点侦听器检查点完成?