Solid engine class#

struct ae_type#
#include <openfdem_sesmic.h>

Public Functions

ae_type() = default#

Public Members

Real time = 0.0#
Real win_time = 0.0#
Real win_kinetic = 0.0#
Real kinetic = 0.0#
Real magnitue = 0.0#
Int coele = -1#
struct any_cohmat_type#

Public Functions

any_cohmat_type() = default#
struct any_conmat_type#

Public Functions

any_conmat_type() = default#
struct any_mat_type#

Public Functions

any_mat_type() = default#
struct Coh_element_structure#

Public Functions

void resize(Int size, Int initialsize = 0)#
void clear()#

Public Members

std::vector<cohelement_type> cohele#
UInt cohe_num = 0#
UInt broken_num = 0#
UInt damage_num = 0#
std::vector<Real> shear_strength#
std::vector<Vector2> force#
std::vector<Vector2> extrinsic_r#
std::vector<Vector2> dis#
std::vector<Vector2> vel#
std::vector<fracture_type> fracture#
std::vector<damage_type> damage#
std::vector<Real> het_value#
std::vector<cohelement_enum> state#
std::vector<Int> stater#
std::vector<Vector2> DIF[NCZMGAUSS]#
std::vector<Real> damagevalue[NCZMGAUSS]#
std::vector<Real> energy#
std::vector<Real> area#
std::vector<Real> length#
std::vector<Real> field#
std::vector<bool> isCompressiveShear#
struct cohelement_type#

Public Functions

cohelement_type() = default#

Public Members

Vector2 coord#
UInt matid = 0#
UInt n_node = 2#
DFN_enum dfn = DFN_enum::NDFN#
UInt nodes[CZM_NODE_SIZE]#
UInt ele[CZM_ELEMENT_SIZE]#
UInt edge[CZM_EDGE_SIZE]#
UInt faces[CZM_EDGE_SIZE]#
UInt old_map = 0#
bool is_extrinsic = false#
struct damage_type#

Public Functions

damage_type() = default#

Public Members

Real time = 0.0#
Real length = 0.0#
Real type = 0.0#
Int coele = -1#
struct DFN_structure#
#include <openfdem_DFN.h>

Public Functions

void resize(Int size, Int initialsize = 0)#
void clear()#

Public Members

UInt n_dfn = 0#
std::vector<dfn_type> dfn#
struct dfn_type#
#include <openfdem_DFN.h>

Public Functions

dfn_type() = default#

Public Members

std::string tag#
UInt node_n = EDGE_NODE_SIZE#
Int node[EDGE_NODE_SIZE] = {-1, -1}#
Int quadratic = -1#
DFN_enum type = DFN_enum::DFN_COHESIVE#
Int cohele = -1#
struct Edge_structure#
#include <openfdem_edge.h>

Public Functions

void resize(Int size, Int initialsize = 0)#
void clear()#

Public Members

UInt nedge = 0#
std::vector<edge_type> edges#
struct edge_type#
#include <openfdem_edge.h>

Public Functions

edge_type() = default#

Public Members

elem_type type = elem_type::LINE2#
Int nnode = EDGE_NODE_SIZE#
Int node[EDGE_NODE_SIZE] = {-1, -1}#
Int element = -1#
Int CZM = -1#
Vector2 coord#
Int pair = -1#
Int DFN = -1#
bool iselement = false#
bool isquadratic = false#
Int quadnode = -1#
struct Element_structure#
#include <openfdem_solid.h>

Public Functions

void resize(Int size, Int initialsize = 0)#
void clear()#

Public Members

UInt e_num = 0#
UInt e_preremesh = 0#
Real MinMeshsize = 0.0#
Real MeanMeshsize = 0.0#
Real MaxRadius = 0.0#
std::vector<element_type> ele#
std::vector<Vector2> coord#
std::vector<Real> area#
std::vector<Real> energy#
std::vector<Real> field#
struct element_type#
#include <openfdem_solid.h>

Public Functions

element_type() = default#
void clear()#

Public Members

UInt matid = 0#
short dimension = OPENFDEM_DIMENSION#
short n_gauss = 1#
elem_type type = elem_type::TRIANGLE3#
UInt n_edge = 3#
std::vector<UInt> edges#
UInt n_node = 3#
std::vector<UInt> nodes#
UInt n_couple = 3#
std::vector<Int> couple#
std::vector<Int> ecouple#
Real radius = 0.0#
Int entity = -1#
Real minedge = 0.0#
Real maxedge = 0.0#
Real meshquality = 0.0#
bool isInserted = false#
bool excavation = false#
bool uncontacted = false#
bool is_extrinsic = false#
bool isMesh = false#
std::vector<UInt> prenodes#
Int parentele = -1#
std::vector<UInt> gauss#
std::vector<Real> lumpedMassWeight#
Real poissionRatio = 0.0#
struct Entity_structure#
#include <openfdem_entity.h>

Public Functions

void resize(Int size, Int initialsize = 0)#
void clear()#

Public Members

Int nEntity = 0#
std::vector<entity_type> entities#
struct entity_type#
#include <openfdem_entity.h>

Public Functions

entity_type() = default#
void clear()#

Public Members

bool isdeformable = true#
Int nElement = 0#
Int bouid = -1#
Real mass = 0.0#
Real inertia = 0.0#
std::vector<Int> element#
Int nNode = 0#
std::vector<Int> node#
short dimension = OPENFDEM_DIMENSION#
struct fracture_type#

Public Functions

fracture_type() = default#

Public Members

Real time = 0.0#
Real length = 0.0#
Real energy = 0.0#
Real type = 0.0#
Int coele = -1#
class gaussCount : public OpenFdemAbstract#

Public Functions

inline gaussCount()#
inline ~gaussCount()#

Public Static Functions

static void getCountofGausspoint(UInt &ng_points, elem_type type)#
class gaussDerivs : public OpenFdemAbstract#

Public Functions

inline gaussDerivs()#
inline ~gaussDerivs()#

Public Static Functions

static void getShapefunctionDerivs(Real dNdxi[][2], const elem_type type, const Vector2 &xilocal)#

get the dNdchi in array.

Parameters:
  • dNdxi

  • type

  • xilocal

static void getShapefunctionDerivs(Vector2 dNdxi[], const elem_type type, const Vector2 &xilocal)#

get the dNdchi in Vector.

Parameters:
  • dNdxi

  • type

  • xilocal

class gaussPosition : public OpenFdemAbstract#

Public Functions

inline gaussPosition()#
inline ~gaussPosition()#

Public Static Functions

static void getGaussCoords(Real xi[][2], elem_type type)#

return the quadrature coord in array.

Parameters:
  • xi

  • type

static void getGaussCoords(Vector2 xi[], elem_type type)#

return the quadrature coord in vector.

Parameters:
  • xi

  • type

class gaussShapeFunction : public OpenFdemAbstract#

Public Functions

inline gaussShapeFunction()#
inline ~gaussShapeFunction()#

Public Static Functions

static void getShapefunctionN(Real *N, elem_type type, const Vector2 &xilocal)#
class gaussWeights : public OpenFdemAbstract#

Public Functions

inline gaussWeights()#
inline ~gaussWeights()#

Public Static Functions

static void getGausspointWeights(Real *weight, elem_type)#
class InterfaceUtils : public OpenFdemAbstract#

Subclassed by ns_solid::SolidMechanicsCohesiveDynamicModule, ns_solid::SolidMechanicsCohesiveEMModule, ns_solid::SolidMechanicsCohesiveInstrinsicModule, ns_solid::SolidMechanicsCohesiveOPModule

Public Functions

inline InterfaceUtils()#
inline ~InterfaceUtils()#

Public Static Functions

static inline Real compute_kinetic_energy(Nodal nodal, UInt nodelist[])#
static inline void getCZMFaceNodes(Cohelement cohelement, const Int cohindices, Int upnodes[], Int downnodes[])#
static inline void getCZMNodeCoord(const Nodal nodal, const Int nodelist[], Vector2 coord[], const Int count)#
static inline void getCZMNodeDeltaVel(const Nodal nodal, const Int nodeuplist[], const Int nodedownlist[], const Int count, Vector2 vel[])#
static inline Real getCZMkineticEnergy(const Nodal nodal, Edge edge, const Int facei, const Int facej)#
static inline void updateCZMnodestate(Nodal nodal, Edge edge, const Int facei, const Int facej)#
static inline void updateCZMnodeConnect(Nodal nodal, Edge edge, const Int facei, const Int facej)#
static inline void pushDamageCZMlist(General general, Cohelement cohelement, Seismic seismic, const Int cohelement_id, const Real area, Nodal nodal, Edge edge, const Int type)#
static inline void pushBrokenCZMlist(General general, Cohelement cohelement, const Int cohelement_id, const Real area, Nodal nodal, Edge edge, const Real type)#
static inline void getCZMthreshold(Vector2 &CZMpeak, Vector2 &CZMresidual, any_cohmat_type *cohmat, const Real CharacteristicLength, const Real shearStrengthonCZM, cohelement_cons cons, Real beta, Real tableValue[])#

get the peak and resiudal values of CZM.

Parameters:
  • CZMpeak

  • CZMresidual

  • cohmat

  • CharacteristicLength

  • shearStrengthonCZM

  • cons

  • beta

static inline void getCZMDIF(Real o, Real sabs, const Vector2 &vel, any_cohmat_type *cohmat, const Real CharacteristicLength, const Vector2 &peak, Vector2 &cohDIF, Vector2 &DIF)#

compute the dynamic increase factor for dynamic Evans-Marathe model. We are using the unified strain rate law, in which DIF = 1.0 + (strainrate / strainrate.c)^beta

Parameters:
  • o

  • sabs

  • vel

  • cohmat

  • CharacteristicLength

  • peak

  • cohDIF

  • DIF

static inline void computeEMCZMdamage(Real dmg, Vector2 &peak, Vector2 &residual, Real &previousdamage, Vector2 &damage, cohelement_cons cons)#
static inline Real getEMCZMsigma(any_cohmat_type *cohmat, const Real o, const Real vo, const Real rou, UInt &nsoft, const Vector2 &CZMpeak, const Vector2 &damage, cohelement_cons cons, Real tableValue[])#
static inline Real getdynamicCZMsigma(any_cohmat_type *cohmat, const Real o, UInt &nsoft, const Vector2 CZMpeak, const Vector2 dynCZMpeak, const Vector2 damage, const Vector2 DIF, Real tableValue[])#
static inline Real getEMCZMshearstrength(any_cohmat_type *cohmat, Real sigma, cohelement_cons cons, Real tableValue[])#
static inline Real getEMCZMtau(any_cohmat_type *cohmat, const Real sigma, const Real shearStrengthonCZM, const Real sabs, const Real vs, const Real rou, const Vector2 &CZMpeak, const Vector2 &damage, cohelement_cons cons, Real tableValue[])#
static inline Real getdynamicEMCZMtau(const Real sigma, const Real shearStrengthonCZM, const Real sabs, const Vector2 &CZMpeak, const Vector2 &dynCZMpeak, const Vector2 &damage, const Vector2 &DIF)#
static void updateCZMforce(Nodal nodal, const Int *upnodes, const Int *downnodes, const Vector2 *force)#
static inline void updateAE(General general, Seismic seismic, Cohelement cohelement, Nodal nodal, Edge edge, const Int cohelement_id)#
struct mat_cohelement_t#
#include <openfdem_mat.h>

cohesive material.

Public Functions

mat_cohelement_t() = default#

Public Members

std::string tag#
cohelement_cons cons = cohelement_cons::COH_EM#
any_cohmat_type mat#
bool hasTableParamter = false#
bool hasfullTable = false#
short table[COHMAT_TABLE_SIZE] = {-1, -1, -1, -1, -1}#
struct mat_contact_t#
#include <openfdem_mat.h>

contact material.

Public Functions

mat_contact_t() = default#

Public Members

Int emat1 = -1#
Int emat2 = -1#
contact_cons cons = contact_cons::CON_FRICTION#
any_conmat_type mat#
Real conductivity = 0.0#
struct mat_element_t#
#include <openfdem_mat.h>

class for matrix material library.

Public Functions

mat_element_t() = default#

Public Members

std::string tag#
element_cons cons = element_cons::ELASTIC#
any_mat_type mat#
Real damp = 0.0#
UInt nstate = 0#
Real cp = 5000.0#
Real cs = 3000.0#
Real parameters[MAT_PARAMETER_SIZE]#
short fieldTable[MAT_FIELD_TABLE_SIZE] = {-1, -1, -1, -1, -1}#
struct mat_fluid_cohesive_t#
#include <openfdem_mat.h>

fluid flowing in fracture .

Public Functions

mat_fluid_cohesive_t() = default#

Public Members

std::string tag#
Real a_0 = 0.0#
Real a_min = 1e-5#
Real a_max = 1e-3#
Real para_exp = 3.0#
Real para_b = 1.0#
struct mat_fluid_element_t#
#include <openfdem_mat.h>

hydro material.

Public Functions

mat_fluid_element_t() = default#

Public Members

std::string tag#
Real permiability = 0.0#
Real Biot_modulus = 0.0#
Real Biot_c = 0.0#
Real prosity = 0.0#
struct mat_fluid_t#
#include <openfdem_mat.h>

water material.

Public Functions

mat_fluid_t() = default#

Public Members

Real den = 1000.0#
Real bulk = 2.1e9#
Real viscosity = 1.0e-3#
Real cohesion = 0.0#
Real conductivity = 0.598#
Real specific_heat = 4.186#
struct mat_gas_t#
#include <openfdem_mat.h>

gas material in hydro module.

Public Functions

mat_gas_t() = default#

Public Members

Real initial_den = 0.0#
Real initial_bulk = 0.0#
Real permiability = 0.0#
Real constant_B = 0.0#
Real alpha = 0.0#
struct mat_mpmfluid_t#
#include <openfdem_mat.h>

material point .

Public Functions

mat_mpmfluid_t() = default#

Public Members

std::string tag#
Real density = 1000.0#
Real kappa = 1.0#
Real gama = 0.0#
Real shear = 0.0#
Real viscosity = 0.0#
struct mat_nonlcoal_element_t#
#include <openfdem_mat.h>

nonlocal material.

Public Functions

mat_nonlcoal_element_t() = default#

Public Members

nonlocal_method method = nonlocal_method::WFT_BELL#
Real cl = 0.0#
struct mat_thermal_element_t#
#include <openfdem_mat.h>

thermal material.

Public Functions

mat_thermal_element_t() = default#

Public Members

std::string tag#
Real conductivity = 0.0#
Real specific_heat = 0.0#
Real expansion = 0.0#
Real heat_exchage = 0.0#
class MaterialUtils : public OpenFdemAbstract#
#include <material_utils.h>

Public Functions

inline MaterialUtils()#
inline ~MaterialUtils()#

Public Static Functions

static inline Real getKfromEv(Real E, Real v)#

compute the bulk modulus.

Parameters:
  • E

  • v

Returns:

static inline Real getGfromEv(Real E, Real v)#

compute the shear bulk modulus.

Parameters:
  • E

  • v

Returns:

static inline Real getEfromKG(Real K, Real G)#

compute the young’s modulus from K and G.

Parameters:
  • K

  • G

Returns:

static inline Real getvfromKG(Real K, Real G)#

compute the Poission’s ratio from K and G.

Parameters:
  • K

  • G

Returns:

static inline Real getLamdafromKG(Real K, Real G)#

compute lamda from K and G.

Parameters:
  • K

  • G

Returns:

static inline Real getLamdafromEv(Real E, Real v)#

compute the lamda from E and v.

Parameters:
  • E

  • v

Returns:

static inline Real getcpfromEv(Real E, Real v, Real rou)#

compute the wave velocity from E and v.

Parameters:
  • E

  • v

  • rou

Returns:

static inline Real getcsfromG(Real G, Real rou)#

compute the wave velocity from G.

Parameters:
  • G

  • rou

Returns:

static inline Real gete1(Real K, Real G)#

compute e1.

Parameters:
  • K

  • G

Returns:

static inline Real get2g(Real G)#
class ModelAnisotropic : public ns_solid::ModelElastic, public OpenFdemAbstract#

Public Functions

inline ModelAnisotropic()#
inline ~ModelAnisotropic()#
virtual void getBulkParameters()#
virtual void solidModelAnisotropic(General general, Element element, Solidmat solidmat, Intergration intergration, Nodal nodal)#
virtual void computeAnisotropicElasticStress(Nodal nodal, Element element, Intergration intergration)#
void initialize()#
virtual bool xmatinv(Real b[6][6])#
virtual void xmatmul(Real b1[6][6], Real b2[6][6], Real b3[6][6])#
virtual void buildMatrix(const Real &e1, const Real &e2, const Real &e3, const Real &v1, const Real &v2, const Real &v3, const Real &g1, const Real &g2, const Real &g3, const Real &dd, const Real &dip)#

Protected Attributes

Real damp = 0.0#
Real E1_ = 0.0#
Real E3_ = 0.0#
Real Nu12_ = 0.0#
Real Nu13_ = 0.0#
Real G13_ = 0.0#
Real A11_ = 0.0#
Real A12_ = 0.0#
Real A13_ = 0.0#
Real A14_ = 0.0#
Real A15_ = 0.0#
Real A16_ = 0.0#
Real A22_ = 0.0#
Real A23_ = 0.0#
Real A24_ = 0.0#
Real A25_ = 0.0#
Real A26_ = 0.0#
Real A33_ = 0.0#
Real A34_ = 0.0#
Real A35_ = 0.0#
Real A36_ = 0.0#
Real A44_ = 0.0#
Real A45_ = 0.0#
Real A46_ = 0.0#
Real A55_ = 0.0#
Real A56_ = 0.0#
Real A66_ = 0.0#
Real dip_ = 0.0#
Real dd_ = 0.0#
Real angle_ = 0.0#
class ModelBurger : public ns_solid::ModelElastic, public OpenFdemAbstract#

Public Functions

inline ModelBurger()#
inline ~ModelBurger()#
virtual void getBulkParameters()#
virtual void solidModelBurger(General general, Element element, Solidmat solidmat, Intergration intergration, Nodal nodal)#
void computeBurgerStress(General general, Nodal nodal, Element element, Intergration intergration)#

Protected Attributes

Real bulk_ = 0.0#
Real Kshear_ = 0.0#
Real Mshear_ = 0.0#
Real Kviscosity_ = 0.0#
Real Mviscosity_ = 0.0#
class ModelDamageMazars : public ns_solid::ModelElastic, public OpenFdemAbstract#

Public Functions

inline ModelDamageMazars()#
inline ~ModelDamageMazars()#
virtual void getBulkParameters()#
void computePrincipalStress(Tensor &prinS, const Tensor &prinE)#
void computePostivePrincipalStrain(const Tensor &prinS, Tensor &prinE)#
virtual void solidModelDamageMazars(General general, Element element, Solidmat solidmat, Intergration intergration, Nodal nodal)#
void computeDamageMazarsStress(Nodal nodal, Element element, Intergration intergration)#
void computeElasticTrailStressatIntergration(Intergration intergration, const Int intPoint)#

Protected Attributes

Real damp = 0.0#
Real e0 = 0.0#
Real At = 0.0#
Real Ac = 0.0#
Real Bt = 0.0#
Real Bc = 0.0#
Real bulk = 0.0#
Real den = 0.0#
Real shear = 0.0#
Real v = 0.0#
Real E = 0.0#

Protected Static Attributes

static const UInt idamage = 0#
static const UInt idamage_c = 1#
static const UInt idamage_t = 2#
static const UInt ikappa = 3#
class ModelDrucker : public ns_solid::ModelElastic, public OpenFdemAbstract#

Public Functions

inline ModelDrucker()#
inline ~ModelDrucker()#
virtual void getBulkParameters()#
virtual void solidModelDrucker(General general, Element element, Solidmat solidmat, Intergration intergration, Nodal nodal)#
void computeDruckerStress(Nodal nodal, Element element, Intergration intergration)#
void apexCorrection(Intergration intergration, const Int intPoint, UInt *iPlasticity)#
void tensionCorrection(Intergration intergration, const Int intPoint, UInt *iPlasticity, const Real &ft)#
void shearCorrection(Intergration intergration, const Int intPoint, UInt *iPlasticity, const Real &fs, const Tensor &dev)#
void computeElasticTrailStressatIntergration(Intergration intergration, const Int intPoint)#

Protected Attributes

Real damp = 0.0#
Real qPhi_ = 0.0#
Real kPhi_ = 0.0#
Real qPsi_ = 0.0#
Real tension_ = 0.0#
Real gKQ_ = 0.0#
Real kQ_ = 0.0#
Real rc_ = 0.0#
Real tau_ = 0.0#
Real sig_ = 0.0#
class ModelElastic : public OpenFdemAbstract#

Subclassed by ns_solid::ModelAnisotropic, ns_solid::ModelBurger, ns_solid::ModelDamageMazars, ns_solid::ModelDrucker, ns_solid::ModelExcavation, ns_solid::ModelJH2, ns_solid::ModelJWL, ns_solid::ModelMohr, ns_solid::ModelNeohookean, ns_solid::ModelNonlocalDamageMazars, ns_solid::ModelNonlocalTCK, ns_solid::ModelNonlocalYang, ns_solid::ModelTCK, ns_solid::ModelYang

Public Functions

inline ModelElastic()#
inline ~ModelElastic()#
inline void getBulkParameters(General general, Boudary boudary)#

Get the material parameters from the material library and compute the stiffness damping coefficient.

Parameters:
  • solidmat

  • matindices

virtual void computeElasticTrailStress(Element element, Intergration intergration)#

Compute the elastic trial stress by incremental strain. the stress should not include the stiffness damping stress

\begin{aligned} &\Delta \sigma_{11}=\alpha_1 \Delta e_{11}+\alpha_2 \Delta e_{22}\ &\Delta \sigma_{22}=\alpha_2 \Delta e_{11}+\alpha_1 \Delta e_{22}\ &\Delta \sigma_{12}=2 G \Delta e_{12} \quad\left(\Delta \sigma_{21}=\Delta \sigma_{12}\right)\ &\Delta \sigma_{33}=\alpha_2\left(\Delta e_{11}+\Delta e_{22}\right) \end{aligned} where \alpha_1 = K + 4/3 * G and \alpha_2 = K - 2/3 * G

Parameters:
  • nodal

  • element

  • elementindices

virtual void computeInternalForce(General general, Nodal nodal, Element element, Intergration intergration)#
virtual void computeLumpedMass(General general, Element element, Nodal nodal)#
virtual void computeStrainEnergy(General general, Element element, Intergration intergration)#
virtual void solidModelElastic(General general, Element element, Solidmat solidmat, Nodal nodal, Intergration intergration, Boudary boudary)#

Public Members

Real e1_ = 0.0#
Real e2_ = 0.0#
Real g2_ = 0.0#
Real rou = 0.0#
Real damp = 0.0#
UInt elementindices#
element_type *ele#
mat_element_t *elemat#
class ModelExcavation : public ns_solid::ModelElastic#

Public Functions

inline ModelExcavation()#
inline ~ModelExcavation()#
inline virtual void getBulkParameters(General general, Boudary boudary)#
virtual void solidModelExcavation(General general, Element element, Intergration intergration, Solidmat solidmat, Nodal nodal, Boudary boudary)#
virtual void computeExcavationStress(Nodal nodal, Element element, Intergration intergration)#

Protected Attributes

Real mu = 0.0#
Real lamda = 0.0#
Real fact = 1.0#
class ModelJH2 : public ns_solid::ModelElastic#

Public Functions

inline ModelJH2()#
inline ~ModelJH2()#
virtual void getBulkParameters()#
virtual void solidModelBlastJH2(General general, Element element, Solidmat solidmat, Intergration intergration, Nodal nodal)#
void computeJH2Stress(General general, Nodal nodal, Element element, Intergration intergration)#
void computeElasticTrailStressatIntergration(Intergration intergration, const Int intPoint, Real P)#

Protected Attributes

Real damp = 0.0#
Real A = 0.0#
Real B = 0.0#
Real C = 0.0#
Real D1 = 0.0#
Real D2 = 0.0#
Real M = 0.0#
Real N = 0.0#
Real PHEL = 0.0#
Real SHEL = 0.0#
Real K1 = 0.0#
Real K2 = 0.0#
Real K3 = 0.0#
Real TEN = 0.0#
Real shear = 0.0#
Real v = 0.0#

Protected Static Attributes

static const UInt idamage = 0#
static const UInt iep = 1#
static const UInt iep_rate = 2#
static const UInt is_eq = 3#
static const UInt idP = 4#
static const UInt ief = 5#
class ModelJWL : public ns_solid::ModelElastic#

Public Functions

inline ModelJWL()#
inline ~ModelJWL()#
virtual void getBulkParameters()#
virtual void solidModelBlastJWL(General general, Element element, Solidmat solidmat, Intergration intergration, Nodal nodal)#
void computeJWLStress(General general, Nodal nodal, Element element, Intergration intergration)#
void computeInternalForceonJWL(General general, Nodal nodal, Element element, Intergration intergration)#

Protected Attributes

Real A = 0.0#
Real A2 = 0.0#
Real R1 = 0.0#
Real R2 = 0.0#
Real E0 = 0.0#
Real omega = 0.0#
Vector2 origion#
Real t0 = 0.0#
Real Vt = 0.0#
class ModelMohr : public ns_solid::ModelElastic#

Public Functions

inline ModelMohr()#
inline ~ModelMohr()#
virtual void getBulkParameters()#
virtual void solidModelMohr(General general, Element element, Solidmat solidmat, Intergration intergration, Nodal nodal)#
void computeMohrStress(Nodal nodal, Element element, Intergration intergration)#
void apexCorrection(const Real &fric, Intergration intergration, const Int intPoint, Tensor &prin, UInt *iPlasticity)#
void tensionCorrection(Intergration intergration, const Int elementindices, Tensor &prin, UInt *iPlasticity, const Real &ftz)#
void shearCorrection(Intergration intergration, const Int elementindices, Tensor &prin, UInt *iPlasticity, const Real &fs)#
void computeElasticTrailStressatIntergration(Intergration intergration, const Int intPoint)#

Protected Attributes

Real damp = 0.0#
Real cohesion_ = 0.0#
Real friction_ = 0.0#
Real dilation_ = 0.0#
Real tension_ = 0.0#
Real nph_ = 0.0#
Real csn_ = 0.0#
Real nps_ = 0.0#
Real rc_ = 0.0#
Real sc1_ = 0.0#
Real sc2_ = 0.0#
Real sc3_ = 0.0#
class ModelNeohookean : public ns_solid::ModelElastic#

Public Functions

inline ModelNeohookean()#
inline ~ModelNeohookean()#
inline virtual void getBulkParameters(General general, Boudary boudary)#
virtual void solidModelNeo(General general, Element element, Intergration intergration, Solidmat solidmat, Nodal nodal, Boudary boudary)#
virtual void computeNeoStress(Nodal nodal, Element element, Intergration intergration)#

Protected Attributes

Real mu = 0.0#
Real lamda = 0.0#
Real fact = 1.0#
class ModelNonlocalDamageMazars : public ns_solid::ModelElastic#

Public Functions

inline ModelNonlocalDamageMazars()#
inline ~ModelNonlocalDamageMazars()#
virtual void getBulkParameters()#
void computePrincipalStress(Tensor &prinS, Tensor prinE)#
void computePostivePrincipalStrain(Tensor prinS, Tensor &prinE)#
virtual void solidModelDamageMazars(General general, Element element, Solidmat solidmat, Intergration intergration, Nodal nodal)#
void computeDamageMazarsStress(Nodal nodal, Element element, Intergration intergration)#
void computeElasticTrailStressatIntergration(Intergration intergration, const Int ig)#

Protected Attributes

Real damp = 0.0#
Real e0 = 0.0#
Real At = 0.0#
Real Ac = 0.0#
Real Bt = 0.0#
Real Bc = 0.0#
Real bulk = 0.0#
Real den = 0.0#
Real shear = 0.0#
Real v = 0.0#
Real E = 0.0#

Protected Static Attributes

static const UInt idamage = 0#
static const UInt idamage_c = 1#
static const UInt idamage_t = 2#
static const UInt ikappa = 3#
class ModelNonlocalTCK : public ns_solid::ModelElastic#

Public Functions

inline ModelNonlocalTCK()#
inline ~ModelNonlocalTCK()#
virtual void getBulkParameters()#
virtual void solidModelBlastTCK(General general, Element element, Solidmat solidmat, Intergration intergration, Nodal nodal)#
void computeTCKStress(Nodal nodal, Element element, Intergration intergration)#
void computeElasticTrailStressatIntergration(Intergration intergration, const Int intPoint)#

Protected Attributes

Real damp = 0.0#
Real bulk = 0.0#
Real young = 0.0#
Real c_wave = 0.0#
Real KIC = 0.0#
Real m = 0.0#
Real p_k = 0.0#
Real den = 0.0#
Real shear = 0.0#
Real v = 0.0#
Real p1 = 0.0#
bool isKUS = false#

Protected Static Attributes

static const UInt idamage = 0#
static const UInt ivol_rate = 1#
static const UInt ifragement = 2#
static const UInt icrack_density = 3#
class ModelNonlocalYang : public ns_solid::ModelElastic#

Public Functions

inline ModelNonlocalYang()#
inline ~ModelNonlocalYang()#
virtual void getBulkParameters()#
virtual void solidModelBlastYang(General general, Element element, Solidmat solidmat, Intergration intergration, Nodal nodal)#
void computeYangStress(General general, Nodal nodal, Element element, Intergration intergration)#
void computeElasticTrailStressatIntergration(Intergration intergration, const Int intPoint)#

Protected Attributes

Real damp = 0.0#
Real bulk = 0.0#
Real young = 0.0#
Real alpha_ = 0.0#
Real beta_ = 0.0#
Real theta_ = 0.0#
Real den = 0.0#
Real shear = 0.0#
Real v = 0.0#

Protected Static Attributes

static const UInt idamage = 0#
static const UInt ivol_strain = 1#
class ModelTCK : public ns_solid::ModelElastic#

Public Functions

inline ModelTCK()#
inline ~ModelTCK()#
virtual void getBulkParameters()#
virtual void solidModelBlastTCK(General general, Element element, Intergration intergration, Solidmat solidmat, Nodal nodal)#
void computeTCKStress(Nodal nodal, Element element, Intergration intergration)#
void computeElasticTrailStressatIntergration(Intergration intergration, const Int ig)#

Protected Attributes

Real damp = 0.0#
Real bulk = 0.0#
Real young = 0.0#
Real c_wave = 0.0#
Real KIC = 0.0#
Real m = 0.0#
Real p_k = 0.0#
Real den = 0.0#
Real shear = 0.0#
Real v = 0.0#
Real p1 = 0.0#
bool isKUS = false#
Real dt = 0.0#

Protected Static Attributes

static const UInt idamage = 0#
static const UInt ivol_rate = 1#
static const UInt ifragement = 2#
static const UInt icrack_density = 3#
class ModelYang : public ns_solid::ModelElastic#

Public Functions

inline ModelYang()#
inline ~ModelYang()#
virtual void getBulkParameters()#
virtual void solidModelBlastYang(General general, Element element, Intergration intergration, Solidmat solidmat, Nodal nodal)#
void computeYangStress(General general, Nodal nodal, Element element, Intergration intergration)#
void computeElasticTrailStressatIntergration(Intergration intergration, const Int ig)#

Protected Attributes

Real damp = 0.0#
Real bulk = 0.0#
Real young = 0.0#
Real alpha_ = 0.0#
Real beta_ = 0.0#
Real theta_ = 0.0#
Real den = 0.0#
Real shear = 0.0#
Real v = 0.0#

Protected Static Attributes

static const UInt idamage = 0#
static const UInt ivol_strain = 1#
struct mpm_sand_t#

Public Functions

mpm_sand_t() = default#

Public Members

Real E = 0.0#
Real den = 0.0#
Real v = 0.0#
Real K = 0.0#
Real G = 0.0#
Real lamda = 0.0#
struct mpm_snow_t#

Public Functions

mpm_snow_t() = default#

Public Members

Real E = 0.0#
Real den = 0.0#
Real v = 0.0#
Real K = 0.0#
Real G = 0.0#
Real lamda = 0.0#
Real tc = 0.0#
Real ts = 0.0#
Real ksi = 0.0#
struct Nodal_structure#
#include <openfdem_nodal.h>

Public Functions

void resize(Int size, Int initialsize = 0)#
void clear()#

Public Members

UInt dimension = OPENFDEM_DIMENSION#
UInt n_num = 0#
UInt n_preremesh = 0#
std::vector<node_type> node#
std::vector<Real> mass#
std::vector<Vector2> coord0#
std::vector<Vector2> coord#
std::vector<Vector2> force#
std::vector<Vector2> cohforce#
std::vector<Vector2> conforce#
std::vector<Vector2> extforce#
std::vector<Vector2> intforce#
std::vector<Vector2> velocity#
std::vector<Vector2> du#
std::vector<Vector2> dis_excavate#
std::vector<Real> phi#
std::vector<Real> nita#
std::vector<Real> driven#
std::vector<Int> net_connect[EDGE_NODE_SIZE]#
Real element_maximuum_unbalance_force = 0.0#
Real cohesive_maximuum_unbalance_force = 0.0#
Real contact_maximuum_unbalance_force = 0.0#
Real max_velocity = 0.0#
Real unbalance_force = 0.0#
struct node_type#
#include <openfdem_nodal.h>

Public Functions

node_type() = default#

Public Members

UInt old_map = 0#
bool is_extrinsic = false#
bool isMesh = false#
bool jacentMesh = false#
bool isRigid = false#
bool isWall = false#
bool isExcavated = false#
class NonlocalSolid : public OpenFdemAbstract, public ElementUtils#

Public Functions

inline NonlocalSolid()#
inline ~NonlocalSolid()#

Public Static Functions

static void getNonlocalWeights(Element element, Intergration intergration, Solidmat solidmat, Nodal nodal)#
static void normalizeNonlocalWeights(Element element, Intergration intergration, Nodal nodal)#
static inline Real getNonlocalValue(Real distance, Real cl, nonlocal_method method, Int &count)#
struct Seismic_structure#
#include <openfdem_sesmic.h>

Public Functions

void resize(Int size, Int initialsize = 0)#
void clear()#

Public Members

short method = 0#
Real window = 0.0#
UInt ae_num = 0#
std::vector<ae_type> ae#
struct solid_burgers_t#

Public Functions

solid_burgers_t() = default#

Public Members

Real E = 0.0#
Real v = 0.0#
Real den = 0.0#
Real K = 0.0#
Real kshear = 0.0#
Real kviscosity = 0.0#
Real mshear = 0.0#
Real mviscosity = 0.0#
struct solid_dfb_t#

Public Functions

solid_dfb_t() = default#

Public Members

Real E = 0.0#
Real v = 0.0#
Real den = 0.0#
Real K = 0.0#
Real G = 0.0#
Real k_c = 0.0#
Real m_c = 0.0#
Real k_t = 0.0#
Real m_t = 0.0#
Real KIC = 0.0#
Real sigma_c = 0.0#
Real c_wave = 0.0#
Real nita = 0.0#
Real xita = 0.0#
Real theta_0 = 0.0#
struct solid_DP_t#

Public Functions

solid_DP_t() = default#

Public Members

Real E = 0.0#
Real v = 0.0#
Real den = 0.0#
Real K = 0.0#
Real G = 0.0#
Real ten = 0.0#
Real qdil = 0.0#
Real qfric = 0.0#
Real kfric = 0.0#
struct solid_elastic_t#

Public Functions

solid_elastic_t() = default#

Public Members

Real E = 0.0#
Real v = 0.0#
Real den = 0.0#
Real K = 0.0#
Real G = 0.0#
Real lamda = 0.0#
Real G_c = 0.0#
Real l_c = 0.0#
Real nita = 0.0#
struct solid_excavate_t#

Public Functions

solid_excavate_t() = default#

Public Members

Real E = 0.0#
Real v = 0.0#
Real den = 0.0#
Real K = 0.0#
Real G = 0.0#
Real lamda = 0.0#
struct solid_JH_2_t#

Public Functions

solid_JH_2_t() = default#

Public Members

Real E = 0.0#
Real v = 0.0#
Real den = 0.0#
Real K = 0.0#
Real G = 0.0#
Real A = 0.0#
Real B = 0.0#
Real C = 0.0#
Real M = 0.0#
Real N = 0.0#
Real D1 = 0.0#
Real D2 = 0.0#
Real T = 0.0#
Real HEL = 0.0#
Real PHEL = 0.0#
Real SHEL = 0.0#
Real K1 = 0.0#
Real K2 = 0.0#
Real K3 = 0.0#
struct solid_JWL_t#

Public Functions

solid_JWL_t() = default#

Public Members

Real den = 0.0#
Real detonation = 0.0#
Real E0 = 0.0#
Real A = 0.0#
Real B = 0.0#
Real R1 = 0.0#
Real R2 = 0.0#
Real omega = 0.0#
Real x0 = 0.0#
Real y0 = 0.0#
Real t0 = 0.0#
struct Solid_mat_structure#
#include <openfdem_mat.h>

Public Functions

void resize(std::string type, Int size, Int initialsize = 0)#
void clear()#

Public Members

UInt n_mat = 0#
UInt n_cohmat = 0#
UInt n_conmat = 0#
UInt n_mpmfluid = 0#
UInt n_hydro_mat = 0#
UInt n_hydro_coh = 0#
UInt n_thermal_mat = 0#
Real matrixMaxK = 0#
Real matrixMaxG = 0#
Real contactMaxPn = 0.0#
Real cohesiveMaxPn = 0.0#
Real cohesiveMinTension = Openfdem_max_value#
Real particleMaxPn = 0.0#
Real hydroMaxPerm = 0.0#
Real hydroMaxAperature = 0.0#
Real hydroMaxInitialAperature = 0.0#
Real hydroMaxM = 0.0#
Real thermalMaxCconducticity = 0.0#
Real thermalMinSpecificheat = Openfdem_max_value#
Real contactPnMultiplier = 20.0#
Real contactPsMultiplier = 20.0#
Real cohesivePnMultiplier = 20.0#
Real cohesivePsMultiplier = 20.0#
std::vector<mat_element_t> elemat#
std::vector<mat_cohelement_t> cohelemat#
std::vector<mat_contact_t> conmat#
mat_fluid_t water#
std::vector<mat_mpmfluid_t> mpmfluid#
mat_gas_t gas#
std::vector<mat_fluid_element_t> hydro_ele#
std::vector<mat_fluid_cohesive_t> hydro_coh#
std::vector<mat_thermal_element_t> thermal_ele#
mat_nonlcoal_element_t nonlocal#
short hysteretic_flag = 0#
bool haswater = false#
bool hasgas = false#
struct solid_mazars_t#

Public Functions

solid_mazars_t() = default#

Public Members

Real E = 0.0#
Real v = 0.0#
Real den = 0.0#
Real K = 0.0#
Real G = 0.0#
Real e0 = 0.0#
Real At = 0.0#
Real Ac = 0.0#
Real Bt = 0.0#
Real Bc = 0.0#
struct solid_MC_t#

Public Functions

solid_MC_t() = default#

Public Members

Real E = 0.0#
Real v = 0.0#
Real den = 0.0#
Real K = 0.0#
Real G = 0.0#
Real lamda = 0.0#
Real ten = 0.0#
Real coh = 0.0#
Real fri = 0.0#
Real dil = 0.0#
struct solid_neo_t#

Public Functions

solid_neo_t() = default#

Public Members

Real E = 0.0#
Real v = 0.0#
Real den = 0.0#
Real K = 0.0#
Real G = 0.0#
Real lamda = 0.0#
struct solid_power_t#

Public Functions

solid_power_t() = default#

Public Members

Real E = 0.0#
Real v = 0.0#
Real den = 0.0#
Real K = 0.0#
Real G = 0.0#
Real a1 = 0.0#
Real a2 = 0.0#
Real n1 = 0.0#
Real n2 = 0.0#
Real rs1 = 0.0#
Real rs2 = 0.0#
struct solid_rigid_t#

Public Functions

solid_rigid_t() = default#

Public Members

Real den = 0.0#
struct solid_soften_t#

Public Functions

solid_soften_t() = default#

Public Members

Real E = 0.0#
Real v = 0.0#
Real den = 0.0#
Real K = 0.0#
Real G = 0.0#
Real lamda = 0.0#
Real stretch = 0.0#
Real coh = 0.0#
Int damage = 0.0#
struct solid_TCK_t#

Public Functions

solid_TCK_t() = default#

Public Members

Real E = 0.0#
Real v = 0.0#
Real den = 0.0#
Real K = 0.0#
Real G = 0.0#
Real m = 0.0#
Real k = 0.0#
Real KIC = 0.0#
Real c_wave = 0.0#
bool KUS = 0.0#
bool plastic = 0.0#
Real qdil = 0.0#
Real qfric = 0.0#
Real kfric = 0.0#
struct solid_transverse_t#

Public Functions

solid_transverse_t() = default#

Public Members

Real E1 = 0.0#
Real E3 = 0.0#
Real den = 0.0#
Real nu12 = 0.0#
Real nu13 = 0.0#
Real G = 0.0#
Real dip = 0.0#
Real dd = 0.0#
struct solid_truss_t#

Public Functions

solid_truss_t() = default#

Public Members

Real E = 0.0#
Real den = 0.0#
Real A = 0.0#
bool cable = 0.0#
struct solid_YANG_t#

Public Functions

solid_YANG_t() = default#

Public Members

Real E = 0.0#
Real v = 0.0#
Real den = 0.0#
Real K = 0.0#
Real G = 0.0#
Real alpha = 0.0#
Real beta = 0.0#
Real theta = 0.0#
bool plastic = 0.0#
Real qdil = 0.0#
Real qfric = 0.0#
Real kfric = 0.0#
struct solidcoh_EM_t#

Public Functions

solidcoh_EM_t() = default#

Public Members

Real pn = 0.0#
Real pt = 0.0#
Real ten = 0.0#
Real coh = 0.0#
Real fri = 0.0#
Real GI = 0.0#
Real GII = 0.0#
Real beta_n = 0.0#
Real beta_t = 0.0#
Real heat_exchage = 0.0#
Real leakoff = 0.0#
struct solidcoh_linear_t#

Public Functions

solidcoh_linear_t() = default#

Public Members

Real pn = 0.0#
Real pt = 0.0#
Real ten = 0.0#
Real coh = 0.0#
Real fri = 0.0#
Real GI = 0.0#
Real GII = 0.0#
Real heat_exchage = 0.0#
Real leakoff = 0.0#
struct solidcoh_OP_t#

Public Functions

solidcoh_OP_t() = default#

Public Members

Real pn = 0.0#
Real pt = 0.0#
Real ten = 0.0#
Real coh = 0.0#
Real delta_n = 0.0#
Real delta_s = 0.0#
Real heat_exchage = 0.0#
Real leakoff = 0.0#
struct solidcohani_EM_t#

Public Functions

solidcohani_EM_t() = default#

Public Members

Real power = 0.0#
Real gamma = 0.0#
Real dip = 0.0#
Real pn = 0.0#
Real pt = 0.0#
Real ten[3] = {0.0, 0, 0}#
Real coh[3] = {0.0, 0, 0}#
Real fri[3] = {0.0, 0, 0}#
Real GI[3] = {0.0, 0, 0}#
Real GII[3] = {0.0, 0, 0}#
Real heat_exchage = 0.0#
Real leakoff = 0.0#
struct solidcohdyn_EM_t#

Public Functions

solidcohdyn_EM_t() = default#

Public Members

Real pn = 0.0#
Real pt = 0.0#
Real ten = 0.0#
Real coh = 0.0#
Real fri = 0.0#
Real GI = 0.0#
Real GII = 0.0#
Real c_rate_n = 0.0#
Real c_rate_s = 0.0#
Real exp_n = 0.0#
Real exp_s = 0.0#
Real heat_exchage = 0.0#
Real leakoff = 0.0#
class SolidCohesiveMatModule : public OpenFdemAbstract#

Public Static Functions

static void push_cohesive_element_materials(General general, Cohelement cohelement, Group group, Solidmat solidmat, Boudary boudary, char *keyword)#
static void push_fluid_cohesive_element_materials(General general, Cohelement cohelement, Group group, Solidmat solidmat, Hydro hydro, char *keyword)#
static void set_cohmat_EM(Boudary boudary, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void set_cohmat_hetergenousEM(Boudary boudary, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void set_cohmat_anisotropicEM(Boudary boudary, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void set_cohmat_dynamicEM(Boudary boudary, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void set_cohmat_linear(Boudary boudary, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void set_cohmat_OP(Boudary boudary, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static inline Int checkCZMMat(Solidmat solidmat, char *tag)#
struct solidcohhet_EM_t#

Public Functions

solidcohhet_EM_t() = default#

Public Members

Real pn = 0.0#
Real pt = 0.0#
Real ten[3] = {0.0, 0, 0}#
Real coh[3] = {0.0, 0, 0}#
Real fri[3] = {0.0, 0, 0}#
Real GI[3] = {0.0, 0, 0}#
Real GII[3] = {0.0, 0, 0}#
Real heat_exchage = 0.0#
Real leakoff = 0.0#
struct solidcon_Bond_t#

Public Functions

solidcon_Bond_t() = default#

Public Members

Real fri = 0.0#
Real kn = 0.0#
Real ks = 0.0#
Real damp = 0.0#
Real cohesion = 0.0#
Real tension = 0.0#
Real gap = 0.0#
struct solidcon_dynamic_MC_t#

Public Functions

solidcon_dynamic_MC_t() = default#

Public Members

Real kn = 0.0#
Real ks = 0.0#
Real static_fri = 0.0#
Real residual_fri = 0.0#
Real slip_rate = 0.0#
struct solidcon_GG_t#

Public Functions

solidcon_GG_t() = default#

Public Members

Real kn = 0.0#
Real ks = 0.0#
Real fri = 0.0#
Real theta = 0.0#
Real C = 0.0#
Real B = 0.0#
Real A0 = 0.0#
Real tension = 0.0#
struct solidcon_MC_t#

Public Functions

solidcon_MC_t() = default#

Public Members

Real fri = 0.0#
Real kn = 0.0#
Real ks = 0.0#
struct solidcon_Rrotation_t#

Public Functions

solidcon_Rrotation_t() = default#

Public Members

Real fri = 0.0#
Real kn = 0.0#
Real ks = 0.0#
Real kr = 0.0#
Real dampn = 0.0#
Real dampr = 0.0#
Real fri_r = 0.0#
struct solidcon_standard_t#

Public Functions

solidcon_standard_t() = default#

Public Members

Real fri = 0.0#
Real kn = 0.0#
Real ks = 0.0#
Real damp = 0.0#
class SolidContactMatModule : public OpenFdemAbstract#

Public Static Functions

static void push_contact_materials(General general, Solidmat solidmat, Contact contact, char *keyword)#
static void set_conmat_bond(UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void set_conmat_dynamicMC(UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void set_conmat_MC(UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void set_conmat_rMC(UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void set_conmat_risistancerotation(UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void set_conmat_standard(UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void set_conmat_roughshear(UInt nmat, Solidmat solidmat, Keywords &Keyword)#
class SolidMatModule : public OpenFdemAbstract#

Public Static Functions

static void push_element_materials(General general, Element element, Group group, Solidmat solidmat, Boudary boudary, char *keyword)#
static void push_particle_materials(General general, Particle particle, Group group, Solidmat solidmat, char *keyword)#
static void push_fluid_element_materials(General general, Element element, Group group, Solidmat solidmat, Hydro hydro, char *keyword)#
static void push_thermal_element_materials(General general, Element element, Group group, Solidmat solidmat, Thermal thermal, char *keyword)#
static void push_mpmfluid_element_materials(General general, Group group, Solidmat solidmat, MPM mpm, char *keyword)#
static void push_mpmsolid_element_materials(General general, Group group, Solidmat solidmat, MPM mpm, Boudary boudary, char *keyword)#
static void push_fluid_materials(General general, Solidmat solidmat)#
static void push_gas_materials(General general, Solidmat solidmat)#
static void setHookeElementMaterial(General general, Boudary boudary, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setJWLElementMaterial(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setTransverseElementMaterial(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setNeoHookeanElementMaterial(General general, Boudary boudary, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setExacavteElementMaterial(General general, Boudary boudary, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setDruckerPragerElementMaterial(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setMohrCoulombElementMaterial(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setRigidElementMaterial(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setBurgersElementMaterial(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setPowerLawElementMaterial(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setMazarsElementMaterial(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setJH2ElementMaterial(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setTCKElementMaterial(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setDFBElementMaterial(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void setYangBlastElementMaterial(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void set_MPM_mat_sand(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static void set_MPM_mat_snow(General general, UInt nmat, Solidmat solidmat, Keywords &Keyword)#
static inline Real getMatK(Int matrixmat, Solidmat solidmat)#
static inline Real getMatG(Int matrixmat, Solidmat solidmat)#
static inline void set_nonlocal(General general, Solidmat solidmat)#
static inline Int checkSolidMat(Solidmat solidmat, char *tag)#
class SolidMechanicsCohesiveDynamicModule : public OpenFdemAbstract, public ns_solid::InterfaceUtils#

Public Functions

inline SolidMechanicsCohesiveDynamicModule()#
inline ~SolidMechanicsCohesiveDynamicModule()#
void getTimeDependentParameters(General general, Cohelement cohelement, Solidmat solidmat, Boudary boudary)#
void solid_mechanics_dynamic_cohesive(Nodal nodal, Edge edge, Cohelement cohelement, Element element, Contact contact, Solidmat solidmat, Seismic seismic, General general)#

Public Members

UInt cohelement_id#
Real tableValue[COHMAT_TABLE_SIZE] = {1.0, 1.0, 1.0, 1.0, 1.0}#
class SolidMechanicsCohesiveEMModule : public OpenFdemAbstract, public ns_solid::InterfaceUtils#

Public Functions

inline SolidMechanicsCohesiveEMModule()#
inline ~SolidMechanicsCohesiveEMModule()#
void getTimeDependentParameters(General general, Cohelement cohelement, Solidmat solidmat, Boudary boudary)#
void solidMechanicsCohesiveEvansMarathe(Nodal nodal, Edge edge, Cohelement cohelement, Element element, Contact contact, Solidmat solidmat, Seismic seismic, General general)#

Public Members

UInt cohelement_id#
UInt Nnode = 4#
Real sabs = 0.0#
UInt Ndamage = 0#
Vector2 upcoord[2]#
Vector2 downcoord[2]#
Vector2 middleplane[2]#
Vector2 disjump[2]#
Vector2 veljump[2]#
Vector2 force[2]#
Vector2 localdis[2]#
Vector2 localvel[2]#
Vector2 line#
Vector2 CZMpeak#
Vector2 CZMresidual#
Real tableValue[COHMAT_TABLE_SIZE] = {1.0, 1.0, 1.0, 1.0, 1.0}#
class SolidMechanicsCohesiveInstrinsicModule : public OpenFdemAbstract, public ns_solid::InterfaceUtils#

Public Functions

inline SolidMechanicsCohesiveInstrinsicModule()#
inline ~SolidMechanicsCohesiveInstrinsicModule()#
void solid_mechanics_extrinsic_cohesive(Nodal nodal, Edge edge, Cohelement cohelement, Element element, Contact contact, Solidmat solidmat, Seismic seismic, General general)#

Public Members

UInt cohelement_id#
Real tableValue[COHMAT_TABLE_SIZE] = {1.0, 1.0, 1.0, 1.0, 1.0}#
class SolidMechanicsCohesiveOPModule : public OpenFdemAbstract, public ns_solid::InterfaceUtils#

Public Functions

inline SolidMechanicsCohesiveOPModule()#
inline ~SolidMechanicsCohesiveOPModule()#
void getTimeDependentParameters(General general, Cohelement cohelement, Solidmat solidmat, Boudary boudary)#
void Solid_mechanics_cohesive_OP(Nodal nodal, Edge edge, Cohelement cohelement, Element element, Contact contact, Solidmat solidmat, Seismic seismic, General general)#

Public Members

UInt cohelement_id#
Real tableValue[COHMAT_TABLE_SIZE] = {1.0, 1.0, 1.0, 1.0, 1.0}#
class SolidMechanicsModule : public OpenFdemAbstract, public ElementUtils#

Public Functions

inline SolidMechanicsModule()#
inline ~SolidMechanicsModule()#

Public Static Functions

static void solid_mechanics_S2_hoek(Element element, Intergration intergration, Solidmat solidmat, General general, UInt elementid, Nodal nodal)#
static void Solid_mechanics_T3_Elastic(Element element, Intergration intergration, Solidmat solidmat, General general, UInt elementid, Nodal nodal, Boudary boudary)#
static void Solid_mechanics_Q4_Hoek(Element element, Intergration intergration, Solidmat solidmat, General general, UInt elementid, Nodal nodal, Boudary boudary)#
static void solid_mechanics_T6_hoek(Element element, Intergration intergration, Solidmat solidmat, General general, UInt elementid, Nodal nodal, Boudary boudary)#
static void solid_mechanics_Q8_hoek(Element element, Intergration intergration, Solidmat solidmat, General general, UInt elementid, Nodal nodal, Boudary boudary)#
static void solid_mechanics_polygon(Element element, Intergration intergration, Solidmat solidmat, General general, UInt elementid, Nodal nodal, Boudary boudary)#
class SolidModule : public OpenFdemAbstract, public OpenFDEMmessage#
#include <solid_mechanics.h>

Public Functions

inline SolidModule()#
inline ~SolidModule()#

Public Static Functions

static void solid_mechanics_update_nonlocalmatrix(Openfdem openfdem)#

update matrix force if the element is considered as nonlocal.

Parameters:

openfdem

static void solid_mechanics_update_cohesive(Openfdem openfdem)#

update cohesive force if have interfaces.

Parameters:

openfdem

static void solid_mechanics_update_matrix(Openfdem openfdem)#

update internal force for matrix.

Parameters:

openfdem

namespace ns_common
namespace ns_solid
namespace ns_solve#
file get_gauss_point_counts.h
#include <algorithm>
#include “common/openfdem_abstract.h”
#include “mesh/openfdem_mesh_module.h”
#include “solver/openfdem.h”
file get_gauss_point_location.h
#include <algorithm>
#include “common/openfdem_abstract.h”
#include “mesh/openfdem_mesh_module.h”
#include “solver/openfdem.h”
file get_gauss_point_weights.h
#include <algorithm>
#include “common/openfdem_abstract.h”
#include “mesh/openfdem_mesh_module.h”
#include “solver/openfdem.h”
file get_shape_function_derivs.h
#include <algorithm>
#include “common/openfdem_abstract.h”
#include “mesh/openfdem_mesh_module.h”
#include “solver/openfdem.h”
file shape_function_library.h
#include <algorithm>
#include “common/openfdem_abstract.h”
#include “mesh/openfdem_mesh_module.h”
#include “solver/openfdem.h”
file material_utils.h
#include <algorithm>
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
file openfdem_mat.h
#include “common/openfdem_enum.h”

Defines

MAT_PARAMETER_SIZE#
MAT_PARAMETER_e1_ID#
MAT_PARAMETER_e2_ID#
MAT_PARAMETER_g2_ID#
MAT_PARAMETER_damp_ID#
MAT_FIELD_TABLE_SIZE#
MAT_FIELD_E_TABLE_ID#
MAT_FIELD_v_TABLE_ID#
MAT_FIELD_ten_TABLE_ID#
MAT_FIELD_coh_TABLE_ID#
MAT_FIELD_fric_TABLE_ID#

Typedefs

typedef struct Solid_mat_structure *Solidmat#
file openfdem_solid_materials.h
#include “common/openfdem_common.h”
file push_element_materials.h
#include “common/memory_manager.h”
#include “iohelper/openfdem_io_module.h”
file openfdem_solid_cohesive_materials.h
#include “common/openfdem_common.h”

Defines

COHMAT_TABLE_SIZE#
COHMAT_ten_TABLE_ID#
COHMAT_coh_TABLE_ID#
COHMAT_fric_TABLE_ID#
COHMAT_gi_TABLE_ID#
COHMAT_gii_TABLE_ID#
COHMAT_op_TABLE_ID#
COHMAT_os_TABLE_ID#
file push_cohesive_element_materials.h
#include “common/memory_manager.h”
#include “iohelper/openfdem_io_module.h”
file openfdem_solid_contact_materials.h
#include “common/openfdem_common.h”
file push_contact_materials.h
#include “iohelper/openfdem_io_module.h”
#include “common/memory_manager.h”
file openfdem_edge.h
#include “common/openfdem_common.h”

Typedefs

typedef struct Edge_structure *Edge#
file openfdem_entity.h
#include “common/openfdem_common.h”

Typedefs

typedef struct Entity_structure *Entity#
file openfdem_nodal.h
#include “common/openfdem_common.h”

Typedefs

typedef struct Nodal_structure *Nodal#
file solid_mechanics.h
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
file nonlocal_model_module.h
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “common/memory_manager.h”
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
file solid_mechanics_model_nlmazars.h
#include “common/openfdem_abstract.h”
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “solver/openfdem.h”
file solid_mechanics_model_nlTCK.h
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
file solid_mechanics_model_nlyang.h
#include “common/openfdem_abstract.h”
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “solver/openfdem.h”
file openfdem_solid.h
#include “common/openfdem_common.h”

Typedefs

typedef struct Element_structure *Element#
file solid_mechanics_model_aniso.h
#include “common/openfdem_abstract.h”
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “solver/openfdem.h”
file solid_mechanics_model_burger.h
#include “common/openfdem_abstract.h”
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “solver/openfdem.h”
file solid_mechanics_model_druckerprager.h
#include “common/openfdem_abstract.h”
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “solver/openfdem.h”
file solid_mechanics_model_elastic.h
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include <solver/boudary/boundary_utils.h>
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
file solid_mechanics_model_excavation.h
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
file solid_mechanics_model_JH2.h
#include “common/openfdem_abstract.h”
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “solver/openfdem.h”
file solid_mechanics_model_JWL.h
#include “common/openfdem_abstract.h”
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “solver/openfdem.h”
file solid_mechanics_model_mazars.h
#include “common/openfdem_abstract.h”
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “solver/openfdem.h”
file solid_mechanics_model_mohr.h
#include “common/openfdem_abstract.h”
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “solver/openfdem.h”
file solid_mechanics_model_neohookean.h
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
file solid_mechanics_model_TCK.h
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
file solid_mechanics_model_yang.h
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
file solid_mechanics_module.h
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
file openfdem_DFN.h

Typedefs

typedef struct DFN_structure *DFN#
file openfdem_solid_cohesive.h
#include “common/openfdem_common.h”

Typedefs

typedef struct Coh_element_structure *Cohelement#
file openfdem_sesmic.h
#include “common/openfdem_common.h”

Typedefs

typedef struct Seismic_structure *Seismic#
file solid_interface_element_utils.h
#include <algorithm>
#include “common/openfdem_abstract.h”
#include “common/openfdem_math.h”
#include “mesh/openfdem_mesh_module.h”
#include “solver/openfdem.h”

Defines

MAT_RANDOM_MEAN_ID#
MAT_RANDOM_DEV_ID#
MAT_RANDOM_RETURN_ID#
file solid_mechanics_cohesive_dynamic_EM.h
#include <solver/boudary/boundary_utils.h>
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
file solid_mechanics_cohesive_EM.h
#include <solver/boudary/boundary_utils.h>
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
file solid_mechanics_cohesive_intrinsic_EM.h
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
file solid_mechanics_cohesive_module.h
file solid_mechanics_cohesive_OP.h
#include <solver/boudary/boundary_utils.h>
#include “common/openfdem_abstract.h”
#include “solver/openfdem.h”
dir DFN
dir element_function_library
dir materials
dir non_local_model
dir sesmic
dir solid
dir solid_mat
dir solid_mat_cohesive
dir solid_mat_contact
dir solid_mechanics
dir solid_mechanics_cohesive
dir src