7#include <range/v3/view.hpp>
8#include <range/v3/view/transform.hpp>
25 double const t,
double const dt,
26 std::vector<double>
const& local_x,
27 std::vector<double>
const& local_x_prev,
28 std::vector<double>& local_b_data,
29 std::vector<double>& local_Jac_data) = 0;
35 double const , Eigen::VectorXd
const& ,
36 Eigen::VectorXd
const& ,
int const ,
37 std::vector<double>& ,
38 std::vector<double>& )
44 virtual std::unique_ptr<AbstractJacobianAssembler>
copy()
const = 0;
53 int const max_non_deformation_dofs_per_node)
const = 0;
56 std::vector<int>
const& non_deformation_component_ids) = 0;
59 std::vector<int>
const& non_deformation_component_ids) = 0;
Base class for Jacobian assemblers.
virtual void setNonDeformationComponentIDs(std::vector< int > const &non_deformation_component_ids)=0
virtual void setNonDeformationComponentIDsNoSizeCheck(std::vector< int > const &non_deformation_component_ids)=0
virtual void preIteration(const unsigned)
virtual std::unique_ptr< AbstractJacobianAssembler > copy() const =0
virtual void checkPerturbationSize(int const max_non_deformation_dofs_per_node) const =0
virtual void assembleWithJacobianForStaggeredScheme(LocalAssemblerInterface &, double const, double const, Eigen::VectorXd const &, Eigen::VectorXd const &, int const, std::vector< double > &, std::vector< double > &)
virtual void assembleWithJacobian(std::size_t const mesh_item_id, LocalAssemblerInterface &local_assembler, double const t, double const dt, std::vector< double > const &local_x, std::vector< double > const &local_x_prev, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data)=0
virtual bool needsPicardAssembly() const =0
virtual ~AbstractJacobianAssembler()=default