32 namespace time_integrator
35 class ImplicitTimeIntegrator;
40 class VarFormTestAccess;
68 virtual std::string
name()
const = 0;
85 const std::string &formulation,
88 const std::string &out_path);
94 void set_mesh(std::unique_ptr<mesh::Mesh> mesh,
const double loading_mesh_time = 0);
102 Eigen::MatrixXd &sol,
125 const Eigen::MatrixXd &solution,
138 virtual void save_json(
const Eigen::MatrixXd &solution, std::ostream &out)
const = 0;
141 void save_json(
const Eigen::MatrixXd &solution)
const;
142 virtual void export_data(
const Eigen::MatrixXd &solution)
const = 0;
146 const Eigen::MatrixXd &solution,
150 Eigen::MatrixXd &solution);
160 const std::shared_ptr<time_integrator::ImplicitTimeIntegrator> &integrator,
161 const std::string &group,
163 const std::string &ordering,
165 int block_size)
const;
168 const std::string &
name,
172 const std::string &
name,
176 Eigen::MatrixXd &value)
const;
180 virtual void reset() = 0;
189 Eigen::MatrixXd &sol,
196 const bool iso_parametric,
197 const Eigen::VectorXi &disc_orders,
198 const Eigen::VectorXi &disc_ordersq,
199 const std::string &basis_type,
200 const std::string &poly_basis_type,
203 const int quadrature_order,
204 const int mass_quadrature_order,
205 const bool use_corner_quadrature,
206 const int n_harmonic_samples,
207 const int integral_constraints,
210 std::shared_ptr<GeometryMapping> geometry =
nullptr);
215 const std::string &poly_basis_type,
218 const int quadrature_order,
219 const int mass_quadrature_order,
220 const int n_harmonic_samples,
221 const int integral_constraints,
227 const std::string &basis_type,
229 Eigen::VectorXi &space_in_node_to_node,
230 Eigen::VectorXi &space_in_primitive_to_primitive)
const;
240 const Eigen::MatrixXd &solution,
244 void save_timestep(
const double time,
const int t,
const double t0,
const double dt,
const Eigen::MatrixXd &solution)
const;
246 const double time,
const int t,
const double dt,
247 const Eigen::MatrixXd &solution, paraviewo::VTMWriter &vtm,
248 const std::string &block_prefix)
const;
249 void save_subsolve(
const int i,
const int t,
const Eigen::MatrixXd &solution)
const;
251 void notify_time_step(
const int t,
const int time_steps,
const double t0,
const double dt)
const;
254 const std::string &formulation,
257 const std::string &out_path)
const;
288 const std::vector<basis::ElementBases> &bases,
289 const std::vector<int> &node_ids,
290 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