![]() |
|
#include <trapezoid_rule.h>
Inheritance diagram for oomph::TR:Public Member Functions | |
| TR (const bool &adaptive=false) | |
| virtual | ~TR () |
| Virtual destructor. More... | |
| unsigned | order () const |
| Return the actual order of the scheme. More... | |
| void | set_weights () |
| Set the weights. More... | |
| void | set_error_weights () |
| void | set_predictor_weights () |
| Function to set the predictor weights. More... | |
| unsigned | nprev_values () const |
| Number of previous values available. More... | |
| unsigned | derivative_index (const unsigned &t) const |
| Location in data of derivatives. More... | |
| unsigned | predicted_value_index () const |
| Location of predicted value. More... | |
| unsigned | ndt () const |
| Number of timestep increments that need to be stored by the scheme. More... | |
| void | assign_initial_values_impulsive (Data *const &data_pt) |
| void | assign_initial_positions_impulsive (Node *const &node_pt) |
| void | actions_after_timestep (Problem *problem_pt) |
| void | actions_before_timestep (Problem *problem_pt) |
| void | setup_initial_derivative (Problem *problem_pt) |
| void | shift_time_values (Data *const &data_pt) |
| void | shift_time_positions (Node *const &node_pt) |
| void | calculate_predicted_positions (Node *const &node_pt) |
| Function to calculate predicted positions at a node. More... | |
| void | calculate_predicted_values (Data *const &data_pt) |
| Function to calculate predicted data values in a Data object. More... | |
| double | temporal_error_in_position (Node *const &node_pt, const unsigned &i) |
| Compute the error in the position i at a node. More... | |
| double | temporal_error_in_value (Data *const &data_pt, const unsigned &i) |
| Compute the error in the value i in a Data structure. More... | |
Public Member Functions inherited from oomph::TimeStepper | |
| 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... | |
| double & | time () |
| Return current value of continous time. More... | |
| double | time () const |
| Return current value of continous time. More... | |
| virtual unsigned | nprev_values_for_value_at_evaluation_time () const |
| void | make_steady () |
| bool | is_steady () const |
| bool | predict_by_explicit_step () const |
| ExplicitTimeStepper * | explicit_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 |
| bool | adaptive_flag () const |
| Function to indicate whether the scheme is adaptive (false by default) More... | |
Public Attributes | |
| bool | Initial_derivative_set |
| bool | Shift_f |
Private Member Functions | |
| TR (const TR &dummy)=delete | |
| Broken copy constructor. More... | |
| void | operator= (const TR &dummy)=delete |
| Broken assignment operator. More... | |
Private Attributes | |
| Vector< double > | Predictor_weight |
| Private data for the predictor weights. More... | |
| double | Error_weight |
| Private data for the error weight. More... | |
Additional Inherited Members | |
Protected Attributes inherited from oomph::TimeStepper | |
| Time * | Time_pt |
| Pointer to discrete time storage scheme. More... | |
| DenseMatrix< double > | Weight |
| 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 |
| ExplicitTimeStepper * | Explicit_predictor_pt |
| double | Predicted_time |
| int | Predictor_storage_index |
Trapezoid rule time stepping scheme.
This method requires a value of dy/dt at the initial time. The implementation of this calculation is exactly the same as is used for explicit time stepping.
The function setup_initial_derivative(Problem* problem_pt) should be called after the initial conditions have been set, but before beginning time stepping, to compute this initial value of dy/dt.
Warning: moving nodes not implemented (I have no test case).
|
inline |
Constructor, storage for two history derivatives (one for TR and one for the predictor step), one history value, present value and predicted value.
References Global_Physical_Variables::adaptive, oomph::TimeStepper::Adaptive_Flag, Error_weight, Initial_derivative_set, Predictor_weight, Shift_f, and oomph::TimeStepper::Weight.
|
privatedelete |
Broken copy constructor.
|
inlinevirtual |
Interface for any actions that need to be performed after a time step.
Reimplemented from oomph::TimeStepper.
References Shift_f.
|
inlinevirtual |
Interface for any actions that need to be performed before a time step.
Reimplemented from oomph::TimeStepper.
References Initial_derivative_set, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and oomph::Global_string_for_annotation::string().
|
inlinevirtual |
Initialise the time-history for the nodal positions corresponding to an impulsive start.
Implements oomph::TimeStepper.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
inlinevirtual |
Initialise the time-history for the Data values, corresponding to an impulsive start.
Implements oomph::TimeStepper.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
inlinevirtual |
Function to calculate predicted positions at a node.
Reimplemented from oomph::TimeStepper.
References i, j, oomph::Node::ndim(), oomph::Node::position_is_a_copy(), predicted_value_index(), Predictor_weight, and oomph::Node::x().
|
inlinevirtual |
Function to calculate predicted data values in a Data object.
Reimplemented from oomph::TimeStepper.
References i, oomph::Data::is_a_copy(), j, oomph::Data::nvalue(), predicted_value_index(), Predictor_weight, oomph::Data::set_value(), and oomph::Data::value().
Location in data of derivatives.
References OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::Global_string_for_annotation::string(), and plotPSD::t.
Referenced by predicted_value_index(), set_predictor_weights(), set_weights(), setup_initial_derivative(), and shift_time_values().
|
inlinevirtual |
Number of timestep increments that need to be stored by the scheme.
Implements oomph::TimeStepper.
|
inlinevirtual |
|
privatedelete |
Broken assignment operator.
|
inlinevirtual |
Return the actual order of the scheme.
Reimplemented from oomph::TimeStepper.
|
inline |
Location of predicted value.
References derivative_index().
Referenced by calculate_predicted_positions(), calculate_predicted_values(), temporal_error_in_position(), and temporal_error_in_value().
|
inlinevirtual |
Set the weights for the error computation, (currently empty – overwrite for specific scheme)
Reimplemented from oomph::TimeStepper.
References oomph::Time::dt(), Error_weight, and oomph::TimeStepper::Time_pt.
|
inlinevirtual |
Function to set the predictor weights.
Reimplemented from oomph::TimeStepper.
References derivative_index(), oomph::Time::dt(), Predictor_weight, and oomph::TimeStepper::Time_pt.
|
inlinevirtual |
Set the weights.
Implements oomph::TimeStepper.
References derivative_index(), oomph::Time::dt(), oomph::TimeStepper::Time_pt, and oomph::TimeStepper::Weight.
|
inline |
|
inlinevirtual |
This function advances the time history of the positions at a node.
Implements oomph::TimeStepper.
|
inlinevirtual |
This function updates the Data's time history so that we can advance to the next timestep.
Implements oomph::TimeStepper.
References derivative_index(), oomph::Time::dt(), oomph::Data::is_a_copy(), j, oomph::Data::nvalue(), oomph::Data::set_value(), Shift_f, oomph::TimeStepper::time_pt(), and oomph::Data::value().
|
inlinevirtual |
Compute the error in the position i at a node.
Reimplemented from oomph::TimeStepper.
References Error_weight, i, predicted_value_index(), and oomph::Node::x().
|
inlinevirtual |
Compute the error in the value i in a Data structure.
Reimplemented from oomph::TimeStepper.
References Error_weight, i, predicted_value_index(), and oomph::Data::value().
|
private |
Private data for the error weight.
Referenced by set_error_weights(), temporal_error_in_position(), temporal_error_in_value(), and TR().
| bool oomph::TR::Initial_derivative_set |
Referenced by actions_before_timestep(), setup_initial_derivative(), and TR().
Private data for the predictor weights.
Referenced by calculate_predicted_positions(), calculate_predicted_values(), set_predictor_weights(), and TR().
| bool oomph::TR::Shift_f |
Referenced by actions_after_timestep(), setup_initial_derivative(), shift_time_values(), and TR().