add test cases for fix massflow/mesh + multisphere

test multiple massflow/mesh fixes with multisphere particles
test restarting of massflow/mesh fixes with multisphere particles
This commit is contained in:
danielque
2024-01-12 12:30:00 +01:00
parent 3ea7d0c825
commit 58bb93ec72
5 changed files with 241 additions and 0 deletions

View File

@ -0,0 +1,50 @@
36.8556 10.4008 16.2552 10.434
26.5761 9.54421 17.9684 9.81478
17.1532 9.54421 21.395 8.92069
34.2857 9.54421 26.5347 8.45937
46.2785 12.1141 20.5383 7.31974
25.7195 8.68758 28.248 7.28422
14.5833 7.83095 29.9612 6.43447
42.852 7.83095 25.6781 6.19172
8.58691 8.68758 23.9648 5.85956
29.146 12.1141 8.54554 5.77566
31.7158 6.97433 34.2444 5.37241
20.5797 6.97433 33.3877 5.22549
24.0062 15.5406 10.2588 5.13666
37.7122 6.1177 34.2444 4.73175
18.8664 14.684 13.6853 4.66912
25.7195 6.1177 35.101 4.44866
41.9954 13.8273 27.3913 4.41894
9.44353 14.684 20.5383 4.00812
33.4291 6.97433 6.83229 3.85622
7.73028 6.1177 29.9612 3.79948
30.8592 3.54782 11.1154 3.70243
35.1424 5.26107 38.5275 3.66942
44.5653 4.40444 20.5383 3.64039
52.2749 15.5406 17.1118 3.63813
47.1351 9.54421 13.6853 3.63644
29.146 17.2539 11.9721 3.58692
45.4219 18.1105 16.2552 3.5797
50.5616 18.1105 19.6817 3.41284
30.8592 5.26107 39.3841 3.37012
28.2893 15.5406 25.6781 3.36273
27.4327 5.26107 39.3841 3.32772
49.705 6.97433 24.8215 3.23261
19.7231 2.69119 16.2552 3.20584
41.9954 5.26107 31.6745 3.20311
3.44714 6.1177 25.6781 3.18808
46.2785 5.26107 17.1118 3.13116
22.2929 5.26107 38.5275 3.06026
41.1387 8.68758 31.6745 3.05632
14.5833 5.26107 35.9576 3.04383
23.1496 10.4008 8.54554 3.00958
20.5797 3.54782 27.3913 3.00137
39.4255 3.54782 29.9612 2.98994
39.4255 16.3972 24.8215 2.9567
39.4255 2.69119 23.1082 2.95111
11.1568 12.9707 27.3913 2.90849
10.3002 5.26107 34.2444 2.84552
45.4219 10.4008 10.2588 2.82964
20.5797 11.2575 10.2588 2.8207
24.0062 5.26107 41.0974 2.81971
14.5833 16.3972 15.3986 2.81899

View File

@ -0,0 +1,78 @@
# 3D periodic bin: measure mass flow of multispheres at 2 levels in the domain
atom_style granular
atom_modify map array sort 0 0
boundary f f p
newton off
communicate single vel yes
processors * 1 1
units si
region reg block -0.021 0.021 -0.021 0.021 0.0 0.2 units box
create_box 1 reg
neighbor 0.00025 bin
neigh_modify delay 0
# material properties required for pair style
fix m1 all property/global youngsModulus peratomtype 1.e8
fix m2 all property/global poissonsRatio peratomtype 0.35
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.9
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
# pair style
pair_style gran model hertz tangential history
pair_coeff * *
timestep 0.000001
# particle insertion
region ins_reg block -0.02 0.02 -0.02 0.02 0.005 0.195 units box
fix pts1 all particletemplate/multisphere 1 atom_type 1 density constant 2500 nspheres 50 ntry 1000000 spheres file data/stone1.multisphere scale 0.0005 type 1
fix pdd1 all particledistribution/discrete 127981 1 pts1 1.0
fix ins all insert/pack seed 100001 distributiontemplate pdd1 vel constant 0. 0. -0.5 &
insert_every once overlapcheck yes region ins_reg ntry_mc 10000 volumefraction_region 0.04
# integrator
fix integr all multisphere
# surface mesh for mass flow measurement
fix surface_mf1 all mesh/surface file meshes/massflow.stl type 1 scale 1.0 move 0.0 0.0 0.110
fix surface_mf2 all mesh/surface file meshes/massflow.stl type 1 scale 1.0 move 0.0 0.0 0.002
# mass flow measurement
# count particles only once, define outside by 3D point 'on the outside'
fix massflow1 all massflow/mesh mesh surface_mf1 count once point_at_outlet 0.0 0.0 0.0 file post/massflow1_particle_data.txt
fix massflow2 all massflow/mesh mesh surface_mf2 count once point_at_outlet 0.0 0.0 0.0 file post/massflow2_particle_data.txt
variable time equal step*dt # current simulation time (step and dt are built-in variables)
variable m1 equal f_massflow1[1] # total mass that has crossed the mesh since simulation start
variable np1 equal f_massflow1[2] # total number of particles that have crossed the mesh since simulation start
variable mdot1 equal f_massflow1[3] # current mass flow
variable npdot1 equal f_massflow1[4] # current particle flow rate
variable m2 equal f_massflow2[1] # total mass that has crossed the mesh since simulation start
variable np2 equal f_massflow2[2] # total number of particles that have crossed the mesh since simulation start
variable mdot2 equal f_massflow2[3] # current mass flow
variable npdot2 equal f_massflow2[4] # current particle flow rate
fix pmassout1 all print 5000 "${time} ${m1} ${np1} ${mdot1} ${npdot1}" screen no title "#t mass particles massflow particlerate" file post/massflow1.txt
fix pmassout2 all print 5000 "${time} ${m2} ${np2} ${mdot2} ${npdot2}" screen no title "#t mass particles massflow particlerate" file post/massflow2.txt
# output settings
thermo_style custom step atoms ke
thermo 2000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
run 1
dump dmp all custom 2000 post/periodic_bin_ms_*.massflow id type radius mass x y z vx vy vz
run 200000 upto
write_restart post/restart/massflow_ms.restart

View File

@ -0,0 +1,74 @@
# 3D periodic bin: measure mass flow of multispheres at 2 levels in the domain
atom_style granular
atom_modify map array sort 0 0
boundary f f p
newton off
communicate single vel yes
processors * 1 1
units si
region reg block -0.021 0.021 -0.021 0.021 0.0 0.2 units box
read_restart post/restart/massflow_ms.restart
neighbor 0.00025 bin
neigh_modify delay 0
# material properties required for pair style
fix m1 all property/global youngsModulus peratomtype 1.e8
fix m2 all property/global poissonsRatio peratomtype 0.35
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.9
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
# pair style
pair_style gran model hertz tangential history
pair_coeff * *
timestep 0.000001
# particle insertion
region ins_reg block -0.02 0.02 -0.02 0.02 0.005 0.195 units box
fix pts1 all particletemplate/multisphere 1 atom_type 1 density constant 2500 nspheres 50 ntry 1000000 spheres file data/stone1.multisphere scale 0.0005 type 1
fix pdd1 all particledistribution/discrete 127981 1 pts1 1.0
fix ins all insert/pack seed 100001 distributiontemplate pdd1 vel constant 0. 0. -0.5 &
insert_every once overlapcheck yes region ins_reg ntry_mc 10000 volumefraction_region 0.04
# integrator
fix integr all multisphere
# surface mesh for mass flow measurement
fix surface_mf1 all mesh/surface file meshes/massflow.stl type 1 scale 1.0 move 0.0 0.0 0.110
fix surface_mf2 all mesh/surface file meshes/massflow.stl type 1 scale 1.0 move 0.0 0.0 0.002
# mass flow measurement
# count particles only once, define outside by 3D point 'on the outside'
fix massflow1 all massflow/mesh mesh surface_mf1 count once point_at_outlet 0.0 0.0 0.0 append post/massflow1_particle_data.txt
fix massflow2 all massflow/mesh mesh surface_mf2 count once point_at_outlet 0.0 0.0 0.0 append post/massflow2_particle_data.txt
variable time equal step*dt # current simulation time (step and dt are built-in variables)
variable m1 equal f_massflow1[1] # total mass that has crossed the mesh since simulation start
variable np1 equal f_massflow1[2] # total number of particles that have crossed the mesh since simulation start
variable mdot1 equal f_massflow1[3] # current mass flow
variable npdot1 equal f_massflow1[4] # current particle flow rate
variable m2 equal f_massflow2[1] # total mass that has crossed the mesh since simulation start
variable np2 equal f_massflow2[2] # total number of particles that have crossed the mesh since simulation start
variable mdot2 equal f_massflow2[3] # current mass flow
variable npdot2 equal f_massflow2[4] # current particle flow rate
fix pmassout1 all print 5000 "${time} ${m1} ${np1} ${mdot1} ${npdot1}" screen no title none append post/massflow1.txt
fix pmassout2 all print 5000 "${time} ${m2} ${np2} ${mdot2} ${npdot2}" screen no title none append post/massflow2.txt
# output settings
thermo_style custom step atoms ke
thermo 2000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
dump dmp all custom 2000 post/periodic_bin_ms_*.massflow id type radius mass x y z vx vy vz
run 500000 upto

View File

@ -0,0 +1,39 @@
{
"runs": [
{
"name" : "periodic_massflow_mesh_ms",
"input_script" : "in.periodic_bin_flow_ms",
"type" : "serial",
"data" : {
"series" : [
{"name" : "massflow1", "file" : "massflow1.txt", "columns" : ["t", "mass", "particles", "massrate", "particlerate"]},
{"name" : "massflow2", "file" : "massflow2.txt", "columns" : ["t", "mass", "particles", "massrate", "particlerate"]}
],
"plots" : [
{"name" : "massflowmass", "title" : "Total Mass", "xdata" : "massflow1.t", "ydata" : ["massflow1.mass","massflow2.mass"], "xlabel" : "time [s]", "ylabel" : "mass [kg]", "legend" : ["upper plane","lower plane"]},
{"name" : "massflowparticles", "title" : "Total Particles", "xdata" : "massflow1.t", "ydata" : ["massflow1.particles","massflow2.particles"], "xlabel" : "time [s]", "ylabel" : "particles [-]", "legend" : ["upper plane","lower plane"]},
{"name" : "massflowmassrate", "title" : "Mass Flow Rate", "xdata" : "massflow1.t", "ydata" : ["massflow1.massrate","massflow2.massrate"], "xlabel" : "time [s]", "ylabel" : "mass flow rate [kg/s]", "legend" : ["upper plane","lower plane"]},
{"name" : "massflowparticlerate", "title" : "Particle Rate", "xdata" : "massflow1.t", "ydata" : ["massflow1.particlerate","massflow2.particlerate"], "xlabel" : "time [s]", "ylabel" : "particle rate [1/s]", "legend" : ["upper plane","lower plane"]}
]
}
},
{
"name" : "periodic_massflow_mesh_ms_restart",
"depends_on" : "periodic_massflow_mesh_ms",
"input_script": "in.periodic_bin_flow_ms_restart",
"type": "serial",
"data" : {
"series" : [
{"name" : "massflow1", "file" : "massflow1.txt", "columns" : ["t", "mass", "particles", "massrate", "particlerate"]},
{"name" : "massflow2", "file" : "massflow2.txt", "columns" : ["t", "mass", "particles", "massrate", "particlerate"]}
],
"plots" : [
{"name" : "massflowmass", "title" : "Total Mass", "xdata" : "massflow1.t", "ydata" : ["massflow1.mass","massflow2.mass"], "xlabel" : "time [s]", "ylabel" : "mass [kg]", "legend" : ["upper plane","lower plane"]},
{"name" : "massflowparticles", "title" : "Total Particles", "xdata" : "massflow1.t", "ydata" : ["massflow1.particles","massflow2.particles"], "xlabel" : "time [s]", "ylabel" : "particles [-]", "legend" : ["upper plane","lower plane"]},
{"name" : "massflowmassrate", "title" : "Mass Flow Rate", "xdata" : "massflow1.t", "ydata" : ["massflow1.massrate","massflow2.massrate"], "xlabel" : "time [s]", "ylabel" : "mass flow rate [kg/s]", "legend" : ["upper plane","lower plane"]},
{"name" : "massflowparticlerate", "title" : "Particle Rate", "xdata" : "massflow1.t", "ydata" : ["massflow1.particlerate","massflow2.particlerate"], "xlabel" : "time [s]", "ylabel" : "particle rate [1/s]", "legend" : ["upper plane","lower plane"]}
]
}
}
]
}