![]() |
OGS
|
|
Base class for Jacobian assemblers.
Definition at line 18 of file AbstractJacobianAssembler.h.
#include <AbstractJacobianAssembler.h>
Public Member Functions | |
| AbstractJacobianAssembler (std::vector< double > const &&absolute_epsilons) | |
| AbstractJacobianAssembler () | |
| virtual 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)=0 |
| virtual void | assembleWithJacobianForStaggeredScheme (LocalAssemblerInterface &, double const, double const, Eigen::VectorXd const &, Eigen::VectorXd const &, int const, std::vector< double > &, std::vector< double > &) |
| virtual std::unique_ptr< AbstractJacobianAssembler > | copy () const =0 |
| 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 |
Protected Attributes | |
| std::vector< int > | non_deformation_component_ids_ |
| std::vector< double > const | absolute_epsilons_ |
|
inlineexplicit |
Constructs a new instance for the numerical Jacobian.
| absolute_epsilons | perturbations of the components of the local solution vector used for evaluating the finite differences. |
Definition at line 24 of file AbstractJacobianAssembler.h.
References absolute_epsilons_.
Referenced by ProcessLib::CentralDifferencesJacobianAssembler::CentralDifferencesJacobianAssembler(), and ProcessLib::ForwardDifferencesJacobianAssembler::ForwardDifferencesJacobianAssembler().
|
inlineexplicit |
Definition at line 41 of file AbstractJacobianAssembler.h.
References absolute_epsilons_.
|
virtualdefault |
|
pure virtual |
Assembles the Jacobian, the matrices \(M\) and \(K\), and the vector \(b\).
Implemented in ProcessLib::AnalyticalJacobianAssembler, ProcessLib::CentralDifferencesJacobianAssembler, ProcessLib::CompareJacobiansJacobianAssembler, and ProcessLib::ForwardDifferencesJacobianAssembler.
Referenced by anonymous_namespace{ParallelVectorMatrixAssembler.cpp}::assembleWithJacobianOneElement().
|
inlinevirtual |
Assembles the Jacobian, the matrices \(M\) and \(K\), and the vector \(b\) with coupling.
Reimplemented in ProcessLib::AnalyticalJacobianAssembler.
Definition at line 54 of file AbstractJacobianAssembler.h.
References OGS_FATAL.
Referenced by anonymous_namespace{ParallelVectorMatrixAssembler.cpp}::assembleWithJacobianForStaggeredSchemeOneElement().
|
inline |
Checks that the number of specified perturbations is not smaller than the maximum number of non-deformation degrees of freedom per node.
Definition at line 73 of file AbstractJacobianAssembler.h.
References absolute_epsilons_, and OGS_FATAL.
Referenced by setNonDeformationComponentIDs().
|
pure virtual |
|
inline |
Definition at line 129 of file AbstractJacobianAssembler.h.
References absolute_epsilons_, and non_deformation_component_ids_.
Referenced by ProcessLib::CentralDifferencesJacobianAssembler::assembleWithJacobian(), and ProcessLib::ForwardDifferencesJacobianAssembler::assembleWithJacobian().
|
inline |
|
inline |
Definition at line 101 of file AbstractJacobianAssembler.h.
References absolute_epsilons_, checkPerturbationSize(), and non_deformation_component_ids_.
|
inline |
Definition at line 123 of file AbstractJacobianAssembler.h.
References non_deformation_component_ids_.
|
protected |
Perturbations of the variable components used for evaluating finite differences (excluding deformation).
Definition at line 158 of file AbstractJacobianAssembler.h.
Referenced by AbstractJacobianAssembler(), AbstractJacobianAssembler(), checkPerturbationSize(), getVariableComponentEpsilonsView(), isPerturbationEnabled(), and setNonDeformationComponentIDs().
|
protected |
IDs of the components that are not deformation variables. Used by the numerical Jacobian assembler. It is manipulated by processes that use the numerical Jacobian assembler. Therefore, it is thread-safe.
Definition at line 148 of file AbstractJacobianAssembler.h.
Referenced by ProcessLib::CentralDifferencesJacobianAssembler::assembleWithJacobian(), ProcessLib::ForwardDifferencesJacobianAssembler::assembleWithJacobian(), getVariableComponentEpsilonsView(), setNonDeformationComponentIDs(), and setNonDeformationComponentIDsNoSizeCheck().