OGS
ForwardDifferencesJacobianAssembler.h
Go to the documentation of this file.
1
10#pragma once
11
13
14namespace ProcessLib
15{
19{
20public:
34 std::vector<double>&& absolute_epsilons);
35
47 double const t, double const dt,
48 std::vector<double> const& local_x_data,
49 std::vector<double> const& local_x_prev_data,
50 std::vector<double>& local_M_data,
51 std::vector<double>& local_K_data,
52 std::vector<double>& local_b_data,
53 std::vector<double>& local_Jac_data) override;
54
55 std::unique_ptr<AbstractJacobianAssembler> copy() const override;
56
57private:
58 std::vector<double> const _absolute_epsilons;
59
60 // temporary data only stored here in order to avoid frequent memory
61 // reallocations.
62 std::vector<double> _local_M_data;
63 std::vector<double> _local_K_data;
64 std::vector<double> _local_b_data;
65 std::vector<double> _local_x_perturbed_data;
66};
67
68} // namespace ProcessLib
Base class for Jacobian assemblers.
Assembles the Jacobian matrix using forward differences.
ForwardDifferencesJacobianAssembler(std::vector< double > &&absolute_epsilons)
void assembleWithJacobian(LocalAssemblerInterface &local_assembler, double const t, double const dt, std::vector< double > const &local_x_data, std::vector< double > const &local_x_prev_data, std::vector< double > &local_M_data, std::vector< double > &local_K_data, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data) override
std::unique_ptr< AbstractJacobianAssembler > copy() const override