OGS
CentralDifferencesJacobianAssembler.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
6#include <memory>
7
9
10namespace BaseLib
11{
12class ConfigTree;
13} // namespace BaseLib
14
15namespace ProcessLib
16{
20{
21public:
35 std::vector<double>&& absolute_epsilons);
36
48 double const t, double const dt,
49 std::vector<double> const& local_x_data,
50 std::vector<double> const& local_x_prev_data,
51 std::vector<double>& local_b_data,
52 std::vector<double>& local_Jac_data) override;
53
54 std::unique_ptr<AbstractJacobianAssembler> copy() const override;
55
56private:
57 // temporary data only stored here in order to avoid frequent memory
58 // reallocations.
59 std::vector<double> _local_M_data;
60 std::vector<double> _local_K_data;
61 std::vector<double> _local_b_data;
62 std::vector<double> _local_x_perturbed_data;
63};
64
65} // namespace ProcessLib
AbstractJacobianAssembler(std::vector< double > const &&absolute_epsilons)
CentralDifferencesJacobianAssembler(std::vector< double > &&absolute_epsilons)
std::unique_ptr< AbstractJacobianAssembler > copy() const override
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_b_data, std::vector< double > &local_Jac_data) override