OGS
ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim > Struct Template Referenceabstract

Detailed Description

template<int DisplacementDim>
struct ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >

Definition at line 29 of file LocalAssemblerInterface.h.

#include <LocalAssemblerInterface.h>

Inheritance diagram for ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >:
[legend]
Collaboration diagram for ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >:
[legend]

Public Member Functions

 LocalAssemblerInterface (MeshLib::Element const &e, NumLib::GenericIntegrationMethod const &integration_method, bool const is_axially_symmetric, TH2MProcessData< DisplacementDim > &process_data)
 
virtual std::size_t setIPDataInitialConditions (std::string_view name, double const *values, int const integration_order)=0
 
virtual std::vector< double > const & getIntPtDarcyVelocityGas (const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
 
virtual std::vector< double > const & getIntPtDarcyVelocityLiquid (const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
 
virtual std::vector< double > const & getIntPtDiffusionVelocityVapourGas (const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
 
virtual std::vector< double > const & getIntPtDiffusionVelocityGasGas (const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
 
virtual std::vector< double > const & getIntPtDiffusionVelocitySoluteLiquid (const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
 
virtual std::vector< double > const & getIntPtDiffusionVelocityLiquidLiquid (const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
 
virtual std::vector< double > const & getIntPtEnthalpySolid (const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
 
unsigned getNumberOfIntegrationPoints () const
 
int getMaterialID () const
 
std::vector< double > getMaterialStateVariableInternalState (std::function< std::span< double >(typename ConstitutiveRelations::SolidConstitutiveRelation< DisplacementDim >::MaterialStateVariables &)> const &get_values_span, int const &n_components) const
 
ConstitutiveRelations::SolidConstitutiveRelation< DisplacementDim >::MaterialStateVariables const & getMaterialStateVariablesAt (unsigned integration_point) const
 
- 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 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_M_data, std::vector< double > &local_K_data, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data)
 
virtual 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_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_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.
 
- Public Member Functions inherited from NumLib::ExtrapolatableElement
virtual Eigen::Map< const Eigen::RowVectorXd > getShapeMatrix (const unsigned integration_point) const =0
 Provides the shape matrix at the given integration point.
 
virtual ~ExtrapolatableElement ()=default
 

Static Public Member Functions

static auto getReflectionDataForOutput ()
 

Public Attributes

TH2MProcessData< DisplacementDim > & process_data_
 
std::vector< typename ConstitutiveRelations::StatefulData< DisplacementDim > > current_states_
 
std::vector< typename ConstitutiveRelations::StatefulDataPrev< DisplacementDim > > prev_states_
 
std::vector< ConstitutiveRelations::MaterialStateData< DisplacementDim > > material_states_
 
std::vector< ConstitutiveRelations::OutputData< DisplacementDim > > output_data_
 
NumLib::GenericIntegrationMethod const & integration_method_
 
MeshLib::Element const & element_
 
bool const is_axially_symmetric_
 
ConstitutiveRelations::SolidConstitutiveRelation< DisplacementDim > const & solid_material_
 

Constructor & Destructor Documentation

◆ LocalAssemblerInterface()

template<int DisplacementDim>
ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::LocalAssemblerInterface ( MeshLib::Element const & e,
NumLib::GenericIntegrationMethod const & integration_method,
bool const is_axially_symmetric,
TH2MProcessData< DisplacementDim > & process_data )
inline

Definition at line 32 of file LocalAssemblerInterface.h.

37 : process_data_(process_data),
38 integration_method_(integration_method),
39 element_(e),
40 is_axially_symmetric_(is_axially_symmetric),
42 process_data_.solid_materials, process_data_.material_ids,
43 element_.getID()))
44 {
45 unsigned const n_integration_points =
47
48 current_states_.resize(n_integration_points);
49 prev_states_.resize(n_integration_points);
50 output_data_.resize(n_integration_points);
51
52 material_states_.reserve(n_integration_points);
53 for (unsigned ip = 0; ip < n_integration_points; ++ip)
54 {
55 material_states_.emplace_back(
56 solid_material_.createMaterialStateVariables());
57
58 // Set initial stress field to zero. Might be overwritten by
59 // integration point data or initial stress.
60 current_states_[ip].eff_stress_data.sigma =
61 ConstitutiveRelations::KelvinVector<DisplacementDim>::Zero();
62 }
63 }
std::size_t getID() const
Returns the ID of the element.
Definition Element.h:89
auto & selectSolidConstitutiveRelation(SolidMaterialsMap const &constitutive_relations, MeshLib::PropertyVector< int > const *const material_ids, std::size_t const element_id)
NumLib::GenericIntegrationMethod const & integration_method_
TH2MProcessData< DisplacementDim > & process_data_
ConstitutiveRelations::SolidConstitutiveRelation< DisplacementDim > const & solid_material_
std::vector< typename ConstitutiveRelations::StatefulData< DisplacementDim > > current_states_
std::vector< typename ConstitutiveRelations::StatefulDataPrev< DisplacementDim > > prev_states_
std::vector< ConstitutiveRelations::OutputData< DisplacementDim > > output_data_
std::vector< ConstitutiveRelations::MaterialStateData< DisplacementDim > > material_states_

References ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::current_states_, NumLib::GenericIntegrationMethod::getNumberOfPoints(), ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::integration_method_, ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::material_states_, ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::output_data_, ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::prev_states_, and ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::solid_material_.

Member Function Documentation

◆ getIntPtDarcyVelocityGas()

template<int DisplacementDim>
virtual std::vector< double > const & ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::getIntPtDarcyVelocityGas ( const double t,
std::vector< GlobalVector * > const & x,
std::vector< NumLib::LocalToGlobalIndexMap const * > const & dof_table,
std::vector< double > & cache ) const
pure virtual

◆ getIntPtDarcyVelocityLiquid()

template<int DisplacementDim>
virtual std::vector< double > const & ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::getIntPtDarcyVelocityLiquid ( const double t,
std::vector< GlobalVector * > const & x,
std::vector< NumLib::LocalToGlobalIndexMap const * > const & dof_table,
std::vector< double > & cache ) const
pure virtual

◆ getIntPtDiffusionVelocityGasGas()

template<int DisplacementDim>
virtual std::vector< double > const & ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::getIntPtDiffusionVelocityGasGas ( const double t,
std::vector< GlobalVector * > const & x,
std::vector< NumLib::LocalToGlobalIndexMap const * > const & dof_table,
std::vector< double > & cache ) const
pure virtual

◆ getIntPtDiffusionVelocityLiquidLiquid()

template<int DisplacementDim>
virtual std::vector< double > const & ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::getIntPtDiffusionVelocityLiquidLiquid ( const double t,
std::vector< GlobalVector * > const & x,
std::vector< NumLib::LocalToGlobalIndexMap const * > const & dof_table,
std::vector< double > & cache ) const
pure virtual

◆ getIntPtDiffusionVelocitySoluteLiquid()

template<int DisplacementDim>
virtual std::vector< double > const & ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::getIntPtDiffusionVelocitySoluteLiquid ( const double t,
std::vector< GlobalVector * > const & x,
std::vector< NumLib::LocalToGlobalIndexMap const * > const & dof_table,
std::vector< double > & cache ) const
pure virtual

◆ getIntPtDiffusionVelocityVapourGas()

template<int DisplacementDim>
virtual std::vector< double > const & ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::getIntPtDiffusionVelocityVapourGas ( const double t,
std::vector< GlobalVector * > const & x,
std::vector< NumLib::LocalToGlobalIndexMap const * > const & dof_table,
std::vector< double > & cache ) const
pure virtual

◆ getIntPtEnthalpySolid()

template<int DisplacementDim>
virtual std::vector< double > const & ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::getIntPtEnthalpySolid ( const double t,
std::vector< GlobalVector * > const & x,
std::vector< NumLib::LocalToGlobalIndexMap const * > const & dof_table,
std::vector< double > & cache ) const
pure virtual

◆ getMaterialID()

template<int DisplacementDim>
int ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::getMaterialID ( ) const
inline

◆ getMaterialStateVariableInternalState()

template<int DisplacementDim>
std::vector< double > ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::getMaterialStateVariableInternalState ( std::function< std::span< double >(typename ConstitutiveRelations::SolidConstitutiveRelation< DisplacementDim >::MaterialStateVariables &)> const & get_values_span,
int const & n_components ) const
inline

Definition at line 124 of file LocalAssemblerInterface.h.

130 {
133 &ConstitutiveRelations::MaterialStateData<
134 DisplacementDim>::material_state_variables,
135 get_values_span, n_components);
136 }
std::vector< double > getIntegrationPointDataMaterialStateVariables(IntegrationPointDataVector const &ip_data_vector, MemberType member, std::function< std::span< double >(MaterialStateVariables &)> get_values_span, int const n_components)

References ProcessLib::getIntegrationPointDataMaterialStateVariables(), and ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::material_states_.

◆ getMaterialStateVariablesAt()

template<int DisplacementDim>
ConstitutiveRelations::SolidConstitutiveRelation< DisplacementDim >::MaterialStateVariables const & ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::getMaterialStateVariablesAt ( unsigned integration_point) const
inline

Definition at line 140 of file LocalAssemblerInterface.h.

141 {
142 return *material_states_[integration_point].material_state_variables;
143 }

References ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::material_states_.

◆ getNumberOfIntegrationPoints()

template<int DisplacementDim>
unsigned ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::getNumberOfIntegrationPoints ( ) const
inline

◆ getReflectionDataForOutput()

template<int DisplacementDim>
static auto ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::getReflectionDataForOutput ( )
inlinestatic

Definition at line 145 of file LocalAssemblerInterface.h.

146 {
147 using Self = LocalAssemblerInterface<DisplacementDim>;
148
150 &Self::current_states_, &Self::output_data_);
151 }
auto reflectWithoutName(Accessors &&... accessors)

References ProcessLib::Reflection::reflectWithoutName().

◆ setIPDataInitialConditions()

template<int DisplacementDim>
virtual std::size_t ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::setIPDataInitialConditions ( std::string_view name,
double const * values,
int const integration_order )
pure virtual

Member Data Documentation

◆ current_states_

◆ element_

◆ integration_method_

◆ is_axially_symmetric_

template<int DisplacementDim>
bool const ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::is_axially_symmetric_

Definition at line 171 of file LocalAssemblerInterface.h.

◆ material_states_

◆ output_data_

template<int DisplacementDim>
std::vector<ConstitutiveRelations::OutputData<DisplacementDim> > ProcessLib::TH2M::LocalAssemblerInterface< DisplacementDim >::output_data_

◆ prev_states_

◆ process_data_

◆ solid_material_


The documentation for this struct was generated from the following files: