Phase field class#

class ModelPhasefield : public OpenFdemAbstract#

Public Functions

inline ModelPhasefield()#
inline ~ModelPhasefield()#
inline void getBulkParameters(Solidmat solidmat, const Int matindices)#

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

Parameters:
  • solidmat

  • matindices

void computePhasefield(Nodal nodal, Element element, Intergration intergration)#
void PhasefieldModelElastic(Nodal nodal, Element element, Intergration intergration, Solidmat solidmat)#

Public Members

Real phi_ = 0.0#
Real g_c = 0.0#
Real l_c = 0.0#
Real nita = 0.0#
Real gl = 0.0#
UInt ig#
UInt elementindices#
class ModelPhasefieldDis : public OpenFdemAbstract#

Public Functions

inline void computePrincipalStress(Real prinS[], const Real prinE[], const Real straintrace, bool ispostive)#
inline void getBulkParameters(Solidmat solidmat, const Int matindices)#

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

Parameters:
  • solidmat

  • matindices

void computeElasticTrailStressatIntergration(Intergration intergration, const Int ig)#

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

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

Public Members

Real e1_ = 0.0#
Real e2_ = 0.0#
Real g2_ = 0.0#
Real rou = 0.0#
Real E = 0.0#
Real damp = 0.0#
Real mu = 0.0#
Real lamda = 0.0#
Real phi_ = 0.0#
UInt elementindices#
class ModelPhasefieldDisDev : public OpenFdemAbstract#

Public Functions

inline ModelPhasefieldDisDev()#
inline ~ModelPhasefieldDisDev()#
virtual void computePrincipalStress(Real prinS[], Real prinE[], Real straintrace, bool ispostive)#
void getBulkParameters(Solidmat solidmat, const Int matindices)#

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

Parameters:
  • solidmat

  • matindices

void computeElasticTrailStressatIntergration(Intergration intergration, const Int ig)#

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

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

Public Members

Real e1_ = 0.0#
Real e2_ = 0.0#
Real g2_ = 0.0#
Real rou = 0.0#
Real E = 0.0#
Real damp = 0.0#
Real mu = 0.0#
Real lamda = 0.0#
Real phi_ = 0.0#
UInt elementindices#
class Phasefield : public OpenFdemAbstract, public ElementUtils#

Public Functions

inline Phasefield()#
inline ~Phasefield()#

Public Static Functions

static void phase_field_update(Openfdem openfdem)#

main function to call phase field.

Parameters:

openfdem

namespace ns_common
namespace ns_phasefield#
namespace ns_solid
file phase_field_model_module.h
#include “common/openfdem_abstract.h”
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “solver/openfdem.h”
file solid_mechanics_model_phasefield.h
#include “common/openfdem_abstract.h”
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “solver/openfdem.h”
file solid_mechanics_model_phasefield_displacement.h
#include “common/openfdem_abstract.h”
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “solver/openfdem.h”
file solid_mechanics_model_phasefield_displacement_dev.h
#include “common/openfdem_abstract.h”
#include <solid/solid_mechanics/element_utils/element_utils.h>
#include “solver/openfdem.h”
dir phasefield
dir src