Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add checkpoint to DEM solid objects #959

Merged
merged 14 commits into from
Dec 11, 2023
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions applications_tests/lethe-particles/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,18 @@ file(COPY periodic_gmsh_files/pipe.msh DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/
file(COPY load_balancing_solid_object_files/square.msh DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/load_balancing_solid_object.${_build_type}")
file(COPY moving_float_files/square.msh DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/moving_float.${_build_type}")

file(COPY moving_receptacle_files/restart.particles DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/restart_moving_receptacle.${_build_type}")
file(COPY moving_receptacle_files/restart.pvdhandler DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/restart_moving_receptacle.${_build_type}")
file(COPY moving_receptacle_files/restart.simulationcontrol DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/restart_moving_receptacle.${_build_type}")
file(COPY moving_receptacle_files/restart.triangulation DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/restart_moving_receptacle.${_build_type}")
file(COPY moving_receptacle_files/restart.triangulation.info DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/restart_moving_receptacle.${_build_type}")
file(COPY moving_receptacle_files/restart.triangulation_fixed.data DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/restart_moving_receptacle.${_build_type}")
file(COPY moving_receptacle_files/restart.triangulation_variable.data DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/restart_moving_receptacle.${_build_type}")
file(COPY moving_receptacle_files/square.msh DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/restart_moving_receptacle.${_build_type}")
file(COPY moving_receptacle_files/restart.solid_object.00.displacement DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/restart_moving_receptacle.${_build_type}")
file(COPY moving_receptacle_files/restart.solid_object.00.dof DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/restart_moving_receptacle.${_build_type}")
file(COPY moving_receptacle_files/restart.solid_object.00.pvdhandler DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/restart_moving_receptacle.${_build_type}")

deal_ii_pickup_tests()

if(CMAKE_BUILD_TYPE STREQUAL "Debug")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
# Listing of Parameters
#----------------------

set dimension = 3

#---------------------------------------------------
# Simulation Control
#---------------------------------------------------

subsection simulation control
set time step = 5e-5
set time end = .7
set log frequency = 500
set output frequency = 0
set output path = ./output/
set output boundaries = false
end

#---------------------------------------------------
# Model parameters
#---------------------------------------------------

subsection model parameters
subsection contact detection
set contact detection method = dynamic
set dynamic contact search size coefficient = 0.9
set neighborhood threshold = 1.3
end
subsection load balancing
set load balance method = none
set frequency = 10000
end
set particle particle contact force method = hertz_mindlin_limit_overlap
set rolling resistance torque method = constant_resistance
set particle wall contact force method = nonlinear
set integration method = velocity_verlet
end

#---------------------------------------------------
# Physical Properties
#---------------------------------------------------

subsection lagrangian physical properties
set gx = 9.81
set gy = 0
set gz = 0.0
set number of particle types = 1
subsection particle type 0
set size distribution type = uniform
set diameter = 0.01
set number of particles = 100
set density particles = 2560
set young modulus particles = 1e6
set poisson ratio particles = 0.2
set restitution coefficient particles = 0.5
set friction coefficient particles = 0.5
set rolling friction particles = 0.3
end
set young modulus wall = 1e6
set poisson ratio wall = 0.2
set restitution coefficient wall = 0.9
set friction coefficient wall = 0.5
set rolling friction wall = 0.3
end

#---------------------------------------------------
# Insertion Info
#---------------------------------------------------

subsection insertion info
set insertion method = volume
set inserted number of particles at each time step = 600
set insertion frequency = 10000
set insertion box minimum x = 0.0025
set insertion box minimum y = 0.0025
set insertion box minimum z = 0.0025
set insertion box maximum x = 0.597
set insertion box maximum y = 0.340
set insertion box maximum z = 0.397
set insertion distance threshold = 1.075
set insertion random number range = 0.025
set insertion random number seed = 19
end

#---------------------------------------------------
# Insertion Info
#---------------------------------------------------

subsection restart
# Checkpointing parameters
set checkpoint = true
set frequency = 14000

# Output/input files
set filename = restart

# Restarting parameter
set restart = false
end


#---------------------------------------------------
# Mesh
#---------------------------------------------------

subsection mesh
set type = dealii
set grid type = subdivided_hyper_rectangle
set grid arguments = 2,1,1 : 0,0,0 : 0.8,0.4,0.4 : false
set initial refinement = 0
end

#---------------------------------------------------
# Solid Objects
#---------------------------------------------------

subsection solid objects
set number of solids = 1
subsection solid object 0
subsection mesh
set type = gmsh
set file name = square.msh
set simplex = true
set initial refinement = 0
end

subsection translational velocity
set Function expression = if(t>0.4,if(t<0.6,0.1,0),0) ; 0 ; 0
end
subsection angular velocity
set Function expression = 0 ; 0 ; 0
end
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0 0 100 100 100
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
0
Time File
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Simulation control
dt_0 5e-05
dt_1 5e-05
dt_2 5e-05
dt_3 5e-05
CFL 0
Time 0.7
Iter 14000
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22 serialization::archive 17 0 0 0 0 15 2.00000000000007880e-02 0.00000000000000000e+00 0.00000000000000000e+00 2.00000000000007880e-02 0.00000000000000000e+00 0.00000000000000000e+00 2.00000000000007880e-02 0.00000000000000000e+00 0.00000000000000000e+00 2.00000000000007880e-02 0.00000000000000000e+00 0.00000000000000000e+00 2.00000000000007880e-02 0.00000000000000000e+00 0.00000000000000000e+00
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22 serialization::archive 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 15 0 0 0 0 1 0 0 0 0 15 0 1 15 0 1 0 15 0 0 1 0 1 0 0 15 0 1 15 0 0 0 1 0 0 0 3 15 0 12 13 14 0 1 2 3 4 5 9 10 11 6 7 8 0 0 0 0 1 0 3 6 0 0 3 6 9 12 15 9 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 4 34 FESystem<2,3>[FE_SimplexP<2>(1)^3] 23 Policy::Sequential<2,3>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
0
Time File
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
version nproc n_attached_fixed_size_objs n_attached_variable_size_objs n_coarse_cells
5 1 0 1 2
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// Define a variable

lc = 1;
H=0.5;
W=0.4;
x0=0.6;


Point(0) = {x0, 0, 0, lc};
Point(1) = {x0, 0, W, lc};
Point(2) = {x0, H, W, lc};
Point(3) = {x0, H, 0, lc};

Line(0)={0,1};
Line(1)={1,2};
Line(2)={2,3};
Line(3)={3,0};

Line Loop(1) = {0,1,2,3};

Plane Surface(1) = {1} ;

Physical Surface(0) = {1};

Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
$MeshFormat
4.1 0 8
$EndMeshFormat
$Entities
4 4 1 0
0 0.6 0 0 0
1 0.6 0 0.4 0
2 0.6 0.5 0.4 0
3 0.6 0.5 0 0
0 0.6 0 0 0.6 0 0.4 0 2 0 -1
1 0.6 0 0.4 0.6 0.5 0.4 0 2 1 -2
2 0.6 0.5 0 0.6 0.5 0.4 0 2 2 -3
3 0.6 0 0 0.6 0.5 0 0 2 3 0
1 0.6 0 0 0.6 0.5 0.4 1 0 4 0 1 2 3
$EndEntities
$Nodes
5 5 1 5
0 0 0 1
1
0.6 0 0
0 1 0 1
2
0.6 0 0.4
0 2 0 1
3
0.6 0.5 0.4
0 3 0 1
4
0.6 0.5 0
2 1 0 1
5
0.6 0.25 0.2
$EndNodes
$Elements
1 4 1 4
2 1 2 4
1 2 3 5
2 4 1 5
3 1 2 5
4 3 4 5
$EndElements
130 changes: 130 additions & 0 deletions applications_tests/lethe-particles/restart_moving_receptacle.output
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@

*********************
Running on 1 rank(s)
*********************
DEM time-step is 3.69227% of Rayleigh time step
Reading triangulation

Finished reading triangulation
Warning: expansion of particle-wall contact list is disabled.
This feature is useful in geometries with concave boundaries.

*****************************************************************
Transient iteration: 14500 Time: 0.725 Time step: 5e-05
*****************************************************************
| Variable | Min | Max | Average | Total |
| Contact list generation | 0.0000e+00 | 8.0000e+00 | 2.7586e-01 | 8.0000e+00 |
| Velocity magnitude | 2.0385e-05 | 4.6928e-01 | 1.7556e-02 | 1.7556e+00 |
| Angular velocity magnitude | 1.4224e-03 | 1.3591e+02 | 3.0792e+00 | 3.0792e+02 |
| Translational kinetic energy | 2.7849e-13 | 1.4760e-04 | 2.8498e-06 | 2.8498e-04 |
| Rotational kinetic energy | 2.7121e-14 | 2.4758e-04 | 3.2443e-06 | 3.2443e-04 |

*****************************************************************
Transient iteration: 15000 Time: 0.75 Time step: 5e-05
*****************************************************************
| Variable | Min | Max | Average | Total |
| Contact list generation | 0.0000e+00 | 1.0000e+01 | 6.0000e-01 | 1.8000e+01 |
| Velocity magnitude | 3.7519e-06 | 6.7722e-01 | 1.8740e-02 | 1.8740e+00 |
| Angular velocity magnitude | 3.5347e-03 | 1.3591e+02 | 2.9847e+00 | 2.9847e+02 |
| Translational kinetic energy | 9.4344e-15 | 3.0737e-04 | 4.8233e-06 | 4.8233e-04 |
| Rotational kinetic energy | 1.6747e-13 | 2.4758e-04 | 3.2513e-06 | 3.2513e-04 |

*****************************************************************
Transient iteration: 15500 Time: 0.775 Time step: 5e-05
*****************************************************************
| Variable | Min | Max | Average | Total |
| Contact list generation | 0.0000e+00 | 1.1000e+01 | 9.3548e-01 | 2.9000e+01 |
| Velocity magnitude | 3.1242e-06 | 6.0538e-01 | 1.4793e-02 | 1.4793e+00 |
| Angular velocity magnitude | 5.2241e-03 | 4.3128e+01 | 1.6292e+00 | 1.6292e+02 |
| Translational kinetic energy | 6.5418e-15 | 2.4562e-04 | 3.8443e-06 | 3.8443e-04 |
| Rotational kinetic energy | 3.6581e-13 | 2.4932e-05 | 7.0570e-07 | 7.0570e-05 |

*****************************************************************
Transient iteration: 16000 Time: 0.8 Time step: 5e-05
*****************************************************************
| Variable | Min | Max | Average | Total |
| Contact list generation | 0.0000e+00 | 1.1000e+01 | 1.1875e+00 | 3.8000e+01 |
| Velocity magnitude | 5.1992e-06 | 3.2067e-01 | 8.5319e-03 | 8.5319e-01 |
| Angular velocity magnitude | 2.5888e-03 | 4.0267e+01 | 1.0967e+00 | 1.0967e+02 |
| Translational kinetic energy | 1.8117e-14 | 6.8918e-05 | 1.2100e-06 | 1.2100e-04 |
| Rotational kinetic energy | 8.9831e-14 | 2.1734e-05 | 4.0814e-07 | 4.0814e-05 |

*****************************************************************
Transient iteration: 16500 Time: 0.825 Time step: 5e-05
*****************************************************************
| Variable | Min | Max | Average | Total |
| Contact list generation | 0.0000e+00 | 1.1000e+01 | 1.3030e+00 | 4.3000e+01 |
| Velocity magnitude | 6.1075e-06 | 2.6943e-01 | 4.7210e-03 | 4.7210e-01 |
| Angular velocity magnitude | 1.3688e-03 | 4.0267e+01 | 6.1168e-01 | 6.1168e+01 |
| Translational kinetic energy | 2.5000e-14 | 4.8653e-05 | 5.6392e-07 | 5.6392e-05 |
| Rotational kinetic energy | 2.5114e-14 | 2.1734e-05 | 2.3115e-07 | 2.3115e-05 |

*****************************************************************
Transient iteration: 17000 Time: 0.85 Time step: 5e-05
*****************************************************************
| Variable | Min | Max | Average | Total |
| Contact list generation | 0.0000e+00 | 1.1000e+01 | 1.4412e+00 | 4.9000e+01 |
| Velocity magnitude | 2.7954e-06 | 4.5913e-01 | 7.0493e-03 | 7.0493e-01 |
| Angular velocity magnitude | 3.1862e-03 | 4.0267e+01 | 4.9273e-01 | 4.9273e+01 |
| Translational kinetic energy | 5.2373e-15 | 1.4128e-04 | 1.6556e-06 | 1.6556e-04 |
| Rotational kinetic energy | 1.3608e-13 | 2.1734e-05 | 2.1890e-07 | 2.1890e-05 |

*****************************************************************
Transient iteration: 17500 Time: 0.875 Time step: 5e-05
*****************************************************************
| Variable | Min | Max | Average | Total |
| Contact list generation | 0.0000e+00 | 1.1000e+01 | 1.6000e+00 | 5.6000e+01 |
| Velocity magnitude | 2.0135e-06 | 4.2505e-01 | 5.9059e-03 | 5.9059e-01 |
| Angular velocity magnitude | 1.1980e-03 | 2.8965e+01 | 3.6601e-01 | 3.6601e+01 |
| Translational kinetic energy | 2.7170e-15 | 1.2109e-04 | 1.3096e-06 | 1.3096e-04 |
| Rotational kinetic energy | 1.9237e-14 | 1.1246e-05 | 1.1363e-07 | 1.1363e-05 |

*****************************************************************
Transient iteration: 18000 Time: 0.9 Time step: 5e-05
*****************************************************************
| Variable | Min | Max | Average | Total |
| Contact list generation | 0.0000e+00 | 1.1000e+01 | 1.6667e+00 | 6.0000e+01 |
| Velocity magnitude | 1.7462e-06 | 1.3054e-01 | 2.4122e-03 | 2.4122e-01 |
| Angular velocity magnitude | 2.9066e-03 | 2.8965e+01 | 3.3427e-01 | 3.3427e+01 |
| Translational kinetic energy | 2.0435e-15 | 1.1421e-05 | 1.8021e-07 | 1.8021e-05 |
| Rotational kinetic energy | 1.1324e-13 | 1.1246e-05 | 1.1249e-07 | 1.1249e-05 |

*****************************************************************
Transient iteration: 18500 Time: 0.925 Time step: 5e-05
*****************************************************************
| Variable | Min | Max | Average | Total |
| Contact list generation | 0.0000e+00 | 1.1000e+01 | 1.7027e+00 | 6.3000e+01 |
| Velocity magnitude | 9.9271e-08 | 1.6718e-01 | 3.0282e-03 | 3.0282e-01 |
| Angular velocity magnitude | 3.3061e-03 | 4.0013e+00 | 8.4518e-02 | 8.4518e+00 |
| Translational kinetic energy | 6.6047e-18 | 1.8731e-05 | 2.9386e-07 | 2.9386e-05 |
| Rotational kinetic energy | 1.4652e-13 | 2.1460e-07 | 2.1813e-09 | 2.1813e-07 |

*****************************************************************
Transient iteration: 19000 Time: 0.95 Time step: 5e-05
*****************************************************************
| Variable | Min | Max | Average | Total |
| Contact list generation | 0.0000e+00 | 1.1000e+01 | 1.7368e+00 | 6.6000e+01 |
| Velocity magnitude | 4.0188e-06 | 1.3331e-01 | 2.3277e-03 | 2.3277e-01 |
| Angular velocity magnitude | 2.1452e-03 | 4.0013e+00 | 8.4088e-02 | 8.4088e+00 |
| Translational kinetic energy | 1.0824e-14 | 1.1911e-05 | 1.7588e-07 | 1.7588e-05 |
| Rotational kinetic energy | 6.1685e-14 | 2.1460e-07 | 2.1818e-09 | 2.1818e-07 |

*****************************************************************
Transient iteration: 19500 Time: 0.975 Time step: 5e-05
*****************************************************************
| Variable | Min | Max | Average | Total |
| Contact list generation | 0.0000e+00 | 1.1000e+01 | 1.7692e+00 | 6.9000e+01 |
| Velocity magnitude | 1.2660e-06 | 1.6892e-01 | 2.3707e-03 | 2.3707e-01 |
| Angular velocity magnitude | 1.1465e-03 | 1.5682e-01 | 4.3282e-02 | 4.3282e+00 |
| Translational kinetic energy | 1.0742e-15 | 1.9124e-05 | 2.1616e-07 | 2.1616e-05 |
| Rotational kinetic energy | 1.7619e-14 | 3.2966e-10 | 3.4652e-11 | 3.4652e-09 |

*****************************************************************
Transient iteration: 20000 Time: 1 Time step: 5e-05
*****************************************************************
| Variable | Min | Max | Average | Total |
| Contact list generation | 0.0000e+00 | 1.1000e+01 | 1.7500e+00 | 7.0000e+01 |
| Velocity magnitude | 2.1238e-06 | 9.7668e-02 | 1.1679e-03 | 1.1679e-01 |
| Angular velocity magnitude | 3.6932e-04 | 7.2734e-01 | 5.3802e-02 | 5.3802e+00 |
| Translational kinetic energy | 3.0231e-15 | 6.3932e-06 | 6.5134e-08 | 6.5134e-06 |
| Rotational kinetic energy | 1.8283e-15 | 7.0911e-09 | 1.1543e-10 | 1.1543e-08 |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason why you choose to use output log and not the subsection test?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not really. I guess I felt both were pretty much equivalent?

Loading
Loading