Generalised timestepper that can serve a variety of purposes in continuation, bifurcation detection and periodic-orbit computations. The key generalisation is that more than one of the entries is actually a degree of freedom in the problem. These are distinct from our standard (implict) Timesteppers in which the only dof is the current value (first entry in the storage scheme). These objects will typically be used to replace exisiting timesteppers for specific tasks.
More...
|
unsigned | ndof_storage_entries () const |
| Return the number of entries that correspond to dof storage. More...
|
|
| TimeStepper (const unsigned &tstorage, const unsigned &max_deriv) |
| Constructor. Pass the amount of storage required by timestepper (present value + history values) and the order of highest time-derivative. More...
|
|
| 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...
|
|
double & | time () |
| 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 |
| 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. More...
|
|
virtual unsigned | nprev_values () const =0 |
| Number of previous values available: 0 for static, 1 for BDF<1>,... More...
|
|
virtual void | set_weights ()=0 |
| Function to set the weights for present timestep (don't need to pass present timestep or previous timesteps as they are available via Time_pt) More...
|
|
void | make_steady () |
| Function to make the time stepper temporarily steady. This is trivially achieved by setting all the weights to zero. More...
|
|
bool | is_steady () const |
| Flag to indicate if a timestepper has been made steady (possibly temporarily to switch off time-dependence) More...
|
|
bool | predict_by_explicit_step () const |
| Flag: is adaptivity done by taking a separate step using an ExplicitTimeStepper object? More...
|
|
ExplicitTimeStepper * | explicit_predictor_pt () |
| Get the pointer to the explicit timestepper to use as a predictor in adaptivity if Predict_by_explicit_step is set. More...
|
|
void | set_predictor_pt (ExplicitTimeStepper *_pred_pt) |
| Set the pointer to the explicit timestepper to use as a predictor in adaptivity if Predict_by_explicit_step is set. More...
|
|
void | update_predicted_time (const double &new_time) |
| Set the time that the current predictions apply for, only needed for paranoid checks when doing Predict_by_explicit_step. More...
|
|
void | check_predicted_values_up_to_date () const |
| Check that the predicted values are the ones we want. More...
|
|
unsigned | predictor_storage_index () const |
| Return the time-index in each Data where predicted values are stored if the timestepper is adaptive. More...
|
|
void | enable_warning_in_assign_initial_data_values () |
| Enable the output of warnings due to possible fct pointer vector size mismatch in assign_initial_data_values (Default) More...
|
|
void | disable_warning_in_assign_initial_data_values () |
| Disable the output of warnings due to possible fct pointer vector size mismatch in assign_initial_data_values. More...
|
|
const DenseMatrix< double > * | weights_pt () const |
| Get a (const) pointer to the weights. More...
|
|
virtual void | undo_make_steady () |
| Reset the is_steady status of a specific TimeStepper to its default and re-assign the weights. More...
|
|
std::string | type () const |
| Return string that indicates the type of the timestepper (e.g. "BDF", "Newmark", etc.) More...
|
|
void | time_derivative (const unsigned &i, Data *const &data_pt, Vector< double > &deriv) |
| Evaluate i-th derivative of all values in Data and return in Vector deriv[]. More...
|
|
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) |
| 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). More...
|
|
double | time_derivative (const unsigned &i, Node *const &node_pt, const unsigned &j) |
| 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). More...
|
|
Time *const & | time_pt () const |
| Access function for the pointer to time (const version) More...
|
|
Time *& | time_pt () |
| Access function for the pointer to time (can't have a paranoid test for null pointers because this is used as a set function). More...
|
|
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 |
| Return the number of doubles required to represent history (one for steady) More...
|
|
virtual void | assign_initial_values_impulsive (Data *const &data_pt)=0 |
| Initialise the time-history for the Data values corresponding to an impulsive start. More...
|
|
virtual void | assign_initial_positions_impulsive (Node *const &node_pt)=0 |
| Initialiset the positions for the node corresponding to an impulsive start. More...
|
|
virtual void | shift_time_values (Data *const &data_pt)=0 |
| This function advances the Data's time history so that we can move on to the next timestep. More...
|
|
virtual void | shift_time_positions (Node *const &node_pt)=0 |
| This function advances the time history of the positions at a node. The default should be OK, but would need to be overloaded. More...
|
|
bool | adaptive_flag () const |
| Function to indicate whether the scheme is adaptive (false by default) More...
|
|
virtual void | set_predictor_weights () |
| Set the weights for the predictor previous timestep (currently empty – overwrite for specific scheme) More...
|
|
virtual void | calculate_predicted_values (Data *const &data_pt) |
| Do the predictor step for data stored in a Data object (currently empty – overwrite for specific scheme) More...
|
|
virtual void | calculate_predicted_positions (Node *const &node_pt) |
| Do the predictor step for the positions at a node (currently empty — overwrite for a specific scheme) More...
|
|
virtual void | set_error_weights () |
| Set the weights for the error computation, (currently empty – overwrite for specific scheme) More...
|
|
virtual double | temporal_error_in_position (Node *const &node_pt, const unsigned &i) |
| Compute the error in the position i at a node zero here – overwrite for specific scheme. More...
|
|
virtual double | temporal_error_in_value (Data *const &data_pt, const unsigned &i) |
| Compute the error in the value i in a Data structure zero here – overwrite for specific scheme. More...
|
|
virtual void | actions_before_timestep (Problem *problem_pt) |
| Interface for any actions that need to be performed before a time step. More...
|
|
virtual void | actions_after_timestep (Problem *problem_pt) |
| Interface for any actions that need to be performed after a time step. More...
|
|
Generalised timestepper that can serve a variety of purposes in continuation, bifurcation detection and periodic-orbit computations. The key generalisation is that more than one of the entries is actually a degree of freedom in the problem. These are distinct from our standard (implict) Timesteppers in which the only dof is the current value (first entry in the storage scheme). These objects will typically be used to replace exisiting timesteppers for specific tasks.
Definition at line 50 of file generalised_timesteppers.h.