Piro Development
Loading...
Searching...
No Matches
List of all members
Piro::TrapezoidRuleSolver< Scalar > Class Template Reference
Inheritance diagram for Piro::TrapezoidRuleSolver< Scalar >:
Inheritance graph
[legend]
Collaboration diagram for Piro::TrapezoidRuleSolver< Scalar >:
Collaboration graph
[legend]

Public Member Functions

Constructors/initializers
 TrapezoidRuleSolver (const Teuchos::RCP< Teuchos::ParameterList > &appParams, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &model, const Teuchos::RCP< Thyra::AdaptiveSolutionManager > &solMgr, const Teuchos::RCP< Piro::ObserverBase< Scalar > > &observer=Teuchos::null)
 Takes the number of elements in the discretization .
 
Overridden from Thyra::ModelEvaluatorBase.
Thyra::ModelEvaluatorBase::InArgs< Scalar > getNominalValues () const
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > createInArgs () const
 
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_p_space (int l) const
 
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_g_space (int j) const
 
Teuchos::RCP< Piro::NOXSolver< Scalar > > getNOXSolver () const
 
Teuchos::RCP< Piro::TrapezoidDecorator< Scalar > > getDecorator () const
 
Teuchos::RCP< Thyra::AdaptiveSolutionManager > getSolutionManager () const
 
void disableCalcInitAccel ()
 
void enableCalcInitAccel ()
 
void enableStaticInitSolve ()
 Start from static equilibrium: solve K x = f (no inertia) once before the time loop, then set v = a = 0. Takes precedence over the initial-acceleration heuristic (calc_init_accel_), whose perturbation parameter 4e6/dt^2 degenerates to a near-static solve anyway when dt is large relative to the structural time scale, yielding a spurious a_init = pert*x_static instead of a physical acceleration.
 
void disableStaticInitSolve ()
 
void setStartTime (const Scalar start_time)
 Set the start time of the integration window.
 
void setFinalTime (const Scalar final_time)
 Set the final time of the integration window (recomputes delta_t).
 
Scalar getStartTime () const
 Start time of the current integration window.
 
Scalar getFinalTime () const
 Final time of the current integration window.
 

Member Function Documentation

◆ setStartTime()

template<typename Scalar >
void Piro::TrapezoidRuleSolver< Scalar >::setStartTime ( const Scalar  start_time)
inline

Set the start time of the integration window.

By default the window (Initial Time, Final Time) is fixed at construction from the "Trapezoid Rule" parameter list. These setters let a driver – e.g. a coupling loop that advances the solver one outer step at a time – retarget the window to successive segments of global simulation time before each evalModel call, mirroring Piro::TempusSolver's setStartTime/setFinalTime. The model then sees true simulation time through InArgs::set_t (a time-dependent boundary condition, body force, or material lookup gets the correct time instead of the fixed window's). The internal time step delta_t = (Final - Initial) / Num Time Steps is recomputed; the dynamics depend only on delta_t, so shifting the window's origin leaves the integration unchanged.


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