PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
Loading...
Searching...
No Matches
data::ModelData Class Reference

A class to store model data. More...

#include <modelData.h>

Inheritance diagram for data::ModelData:
Collaboration diagram for data::ModelData:

Public Member Functions

 ModelData (std::shared_ptr< inp::Input > &deck)
 Constructor.
 
const particle::BaseParticlegetParticleFromAllList (size_t i) const
 Get pointer to base particle.
 
particle::BaseParticle *& getParticleFromAllList (size_t i)
 Get pointer to base particle.
 
const particle::BaseParticlegetParticleFromParticleList (size_t i) const
 Get pointer to particle (excluding wall)
 
particle::BaseParticle *& getParticleFromParticleList (size_t i)
 
const particle::BaseParticlegetParticleFromWallList (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::PointgetXRef (size_t i)
 Get reference coordinate of the node.
 
const util::PointgetXRef (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::PointgetX (size_t i)
 Get current coordinate of the node.
 
const util::PointgetX (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::PointgetU (size_t i)
 Get displacement of the node.
 
const util::PointgetU (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::PointgetV (size_t i)
 Get velocity of the node.
 
const util::PointgetV (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::PointgetF (size_t i)
 Get force of the node.
 
const util::PointgetF (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::Inputd_input_p
 Pointer to Input object.
 
std::shared_ptr< inp::ModelDeckd_modelDeck_p
 Pointer to deck holding problem related data.
 
std::shared_ptr< inp::OutputDeckd_outputDeck_p
 Pointer to deck holding output related data.
 
std::shared_ptr< inp::RestartDeckd_restartDeck_p
 Pointer to deck holding restart related data.
 
std::shared_ptr< inp::TestDeckd_testDeck_p
 Test deck.
 
std::shared_ptr< inp::BCDeckd_bcDeck_p
 Boundary condition deck.
 
std::shared_ptr< inp::ParticleDeckd_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::MatDatad_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::ParticleULoadingd_uLoading_p
 Pointer to displacement Loading object.
 
std::unique_ptr< loading::ParticleFLoadingd_fLoading_p
 Pointer to force Loading object.
 
std::unique_ptr< geometry::Fractured_fracture_p
 Fracture state of bonds.
 
std::unique_ptr< NSearchd_nsearch_p
 Pointer to nsearch.
 
std::vector< util::Pointd_xRef
 reference positions of the nodes
 
std::vector< util::Pointd_x
 Current positions of the nodes.
 
std::vector< util::Pointd_u
 Displacement of the nodes.
 
std::vector< util::Pointd_v
 Velocity of the nodes.
 
std::vector< double > d_vMag
 Magnitude of velocity of the nodes.
 
std::vector< util::Pointd_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::Pointd_xQuadCur
 Current position of quadrature points.
 
std::vector< util::SymMatrix3d_strain
 Strain in elements (values at quadrature points)
 
std::vector< util::SymMatrix3d_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.
 

Detailed Description

A class to store model data.

Definition at line 50 of file modelData.h.

Constructor & Destructor Documentation

◆ ModelData()

data::ModelData::ModelData ( std::shared_ptr< inp::Input > &  deck)
inline

Constructor.

Parameters
deckInput deck

Definition at line 57 of file modelData.h.

58 : d_n(0),
59 d_time(0.),
60 d_currentDt(0.),
61 d_infoN(1),
62 d_name("Model"),
63 d_input_p(deck),
64 d_modelDeck_p(deck->d_modelDeck_p),
65 d_outputDeck_p(deck->d_outputDeck_p),
66 d_restartDeck_p(deck->d_restartDeck_p),
67 d_testDeck_p(deck->d_testDeck_p),
68 d_bcDeck_p(deck->d_bcDeck_p),
69 d_particleDeck_p(deck->d_particleDeck_p),
70 d_stop(false), d_hMax(0.), d_hMin(0.), d_maxContactR(0.),
76 d_pdDofMpi(false),
77 d_pdGrainAligned(false),
78 d_uLoading_p(nullptr), d_fLoading_p(nullptr),
79 d_fracture_p(nullptr), d_nsearch_p(nullptr) {}
std::unique_ptr< loading::ParticleULoading > d_uLoading_p
Pointer to displacement Loading object.
Definition modelData.h:730
std::shared_ptr< inp::TestDeck > d_testDeck_p
Test deck.
Definition modelData.h:631
bool d_pdDofMpi
Nodal DOF-MPI active.
Definition modelData.h:680
std::unique_ptr< geometry::Fracture > d_fracture_p
Fracture state of bonds.
Definition modelData.h:736
double d_time
Current time.
Definition modelData.h:595
std::string d_name
Model name for log prefixes.
Definition modelData.h:604
std::shared_ptr< inp::ModelDeck > d_modelDeck_p
Pointer to deck holding problem related data.
Definition modelData.h:622
std::shared_ptr< inp::RestartDeck > d_restartDeck_p
Pointer to deck holding restart related data.
Definition modelData.h:628
double d_hMin
Maximum mesh over all particles and walls.
Definition modelData.h:646
std::shared_ptr< inp::ParticleDeck > d_particleDeck_p
Pointer to deck holding particle related data.
Definition modelData.h:637
std::unique_ptr< NSearch > d_nsearch_p
Pointer to nsearch.
Definition modelData.h:739
bool d_mpiGhostPlanValid
True once a ghost communication plan has been built.
Definition modelData.h:674
size_t d_mpiGhostStepsSinceRebuild
Force steps since last ghost-plan rebuild.
Definition modelData.h:677
double d_maxContactR
Maximum contact radius between over pairs of particles and walls.
Definition modelData.h:649
double d_contNeighSearchRadius
Neighborlist contact search radius (multiple of d_maxContactR). This variable will be updated during ...
Definition modelData.h:658
double d_hMax
Minimum mesh over all particles and walls.
Definition modelData.h:643
bool d_pdGrainAligned
DOF owners match whole-grain brick (same as particle-MPI). When true, every node of a grain lives on ...
Definition modelData.h:689
size_t d_contNeighTimestepCounter
Contact neighborlist time step counter.
Definition modelData.h:655
std::unique_ptr< loading::ParticleFLoading > d_fLoading_p
Pointer to force Loading object.
Definition modelData.h:733
std::shared_ptr< inp::Input > d_input_p
Pointer to Input object.
Definition modelData.h:619
size_t d_contNeighUpdateInterval
Neighborlist update interval.
Definition modelData.h:652
size_t d_infoN
Print log step interval.
Definition modelData.h:601
double d_currentDt
Current timestep.
Definition modelData.h:598
std::shared_ptr< inp::BCDeck > d_bcDeck_p
Boundary condition deck.
Definition modelData.h:634
std::shared_ptr< inp::OutputDeck > d_outputDeck_p
Pointer to deck holding output related data.
Definition modelData.h:625
bool d_stop
flag to stop the simulation midway
Definition modelData.h:640
size_t d_n
Current time step.
Definition modelData.h:592

Member Function Documentation

◆ addF() [1/2]

void data::ModelData::addF ( size_t  i,
const util::Point f 
)
inline

Add to force of the node.

Parameters
iGlobal id of node
fForce to add

Definition at line 443 of file modelData.h.

443{ d_f[i] += f; };
std::vector< util::Point > d_f
Total force on the nodes.
Definition modelData.h:757

References d_f.

◆ addF() [2/2]

void data::ModelData::addF ( size_t  i,
int  dof,
double  f 
)
inline

Add to force of the node.

Parameters
iGlobal id of node
dofDirection or degree of freedom to be modified
fForce to add

Definition at line 459 of file modelData.h.

459{ d_f[i][dof] += f; };

References d_f.

◆ addMx()

void data::ModelData::addMx ( size_t  i,
const double &  mx 
)
inline

Add to weighted-volume (mx) of the node.

Parameters
iGlobal id of node
mxWeighted-volume to add

Definition at line 555 of file modelData.h.

555{ d_mX[i] += mx; };
std::vector< double > d_mX
Weighted volume.
Definition modelData.h:808

References d_mX.

◆ addThetax()

void data::ModelData::addThetax ( size_t  i,
const double &  thetax 
)
inline

Add to volumetric deformation (thetax) of the node.

Parameters
iGlobal id of node
thetaxVolumetric deformation to add

Definition at line 586 of file modelData.h.

586{ d_thetaX[i] += thetax; };
std::vector< double > d_thetaX
Dilation.
Definition modelData.h:802

References d_thetaX.

◆ addU() [1/2]

void data::ModelData::addU ( size_t  i,
const util::Point u 
)
inline

Add to displacement of the node.

Parameters
iGlobal id of node
uDisplacement to add

Definition at line 349 of file modelData.h.

349{ d_u[i] += u; };
std::vector< util::Point > d_u
Displacement of the nodes.
Definition modelData.h:748

References d_u.

◆ addU() [2/2]

void data::ModelData::addU ( size_t  i,
int  dof,
double  u 
)
inline

Add to displacement of the node.

Parameters
iGlobal id of node
dofDirection or degree of freedom to be modified
uDisplacement to add

Definition at line 365 of file modelData.h.

365{ d_u[i][dof] += u; };

References d_u.

◆ addV() [1/2]

void data::ModelData::addV ( size_t  i,
const util::Point v 
)
inline

Add to velocity of the node.

Parameters
iGlobal id of node
vVelocity to add

Definition at line 396 of file modelData.h.

396{ d_v[i] += v; };
std::vector< util::Point > d_v
Velocity of the nodes.
Definition modelData.h:751

References d_v.

◆ addV() [2/2]

void data::ModelData::addV ( size_t  i,
int  dof,
double  v 
)
inline

Add to velocity of the node.

Parameters
iGlobal id of node
dofDirection or degree of freedom to be modified
vVelocity to add

Definition at line 412 of file modelData.h.

412{ d_v[i][dof] += v; };

References d_v.

◆ addVol()

void data::ModelData::addVol ( size_t  i,
const double &  vol 
)
inline

Add to volume of the node.

Parameters
iGlobal id of node
volVolume to add

Definition at line 490 of file modelData.h.

490{ d_vol[i] += vol; };
std::vector< double > d_vol
Nodal volumes.
Definition modelData.h:760

References d_vol.

◆ addX() [1/2]

void data::ModelData::addX ( size_t  i,
const util::Point x 
)
inline

Add current coordinate of the node.

Parameters
iGlobal id of node
xCurrent coordinate to add

Definition at line 302 of file modelData.h.

302{ d_x[i] += x; };
std::vector< util::Point > d_x
Current positions of the nodes.
Definition modelData.h:745

References d_x.

◆ addX() [2/2]

void data::ModelData::addX ( size_t  i,
int  dof,
double  x 
)
inline

Add to specific current coordinate of the node.

Parameters
iGlobal id of node
dofDirection or degree of freedom to be modified
xCurrent coordinate to add

Definition at line 318 of file modelData.h.

318{ d_x[i][dof] += x; };

References d_x.

◆ addXRef() [1/2]

void data::ModelData::addXRef ( size_t  i,
const util::Point x 
)
inline

Add reference coordinate of the node.

Parameters
iGlobal id of node
xReference coordinate to add

Definition at line 255 of file modelData.h.

255{ d_xRef[i] += x; };
std::vector< util::Point > d_xRef
reference positions of the nodes
Definition modelData.h:742

References d_xRef.

◆ addXRef() [2/2]

void data::ModelData::addXRef ( size_t  i,
int  dof,
double  x 
)
inline

Add specific reference coordinate of the node.

Parameters
iGlobal id of node
dofDirection or degree of freedom to be modified
xReference coordinate to add

Definition at line 271 of file modelData.h.

271{ d_xRef[i][dof] += x; };

References d_xRef.

◆ advanceTime()

void data::ModelData::advanceTime ( )
inline

Definition at line 147 of file modelData.h.

147 {
148 ++d_n;
150 }

References d_currentDt, d_n, and d_time.

◆ appendKeyData()

void data::ModelData::appendKeyData ( std::string  key,
double  data,
bool  issue_err = false 
)
inline

Append value to data associated with key.

Parameters
keyKey to append the data to

Definition at line 215 of file modelData.h.

215 {
217 };
std::map< std::string, double > d_dbgData
Debug data.
Definition modelData.h:613
Definition contact.h:20
T max(const std::vector< T > &data)
Returns the maximum from list of data.
Definition vecMethods.h:74

References d_dbgData, and util::methods::max().

Referenced by PeriDEMModel::computeForces(), and PeriDEMModel::init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ currentDt()

double data::ModelData::currentDt ( ) const
inline

Definition at line 143 of file modelData.h.

143{ return d_currentDt; }

References d_currentDt.

◆ currentStep()

size_t data::ModelData::currentStep ( ) const
inline

Definition at line 164 of file modelData.h.

164{ return d_n; }

References d_n.

Referenced by main(), and PeriDEMModel::output().

Here is the caller graph for this function:

◆ dimension()

int data::ModelData::dimension ( ) const
inline

Definition at line 139 of file modelData.h.

139{ return d_modelDeck_p->d_dim; }

References d_modelDeck_p.

◆ getDensity()

double data::ModelData::getDensity ( size_t  i)

Get density of particle.

Parameters
iLocation in the particle list
Returns
rho Density

Definition at line 14 of file modelData.cpp.

14 {
15 return d_particlesListTypeAll[d_ptId[i]]->getDensity();
16};
std::vector< size_t > d_ptId
Global node to particle id (walls are assigned id after last particle id)
Definition modelData.h:764
std::vector< particle::BaseParticle * > d_particlesListTypeAll
List of particles + walls.
Definition modelData.h:704

References d_particlesListTypeAll, and d_ptId.

◆ getF() [1/2]

util::Point & data::ModelData::getF ( size_t  i)
inline

Get force of the node.

Parameters
iGlobal id of node
Returns
f Force

Definition at line 426 of file modelData.h.

426{ return d_f[i]; };

References d_f.

◆ getF() [2/2]

const util::Point & data::ModelData::getF ( size_t  i) const
inline

Get force of the node.

Parameters
iGlobal id of node
Returns
f Force

Definition at line 429 of file modelData.h.

429{ return d_f[i]; };

References d_f.

◆ getFix() [1/2]

uint8_t & data::ModelData::getFix ( size_t  i)
inline

Get fixity of the node.

Parameters
iGlobal id of node
Returns
flag Fixity

Definition at line 504 of file modelData.h.

504{ return d_fix[i]; };
std::vector< uint8_t > d_fix
Vector of fixity mask of each node.
Definition modelData.h:792

References d_fix.

◆ getFix() [2/2]

const uint8_t & data::ModelData::getFix ( size_t  i) const
inline

Get fixity of the node.

Parameters
iGlobal id of node
Returns
flag Fixity

Definition at line 507 of file modelData.h.

507{ return d_fix[i]; };

References d_fix.

◆ getHorizon()

double data::ModelData::getHorizon ( size_t  i)

Get horizon of particle.

Parameters
iLocation in the particle list
Returns
eps Horizon

Definition at line 17 of file modelData.cpp.

17 {
18 return d_particlesListTypeAll[d_ptId[i]]->getHorizon();
19}

◆ getKeyData()

double data::ModelData::getKeyData ( std::string  key,
bool  issue_err = false 
)
inline

Get data for a key.

Parameters
keyKey to access the data
Returns
data Value of data

Definition at line 206 of file modelData.h.

206 {
207 return util::methods::getKeyData<double>(key, d_dbgData, issue_err);
208 };

References d_dbgData, and util::methods::max().

Referenced by PeriDEMModel::computeForces().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getMx() [1/2]

double & data::ModelData::getMx ( size_t  i)
inline

Get weighted-volume (mx) of the node.

Parameters
iGlobal id of node
Returns
mx Weighted-volume

Definition at line 538 of file modelData.h.

538{ return d_mX[i]; };

References d_mX.

◆ getMx() [2/2]

const double & data::ModelData::getMx ( size_t  i) const
inline

Get weighted-volume (mx) of the node.

Parameters
iGlobal id of node
Returns
mx Weighted-volume

Definition at line 541 of file modelData.h.

541{ return d_mX[i]; };

References d_mX.

◆ getParticleFromAllList() [1/2]

particle::BaseParticle *& data::ModelData::getParticleFromAllList ( size_t  i)
inline

Get pointer to base particle.

Parameters
iLocation in the particle list
Returns
Pointer Pointer to base particle

Definition at line 90 of file modelData.h.

90 { return

References d_particlesListTypeAll.

◆ getParticleFromAllList() [2/2]

const particle::BaseParticle * data::ModelData::getParticleFromAllList ( size_t  i) const
inline

Get pointer to base particle.

Parameters
iLocation in the particle list
Returns
Pointer Pointer to base particle

Definition at line 86 of file modelData.h.

86 { return

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

Here is the caller graph for this function:

◆ getParticleFromParticleList() [1/2]

particle::BaseParticle *& data::ModelData::getParticleFromParticleList ( size_t  i)
inline

Definition at line 102 of file modelData.h.

102 { return
std::vector< particle::BaseParticle * > d_particlesListTypeParticle
List of particles.
Definition modelData.h:707

References d_particlesListTypeParticle.

◆ getParticleFromParticleList() [2/2]

const particle::BaseParticle * data::ModelData::getParticleFromParticleList ( size_t  i) const
inline

Get pointer to particle (excluding wall)

Parameters
iLocation in the particle list
Returns
Pointer Pointer to particle

Definition at line 98 of file modelData.h.

98 { return

References d_particlesListTypeParticle.

◆ getParticleFromWallList() [1/2]

particle::BaseParticle *& data::ModelData::getParticleFromWallList ( size_t  i)
inline

Definition at line 114 of file modelData.h.

114 { return
std::vector< particle::BaseParticle * > d_particlesListTypeWall
List of walls.
Definition modelData.h:710

References d_particlesListTypeWall.

◆ getParticleFromWallList() [2/2]

const particle::BaseParticle * data::ModelData::getParticleFromWallList ( size_t  i) const
inline

Get pointer to wall.

Parameters
iLocation in the wall list
Returns
Pointer Pointer to wall

Definition at line 110 of file modelData.h.

110 { return

References d_particlesListTypeWall.

◆ getPtId() [1/2]

size_t & data::ModelData::getPtId ( size_t  i)
inline

Get particle id given the location in particle list.

Parameters
iLocation in the particle list
Returns
Id Particle id

Definition at line 187 of file modelData.h.

187{ return d_ptId[i]; };

References d_ptId.

Referenced by rw::writer::VtkParticleWriter::appendNodes(), material::computeHydrostaticStrain(), material::computeStateMx(), material::computeStateThetax(), and material::updateBondFractureData().

Here is the caller graph for this function:

◆ getPtId() [2/2]

const size_t & data::ModelData::getPtId ( size_t  i) const
inline

Get particle id given the location in particle list.

Parameters
iLocation in the particle list
Returns
Id Particle id

Definition at line 190 of file modelData.h.

190{ return d_ptId[i]; };

References d_ptId.

◆ getThetax() [1/2]

double & data::ModelData::getThetax ( size_t  i)
inline

Get volumetric deformation (thetax) of the node.

Parameters
iGlobal id of node
Returns
thetax Volumetric deformation

Definition at line 569 of file modelData.h.

569{ return d_thetaX[i]; };

References d_thetaX.

◆ getThetax() [2/2]

const double & data::ModelData::getThetax ( size_t  i) const
inline

Get volumetric deformation (thetax) of the node.

Parameters
iGlobal id of node
Returns
thetax Volumetric deformation

Definition at line 572 of file modelData.h.

572{ return d_thetaX[i]; };

References d_thetaX.

◆ getU() [1/2]

util::Point & data::ModelData::getU ( size_t  i)
inline

Get displacement of the node.

Parameters
iGlobal id of node
Returns
u Displacement

Definition at line 332 of file modelData.h.

332{ return d_u[i]; };

References d_u.

◆ getU() [2/2]

const util::Point & data::ModelData::getU ( size_t  i) const
inline

Get displacement of the node.

Parameters
iGlobal id of node
Returns
u Displacement

Definition at line 335 of file modelData.h.

335{ return d_u[i]; };

References d_u.

◆ getV() [1/2]

util::Point & data::ModelData::getV ( size_t  i)
inline

Get velocity of the node.

Parameters
iGlobal id of node
Returns
v Velocity

Definition at line 379 of file modelData.h.

379{ return d_v[i]; };

References d_v.

◆ getV() [2/2]

const util::Point & data::ModelData::getV ( size_t  i) const
inline

Get velocity of the node.

Parameters
iGlobal id of node
Returns
v Velocity

Definition at line 382 of file modelData.h.

382{ return d_v[i]; };

References d_v.

◆ getVMag()

double data::ModelData::getVMag ( size_t  i) const
inline

Definition at line 160 of file modelData.h.

160{ return d_vMag[i]; }
std::vector< double > d_vMag
Magnitude of velocity of the nodes.
Definition modelData.h:754

References d_vMag.

◆ getVol() [1/2]

double & data::ModelData::getVol ( size_t  i)
inline

Get volume of the node.

Parameters
iGlobal id of node
Returns
vol Volume

Definition at line 473 of file modelData.h.

473{ return d_vol[i]; };

References d_vol.

◆ getVol() [2/2]

const double & data::ModelData::getVol ( size_t  i) const
inline

Get volume of the node.

Parameters
iGlobal id of node
Returns
vol Volume

Definition at line 476 of file modelData.h.

476{ return d_vol[i]; };

References d_vol.

◆ getX() [1/2]

util::Point & data::ModelData::getX ( size_t  i)
inline

Get current coordinate of the node.

Parameters
iGlobal id of node
Returns
x Current coordinate

Definition at line 285 of file modelData.h.

285{ return d_x[i]; };

References d_x.

Referenced by rw::reader::VtkParticleReader::readNodes().

Here is the caller graph for this function:

◆ getX() [2/2]

const util::Point & data::ModelData::getX ( size_t  i) const
inline

Get current coordinate of the node.

Parameters
iGlobal id of node
Returns
x Current coordinate

Definition at line 288 of file modelData.h.

288{ return d_x[i]; };

References d_x.

◆ getXRef() [1/2]

util::Point & data::ModelData::getXRef ( size_t  i)
inline

Get reference coordinate of the node.

Parameters
iGlobal id of node
Returns
x Reference coordinate

Definition at line 238 of file modelData.h.

238{ return d_xRef[i]; };

References d_xRef.

Referenced by rw::reader::VtkParticleReader::readNodes().

Here is the caller graph for this function:

◆ getXRef() [2/2]

const util::Point & data::ModelData::getXRef ( size_t  i) const
inline

Get reference coordinate of the node.

Parameters
iGlobal id of node
Returns
x Reference coordinate

Definition at line 241 of file modelData.h.

241{ return d_xRef[i]; };

References d_xRef.

◆ isDofFree()

bool data::ModelData::isDofFree ( size_t  i,
unsigned int  dof 
) const
inline

Definition at line 156 of file modelData.h.

156 {
157 return util::methods::isFree(d_fix[i], dof);
158 }
bool isFree(const int &i, const unsigned int &dof)
Returns true if degree of freedom is free.
Definition vecMethods.h:249

References d_fix, and util::methods::isFree().

Here is the call graph for this function:

◆ numPdForceNodes()

size_t data::ModelData::numPdForceNodes ( ) const
inline

Definition at line 152 of file modelData.h.

152{ return d_fPdCompNodes.size(); }
std::vector< size_t > d_fPdCompNodes
List of global nodes on which force (peridynamic/internal) is to be computed.
Definition modelData.h:812

References d_fPdCompNodes.

◆ numTimeSteps()

size_t data::ModelData::numTimeSteps ( ) const
inline

Definition at line 166 of file modelData.h.

166{ return d_modelDeck_p->d_Nt; }

References d_modelDeck_p.

Referenced by main().

Here is the caller graph for this function:

◆ pdForceNode()

size_t data::ModelData::pdForceNode ( size_t  k) const
inline

Definition at line 154 of file modelData.h.

154{ return d_fPdCompNodes[k]; }

References d_fPdCompNodes.

◆ performOutput()

bool data::ModelData::performOutput ( ) const
inline

Definition at line 172 of file modelData.h.

172{ return d_outputDeck_p->d_performOut; }

References d_outputDeck_p.

Referenced by main().

Here is the caller graph for this function:

◆ setCurrentDt()

void data::ModelData::setCurrentDt ( double  dt)
inline

Definition at line 145 of file modelData.h.

145{ d_currentDt = dt; }

References d_currentDt.

Referenced by main().

Here is the caller graph for this function:

◆ setF() [1/2]

void data::ModelData::setF ( size_t  i,
const util::Point f 
)
inline

Set force of the node.

Parameters
iGlobal id of node
fForce to set

Definition at line 436 of file modelData.h.

436{ d_f[i] = f; };

References d_f.

◆ setF() [2/2]

void data::ModelData::setF ( size_t  i,
int  dof,
double  f 
)
inline

Set force of the node.

Parameters
iGlobal id of node
dofDirection or degree of freedom to be modified
fForce to set

Definition at line 451 of file modelData.h.

451{ d_f[i][dof] = f; };

References d_f.

◆ setFix()

void data::ModelData::setFix ( size_t  i,
const unsigned int &  dof,
const bool &  flag 
)
inline

Set fixity of the node.

Parameters
iGlobal id of node
dofDirection or degree of freedom to be modified
flagFixity to set

Definition at line 515 of file modelData.h.

516 {
517 // to set i^th bit as true of integer a,
518 // a |= 1UL << (i % 8)
519
520 // to set i^th bit as false of integer a,
521 // a &= ~(1UL << (i % 8))
522
523 flag ? (d_fix[i] |= 1UL << dof) : (d_fix[i] &= ~(1UL << dof));
524 };

References d_fix.

◆ setKeyData()

void data::ModelData::setKeyData ( std::string  key,
double  data,
bool  issue_err = false 
)
inline

Set value to data associated with key.

Parameters
keyKey to append the data to

Definition at line 224 of file modelData.h.

224 {
226 };

References d_dbgData, and util::methods::max().

Here is the call graph for this function:

◆ setMx()

void data::ModelData::setMx ( size_t  i,
const double &  mx 
)
inline

Set weighted-volume (mx) of the node.

Parameters
iGlobal id of node
mxWeighted-volume to set

Definition at line 548 of file modelData.h.

548{ d_mX[i] = mx; };

References d_mX.

Referenced by material::computeStateMx().

Here is the caller graph for this function:

◆ setPtId()

void data::ModelData::setPtId ( size_t  i,
const size_t &  id 
)
inline

Set particle id given the location in particle list.

Parameters
iLocation in the particle list
idParticle id to set

Definition at line 197 of file modelData.h.

197{ d_ptId[i] = id; };

References d_ptId.

◆ setThetax()

void data::ModelData::setThetax ( size_t  i,
const double &  thetax 
)
inline

Set volumetric deformation (thetax) of the node.

Parameters
iGlobal id of node
thetaxVolumetric deformation to set

Definition at line 579 of file modelData.h.

579{ d_thetaX[i] = thetax; };

References d_thetaX.

Referenced by material::computeHydrostaticStrain(), and material::computeStateThetax().

Here is the caller graph for this function:

◆ setU() [1/2]

void data::ModelData::setU ( size_t  i,
const util::Point u 
)
inline

Set displacement of the node.

Parameters
iGlobal id of node
uDisplacement to set

Definition at line 342 of file modelData.h.

342{ d_u[i] = u; };

References d_u.

Referenced by rw::reader::VtkParticleReader::readNodes().

Here is the caller graph for this function:

◆ setU() [2/2]

void data::ModelData::setU ( size_t  i,
int  dof,
double  u 
)
inline

Set displacement of the node.

Parameters
iGlobal id of node
dofDirection or degree of freedom to be modified
uDisplacement to set

Definition at line 357 of file modelData.h.

357{ d_u[i][dof] = u; };

References d_u.

◆ setV() [1/2]

void data::ModelData::setV ( size_t  i,
const util::Point v 
)
inline

Set velocity of the node.

Parameters
iGlobal id of node
vVelocity to set

Definition at line 389 of file modelData.h.

389{ d_v[i] = v; };

References d_v.

Referenced by rw::reader::VtkParticleReader::readNodes().

Here is the caller graph for this function:

◆ setV() [2/2]

void data::ModelData::setV ( size_t  i,
int  dof,
double  v 
)
inline

Set velocity of the node.

Parameters
iGlobal id of node
dofDirection or degree of freedom to be modified
vVelocity to set

Definition at line 404 of file modelData.h.

404{ d_v[i][dof] = v; };

References d_v.

◆ setVMag()

void data::ModelData::setVMag ( size_t  i,
double  mag 
)
inline

Definition at line 162 of file modelData.h.

162{ d_vMag[i] = mag; }

References d_vMag.

◆ setVol()

void data::ModelData::setVol ( size_t  i,
const double &  vol 
)
inline

Set volume of the node.

Parameters
iGlobal id of node
volVolume to set

Definition at line 483 of file modelData.h.

483{ d_vol[i] = vol; };

References d_vol.

◆ setX() [1/2]

void data::ModelData::setX ( size_t  i,
const util::Point x 
)
inline

Set current coordinate of the node.

Parameters
iGlobal id of node
xCurrent coordinate to set

Definition at line 295 of file modelData.h.

295{ d_x[i] = x; };

References d_x.

Referenced by rw::reader::VtkParticleReader::readNodes().

Here is the caller graph for this function:

◆ setX() [2/2]

void data::ModelData::setX ( size_t  i,
int  dof,
double  x 
)
inline

Set specific current coordinate of the node.

Parameters
iGlobal id of node
dofDirection or degree of freedom to be modified
xCurrent coordinate to set

Definition at line 310 of file modelData.h.

310{ d_x[i][dof] = x; };

References d_x.

◆ setXRef() [1/2]

void data::ModelData::setXRef ( size_t  i,
const util::Point x 
)
inline

Set reference coordinate of the node.

Parameters
iGlobal id of node
xReference coordinate to set

Definition at line 248 of file modelData.h.

248{ d_xRef[i] = x; };

References d_xRef.

◆ setXRef() [2/2]

void data::ModelData::setXRef ( size_t  i,
int  dof,
double  x 
)
inline

Set specific reference coordinate of the node.

Parameters
iGlobal id of node
dofDirection or degree of freedom to be modified
xReference coordinate to set

Definition at line 263 of file modelData.h.

263{ d_xRef[i][dof] = x; };

References d_xRef.

◆ shouldOutput()

bool data::ModelData::shouldOutput ( ) const
inline

Definition at line 174 of file modelData.h.

174 {
175 return d_outputDeck_p->d_performOut &&
176 (d_n % d_outputDeck_p->d_dtOut == 0) &&
177 (d_n >= d_outputDeck_p->d_dtOut);
178 }

References d_n, and d_outputDeck_p.

Referenced by main().

Here is the caller graph for this function:

◆ timeDiscretization()

const std::string & data::ModelData::timeDiscretization ( ) const
inline

Definition at line 168 of file modelData.h.

168 {
169 return d_modelDeck_p->d_timeDiscretization;
170 }

References d_modelDeck_p.

◆ timeStep()

double data::ModelData::timeStep ( ) const
inline

Definition at line 141 of file modelData.h.

141{ return d_modelDeck_p->d_dt; }

References d_modelDeck_p.

Referenced by main().

Here is the caller graph for this function:

Field Documentation

◆ d_bcDeck_p

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

◆ d_contNeighSearchRadius

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

◆ d_contNeighTimestepCounter

size_t data::ModelData::d_contNeighTimestepCounter

Contact neighborlist time step counter.

Definition at line 655 of file modelData.h.

◆ d_contNeighUpdateInterval

size_t data::ModelData::d_contNeighUpdateInterval

Neighborlist update interval.

Definition at line 652 of file modelData.h.

Referenced by PeriDEMModel::init().

◆ d_currentDt

double data::ModelData::d_currentDt

Current timestep.

Definition at line 598 of file modelData.h.

Referenced by advanceTime(), currentDt(), and setCurrentDt().

◆ d_dbgData

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

◆ d_e

std::vector<float> data::ModelData::d_e

Energy of the nodes.

Definition at line 828 of file modelData.h.

◆ d_eF

std::vector<float> data::ModelData::d_eF

Fracture energy of the nodes.

Definition at line 840 of file modelData.h.

◆ d_eFB

std::vector<float> data::ModelData::d_eFB

Bond-based fracture energy of the nodes.

Definition at line 843 of file modelData.h.

◆ d_f

◆ d_fContCompNodes

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

◆ d_fix

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

◆ d_fLoading_p

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

◆ d_forceFixity

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

◆ d_fPdCompNodes

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

◆ d_fracture_p

◆ d_hMax

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

◆ d_hMin

double data::ModelData::d_hMin

Maximum mesh over all particles and walls.

Definition at line 646 of file modelData.h.

◆ d_infoN

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

◆ d_input_p

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

◆ d_maxContactR

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

◆ d_maxVelocity

double data::ModelData::d_maxVelocity

Maximum velocity among all nodes.

Definition at line 722 of file modelData.h.

Referenced by PeriDEMModel::init().

◆ d_maxVelocityParticlesListTypeAll

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

◆ d_modelDeck_p

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

◆ d_mpiGhostNeedFrom

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.

◆ d_mpiGhostPlanValid

bool data::ModelData::d_mpiGhostPlanValid

True once a ghost communication plan has been built.

Definition at line 674 of file modelData.h.

◆ d_mpiGhostServeTo

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.

◆ d_mpiGhostStepsSinceRebuild

size_t data::ModelData::d_mpiGhostStepsSinceRebuild

Force steps since last ghost-plan rebuild.

Definition at line 677 of file modelData.h.

◆ d_mpiIncludeInContactCloud

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.

◆ d_mX

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

◆ d_n

◆ d_name

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

◆ d_neighC

std::vector<std::vector<size_t> > data::ModelData::d_neighC

Neighbor data for contact forces.

Definition at line 767 of file modelData.h.

◆ d_neighPd

◆ d_neighPdSqdDist

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

◆ d_neighWallNodes

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.

◆ d_neighWallNodesCondensed

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.

◆ d_neighWallNodesDistance

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.

◆ d_nsearch_p

std::unique_ptr<NSearch> data::ModelData::d_nsearch_p

Pointer to nsearch.

Definition at line 739 of file modelData.h.

Referenced by PeriDEMModel::init().

◆ d_outputDeck_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().

◆ d_particleDeck_p

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

◆ d_particlesListTypeAll

◆ d_particlesListTypeParticle

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

◆ d_particlesListTypeWall

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

◆ d_particlesMatDataList

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.

◆ d_pdDofMpi

bool data::ModelData::d_pdDofMpi

◆ d_pdGhostNeedFrom

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.

◆ d_pdGhostServeTo

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.

◆ d_pdGrainAligned

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.

◆ d_pdNodePartition

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

◆ d_phi

std::vector<float> data::ModelData::d_phi

◆ d_phiBond

std::vector<float> data::ModelData::d_phiBond

◆ d_ppFile

std::ofstream data::ModelData::d_ppFile

File stream to output information.

Definition at line 616 of file modelData.h.

◆ d_ptId

◆ d_pvdParticleEntries

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.

◆ d_pvdStrainEntries

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.

◆ d_referenceParticles

std::vector<std::shared_ptr<particle::RefParticle> > data::ModelData::d_referenceParticles

Pointer to reference particle.

Definition at line 701 of file modelData.h.

◆ d_restartDeck_p

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

◆ d_stop

bool data::ModelData::d_stop

flag to stop the simulation midway

Definition at line 640 of file modelData.h.

◆ d_strain

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

◆ d_stress

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

◆ d_te

float data::ModelData::d_te

Total internal energy.

Definition at line 855 of file modelData.h.

◆ d_teF

float data::ModelData::d_teF

Total fracture energy.

Definition at line 864 of file modelData.h.

◆ d_teFB

float data::ModelData::d_teFB

Total bond-based fracture energy.

Definition at line 867 of file modelData.h.

◆ d_testDeck_p

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

◆ d_thetaX

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

◆ d_time

◆ d_tk

float data::ModelData::d_tk

Total kinetic energy.

Definition at line 861 of file modelData.h.

◆ d_tw

float data::ModelData::d_tw

Total work done.

Definition at line 858 of file modelData.h.

◆ d_u

◆ d_uLoading_p

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

◆ d_v

◆ d_vMag

std::vector<double> data::ModelData::d_vMag

Magnitude of velocity of the nodes.

Definition at line 754 of file modelData.h.

Referenced by getVMag(), and setVMag().

◆ d_vol

◆ d_w

std::vector<float> data::ModelData::d_w

Work done on each of the nodes.

Definition at line 831 of file modelData.h.

◆ d_x

◆ d_xQuadCur

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

◆ d_xRef

◆ d_Z

std::vector<float> data::ModelData::d_Z

◆ d_zInfo

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.


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