![]() |
PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
|
A class to store model data. More...
#include <modelData.h>
Public Member Functions | |
| ModelData (std::shared_ptr< inp::Input > &deck) | |
| Constructor. | |
| const particle::BaseParticle * | getParticleFromAllList (size_t i) const |
| Get pointer to base particle. | |
| particle::BaseParticle *& | getParticleFromAllList (size_t i) |
| Get pointer to base particle. | |
| const particle::BaseParticle * | getParticleFromParticleList (size_t i) const |
| Get pointer to particle (excluding wall) | |
| particle::BaseParticle *& | getParticleFromParticleList (size_t i) |
| const particle::BaseParticle * | getParticleFromWallList (size_t i) const |
| Get pointer to wall. | |
| particle::BaseParticle *& | getParticleFromWallList (size_t i) |
| double | getDensity (size_t i) |
| Get density of particle. | |
| double | getHorizon (size_t i) |
| Get horizon of particle. | |
| size_t & | getPtId (size_t i) |
| Get particle id given the location in particle list. | |
| const size_t & | getPtId (size_t i) const |
| Get particle id given the location in particle list. | |
| void | setPtId (size_t i, const size_t &id) |
| Set particle id given the location in particle list. | |
| double | getKeyData (std::string key, bool issue_err=false) |
| Get data for a key. | |
| void | appendKeyData (std::string key, double data, bool issue_err=false) |
| Append value to data associated with key. | |
| void | setKeyData (std::string key, double data, bool issue_err=false) |
| Set value to data associated with key. | |
Time integrator interface | |
Accessors the time loop and dof update use. Field arrays are not read by name from src/time_int. | |
| int | dimension () const |
| double | timeStep () const |
| double | currentDt () const |
| void | setCurrentDt (double dt) |
| void | advanceTime () |
| size_t | numPdForceNodes () const |
| size_t | pdForceNode (size_t k) const |
| bool | isDofFree (size_t i, unsigned int dof) const |
| double | getVMag (size_t i) const |
| void | setVMag (size_t i, double mag) |
| size_t | currentStep () const |
| size_t | numTimeSteps () const |
| const std::string & | timeDiscretization () const |
| bool | performOutput () const |
| bool | shouldOutput () const |
Get and set reference coordinate | |
| util::Point & | getXRef (size_t i) |
| Get reference coordinate of the node. | |
| const util::Point & | getXRef (size_t i) const |
| Get reference coordinate of the node. | |
| void | setXRef (size_t i, const util::Point &x) |
| Set reference coordinate of the node. | |
| void | addXRef (size_t i, const util::Point &x) |
| Add reference coordinate of the node. | |
| void | setXRef (size_t i, int dof, double x) |
| Set specific reference coordinate of the node. | |
| void | addXRef (size_t i, int dof, double x) |
| Add specific reference coordinate of the node. | |
Get and set current coordinate | |
| util::Point & | getX (size_t i) |
| Get current coordinate of the node. | |
| const util::Point & | getX (size_t i) const |
| Get current coordinate of the node. | |
| void | setX (size_t i, const util::Point &x) |
| Set current coordinate of the node. | |
| void | addX (size_t i, const util::Point &x) |
| Add current coordinate of the node. | |
| void | setX (size_t i, int dof, double x) |
| Set specific current coordinate of the node. | |
| void | addX (size_t i, int dof, double x) |
| Add to specific current coordinate of the node. | |
Get and set displacement | |
| util::Point & | getU (size_t i) |
| Get displacement of the node. | |
| const util::Point & | getU (size_t i) const |
| Get displacement of the node. | |
| void | setU (size_t i, const util::Point &u) |
| Set displacement of the node. | |
| void | addU (size_t i, const util::Point &u) |
| Add to displacement of the node. | |
| void | setU (size_t i, int dof, double u) |
| Set displacement of the node. | |
| void | addU (size_t i, int dof, double u) |
| Add to displacement of the node. | |
Get and set velocity | |
| util::Point & | getV (size_t i) |
| Get velocity of the node. | |
| const util::Point & | getV (size_t i) const |
| Get velocity of the node. | |
| void | setV (size_t i, const util::Point &v) |
| Set velocity of the node. | |
| void | addV (size_t i, const util::Point &v) |
| Add to velocity of the node. | |
| void | setV (size_t i, int dof, double v) |
| Set velocity of the node. | |
| void | addV (size_t i, int dof, double v) |
| Add to velocity of the node. | |
Get and set force | |
| util::Point & | getF (size_t i) |
| Get force of the node. | |
| const util::Point & | getF (size_t i) const |
| Get force of the node. | |
| void | setF (size_t i, const util::Point &f) |
| Set force of the node. | |
| void | addF (size_t i, const util::Point &f) |
| Add to force of the node. | |
| void | setF (size_t i, int dof, double f) |
| Set force of the node. | |
| void | addF (size_t i, int dof, double f) |
| Add to force of the node. | |
Get and set volume | |
| double & | getVol (size_t i) |
| Get volume of the node. | |
| const double & | getVol (size_t i) const |
| Get volume of the node. | |
| void | setVol (size_t i, const double &vol) |
| Set volume of the node. | |
| void | addVol (size_t i, const double &vol) |
| Add to volume of the node. | |
Get and set fixity | |
| uint8_t & | getFix (size_t i) |
| Get fixity of the node. | |
| const uint8_t & | getFix (size_t i) const |
| Get fixity of the node. | |
| void | setFix (size_t i, const unsigned int &dof, const bool &flag) |
| Set fixity of the node. | |
Get and set mx | |
| double & | getMx (size_t i) |
| Get weighted-volume (mx) of the node. | |
| const double & | getMx (size_t i) const |
| Get weighted-volume (mx) of the node. | |
| void | setMx (size_t i, const double &mx) |
| Set weighted-volume (mx) of the node. | |
| void | addMx (size_t i, const double &mx) |
| Add to weighted-volume (mx) of the node. | |
Get and set thetax | |
| double & | getThetax (size_t i) |
| Get volumetric deformation (thetax) of the node. | |
| const double & | getThetax (size_t i) const |
| Get volumetric deformation (thetax) of the node. | |
| void | setThetax (size_t i, const double &thetax) |
| Set volumetric deformation (thetax) of the node. | |
| void | addThetax (size_t i, const double &thetax) |
| Add to volumetric deformation (thetax) of the node. | |
Data Fields | |
| size_t | d_n |
| Current time step. | |
| double | d_time |
| Current time. | |
| double | d_currentDt |
| Current timestep. | |
| size_t | d_infoN |
| Print log step interval. | |
| std::string | d_name |
| Model name for log prefixes. | |
| std::vector< std::pair< double, std::string > > | d_pvdParticleEntries |
| (simulation time, VTU filename) for output.pvd | |
| std::vector< std::pair< double, std::string > > | d_pvdStrainEntries |
| (simulation time, VTU filename) for output_strain.pvd | |
| std::map< std::string, double > | d_dbgData |
| Debug data. | |
| std::ofstream | d_ppFile |
| File stream to output information. | |
| std::shared_ptr< inp::Input > | d_input_p |
| Pointer to Input object. | |
| std::shared_ptr< inp::ModelDeck > | d_modelDeck_p |
| Pointer to deck holding problem related data. | |
| std::shared_ptr< inp::OutputDeck > | d_outputDeck_p |
| Pointer to deck holding output related data. | |
| std::shared_ptr< inp::RestartDeck > | d_restartDeck_p |
| Pointer to deck holding restart related data. | |
| std::shared_ptr< inp::TestDeck > | d_testDeck_p |
| Test deck. | |
| std::shared_ptr< inp::BCDeck > | d_bcDeck_p |
| Boundary condition deck. | |
| std::shared_ptr< inp::ParticleDeck > | d_particleDeck_p |
| Pointer to deck holding particle related data. | |
| bool | d_stop |
| flag to stop the simulation midway | |
| double | d_hMax |
| Minimum mesh over all particles and walls. | |
| double | d_hMin |
| Maximum mesh over all particles and walls. | |
| double | d_maxContactR |
| Maximum contact radius between over pairs of particles and walls. | |
| size_t | d_contNeighUpdateInterval |
| Neighborlist update interval. | |
| size_t | d_contNeighTimestepCounter |
| Contact neighborlist time step counter. | |
| double | d_contNeighSearchRadius |
| Neighborlist contact search radius (multiple of d_maxContactR). This variable will be updated during simulation based on maximum velocity. | |
| std::vector< char > | d_mpiIncludeInContactCloud |
| Per entry in d_particlesListTypeAll: include nodes in the MPI contact search cloud (owned grains, walls, and distance-limited ghosts). Empty / all-true when not using multi-rank particle parallel. | |
| std::vector< std::vector< int > > | d_mpiGhostNeedFrom |
| Cached ghost grain ids requested from each MPI rank (skin rebuild). | |
| std::vector< std::vector< int > > | d_mpiGhostServeTo |
| Cached grain ids this rank must send to each MPI rank. | |
| bool | d_mpiGhostPlanValid |
| True once a ghost communication plan has been built. | |
| size_t | d_mpiGhostStepsSinceRebuild |
| Force steps since last ghost-plan rebuild. | |
| bool | d_pdDofMpi |
| Nodal DOF-MPI active. | |
| bool | d_pdGrainAligned |
| DOF owners match whole-grain brick (same as particle-MPI). When true, every node of a grain lives on one rank — contact ghosts are the particle ghost plan, not a full nodal Allreduce. When false, Metis may split a grain across ranks — need syncAllOwned (or a PD halo large enough for contact) before contact reads remote u/v. | |
| std::vector< size_t > | d_pdNodePartition |
| Owner rank for each node when d_pdDofMpi is true. | |
| std::vector< std::vector< int > > | d_pdGhostNeedFrom |
| Ghost node ids requested from each rank (PD DOF halo). | |
| std::vector< std::vector< int > > | d_pdGhostServeTo |
| Local node ids this rank must send to each rank. | |
| std::vector< std::shared_ptr< particle::RefParticle > > | d_referenceParticles |
| Pointer to reference particle. | |
| std::vector< particle::BaseParticle * > | d_particlesListTypeAll |
| List of particles + walls. | |
| std::vector< particle::BaseParticle * > | d_particlesListTypeParticle |
| List of particles. | |
| std::vector< particle::BaseParticle * > | d_particlesListTypeWall |
| List of walls. | |
| std::vector< inp::MatData > | d_particlesMatDataList |
| List of particle material data. Only populated if needed for calculation of stress or other quantities. | |
| std::vector< double > | d_maxVelocityParticlesListTypeAll |
| Maximum velocity among all nodes in the particle for each particle. | |
| double | d_maxVelocity |
| Maximum velocity among all nodes. | |
| std::vector< std::vector< size_t > > | d_zInfo |
| Zone information of particles. For zone 0, d_zInfo[0] = [n1, n2] where n1 is the index at which the particle in this zone starts in d_particlesListTypeAll and n2 is the index + 1, where index is at which the particle in this zone ends. | |
| std::unique_ptr< loading::ParticleULoading > | d_uLoading_p |
| Pointer to displacement Loading object. | |
| std::unique_ptr< loading::ParticleFLoading > | d_fLoading_p |
| Pointer to force Loading object. | |
| std::unique_ptr< geometry::Fracture > | d_fracture_p |
| Fracture state of bonds. | |
| std::unique_ptr< NSearch > | d_nsearch_p |
| Pointer to nsearch. | |
| std::vector< util::Point > | d_xRef |
| reference positions of the nodes | |
| std::vector< util::Point > | d_x |
| Current positions of the nodes. | |
| std::vector< util::Point > | d_u |
| Displacement of the nodes. | |
| std::vector< util::Point > | d_v |
| Velocity of the nodes. | |
| std::vector< double > | d_vMag |
| Magnitude of velocity of the nodes. | |
| std::vector< util::Point > | d_f |
| Total force on the nodes. | |
| std::vector< double > | d_vol |
| Nodal volumes. | |
| std::vector< size_t > | d_ptId |
| Global node to particle id (walls are assigned id after last particle id) | |
| std::vector< std::vector< size_t > > | d_neighC |
| Neighbor data for contact forces. | |
| std::vector< std::vector< size_t > > | d_neighPd |
| Neighbor data for peridynamic forces. | |
| std::vector< std::vector< float > > | d_neighPdSqdDist |
| Square distance neighbor data for peridynamic forces. | |
| std::vector< std::vector< std::vector< size_t > > > | d_neighWallNodes |
| Neighbor data for contact between particle and walls. | |
| std::vector< std::vector< std::vector< double > > > | d_neighWallNodesDistance |
| Neighbor data (distance) for contact between particle and walls. | |
| std::vector< std::vector< size_t > > | d_neighWallNodesCondensed |
| Neighbor data for contact between particle and walls condensed into single vector for each particle. | |
| std::vector< uint8_t > | d_fix |
| Vector of fixity mask of each node. | |
| std::vector< uint8_t > | d_forceFixity |
| Vector of fixity mask of each node for force. | |
| std::vector< double > | d_thetaX |
| Dilation. | |
| std::vector< double > | d_mX |
| Weighted volume. | |
| std::vector< size_t > | d_fPdCompNodes |
| List of global nodes on which force (peridynamic/internal) is to be computed. | |
| std::vector< size_t > | d_fContCompNodes |
| List of global nodes on which force (contact) is to be computed. | |
| std::vector< float > | d_Z |
| Damage at nodes. | |
Minor simulation data | |
These are postprocessing data and are created if only required during output or postprocessing. | |
| std::vector< float > | d_e |
| Energy of the nodes. | |
| std::vector< float > | d_w |
| Work done on each of the nodes. | |
| std::vector< float > | d_phi |
| Damage function \( \phi \) at the nodes (volume-weighted, Silling 2000) | |
| std::vector< float > | d_phiBond |
| Damage as broken-bond count fraction (Bhattacharya & Lipton 2023) | |
| std::vector< float > | d_eF |
| Fracture energy of the nodes. | |
| std::vector< float > | d_eFB |
| Bond-based fracture energy of the nodes. | |
| std::vector< util::Point > | d_xQuadCur |
| Current position of quadrature points. | |
| std::vector< util::SymMatrix3 > | d_strain |
| Strain in elements (values at quadrature points) | |
| std::vector< util::SymMatrix3 > | d_stress |
| Stress in elements (values at quadrature points) | |
| float | d_te |
| Total internal energy. | |
| float | d_tw |
| Total work done. | |
| float | d_tk |
| Total kinetic energy. | |
| float | d_teF |
| Total fracture energy. | |
| float | d_teFB |
| Total bond-based fracture energy. | |
A class to store model data.
Definition at line 50 of file modelData.h.
|
inline |
Constructor.
| deck | Input deck |
Definition at line 57 of file modelData.h.
|
inline |
Add to force of the node.
| i | Global id of node |
| f | Force to add |
Definition at line 443 of file modelData.h.
References d_f.
|
inline |
Add to force of the node.
| i | Global id of node |
| dof | Direction or degree of freedom to be modified |
| f | Force to add |
Definition at line 459 of file modelData.h.
References d_f.
|
inline |
Add to weighted-volume (mx) of the node.
| i | Global id of node |
| mx | Weighted-volume to add |
Definition at line 555 of file modelData.h.
References d_mX.
|
inline |
Add to volumetric deformation (thetax) of the node.
| i | Global id of node |
| thetax | Volumetric deformation to add |
Definition at line 586 of file modelData.h.
References d_thetaX.
|
inline |
Add to displacement of the node.
| i | Global id of node |
| u | Displacement to add |
Definition at line 349 of file modelData.h.
References d_u.
|
inline |
Add to displacement of the node.
| i | Global id of node |
| dof | Direction or degree of freedom to be modified |
| u | Displacement to add |
Definition at line 365 of file modelData.h.
References d_u.
|
inline |
Add to velocity of the node.
| i | Global id of node |
| v | Velocity to add |
Definition at line 396 of file modelData.h.
References d_v.
|
inline |
Add to velocity of the node.
| i | Global id of node |
| dof | Direction or degree of freedom to be modified |
| v | Velocity to add |
Definition at line 412 of file modelData.h.
References d_v.
|
inline |
Add to volume of the node.
| i | Global id of node |
| vol | Volume to add |
Definition at line 490 of file modelData.h.
References d_vol.
|
inline |
Add current coordinate of the node.
| i | Global id of node |
| x | Current coordinate to add |
Definition at line 302 of file modelData.h.
References d_x.
|
inline |
Add to specific current coordinate of the node.
| i | Global id of node |
| dof | Direction or degree of freedom to be modified |
| x | Current coordinate to add |
Definition at line 318 of file modelData.h.
References d_x.
|
inline |
Add reference coordinate of the node.
| i | Global id of node |
| x | Reference coordinate to add |
Definition at line 255 of file modelData.h.
References d_xRef.
|
inline |
Add specific reference coordinate of the node.
| i | Global id of node |
| dof | Direction or degree of freedom to be modified |
| x | Reference coordinate to add |
Definition at line 271 of file modelData.h.
References d_xRef.
|
inline |
Definition at line 147 of file modelData.h.
References d_currentDt, d_n, and d_time.
|
inline |
Append value to data associated with key.
| key | Key to append the data to |
Definition at line 215 of file modelData.h.
References d_dbgData, and util::methods::max().
Referenced by PeriDEMModel::computeForces(), and PeriDEMModel::init().
|
inline |
|
inline |
Definition at line 164 of file modelData.h.
References d_n.
Referenced by main(), and PeriDEMModel::output().
|
inline |
| double data::ModelData::getDensity | ( | size_t | i | ) |
Get density of particle.
| i | Location in the particle list |
Definition at line 14 of file modelData.cpp.
References d_particlesListTypeAll, and d_ptId.
|
inline |
Get force of the node.
| i | Global id of node |
Definition at line 426 of file modelData.h.
References d_f.
|
inline |
Get force of the node.
| i | Global id of node |
Definition at line 429 of file modelData.h.
References d_f.
|
inline |
Get fixity of the node.
| i | Global id of node |
Definition at line 504 of file modelData.h.
References d_fix.
|
inline |
Get fixity of the node.
| i | Global id of node |
Definition at line 507 of file modelData.h.
References d_fix.
| double data::ModelData::getHorizon | ( | size_t | i | ) |
Get horizon of particle.
| i | Location in the particle list |
Definition at line 17 of file modelData.cpp.
|
inline |
Get data for a key.
| key | Key to access the data |
Definition at line 206 of file modelData.h.
References d_dbgData, and util::methods::max().
Referenced by PeriDEMModel::computeForces().
|
inline |
Get weighted-volume (mx) of the node.
| i | Global id of node |
Definition at line 538 of file modelData.h.
References d_mX.
|
inline |
Get weighted-volume (mx) of the node.
| i | Global id of node |
Definition at line 541 of file modelData.h.
References d_mX.
|
inline |
Get pointer to base particle.
| i | Location in the particle list |
Definition at line 90 of file modelData.h.
References d_particlesListTypeAll.
|
inline |
Get pointer to base particle.
| i | Location in the particle list |
Definition at line 86 of file modelData.h.
References d_particlesListTypeAll.
Referenced by rw::writer::VtkParticleWriter::appendNodes(), anonymous_namespace{vtkParticleWriter.cpp}::appendPointArraysForNodes(), material::computeHydrostaticStrain(), material::computeStateMx(), material::computeStateThetax(), PeriDEMModel::init(), and material::updateBondFractureData().
|
inline |
Definition at line 102 of file modelData.h.
References d_particlesListTypeParticle.
|
inline |
Get pointer to particle (excluding wall)
| i | Location in the particle list |
Definition at line 98 of file modelData.h.
References d_particlesListTypeParticle.
|
inline |
Definition at line 114 of file modelData.h.
References d_particlesListTypeWall.
|
inline |
Get pointer to wall.
| i | Location in the wall list |
Definition at line 110 of file modelData.h.
References d_particlesListTypeWall.
|
inline |
Get particle id given the location in particle list.
| i | Location in the particle list |
Definition at line 187 of file modelData.h.
References d_ptId.
Referenced by rw::writer::VtkParticleWriter::appendNodes(), material::computeHydrostaticStrain(), material::computeStateMx(), material::computeStateThetax(), and material::updateBondFractureData().
|
inline |
Get particle id given the location in particle list.
| i | Location in the particle list |
Definition at line 190 of file modelData.h.
References d_ptId.
|
inline |
Get volumetric deformation (thetax) of the node.
| i | Global id of node |
Definition at line 569 of file modelData.h.
References d_thetaX.
|
inline |
Get volumetric deformation (thetax) of the node.
| i | Global id of node |
Definition at line 572 of file modelData.h.
References d_thetaX.
|
inline |
Get displacement of the node.
| i | Global id of node |
Definition at line 332 of file modelData.h.
References d_u.
|
inline |
Get displacement of the node.
| i | Global id of node |
Definition at line 335 of file modelData.h.
References d_u.
|
inline |
Get velocity of the node.
| i | Global id of node |
Definition at line 379 of file modelData.h.
References d_v.
|
inline |
Get velocity of the node.
| i | Global id of node |
Definition at line 382 of file modelData.h.
References d_v.
|
inline |
Definition at line 160 of file modelData.h.
References d_vMag.
|
inline |
Get volume of the node.
| i | Global id of node |
Definition at line 473 of file modelData.h.
References d_vol.
|
inline |
Get volume of the node.
| i | Global id of node |
Definition at line 476 of file modelData.h.
References d_vol.
|
inline |
Get current coordinate of the node.
| i | Global id of node |
Definition at line 285 of file modelData.h.
References d_x.
Referenced by rw::reader::VtkParticleReader::readNodes().
|
inline |
Get current coordinate of the node.
| i | Global id of node |
Definition at line 288 of file modelData.h.
References d_x.
|
inline |
Get reference coordinate of the node.
| i | Global id of node |
Definition at line 238 of file modelData.h.
References d_xRef.
Referenced by rw::reader::VtkParticleReader::readNodes().
|
inline |
Get reference coordinate of the node.
| i | Global id of node |
Definition at line 241 of file modelData.h.
References d_xRef.
|
inline |
Definition at line 156 of file modelData.h.
References d_fix, and util::methods::isFree().
|
inline |
Definition at line 152 of file modelData.h.
References d_fPdCompNodes.
|
inline |
Definition at line 166 of file modelData.h.
References d_modelDeck_p.
Referenced by main().
|
inline |
|
inline |
Definition at line 172 of file modelData.h.
References d_outputDeck_p.
Referenced by main().
|
inline |
Definition at line 145 of file modelData.h.
References d_currentDt.
Referenced by main().
|
inline |
Set force of the node.
| i | Global id of node |
| f | Force to set |
Definition at line 436 of file modelData.h.
References d_f.
|
inline |
Set force of the node.
| i | Global id of node |
| dof | Direction or degree of freedom to be modified |
| f | Force to set |
Definition at line 451 of file modelData.h.
References d_f.
|
inline |
Set fixity of the node.
| i | Global id of node |
| dof | Direction or degree of freedom to be modified |
| flag | Fixity to set |
Definition at line 515 of file modelData.h.
References d_fix.
|
inline |
Set value to data associated with key.
| key | Key to append the data to |
Definition at line 224 of file modelData.h.
References d_dbgData, and util::methods::max().
|
inline |
Set weighted-volume (mx) of the node.
| i | Global id of node |
| mx | Weighted-volume to set |
Definition at line 548 of file modelData.h.
References d_mX.
Referenced by material::computeStateMx().
|
inline |
Set particle id given the location in particle list.
| i | Location in the particle list |
| id | Particle id to set |
Definition at line 197 of file modelData.h.
References d_ptId.
|
inline |
Set volumetric deformation (thetax) of the node.
| i | Global id of node |
| thetax | Volumetric deformation to set |
Definition at line 579 of file modelData.h.
References d_thetaX.
Referenced by material::computeHydrostaticStrain(), and material::computeStateThetax().
|
inline |
Set displacement of the node.
| i | Global id of node |
| u | Displacement to set |
Definition at line 342 of file modelData.h.
References d_u.
Referenced by rw::reader::VtkParticleReader::readNodes().
|
inline |
Set displacement of the node.
| i | Global id of node |
| dof | Direction or degree of freedom to be modified |
| u | Displacement to set |
Definition at line 357 of file modelData.h.
References d_u.
|
inline |
Set velocity of the node.
| i | Global id of node |
| v | Velocity to set |
Definition at line 389 of file modelData.h.
References d_v.
Referenced by rw::reader::VtkParticleReader::readNodes().
|
inline |
Set velocity of the node.
| i | Global id of node |
| dof | Direction or degree of freedom to be modified |
| v | Velocity to set |
Definition at line 404 of file modelData.h.
References d_v.
|
inline |
|
inline |
Set volume of the node.
| i | Global id of node |
| vol | Volume to set |
Definition at line 483 of file modelData.h.
References d_vol.
|
inline |
Set current coordinate of the node.
| i | Global id of node |
| x | Current coordinate to set |
Definition at line 295 of file modelData.h.
References d_x.
Referenced by rw::reader::VtkParticleReader::readNodes().
|
inline |
Set specific current coordinate of the node.
| i | Global id of node |
| dof | Direction or degree of freedom to be modified |
| x | Current coordinate to set |
Definition at line 310 of file modelData.h.
References d_x.
|
inline |
Set reference coordinate of the node.
| i | Global id of node |
| x | Reference coordinate to set |
Definition at line 248 of file modelData.h.
References d_xRef.
|
inline |
Set specific reference coordinate of the node.
| i | Global id of node |
| dof | Direction or degree of freedom to be modified |
| x | Reference coordinate to set |
Definition at line 263 of file modelData.h.
References d_xRef.
|
inline |
Definition at line 174 of file modelData.h.
References d_n, and d_outputDeck_p.
Referenced by main().
|
inline |
Definition at line 168 of file modelData.h.
References d_modelDeck_p.
|
inline |
Definition at line 141 of file modelData.h.
References d_modelDeck_p.
Referenced by main().
| std::shared_ptr<inp::BCDeck> data::ModelData::d_bcDeck_p |
Boundary condition deck.
Definition at line 634 of file modelData.h.
Referenced by PeriDEMModel::applyInitialCondition(), PeriDEMModel::computeExternalForces(), and PeriDEMModel::init().
| double data::ModelData::d_contNeighSearchRadius |
Neighborlist contact search radius (multiple of d_maxContactR). This variable will be updated during simulation based on maximum velocity.
Definition at line 658 of file modelData.h.
Referenced by PeriDEMModel::init().
| size_t data::ModelData::d_contNeighTimestepCounter |
Contact neighborlist time step counter.
Definition at line 655 of file modelData.h.
| size_t data::ModelData::d_contNeighUpdateInterval |
Neighborlist update interval.
Definition at line 652 of file modelData.h.
Referenced by PeriDEMModel::init().
| double data::ModelData::d_currentDt |
Current timestep.
Definition at line 598 of file modelData.h.
Referenced by advanceTime(), currentDt(), and setCurrentDt().
| std::map<std::string, double> data::ModelData::d_dbgData |
Debug data.
Definition at line 613 of file modelData.h.
Referenced by appendKeyData(), getKeyData(), and setKeyData().
| std::vector<float> data::ModelData::d_e |
Energy of the nodes.
Definition at line 828 of file modelData.h.
| std::vector<float> data::ModelData::d_eF |
Fracture energy of the nodes.
Definition at line 840 of file modelData.h.
| std::vector<float> data::ModelData::d_eFB |
Bond-based fracture energy of the nodes.
Definition at line 843 of file modelData.h.
| std::vector<util::Point> data::ModelData::d_f |
Total force on the nodes.
Definition at line 757 of file modelData.h.
Referenced by addF(), addF(), rw::writer::VtkParticleWriter::appendNodes(), anonymous_namespace{vtkParticleWriter.cpp}::appendPointArraysForNodes(), anonymous_namespace{main.cpp}::checkWallSpringOnly(), getF(), getF(), anonymous_namespace{main.cpp}::measure(), setF(), and setF().
| std::vector<size_t> data::ModelData::d_fContCompNodes |
List of global nodes on which force (contact) is to be computed.
Definition at line 815 of file modelData.h.
Referenced by PeriDEMModel::computeExternalForces(), and PeriDEMModel::init().
| std::vector<uint8_t> data::ModelData::d_fix |
Vector of fixity mask of each node.
First bit represents x-dof, second represents y-dof, and third represents z-dof. 0 represents free dof and 1 represents fixed dof.
We store data in uint8_t type which can hold 8 bit. At present we only use first 3 bits.
Definition at line 792 of file modelData.h.
Referenced by rw::writer::VtkParticleWriter::appendNodes(), getFix(), getFix(), PeriDEMModel::init(), isDofFree(), and setFix().
| std::unique_ptr<loading::ParticleFLoading> data::ModelData::d_fLoading_p |
Pointer to force Loading object.
Definition at line 733 of file modelData.h.
Referenced by PeriDEMModel::computeExternalForces(), and PeriDEMModel::init().
| std::vector<uint8_t> data::ModelData::d_forceFixity |
Vector of fixity mask of each node for force.
Definition at line 795 of file modelData.h.
Referenced by rw::writer::VtkParticleWriter::appendNodes().
| std::vector<size_t> data::ModelData::d_fPdCompNodes |
List of global nodes on which force (peridynamic/internal) is to be computed.
Definition at line 812 of file modelData.h.
Referenced by PeriDEMModel::init(), numPdForceNodes(), and pdForceNode().
| std::unique_ptr<geometry::Fracture> data::ModelData::d_fracture_p |
Fracture state of bonds.
Definition at line 736 of file modelData.h.
Referenced by anonymous_namespace{main.cpp}::applyNotches(), anonymous_namespace{main.cpp}::applyNotchMidplanes(), anonymous_namespace{main.cpp}::applyNotchSlots(), anonymous_namespace{main.cpp}::applyPrecrack(), material::computeHydrostaticStrain(), material::computeStateThetax(), PeriDEMModel::init(), main(), anonymous_namespace{main.cpp}::measure(), anonymous_namespace{main.cpp}::nodePhi(), and material::updateBondFractureData().
| double data::ModelData::d_hMax |
Minimum mesh over all particles and walls.
Definition at line 643 of file modelData.h.
Referenced by anonymous_namespace{main.cpp}::runLaw().
| double data::ModelData::d_hMin |
Maximum mesh over all particles and walls.
Definition at line 646 of file modelData.h.
| size_t data::ModelData::d_infoN |
Print log step interval.
Definition at line 601 of file modelData.h.
Referenced by PeriDEMModel::checkStop(), PeriDEMModel::computeForces(), and PeriDEMModel::init().
| std::shared_ptr<inp::Input> data::ModelData::d_input_p |
Pointer to Input object.
Definition at line 619 of file modelData.h.
Referenced by PeriDEMModel::computeForces(), and PeriDEMModel::init().
| double data::ModelData::d_maxContactR |
Maximum contact radius between over pairs of particles and walls.
Definition at line 649 of file modelData.h.
Referenced by PeriDEMModel::init(), and anonymous_namespace{main.cpp}::runLaw().
| double data::ModelData::d_maxVelocity |
Maximum velocity among all nodes.
Definition at line 722 of file modelData.h.
Referenced by PeriDEMModel::init().
| std::vector<double> data::ModelData::d_maxVelocityParticlesListTypeAll |
Maximum velocity among all nodes in the particle for each particle.
Definition at line 719 of file modelData.h.
Referenced by PeriDEMModel::init().
| std::shared_ptr<inp::ModelDeck> data::ModelData::d_modelDeck_p |
Pointer to deck holding problem related data.
Definition at line 622 of file modelData.h.
Referenced by dimension(), main(), numTimeSteps(), PeriDEMModel::restart(), PeriDEMModel::run(), timeDiscretization(), and timeStep().
| std::vector<std::vector<int> > data::ModelData::d_mpiGhostNeedFrom |
Cached ghost grain ids requested from each MPI rank (skin rebuild).
Definition at line 668 of file modelData.h.
| bool data::ModelData::d_mpiGhostPlanValid |
True once a ghost communication plan has been built.
Definition at line 674 of file modelData.h.
| std::vector<std::vector<int> > data::ModelData::d_mpiGhostServeTo |
Cached grain ids this rank must send to each MPI rank.
Definition at line 671 of file modelData.h.
| size_t data::ModelData::d_mpiGhostStepsSinceRebuild |
Force steps since last ghost-plan rebuild.
Definition at line 677 of file modelData.h.
| std::vector<char> data::ModelData::d_mpiIncludeInContactCloud |
Per entry in d_particlesListTypeAll: include nodes in the MPI contact search cloud (owned grains, walls, and distance-limited ghosts). Empty / all-true when not using multi-rank particle parallel.
Definition at line 665 of file modelData.h.
| std::vector<double> data::ModelData::d_mX |
Weighted volume.
In case of nonlinear peridynamic state based model, this data is not required
Definition at line 808 of file modelData.h.
Referenced by addMx(), material::computeStateMx(), material::computeStateThetax(), getMx(), getMx(), and setMx().
| size_t data::ModelData::d_n |
Current time step.
Definition at line 592 of file modelData.h.
Referenced by advanceTime(), PeriDEMModel::checkStop(), PeriDEMModel::computeForces(), currentStep(), PeriDEMModel::init(), PeriDEMModel::output(), PeriDEMModel::restart(), and shouldOutput().
| std::string data::ModelData::d_name |
Model name for log prefixes.
Definition at line 604 of file modelData.h.
Referenced by PeriDEMModel::init(), PeriDEMModel::output(), PeriDEMModel::PeriDEMModel(), and PeriDEMModel::restart().
| std::vector<std::vector<size_t> > data::ModelData::d_neighC |
Neighbor data for contact forces.
Definition at line 767 of file modelData.h.
| std::vector<std::vector<size_t> > data::ModelData::d_neighPd |
Neighbor data for peridynamic forces.
Definition at line 770 of file modelData.h.
Referenced by anonymous_namespace{main.cpp}::applyNotches(), anonymous_namespace{main.cpp}::applyNotchMidplanes(), anonymous_namespace{main.cpp}::applyNotchSlots(), anonymous_namespace{main.cpp}::applyPrecrack(), material::computeHydrostaticStrain(), material::computeStateMx(), material::computeStateThetax(), PeriDEMModel::init(), main(), anonymous_namespace{main.cpp}::measure(), anonymous_namespace{main.cpp}::nodePhi(), and material::updateBondFractureData().
| std::vector<std::vector<float> > data::ModelData::d_neighPdSqdDist |
Square distance neighbor data for peridynamic forces.
Definition at line 773 of file modelData.h.
Referenced by material::computeHydrostaticStrain(), material::computeStateMx(), and material::computeStateThetax().
| std::vector<std::vector<std::vector<size_t> > > data::ModelData::d_neighWallNodes |
Neighbor data for contact between particle and walls.
Definition at line 776 of file modelData.h.
| std::vector<std::vector<size_t> > data::ModelData::d_neighWallNodesCondensed |
Neighbor data for contact between particle and walls condensed into single vector for each particle.
Definition at line 782 of file modelData.h.
| std::vector<std::vector<std::vector<double> > > data::ModelData::d_neighWallNodesDistance |
Neighbor data (distance) for contact between particle and walls.
Definition at line 779 of file modelData.h.
| std::unique_ptr<NSearch> data::ModelData::d_nsearch_p |
| std::shared_ptr<inp::OutputDeck> data::ModelData::d_outputDeck_p |
Pointer to deck holding output related data.
Definition at line 625 of file modelData.h.
Referenced by PeriDEMModel::init(), performOutput(), PeriDEMModel::PeriDEMModel(), and shouldOutput().
| std::shared_ptr<inp::ParticleDeck> data::ModelData::d_particleDeck_p |
Pointer to deck holding particle related data.
Definition at line 637 of file modelData.h.
Referenced by anonymous_namespace{main.cpp}::checkWallSpringOnly(), PeriDEMModel::init(), and main().
| std::vector<particle::BaseParticle*> data::ModelData::d_particlesListTypeAll |
List of particles + walls.
Definition at line 704 of file modelData.h.
Referenced by rw::writer::VtkParticleWriter::appendMesh(), rw::writer::VtkParticleWriter::appendMeshParallelPiece(), PeriDEMModel::applyDisplacementBC(), PeriDEMModel::applyInitialCondition(), PeriDEMModel::computeExternalForces(), getDensity(), getParticleFromAllList(), getParticleFromAllList(), and PeriDEMModel::init().
| std::vector<particle::BaseParticle*> data::ModelData::d_particlesListTypeParticle |
List of particles.
Definition at line 707 of file modelData.h.
Referenced by getParticleFromParticleList(), getParticleFromParticleList(), PeriDEMModel::init(), and main().
| std::vector<particle::BaseParticle*> data::ModelData::d_particlesListTypeWall |
List of walls.
Definition at line 710 of file modelData.h.
Referenced by getParticleFromWallList(), getParticleFromWallList(), and PeriDEMModel::init().
| std::vector<inp::MatData> data::ModelData::d_particlesMatDataList |
List of particle material data. Only populated if needed for calculation of stress or other quantities.
Definition at line 716 of file modelData.h.
| bool data::ModelData::d_pdDofMpi |
Nodal DOF-MPI active.
Definition at line 680 of file modelData.h.
Referenced by rw::writer::VtkParticleWriter::appendMeshParallelPiece(), PeriDEMModel::computeExternalForces(), and PeriDEMModel::init().
| std::vector<std::vector<int> > data::ModelData::d_pdGhostNeedFrom |
Ghost node ids requested from each rank (PD DOF halo).
Definition at line 695 of file modelData.h.
| std::vector<std::vector<int> > data::ModelData::d_pdGhostServeTo |
Local node ids this rank must send to each rank.
Definition at line 698 of file modelData.h.
| bool data::ModelData::d_pdGrainAligned |
DOF owners match whole-grain brick (same as particle-MPI). When true, every node of a grain lives on one rank — contact ghosts are the particle ghost plan, not a full nodal Allreduce. When false, Metis may split a grain across ranks — need syncAllOwned (or a PD halo large enough for contact) before contact reads remote u/v.
Definition at line 689 of file modelData.h.
| std::vector<size_t> data::ModelData::d_pdNodePartition |
Owner rank for each node when d_pdDofMpi is true.
Definition at line 692 of file modelData.h.
Referenced by rw::writer::VtkParticleWriter::appendMeshParallelPiece(), and PeriDEMModel::init().
| std::vector<float> data::ModelData::d_phi |
Damage function \( \phi \) at the nodes (volume-weighted, Silling 2000)
Definition at line 834 of file modelData.h.
Referenced by rw::writer::VtkParticleWriter::appendNodes(), anonymous_namespace{vtkParticleWriter.cpp}::appendPointArraysForNodes(), PeriDEMModel::init(), and anonymous_namespace{main.cpp}::nodeDamageForFit().
| std::vector<float> data::ModelData::d_phiBond |
Damage as broken-bond count fraction (Bhattacharya & Lipton 2023)
Definition at line 837 of file modelData.h.
Referenced by rw::writer::VtkParticleWriter::appendNodes(), anonymous_namespace{vtkParticleWriter.cpp}::appendPointArraysForNodes(), PeriDEMModel::init(), and anonymous_namespace{main.cpp}::nodeDamageForFit().
| std::ofstream data::ModelData::d_ppFile |
File stream to output information.
Definition at line 616 of file modelData.h.
| std::vector<size_t> data::ModelData::d_ptId |
Global node to particle id (walls are assigned id after last particle id)
Definition at line 764 of file modelData.h.
Referenced by anonymous_namespace{vtkParticleWriter.cpp}::appendPointArraysForNodes(), anonymous_namespace{main.cpp}::applyNotches(), anonymous_namespace{main.cpp}::applyNotchMidplanes(), anonymous_namespace{main.cpp}::applyNotchSlots(), anonymous_namespace{main.cpp}::checkWallSpringOnly(), anonymous_namespace{main.cpp}::fitCrackFromPhi(), getDensity(), getPtId(), getPtId(), PeriDEMModel::init(), main(), anonymous_namespace{main.cpp}::minGrainWallGap(), and setPtId().
| std::vector<std::pair<double, std::string> > data::ModelData::d_pvdParticleEntries |
(simulation time, VTU filename) for output.pvd
Definition at line 607 of file modelData.h.
| std::vector<std::pair<double, std::string> > data::ModelData::d_pvdStrainEntries |
(simulation time, VTU filename) for output_strain.pvd
Definition at line 610 of file modelData.h.
| std::vector<std::shared_ptr<particle::RefParticle> > data::ModelData::d_referenceParticles |
Pointer to reference particle.
Definition at line 701 of file modelData.h.
| std::shared_ptr<inp::RestartDeck> data::ModelData::d_restartDeck_p |
Pointer to deck holding restart related data.
Definition at line 628 of file modelData.h.
Referenced by PeriDEMModel::restart().
| bool data::ModelData::d_stop |
flag to stop the simulation midway
Definition at line 640 of file modelData.h.
| std::vector<util::SymMatrix3> data::ModelData::d_strain |
Strain in elements (values at quadrature points)
Definition at line 849 of file modelData.h.
Referenced by rw::writer::VtkParticleWriter::appendStrainStress().
| std::vector<util::SymMatrix3> data::ModelData::d_stress |
Stress in elements (values at quadrature points)
Definition at line 852 of file modelData.h.
Referenced by rw::writer::VtkParticleWriter::appendStrainStress().
| float data::ModelData::d_te |
Total internal energy.
Definition at line 855 of file modelData.h.
| float data::ModelData::d_teF |
Total fracture energy.
Definition at line 864 of file modelData.h.
| float data::ModelData::d_teFB |
Total bond-based fracture energy.
Definition at line 867 of file modelData.h.
| std::shared_ptr<inp::TestDeck> data::ModelData::d_testDeck_p |
Test deck.
Definition at line 631 of file modelData.h.
Referenced by PeriDEMModel::checkStop(), and PeriDEMModel::init().
| std::vector<double> data::ModelData::d_thetaX |
Dilation.
In case of nonlinear peridynamic state based model, this will be the spherical (hydrostatic) strain
Definition at line 802 of file modelData.h.
Referenced by addThetax(), rw::writer::VtkParticleWriter::appendNodes(), material::computeHydrostaticStrain(), material::computeStateThetax(), getThetax(), getThetax(), and setThetax().
| double data::ModelData::d_time |
Current time.
Definition at line 595 of file modelData.h.
Referenced by advanceTime(), PeriDEMModel::applyDisplacementBC(), PeriDEMModel::computeExternalForces(), PeriDEMModel::init(), main(), PeriDEMModel::output(), and PeriDEMModel::restart().
| float data::ModelData::d_tk |
Total kinetic energy.
Definition at line 861 of file modelData.h.
| float data::ModelData::d_tw |
Total work done.
Definition at line 858 of file modelData.h.
| std::vector<util::Point> data::ModelData::d_u |
Displacement of the nodes.
Definition at line 748 of file modelData.h.
Referenced by addU(), addU(), rw::writer::VtkParticleWriter::appendNodes(), anonymous_namespace{vtkParticleWriter.cpp}::appendPointArraysForNodes(), anonymous_namespace{main.cpp}::applyRigidOpenClose(), material::computeHydrostaticStrain(), material::computeStateThetax(), getU(), getU(), main(), setU(), setU(), and material::updateBondFractureData().
| std::unique_ptr<loading::ParticleULoading> data::ModelData::d_uLoading_p |
Pointer to displacement Loading object.
Definition at line 730 of file modelData.h.
Referenced by PeriDEMModel::applyDisplacementBC(), and PeriDEMModel::init().
| std::vector<util::Point> data::ModelData::d_v |
Velocity of the nodes.
Definition at line 751 of file modelData.h.
Referenced by addV(), addV(), rw::writer::VtkParticleWriter::appendNodes(), anonymous_namespace{vtkParticleWriter.cpp}::appendPointArraysForNodes(), anonymous_namespace{main.cpp}::applyRigidOpenClose(), getV(), getV(), main(), setV(), and setV().
| std::vector<double> data::ModelData::d_vMag |
Magnitude of velocity of the nodes.
Definition at line 754 of file modelData.h.
| std::vector<double> data::ModelData::d_vol |
Nodal volumes.
Definition at line 760 of file modelData.h.
Referenced by addVol(), rw::writer::VtkParticleWriter::appendNodes(), anonymous_namespace{vtkParticleWriter.cpp}::appendPointArraysForNodes(), anonymous_namespace{main.cpp}::checkWallSpringOnly(), material::computeHydrostaticStrain(), material::computeStateMx(), material::computeStateThetax(), getVol(), getVol(), anonymous_namespace{main.cpp}::measure(), and setVol().
| std::vector<float> data::ModelData::d_w |
Work done on each of the nodes.
Definition at line 831 of file modelData.h.
| std::vector<util::Point> data::ModelData::d_x |
Current positions of the nodes.
Definition at line 745 of file modelData.h.
Referenced by addX(), addX(), rw::writer::VtkParticleWriter::appendContactData(), rw::writer::VtkParticleWriter::appendMesh(), rw::writer::VtkParticleWriter::appendMeshParallelPiece(), rw::writer::VtkParticleWriter::appendNodes(), anonymous_namespace{main.cpp}::applyRigidOpenClose(), anonymous_namespace{main.cpp}::checkWallSpringOnly(), PeriDEMModel::computeForces(), material::computeHydrostaticStrain(), material::computeStateMx(), material::computeStateThetax(), getX(), getX(), PeriDEMModel::init(), main(), anonymous_namespace{main.cpp}::measure(), anonymous_namespace{main.cpp}::minGrainWallGap(), rw::reader::VtkParticleReader::readNodes(), PeriDEMModel::restart(), anonymous_namespace{main.cpp}::runLaw(), setX(), setX(), and material::updateBondFractureData().
| std::vector<util::Point> data::ModelData::d_xQuadCur |
Current position of quadrature points.
Definition at line 846 of file modelData.h.
Referenced by rw::writer::VtkParticleWriter::appendStrainStress().
| std::vector<util::Point> data::ModelData::d_xRef |
reference positions of the nodes
Definition at line 742 of file modelData.h.
Referenced by addXRef(), addXRef(), anonymous_namespace{main.cpp}::applyNotches(), anonymous_namespace{main.cpp}::applyNotchMidplanes(), anonymous_namespace{main.cpp}::applyNotchSlots(), anonymous_namespace{main.cpp}::applyPrecrack(), anonymous_namespace{main.cpp}::applyRigidOpenClose(), material::computeHydrostaticStrain(), material::computeStateMx(), material::computeStateThetax(), anonymous_namespace{main.cpp}::fitCrackFromPhi(), getXRef(), getXRef(), main(), anonymous_namespace{main.cpp}::measure(), setXRef(), setXRef(), and material::updateBondFractureData().
| std::vector<float> data::ModelData::d_Z |
Damage at nodes.
Definition at line 818 of file modelData.h.
Referenced by rw::writer::VtkParticleWriter::appendNodes(), anonymous_namespace{vtkParticleWriter.cpp}::appendPointArraysForNodes(), PeriDEMModel::init(), and main().
| std::vector<std::vector<size_t> > data::ModelData::d_zInfo |
Zone information of particles. For zone 0, d_zInfo[0] = [n1, n2] where n1 is the index at which the particle in this zone starts in d_particlesListTypeAll and n2 is the index + 1, where index is at which the particle in this zone ends.
Definition at line 727 of file modelData.h.