NLMech  0.1.0
material::pd::ElasticState Class Reference

A class implementing the state-based elastic material model. More...

#include <ElasticState.h>

Inheritance diagram for material::pd::ElasticState:
Inheritance graph
Collaboration diagram for material::pd::ElasticState:
Collaboration graph

Public Member Functions

 ElasticState (inp::MaterialDeck *deck, data::DataManager *dataManager)
 Constructor. More...
 
std::pair< util::Point3, double > getBondEF (size_t i, size_t j)
 Returns energy and force state between node i and node j. More...
 
util::Point3 getBondForceDirection (const util::Point3 &dx, const util::Point3 &du) const override
 Get direction of bond force. More...
 
double getFactor2D ()
 return the factor for two-dimensional problems
 
double getInfFn (const double &r) const
 Returns the value of influence function. More...
 
double getSc (size_t i, size_t j)
 Returns critical bond strain between node i and node j. More...
 
util::Matrix33 getStrain (size_t i)
 Computes the strain vector for one node. More...
 
util::Matrix33 getStress (size_t i)
 Computes the stress tensor for one node. More...
 
void update ()
 Let the material class in the quasi-static case know that there is a new loading step.
 
- Public Member Functions inherited from material::pd::BaseMaterial
 BaseMaterial (const size_t &dim, const double &horizon)
 Constructor. More...
 
double getDensity () const
 Returns the density of the material. More...
 
double getHorizon () const
 Returns horizon. More...
 
virtual double getS (const util::Point3 &dx, const util::Point3 &du)
 Returns the bond strain. More...
 
virtual double getS (size_t i, size_t j)
 Returns the bond strain. More...
 
virtual double getSc (const double &r)
 Returns critical bond strain. More...
 
bool isStateActive () const
 Returns true if state-based potential is active. More...
 
std::string name () const
 Returns name of the material. More...
 
virtual void print (int nt=0, int lvl=0) const
 Prints the information about the instance of the object. More...
 
virtual std::string printStr (int nt=0, int lvl=0) const
 Returns the string containing information about the instance of the object. More...
 

Private Member Functions

void computeParameters (inp::MaterialDeck *deck, size_t dim)
 Computes elastic state-based material parameters from elastic constants. More...
 

Private Attributes

Pointers for the function parameters
const inp::MaterialDeckd_deck
 Pointer to the material deck.
 
data::DataManagerd_dataManager_p
 Pointer to the nodes. More...
 

Helper functions to compute the stress and strain

double d_factor2D
 Correction factor for using plain stress.
 
size_t dim
 Dimension of the problem.
 
double horizon
 
bool strainEnergy
 Compute strain energy.
 
util::Matrix33 deformation_gradient (size_t i)
 Computes the deformation gradient for node i. More...
 
util::Point3 X_vector_state (size_t i, size_t j)
 Computes the x vector state between node i and node j. More...
 
util::Point3 Y_vector_state (size_t i, size_t j)
 Computes the y vector state between node i and node j. More...
 
util::Matrix33 K_shape_tensor (size_t i)
 Computes the K shape tensor for node i. More...
 
util::Matrix33 K_modulus_tensor (size_t i, size_t j, size_t k, size_t m)
 Computes the K modulus tensor. More...
 
double dirac_delta (util::Point3 x, size_t i, size_t j, size_t m)
 Provide the image of x under the Dirac Delta Function. More...
 

Detailed Description

A class implementing the state-based elastic material model.

This class implements the the state-based elastic material model as described by Silling and implementation details are described by Littlewood.

See also
https://doi.org/10.1007/s10659-007-9125-1

Constructor & Destructor Documentation

◆ ElasticState()

material::pd::ElasticState::ElasticState ( inp::MaterialDeck deck,
data::DataManager dataManager 
)

Constructor.

Parameters
deckPointer to the input deck
DataManagerPointer to the data manager object
Here is the call graph for this function:

Member Function Documentation

◆ computeParameters()

void material::pd::ElasticState::computeParameters ( inp::MaterialDeck deck,
size_t  dim 
)
private

Computes elastic state-based material parameters from elastic constants.

Either Young's modulus E or bulk modulus K, and Poisson ratio $ \nu $, are needed.

Parameters
deckInput material deck
MMoment of influence function

Referenced by ElasticState().

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

◆ deformation_gradient()

util::Matrix33 material::pd::ElasticState::deformation_gradient ( size_t  i)
private

Computes the deformation gradient for node i.

Parameters
iId of node
Returns
The deformation gradient for node i
Here is the call graph for this function:

◆ dirac_delta()

double material::pd::ElasticState::dirac_delta ( util::Point3  x,
size_t  i,
size_t  j,
size_t  m 
)
private

Provide the image of x under the Dirac Delta Function.

Parameters
deckThe input deck
problemThe corresponding problem
xNode x
iNode i
jNeighbor j
kNeighbor k
mIndex for the volume correction
Returns
1 if x is a null-vector, otherwise 0
Here is the call graph for this function:

◆ getBondEF()

std::pair< util::Point3, double > material::pd::ElasticState::getBondEF ( size_t  i,
size_t  j 
)
virtual

Returns energy and force state between node i and node j.

Parameters
iId of node i
jLocal id in the neighbor list of node i
Returns
Value Pair of energy and force

Reimplemented from material::pd::BaseMaterial.

Here is the call graph for this function:

◆ getBondForceDirection()

util::Point3 material::pd::ElasticState::getBondForceDirection ( const util::Point3 dx,
const util::Point3 du 
) const
inlineoverridevirtual

Get direction of bond force.

Returns
vector Unit vector along the bond force

Reimplemented from material::pd::BaseMaterial.

Here is the call graph for this function:

◆ getInfFn()

double material::pd::ElasticState::getInfFn ( const double &  r) const
inlinevirtual

Returns the value of influence function.

Parameters
rReference (initial) bond length
Returns
value Influence function at r

Reimplemented from material::pd::BaseMaterial.

◆ getSc()

double material::pd::ElasticState::getSc ( size_t  i,
size_t  j 
)
virtual

Returns critical bond strain between node i and node j.

Parameters
iId of node i
jId of node j
Returns
Value Critical strain

Reimplemented from material::pd::BaseMaterial.

◆ getStrain()

util::Matrix33 material::pd::ElasticState::getStrain ( size_t  i)
virtual

Computes the strain vector for one node.

Parameters
iID of node i
Returns
The strain tensor for node I

Reimplemented from material::pd::BaseMaterial.

◆ getStress()

util::Matrix33 material::pd::ElasticState::getStress ( size_t  i)
virtual

Computes the stress tensor for one node.

Parameters
iId of node i
Returns
The stress tensor for node i

Reimplemented from material::pd::BaseMaterial.

Here is the call graph for this function:

◆ K_modulus_tensor()

util::Matrix33 material::pd::ElasticState::K_modulus_tensor ( size_t  i,
size_t  j,
size_t  k,
size_t  m 
)
private

Computes the K modulus tensor.

Parameters
iNode i
jNeighbor j
kNeighbor k
mIndex for the volume correction
Returns
The K modulus tensor
Here is the call graph for this function:

◆ K_shape_tensor()

util::Matrix33 material::pd::ElasticState::K_shape_tensor ( size_t  i)
private

Computes the K shape tensor for node i.

Parameters
iId of node
Returns
The K shape tensor for node i
Here is the call graph for this function:

◆ X_vector_state()

util::Point3 material::pd::ElasticState::X_vector_state ( size_t  i,
size_t  j 
)
private

Computes the x vector state between node i and node j.

Parameters
iId of node
jId of node
Returns
The x vector state

◆ Y_vector_state()

util::Point3 material::pd::ElasticState::Y_vector_state ( size_t  i,
size_t  j 
)
private

Computes the y vector state between node i and node j.

Parameters
iId of node
jId of node
Returns
The y vector state

Field Documentation

◆ d_dataManager_p

data::DataManager* material::pd::ElasticState::d_dataManager_p
private

Pointer to the nodes.

Pointer to the weighted volumes of the nodes

Pointer to the volume correction of the nodes

Pointer to the volumes of the nodes

Pointer to the neighbors of the nodes

Referenced by ElasticState().


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