oomph::TimeStepper Class Referenceabstract

#include <timesteppers.h>

+ Inheritance diagram for oomph::TimeStepper:

Public Member Functions

 TimeStepper (const unsigned &tstorage, const unsigned &max_deriv)
 
 TimeStepper ()
 Broken empty constructor. More...
 
 TimeStepper (const TimeStepper &)=delete
 Broken copy constructor. More...
 
void operator= (const TimeStepper &)=delete
 Broken assignment operator. More...
 
virtual ~TimeStepper ()
 virtual destructor More...
 
unsigned highest_derivative () const
 Highest order derivative that the scheme can compute. More...
 
virtual unsigned order () const
 Actual order (accuracy) of the scheme. More...
 
doubletime ()
 Return current value of continous time. More...
 
double time () const
 Return current value of continous time. More...
 
virtual unsigned ndt () const =0
 Number of timestep increments that are required by the scheme. More...
 
virtual unsigned nprev_values_for_value_at_evaluation_time () const
 
virtual unsigned nprev_values () const =0
 Number of previous values available: 0 for static, 1 for BDF<1>,... More...
 
virtual void set_weights ()=0
 
void make_steady ()
 
bool is_steady () const
 
bool predict_by_explicit_step () const
 
ExplicitTimeStepperexplicit_predictor_pt ()
 
void set_predictor_pt (ExplicitTimeStepper *_pred_pt)
 
void update_predicted_time (const double &new_time)
 
void check_predicted_values_up_to_date () const
 Check that the predicted values are the ones we want. More...
 
unsigned predictor_storage_index () const
 
void enable_warning_in_assign_initial_data_values ()
 
void disable_warning_in_assign_initial_data_values ()
 
const DenseMatrix< double > * weights_pt () const
 Get a (const) pointer to the weights. More...
 
virtual void undo_make_steady ()
 
std::string type () const
 
void time_derivative (const unsigned &i, Data *const &data_pt, Vector< double > &deriv)
 
double time_derivative (const unsigned &i, Data *const &data_pt, const unsigned &j)
 Evaluate i-th derivative of j-th value in Data. More...
 
void time_derivative (const unsigned &i, Node *const &node_pt, Vector< double > &deriv)
 
double time_derivative (const unsigned &i, Node *const &node_pt, const unsigned &j)
 
Time *const & time_pt () const
 Access function for the pointer to time (const version) More...
 
Time *& time_pt ()
 
virtual double weight (const unsigned &i, const unsigned &j) const
 Access function for j-th weight for the i-th derivative. More...
 
unsigned ntstorage () const
 
virtual void assign_initial_values_impulsive (Data *const &data_pt)=0
 
virtual void assign_initial_positions_impulsive (Node *const &node_pt)=0
 
virtual void shift_time_values (Data *const &data_pt)=0
 
virtual void shift_time_positions (Node *const &node_pt)=0
 
bool adaptive_flag () const
 Function to indicate whether the scheme is adaptive (false by default) More...
 
virtual void set_predictor_weights ()
 
virtual void calculate_predicted_values (Data *const &data_pt)
 
virtual void calculate_predicted_positions (Node *const &node_pt)
 
virtual void set_error_weights ()
 
virtual double temporal_error_in_position (Node *const &node_pt, const unsigned &i)
 
virtual double temporal_error_in_value (Data *const &data_pt, const unsigned &i)
 
virtual void actions_before_timestep (Problem *problem_pt)
 
virtual void actions_after_timestep (Problem *problem_pt)
 

Protected Attributes

TimeTime_pt
 Pointer to discrete time storage scheme. More...
 
DenseMatrix< doubleWeight
 Storage for the weights associated with the timestepper. More...
 
std::string Type
 
bool Adaptive_Flag
 
bool Is_steady
 
bool Shut_up_in_assign_initial_data_values
 
bool Predict_by_explicit_step
 
ExplicitTimeStepperExplicit_predictor_pt
 
double Predicted_time
 
int Predictor_storage_index
 

Detailed Description

////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// Base class for time-stepping schemes. Timestepper provides an approximation of the temporal derivatives of Data such that the i-th derivative of the j-th value in Data is represented as

unsigned n_value=data_pt->nvalue();
Vector<double> time_derivative(n_value);
for (unsigned j=0;j<n_value;j++)
{
for (unsigned t=0;t<ntstorage();t++)
{
time_derivative[j] += data_pt->value(t,j)*weight(i,t);
}
}
int i
Definition: BiCGSTAB_step_by_step.cpp:9
unsigned ntstorage() const
Definition: timesteppers.h:601
virtual double weight(const unsigned &i, const unsigned &j) const
Access function for j-th weight for the i-th derivative.
Definition: timesteppers.h:594
void time_derivative(const unsigned &i, Data *const &data_pt, Vector< double > &deriv)
Definition: timesteppers.h:502
t
Definition: plotPSD.py:36
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2

where the time index t is such that

  • t = 0 refers to the current value of the Data
  • t > 0 refers to the ‘history’ values, i.e. the doubles that are stored in Data to represent the value's time derivatives. For BDF schemes these doubles are the values at previous times; for other timestepping schemes they can represent quantities such as previous first and second derivatives, etc.

TimeSteppers can evaluate all derivatives up to their order().

The first nprev_values() ‘history values’ represent the values at the previous timesteps. For BDF schemes, nprev_values() = ntstorage()-1 , i.e. all ‘history values’ represent previous values. For Newmark<NSTEPS>, only the first NSTEPS ‘history values’ represent previous values (NSTEPS=1 gives the normal Newmark scheme).

Constructor & Destructor Documentation

◆ TimeStepper() [1/3]

oomph::TimeStepper::TimeStepper ( const unsigned tstorage,
const unsigned max_deriv 
)
inline

Constructor. Pass the amount of storage required by timestepper (present value + history values) and the order of highest time-derivative.

280  : Time_pt(0),
281  Adaptive_Flag(false),
282  Is_steady(false),
285  {
286  // Resize Weights matrix and initialise each weight to zero
287  Weight.resize(max_deriv + 1, tstorage, 0.0);
288 
289  // Set the weight for zero-th derivative, which is always 1.0
290  Weight(0, 0) = 1.0;
291 
292  // Set predictor storage index to negative value so that we can catch
293  // cases where it has not been set to a correct value by the inheriting
294  // constructor.
296 
298  }
void resize(const unsigned long &n)
Definition: matrices.h:498
DenseMatrix< double > Weight
Storage for the weights associated with the timestepper.
Definition: timesteppers.h:237
bool Shut_up_in_assign_initial_data_values
Definition: timesteppers.h:256
bool Predict_by_explicit_step
Definition: timesteppers.h:260
Time * Time_pt
Pointer to discrete time storage scheme.
Definition: timesteppers.h:234
ExplicitTimeStepper * Explicit_predictor_pt
Definition: timesteppers.h:265
bool Is_steady
Definition: timesteppers.h:251
int Predictor_storage_index
Definition: timesteppers.h:273
bool Adaptive_Flag
Definition: timesteppers.h:245

References ProblemParameters::Weight.

◆ TimeStepper() [2/3]

oomph::TimeStepper::TimeStepper ( )
inline

Broken empty constructor.

302  {
303  throw OomphLibError("Don't call default constructor for TimeStepper!",
306  }
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86

References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.

◆ TimeStepper() [3/3]

oomph::TimeStepper::TimeStepper ( const TimeStepper )
delete

Broken copy constructor.

◆ ~TimeStepper()

oomph::TimeStepper::~TimeStepper ( )
virtual

virtual destructor

Destructor for time stepper, in .cc file so that we don't have to include explicit_timesteppers.h in header.

38  {
39  // Make sure explicit predictor gets deleted if it was set
40  delete Explicit_predictor_pt;
42  }

References Explicit_predictor_pt.

Member Function Documentation

◆ actions_after_timestep()

virtual void oomph::TimeStepper::actions_after_timestep ( Problem problem_pt)
inlinevirtual

Interface for any actions that need to be performed after a time step.

Reimplemented in oomph::TR, and oomph::IMRByBDF.

666 {}

Referenced by oomph::Problem::adaptive_unsteady_newton_solve(), and oomph::Problem::unsteady_newton_solve().

◆ actions_before_timestep()

virtual void oomph::TimeStepper::actions_before_timestep ( Problem problem_pt)
inlinevirtual

Interface for any actions that need to be performed before a time step.

Reimplemented in oomph::TR, and oomph::IMRByBDF.

662 {}

Referenced by oomph::Problem::adaptive_unsteady_newton_solve(), and oomph::Problem::unsteady_newton_solve().

◆ adaptive_flag()

◆ assign_initial_positions_impulsive()

virtual void oomph::TimeStepper::assign_initial_positions_impulsive ( Node *const &  node_pt)
pure virtual

◆ assign_initial_values_impulsive()

virtual void oomph::TimeStepper::assign_initial_values_impulsive ( Data *const &  data_pt)
pure virtual

◆ calculate_predicted_positions()

virtual void oomph::TimeStepper::calculate_predicted_positions ( Node *const &  node_pt)
inlinevirtual

Do the predictor step for the positions at a node (currently empty — overwrite for a specific scheme)

Reimplemented in oomph::TR, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, and oomph::IMRBase.

638 {}

◆ calculate_predicted_values()

virtual void oomph::TimeStepper::calculate_predicted_values ( Data *const &  data_pt)
inlinevirtual

Do the predictor step for data stored in a Data object (currently empty – overwrite for specific scheme)

Reimplemented in oomph::TR, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, and oomph::IMRBase.

634 {}

◆ check_predicted_values_up_to_date()

void oomph::TimeStepper::check_predicted_values_up_to_date ( ) const
inline

Check that the predicted values are the ones we want.

424  {
425 #ifdef PARANOID
426  if (std::abs(time_pt()->time() - Predicted_time) > 1e-15)
427  {
428  throw OomphLibError(
429  "Predicted values are not from the correct time step",
432  }
433 #endif
434  }
AnnoyingScalar abs(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:135
Array< double, 1, 3 > e(1./3., 0.5, 2.)
double & time()
Return current value of continous time.
Definition: timesteppers.h:332
double Predicted_time
Definition: timesteppers.h:269
Time *const & time_pt() const
Access function for the pointer to time (const version)
Definition: timesteppers.h:572

References abs(), e(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and oomph::Time::time().

Referenced by oomph::IMRBase::calculate_predicted_values().

◆ disable_warning_in_assign_initial_data_values()

void oomph::TimeStepper::disable_warning_in_assign_initial_data_values ( )
inline

Disable the output of warnings due to possible fct pointer vector size mismatch in assign_initial_data_values

470  {
472  }

◆ enable_warning_in_assign_initial_data_values()

void oomph::TimeStepper::enable_warning_in_assign_initial_data_values ( )
inline

Enable the output of warnings due to possible fct pointer vector size mismatch in assign_initial_data_values (Default)

463  {
465  }

◆ explicit_predictor_pt()

ExplicitTimeStepper* oomph::TimeStepper::explicit_predictor_pt ( )
inline

Get the pointer to the explicit timestepper to use as a predictor in adaptivity if Predict_by_explicit_step is set.

404  {
405  return Explicit_predictor_pt;
406  }

Referenced by oomph::Problem::calculate_predictions().

◆ highest_derivative()

unsigned oomph::TimeStepper::highest_derivative ( ) const
inline

Highest order derivative that the scheme can compute.

319  {
320  return Weight.nrow() - 1;
321  }
unsigned long nrow() const
Return the number of rows of the matrix.
Definition: matrices.h:485

References ProblemParameters::Weight.

◆ is_steady()

bool oomph::TimeStepper::is_steady ( ) const
inline

Flag to indicate if a timestepper has been made steady (possibly temporarily to switch off time-dependence)

390  {
391  return Is_steady;
392  }

Referenced by oomph::Problem::arc_length_step_solve_helper(), oomph::AxisymmetricPoroelasticityEquations::d2u_dt2(), oomph::PoroelasticityEquations< DIM >::d2u_dt2(), oomph::AxisymmetricLinearElasticityEquationsBase::d2u_dt2_axisymmetric_linear_elasticity(), oomph::LinearWaveEquations< DIM >::d2u_dt2_lin_wave(), oomph::LinearElasticityEquationsBase< DIM >::d2u_dt2_linear_elasticity(), oomph::AdvectionDiffusionReactionEquations< NREAGENT, DIM >::dc_dt_adv_diff_react(), oomph::PerturbedSpineLinearisedAxisymmetricFluidInterfaceElement< ELEMENT >::dH_dt(), oomph::LinearisedAxisymmetricNavierStokesEquations::dnodal_position_perturbation_dt_lin_axi_nst(), oomph::Node::dposition_dt(), oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >::dposition_dt(), oomph::Node::dposition_gen_dt(), oomph::AxisymmetricPoroelasticityEquations::dq_edge_dt(), oomph::PoroelasticityEquations< DIM >::dq_edge_dt(), oomph::AxisymmetricPoroelasticityEquations::dq_internal_dt(), oomph::PoroelasticityEquations< DIM >::dq_internal_dt(), oomph::AxisymmetricPoroelasticityEquations::du_dt(), oomph::PoroelasticityEquations< DIM >::du_dt(), oomph::AdvectionDiffusionEquations< DIM >::du_dt_adv_diff(), oomph::AxisymAdvectionDiffusionEquations::du_dt_axi_adv_diff(), oomph::AxisymmetricNavierStokesEquations::du_dt_axi_nst(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::du_dt_axi_nst(), oomph::AxisymmetricLinearElasticityEquationsBase::du_dt_axisymmetric_linear_elasticity(), oomph::GeneralisedAdvectionDiffusionEquations< DIM >::du_dt_cons_adv_diff(), oomph::du_dt_cons_axisym_adv_diff(), oomph::FluxTransportEquations< DIM >::du_dt_flux_transport(), oomph::LinearisedAxisymmetricNavierStokesEquations::du_dt_lin_axi_nst(), oomph::LinearWaveEquations< DIM >::du_dt_lin_wave(), oomph::LinearisedAxisymmetricNavierStokesEquations::du_dt_linearised_axi_nst(), oomph::LinearisedNavierStokesEquations::du_dt_linearised_nst(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::du_dt_nst(), oomph::NavierStokesEquations< DIM >::du_dt_nst(), oomph::SphericalAdvectionDiffusionEquations::du_dt_spherical_adv_diff(), oomph::UnsteadyHeatEquations< DIM >::du_dt_ust_heat(), oomph::WomersleyEquations< DIM >::du_dt_womersley(), oomph::Node::dx_dt(), oomph::Node::dx_gen_dt(), oomph::LinearisedAxisymmetricFluidInterfaceElement::dXhat_dt(), oomph::Problem::get_dvaluesdt(), oomph::Problem::solve_eigenproblem(), oomph::Problem::steady_newton_solve(), and oomph::SegregatableFSIProblem::steady_segregated_solve().

◆ make_steady()

void oomph::TimeStepper::make_steady ( )
inline

Function to make the time stepper temporarily steady. This is trivially achieved by setting all the weights to zero

375  {
376  // Zero the matrix
377  Weight.initialise(0);
378 
379  // Weight of current step in calculation of current step is always 1 in
380  // steady state. All other entries left at zero.
381  Weight(0, 0) = 1.0;
382 
383  // Update flag
384  Is_steady = true;
385  }
void initialise(const T &val)
Initialize all values in the matrix to val.
Definition: matrices.h:514

References ProblemParameters::Weight.

Referenced by oomph::Problem::arc_length_step_solve_helper(), FlowAroundCylinderProblem< ELEMENT >::FlowAroundCylinderProblem(), oomph::Problem::get_dvaluesdt(), oomph::Problem::solve_eigenproblem(), oomph::Problem::steady_newton_solve(), and oomph::SegregatableFSIProblem::steady_segregated_solve().

◆ ndt()

◆ nprev_values()

virtual unsigned oomph::TimeStepper::nprev_values ( ) const
pure virtual

Number of previous values available: 0 for static, 1 for BDF<1>,...

Implemented in oomph::TR, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::Newmark< NSTEPS >, oomph::Newmark< 2 >, oomph::Steady< NSTEPS >, oomph::Steady< 0 >, oomph::Steady< 2 >, oomph::PeriodicOrbitTimeDiscretisation, oomph::IMRBase, oomph::ContinuationStorageScheme, and oomph::SelfStartingBDF2.

Referenced by SurfactantProblem< ELEMENT, INTERFACE_ELEMENT >::actions_after_adapt(), oomph::AlgebraicCollapsibleChannelMesh< ELEMENT >::algebraic_node_update(), oomph::AlgebraicFSIDrivenCavityMesh< ELEMENT >::algebraic_node_update(), AxisymmetricVibratingShellProblem< ELEMENT >::complete_problem_setup(), VibratingShellProblem< ELEMENT >::complete_problem_setup(), TwoLayerInterfaceProblem< ELEMENT >::complete_problem_setup(), UnstructuredFluidProblem< ELEMENT >::complete_problem_setup(), BubbleInChannelProblem< ELEMENT >::complete_problem_setup(), DropInChannelProblem< ELEMENT >::complete_problem_setup(), oomph::RefineablePolarTaylorHoodElement::get_interpolated_values(), oomph::RefineablePolarCrouzeixRaviartElement::get_interpolated_values(), oomph::FiniteElement::get_x(), oomph::ODEProblem::my_set_initial_condition(), oomph::AlgebraicNode::node_update(), oomph::MacroElementNodeUpdateNode::node_update(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_central_region(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::node_update_in_central_box(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::node_update_in_lower_right_box(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::node_update_in_upper_left_box(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_lower_right_region(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_upper_left_region(), oomph::PseudoBucklingRing::position(), oomph::PseudoBucklingRing::PseudoBucklingRing(), oomph::ImmersedRigidBodyTriangleMeshPolygon::reset_reference_configuration(), UnstructuredImmersedEllipseProblem< ELEMENT >::set_boundary_velocity(), AdvectionProblem::set_initial_conditions(), EulerProblem::set_initial_conditions(), oomph::SolidICProblem::set_newmark_initial_condition_consistently(), oomph::TetMeshBase::snap_nodes_onto_geometric_objects(), and oomph::UnstructuredTwoDMeshGeometryBase::snap_nodes_onto_geometric_objects().

◆ nprev_values_for_value_at_evaluation_time()

virtual unsigned oomph::TimeStepper::nprev_values_for_value_at_evaluation_time ( ) const
inlinevirtual

Number of previous values needed to calculate the value at the current time. i.e. how many previous values must we loop over to calculate the values at the evaluation time. For most methods this is 1, i.e. just use the value at t_{n+1}. See midpoint method for a counter-example.

Reimplemented in oomph::IMRBase, oomph::IMRByBDF, and oomph::IMR.

360  {
361  return 1;
362  }

Referenced by oomph::IMRODEElement::time_interpolate_time(), and oomph::IMRODEElement::time_interpolate_u().

◆ ntstorage()

unsigned oomph::TimeStepper::ntstorage ( ) const
inline

Return the number of doubles required to represent history (one for steady)

602  {
603  return (Weight.ncol());
604  }
unsigned long ncol() const
Return the number of columns of the matrix.
Definition: matrices.h:491

References ProblemParameters::Weight.

Referenced by oomph::SelfStartingBDF2::assign_initial_data_values(), oomph::PeriodicOrbitTimeDiscretisation::assign_initial_data_values(), oomph::RefineableSolidQElement< 3 >::build(), oomph::RefineableSolidQElement< 2 >::build(), oomph::Node::copy(), oomph::AxisymmetricPoroelasticityEquations::d2u_dt2(), oomph::PoroelasticityEquations< DIM >::d2u_dt2(), oomph::AxisymmetricLinearElasticityEquationsBase::d2u_dt2_axisymmetric_linear_elasticity(), oomph::LinearWaveEquations< DIM >::d2u_dt2_lin_wave(), oomph::LinearElasticityEquationsBase< DIM >::d2u_dt2_linear_elasticity(), ElasticAxisymmetricSolubleSurfactantTransportInterfaceElement< ELEMENT >::dc_bulk_dt_surface(), oomph::AdvectionDiffusionReactionEquations< NREAGENT, DIM >::dc_dt_adv_diff_react(), oomph::SpineAxisymmetricMarangoniSurfactantFluidInterfaceElement< ELEMENT >::dcdt_surface(), oomph::SpineLineMarangoniSurfactantFluidInterfaceElement< ELEMENT >::dcdt_surface(), oomph::SurfactantTransportInterfaceElement::dcdt_surface(), SSPorousChannelEquations::df_dt(), oomph::PerturbedSpineLinearisedAxisymmetricFluidInterfaceElement< ELEMENT >::dH_dt(), oomph::LinearisedAxisymmetricNavierStokesEquations::dnodal_position_perturbation_dt_lin_axi_nst(), oomph::Node::dposition_dt(), oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >::dposition_dt(), oomph::Node::dposition_gen_dt(), oomph::AxisymmetricPoroelasticityEquations::dq_edge_dt(), oomph::PoroelasticityEquations< DIM >::dq_edge_dt(), oomph::AxisymmetricPoroelasticityEquations::dq_internal_dt(), oomph::PoroelasticityEquations< DIM >::dq_internal_dt(), SpineGravityTractionElement< ELEMENT >::du_dt(), oomph::AxisymmetricPoroelasticityEquations::du_dt(), oomph::PoroelasticityEquations< DIM >::du_dt(), oomph::AdvectionDiffusionEquations< DIM >::du_dt_adv_diff(), oomph::AxisymAdvectionDiffusionEquations::du_dt_axi_adv_diff(), oomph::AxisymmetricNavierStokesEquations::du_dt_axi_nst(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::du_dt_axi_nst(), oomph::AxisymmetricLinearElasticityEquationsBase::du_dt_axisymmetric_linear_elasticity(), oomph::GeneralisedAdvectionDiffusionEquations< DIM >::du_dt_cons_adv_diff(), oomph::du_dt_cons_axisym_adv_diff(), oomph::FluxTransportEquations< DIM >::du_dt_flux_transport(), oomph::LinearisedAxisymmetricNavierStokesEquations::du_dt_lin_axi_nst(), oomph::LinearWaveEquations< DIM >::du_dt_lin_wave(), oomph::LinearisedAxisymmetricNavierStokesEquations::du_dt_linearised_axi_nst(), oomph::LinearisedNavierStokesEquations::du_dt_linearised_nst(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::du_dt_nst(), oomph::NavierStokesEquations< DIM >::du_dt_nst(), oomph::PolarNavierStokesEquations::du_dt_pnst(), oomph::SphericalAdvectionDiffusionEquations::du_dt_spherical_adv_diff(), oomph::SphericalNavierStokesEquations::du_dt_spherical_nst(), oomph::UnsteadyHeatEquations< DIM >::du_dt_ust_heat(), oomph::WomersleyEquations< DIM >::du_dt_womersley(), oomph::Node::dump(), oomph::Node::dx_dt(), oomph::Node::dx_gen_dt(), oomph::LinearisedAxisymmetricFluidInterfaceElement::dXhat_dt(), oomph::SolidFiniteElement::fill_in_jacobian_for_newmark_accel(), oomph::ContinuationStorageScheme::modify_storage(), oomph::PeriodicOrbitTimeDiscretisation::ndt(), oomph::ProjectableAdvectionDiffusionReactionElement< ADR_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableAxisymLinearElasticityElement< AXISYM_LINEAR_ELAST_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableAxisymmetricTaylorHoodElement< TAYLOR_HOOD_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableAxisymmetricCrouzeixRaviartElement< CROUZEIX_RAVIART_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableAxisymmetricPoroelasticityElement< AXISYMMETRIC_POROELASTICITY_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableDarcyElement< DARCY_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableDisplacementBasedFoepplvonKarmanElement< FVK_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableFoepplvonKarmanElement< FVK_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableFourierDecomposedHelmholtzElement< FOURIER_DECOMPOSED_HELMHOLTZ_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::GeneralisedNewtonianProjectableAxisymmetricTaylorHoodElement< TAYLOR_HOOD_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::GeneralisedNewtonianProjectableAxisymmetricCrouzeixRaviartElement< CROUZEIX_RAVIART_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableGeneralisedNewtonianTaylorHoodElement< TAYLOR_HOOD_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableGeneralisedNewtonianCrouzeixRaviartElement< CROUZEIX_RAVIART_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::GenericLagrangeInterpolatedProjectableElement< ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableHelmholtzElement< HELMHOLTZ_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableLinearElasticityElement< LINEAR_ELAST_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectablePMLFourierDecomposedHelmholtzElement< FOURIER_DECOMPOSED_HELMHOLTZ_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectablePMLHelmholtzElement< HELMHOLTZ_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectablePMLTimeHarmonicLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectablePoissonElement< POISSON_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectablePVDElement< PVD_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectablePVDElementWithContinuousPressure< PVD_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableUnsteadyHeatSpaceTimeElement< UNSTEADY_HEAT_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableUnsteadyHeatMixedOrderSpaceTimeElement< UNSTEADY_HEAT_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableTimeHarmonicFourierDecomposedLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableTimeHarmonicLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::ProjectableUnsteadyHeatElement< UNSTEADY_HEAT_ELEMENT >::nhistory_values_for_coordinate_projection(), oomph::Node::Node(), oomph::PeriodicOrbitTimeDiscretisation::nprev_values(), oomph::Data::ntstorage(), oomph::MyTaylorHoodElement< DIM >::output(), oomph::ProjectableUnsteadyHeatSpaceTimeElement< UNSTEADY_HEAT_ELEMENT >::output(), oomph::ProjectableUnsteadyHeatMixedOrderSpaceTimeElement< UNSTEADY_HEAT_ELEMENT >::output(), oomph::ProjectableUnsteadyHeatElement< UNSTEADY_HEAT_ELEMENT >::output(), oomph::PRefineableQElement< 1, INITIAL_NNODE_1D >::p_refine(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::p_refine(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::p_refine(), oomph::Node::read(), oomph::PRefineableQElement< 1, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::RefineableQSpectralElement< 3 >::rebuild_from_sons(), oomph::RefineableQSpectralElement< 1 >::rebuild_from_sons(), oomph::RefineableQSpectralElement< 2 >::rebuild_from_sons(), oomph::SolidICProblem::set_newmark_initial_condition_consistently(), oomph::Node::set_position_time_stepper(), oomph::Data::set_time_stepper(), oomph::PeriodicOrbitEquations::set_timestepper_weights(), oomph::SelfStartingBDF2::shift_time_positions(), oomph::IMRBase::shift_time_positions(), and oomph::Node::x_gen_range_check().

◆ operator=()

void oomph::TimeStepper::operator= ( const TimeStepper )
delete

Broken assignment operator.

◆ order()

virtual unsigned oomph::TimeStepper::order ( ) const
inlinevirtual

◆ predict_by_explicit_step()

bool oomph::TimeStepper::predict_by_explicit_step ( ) const
inline

Flag: is adaptivity done by taking a separate step using an ExplicitTimeStepper object?

397  {
399  }

◆ predictor_storage_index()

unsigned oomph::TimeStepper::predictor_storage_index ( ) const
inline

Return the time-index in each Data where predicted values are stored if the timestepper is adaptive.

439  {
440  // Error if time stepper is non-adaptive (because then the index doesn't
441  // exist so using it would give a potentially difficult to find
442  // segault).
443 #ifdef PARANOID
444  if (Predictor_storage_index > 0)
445  {
447  }
448  else
449  {
450  std::string err = "Predictor storage index is negative, this probably";
451  err += " means it hasn't been set for this timestepper.";
452  throw OomphLibError(
454  }
455 #else
457 #endif
458  }
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286

References OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and oomph::Global_string_for_annotation::string().

◆ set_error_weights()

virtual void oomph::TimeStepper::set_error_weights ( )
inlinevirtual

Set the weights for the error computation, (currently empty – overwrite for specific scheme)

Reimplemented in oomph::TR, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, and oomph::IMRBase.

642 {}

Referenced by oomph::Problem::adaptive_unsteady_newton_solve(), and oomph::Problem::initialise_dt().

◆ set_predictor_pt()

void oomph::TimeStepper::set_predictor_pt ( ExplicitTimeStepper _pred_pt)
inline

Set the pointer to the explicit timestepper to use as a predictor in adaptivity if Predict_by_explicit_step is set.

411  {
412  Explicit_predictor_pt = _pred_pt;
413  }

Referenced by oomph::Factories::time_stepper_factory().

◆ set_predictor_weights()

virtual void oomph::TimeStepper::set_predictor_weights ( )
inlinevirtual

Set the weights for the predictor previous timestep (currently empty – overwrite for specific scheme)

Reimplemented in oomph::TR, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, and oomph::IMRBase.

630 {}

Referenced by oomph::Problem::adaptive_unsteady_newton_solve().

◆ set_weights()

◆ shift_time_positions()

virtual void oomph::TimeStepper::shift_time_positions ( Node *const &  node_pt)
pure virtual

◆ shift_time_values()

virtual void oomph::TimeStepper::shift_time_values ( Data *const &  data_pt)
pure virtual

◆ temporal_error_in_position()

virtual double oomph::TimeStepper::temporal_error_in_position ( Node *const &  node_pt,
const unsigned i 
)
inlinevirtual

Compute the error in the position i at a node zero here – overwrite for specific scheme.

Reimplemented in oomph::TR, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, and oomph::IMRBase.

648  {
649  return 0.0;
650  }

◆ temporal_error_in_value()

virtual double oomph::TimeStepper::temporal_error_in_value ( Data *const &  data_pt,
const unsigned i 
)
inlinevirtual

Compute the error in the value i in a Data structure zero here – overwrite for specific scheme.

Reimplemented in oomph::TR, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, oomph::BDF< NSTEPS >, oomph::BDF< 2 >, and oomph::IMRBase.

656  {
657  return 0.0;
658  }

◆ time() [1/2]

◆ time() [2/2]

double oomph::TimeStepper::time ( ) const
inline

Return current value of continous time.

339  {
340 #ifdef PARANOID
341  if (Time_pt == 0)
342  {
343  std::string error_msg = "Time pointer is null!";
344  throw OomphLibError(
346  }
347 #endif
348  return Time_pt->time();
349  }

References OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::Global_string_for_annotation::string(), and Flag_definition::Time_pt.

◆ time_derivative() [1/4]

double oomph::TimeStepper::time_derivative ( const unsigned i,
Data *const &  data_pt,
const unsigned j 
)
inline

Evaluate i-th derivative of j-th value in Data.

521  {
522  double deriv = 0.0;
523  unsigned n_tstorage = ntstorage();
524  // Loop over all history data and add the appropriate contribution
525  // to the derivative
526  for (unsigned t = 0; t < n_tstorage; t++)
527  {
528  deriv += Weight(i, t) * data_pt->value(t, j);
529  }
530  return deriv;
531  }

References i, j, plotPSD::t, oomph::Data::value(), and ProblemParameters::Weight.

◆ time_derivative() [2/4]

void oomph::TimeStepper::time_derivative ( const unsigned i,
Data *const &  data_pt,
Vector< double > &  deriv 
)
inline

Evaluate i-th derivative of all values in Data and return in Vector deriv[].

505  {
506  // Number of values stored in the Data object
507  unsigned nvalue = data_pt->nvalue();
508  deriv.assign(nvalue, 0.0);
509 
510  // Loop over all values
511  for (unsigned j = 0; j < nvalue; j++)
512  {
513  deriv[j] = time_derivative(i, data_pt, j);
514  }
515  }

References i, j, and oomph::Data::nvalue().

Referenced by oomph::ImmersedRigidBodyElement::dposition_dt(), oomph::IMRODEElement::fill_in_contribution_to_residuals(), oomph::ODEElement::fill_in_contribution_to_residuals(), oomph::ImmersedRigidBodyElement::get_residuals_rigid_body_generic(), oomph::ImmersedRigidBodyElement::output_centre_of_gravity(), and oomph::SelfStartingBDF2::shift_time_values().

◆ time_derivative() [3/4]

double oomph::TimeStepper::time_derivative ( const unsigned i,
Node *const &  node_pt,
const unsigned j 
)
inline

Evaluate i-th derivative of j-th value in Node. Note the use of the node's value() function so that hanging nodes are taken into account (this is why the functions for Data and Node cannot be combined through simple polymorphism: value is not virtual).

558  {
559  double deriv = 0.0;
560  unsigned n_tstorage = ntstorage();
561  // Loop over all history data and add the appropriate contribution
562  // to the derivative
563  for (unsigned t = 0; t < n_tstorage; t++)
564  {
565  deriv += weight(i, t) * node_pt->value(t, j);
566  }
567  return deriv;
568  }

References i, j, plotPSD::t, and oomph::Node::value().

◆ time_derivative() [4/4]

void oomph::TimeStepper::time_derivative ( const unsigned i,
Node *const &  node_pt,
Vector< double > &  deriv 
)
inline

Evaluate i-th derivative of all values in Node and return in Vector deriv[] (this can't be simply combined with time_derivative(.., Data, ...) because of differences with haning nodes).

539  {
540  // Number of values stored in the Data object
541  unsigned nvalue = node_pt->nvalue();
542  deriv.assign(nvalue, 0.0);
543 
544  // Loop over all values
545  for (unsigned j = 0; j < nvalue; j++)
546  {
547  deriv[j] = time_derivative(i, node_pt, j);
548  }
549  }

References i, j, and oomph::Data::nvalue().

◆ time_pt() [1/2]

Time*& oomph::TimeStepper::time_pt ( )
inline

Access function for the pointer to time (can't have a paranoid test for null pointers because this is used as a set function).

589  {
590  return Time_pt;
591  }

References Flag_definition::Time_pt.

◆ time_pt() [2/2]

Time* const& oomph::TimeStepper::time_pt ( ) const
inline

Access function for the pointer to time (const version)

573  {
574 #ifdef PARANOID
575  if (Time_pt == 0)
576  {
577  std::string error_msg(
578  "Time_pt is null, probably because it is a steady time stepper.");
579  throw OomphLibError(
581  }
582 #endif
583  return Time_pt;
584  }

References OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::Global_string_for_annotation::string(), and Flag_definition::Time_pt.

Referenced by AxisymOscillatingDisk::accel(), oomph::PseudoBucklingRing::accel(), oomph::IMRByBDF::actions_before_timestep(), oomph::Problem::add_time_stepper_pt(), oomph::LinearElasticityEquationsBase< DIM >::body_force(), oomph::TimeHarmonicLinearElasticityEquationsBase< DIM >::body_force(), oomph::PVDEquationsBase< DIM >::body_force(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::extrapolated_strain_rate(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::extrapolated_strain_rate(), oomph::AxisymmetricLinearElasticityEquations::fill_in_generic_contribution_to_residuals_axisymmetric_linear_elasticity(), oomph::AxisymmetricPoroelasticityEquations::fill_in_generic_residual_contribution(), oomph::AxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::LinearisedAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_linearised_axi_nst(), oomph::RefineableLinearisedAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_linearised_axi_nst(), oomph::RefineableSphericalNavierStokesEquations::fill_in_generic_residual_contribution_spherical_nst(), oomph::SphericalNavierStokesEquations::fill_in_generic_residual_contribution_spherical_nst(), oomph::AxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::AdvectionDiffusionReactionEquations< NREAGENT, DIM >::get_wind_adv_diff_react(), oomph::UnsteadyHeatBaseFaceElement< ELEMENT >::output(), oomph::UnsteadyHeatFluxPseudoMeltElement< ELEMENT >::output(), oomph::AxisymmetricLinearElasticityTractionElement< ELEMENT >::output(), oomph::AxisymmetricNavierStokesTractionElement< ELEMENT >::output(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::output(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::output(), oomph::SolarRadiationBase::output_atmospheric_radiation(), oomph::SurfaceMeltElement< ELEMENT >::output_melt(), oomph::StefanBoltzmannUnsteadyHeatFluxElement< ELEMENT >::output_stefan_boltzmann_radiation(), AxisymOscillatingDisk::position(), oomph::PseudoBucklingRing::position(), oomph::AxisymmetricNavierStokesTractionElement< ELEMENT >::scalar_value_paraview(), oomph::SolidICProblem::set_newmark_initial_condition_consistently(), oomph::SolidICProblem::set_newmark_initial_condition_directly(), oomph::SolidICProblem::set_static_initial_condition(), oomph::TR::shift_time_values(), oomph::IMRODEElement::time_interpolate_time(), oomph::TemplateFreeContactElementBase::traction_fct(), AxisymOscillatingDisk::veloc(), and oomph::PseudoBucklingRing::veloc().

◆ type()

◆ undo_make_steady()

virtual void oomph::TimeStepper::undo_make_steady ( )
inlinevirtual

Reset the is_steady status of a specific TimeStepper to its default and re-assign the weights.

Reimplemented in oomph::ContinuationStorageScheme, and oomph::SelfStartingBDF2.

483  {
484  Is_steady = false;
485  set_weights();
486  }
virtual void set_weights()=0

Referenced by oomph::Problem::arc_length_step_solve_helper(), oomph::Problem::get_dvaluesdt(), oomph::Problem::solve_eigenproblem(), oomph::Problem::steady_newton_solve(), and oomph::SegregatableFSIProblem::steady_segregated_solve().

◆ update_predicted_time()

void oomph::TimeStepper::update_predicted_time ( const double new_time)
inline

Set the time that the current predictions apply for, only needed for paranoid checks when doing Predict_by_explicit_step.

418  {
419  Predicted_time = new_time;
420  }

Referenced by oomph::Problem::calculate_predictions().

◆ weight()

virtual double oomph::TimeStepper::weight ( const unsigned i,
const unsigned j 
) const
inlinevirtual

Access function for j-th weight for the i-th derivative.

Reimplemented in oomph::Steady< NSTEPS >, oomph::Steady< 0 >, and oomph::Steady< 2 >.

595  {
596  return Weight(i, j);
597  }

References i, j, and ProblemParameters::Weight.

Referenced by oomph::SpineAxisymmetricMarangoniSurfactantFluidInterfaceElement< ELEMENT >::add_additional_residual_contributions_interface(), oomph::SurfactantTransportInterfaceElement::add_additional_residual_contributions_interface(), oomph::AxisymmetricPoroelasticityEquations::d2u_dt2(), oomph::PoroelasticityEquations< DIM >::d2u_dt2(), oomph::AxisymmetricLinearElasticityEquationsBase::d2u_dt2_axisymmetric_linear_elasticity(), oomph::LinearWaveEquations< DIM >::d2u_dt2_lin_wave(), oomph::LinearElasticityEquationsBase< DIM >::d2u_dt2_linear_elasticity(), ElasticAxisymmetricSolubleSurfactantTransportInterfaceElement< ELEMENT >::dc_bulk_dt_surface(), oomph::AdvectionDiffusionReactionEquations< NREAGENT, DIM >::dc_dt_adv_diff_react(), oomph::SpineAxisymmetricMarangoniSurfactantFluidInterfaceElement< ELEMENT >::dcdt_surface(), oomph::SpineLineMarangoniSurfactantFluidInterfaceElement< ELEMENT >::dcdt_surface(), oomph::SurfactantTransportInterfaceElement::dcdt_surface(), SSPorousChannelEquations::df_dt(), oomph::PerturbedSpineLinearisedAxisymmetricFluidInterfaceElement< ELEMENT >::dH_dt(), oomph::LinearisedAxisymmetricNavierStokesEquations::dnodal_position_perturbation_dt_lin_axi_nst(), oomph::Node::dposition_dt(), oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >::dposition_dt(), oomph::Node::dposition_gen_dt(), oomph::AxisymmetricPoroelasticityEquations::dq_edge_dt(), oomph::PoroelasticityEquations< DIM >::dq_edge_dt(), oomph::AxisymmetricPoroelasticityEquations::dq_internal_dt(), oomph::PoroelasticityEquations< DIM >::dq_internal_dt(), SpineGravityTractionElement< ELEMENT >::du_dt(), oomph::AxisymmetricPoroelasticityEquations::du_dt(), oomph::PoroelasticityEquations< DIM >::du_dt(), oomph::AdvectionDiffusionEquations< DIM >::du_dt_adv_diff(), oomph::AxisymAdvectionDiffusionEquations::du_dt_axi_adv_diff(), oomph::AxisymmetricNavierStokesEquations::du_dt_axi_nst(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::du_dt_axi_nst(), oomph::AxisymmetricLinearElasticityEquationsBase::du_dt_axisymmetric_linear_elasticity(), oomph::GeneralisedAdvectionDiffusionEquations< DIM >::du_dt_cons_adv_diff(), oomph::du_dt_cons_axisym_adv_diff(), oomph::FluxTransportEquations< DIM >::du_dt_flux_transport(), oomph::LinearisedAxisymmetricNavierStokesEquations::du_dt_lin_axi_nst(), oomph::LinearWaveEquations< DIM >::du_dt_lin_wave(), oomph::LinearisedAxisymmetricNavierStokesEquations::du_dt_linearised_axi_nst(), oomph::LinearisedNavierStokesEquations::du_dt_linearised_nst(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::du_dt_nst(), oomph::NavierStokesEquations< DIM >::du_dt_nst(), oomph::PolarNavierStokesEquations::du_dt_pnst(), oomph::SphericalAdvectionDiffusionEquations::du_dt_spherical_adv_diff(), oomph::SphericalNavierStokesEquations::du_dt_spherical_nst(), oomph::UnsteadyHeatEquations< DIM >::du_dt_ust_heat(), oomph::WomersleyEquations< DIM >::du_dt_womersley(), oomph::Node::dx_dt(), oomph::Node::dx_gen_dt(), oomph::LinearisedAxisymmetricFluidInterfaceElement::dXhat_dt(), oomph::IMRODEElement::fill_in_contribution_to_jacobian(), oomph::ODEElement::fill_in_contribution_to_jacobian(), oomph::AxisymmetricLinearElasticityEquations::fill_in_generic_contribution_to_residuals_axisymmetric_linear_elasticity(), oomph::RefineableQDPVDElement< DIM, NNODE_1D >::fill_in_generic_contribution_to_residuals_pvd(), oomph::AxisymmetricNavierStokesEquations::fill_in_generic_dresidual_contribution_axi_nst(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_dresidual_contribution_axi_nst(), oomph::AxisymmetricPoroelasticityEquations::fill_in_generic_residual_contribution(), oomph::AxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_axi_adv_diff(), oomph::RefineableAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_axi_adv_diff(), oomph::AxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_cons_axisym_adv_diff(), oomph::LinearisedAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_lin_axi_nst(), oomph::LinearisedAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_linearised_axi_nst(), oomph::RefineableLinearisedAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_linearised_axi_nst(), oomph::RefineableSphericalAdvectionDiffusionEquations::fill_in_generic_residual_contribution_spherical_adv_diff(), oomph::SphericalAdvectionDiffusionEquations::fill_in_generic_residual_contribution_spherical_adv_diff(), oomph::RefineableSphericalNavierStokesEquations::fill_in_generic_residual_contribution_spherical_nst(), oomph::SphericalNavierStokesEquations::fill_in_generic_residual_contribution_spherical_nst(), oomph::SolidFiniteElement::fill_in_jacobian_for_newmark_accel(), oomph::AxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::ImmersedRigidBodyElement::get_residuals_rigid_body_generic(), oomph::IMRODEElement::time_interpolate_time(), and oomph::IMRODEElement::time_interpolate_u().

◆ weights_pt()

const DenseMatrix<double>* oomph::TimeStepper::weights_pt ( ) const
inline

Get a (const) pointer to the weights.

476  {
477  return &Weight;
478  }

References ProblemParameters::Weight.

Member Data Documentation

◆ Adaptive_Flag

bool oomph::TimeStepper::Adaptive_Flag
protected

Boolean variable to indicate whether the timestepping scheme can be adaptive

Referenced by oomph::IMRBase::IMRBase(), oomph::SelfStartingBDF2::SelfStartingBDF2(), and oomph::TR::TR().

◆ Explicit_predictor_pt

ExplicitTimeStepper* oomph::TimeStepper::Explicit_predictor_pt
protected

Pointer to explicit time stepper to use as predictor if Predict_by_explicit_step is set. ??ds merge the two? predict by explicit if pointer is set?

Referenced by ~TimeStepper().

◆ Is_steady

bool oomph::TimeStepper::Is_steady
protected

Bool to indicate if the timestepper is steady, i.e. its time-derivatives evaluate to zero. This status may be achieved temporarily by calling make_steady(). It can be reset to the appropriate default by the function undo_make_steady().

Referenced by oomph::ContinuationStorageScheme::ContinuationStorageScheme(), oomph::IMRBase::IMRBase(), oomph::SelfStartingBDF2::undo_make_steady(), and oomph::ContinuationStorageScheme::undo_make_steady().

◆ Predict_by_explicit_step

bool oomph::TimeStepper::Predict_by_explicit_step
protected

Flag: is adaptivity done by taking a separate step using an ExplicitTimeStepper object?

Referenced by oomph::IMRBase::IMRBase().

◆ Predicted_time

double oomph::TimeStepper::Predicted_time
protected

Store the time that the predicted values currently stored are at, to compare for paranoid checks.

◆ Predictor_storage_index

int oomph::TimeStepper::Predictor_storage_index
protected

The time-index in each Data object where predicted values are stored. -1 if not set.

Referenced by oomph::IMRBase::IMRBase(), and oomph::IMRBase::temporal_error_in_value().

◆ Shut_up_in_assign_initial_data_values

bool oomph::TimeStepper::Shut_up_in_assign_initial_data_values
protected

Boolean to indicate if the timestepper will output warnings when setting possibly an incorrect number of initial data values from function pointers

◆ Time_pt

◆ Type

std::string oomph::TimeStepper::Type
protected

◆ Weight


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