OGS
ForwardDifferencesJacobianAssembler.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
7
8namespace ProcessLib
9{
13{
14public:
28 std::vector<double>&& absolute_epsilons);
29
40 void assembleWithJacobian(std::size_t const mesh_item_id,
41 LocalAssemblerInterface& local_assembler,
42 double const t, double const dt,
43 std::vector<double> const& local_x_data,
44 std::vector<double> const& local_x_prev_data,
45 std::vector<double>& local_b_data,
46 std::vector<double>& local_Jac_data) override;
47
48 std::unique_ptr<AbstractJacobianAssembler> copy() const override;
49
50private:
51 // temporary data only stored here in order to avoid frequent memory
52 // reallocations.
53 std::vector<double> _local_M_data;
54 std::vector<double> _local_K_data;
55 std::vector<double> _local_b_data;
56 std::vector<double> _local_x_perturbed_data;
57};
58
59} // namespace ProcessLib
ForwardDifferencesJacobianAssembler(std::vector< double > &&absolute_epsilons)
void assembleWithJacobian(std::size_t const mesh_item_id, 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_b_data, std::vector< double > &local_Jac_data) override
std::unique_ptr< AbstractJacobianAssembler > copy() const override
NumericalJacobianAssembler(std::vector< double > &&absolute_epsilons)