|
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.