|
svMultiPhysics
|
Integrator class encapsulates the Newton iteration loop for time integration. More...
#include <Integrator.h>
Public Member Functions | |
| Integrator (Simulation *simulation, SolutionStates &&solutions) | |
| Construct a new Integrator object. | |
| bool | step () |
| Execute one time step with Newton iteration loop. | |
| void | predictor () |
| Perform predictor step for next time step. | |
| Array< double > & | get_Ag () |
| Get reference to solution variable Ag (time derivative of variables) | |
| const Array< double > & | get_Ag () const |
| Array< double > & | get_Yg () |
| Get reference to solution variable Yg (variables) | |
| const Array< double > & | get_Yg () const |
| Array< double > & | get_Dg () |
| Get reference to solution variable Dg (integrated variables) | |
| const Array< double > & | get_Dg () const |
| SolutionStates & | get_solutions () |
| Get reference to solution states struct. | |
| const SolutionStates & | get_solutions () const |
Integrator class encapsulates the Newton iteration loop for time integration.
This class handles the nonlinear Newton iteration scheme for solving coupled multi-physics equations in svMultiPhysics. It manages:
Related to GitHub issue #442: Encapsulate the Newton iteration in main.cpp
| Integrator::Integrator | ( | Simulation * | simulation, |
| SolutionStates && | solutions | ||
| ) |
Construct a new Integrator object.
| simulation | Pointer to the Simulation object containing problem data |
| solutions | Solution states containing old time level arrays (takes ownership via move) |
|
inline |
Get reference to solution variable Ag (time derivative of variables)
|
inline |
Get reference to solution variable Dg (integrated variables)
|
inline |
Get reference to solution states struct.
Provides access to all solution arrays at old (n) and current (n+1) time levels. Use this to access An, Dn, Yn (current) and Ao, Do, Yo (old) via: auto& solutions = integrator.get_solutions(); auto& An = solutions.current.get_acceleration(); auto& Do = solutions.old.get_displacement();
|
inline |
Get reference to solution variable Yg (variables)
| void Integrator::predictor | ( | ) |
Perform predictor step for next time step.
Predictor step for next time step.
Performs predictor step using generalized-alpha method to estimate solution at n+1 time level based on current solution at n time level. This should be called once per time step before the Newton iteration loop.
Modifies: com_mod.pS0 com_mod.Ad solutions_.old (acceleration, velocity, displacement) solutions_.current (acceleration, velocity, displacement)
| bool Integrator::step | ( | ) |
Execute one time step with Newton iteration loop.
Execute one Newton iteration loop for the current time step.
Performs the complete Newton iteration sequence including initialization, assembly, boundary condition application, linear solve, and convergence check.