OGS
AbstractJacobianAssembler.h
Go to the documentation of this file.
1 
11 #pragma once
12 
13 #include <Eigen/Dense>
14 #include <vector>
15 
16 #include "BaseLib/Error.h"
17 
18 namespace ProcessLib
19 {
20 class LocalAssemblerInterface;
21 struct LocalCoupledSolutions;
22 
25 {
26 public:
29  virtual void assembleWithJacobian(LocalAssemblerInterface& local_assembler,
30  double const t, double const dt,
31  std::vector<double> const& local_x,
32  std::vector<double> const& local_xdot,
33  const double dxdot_dx, const double dx_dx,
34  std::vector<double>& local_M_data,
35  std::vector<double>& local_K_data,
36  std::vector<double>& local_b_data,
37  std::vector<double>& local_Jac_data) = 0;
38 
42  LocalAssemblerInterface& /*local_assembler*/, double const /*t*/,
43  double const /*dt*/, Eigen::VectorXd const& /*local_x*/,
44  Eigen::VectorXd const& /*local_xdot*/, const double /*dxdot_dx*/,
45  const double /*dx_dx*/, int const /*process_id*/,
46  std::vector<double>& /*local_M_data*/,
47  std::vector<double>& /*local_K_data*/,
48  std::vector<double>& /*local_b_data*/,
49  std::vector<double>& /*local_Jac_data*/)
50  {
51  // TODO make pure virtual.
52  OGS_FATAL("not implemented.");
53  }
54 
55  virtual ~AbstractJacobianAssembler() = default;
56 };
57 
58 } // namespace ProcessLib
#define OGS_FATAL(...)
Definition: Error.h:26
Base class for Jacobian assemblers.
virtual void assembleWithJacobian(LocalAssemblerInterface &local_assembler, double const t, double const dt, 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, double const, Eigen::VectorXd const &, Eigen::VectorXd const &, const double, const double, int const, std::vector< double > &, std::vector< double > &, std::vector< double > &, std::vector< double > &)
virtual ~AbstractJacobianAssembler()=default