OGS
|
Definition at line 111 of file PhaseFieldFEM.h.
#include <PhaseFieldFEM.h>
Public Types | |
using | ShapeMatricesType = ShapeMatrixPolicyType< ShapeFunction, DisplacementDim > |
using | ShapeMatrices = typename ShapeMatricesType::ShapeMatrices |
using | BMatricesType = BMatrixPolicyType< ShapeFunction, DisplacementDim > |
using | NodalForceVectorType = typename BMatricesType::NodalForceVectorType |
using | DeformationVector = typename ShapeMatricesType::template VectorType< displacement_size > |
using | PhaseFieldVector = typename ShapeMatricesType::template VectorType< phasefield_size > |
using | PhaseFieldMatrix = typename ShapeMatricesType::template MatrixType< phasefield_size, phasefield_size > |
using | NodalMatrixType = typename ShapeMatricesType::NodalMatrixType |
using | NodalVectorType = typename ShapeMatricesType::NodalVectorType |
using | IpData = IntegrationPointData< BMatricesType, ShapeMatricesType, DisplacementDim > |
Public Member Functions | |
PhaseFieldLocalAssembler (PhaseFieldLocalAssembler const &)=delete | |
PhaseFieldLocalAssembler (PhaseFieldLocalAssembler &&)=delete | |
PhaseFieldLocalAssembler (MeshLib::Element const &e, std::size_t const, bool const is_axially_symmetric, unsigned const integration_order, PhaseFieldProcessData< DisplacementDim > &process_data) | |
void | assemble (double const, double const, std::vector< double > const &, std::vector< double > const &, std::vector< double > &, std::vector< double > &, std::vector< double > &) override |
void | assembleWithJacobianForStaggeredScheme (double const t, double const dt, Eigen::VectorXd const &local_x, Eigen::VectorXd const &local_xdot, const double dxdot_dx, const double dx_dx, int const process_id, std::vector< double > &local_M_data, std::vector< double > &local_K_data, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data) override |
void | initializeConcrete () override |
void | postTimestepConcrete (Eigen::VectorXd const &, double const, double const) override |
void | computeCrackIntegral (std::size_t mesh_item_id, std::vector< std::reference_wrapper< NumLib::LocalToGlobalIndexMap >> const &dof_tables, GlobalVector const &x, double const t, double &crack_volume, CoupledSolutionsForStaggeredScheme const *const cpl_xs) override |
void | computeEnergy (std::size_t mesh_item_id, std::vector< std::reference_wrapper< NumLib::LocalToGlobalIndexMap >> const &dof_tables, GlobalVector const &x, double const t, double &elastic_energy, double &surface_energy, double &pressure_work, CoupledSolutionsForStaggeredScheme const *const cpl_xs) override |
Eigen::Map< const Eigen::RowVectorXd > | getShapeMatrix (const unsigned integration_point) const override |
Provides the shape matrix at the given integration point. More... | |
Public Member Functions inherited from ProcessLib::LocalAssemblerInterface | |
virtual | ~LocalAssemblerInterface ()=default |
void | setInitialConditions (std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table, GlobalVector const &x, double const t, bool const use_monolithic_scheme, 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 | assembleForStaggeredScheme (double const t, double const dt, Eigen::VectorXd const &local_x, Eigen::VectorXd const &local_xdot, 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_xdot, const double dxdot_dx, const double dx_dx, std::vector< double > &local_M_data, std::vector< double > &local_K_data, 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_dot, 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, double const t, double const dt) |
void | postNonLinearSolver (std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table, GlobalVector const &x, GlobalVector const &xdot, double const t, double const dt, bool const use_monolithic_scheme, int const process_id) |
virtual std::vector< double > | interpolateNodalValuesToIntegrationPoints (std::vector< double > const &) |
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. More... | |
Public Member Functions inherited from NumLib::ExtrapolatableElement | |
virtual | ~ExtrapolatableElement ()=default |
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 | 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 | |
PhaseFieldProcessData< DisplacementDim > & | _process_data |
std::vector< IpData, Eigen::aligned_allocator< IpData > > | _ip_data |
IntegrationMethod | _integration_method |
MeshLib::Element const & | _element |
SecondaryData< typename ShapeMatrices::ShapeType > | _secondary_data |
bool const | _is_axially_symmetric |
Static Private Attributes | |
static constexpr int | displacement_index = 0 |
static constexpr int | displacement_size |
static constexpr int | phasefield_index |
static constexpr int | phasefield_size = ShapeFunction::NPOINTS |
static const int | phase_process_id = 1 |
static const int | mechanics_process_id = 0 |
using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::BMatricesType = BMatrixPolicyType<ShapeFunction, DisplacementDim> |
Definition at line 127 of file PhaseFieldFEM.h.
using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::DeformationVector = typename ShapeMatricesType::template VectorType<displacement_size> |
Definition at line 131 of file PhaseFieldFEM.h.
using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::IpData = IntegrationPointData<BMatricesType, ShapeMatricesType, DisplacementDim> |
Definition at line 140 of file PhaseFieldFEM.h.
using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::NodalForceVectorType = typename BMatricesType::NodalForceVectorType |
Definition at line 129 of file PhaseFieldFEM.h.
using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::NodalMatrixType = typename ShapeMatricesType::NodalMatrixType |
Definition at line 138 of file PhaseFieldFEM.h.
using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::NodalVectorType = typename ShapeMatricesType::NodalVectorType |
Definition at line 139 of file PhaseFieldFEM.h.
using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::PhaseFieldMatrix = typename ShapeMatricesType::template MatrixType<phasefield_size, phasefield_size> |
Definition at line 135 of file PhaseFieldFEM.h.
using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::PhaseFieldVector = typename ShapeMatricesType::template VectorType<phasefield_size> |
Definition at line 133 of file PhaseFieldFEM.h.
using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::ShapeMatrices = typename ShapeMatricesType::ShapeMatrices |
Definition at line 126 of file PhaseFieldFEM.h.
using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::ShapeMatricesType = ShapeMatrixPolicyType<ShapeFunction, DisplacementDim> |
Definition at line 122 of file PhaseFieldFEM.h.
|
delete |
|
delete |
|
inline |
Definition at line 146 of file PhaseFieldFEM.h.
References ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::_element, ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::_integration_method, ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::_ip_data, ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::_process_data, ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::_secondary_data, MeshLib::Element::getID(), NumLib::initShapeMatrices(), MathLib::KelvinVector::kelvin_vector_dimensions(), ProcessLib::HeatTransportBHE::SecondaryData< ShapeMatrixType >::N, OGS_FATAL, MaterialLib::Solids::selectSolidConstitutiveRelation(), and ParameterLib::SpatialPosition::setElementID().
|
inlineoverridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 213 of file PhaseFieldFEM.h.
References OGS_FATAL.
|
private |
Definition at line 48 of file PhaseFieldFEM-impl.h.
References ProcessLib::LinearBMatrix::computeBMatrix(), ParameterLib::SpatialPosition::setElementID(), and ParameterLib::SpatialPosition::setIntegrationPoint().
|
overridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 23 of file PhaseFieldFEM-impl.h.
|
private |
Definition at line 134 of file PhaseFieldFEM-impl.h.
References ProcessLib::PhaseField::AT1, ProcessLib::PhaseField::AT2, ProcessLib::LinearBMatrix::computeBMatrix(), ParameterLib::SpatialPosition::setElementID(), and ParameterLib::SpatialPosition::setIntegrationPoint().
|
overridevirtual |
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 251 of file PhaseFieldFEM-impl.h.
References ProcessLib::CoupledSolutionsForStaggeredScheme::coupled_xs, ProcessLib::getCoupledLocalSolutions(), ParameterLib::SpatialPosition::setElementID(), and ParameterLib::SpatialPosition::setIntegrationPoint().
|
overridevirtual |
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 308 of file PhaseFieldFEM-impl.h.
References ProcessLib::PhaseField::AT1, ProcessLib::PhaseField::AT2, ProcessLib::CoupledSolutionsForStaggeredScheme::coupled_xs, ProcessLib::getCoupledLocalSolutions(), ParameterLib::SpatialPosition::setElementID(), and ParameterLib::SpatialPosition::setIntegrationPoint().
|
inlineoverrideprivatevirtual |
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 293 of file PhaseFieldFEM.h.
References ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::_ip_data, and ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::eps.
|
inlineoverrideprivatevirtual |
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 283 of file PhaseFieldFEM.h.
References ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::_ip_data, and ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatrixType, DisplacementDim >::sigma.
|
inlineoverridevirtual |
Provides the shape matrix at the given integration point.
Implements NumLib::ExtrapolatableElement.
Definition at line 273 of file PhaseFieldFEM.h.
References ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::_secondary_data, and ProcessLib::HeatTransportBHE::SecondaryData< ShapeMatrixType >::N.
|
inlineoverridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 233 of file PhaseFieldFEM.h.
References ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::_integration_method, and ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::_ip_data.
|
inlineoverridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 244 of file PhaseFieldFEM.h.
References ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::_integration_method, and ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::_ip_data.
|
private |
Definition at line 316 of file PhaseFieldFEM.h.
Referenced by ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::PhaseFieldLocalAssembler().
|
private |
Definition at line 315 of file PhaseFieldFEM.h.
Referenced by ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::PhaseFieldLocalAssembler(), ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::initializeConcrete(), and ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::postTimestepConcrete().
|
private |
Definition at line 313 of file PhaseFieldFEM.h.
Referenced by ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::PhaseFieldLocalAssembler(), ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::getIntPtEpsilon(), ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::getIntPtSigma(), ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::initializeConcrete(), and ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::postTimestepConcrete().
|
private |
Definition at line 318 of file PhaseFieldFEM.h.
|
private |
Definition at line 311 of file PhaseFieldFEM.h.
Referenced by ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::PhaseFieldLocalAssembler().
|
private |
Definition at line 317 of file PhaseFieldFEM.h.
Referenced by ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::PhaseFieldLocalAssembler(), and ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, IntegrationMethod, DisplacementDim >::getShapeMatrix().
|
staticconstexprprivate |
Definition at line 114 of file PhaseFieldFEM.h.
|
staticconstexprprivate |
Definition at line 115 of file PhaseFieldFEM.h.
|
staticprivate |
Definition at line 321 of file PhaseFieldFEM.h.
|
staticprivate |
Definition at line 320 of file PhaseFieldFEM.h.
|
staticconstexprprivate |
Definition at line 117 of file PhaseFieldFEM.h.
|
staticconstexprprivate |
Definition at line 119 of file PhaseFieldFEM.h.