NetDEM v1.0
|
A class representing a coupling between a discrete element method (DEM) simulation and a peridynamic simulation. More...
#include <peridigm_dem_coupler.hpp>
Public Member Functions | |
PeriDigmDEMCoupler () | |
Default constructor. | |
void | Init (Particle *p) |
Initializes the coupler with the given particle. | |
void | Solve () |
Solves the coupled DEM and peridynamic simulations. | |
void | ApplyBoundaryForce (Vec3d const &pos, Vec3d const &force) |
Applies a boundary force to the peridynamic simulation at the given position. | |
bool | CheckBreakage () |
Checks if particle breakage has occurred. | |
VecXT< DEMFragment > | GetFragments () |
Gets the fragments resulting from the fragment reconstruction routine. | |
Public Attributes | |
std::string | base_dir {"tmp/out/"} |
The working directory. | |
int | sub_dir_index {0} |
The index of the subdirectory. | |
Particle * | particle {nullptr} |
A pointer to the particle. | |
PeriDigmSimulator | pd_sim |
The peridynamic simulator. | |
STLModel | surface_stl |
The STL model of the surface. | |
int | mesh_res {20} |
The resolution of the mesh. | |
double | node_size_ave {0.0} |
The average size of the nodes. | |
VecXT< int > | fixed_nodes |
The indices of the fixed nodes in the peridynamic simulation. | |
VecXT< int > | boundary_force_nodes |
The indices of the nodes on which boundary forces are applied in the peridynamic simulation. | |
VecXT< double > | boundary_force_node_vols |
The volumes of the nodes on which boundary forces are applied in the peridynamic simulation. | |
VecXT< Vec3d > | boundary_force_values |
The values of the boundary forces applied to the nodes in the peridynamic simulation. | |
VecXT< int > | unbalanced_force_nodes |
The indices of the nodes on which unbalanced forces are applied in the peridynamic simulation. | |
Vec3d | unbalanced_force_values {0, 0, 0} |
The values of the unbalanced forces applied to the nodes in the peridynamic simulation. | |
double | contact_force_max {0.0} |
The maximum contact force. | |
VecXT< double > | contact_force_list |
A list of contact forces. | |
bool | use_customized_loading_rate {false} |
Whether to use a customized loading rate in the peridynamic simulation. | |
double | loading_rate {1.0e5} |
The loading rate used in the peridynamic simulation. | |
int | loading_steps {1000} |
The number of loading steps used in the peridynamic simulation. | |
double | mech_time {0.0} |
The current mechanical time. | |
bool | is_broken {false} |
Whether the material is currently broken. | |
double | damage_fraction_limit {0.05} |
The limit for the fraction of damaged bonds above which the fragment reconstruction routine is invoked. | |
double | fragment_vol_limit {0.001} |
The limit for the volume of a fragment below which it will be considered a spherical fine rather than reconstructed. | |
bool | ignore_fines {true} |
Whether to ignore spherical fines during the fragment reconstruction routine. | |
bool | use_alpha_shape {true} |
Whether to use alpha shapes in the fragment reconstruction routine. | |
double | fragment_alpha {0.0} |
The value of alpha used in the alpha shape computation for the fragment reconstruction routine. | |
PeriDigmStrength | strength_params |
The strength parameters of the particles. | |
PeriDigmMaterial | material_params |
The material parameters of the peridynamic simulation. | |
A class representing a coupling between a discrete element method (DEM) simulation and a peridynamic simulation.
The PeriDigmDEMCoupler class represents a coupling between a discrete element method (DEM) simulation and a peridynamic simulation. This allows for the simulation of the deformation and failure of a granular material under various loading conditions.
netdem::PeriDigmDEMCoupler::PeriDigmDEMCoupler | ( | ) |
Default constructor.
Applies a boundary force to the peridynamic simulation at the given position.
This method applies a boundary force to the peridynamic simulation at the given position. The force is applied as a force density.
pos | The position at which the force is applied. |
force | The force to be applied. |
bool netdem::PeriDigmDEMCoupler::CheckBreakage | ( | ) |
Checks if particle breakage has occurred.
This method checks if particle breakage has occurred by comparing the fraction of damaged bonds to the damage fraction limit.
VecXT< DEMFragment > netdem::PeriDigmDEMCoupler::GetFragments | ( | ) |
Gets the fragments resulting from the fragment reconstruction routine.
This method gets the fragments resulting from the fragment reconstruction routine.
void netdem::PeriDigmDEMCoupler::Init | ( | Particle * | p | ) |
Initializes the coupler with the given particle.
This method initializes the coupler with the given particle.
p | A pointer to the particle. |
void netdem::PeriDigmDEMCoupler::Solve | ( | ) |
Solves the coupled DEM and peridynamic simulations.
This method solves the coupled DEM and peridynamic simulations.
std::string netdem::PeriDigmDEMCoupler::base_dir {"tmp/out/"} |
The working directory.
VecXT<double> netdem::PeriDigmDEMCoupler::boundary_force_node_vols |
The volumes of the nodes on which boundary forces are applied in the peridynamic simulation.
VecXT<int> netdem::PeriDigmDEMCoupler::boundary_force_nodes |
The indices of the nodes on which boundary forces are applied in the peridynamic simulation.
The values of the boundary forces applied to the nodes in the peridynamic simulation.
VecXT<double> netdem::PeriDigmDEMCoupler::contact_force_list |
A list of contact forces.
double netdem::PeriDigmDEMCoupler::contact_force_max {0.0} |
The maximum contact force.
double netdem::PeriDigmDEMCoupler::damage_fraction_limit {0.05} |
The limit for the fraction of damaged bonds above which the fragment reconstruction routine is invoked.
VecXT<int> netdem::PeriDigmDEMCoupler::fixed_nodes |
The indices of the fixed nodes in the peridynamic simulation.
double netdem::PeriDigmDEMCoupler::fragment_alpha {0.0} |
The value of alpha used in the alpha shape computation for the fragment reconstruction routine.
double netdem::PeriDigmDEMCoupler::fragment_vol_limit {0.001} |
The limit for the volume of a fragment below which it will be considered a spherical fine rather than reconstructed.
bool netdem::PeriDigmDEMCoupler::ignore_fines {true} |
Whether to ignore spherical fines during the fragment reconstruction routine.
bool netdem::PeriDigmDEMCoupler::is_broken {false} |
Whether the material is currently broken.
double netdem::PeriDigmDEMCoupler::loading_rate {1.0e5} |
The loading rate used in the peridynamic simulation.
int netdem::PeriDigmDEMCoupler::loading_steps {1000} |
The number of loading steps used in the peridynamic simulation.
PeriDigmMaterial netdem::PeriDigmDEMCoupler::material_params |
The material parameters of the peridynamic simulation.
double netdem::PeriDigmDEMCoupler::mech_time {0.0} |
The current mechanical time.
int netdem::PeriDigmDEMCoupler::mesh_res {20} |
The resolution of the mesh.
double netdem::PeriDigmDEMCoupler::node_size_ave {0.0} |
The average size of the nodes.
Particle* netdem::PeriDigmDEMCoupler::particle {nullptr} |
A pointer to the particle.
PeriDigmSimulator netdem::PeriDigmDEMCoupler::pd_sim |
The peridynamic simulator.
PeriDigmStrength netdem::PeriDigmDEMCoupler::strength_params |
The strength parameters of the particles.
int netdem::PeriDigmDEMCoupler::sub_dir_index {0} |
The index of the subdirectory.
STLModel netdem::PeriDigmDEMCoupler::surface_stl |
The STL model of the surface.
VecXT<int> netdem::PeriDigmDEMCoupler::unbalanced_force_nodes |
The indices of the nodes on which unbalanced forces are applied in the peridynamic simulation.
Vec3d netdem::PeriDigmDEMCoupler::unbalanced_force_values {0, 0, 0} |
The values of the unbalanced forces applied to the nodes in the peridynamic simulation.
bool netdem::PeriDigmDEMCoupler::use_alpha_shape {true} |
Whether to use alpha shapes in the fragment reconstruction routine.
bool netdem::PeriDigmDEMCoupler::use_customized_loading_rate {false} |
Whether to use a customized loading rate in the peridynamic simulation.