svMultiPhysics
Loading...
Searching...
No Matches
Public Member Functions | List of all members
Integrator Class Reference

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
 
SolutionStatesget_solutions ()
 Get reference to solution states struct.
 
const SolutionStatesget_solutions () const
 

Detailed Description

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

Constructor & Destructor Documentation

◆ Integrator()

Integrator::Integrator ( Simulation simulation,
SolutionStates &&  solutions 
)

Construct a new Integrator object.

Parameters
simulationPointer to the Simulation object containing problem data
solutionsSolution states containing old time level arrays (takes ownership via move)

Member Function Documentation

◆ get_Ag()

Array< double > & Integrator::get_Ag ( )
inline

Get reference to solution variable Ag (time derivative of variables)

Returns
Reference to Ag array (acceleration in structural mechanics)

◆ get_Dg()

Array< double > & Integrator::get_Dg ( )
inline

Get reference to solution variable Dg (integrated variables)

Returns
Reference to Dg array (displacement in structural mechanics)

◆ get_solutions()

SolutionStates & Integrator::get_solutions ( )
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();

Returns
Reference to SolutionStates struct containing all solution arrays

◆ get_Yg()

Array< double > & Integrator::get_Yg ( )
inline

Get reference to solution variable Yg (variables)

Returns
Reference to Yg array (velocity in structural mechanics)

◆ predictor()

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)

◆ step()

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.

Returns
True if all equations converged, false otherwise

The documentation for this class was generated from the following files: