|
| ContinuationStorageScheme () |
|
| ContinuationStorageScheme (const ContinuationStorageScheme &)=delete |
| Broken copy constructor. More...
|
|
void | modify_storage (GeneralisedTimeStepper *const &time_stepper_pt) |
| Modify the scheme based on the underlying timestepper. More...
|
|
void | operator= (const ContinuationStorageScheme &)=delete |
| Broken assignment operator. More...
|
|
unsigned | order () const |
|
void | undo_make_steady () |
| This is a steady scheme, so you can't do this. More...
|
|
void | assign_initial_values_impulsive (Data *const &data_pt) |
|
void | assign_initial_positions_impulsive (Node *const &node_pt) |
|
void | shift_time_values (Data *const &data_pt) |
| Broken shifting of time values. More...
|
|
void | shift_time_positions (Node *const &node_pt) |
| Broken shifting of time positions. More...
|
|
void | set_weights () |
| Set the weights (Do nothing) More...
|
|
unsigned | nprev_values () const |
| Number of previous values available. More...
|
|
unsigned | ndt () const |
| Number of timestep increments that need to be stored by the scheme. More...
|
|
void | set_consistent_pinned_values (Data *const &data_pt) |
|
void | set_consistent_pinned_positions (Node *const &node_pt) |
|
unsigned | dof_derivative_offset () |
|
unsigned | dof_current_offset () |
|
unsigned | ndof_storage_entries () const |
| Return the number of entries that correspond to dof storage. More...
|
|
| 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...
|
|
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...
|
|
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) |
|
GeneralisedTimestepper used to store the arclength derivatives and pervious solutions required in continuation problems. The data is stored as auxilliary data in the (fake) TimeStepper so that spatial adaptivity will be handled automatically through our standard mechanisms. The adopted storage scheme is that the continuation derivatives will be stored at the first auxilliary value and the previous value will be the second auixilliary value
void oomph::ContinuationStorageScheme::set_consistent_pinned_positions |
( |
Node *const & |
node_pt | ) |
|
|
inline |
Set consistent values of the derivatives and current value when the Nodes position is pinned. This must be done by the "timestepper" because only it knows the local storage scheme
264 if (SolidNode*
const solid_node_pt =
dynamic_cast<SolidNode*
>(node_pt))
269 if (
this != node_pt->position_time_stepper_pt())
271 std::ostringstream error_stream;
273 <<
"Node object " << node_pt <<
" has position timestepper of type "
274 <<
typeid(node_pt->position_time_stepper_pt()).
name() <<
"\n"
275 <<
"Please set the Node's position timestepper to be a "
276 <<
"ContinuationStorageScheme before calling this function\n";
277 throw OomphLibError(error_stream.str(),
284 const unsigned n_dim = solid_node_pt->ndim();
286 const unsigned n_position_type = solid_node_pt->nposition_type();
289 for (
unsigned i = 0;
i < n_dim;
i++)
292 if (solid_node_pt->position_is_a_copy(
i) ==
false)
295 for (
unsigned k = 0;
k < n_position_type;
k++)
298 if (solid_node_pt->position_is_pinned(
k,
i))
306 solid_node_pt->x_gen(
t,
k,
i);
int i
Definition: BiCGSTAB_step_by_step.cpp:9
char char char int int * k
Definition: level2_impl.h:374
string name
Definition: plotDoE.py:33
t
Definition: plotPSD.py:36
References Dof_current_offset, Dof_derivative_offset, i, k, plotDoE::name, oomph::GeneralisedTimeStepper::Ndof_storage_entries, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::Node::position_time_stepper_pt(), and plotPSD::t.
Referenced by oomph::Mesh::set_consistent_pinned_values_for_continuation().
void oomph::ContinuationStorageScheme::set_consistent_pinned_values |
( |
Data *const & |
data_pt | ) |
|
|
inline |
Set consistent values of the derivatives and current value when the data is pinned. This must be done by the "timestepper" because only it knows the local storage scheme
226 if (
this != data_pt->time_stepper_pt())
228 std::ostringstream error_stream;
230 <<
"Data object " << data_pt <<
" has timestepper of type "
231 <<
typeid(data_pt->time_stepper_pt()).
name() <<
"\n"
232 <<
"Please set the data's timestepper to be a "
233 <<
"ContinuationStorageScheme before calling this function\n";
240 const unsigned n_value = data_pt->nvalue();
241 for (
unsigned i = 0;
i < n_value; ++
i)
244 if (data_pt->is_pinned(
i) && (data_pt->is_a_copy(
i) ==
false))
References Dof_current_offset, Dof_derivative_offset, i, oomph::Data::is_a_copy(), oomph::Data::is_pinned(), plotDoE::name, oomph::GeneralisedTimeStepper::Ndof_storage_entries, oomph::Data::nvalue(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::Data::set_value(), plotPSD::t, oomph::Data::time_stepper_pt(), and oomph::Data::value().
Referenced by oomph::SpineMesh::set_consistent_pinned_spine_values_for_continuation(), oomph::Problem::set_consistent_pinned_values_for_continuation(), and oomph::Mesh::set_consistent_pinned_values_for_continuation().