1 Star 3 Fork 1

GeoXuefengPeng / MPM_Basic

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
MainMPM.py 1.73 KB
一键复制 编辑 原始数据 按行查看 历史
GeoXuefengPeng 提交于 2024-05-03 16:23 . Initial commit
import taichi as ti
import Scr.DebugTool as Debug
import Scr.WriteVTK as WV
import Scr.MPMSolver as MPM
from Scr.ReadControl import ReadControlFile
from Scr.ReadEleNod import KeepingHome_MPM
from Scr.Global import Global
ti.init(arch=ti.cuda, default_fp=ti.f64) # Try to run on GPU
# ti.init(arch=ti.cpu,
# default_fp=ti.f64)
# >================================= 1 Initial Phase =================================<#
# >------- 1.1 Project Base Information ------<#
ProjectName = "Dam"
GL = Global(ProjectName)
# >------- 1.2 Read Control File ------<#
CF = ReadControlFile(GL.ControlFile_IN)
# >------- 1.3 Creat MPM Information------<#
MPM_GPU = KeepingHome_MPM(GL, CF)
MPM_GPU.Taichi2VTK(GL.ParIniFile_OUT) # Initial Particle
CF.IsMixIT = 0
CF.IsLiq = 0
CF.OutTimeFrequency = 1e-3
CF.OutTimeLevel = CF.OutTimeFrequency
# >================================= 2 Calculation Phase =================================<#
while CF.Convergence[None] >= CF.FinalConvergence:
# >------------------- 2.1 Lagrangian Phase -------------------<#
MPM.LG_OnePhase(MPM_GPU)
# >--------------------- 2.2 Convection Phase ---------------------<#
MPM.COV_OnePhase(MPM_GPU)
# >--------------------- 2.3 Convergence Phase ---------------------<#
CF.CalNode_Conver_MPM(MPM_GPU.NodeForce,
MPM_GPU.NodeForceEx)
# >--------------------- 2.3 Circle Phase ---------------------<#
CF.CurTime = CF.CurTime + CF.StepTime
CF.OutCount += 1
# >================================= 3 Output Phase =================================<#
print("Convergence: ", CF.Convergence[None])
if CF.OutCount % 50 == 0:
OutFileName = GL.FileAddress_OUT + "\\" + ProjectName + str(CF.OutCount)
MPM_GPU.Taichi2VTK(OutFileName)
1
https://gitee.com/geoxuefengpeng/MPM_Basic.git
git@gitee.com:geoxuefengpeng/MPM_Basic.git
geoxuefengpeng
MPM_Basic
MPM_Basic
master

搜索帮助