Loading [MathJax]/extensions/MathZoom.js
OGS
PhaseFieldBase.h File Reference

Detailed Description

Definition in file PhaseFieldBase.h.

#include <Eigen/Core>
#include <numbers>
#include <optional>
#include "BaseLib/Logging.h"
#include "LinearElasticIsotropic.h"
#include "LinearElasticIsotropicPhaseField.h"
#include "LinearElasticOrthotropic.h"
#include "LinearElasticOrthotropicPhaseField.h"
Include dependency graph for PhaseFieldBase.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  MaterialLib::Solids::Phasefield::DegradationDerivative
 
class  MaterialLib::Solids::Phasefield::AT_DegradationDerivative
 
class  MaterialLib::Solids::Phasefield::COHESIVE_DegradationDerivative
 

Namespaces

namespace  MaterialLib
 
namespace  MaterialLib::Solids
 
namespace  MaterialLib::Solids::Phasefield
 

Enumerations

enum class  MaterialLib::Solids::Phasefield::PhaseFieldModel { MaterialLib::Solids::Phasefield::AT1 , MaterialLib::Solids::Phasefield::AT2 , MaterialLib::Solids::Phasefield::COHESIVE }
 
enum class  MaterialLib::Solids::Phasefield::SofteningCurve { MaterialLib::Solids::Phasefield::Linear , MaterialLib::Solids::Phasefield::Exponential }
 
enum class  MaterialLib::Solids::Phasefield::EnergySplitModel {
  MaterialLib::Solids::Phasefield::Isotropic , MaterialLib::Solids::Phasefield::VolDev , MaterialLib::Solids::Phasefield::EffectiveStress , MaterialLib::Solids::Phasefield::OrthoVolDev ,
  MaterialLib::Solids::Phasefield::OrthoMasonry
}
 

Functions

template<int DisplacementDim>
PhaseFieldModel MaterialLib::Solids::Phasefield::convertStringToPhaseFieldModel (std::string const &phasefield_model)
 
template<int DisplacementDim>
SofteningCurve MaterialLib::Solids::Phasefield::convertStringToSofteningCurve (std::optional< std::string > const &softening_curve)
 
template<int DisplacementDim>
EnergySplitModel MaterialLib::Solids::Phasefield::convertStringToEnergySplitModel (std::string const &energy_split_model)
 
template<int DisplacementDim>
std::unique_ptr< DegradationDerivativeMaterialLib::Solids::Phasefield::creatDegradationDerivative (PhaseFieldModel const &phasefield_model, double const lch, SofteningCurve const &softening_curve)
 
template<typename T_DNDX , typename T_N , typename T_W , typename T_D , typename T_LOCAL_JAC , typename T_LOCAL_RHS >
void MaterialLib::Solids::Phasefield::calculateCrackLocalJacobianAndResidual (T_DNDX &dNdx, T_N &N, T_W &w, T_D &d, T_LOCAL_JAC &local_Jac, T_LOCAL_RHS local_rhs, double const gc, double const ls, PhaseFieldModel &phasefield_model)
 
template<typename T_VECTOR , typename T_MATRIX , int DisplacementDim>
void MaterialLib::Solids::Phasefield::calculateStress (T_VECTOR &sigma, T_VECTOR &sigma_tensile, T_VECTOR &sigma_compressive, T_VECTOR &eps_tensile, T_MATRIX &D, T_MATRIX &C_tensile, T_MATRIX &C_compressive, double &strain_energy_tensile, double &elastic_energy, double const degradation, T_VECTOR const &eps, EnergySplitModel const &energy_split_model, double const t, ParameterLib::SpatialPosition const &x, MaterialLib::Solids::MechanicsBase< DisplacementDim > const &solid_material)