190 likes | 617 Views
DEM 理论. 开源软件学习. DEM 理论. 颗粒相 - 离散单元法. 平动方程:. 或. 转动方程:. 气相 - 连续介质. 质量方程:. 动量方程:. 确定性颗粒轨道模型中处理颗粒碰撞的基本模型有硬球模型、软球模型以及 DSMC 方法. 硬球模型(多用于快速颗粒流动系统). 在硬球模型中,需要从大量颗粒中找出最先发生碰撞的颗粒对. 软球模型(多用于准静态系统). 线性模型. 法向作用力. 切向作用力. 非线性模型( Simplified Hertz–Mindlin and Deresiewicz model ). 接触时间. 一阶数值微分公式.
E N D
DEM理论 开源软件学习
DEM理论 颗粒相-离散单元法 平动方程: 或 转动方程:
气相-连续介质 质量方程: 动量方程:
确定性颗粒轨道模型中处理颗粒碰撞的基本模型有硬球模型、软球模型以及DSMC方法确定性颗粒轨道模型中处理颗粒碰撞的基本模型有硬球模型、软球模型以及DSMC方法 硬球模型(多用于快速颗粒流动系统)
在硬球模型中,需要从大量颗粒中找出最先发生碰撞的颗粒对在硬球模型中,需要从大量颗粒中找出最先发生碰撞的颗粒对
软球模型(多用于准静态系统) 线性模型 法向作用力
一阶数值微分公式 不足: 相间耦合
开源软件 LIGGGHTS LAMMPS improved for general granular and granular heat transfer simulations OpenFOAM
LIGGGHTS与LAMMPS LIGGGHTS is based on LAMMPS,and so is its manual. LAMMPS编译及计算 首先到~lammps/src/STUBS目录下, 输入make, 回车。然后返回到~lammps/src/目录下, 输入make serial, 回车. 把 in.name文件和编译得到的lmp_serial放在同一个目录下, 如~/Desktop/compute/. 从终端进入到这个目录, 然后, 在终端输入 ./lmp_serial < in.name 回车. 你就会发现lammps开始计算了
语法规则: • 命令行后的 & 表示这一行跟下一行是同一条命令. 这一点跟FORTRAN很像. • 命令行最开始的 # 表示这一行在执行过程中被忽略, 你可以用它来写注释. • $ 是跟声明变量有关系的 • 命令行被tabs, spaces间隔成各个“words”, 注意这里的“words”可以包含 • 字母、数字、下划线、或标点符号. • 一行中第一个词是命令名, 后续的词是相关的参数. • 双引号内的文字空格被整体地当作一个参数
lammps的输入文件 (1) Initialization 在你的模拟体系定义之前, 一些参数必须要被设置. 相关的命令有:units, dimension, newton, processors, boundary, atom_style, atom_modify. (2) Atom definition lammps提供3种方式定义原子: ①从data或restart文件读入 ②按照晶格的方式创建原子 ③复制 (3)Settings 原子和分子的拓扑信息定义好后, 你要制定一系列的设置: 力场系数、模拟参数、输出选项 等等 (4)Run a simulation 使用run命令开始一个分子动力学模拟, 用minimize命令来实施能量最小化(molecular statics), 使用temper命令来进行parallel tempering(replica-exchange) simulation.
# Find minimum energy fcc configuration # Mark Tschopp, 2010 # ---------- Initialize Simulation --------------------- clear units metal dimension 3 boundary p p p atom_style atomic atom_modify map array # ---------- Create Atoms --------------------- lattice fcc 4 region box block 0 1 0 1 0 1 units lattice create_box 1 box lattice fcc 4 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1 create_atoms 1 box replicate 1 1 1 # ---------- Define Interatomic Potential --------------------- pair_style eam/alloy pair_coeff * * Al99.eam.alloy Al neighbor 2.0 bin neigh_modify delay 10 check yes # ---------- Define Settings --------------------- compute eng all pe/atom compute eatoms all reduce sum c_eng # ---------- Run Minimization --------------------- reset_timestep 0 fix 1 all box/relax iso 0.0 vmax 0.001 thermo 10 thermo_style custom step pe lx ly lz press pxx pyy pzz c_eatoms min_style cg minimize 1e-25 1e-25 5000 10000 variable natoms equal "count(all)" variable teng equal "c_eatoms" variable length equal "lx" variable ecoh equal "v_teng/v_natoms“ print "Total energy (eV) = ${teng};" print "Number of atoms = ${natoms};" print "Lattice constant (Angstoms) = ${length};" print "Cohesive energy (eV) = ${ecoh};" print "All done!"
Lid-driven cavity flow Pre-processing Viewing the mesh Running an application Post-processing Increasing the mesh resolution Introducing mesh grading Increasing the Reynolds number High Reynolds number flow Changing the case geometry Post-processing the modified geometry
下步计划: 软件学习方面: 先做完OpenFOAM的三个例子,学习其UserGuide。 学习LAMMPS手册,掌握常用命令的含义及用法。 理论学习方面: 阅读文章:A computational framework for coupled modelling of three-phase systems with soluble surfactants 阅读OpenFOAM的相关论文