OGS
ProcessLib::AnalyticalJacobianAssembler Class Referencefinal

Detailed Description

Assembles the Jacobian matrix using a provided "analytical" method from the local assembler.

Definition at line 18 of file AnalyticalJacobianAssembler.h.

#include <AnalyticalJacobianAssembler.h>

Inheritance diagram for ProcessLib::AnalyticalJacobianAssembler:
[legend]
Collaboration diagram for ProcessLib::AnalyticalJacobianAssembler:
[legend]

Public Member Functions

void assembleWithJacobian (LocalAssemblerInterface &local_assembler, 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) override
void assembleWithJacobianForStaggeredScheme (LocalAssemblerInterface &local_assembler, 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
std::unique_ptr< AbstractJacobianAssemblercopy () const override
Public Member Functions inherited from ProcessLib::AbstractJacobianAssembler
 AbstractJacobianAssembler (std::vector< double > const &&absolute_epsilons)
 AbstractJacobianAssembler ()
virtual ~AbstractJacobianAssembler ()=default
void checkPerturbationSize (int const max_non_deformation_dofs_per_node) const
void setNonDeformationComponentIDs (std::vector< int > const &non_deformation_component_ids)
void setNonDeformationComponentIDsNoSizeCheck (std::vector< int > const &non_deformation_component_ids)
auto getVariableComponentEpsilonsView () const
auto isPerturbationEnabled () const

Additional Inherited Members

Protected Attributes inherited from ProcessLib::AbstractJacobianAssembler
std::vector< int > non_deformation_component_ids_
std::vector< double > const absolute_epsilons_

Member Function Documentation

◆ assembleWithJacobian()

void ProcessLib::AnalyticalJacobianAssembler::assembleWithJacobian ( LocalAssemblerInterface & local_assembler,
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 )
overridevirtual

Assembles the Jacobian, the matrices \(M\) and \(K\), and the vector \(b\). In this implementation the call is only forwarded to the respective method of the given local_assembler.

Implements ProcessLib::AbstractJacobianAssembler.

Definition at line 10 of file AnalyticalJacobianAssembler.cpp.

14{
15 local_assembler.assembleWithJacobian(t, dt, local_x, local_x_prev,
16 local_b_data, local_Jac_data);
17}

References ProcessLib::LocalAssemblerInterface::assembleWithJacobian().

◆ assembleWithJacobianForStaggeredScheme()

void ProcessLib::AnalyticalJacobianAssembler::assembleWithJacobianForStaggeredScheme ( LocalAssemblerInterface & ,
double const ,
double const ,
Eigen::VectorXd const & ,
Eigen::VectorXd const & ,
int const ,
std::vector< double > & ,
std::vector< double > &  )
overridevirtual

Assembles the Jacobian, the matrices \(M\) and \(K\), and the vector \(b\) with coupling.

Reimplemented from ProcessLib::AbstractJacobianAssembler.

Definition at line 19 of file AnalyticalJacobianAssembler.cpp.

24{
25 local_assembler.assembleWithJacobianForStaggeredScheme(
26 t, dt, local_x, local_x_prev, process_id, local_b_data, local_Jac_data);
27}

References ProcessLib::LocalAssemblerInterface::assembleWithJacobianForStaggeredScheme().

◆ copy()

std::unique_ptr< AbstractJacobianAssembler > ProcessLib::AnalyticalJacobianAssembler::copy ( ) const
overridevirtual

Implements ProcessLib::AbstractJacobianAssembler.

Definition at line 29 of file AnalyticalJacobianAssembler.cpp.

31{
32 return std::make_unique<AnalyticalJacobianAssembler>(*this);
33}

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