OGS 6.2.1-97-g73d1aeda3
AbstractJacobianAssembler.h
Go to the documentation of this file.
1 
10 #pragma once
11 
12 #include <vector>
13 #include "BaseLib/Error.h"
14 
15 namespace ProcessLib
16 {
17 class LocalAssemblerInterface;
18 struct LocalCoupledSolutions;
19 
22 {
23 public:
26  virtual void assembleWithJacobian(
27  LocalAssemblerInterface& local_assembler, double const t,
28  std::vector<double> const& local_x,
29  std::vector<double> const& local_xdot, const double dxdot_dx,
30  const double dx_dx, std::vector<double>& local_M_data,
31  std::vector<double>& local_K_data, std::vector<double>& local_b_data,
32  std::vector<double>& local_Jac_data) = 0;
33 
37  LocalAssemblerInterface& /*local_assembler*/, double const /*t*/,
38  std::vector<double> const& /*local_xdot*/, const double /*dxdot_dx*/,
39  const double /*dx_dx*/, std::vector<double>& /*local_M_data*/,
40  std::vector<double>& /*local_K_data*/,
41  std::vector<double>& /*local_b_data*/,
42  std::vector<double>& /*local_Jac_data*/,
43  LocalCoupledSolutions const& /*coupled_solutions*/)
44  {
45  // TODO make pure virtual.
46  OGS_FATAL("not implemented.");
47  }
48 
49  virtual ~AbstractJacobianAssembler() = default;
50 };
51 
52 } // namespace ProcessLib
virtual void assembleWithJacobian(LocalAssemblerInterface &local_assembler, double const t, std::vector< double > const &local_x, std::vector< double > const &local_xdot, const double dxdot_dx, const double dx_dx, std::vector< double > &local_M_data, std::vector< double > &local_K_data, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data)=0
virtual void assembleWithJacobianForStaggeredScheme(LocalAssemblerInterface &, double const, std::vector< double > const &, const double, const double, std::vector< double > &, std::vector< double > &, std::vector< double > &, std::vector< double > &, LocalCoupledSolutions const &)
virtual ~AbstractJacobianAssembler()=default
Base class for Jacobian assemblers.
#define OGS_FATAL(fmt,...)
Definition: Error.h:63