![]() |
OGS
|
|
Definition at line 100 of file PhaseFieldFEM.h.
#include <PhaseFieldFEM.h>
Public Types | |
| using | ShapeMatricesType |
| using | ShapeMatrices = typename ShapeMatricesType::ShapeMatrices |
| using | BMatricesType = BMatrixPolicyType<ShapeFunction, DisplacementDim> |
| using | NodalForceVectorType = typename BMatricesType::NodalForceVectorType |
| using | DeformationVector |
| using | PhaseFieldVector |
| using | PhaseFieldMatrix |
| using | NodalMatrixType = typename ShapeMatricesType::NodalMatrixType |
| using | NodalVectorType = typename ShapeMatricesType::NodalVectorType |
| using | IpData |
Public Member Functions | |
| PhaseFieldLocalAssembler (PhaseFieldLocalAssembler const &)=delete | |
| PhaseFieldLocalAssembler (PhaseFieldLocalAssembler &&)=delete | |
| PhaseFieldLocalAssembler (MeshLib::Element const &e, std::size_t const, NumLib::GenericIntegrationMethod const &integration_method, bool const is_axially_symmetric, PhaseFieldProcessData< DisplacementDim > &process_data) | |
| std::size_t | setIPDataInitialConditions (std::string_view const name, double const *values, int const integration_order) override |
| Returns number of read integration points. | |
| 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_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 | computeCrackIntegral (std::size_t mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, double const t, double &crack_volume) 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 |
| Eigen::Map< const Eigen::RowVectorXd > | getShapeMatrix (const unsigned integration_point) const override |
| Provides the shape matrix at the given integration point. | |
| std::vector< double > | getSigma () const override |
| std::vector< double > | getEpsilon () const override |
| Public Member Functions inherited from ProcessLib::LocalAssemblerInterface | |
| 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 | 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 int | getNumberOfVectorElementsForDeformation () const |
| 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 & | getIntPtSigmaTensile (const double, std::vector< GlobalVector * > const &, std::vector< NumLib::LocalToGlobalIndexMap const * > const &, std::vector< double > &cache) const override |
| std::vector< double > const & | getIntPtSigmaCompressive (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 |
| std::vector< double > const & | getIntPtEpsilonTensile (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 |
| 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 | 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, DisplacementDim >::BMatricesType = BMatrixPolicyType<ShapeFunction, DisplacementDim> |
Definition at line 116 of file PhaseFieldFEM.h.
| using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::DeformationVector |
Definition at line 120 of file PhaseFieldFEM.h.
| using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::IpData |
Definition at line 129 of file PhaseFieldFEM.h.
| using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::NodalForceVectorType = typename BMatricesType::NodalForceVectorType |
Definition at line 118 of file PhaseFieldFEM.h.
| using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::NodalMatrixType = typename ShapeMatricesType::NodalMatrixType |
Definition at line 127 of file PhaseFieldFEM.h.
| using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::NodalVectorType = typename ShapeMatricesType::NodalVectorType |
Definition at line 128 of file PhaseFieldFEM.h.
| using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::PhaseFieldMatrix |
Definition at line 124 of file PhaseFieldFEM.h.
| using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::PhaseFieldVector |
Definition at line 122 of file PhaseFieldFEM.h.
| using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::ShapeMatrices = typename ShapeMatricesType::ShapeMatrices |
Definition at line 115 of file PhaseFieldFEM.h.
| using ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::ShapeMatricesType |
Definition at line 111 of file PhaseFieldFEM.h.
|
delete |
References PhaseFieldLocalAssembler().
Referenced by PhaseFieldLocalAssembler(), and PhaseFieldLocalAssembler().
|
delete |
References PhaseFieldLocalAssembler().
|
inline |
Definition at line 135 of file PhaseFieldFEM.h.
References _element, _integration_method, _ip_data, _is_axially_symmetric, _process_data, _secondary_data, MeshLib::Element::getID(), NumLib::initShapeMatrices(), MathLib::KelvinVector::kelvin_vector_dimensions(), MaterialLib::Solids::selectSolidConstitutiveRelation(), and ParameterLib::SpatialPosition::setElementID().
|
inlineoverridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 201 of file PhaseFieldFEM.h.
References OGS_FATAL.
|
private |
Definition at line 36 of file PhaseFieldFEM-impl.h.
References _element, _integration_method, _ip_data, _is_axially_symmetric, _process_data, ProcessLib::LinearBMatrix::computeBMatrix(), MathLib::createZeroedMatrix(), MathLib::createZeroedVector(), displacement_index, displacement_size, ParameterLib::SpatialPosition::getCoordinates(), NumLib::interpolateCoordinates(), and phasefield_index.
Referenced by assembleWithJacobianForStaggeredScheme().
|
overridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 16 of file PhaseFieldFEM-impl.h.
References assembleWithJacobianForDeformationEquations(), assembleWithJacobianPhaseFieldEquations(), and phase_process_id.
|
private |
Definition at line 121 of file PhaseFieldFEM-impl.h.
References _element, _integration_method, _ip_data, _is_axially_symmetric, _process_data, ProcessLib::LinearBMatrix::computeBMatrix(), MathLib::createZeroedMatrix(), MathLib::createZeroedVector(), displacement_index, displacement_size, ParameterLib::SpatialPosition::getCoordinates(), NumLib::interpolateCoordinates(), phasefield_index, and phasefield_size.
Referenced by assembleWithJacobianForStaggeredScheme().
|
overridevirtual |
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 220 of file PhaseFieldFEM-impl.h.
References _integration_method, _ip_data, displacement_index, displacement_size, ProcessLib::getCoupledLocalSolutions(), phasefield_index, and phasefield_size.
|
overridevirtual |
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 267 of file PhaseFieldFEM-impl.h.
References _element, _integration_method, _ip_data, _process_data, MaterialLib::Solids::Phasefield::AT1, MaterialLib::Solids::Phasefield::AT2, MaterialLib::Solids::Phasefield::COHESIVE, displacement_index, displacement_size, ProcessLib::getCoupledLocalSolutions(), NumLib::interpolateCoordinates(), phasefield_index, and phasefield_size.
|
overridevirtual |
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 424 of file PhaseFieldFEM-impl.h.
References _integration_method, _ip_data, MathLib::createZeroedMatrix(), getEpsilon(), MathLib::KelvinVector::kelvin_vector_dimensions(), and MathLib::KelvinVector::kelvinVectorToSymmetricTensor().
Referenced by getEpsilon().
|
inlineoverrideprivatevirtual |
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 324 of file PhaseFieldFEM.h.
References _ip_data, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatricesType, DisplacementDim >::eps, and ProcessLib::getIntegrationPointKelvinVectorData().
|
inlineoverrideprivatevirtual |
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 334 of file PhaseFieldFEM.h.
References _ip_data, ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatricesType, DisplacementDim >::eps_tensile, and ProcessLib::getIntegrationPointKelvinVectorData().
|
inlineoverrideprivatevirtual |
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 294 of file PhaseFieldFEM.h.
References _ip_data, ProcessLib::getIntegrationPointKelvinVectorData(), and ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatricesType, DisplacementDim >::sigma.
|
inlineoverrideprivatevirtual |
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 314 of file PhaseFieldFEM.h.
References _ip_data, ProcessLib::getIntegrationPointKelvinVectorData(), and ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatricesType, DisplacementDim >::sigma_compressive.
|
inlineoverrideprivatevirtual |
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 304 of file PhaseFieldFEM.h.
References _ip_data, ProcessLib::getIntegrationPointKelvinVectorData(), and ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatricesType, DisplacementDim >::sigma_tensile.
|
inlineoverridevirtual |
Provides the shape matrix at the given integration point.
Implements NumLib::ExtrapolatableElement.
Definition at line 277 of file PhaseFieldFEM.h.
References _secondary_data.
|
overridevirtual |
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 416 of file PhaseFieldFEM-impl.h.
References _ip_data, ProcessLib::getIntegrationPointKelvinVectorData(), getSigma(), and ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatricesType, DisplacementDim >::sigma.
Referenced by getSigma().
|
inlineoverridevirtual |
Set initial stress from parameter.
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 219 of file PhaseFieldFEM.h.
References _element, _integration_method, _ip_data, _process_data, NumLib::interpolateCoordinates(), and MathLib::KelvinVector::symmetricTensorToKelvinVector().
|
inlineoverridevirtual |
Reimplemented from ProcessLib::LocalAssemblerInterface.
Definition at line 250 of file PhaseFieldFEM.h.
References _integration_method, and _ip_data.
|
overridevirtual |
Returns number of read integration points.
Implements ProcessLib::PhaseField::PhaseFieldLocalAssemblerInterface.
Definition at line 382 of file PhaseFieldFEM-impl.h.
References _element, _integration_method, _ip_data, _process_data, OGS_FATAL, ProcessLib::setIntegrationPointKelvinVectorData(), and ProcessLib::PhaseField::IntegrationPointData< BMatricesType, ShapeMatricesType, DisplacementDim >::sigma.
|
private |
Definition at line 357 of file PhaseFieldFEM.h.
Referenced by PhaseFieldLocalAssembler(), assembleWithJacobianForDeformationEquations(), assembleWithJacobianPhaseFieldEquations(), computeEnergy(), initializeConcrete(), and setIPDataInitialConditions().
|
private |
Definition at line 356 of file PhaseFieldFEM.h.
Referenced by PhaseFieldLocalAssembler(), assembleWithJacobianForDeformationEquations(), assembleWithJacobianPhaseFieldEquations(), computeCrackIntegral(), computeEnergy(), getEpsilon(), initializeConcrete(), postTimestepConcrete(), and setIPDataInitialConditions().
|
private |
Definition at line 354 of file PhaseFieldFEM.h.
Referenced by PhaseFieldLocalAssembler(), assembleWithJacobianForDeformationEquations(), assembleWithJacobianPhaseFieldEquations(), computeCrackIntegral(), computeEnergy(), getEpsilon(), getIntPtEpsilon(), getIntPtEpsilonTensile(), getIntPtSigma(), getIntPtSigmaCompressive(), getIntPtSigmaTensile(), getSigma(), initializeConcrete(), postTimestepConcrete(), and setIPDataInitialConditions().
|
private |
Definition at line 359 of file PhaseFieldFEM.h.
Referenced by PhaseFieldLocalAssembler(), assembleWithJacobianForDeformationEquations(), and assembleWithJacobianPhaseFieldEquations().
|
private |
Definition at line 352 of file PhaseFieldFEM.h.
Referenced by PhaseFieldLocalAssembler(), assembleWithJacobianForDeformationEquations(), assembleWithJacobianPhaseFieldEquations(), computeEnergy(), initializeConcrete(), and setIPDataInitialConditions().
|
private |
Definition at line 358 of file PhaseFieldFEM.h.
Referenced by PhaseFieldLocalAssembler(), and getShapeMatrix().
|
staticconstexprprivate |
Definition at line 103 of file PhaseFieldFEM.h.
Referenced by assembleWithJacobianForDeformationEquations(), assembleWithJacobianPhaseFieldEquations(), computeCrackIntegral(), and computeEnergy().
|
staticconstexprprivate |
Definition at line 104 of file PhaseFieldFEM.h.
Referenced by assembleWithJacobianForDeformationEquations(), assembleWithJacobianPhaseFieldEquations(), computeCrackIntegral(), and computeEnergy().
|
staticprivate |
Definition at line 362 of file PhaseFieldFEM.h.
|
staticprivate |
Definition at line 361 of file PhaseFieldFEM.h.
Referenced by assembleWithJacobianForStaggeredScheme().
|
staticconstexprprivate |
Definition at line 106 of file PhaseFieldFEM.h.
Referenced by assembleWithJacobianForDeformationEquations(), assembleWithJacobianPhaseFieldEquations(), computeCrackIntegral(), and computeEnergy().
|
staticconstexprprivate |
Definition at line 108 of file PhaseFieldFEM.h.
Referenced by assembleWithJacobianPhaseFieldEquations(), computeCrackIntegral(), and computeEnergy().