16 #include "smith/differentiable_numerics/field_store.hpp"
20 class CoupledSystemSolver;
21 class DirichletBoundaryConditions;
22 class BoundaryConditionManager;
33 std::vector<FieldState>
solve(
const std::vector<std::shared_ptr<WeakForm>>& weak_forms,
const FieldStore& field_store,
34 const CoupledSystemSolver* solver,
const TimeInfo& time_info,
35 const std::vector<FieldState>& params = {});
52 const std::vector<std::shared_ptr<WeakForm>>& weak_forms,
53 std::shared_ptr<smith::CoupledSystemSolver> solver,
54 std::shared_ptr<WeakForm> cycle_zero_weak_form =
nullptr,
55 std::shared_ptr<smith::CoupledSystemSolver> cycle_zero_solver =
nullptr);
65 std::pair<std::vector<FieldState>, std::vector<ReactionState>>
advanceState(
66 const TimeInfo& time_info,
const FieldState& shape_disp,
const std::vector<FieldState>& states,
67 const std::vector<FieldState>& params)
const override;
70 std::shared_ptr<FieldStore> field_store_;
71 std::vector<std::shared_ptr<WeakForm>> weak_forms_;
72 std::shared_ptr<smith::CoupledSystemSolver> solver_;
73 std::shared_ptr<WeakForm> cycle_zero_weak_form_;
74 std::shared_ptr<smith::CoupledSystemSolver> cycle_zero_solver_;
Time integrator for multiphysics problems, coordinating multiple weak forms.
std::pair< std::vector< FieldState >, std::vector< ReactionState > > advanceState(const TimeInfo &time_info, const FieldState &shape_disp, const std::vector< FieldState > &states, const std::vector< FieldState > ¶ms) const override
Advance the multiphysics state by one time step.
MultiphysicsTimeIntegrator(std::shared_ptr< FieldStore > field_store, const std::vector< std::shared_ptr< WeakForm >> &weak_forms, std::shared_ptr< smith::CoupledSystemSolver > solver, std::shared_ptr< WeakForm > cycle_zero_weak_form=nullptr, std::shared_ptr< smith::CoupledSystemSolver > cycle_zero_solver=nullptr)
Construct a new MultiphysicsTimeIntegrator object.
Base state advancer class, allows specification for quasi-static solve strategies,...
Smith mesh class which assists in constructing the appropriate parallel mfem meshes and registering a...
Accelerator functionality.
gretl::State< FEFieldPtr, FEDualPtr > FieldState
typedef
std::vector< FieldState > solve(const std::vector< std::shared_ptr< WeakForm >> &weak_forms, const FieldStore &field_store, const CoupledSystemSolver *solver, const TimeInfo &time_info, const std::vector< FieldState > ¶ms)
Solve a set of weak forms.
This file contains nonlinear block solver interfaces and helpers.
This file contains enumerations and record types for physics solver configuration.
Interface and implementations for advancing from one step to the next. Typically these are time integ...
struct storing time and timestep information
Provides templated implementations for discretizing values, velocities and accelerations from current...