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  std::vector<double>& local_M_data,
34  std::vector<double>& local_K_data,
35  std::vector<double>& local_b_data,
36  std::vector<double>& local_Jac_data) = 0;
37 
41  LocalAssemblerInterface& /*local_assembler*/, double const /*t*/,
42  double const /*dt*/, Eigen::VectorXd const& /*local_x*/,
43  Eigen::VectorXd const& /*local_xdot*/, int const /*process_id*/,
44  std::vector<double>& /*local_M_data*/,
45  std::vector<double>& /*local_K_data*/,
46  std::vector<double>& /*local_b_data*/,
47  std::vector<double>& /*local_Jac_data*/)
48  {
49  // TODO make pure virtual.
50  OGS_FATAL("not implemented.");
51  }
52 
53  virtual ~AbstractJacobianAssembler() = default;
54 };
55 
56 } // namespace ProcessLib
#define OGS_FATAL(...)
Definition: Error.h:26
Base class for Jacobian assemblers.
virtual void assembleWithJacobianForStaggeredScheme(LocalAssemblerInterface &, double const, double const, Eigen::VectorXd const &, Eigen::VectorXd const &, int const, std::vector< double > &, std::vector< double > &, std::vector< double > &, std::vector< double > &)
virtual void assembleWithJacobian(LocalAssemblerInterface &local_assembler, double const t, double const dt, std::vector< double > const &local_x, std::vector< double > const &local_xdot, 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 ~AbstractJacobianAssembler()=default
static const double t