32 namespace time_integrator
35 class ImplicitTimeIntegrator;
40 class VarFormTestAccess;
66 virtual std::string
name()
const = 0;
83 const std::string &formulation,
86 const std::string &out_path);
92 void set_mesh(std::unique_ptr<mesh::Mesh> mesh,
const double loading_mesh_time = 0);
100 Eigen::MatrixXd &sol,
123 const Eigen::MatrixXd &solution,
136 virtual void save_json(
const Eigen::MatrixXd &solution, std::ostream &out)
const = 0;
139 void save_json(
const Eigen::MatrixXd &solution)
const;
140 virtual void export_data(
const Eigen::MatrixXd &solution)
const = 0;
144 const Eigen::MatrixXd &solution,
148 Eigen::MatrixXd &solution);
158 const std::shared_ptr<time_integrator::ImplicitTimeIntegrator> &integrator,
159 const std::string &group,
161 const std::string &ordering,
163 int block_size)
const;
166 const std::string &
name,
170 const std::string &
name,
174 Eigen::MatrixXd &value)
const;
178 virtual void reset() = 0;
187 Eigen::MatrixXd &sol,
194 const bool iso_parametric,
195 const Eigen::VectorXi &disc_orders,
196 const Eigen::VectorXi &disc_ordersq,
197 const std::string &basis_type,
198 const std::string &poly_basis_type,
201 const int quadrature_order,
202 const int mass_quadrature_order,
203 const bool use_corner_quadrature,
204 const int n_harmonic_samples,
205 const int integral_constraints,
208 std::shared_ptr<GeometryMapping> geometry =
nullptr);
213 const std::string &poly_basis_type,
216 const int quadrature_order,
217 const int mass_quadrature_order,
218 const int n_harmonic_samples,
219 const int integral_constraints,
225 const std::string &basis_type,
227 Eigen::VectorXi &space_in_node_to_node,
228 Eigen::VectorXi &space_in_primitive_to_primitive)
const;
238 const Eigen::MatrixXd &solution,
242 void save_timestep(
const double time,
const int t,
const double t0,
const double dt,
const Eigen::MatrixXd &solution)
const;
244 const double time,
const int t,
const double dt,
245 const Eigen::MatrixXd &solution, paraviewo::VTMWriter &vtm,
246 const std::string &block_prefix)
const;
247 void save_subsolve(
const int i,
const int t,
const Eigen::MatrixXd &solution)
const;
249 void notify_time_step(
const int t,
const int time_steps,
const double t0,
const double dt)
const;
252 const std::string &formulation,
255 const std::string &out_path)
const;
286 const std::vector<basis::ElementBases> &bases,
287 const std::vector<int> &node_ids,
288 std::vector<RowVectorNd> &positions);
Utilies related to export of geometry.
Read-only interface to a hierarchical collection of simulation resources.
Abstract mesh class to capture 2d/3d conforming and non-conforming meshes.
Implicit time integrator of a second order ODE (equivently a system of coupled first order ODEs).
std::function< std::vector< OutputField >(const OutputSample &)> OutputFieldFunction
std::array< int, 2 > QuadratureOrders