Definition at line 113 of file HMPhaseFieldFEM.h.
#include <HMPhaseFieldFEM.h>
Public Types | |
using | ShapeMatricesType |
using | ShapeMatrices = typename ShapeMatricesType::ShapeMatrices |
using | BMatricesType = BMatrixPolicyType<ShapeFunction, DisplacementDim> |
using | NodalForceVectorType = typename BMatricesType::NodalForceVectorType |
using | GlobalDimVectorType = typename ShapeMatricesType::GlobalDimVectorType |
using | DeformationVector |
using | DeformationMatrix |
using | PhaseFieldVector |
using | PhaseFieldMatrix |
using | PressureVector |
using | PressureMatrix |
using | NodalMatrixType = typename ShapeMatricesType::NodalMatrixType |
using | NodalVectorType = typename ShapeMatricesType::NodalVectorType |
using | IpData |
using | Invariants = MathLib::KelvinVector::Invariants<KelvinVectorSize> |
Public Member Functions | |
HMPhaseFieldLocalAssembler (HMPhaseFieldLocalAssembler const &)=delete | |
HMPhaseFieldLocalAssembler (HMPhaseFieldLocalAssembler &&)=delete | |
HMPhaseFieldLocalAssembler (MeshLib::Element const &e, std::size_t const, NumLib::GenericIntegrationMethod const &integration_method, bool const is_axially_symmetric, HMPhaseFieldProcessData< DisplacementDim > &process_data) | |
void | assembleWithJacobianForStaggeredScheme (double const t, double const dt, Eigen::VectorXd const &local_x, Eigen::VectorXd const &local_x_prev, int const process_id, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data) override |
void | initializeConcrete () override |
void | postTimestepConcrete (Eigen::VectorXd const &, Eigen::VectorXd const &, double const, double const, int const) override |
void | postNonLinearSolverConcrete (Eigen::VectorXd const &local_x, Eigen::VectorXd const &local_x_prev, double const t, double const dt, int const process_id) override |
void | approximateFractureWidth (std::size_t mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, double const t, double const dt) override |
void | computeEnergy (std::size_t mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, double const t, double &elastic_energy, double &surface_energy, double &pressure_work) override |
double | heaviside (double const v) |
Eigen::Map< const Eigen::RowVectorXd > | getShapeMatrix (const unsigned integration_point) const override |
Provides the shape matrix at the given integration point. | |
std::vector< double > const & | getIntPtWidth (const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const override |
![]() | |
![]() | |
virtual | ~LocalAssemblerInterface ()=default |
virtual void | setInitialConditions (std::size_t const mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, double const t, int const process_id) |
virtual void | initialize (std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table) |
virtual void | preAssemble (double const, double const, std::vector< double > const &) |
virtual void | assemble (double const t, double const dt, std::vector< double > const &local_x, std::vector< double > const &local_x_prev, std::vector< double > &local_M_data, std::vector< double > &local_K_data, std::vector< double > &local_b_data) |
virtual void | assembleForStaggeredScheme (double const t, double const dt, Eigen::VectorXd const &local_x, Eigen::VectorXd const &local_x_prev, int const process_id, std::vector< double > &local_M_data, std::vector< double > &local_K_data, std::vector< double > &local_b_data) |
virtual void | assembleWithJacobian (double const t, double const dt, std::vector< double > const &local_x, std::vector< double > const &local_x_prev, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data) |
virtual void | computeSecondaryVariable (std::size_t const mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, double const t, double const dt, std::vector< GlobalVector * > const &x, GlobalVector const &x_prev, int const process_id) |
virtual void | preTimestep (std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table, GlobalVector const &x, double const t, double const delta_t) |
virtual void | postTimestep (std::size_t const mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, double const t, double const dt, int const process_id) |
void | postNonLinearSolver (std::size_t const mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, double const t, double const dt, int const process_id) |
virtual Eigen::Vector3d | getFlux (MathLib::Point3d const &, double const, std::vector< double > const &) const |
virtual Eigen::Vector3d | getFlux (MathLib::Point3d const &, double const, std::vector< std::vector< double > > const &) const |
Fits to staggered scheme. | |
virtual std::optional< VectorSegment > | getVectorDeformationSegment () const |
![]() | |
virtual | ~ExtrapolatableElement ()=default |
Static Public Attributes | |
static int const | KelvinVectorSize |
static constexpr auto & | N_u_op |
Private Member Functions | |
std::vector< double > const & | getIntPtSigma (const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const override |
std::vector< double > const & | getIntPtEpsilon (const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const override |
void | assembleWithJacobianHydroEquations (const double t, double const dt, Eigen::VectorXd const &local_x, Eigen::VectorXd const &local_x_prev, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data) |
void | assembleWithJacobianPhaseFieldEquations (double const t, double const dt, Eigen::VectorXd const &local_x, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data) |
void | assembleWithJacobianForDeformationEquations (double const t, double const dt, Eigen::VectorXd const &local_x, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data) |
Private Attributes | |
HMPhaseFieldProcessData< DisplacementDim > & | _process_data |
std::vector< IpData, Eigen::aligned_allocator< IpData > > | _ip_data |
NumLib::GenericIntegrationMethod const & | _integration_method |
MeshLib::Element const & | _element |
SecondaryData< typename ShapeMatrices::ShapeType > | _secondary_data |
bool const | _is_axially_symmetric |
Static Private Attributes | |
static constexpr int | phasefield_index = 0 |
static constexpr int | phasefield_size = ShapeFunction::NPOINTS |
static constexpr int | pressure_index = phasefield_index + phasefield_size |
static constexpr int | pressure_size = ShapeFunction::NPOINTS |
static constexpr int | displacement_index = pressure_index + pressure_size |
static constexpr int | displacement_size |
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::BMatricesType = BMatrixPolicyType<ShapeFunction, DisplacementDim> |
Definition at line 130 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::DeformationMatrix |
Definition at line 138 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::DeformationVector |
Definition at line 136 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::GlobalDimVectorType = typename ShapeMatricesType::GlobalDimVectorType |
Definition at line 134 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::Invariants = MathLib::KelvinVector::Invariants<KelvinVectorSize> |
Definition at line 163 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::IpData |
Definition at line 154 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::NodalForceVectorType = typename BMatricesType::NodalForceVectorType |
Definition at line 132 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::NodalMatrixType = typename ShapeMatricesType::NodalMatrixType |
Definition at line 152 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::NodalVectorType = typename ShapeMatricesType::NodalVectorType |
Definition at line 153 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::PhaseFieldMatrix |
Definition at line 143 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::PhaseFieldVector |
Definition at line 141 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::PressureMatrix |
Definition at line 148 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::PressureVector |
Definition at line 146 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::ShapeMatrices = typename ShapeMatricesType::ShapeMatrices |
Definition at line 128 of file HMPhaseFieldFEM.h.
using ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::ShapeMatricesType |
Definition at line 125 of file HMPhaseFieldFEM.h.
|
delete |
|
delete |
|
inline |
Definition at line 168 of file HMPhaseFieldFEM.h.
References ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_element, ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_integration_method, ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_ip_data, ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_process_data, ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_secondary_data, MeshLib::Element::getID(), NumLib::GenericIntegrationMethod::getNumberOfPoints(), MathLib::WeightedPoint::getWeight(), NumLib::GenericIntegrationMethod::getWeightedPoint(), NumLib::initShapeMatrices(), MathLib::KelvinVector::kelvin_vector_dimensions(), ProcessLib::HMPhaseField::SecondaryData< ShapeMatrixType >::N, MaterialLib::Solids::selectSolidConstitutiveRelation(), and ParameterLib::SpatialPosition::setElementID().
|
overridevirtual |
Implements ProcessLib::HMPhaseField::HMPhaseFieldLocalAssemblerInterface.
Definition at line 455 of file HMPhaseFieldFEM-impl.h.
References ProcessLib::getCoupledLocalSolutions(), MathLib::KelvinVector::kelvinVectorToTensor(), and ParameterLib::SpatialPosition::setElementID().
|
private |
Definition at line 61 of file HMPhaseFieldFEM-impl.h.
References ProcessLib::LinearBMatrix::computeBMatrix(), MathLib::createZeroedMatrix(), MathLib::createZeroedVector(), NumLib::interpolateXCoordinate(), MaterialLib::Solids::selectSolidConstitutiveRelation(), and ParameterLib::SpatialPosition::setElementID().
|
overridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 31 of file HMPhaseFieldFEM-impl.h.
|
private |
Definition at line 174 of file HMPhaseFieldFEM-impl.h.
References MathLib::createZeroedMatrix(), MathLib::createZeroedVector(), MaterialPropertyLib::formEigenTensor(), and ParameterLib::SpatialPosition::setElementID().
|
private |
Definition at line 333 of file HMPhaseFieldFEM-impl.h.
References MathLib::createZeroedMatrix(), MathLib::createZeroedVector(), MaterialLib::Solids::selectSolidConstitutiveRelation(), and ParameterLib::SpatialPosition::setElementID().
|
overridevirtual |
Implements ProcessLib::HMPhaseField::HMPhaseFieldLocalAssemblerInterface.
Definition at line 532 of file HMPhaseFieldFEM-impl.h.
References MaterialLib::Solids::Phasefield::AT1, MaterialLib::Solids::Phasefield::AT2, MaterialLib::Solids::Phasefield::COHESIVE, ProcessLib::getCoupledLocalSolutions(), and ParameterLib::SpatialPosition::setElementID().
|
inlineoverrideprivatevirtual |
Implements ProcessLib::HMPhaseField::HMPhaseFieldLocalAssemblerInterface.
Definition at line 322 of file HMPhaseFieldFEM.h.
References ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_ip_data, ProcessLib::HMPhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::eps, and ProcessLib::getIntegrationPointKelvinVectorData().
|
inlineoverrideprivatevirtual |
Implements ProcessLib::HMPhaseField::HMPhaseFieldLocalAssemblerInterface.
Definition at line 312 of file HMPhaseFieldFEM.h.
References ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_ip_data, ProcessLib::getIntegrationPointKelvinVectorData(), and ProcessLib::HMPhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::sigma.
|
overridevirtual |
Implements ProcessLib::HMPhaseField::HMPhaseFieldLocalAssemblerInterface.
Definition at line 630 of file HMPhaseFieldFEM-impl.h.
References ProcessLib::getIntegrationPointScalarData().
|
inlineoverridevirtual |
Provides the shape matrix at the given integration point.
Implements NumLib::ExtrapolatableElement.
Definition at line 296 of file HMPhaseFieldFEM.h.
References ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_secondary_data, and ProcessLib::HMPhaseField::SecondaryData< ShapeMatrixType >::N.
|
inline |
Definition at line 294 of file HMPhaseFieldFEM.h.
|
inlineoverridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 238 of file HMPhaseFieldFEM.h.
References ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_element, ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_integration_method, ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_ip_data, ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_process_data, MeshLib::Element::getID(), NumLib::GenericIntegrationMethod::getNumberOfPoints(), and ParameterLib::SpatialPosition::setElementID().
|
overridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 436 of file HMPhaseFieldFEM-impl.h.
|
inlineoverridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 262 of file HMPhaseFieldFEM.h.
References ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_integration_method, ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::_ip_data, and NumLib::GenericIntegrationMethod::getNumberOfPoints().
|
private |
|
private |
Definition at line 349 of file HMPhaseFieldFEM.h.
Referenced by ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::HMPhaseFieldLocalAssembler(), ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::initializeConcrete(), and ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::postTimestepConcrete().
|
private |
Definition at line 347 of file HMPhaseFieldFEM.h.
Referenced by ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::HMPhaseFieldLocalAssembler(), ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::getIntPtEpsilon(), ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::getIntPtSigma(), ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::initializeConcrete(), and ProcessLib::HMPhaseField::HMPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::postTimestepConcrete().
|
private |
Definition at line 352 of file HMPhaseFieldFEM.h.
|
private |
|
private |
|
staticconstexprprivate |
Definition at line 120 of file HMPhaseFieldFEM.h.
|
staticconstexprprivate |
Definition at line 121 of file HMPhaseFieldFEM.h.
|
static |
Definition at line 157 of file HMPhaseFieldFEM.h.
|
staticconstexpr |
Definition at line 160 of file HMPhaseFieldFEM.h.
|
staticconstexprprivate |
Definition at line 116 of file HMPhaseFieldFEM.h.
|
staticconstexprprivate |
Definition at line 117 of file HMPhaseFieldFEM.h.
|
staticconstexprprivate |
Definition at line 118 of file HMPhaseFieldFEM.h.
|
staticconstexprprivate |
Definition at line 119 of file HMPhaseFieldFEM.h.