NetDEM v1.0
Loading...
Searching...
No Matches
netdem::PeriDigmDEMCoupler Class Reference

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< DEMFragmentGetFragments ()
 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.
 
Particleparticle {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< Vec3dboundary_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.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ PeriDigmDEMCoupler()

netdem::PeriDigmDEMCoupler::PeriDigmDEMCoupler ( )

Default constructor.

Member Function Documentation

◆ ApplyBoundaryForce()

void netdem::PeriDigmDEMCoupler::ApplyBoundaryForce ( Vec3d const & pos,
Vec3d const & force )

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.

Parameters
posThe position at which the force is applied.
forceThe force to be applied.

◆ CheckBreakage()

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.

Returns
True if particle breakage has occurred, false otherwise.

◆ GetFragments()

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.

Returns
A vector of DEMFragment objects representing the reconstructed fragments.

◆ Init()

void netdem::PeriDigmDEMCoupler::Init ( Particle * p)

Initializes the coupler with the given particle.

This method initializes the coupler with the given particle.

Parameters
pA pointer to the particle.

◆ Solve()

void netdem::PeriDigmDEMCoupler::Solve ( )

Solves the coupled DEM and peridynamic simulations.

This method solves the coupled DEM and peridynamic simulations.

Member Data Documentation

◆ base_dir

std::string netdem::PeriDigmDEMCoupler::base_dir {"tmp/out/"}

The working directory.

◆ boundary_force_node_vols

VecXT<double> netdem::PeriDigmDEMCoupler::boundary_force_node_vols

The volumes of the nodes on which boundary forces are applied in the peridynamic simulation.

◆ boundary_force_nodes

VecXT<int> netdem::PeriDigmDEMCoupler::boundary_force_nodes

The indices of the nodes on which boundary forces are applied in the peridynamic simulation.

◆ boundary_force_values

VecXT<Vec3d> netdem::PeriDigmDEMCoupler::boundary_force_values

The values of the boundary forces applied to the nodes in the peridynamic simulation.

◆ contact_force_list

VecXT<double> netdem::PeriDigmDEMCoupler::contact_force_list

A list of contact forces.

◆ contact_force_max

double netdem::PeriDigmDEMCoupler::contact_force_max {0.0}

The maximum contact force.

◆ damage_fraction_limit

double netdem::PeriDigmDEMCoupler::damage_fraction_limit {0.05}

The limit for the fraction of damaged bonds above which the fragment reconstruction routine is invoked.

◆ fixed_nodes

VecXT<int> netdem::PeriDigmDEMCoupler::fixed_nodes

The indices of the fixed nodes in the peridynamic simulation.

◆ fragment_alpha

double netdem::PeriDigmDEMCoupler::fragment_alpha {0.0}

The value of alpha used in the alpha shape computation for the fragment reconstruction routine.

◆ fragment_vol_limit

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.

◆ ignore_fines

bool netdem::PeriDigmDEMCoupler::ignore_fines {true}

Whether to ignore spherical fines during the fragment reconstruction routine.

◆ is_broken

bool netdem::PeriDigmDEMCoupler::is_broken {false}

Whether the material is currently broken.

◆ loading_rate

double netdem::PeriDigmDEMCoupler::loading_rate {1.0e5}

The loading rate used in the peridynamic simulation.

◆ loading_steps

int netdem::PeriDigmDEMCoupler::loading_steps {1000}

The number of loading steps used in the peridynamic simulation.

◆ material_params

PeriDigmMaterial netdem::PeriDigmDEMCoupler::material_params

The material parameters of the peridynamic simulation.

◆ mech_time

double netdem::PeriDigmDEMCoupler::mech_time {0.0}

The current mechanical time.

◆ mesh_res

int netdem::PeriDigmDEMCoupler::mesh_res {20}

The resolution of the mesh.

◆ node_size_ave

double netdem::PeriDigmDEMCoupler::node_size_ave {0.0}

The average size of the nodes.

◆ particle

Particle* netdem::PeriDigmDEMCoupler::particle {nullptr}

A pointer to the particle.

◆ pd_sim

PeriDigmSimulator netdem::PeriDigmDEMCoupler::pd_sim

The peridynamic simulator.

◆ strength_params

PeriDigmStrength netdem::PeriDigmDEMCoupler::strength_params

The strength parameters of the particles.

◆ sub_dir_index

int netdem::PeriDigmDEMCoupler::sub_dir_index {0}

The index of the subdirectory.

◆ surface_stl

STLModel netdem::PeriDigmDEMCoupler::surface_stl

The STL model of the surface.

◆ unbalanced_force_nodes

VecXT<int> netdem::PeriDigmDEMCoupler::unbalanced_force_nodes

The indices of the nodes on which unbalanced forces are applied in the peridynamic simulation.

◆ unbalanced_force_values

Vec3d netdem::PeriDigmDEMCoupler::unbalanced_force_values {0, 0, 0}

The values of the unbalanced forces applied to the nodes in the peridynamic simulation.

◆ use_alpha_shape

bool netdem::PeriDigmDEMCoupler::use_alpha_shape {true}

Whether to use alpha shapes in the fragment reconstruction routine.

◆ use_customized_loading_rate

bool netdem::PeriDigmDEMCoupler::use_customized_loading_rate {false}

Whether to use a customized loading rate in the peridynamic simulation.


The documentation for this class was generated from the following files: