![]() |
OGS
|
|
Base class for numerical Jacobian assemblers.
Definition at line 11 of file NumericalJacobianAssembler.h.
#include <NumericalJacobianAssembler.h>
Public Member Functions | |
| NumericalJacobianAssembler (std::vector< double > &&absolute_epsilons) | |
| bool | needsPicardAssembly () const override |
| void | checkPerturbationSize (int const max_non_deformation_dofs_per_node) const override |
| void | setNonDeformationComponentIDs (std::vector< int > const &non_deformation_component_ids) override |
| void | setNonDeformationComponentIDsNoSizeCheck (std::vector< int > const &non_deformation_component_ids) override |
| Public Member Functions inherited from ProcessLib::AbstractJacobianAssembler | |
| virtual void | assembleWithJacobian (std::size_t const mesh_item_id, 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 |
| virtual void | preIteration (const unsigned) |
Protected Member Functions | |
| auto | getVariableComponentEpsilonsView () const |
Protected Attributes | |
| std::vector< double > const | absolute_epsilons_ |
| std::vector< int > | non_deformation_component_ids_ |
|
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 17 of file NumericalJacobianAssembler.h.
References absolute_epsilons_.
Referenced by ProcessLib::CentralDifferencesJacobianAssembler::CentralDifferencesJacobianAssembler(), and ProcessLib::ForwardDifferencesJacobianAssembler::ForwardDifferencesJacobianAssembler().
|
inlineoverridevirtual |
Checks that the number of specified perturbations is not smaller than the maximum number of non-deformation degrees of freedom per node.
Implements ProcessLib::AbstractJacobianAssembler.
Definition at line 35 of file NumericalJacobianAssembler.h.
References absolute_epsilons_, and OGS_FATAL.
Referenced by setNonDeformationComponentIDs().
|
inlineprotected |
Definition at line 76 of file NumericalJacobianAssembler.h.
References absolute_epsilons_, and non_deformation_component_ids_.
Referenced by ProcessLib::CentralDifferencesJacobianAssembler::assembleWithJacobian(), and ProcessLib::ForwardDifferencesJacobianAssembler::assembleWithJacobian().
|
inlineoverridevirtual |
Implements ProcessLib::AbstractJacobianAssembler.
Definition at line 33 of file NumericalJacobianAssembler.h.
|
inlineoverridevirtual |
Implements ProcessLib::AbstractJacobianAssembler.
Definition at line 56 of file NumericalJacobianAssembler.h.
References checkPerturbationSize(), and non_deformation_component_ids_.
|
inlineoverridevirtual |
Implements ProcessLib::AbstractJacobianAssembler.
Definition at line 69 of file NumericalJacobianAssembler.h.
References non_deformation_component_ids_.
|
protected |
Perturbations of the variable components used for evaluating finite differences (excluding deformation).
Definition at line 97 of file NumericalJacobianAssembler.h.
Referenced by NumericalJacobianAssembler(), checkPerturbationSize(), and getVariableComponentEpsilonsView().
|
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 102 of file NumericalJacobianAssembler.h.
Referenced by ProcessLib::CentralDifferencesJacobianAssembler::assembleWithJacobian(), ProcessLib::ForwardDifferencesJacobianAssembler::assembleWithJacobian(), getVariableComponentEpsilonsView(), setNonDeformationComponentIDs(), and setNonDeformationComponentIDsNoSizeCheck().