24 std::vector<double>
const& ,
25 std::vector<double>
const& ,
26 std::vector<double>& ,
27 std::vector<double>& ,
28 std::vector<double>& )
31 "The assemble() function is not implemented in the local assembler.");
35 double const ,
double const , Eigen::VectorXd
const& ,
36 Eigen::VectorXd
const& ,
int const ,
37 std::vector<double>& ,
38 std::vector<double>& ,
39 std::vector<double>& )
42 "The assembleForStaggeredScheme() function is not implemented in the "
47 double const ,
double const ,
48 std::vector<double>
const& ,
49 std::vector<double>
const& ,
const double ,
50 const double , std::vector<double>& ,
51 std::vector<double>& ,
52 std::vector<double>& ,
53 std::vector<double>& )
56 "The assembleWithJacobian() function is not implemented in the local "
61 double const ,
double const , Eigen::VectorXd
const& ,
62 Eigen::VectorXd
const& ,
const double ,
63 const double ,
int const ,
64 std::vector<double>& ,
65 std::vector<double>& ,
66 std::vector<double>& ,
67 std::vector<double>& )
70 "The assembleWithJacobianForStaggeredScheme() function is not "
71 "implemented in the local assembler.");
75 std::size_t
const mesh_item_id,
76 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_tables,
77 double const t,
double const dt, std::vector<GlobalVector*>
const& x,
80 std::vector<double> local_x_vec;
82 auto const n_processes = x.size();
83 for (std::size_t process_id = 0; process_id < n_processes; ++process_id)
87 assert(!indices.empty());
88 auto const local_solution = x[process_id]->get(indices);
89 local_x_vec.insert(std::end(local_x_vec), std::begin(local_solution),
90 std::end(local_solution));
97 auto const local_x_dot_vec = x_dot.
get(indices);
104 std::size_t
const mesh_item_id,
106 double const t,
bool const use_monolithic_scheme,
int const process_id)
109 auto const local_x = x.
get(indices);
122 std::size_t
const mesh_item_id,
124 double const t,
double const delta_t)
127 auto const local_x = x.
get(indices);
133 std::size_t
const mesh_item_id,
134 std::vector<NumLib::LocalToGlobalIndexMap const*>
const& dof_tables,
135 std::vector<GlobalVector*>
const& x,
double const t,
double const dt)
137 std::vector<double> local_x_vec;
139 auto const n_processes = x.size();
140 for (std::size_t process_id = 0; process_id < n_processes; ++process_id)
144 assert(!indices.empty());
145 auto const local_solution = x[process_id]->get(indices);
146 local_x_vec.insert(std::end(local_x_vec), std::begin(local_solution),
147 std::end(local_solution));
155 std::size_t
const mesh_item_id,
157 GlobalVector const& xdot,
double const t,
double const dt,
158 bool const use_monolithic_scheme,
int const process_id)
161 auto const local_x = x.
get(indices);
162 auto const local_xdot = xdot.
get(indices);
165 use_monolithic_scheme, process_id);
Global vector based on Eigen vector.
double get(IndexType rowId) const
get entry
virtual void preTimestepConcrete(std::vector< double > const &, double const, double const)
virtual void assembleForStaggeredScheme(double const t, double const dt, Eigen::VectorXd const &local_x, Eigen::VectorXd const &local_xdot, int const process_id, std::vector< double > &local_M_data, std::vector< double > &local_K_data, std::vector< double > &local_b_data)
virtual void setInitialConditionsConcrete(std::vector< double > const &, double const, bool const, int const)
virtual void assembleWithJacobian(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)
virtual void initializeConcrete()
virtual void computeSecondaryVariableConcrete(double const, double const, Eigen::VectorXd const &, Eigen::VectorXd const &)
virtual void postNonLinearSolverConcrete(std::vector< double > const &, std::vector< double > const &, double const, double const, bool const, int const)
virtual void postTimestep(std::size_t const mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, double const t, double const dt)
virtual void preTimestep(std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table, GlobalVector const &x, double const t, double const delta_t)
virtual void initialize(std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table)
void setInitialConditions(std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table, GlobalVector const &x, double const t, bool const use_monolithic_scheme, int const process_id)
virtual void assemble(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)
virtual void computeSecondaryVariable(std::size_t const mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, double const t, double const dt, std::vector< GlobalVector * > const &x, GlobalVector const &x_dot, int const process_id)
void postNonLinearSolver(std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table, GlobalVector const &x, GlobalVector const &xdot, double const t, double const dt, bool const use_monolithic_scheme, int const process_id)
virtual void postTimestepConcrete(Eigen::VectorXd const &, double const, double const)
virtual void assembleWithJacobianForStaggeredScheme(double const t, double const dt, Eigen::VectorXd const &local_x, Eigen::VectorXd const &local_xdot, const double dxdot_dx, const double dx_dx, int const process_id, std::vector< double > &local_M_data, std::vector< double > &local_K_data, std::vector< double > &local_b_data, std::vector< double > &local_Jac_data)
Eigen::Map< const Vector > toVector(std::vector< double > const &data, Eigen::VectorXd::Index size)
Creates an Eigen mapped vector from the given data vector.
std::vector< GlobalIndexType > getIndices(std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table)