|
Piro Development
|


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. | |
|
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.