include/meltpooldg/particles/obstacle_data.hpp Source File

Developer Documentation: include/meltpooldg/particles/obstacle_data.hpp Source File
Developer Documentation
obstacle_data.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/parameter_handler.h>
4
7
8
9namespace MeltPoolDG
10{
11 template <typename number>
13 {
16
19
20 struct
21 {
24 bool do_refine_obstacles = false;
25
29
33 } amr;
34
37
40
42 number gravity_constant = 0.0;
43
46
49
50 void
51 add_parameters(dealii::ParameterHandler &prm)
52 {
53 prm.enter_subsection("obstacles");
54 {
55 prm.add_parameter("stationary",
57 "Set to true if obstacles shall be stationary.");
58 prm.add_parameter("obstacle state input file",
60 "File in which the obstacle initial state data is stored.");
61 prm.add_parameter(
62 "gravity constant",
64 "Gravity constant data defining the gravitational acceleration acting on all particles.");
65 prm.add_parameter(
66 "rayleigh time stepping",
68 "If true, the time step size is determined from the critical Rayleigh time step.");
69 prm.add_parameter("rayleigh time stepping safety factor",
71 "Fraction of the critical Rayleigh time step used as time step size.");
72 prm.enter_subsection("amr");
73 {
74 prm.add_parameter(
75 "do refine",
76 amr.do_refine_obstacles,
77 "If true and AMR is enabled, regions around obstacles are adaptively refined "
78 "according to the specified refinement parameters.");
79 prm.add_parameter(
80 "inner surface distance",
81 amr.inner_fractional_distance_to_surface,
82 "Fraction of a reference length (e.g., particle radius) used to determine the "
83 "distance from the obstacle surface within which cells inside the obstacles "
84 "are refined.");
85 prm.add_parameter(
86 "outer surface distance",
87 amr.outer_fractional_distance_to_surface,
88 "Fraction of a reference length (e.g., particle radius) used to determine the "
89 "distance from the obstacle surface within which cells outside the obstacles "
90 "are refined.");
91 }
92 prm.leave_subsection();
93
94 cohesive_forces.add_parameters(prm);
95 contact_forces.add_parameters(prm);
96 }
97 prm.leave_subsection();
98 }
99 };
100} // namespace MeltPoolDG
Interface for a general preconditioner.
Definition boundary_condition_functions.hpp:17
Definition obstacle_data.hpp:13
number rayleigh_time_stepping_safety_factor
Fraction of the critical Rayleigh time step used as time step size.
Definition obstacle_data.hpp:48
bool do_refine_obstacles
Definition obstacle_data.hpp:24
struct MeltPoolDG::ObstacleData::@6 amr
bool do_rayleigh_time_stepping
Determine the time step size from the critical Rayleigh time step.
Definition obstacle_data.hpp:45
void add_parameters(dealii::ParameterHandler &prm)
Definition obstacle_data.hpp:51
SphericalParticleContactData< number > contact_forces
Contact force data defining the material and contact properties for all particles.
Definition obstacle_data.hpp:39
SphericalParticleCohesiveForceData< number > cohesive_forces
Cohesive force data defining the material and cohesive contact properties for all particles.
Definition obstacle_data.hpp:36
number outer_fractional_distance_to_surface
Definition obstacle_data.hpp:32
bool stationary_obstacles
If true, obstacles are fixed and do not move during the simulation.
Definition obstacle_data.hpp:15
number gravity_constant
Gravity constant data defining the gravitational acceleration acting on all particles.
Definition obstacle_data.hpp:42
number inner_fractional_distance_to_surface
Definition obstacle_data.hpp:28
std::string obstacle_state_input_file
Path to the input file containing the initial obstacle state.
Definition obstacle_data.hpp:18
Definition cohesive_forces_data.hpp:9
Definition contact_forces_data.hpp:9