Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Private Attributes | Friends | List of all members
oomph::Data Class Reference

A class that represents a collection of data; each Data object may contain many different individual values, as would be natural in non-scalar problems. Data provides storage for auxiliary `history' values that are used by TimeStepper objects to calculate the time derivatives of the stored data and also stores a pointer to the appropriate TimeStepper object. In addition, an associated (global) equation number is stored for each value. More...

#include <nodes.h>

+ Inheritance diagram for oomph::Data:

Public Member Functions

virtual void clear_copied_pointers ()
 Helper function that should be overloaded derived classes that contain copies of data. The function must unset (NULL out) the internal pointers to the copied data. This is used when destructing data to ensure that all pointers remain valid. The default implementation throws an error because Data cannot be a copy. More...
 
 Data ()
 Default: Just set pointer to (steady) timestepper. No storage for values is allocated. More...
 
 Data (const unsigned &initial_n_value)
 Default constructor for steady problems: assign memory for initial_n_value values. More...
 
 Data (TimeStepper *const &time_stepper_pt, const unsigned &initial_n_value, const bool &allocate_storage=true)
 Constructor for unsteady problems: assign memory for initial_n_value values and any memory required by the Timestepper for the storage of history values. More...
 
 Data (const Data &data)
 Broken copy constructor. More...
 
void operator= (const Data &)
 Broken assignment operator. More...
 
virtual ~Data ()
 Destructor, deallocates memory assigned for data. More...
 
void set_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data)
 Set a new timestepper by resizing the appropriate storage. If already assigned the equation numbering will not be altered. More...
 
TimeStepper *& time_stepper_pt ()
 Return the pointer to the timestepper. More...
 
TimeStepper *const & time_stepper_pt () const
 Return the pointer to the timestepper (const version). More...
 
virtual bool is_a_copy () const
 Return a boolean to indicate whether the Data objact contains any copied values. A base Data object can never be a copy so the default implementation always returns false. More...
 
virtual bool is_a_copy (const unsigned &i) const
 Return flag to indicate whether the i-th value is a copy. A base Data object can never be a copy so the default implementation always returns false. More...
 
void set_value (const unsigned &i, const double &value_)
 Set the i-th stored data value to specified value. The only reason that we require an explicit set function is because we redefine value() in the Node class to interpolate the values for nodes that are hanging and so we cannot return a reference to the value in this case. More...
 
void set_value (const unsigned &t, const unsigned &i, const double &value_)
 Set the t-th history value of the i-th stored data value to specified value. More...
 
double value (const unsigned &i) const
 Return i-th stored value. This function is not virtual so that it can be inlined. This means that if we have an explicit pointer to a Data object Data* data_pt->value() always returns the "raw" stored value. More...
 
double value (const unsigned &t, const unsigned &i) const
 Return i-th value at time level t (t=0: present, t>0: previous) This function is not virtual so that it can be inlined. This means that if we have an explicit pointer to a Data object Data* data_pt->value() always returns to the "raw" stored value. More...
 
void value (Vector< double > &values) const
 Compute Vector of values for the Data value. More...
 
void value (const unsigned &t, Vector< double > &values) const
 Compute Vector of values (dofs or pinned) in this data at time level t (t=0: present; t>0: previous). More...
 
double * value_pt (const unsigned &i) const
 Return the pointer to the i-the stored value. Typically this is required when direct access to the stored value is required, e.g. when writing functions that return a reference to a variable that is stored in a Data object. More...
 
double * value_pt (const unsigned &t, const unsigned &i) const
 Return the pointer to the i-th stored value, or any of its history values (const version). Typically this is required when direct access to the stored value is required, e.g. when writing functions that return a reference to a variable that is stored in a Data object. More...
 
bool does_pointer_correspond_to_value (double *const &parameter_pt)
 Check whether the pointer parameter_pt addresses internal data values. More...
 
void copy (Data *orig_data_pt)
 Copy Data values from specified Data object. More...
 
void dump (std::ostream &dump_file) const
 Dump the data object to a file. More...
 
void read (std::ifstream &restart_file)
 Read data object from a file. More...
 
long * eqn_number_pt (const unsigned &i)
 Return the pointer to the equation number of the i-th stored variable. More...
 
long & eqn_number (const unsigned &i)
 Return the equation number of the i-th stored variable. More...
 
long eqn_number (const unsigned &i) const
 Return the equation number of the i-th stored variable. More...
 
void pin (const unsigned &i)
 Pin the i-th stored variable. More...
 
void unpin (const unsigned &i)
 Unpin the i-th stored variable. More...
 
void pin_all ()
 Pin all the stored variables. More...
 
void unpin_all ()
 Unpin all the stored variables. More...
 
bool is_pinned (const unsigned &i) const
 Test whether the i-th variable is pinned (1: true; 0: false). More...
 
bool is_segregated_solve_pinned (const unsigned &i)
 Test whether the i-th variable is temporaily pinned for a segregated solve. More...
 
void constrain (const unsigned &i)
 Constrain the i-th stored variable when making hanging data If the data is already pinned leave it along, otherwise mark as constrained (hanging) More...
 
void unconstrain (const unsigned &i)
 Unconstrain the i-th stored variable when make the data nonhanging. Only unconstrain if it was actually constrained (hanging) More...
 
void constrain_all ()
 Constrain all the stored variables when the data is made hanging. More...
 
void unconstrain_all ()
 Unconstrain all the stored variables when the data is made nonhanging. More...
 
bool is_constrained (const unsigned &i)
 Test whether the i-th variable is constrained (1: true; 0: false). More...
 
unsigned self_test ()
 Self-test: Have all values been classified as pinned/unpinned? Return 0 if OK. More...
 
unsigned nvalue () const
 Return number of values stored in data object (incl pinned ones). More...
 
unsigned ntstorage () const
 Return total number of doubles stored per value to record time history of each value (one for steady problems). More...
 
virtual void assign_eqn_numbers (unsigned long &global_ndof, Vector< double * > &dof_pt)
 Assign global equation numbers; increment global number of unknowns, global_ndof; and add any new dofs to the dof_pt. More...
 
virtual void describe_dofs (std::ostream &out, const std::string &current_string) const
 Function to describe the dofs of the Node. The ostream specifies the output stream to which the description is written; the string stores the currently assembled output that is ultimately written to the output stream by Data::describe_dofs(...); it is typically built up incrementally as we descend through the call hierarchy of this function when called from Problem::describe_dofs(...) More...
 
virtual void resize (const unsigned &n_value)
 Change (increase) the number of values that may be stored. More...
 
virtual void add_value_pt_to_map (std::map< unsigned, double * > &map_of_value_pt)
 Add pointers to all unpinned and unconstrained data to a map indexed by (global) equation number. More...
 
void set_halo (const unsigned &non_halo_proc_ID)
 Label the node as halo and specify processor that holds non-halo counterpart. More...
 
void set_nonhalo ()
 Label the node as not being a halo. More...
 
bool is_halo () const
 Is this Data a halo? More...
 
int non_halo_proc_ID ()
 ID of processor ID that holds non-halo counterpart of halo node; negative if not a halo. More...
 
virtual void add_values_to_vector (Vector< double > &vector_of_values)
 Add all data and time history values to the vector in the internal storage order. More...
 
virtual void read_values_from_vector (const Vector< double > &vector_of_values, unsigned &index)
 Read all data and time history values from the vector starting from index. On return the index will be set to the value at the end of the data that has been read in. More...
 
virtual void add_eqn_numbers_to_vector (Vector< long > &vector_of_eqn_numbers)
 Add all equation numbers to the vector in the internal storage order. More...
 
virtual void read_eqn_numbers_from_vector (const Vector< long > &vector_of_eqn_numbers, unsigned &index)
 Read all equation numbers from the vector starting from index. On return the index will be set to the value at the end of the data that has been read in. More...
 

Static Public Attributes

static long Is_pinned =-1
 Static "Magic number" used in place of the equation number to indicate that the value is pinned. More...
 
static long Is_segregated_solve_pinned =-3
 Static "Magic number" used in place of the equation number to indicate that the value is pinned, but only for the duration of a segregated solve. More...
 
static long Is_unclassified =-10
 Static "Magic number" used in place of the equation number to denote a value that hasn't been classified as pinned or free. More...
 
static long Is_constrained =-2
 Static "Magic number" used in place of the equation number to indicate that the value is constrained because it is associated with non-conforming element boundaries — a hanging node — (and is therefore pinned) More...
 

Protected Member Functions

virtual void reset_copied_pointers ()
 Helper function that should be overloaded in derived classes that can contain copies of Data. The function must reset the internal pointers to the copied data. This is used when resizing data to ensure that all the pointers remain valid. The default implementation throws an error beacause Data cannot be a copy. More...
 

Protected Attributes

Data ** Copy_of_data_pt
 C-style array of any Data objects that contain copies of the current Data object's data values. More...
 
unsigned Ncopies
 Number of Data that contain copies of this Data object's values. More...
 

Static Protected Attributes

static TimeStepperDefault_static_time_stepper_pt =new Steady<0>()
 Default (static) timestepper used in steady problems. More...
 

Private Member Functions

void range_check (const unsigned &t, const unsigned &i) const
 Check that the arguments are within the range of the stored data values and timesteps. More...
 
void delete_value_storage ()
 Delete all storage allocated by the Data object for values and equation numbers. More...
 
void add_copy (Data *const &data_pt)
 Add the pointer data_pt to the array Copy_of_data_pt. This should be used whenever copies are made of the data. More...
 
void remove_copy (Data *const &data_pt)
 Remove the pointer data_pt from the array Copy_of_data_pt. This should be used whenever copies of the data are deleted. More...
 

Private Attributes

double ** Value
 C-style array of pointers to data values and possible history values. The data must be ordered in such a way that Value[i][t] gives the i-th data value at the time value t. The ordering is chosen so that all the time levels of a particular value can be access from a single pointer to a double. This is required for copying/hijacking functionality. The data should be accessed by using the member functions value(time,ival) and set_value(time,ival,value), where time=0: present. More...
 
long * Eqn_number
 C-style array of pointers to the (global) equation numbers of the values. More...
 
TimeStepperTime_stepper_pt
 Pointer to a Timestepper. The inclusion of a Timestepper pointer in the Data class, ensures that time-derivatives can be calculated and storage can be managed at the low (Data) level. More...
 
unsigned Nvalue
 Number of values stored in the data object. More...
 
int Non_halo_proc_ID
 Non-halo processor ID for Data; -1 if it's not a halo. More...
 

Friends

class HijackedData
 
class CopiedData
 
class BoundaryNodeBase
 
template<class NODE_TYPE >
class BoundaryNode
 
class SolidNode
 
std::ostream & operator<< (std::ostream &out, const Data &d)
 

Detailed Description

A class that represents a collection of data; each Data object may contain many different individual values, as would be natural in non-scalar problems. Data provides storage for auxiliary `history' values that are used by TimeStepper objects to calculate the time derivatives of the stored data and also stores a pointer to the appropriate TimeStepper object. In addition, an associated (global) equation number is stored for each value.

The Data class permits copies of the stored data values and equation numbers into another Data object using the copy() function. Shallow (pointer based) copies of the values can be obtained by using specific derived classes. In such cases pointers to the objects that contain the pointer-based copies should be stored in the original Data class (in the array Copy_of_data_pt) so that resize and destruction operations can be performed safely.

Definition at line 89 of file nodes.h.

Constructor & Destructor Documentation

oomph::Data::Data ( )

Default: Just set pointer to (steady) timestepper. No storage for values is allocated.

Default constructor.

Default constructor for steady problems. Memory is assigned for a given number of values, which are assumed to be free (not pinned)

Definition at line 235 of file nodes.cc.

Referenced by oomph::SolidNode::SolidNode().

oomph::Data::Data ( const unsigned &  initial_n_value)

Default constructor for steady problems: assign memory for initial_n_value values.

oomph::Data::Data ( TimeStepper *const &  time_stepper_pt_,
const unsigned &  initial_n_value,
const bool &  allocate_storage = true 
)

Constructor for unsteady problems: assign memory for initial_n_value values and any memory required by the Timestepper for the storage of history values.

Constructor for unsteady problems. Memory is assigned for a given number of values; and the additional storage required by the Timestepper. The values are assumed to be free (not pinned).

Definition at line 290 of file nodes.cc.

References Eqn_number, i, Is_unclassified, ntstorage(), t, and Value.

oomph::Data::Data ( const Data data)
inline

Broken copy constructor.

Definition at line 228 of file nodes.h.

References oomph::BrokenCopy::broken_copy().

oomph::Data::~Data ( )
virtual

Destructor, deallocates memory assigned for data.

Virtual destructor, deallocates memory assigned for data.

Definition at line 454 of file nodes.cc.

References clear_copied_pointers(), Copy_of_data_pt, delete_value_storage(), i, and Ncopies.

Member Function Documentation

void oomph::Data::add_copy ( Data *const &  data_pt)
private

Add the pointer data_pt to the array Copy_of_data_pt. This should be used whenever copies are made of the data.

Add the pointer data_pt to the internal storage used to keep track of copies of the Data object.

Definition at line 84 of file nodes.cc.

References Copy_of_data_pt, i, and Ncopies.

Referenced by oomph::CopiedData::CopiedData(), and oomph::HijackedData::HijackedData().

void oomph::Data::add_eqn_numbers_to_vector ( Vector< long > &  vector_of_eqn_numbers)
virtual

Add all equation numbers to the vector in the internal storage order.

Add all equation numbers to the vector. The function is virtual so that it can be overloaded by SolidNodes to add the additional equation numbers associated with the solid dofs in those objects.

Reimplemented in oomph::SolidNode.

Definition at line 1181 of file nodes.cc.

References Eqn_number, eqn_number_pt(), i, and nvalue().

Referenced by oomph::SolidNode::add_eqn_numbers_to_vector(), and oomph::GeneralisedElement::add_internal_eqn_numbers_to_vector().

void oomph::Data::add_value_pt_to_map ( std::map< unsigned, double * > &  map_of_value_pt)
virtual

Add pointers to all unpinned and unconstrained data to a map indexed by (global) equation number.

Add pointers to all unpinned and unconstrained data to a map indexed by (global) equation number

Reimplemented in oomph::SolidNode.

Definition at line 1041 of file nodes.cc.

References eqn_number(), i, nvalue(), and value_pt().

Referenced by oomph::GeneralisedElement::add_internal_value_pt_to_map(), and oomph::SolidNode::add_value_pt_to_map().

void oomph::Data::add_values_to_vector ( Vector< double > &  vector_of_values)
virtual

Add all data and time history values to the vector in the internal storage order.

Add all data and time history values to a vector that will be used when communicating data between processors. The function is virtual so that it can be overloaded by Nodes and SolidNodes to add the additional data present in those objects.

Reimplemented in oomph::SolidNode, and oomph::Node.

Definition at line 1065 of file nodes.cc.

References i, ntstorage(), nvalue(), t, and Value.

Referenced by oomph::GeneralisedElement::add_internal_data_values_to_vector(), and oomph::Node::add_values_to_vector().

void oomph::Data::assign_eqn_numbers ( unsigned long &  global_number,
Vector< double * > &  dof_pt 
)
virtual

Assign global equation numbers; increment global number of unknowns, global_ndof; and add any new dofs to the dof_pt.

Assign (global) equation number. This function does NOT initialise the value because if we're using things like node position as variables in the problem they will have been set before the call to assign equation numbers and setting it to zero will wipe it out :(.

Pass:

  • current number of global dofs global_number (which gets incremented)
  • the Vector of pointers to global dofs (to which new dofs get added)

Reimplemented in oomph::SolidNode, oomph::Node, oomph::CopiedData, and oomph::HijackedData.

Definition at line 861 of file nodes.cc.

References Eqn_number, eqn_number(), i, is_constrained(), is_halo(), Is_pinned, is_pinned(), is_segregated_solve_pinned(), Nvalue, and value_pt().

Referenced by oomph::Node::assign_eqn_numbers(), oomph::SolidNode::assign_eqn_numbers(), oomph::BoundaryNode< NODE_TYPE >::assign_eqn_numbers(), and oomph::GeneralisedElement::assign_internal_eqn_numbers().

void oomph::Data::clear_copied_pointers ( )
virtual

Helper function that should be overloaded derived classes that contain copies of data. The function must unset (NULL out) the internal pointers to the copied data. This is used when destructing data to ensure that all pointers remain valid. The default implementation throws an error because Data cannot be a copy.

Helper function that should be overloaded classes that contain copies of data. The function must unset (NULL out) the internal pointers to the copied data. This is used when destructing data to ensure that all pointers remain valid.

Reimplemented in oomph::CopiedData, and oomph::HijackedData.

Definition at line 179 of file nodes.cc.

Referenced by ~Data().

void oomph::Data::constrain ( const unsigned &  i)
inline

Constrain the i-th stored variable when making hanging data If the data is already pinned leave it along, otherwise mark as constrained (hanging)

Definition at line 416 of file nodes.h.

References eqn_number(), Is_constrained, and Is_pinned.

Referenced by oomph::Node::assign_eqn_numbers(), constrain_all(), oomph::Node::resize(), and oomph::Node::set_hanging_pt().

void oomph::Data::constrain_all ( )
inline

Constrain all the stored variables when the data is made hanging.

Definition at line 425 of file nodes.h.

References constrain(), i, and Nvalue.

Referenced by oomph::SolidNode::constrain_positions().

void oomph::Data::copy ( Data orig_data_pt)

Copy Data values from specified Data object.

Definition at line 561 of file nodes.cc.

References ntstorage(), nvalue(), set_value(), t, and value().

Referenced by oomph::Node::copy(), oomph::SolidNode::copy(), and oomph::Problem::copy().

void oomph::Data::delete_value_storage ( )
private

Delete all storage allocated by the Data object for values and equation numbers.

Delete all the storage allocated by the Data object and set its pointers to NULL

Definition at line 190 of file nodes.cc.

References Eqn_number, and Value.

Referenced by ~Data().

void oomph::Data::describe_dofs ( std::ostream &  out,
const std::string &  current_string 
) const
virtual

Function to describe the dofs of the Node. The ostream specifies the output stream to which the description is written; the string stores the currently assembled output that is ultimately written to the output stream by Data::describe_dofs(...); it is typically built up incrementally as we descend through the call hierarchy of this function when called from Problem::describe_dofs(...)

Function to describe the dofs of the Data. The ostream specifies the output stream to which the description is written; the string stores the currently assembled output that is ultimately written to the output stream by Data::describe_dofs(...); it is typically built up incrementally as we descend through the call hierarchy of this function when called from Problem::describe_dofs(...)

Reimplemented in oomph::SolidNode.

Definition at line 905 of file nodes.cc.

References Eqn_number, eqn_number(), i, and Nvalue.

Referenced by oomph::GeneralisedElement::describe_dofs(), oomph::SolidNode::describe_dofs(), oomph::ElementWithMovingNodes::describe_local_dofs(), oomph::SpectralElement::describe_local_dofs(), oomph::FSIWallElement::describe_local_dofs(), oomph::ElementWithExternalElement::describe_local_dofs(), oomph::GeneralisedElement::describe_local_dofs(), and oomph::FiniteElement::describe_nodal_local_dofs().

bool oomph::Data::does_pointer_correspond_to_value ( double *const &  parameter_pt)

Check whether the pointer parameter_pt addresses internal data values.

If pointer parameter_pt addresses internal data values then return return true, otherwise return false

Definition at line 533 of file nodes.cc.

References i, ntstorage(), nvalue(), and Value.

Referenced by oomph::Mesh::does_pointer_correspond_to_mesh_data(), and oomph::SolidNode::does_pointer_correspond_to_position_data().

void oomph::Data::dump ( std::ostream &  dump_file) const

Dump the data object to a file.

Dump data object to a file.

Definition at line 608 of file nodes.cc.

References ntstorage(), nvalue(), t, and value().

Referenced by oomph::SpineMesh::dump(), oomph::Mesh::dump(), and oomph::Node::dump().

long& oomph::Data::eqn_number ( const unsigned &  i)
inline

Return the equation number of the i-th stored variable.

Definition at line 365 of file nodes.h.

References Eqn_number, i, and range_check().

Referenced by oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::add_element_contribution_to_aux_integral(), add_value_pt_to_map(), oomph::SpectralElement::assign_all_generic_local_eqn_numbers(), oomph::ElementWithMovingNodes::assign_all_generic_local_eqn_numbers(), assign_eqn_numbers(), oomph::RefineableElement::assign_hanging_local_eqn_numbers(), oomph::GeneralisedElement::assign_internal_and_external_local_eqn_numbers(), oomph::GeneralisedElement::assign_local_eqn_numbers(), oomph::FiniteElement::assign_nodal_local_eqn_numbers(), oomph::BoundaryNode< NODE_TYPE >::clear_copied_pointers(), constrain(), oomph::AddedMainNumberingLookup::construct_added_to_main_mapping(), describe_dofs(), oomph::RefineableAdvectionDiffusionEquations< DIM >::dinterpolated_u_adv_diff_ddata(), oomph::RefineableSphericalAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::RefineableAxisymAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::SteadyAxisymAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::SphericalAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::AdvectionDiffusionEquations< DIM >::dinterpolated_u_adv_diff_ddata(), oomph::AxisymAdvectionDiffusionEquations::dinterpolated_u_axi_adv_diff_ddata(), oomph::RefineableAxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::AxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::NavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::fill_in_generic_residual_contribution_fluid_traction(), oomph::Problem::get_dofs(), oomph::operator<<(), pin(), oomph::FpPressureAdvectionDiffusionProblem< ELEMENT >::pin_all_non_pressure_dofs(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::pin_all_non_pressure_dofs(), oomph::NavierStokesEquations< DIM >::pin_all_non_pressure_dofs(), oomph::MGSolver< DIM >::plot(), oomph::SolidNode::position_eqn_number(), oomph::post_midpoint_update(), oomph::Problem::remove_duplicate_data(), oomph::FpPressureAdvectionDiffusionProblem< ELEMENT >::reset_pin_status(), oomph::NavierStokesSchurComplementPreconditioner::reset_pin_status(), oomph::Problem::set_dofs(), oomph::SolidICProblem::set_newmark_initial_condition_consistently(), oomph::MGSolver< DIM >::set_self_test_vector(), oomph::MGSolver< DIM >::setup_interpolation_matrices(), oomph::HelmholtzMGPreconditioner< DIM >::setup_interpolation_matrices(), oomph::MGSolver< DIM >::setup_interpolation_matrices_unstructured(), oomph::HelmholtzMGPreconditioner< DIM >::setup_interpolation_matrices_unstructured(), oomph::Problem::synchronise_eqn_numbers(), unconstrain(), and unpin().

long oomph::Data::eqn_number ( const unsigned &  i) const
inline

Return the equation number of the i-th stored variable.

Definition at line 374 of file nodes.h.

References Eqn_number, i, and range_check().

long* oomph::Data::eqn_number_pt ( const unsigned &  i)
inline
virtual bool oomph::Data::is_a_copy ( ) const
inlinevirtual
virtual bool oomph::Data::is_a_copy ( const unsigned &  i) const
inlinevirtual

Return flag to indicate whether the i-th value is a copy. A base Data object can never be a copy so the default implementation always returns false.

Reimplemented in oomph::CopiedData, and oomph::HijackedData.

Definition at line 260 of file nodes.h.

bool oomph::Data::is_constrained ( const unsigned &  i)
inline

Test whether the i-th variable is constrained (1: true; 0: false).

Definition at line 439 of file nodes.h.

References Eqn_number, and Is_constrained.

Referenced by assign_eqn_numbers(), and oomph::Node::assign_eqn_numbers().

bool oomph::Data::is_halo ( ) const
inline
bool oomph::Data::is_pinned ( const unsigned &  i) const
inline
bool oomph::Data::is_segregated_solve_pinned ( const unsigned &  i)
inline

Test whether the i-th variable is temporaily pinned for a segregated solve.

Definition at line 408 of file nodes.h.

References Eqn_number, i, and Is_segregated_solve_pinned.

Referenced by assign_eqn_numbers().

int oomph::Data::non_halo_proc_ID ( )
inline
unsigned oomph::Data::ntstorage ( ) const

Return total number of doubles stored per value to record time history of each value (one for steady problems).

Return the total number of doubles stored per value to record the time history of ecah value. The information is read from the time stepper

Definition at line 847 of file nodes.cc.

References oomph::TimeStepper::ntstorage(), and Time_stepper_pt.

Referenced by oomph::TreeBasedRefineableMeshBase::adapt_mesh(), add_values_to_vector(), oomph::BackupMeshForProjection< GEOMETRIC_ELEMENT >::BackupMeshForProjection(), copy(), oomph::BackupMeshForProjection< GEOMETRIC_ELEMENT >::copy_onto_original_mesh(), Data(), oomph::Mesh::delete_all_external_storage(), does_pointer_correspond_to_value(), dump(), oomph::Problem::get_data_to_be_sent_during_load_balancing(), oomph::SpectralPeriodicOrbitElement< NNODE_1D >::get_Z2_flux(), oomph::GenericLagrangeInterpolatedProjectableElement< ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableTimeHarmonicLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableDarcyElement< DARCY_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableLinearElasticityElement< LINEAR_ELAST_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableTimeHarmonicFourierDecomposedLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableAxisymLinearElasticityElement< AXISYM_LINEAR_ELAST_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableFourierDecomposedHelmholtzElement< FOURIER_DECOMPOSED_HELMHOLTZ_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableFoepplvonKarmanElement< FVK_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectablePMLTimeHarmonicLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableUnsteadyHeatElement< UNSTEADY_HEAT_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableHelmholtzElement< HELMHOLTZ_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectablePoissonElement< POISSON_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableFoepplvonKarmanDisplacementElement< FVK_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectablePMLFourierDecomposedHelmholtzElement< FOURIER_DECOMPOSED_HELMHOLTZ_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectablePMLHelmholtzElement< HELMHOLTZ_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableAxisymmetricPoroelasticityElement< AXISYMMETRIC_POROELASTICITY_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableAxisymmetricTaylorHoodElement< TAYLOR_HOOD_ELEMENT >::nhistory_values_for_projection(), oomph::GeneralisedNewtonianProjectableAxisymmetricTaylorHoodElement< TAYLOR_HOOD_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableAxisymmetricCrouzeixRaviartElement< CROUZEIX_RAVIART_ELEMENT >::nhistory_values_for_projection(), oomph::GeneralisedNewtonianProjectableAxisymmetricCrouzeixRaviartElement< CROUZEIX_RAVIART_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableGeneralisedNewtonianTaylorHoodElement< TAYLOR_HOOD_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableGeneralisedNewtonianCrouzeixRaviartElement< CROUZEIX_RAVIART_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableTaylorHoodElement< TAYLOR_HOOD_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableCrouzeixRaviartElement< CROUZEIX_RAVIART_ELEMENT >::nhistory_values_for_projection(), oomph::SpectralPeriodicOrbitElement< NNODE_1D >::num_Z2_flux_terms(), oomph::operator<<(), oomph::TreeBasedRefineableMeshBase::p_adapt_mesh(), oomph::PeriodicOrbitAssemblyHandler< NNODE_1D >::PeriodicOrbitAssemblyHandler(), range_check(), read(), read_values_from_vector(), resize(), set_time_stepper(), and oomph::TreeBasedRefineableMeshBase::synchronise_nonhanging_nodes().

unsigned oomph::Data::nvalue ( ) const
inline

Return number of values stored in data object (incl pinned ones).

Definition at line 448 of file nodes.h.

References Nvalue.

Referenced by oomph::TreeBasedRefineableMeshBase::adapt_mesh(), oomph::PeriodicOrbitAssemblyHandler< NNODE_1D >::adapt_temporal_mesh(), add_eqn_numbers_to_vector(), add_value_pt_to_map(), add_values_to_vector(), oomph::SpectralElement::assign_all_generic_local_eqn_numbers(), oomph::ElementWithMovingNodes::assign_all_generic_local_eqn_numbers(), oomph::Node::assign_eqn_numbers(), oomph::ElementWithExternalElement::assign_external_interaction_data_local_eqn_numbers(), oomph::RefineableElement::assign_hanging_local_eqn_numbers(), oomph::PeriodicOrbitTimeDiscretisation::assign_initial_data_values(), oomph::Steady< 0 >::assign_initial_data_values(), oomph::Newmark< NSTEPS >::assign_initial_data_values(), oomph::BDF< NSTEPS >::assign_initial_data_values(), oomph::Newmark< NSTEPS >::assign_initial_data_values_stage1(), oomph::Newmark< NSTEPS >::assign_initial_data_values_stage2(), oomph::Steady< 0 >::assign_initial_values_impulsive(), oomph::Newmark< NSTEPS >::assign_initial_values_impulsive(), oomph::BDF< NSTEPS >::assign_initial_values_impulsive(), oomph::GeneralisedElement::assign_internal_and_external_local_eqn_numbers(), oomph::GeneralisedElement::assign_local_eqn_numbers(), oomph::FiniteElement::assign_nodal_local_eqn_numbers(), oomph::SolidICProblem::backup_original_state(), oomph::BackupMeshForProjection< GEOMETRIC_ELEMENT >::BackupMeshForProjection(), oomph::RefineableQElement< 3 >::build(), oomph::RefineableQElement< 1 >::build(), oomph::RefineableQElement< 2 >::build(), oomph::BDF< NSTEPS >::calculate_predicted_values(), oomph::TR::calculate_predicted_values(), oomph::Mesh::check_halo_schemes(), oomph::Missing_masters_functions::construct_new_external_halo_master_node_helper(), oomph::Multi_domain_functions::construct_new_external_halo_master_node_helper(), oomph::Missing_masters_functions::construct_new_external_halo_node_helper(), oomph::Multi_domain_functions::construct_new_external_halo_node_helper(), oomph::RefineableTriangleMesh< ELEMENT >::construct_new_halo_node_helper(), oomph::RefineableTriangleMesh< ELEMENT >::construct_new_node_load_balance_helper(), copy(), oomph::BackupMeshForProjection< GEOMETRIC_ELEMENT >::copy_onto_original_mesh(), oomph::ProjectableDarcyElement< DARCY_ELEMENT >::data_values_of_field(), oomph::ProjectableAxisymmetricPoroelasticityElement< AXISYMMETRIC_POROELASTICITY_ELEMENT >::data_values_of_field(), oomph::Mesh::delete_all_external_storage(), oomph::DisplacementControlElement::DisplacementControlElement(), oomph::FSI_functions::doc_fsi(), oomph::Mesh::doc_mesh_distribution(), does_pointer_correspond_to_value(), dump(), oomph::GeneralisedElement::external_local_eqn(), oomph::GeneralisedElement::fill_in_jacobian_from_external_by_fd(), oomph::GeneralisedElement::fill_in_jacobian_from_internal_by_fd(), oomph::RefineableElement::fill_in_jacobian_from_nodal_by_fd(), oomph::FiniteElement::fill_in_jacobian_from_nodal_by_fd(), oomph::Problem::get_data_to_be_sent_during_load_balancing(), oomph::GeneralisedNewtonianAxisymmetricTCrouzeixRaviartElement::get_dof_numbers_for_unknowns(), oomph::AxisymmetricTCrouzeixRaviartElement::get_dof_numbers_for_unknowns(), oomph::BiharmonicEquations< DIM >::get_dof_numbers_for_unknowns(), oomph::RefineableAdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >::get_dof_numbers_for_unknowns(), oomph::ClampedHermiteShellBoundaryConditionElement::get_dof_numbers_for_unknowns(), oomph::QSphericalCrouzeixRaviartElement::get_dof_numbers_for_unknowns(), oomph::QSphericalTaylorHoodElement::get_dof_numbers_for_unknowns(), oomph::AxisymmetricQCrouzeixRaviartElement::get_dof_numbers_for_unknowns(), oomph::GeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::get_dof_numbers_for_unknowns(), oomph::AxisymmetricQTaylorHoodElement::get_dof_numbers_for_unknowns(), oomph::GeneralisedNewtonianAxisymmetricQTaylorHoodElement::get_dof_numbers_for_unknowns(), oomph::Problem::get_dofs(), oomph::ProjectableTimeHarmonicLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::get_field(), oomph::ProjectableTimeHarmonicFourierDecomposedLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::get_field(), oomph::ProjectablePMLTimeHarmonicLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::get_field(), oomph::PolarCrouzeixRaviartElement::get_load_data(), oomph::Missing_masters_functions::get_required_master_nodal_information_helper(), oomph::Multi_domain_functions::get_required_master_nodal_information_helper(), oomph::Missing_masters_functions::get_required_nodal_information_helper(), oomph::Multi_domain_functions::get_required_nodal_information_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_load_balance_helper(), oomph::Node::hang_code(), oomph::Node::hanging_pt(), oomph::RefineableElement::identify_field_data_for_interactions(), oomph::FiniteElement::identify_field_data_for_interactions(), oomph::GeneralisedNewtonianAxisymmetricTCrouzeixRaviartElement::identify_pressure_data(), oomph::AxisymmetricTCrouzeixRaviartElement::identify_pressure_data(), oomph::QSphericalCrouzeixRaviartElement::identify_pressure_data(), oomph::GeneralisedElement::internal_local_eqn(), oomph::BiharmonicEquations< DIM >::interpolated_dudx(), oomph::BiharmonicEquations< DIM >::interpolated_u_biharmonic(), oomph::Node::is_hanging(), oomph::ProjectableTimeHarmonicLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::local_equation(), oomph::ProjectableTimeHarmonicFourierDecomposedLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::local_equation(), oomph::ProjectablePMLTimeHarmonicLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::local_equation(), oomph::ElasticLineFluidInterfaceElement< ELEMENT >::make_bounding_element(), oomph::RefineableImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::ncont_interpolated_values(), oomph::RefineableFSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::ncont_interpolated_values(), oomph::GenericLagrangeInterpolatedProjectableElement< ELEMENT >::nfields_for_projection(), oomph::FiniteElement::nodal_local_eqn(), oomph::ODEElement::nvalue(), oomph::operator<<(), oomph::TreeBasedRefineableMeshBase::p_adapt_mesh(), 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::PeriodicOrbitAssemblyHandler< NNODE_1D >::PeriodicOrbitAssemblyHandler(), oomph::ProjectionProblem< PROJECTABLE_ELEMENT >::pin_all(), oomph::FpPressureAdvectionDiffusionProblem< ELEMENT >::pin_all_non_pressure_dofs(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::pin_all_non_pressure_dofs(), oomph::NavierStokesEquations< DIM >::pin_all_non_pressure_dofs(), oomph::MGSolver< DIM >::plot(), oomph::post_midpoint_update(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::pre_build(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::pre_build(), oomph::ProjectionProblem< PROJECTABLE_ELEMENT >::project(), read(), read_eqn_numbers_from_vector(), read_values_from_vector(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::Problem::remove_duplicate_data(), oomph::CopiedData::reset_copied_pointers(), oomph::BoundaryNode< NODE_TYPE >::reset_copied_pointers(), oomph::SolidICProblem::reset_original_state(), oomph::FpPressureAdvectionDiffusionProblem< ELEMENT >::reset_pin_status(), oomph::NavierStokesSchurComplementPreconditioner::reset_pin_status(), resize(), oomph::Node::resize(), oomph::BoundaryNode< NODE_TYPE >::resize(), oomph::Mesh::resize_halo_nodes(), oomph::FaceElement::resize_nodes(), oomph::ContinuationStorageScheme::set_consistent_pinned_values(), oomph::Problem::set_dofs(), oomph::FluidInterfaceElement::set_external_pressure_data(), oomph::Node::set_hanging_pt(), oomph::YoungLaplaceEquations::set_kappa(), oomph::SolidICProblem::set_newmark_initial_condition_consistently(), oomph::Node::set_nonhanging(), oomph::Problem::set_pinned_values_to_zero(), oomph::WomersleyEquations< DIM >::set_pressure_gradient_pt(), oomph::MGSolver< DIM >::set_self_test_vector(), set_time_stepper(), oomph::VolumeConstraintBoundingElement::set_volume_constraint_element(), oomph::FoepplvonKarmanEquations::set_volume_constraint_pressure_data_as_external_data(), oomph::SolidICProblem::setup_problem(), oomph::IMRBase::shift_time_values(), oomph::TR::shift_time_values(), oomph::Steady< 0 >::shift_time_values(), oomph::Newmark< NSTEPS >::shift_time_values(), oomph::NewmarkBDF< NSTEPS >::shift_time_values(), oomph::BDF< NSTEPS >::shift_time_values(), oomph::MGSolver< DIM >::solve(), oomph::Problem::synchronise_eqn_numbers(), oomph::TimeStepper::time_derivative(), oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::unpin_elemental_pressure_dofs(), oomph::PRefineableQCrouzeixRaviartElement< DIM >::unpin_elemental_pressure_dofs(), value(), oomph::Node::value(), and oomph::Node::~Node().

void oomph::Data::operator= ( const Data )
inline

Broken assignment operator.

Definition at line 231 of file nodes.h.

References oomph::BrokenCopy::broken_assign().

void oomph::Data::pin ( const unsigned &  i)
inline

Pin the i-th stored variable.

Definition at line 383 of file nodes.h.

References eqn_number(), and Is_pinned.

Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::RefineableQElement< 3 >::build(), oomph::RefineableQElement< 2 >::build(), oomph::ChannelSpineMesh< ELEMENT >::build_channel_spine_mesh(), oomph::TwoDimensionalPMLHelper::create_bottom_left_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_bottom_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_bottom_right_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_left_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_right_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_top_left_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_top_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_top_right_pml_mesh(), oomph::AxisymmetricTCrouzeixRaviartElement::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricTCrouzeixRaviartElement::fix_pressure(), oomph::TCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianTCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::LinearisedAxisymmetricQCrouzeixRaviartElement::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricTTaylorHoodElement::fix_pressure(), oomph::AxisymmetricTTaylorHoodElement::fix_pressure(), oomph::PolarCrouzeixRaviartElement::fix_pressure(), oomph::LinearisedAxisymmetricQTaylorHoodElement::fix_pressure(), oomph::QSphericalCrouzeixRaviartElement::fix_pressure(), oomph::TTaylorHoodElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianTTaylorHoodElement< DIM >::fix_pressure(), oomph::PolarTaylorHoodElement::fix_pressure(), oomph::QSphericalTaylorHoodElement::fix_pressure(), oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianQCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::AxisymmetricQCrouzeixRaviartElement::fix_pressure(), oomph::PRefineableQCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::fix_pressure(), oomph::AxisymmetricQTaylorHoodElement::fix_pressure(), oomph::QCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricQTaylorHoodElement::fix_pressure(), oomph::GeneralisedNewtonianQTaylorHoodElement< DIM >::fix_pressure(), oomph::QTaylorHoodElement< DIM >::fix_pressure(), oomph::AxisymQPVDElementWithPressure::fix_solid_pressure(), oomph::QPVDElementWithPressure< DIM >::fix_solid_pressure(), oomph::QPVDElementWithContinuousPressure< DIM >::fix_solid_pressure(), oomph::TPVDElementWithContinuousPressure< DIM >::fix_solid_pressure(), oomph::PoissonSmoothMesh< POISSON_ELEMENT >::operator()(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::p_refine(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::p_refine(), oomph::ProjectionProblem< PROJECTABLE_ELEMENT >::pin_all(), oomph::GeneralisedNewtonianAxisymmetricTTaylorHoodElement::pin_all_nodal_pressure_dofs(), oomph::AxisymmetricTTaylorHoodElement::pin_all_nodal_pressure_dofs(), oomph::FpPressureAdvectionDiffusionProblem< ELEMENT >::pin_all_non_pressure_dofs(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::pin_all_non_pressure_dofs(), oomph::NavierStokesEquations< DIM >::pin_all_non_pressure_dofs(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::pin_all_spines(), oomph::ImmersedRigidBodyElement::pin_centre_of_mass_coordinate(), oomph::RefineableQSphericalTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineablePolarTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableAxisymmetricQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableQTaylorHoodElement< DIM >::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableQPVDElementWithContinuousPressure< DIM >::pin_elemental_redundant_nodal_solid_pressures(), oomph::TRaviartThomasDarcyElement< ORDER >::pin_p_value(), oomph::TPoroelasticityElement< ORDER >::pin_p_value(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::pin_p_value(), oomph::SolidNode::pin_position(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::pin_q_edge_value(), oomph::TRaviartThomasDarcyElement< ORDER >::pin_q_internal_value(), oomph::TPoroelasticityElement< ORDER >::pin_q_internal_value(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::pin_q_internal_value(), oomph::ImmersedRigidBodyElement::pin_rotation_angle(), oomph::VorticitySmootherElement< ELEMENT >::pin_smoothed_vorticity(), oomph::ProjectableDarcyElement< DARCY_ELEMENT >::pin_superfluous_darcy_dofs(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::SolidICProblem::setup_problem(), oomph::AxisymFoepplvonKarmanEquations::use_linear_bending_model(), oomph::FoepplvonKarmanEquations::use_linear_bending_model(), oomph::FoepplvonKarmanDisplacementEquations::use_linear_bending_model(), oomph::WomersleyMesh< WOMERSLEY_ELEMENT >::WomersleyMesh(), and oomph::WomersleyProblem< ELEMENT, DIM >::WomersleyProblem().

void oomph::Data::pin_all ( )
inline

Pin all the stored variables.

Definition at line 389 of file nodes.h.

References Eqn_number, i, Is_pinned, and Nvalue.

Referenced by oomph::Node::pin_all(), and oomph::SolidNode::pin_all().

void oomph::Data::range_check ( const unsigned &  t,
const unsigned &  i 
) const
private

Check that the arguments are within the range of the stored data values and timesteps.

Private function to check that the arguments are within the range of the stored data values and timesteps.

Definition at line 52 of file nodes.cc.

References ntstorage(), and Nvalue.

Referenced by eqn_number(), eqn_number_pt(), set_value(), value(), and value_pt().

void oomph::Data::read ( std::ifstream &  restart_file)

Read data object from a file.

Read data object from file.

Definition at line 635 of file nodes.cc.

References i, oomph::Node::ndim(), ntstorage(), nvalue(), set_value(), oomph::Global_string_for_annotation::string(), t, and oomph::Node::x().

Referenced by oomph::SpineMesh::read(), oomph::Mesh::read(), and oomph::Node::read().

void oomph::Data::read_eqn_numbers_from_vector ( const Vector< long > &  vector_of_eqn_numbers,
unsigned &  index 
)
virtual

Read all equation numbers from the vector starting from index. On return the index will be set to the value at the end of the data that has been read in.

Read all equation numbers from the vector. The function is virtual so that it can be overloaded by SolidNodes to add the additional equation numbers associated with the solid dofs in those objects. The unsigned index is used to indicate the start position for reading in the vector and will be set the end of the data that has been read in on return.

Reimplemented in oomph::SolidNode.

Definition at line 1216 of file nodes.cc.

References Eqn_number, eqn_number_pt(), i, and nvalue().

Referenced by oomph::SolidNode::read_eqn_numbers_from_vector(), and oomph::GeneralisedElement::read_internal_eqn_numbers_from_vector().

void oomph::Data::read_values_from_vector ( const Vector< double > &  vector_of_values,
unsigned &  index 
)
virtual

Read all data and time history values from the vector starting from index. On return the index will be set to the value at the end of the data that has been read in.

Read all data and time history values from a vector that will be used when communicating data between processors. The function is virtual so that it can be overloaded by Nodes and SolidNodes to read the additional data present in those objects. The unsigned index is used to indicate the start position for reading in the vector and will be set the end of the data that has been read in on return.

Reimplemented in oomph::SolidNode, and oomph::Node.

Definition at line 1129 of file nodes.cc.

References i, ntstorage(), nvalue(), t, and Value.

Referenced by oomph::GeneralisedElement::read_internal_data_values_from_vector(), and oomph::Node::read_values_from_vector().

void oomph::Data::remove_copy ( Data *const &  data_pt)
private

Remove the pointer data_pt from the array Copy_of_data_pt. This should be used whenever copies of the data are deleted.

Remove the pointer data_pt from the internal storage used to keep track of copies

Definition at line 108 of file nodes.cc.

References Copy_of_data_pt, i, and Ncopies.

Referenced by oomph::CopiedData::~CopiedData(), and oomph::HijackedData::~HijackedData().

void oomph::Data::reset_copied_pointers ( )
protectedvirtual

Helper function that should be overloaded in derived classes that can contain copies of Data. The function must reset the internal pointers to the copied data. This is used when resizing data to ensure that all the pointers remain valid. The default implementation throws an error beacause Data cannot be a copy.

Helper function that should be overloaded in classes that contain copies of Data. The function must reset the internal pointers to the copied data. This is used when resizing data to ensure that all the pointers remain valid. The base Data class cannot be a copy, so throw an error.

Reimplemented in oomph::CopiedData, and oomph::HijackedData.

Definition at line 165 of file nodes.cc.

Referenced by resize(), and set_time_stepper().

void oomph::Data::resize ( const unsigned &  n_value)
virtual

Change (increase) the number of values that may be stored.

Increase the number of data values stored, useful when adding additional data at a node, almost always Lagrange multipliers. Note if any of the unresized data is copied, then we assume all the resized data is copied from the same node as the unresized data.

Reimplemented in oomph::Node, oomph::CopiedData, and oomph::HijackedData.

Definition at line 961 of file nodes.cc.

References Copy_of_data_pt, Eqn_number, i, Is_unclassified, Ncopies, ntstorage(), Nvalue, nvalue(), reset_copied_pointers(), t, and Value.

Referenced by oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement(), oomph::PRefineableQCrouzeixRaviartElement< DIM >::PRefineableQCrouzeixRaviartElement(), and oomph::Node::resize().

unsigned oomph::Data::self_test ( )

Self-test: Have all values been classified as pinned/unpinned? Return 0 if OK.

Self-test: Have all values been classified as pinned/unpinned? Return 0 if OK.

Definition at line 930 of file nodes.cc.

References Eqn_number, i, Is_unclassified, Nvalue, and oomph::oomph_info.

Referenced by oomph::AlgebraicNode::self_test().

void oomph::Data::set_halo ( const unsigned &  non_halo_proc_ID)
inline

Label the node as halo and specify processor that holds non-halo counterpart.

Definition at line 481 of file nodes.h.

References Non_halo_proc_ID, and non_halo_proc_ID().

Referenced by oomph::Mesh::add_external_halo_node_pt(), oomph::Mesh::classify_halo_and_haloed_nodes(), and oomph::Missing_masters_functions::construct_new_external_halo_master_node_helper().

void oomph::Data::set_nonhalo ( )
inline

Label the node as not being a halo.

Definition at line 487 of file nodes.h.

References Non_halo_proc_ID.

Referenced by oomph::Mesh::classify_halo_and_haloed_nodes().

void oomph::Data::set_time_stepper ( TimeStepper *const &  time_stepper_pt,
const bool &  preserve_existing_data 
)

Set a new timestepper by resizing the appropriate storage. If already assigned the equation numbering will not be altered.

Set a new TimeStepper be resizing the appropriate storage. Equation numbering (if already performed) will be unaffected. The current (zero) values will be unaffected, but all other entries will be set to zero.

Definition at line 392 of file nodes.cc.

References Copy_of_data_pt, i, is_a_copy(), Ncopies, ntstorage(), oomph::TimeStepper::ntstorage(), nvalue(), reset_copied_pointers(), t, Time_stepper_pt, time_stepper_pt(), and Value.

Referenced by oomph::PeriodicOrbitAssemblyHandler< NNODE_1D >::adapt_temporal_mesh(), oomph::PeriodicOrbitAssemblyHandler< NNODE_1D >::PeriodicOrbitAssemblyHandler(), oomph::GeneralisedElement::set_internal_data_time_stepper(), oomph::SolidNode::set_position_time_stepper(), oomph::PoroelasticityEquations< 2 >::set_q_internal_timestepper(), and oomph::AxisymmetricPoroelasticityEquations::set_q_internal_timestepper().

void oomph::Data::set_value ( const unsigned &  i,
const double &  value_ 
)
inline

Set the i-th stored data value to specified value. The only reason that we require an explicit set function is because we redefine value() in the Node class to interpolate the values for nodes that are hanging and so we cannot return a reference to the value in this case.

Definition at line 267 of file nodes.h.

References i, range_check(), and Value.

Referenced by oomph::WomersleyProblem< WOMERSLEY_ELEMENT, DIM >::actions_before_implicit_timestep(), oomph::TreeBasedRefineableMeshBase::adapt_mesh(), oomph::PeriodicOrbitAssemblyHandler< NNODE_1D >::adapt_temporal_mesh(), oomph::FSI_functions::apply_no_slip_on_moving_wall(), oomph::PeriodicOrbitTimeDiscretisation::assign_initial_data_values(), oomph::Steady< 0 >::assign_initial_data_values(), oomph::Newmark< NSTEPS >::assign_initial_data_values(), oomph::BDF< NSTEPS >::assign_initial_data_values(), oomph::Newmark< NSTEPS >::assign_initial_data_values_stage1(), oomph::Newmark< NSTEPS >::assign_initial_data_values_stage2(), oomph::Steady< 0 >::assign_initial_values_impulsive(), oomph::Newmark< NSTEPS >::assign_initial_values_impulsive(), oomph::BDF< NSTEPS >::assign_initial_values_impulsive(), oomph::BackupMeshForProjection< GEOMETRIC_ELEMENT >::BackupMeshForProjection(), oomph::RefineableQElement< 3 >::build(), oomph::RefineableQElement< 1 >::build(), oomph::RefineableQElement< 2 >::build(), oomph::BrickFromTetMesh< ELEMENT >::build_mesh(), oomph::BDF< NSTEPS >::calculate_predicted_values(), oomph::TR::calculate_predicted_values(), oomph::Missing_masters_functions::construct_new_external_halo_master_node_helper(), oomph::Multi_domain_functions::construct_new_external_halo_master_node_helper(), oomph::Missing_masters_functions::construct_new_external_halo_node_helper(), oomph::Multi_domain_functions::construct_new_external_halo_node_helper(), oomph::RefineableTriangleMesh< ELEMENT >::construct_new_halo_node_helper(), oomph::RefineableTriangleMesh< ELEMENT >::construct_new_node_load_balance_helper(), copy(), oomph::BackupMeshForProjection< GEOMETRIC_ELEMENT >::copy_onto_original_mesh(), oomph::TwoDimensionalPMLHelper::create_bottom_left_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_bottom_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_bottom_right_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_left_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_right_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_top_left_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_top_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_top_right_pml_mesh(), oomph::Mesh::delete_all_external_storage(), oomph::AxisymmetricTCrouzeixRaviartElement::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricTCrouzeixRaviartElement::fix_pressure(), oomph::TCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianTCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::LinearisedAxisymmetricQCrouzeixRaviartElement::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricTTaylorHoodElement::fix_pressure(), oomph::AxisymmetricTTaylorHoodElement::fix_pressure(), oomph::LinearisedAxisymmetricQTaylorHoodElement::fix_pressure(), oomph::QSphericalCrouzeixRaviartElement::fix_pressure(), oomph::TTaylorHoodElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianTTaylorHoodElement< DIM >::fix_pressure(), oomph::QSphericalTaylorHoodElement::fix_pressure(), oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianQCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::AxisymmetricQCrouzeixRaviartElement::fix_pressure(), oomph::PRefineableQCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::fix_pressure(), oomph::AxisymmetricQTaylorHoodElement::fix_pressure(), oomph::QCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricQTaylorHoodElement::fix_pressure(), oomph::GeneralisedNewtonianQTaylorHoodElement< DIM >::fix_pressure(), oomph::QTaylorHoodElement< DIM >::fix_pressure(), oomph::AxisymQPVDElementWithPressure::fix_solid_pressure(), oomph::QPVDElementWithPressure< DIM >::fix_solid_pressure(), oomph::QPVDElementWithContinuousPressure< DIM >::fix_solid_pressure(), oomph::TPVDElementWithContinuousPressure< DIM >::fix_solid_pressure(), oomph::FoepplvonKarmanVolumeConstraintElement< ELEMENT, MESH >::FoepplvonKarmanVolumeConstraintElement(), oomph::RefineableQSphericalCrouzeixRaviartElement::further_build(), oomph::RefineablePolarCrouzeixRaviartElement::further_build(), oomph::RefineableAxisymmetricQCrouzeixRaviartElement::further_build(), oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::further_build(), oomph::Problem::get_data_to_be_sent_during_load_balancing(), oomph::ImposeFluxForWomersleyElement< DIM >::ImposeFluxForWomersleyElement(), oomph::PoissonSmoothMesh< POISSON_ELEMENT >::operator()(), oomph::TreeBasedRefineableMeshBase::p_adapt_mesh(), 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::PeriodicOrbitAssemblyHandler< NNODE_1D >::PeriodicOrbitAssemblyHandler(), oomph::FpPressureAdvectionDiffusionProblem< ELEMENT >::pin_all_non_pressure_dofs(), oomph::TPoroelasticityElement< ORDER >::pin_p_value(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::pin_p_value(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::pin_q_edge_value(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::pin_q_internal_value(), oomph::post_midpoint_update(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::pre_build(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::pre_build(), read(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement::rebuild_from_sons(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::RefineableQSphericalCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineablePolarCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineableAxisymmetricQCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::rebuild_from_sons(), oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::rebuild_from_sons(), oomph::PRefineableQCrouzeixRaviartElement< DIM >::rebuild_from_sons(), oomph::ContinuationStorageScheme::set_consistent_pinned_values(), oomph::Problem::set_dofs(), oomph::SolidICProblem::set_newmark_initial_condition_consistently(), oomph::TRaviartThomasDarcyElement< ORDER >::set_p_value(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::set_p_value(), oomph::Problem::set_pinned_values_to_zero(), oomph::TRaviartThomasDarcyElement< ORDER >::set_q_edge(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::set_q_edge(), oomph::TRaviartThomasDarcyElement< ORDER >::set_q_internal(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::set_q_internal(), oomph::QPVDElementWithPressure< DIM >::set_solid_p(), oomph::QPVDElementWithContinuousPressure< DIM >::set_solid_p(), oomph::TPVDElementWithContinuousPressure< DIM >::set_solid_p(), oomph::IMRBase::shift_time_values(), oomph::TR::shift_time_values(), oomph::Steady< 0 >::shift_time_values(), oomph::Newmark< NSTEPS >::shift_time_values(), oomph::NewmarkBDF< NSTEPS >::shift_time_values(), and oomph::BDF< NSTEPS >::shift_time_values().

void oomph::Data::set_value ( const unsigned &  t,
const unsigned &  i,
const double &  value_ 
)
inline

Set the t-th history value of the i-th stored data value to specified value.

Definition at line 277 of file nodes.h.

References i, range_check(), t, and Value.

TimeStepper*& oomph::Data::time_stepper_pt ( )
inline

Return the pointer to the timestepper.

Definition at line 246 of file nodes.h.

References Time_stepper_pt.

Referenced by oomph::SurfactantTransportInterfaceElement::add_additional_residual_contributions_interface(), oomph::BackupMeshForProjection< GEOMETRIC_ELEMENT >::BackupMeshForProjection(), oomph::TimeHarmonicLinearElasticityEquationsBase< DIM >::body_force(), oomph::LinearElasticityEquationsBase< DIM >::body_force(), oomph::PVDEquationsBase< DIM >::body_force(), oomph::RefineableQElement< 3 >::build(), oomph::RefineableQElement< 1 >::build(), oomph::RefineableQElement< 2 >::build(), oomph::Missing_masters_functions::construct_new_external_halo_master_node_helper(), oomph::Missing_masters_functions::construct_new_external_halo_node_helper(), oomph::Mesh::convert_to_boundary_node(), oomph::PoroelasticityEquations< 2 >::d2u_dt2(), oomph::AxisymmetricPoroelasticityEquations::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::SurfactantTransportInterfaceElement::dcdt_surface(), oomph::ImmersedRigidBodyElement::dposition_dt(), oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >::dposition_dt(), oomph::PoroelasticityEquations< 2 >::dq_edge_dt(), oomph::AxisymmetricPoroelasticityEquations::dq_edge_dt(), oomph::PoroelasticityEquations< 2 >::dq_internal_dt(), oomph::AxisymmetricPoroelasticityEquations::dq_internal_dt(), oomph::PoroelasticityEquations< 2 >::du_dt(), oomph::AxisymmetricPoroelasticityEquations::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::LinearWaveEquations< DIM >::du_dt_lin_wave(), oomph::LinearisedAxisymmetricNavierStokesEquations::du_dt_linearised_axi_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::GeneralisedNewtonianAxisymmetricNavierStokesEquations::extrapolated_strain_rate(), oomph::ODEElement::fill_in_contribution_to_jacobian(), oomph::ODEElement::fill_in_contribution_to_residuals(), oomph::AxisymmetricLinearElasticityEquations::fill_in_generic_contribution_to_residuals_axisymmetric_linear_elasticity(), 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::RefineableAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_axi_adv_diff(), oomph::AxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_axi_adv_diff(), oomph::RefineableAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::AxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::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_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::SphericalNavierStokesEquations::fill_in_generic_residual_contribution_spherical_nst(), oomph::RefineableSphericalNavierStokesEquations::fill_in_generic_residual_contribution_spherical_nst(), oomph::RefineableAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::AxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::Missing_masters_functions::get_required_master_nodal_information_helper(), oomph::Multi_domain_functions::get_required_master_nodal_information_helper(), oomph::Missing_masters_functions::get_required_nodal_information_helper(), oomph::Multi_domain_functions::get_required_nodal_information_helper(), oomph::ImmersedRigidBodyElement::get_residuals_rigid_body_generic(), oomph::AdvectionDiffusionReactionEquations< NREAGENT, DIM >::get_wind_adv_diff_react(), oomph::FiniteElement::get_x(), oomph::AxisymmetricLinearElasticityTractionElement< ELEMENT >::output(), oomph::AxisymmetricPoroelasticityTractionElement< POROELASTICITY_BULK_ELEMENT >::output(), oomph::AxisymmetricNavierStokesTractionElement< ELEMENT >::output(), oomph::ProjectableUnsteadyHeatElement< UNSTEADY_HEAT_ELEMENT >::output(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::output(), oomph::ImmersedRigidBodyElement::output_centre_of_gravity(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::pre_build(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::pre_build(), oomph::ImmersedRigidBodyTriangleMeshPolygon::reset_reference_configuration(), oomph::AxisymmetricNavierStokesTractionElement< ELEMENT >::scalar_value_paraview(), oomph::ContinuationStorageScheme::set_consistent_pinned_values(), and set_time_stepper().

TimeStepper* const& oomph::Data::time_stepper_pt ( ) const
inline

Return the pointer to the timestepper (const version).

Definition at line 249 of file nodes.h.

References Time_stepper_pt.

void oomph::Data::unconstrain ( const unsigned &  i)
inline

Unconstrain the i-th stored variable when make the data nonhanging. Only unconstrain if it was actually constrained (hanging)

Definition at line 421 of file nodes.h.

References eqn_number(), Is_constrained, and Is_unclassified.

Referenced by oomph::Node::resize(), oomph::Node::set_hanging_pt(), oomph::Node::set_nonhanging(), and unconstrain_all().

void oomph::Data::unconstrain_all ( )
inline

Unconstrain all the stored variables when the data is made nonhanging.

Definition at line 432 of file nodes.h.

References i, Nvalue, and unconstrain().

Referenced by oomph::SolidNode::unconstrain_positions().

void oomph::Data::unpin ( const unsigned &  i)
inline

Unpin the i-th stored variable.

Definition at line 386 of file nodes.h.

References eqn_number(), and Is_unclassified.

Referenced by oomph::RefineableQSphericalTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineablePolarTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableAxisymmetricQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableQTaylorHoodElement< DIM >::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableQPVDElementWithContinuousPressure< DIM >::pin_elemental_redundant_nodal_solid_pressures(), oomph::SolidICProblem::reset_original_state(), oomph::BuoyantQCrouzeixRaviartElement< DIM >::unfix_pressure(), oomph::AxisymmetricTCrouzeixRaviartElement::unpin_all_internal_pressure_dofs(), oomph::GeneralisedNewtonianAxisymmetricTCrouzeixRaviartElement::unpin_all_internal_pressure_dofs(), oomph::GeneralisedNewtonianAxisymmetricTTaylorHoodElement::unpin_all_nodal_pressure_dofs(), oomph::AxisymmetricTTaylorHoodElement::unpin_all_nodal_pressure_dofs(), oomph::ImmersedRigidBodyElement::unpin_centre_of_mass_coordinate(), oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement::unpin_elemental_pressure_dofs(), oomph::RefineableQSphericalTaylorHoodElement::unpin_elemental_pressure_dofs(), oomph::RefineablePolarTaylorHoodElement::unpin_elemental_pressure_dofs(), oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >::unpin_elemental_pressure_dofs(), oomph::RefineableAxisymmetricQTaylorHoodElement::unpin_elemental_pressure_dofs(), oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement::unpin_elemental_pressure_dofs(), oomph::RefineableQSphericalCrouzeixRaviartElement::unpin_elemental_pressure_dofs(), oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement::unpin_elemental_pressure_dofs(), oomph::RefineablePolarCrouzeixRaviartElement::unpin_elemental_pressure_dofs(), oomph::RefineableQTaylorHoodElement< DIM >::unpin_elemental_pressure_dofs(), oomph::RefineableAxisymmetricQCrouzeixRaviartElement::unpin_elemental_pressure_dofs(), oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::unpin_elemental_pressure_dofs(), oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::unpin_elemental_pressure_dofs(), oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::unpin_elemental_pressure_dofs(), oomph::RefineableQCrouzeixRaviartElement< DIM >::unpin_elemental_pressure_dofs(), oomph::PRefineableQCrouzeixRaviartElement< DIM >::unpin_elemental_pressure_dofs(), oomph::RefineableQPVDElementWithPressure< DIM >::unpin_elemental_solid_pressure_dofs(), oomph::RefineableQPVDElementWithContinuousPressure< DIM >::unpin_elemental_solid_pressure_dofs(), oomph::QPVDElementWithPressure< DIM >::unpin_elemental_solid_pressure_dofs(), oomph::QPVDElementWithContinuousPressure< DIM >::unpin_elemental_solid_pressure_dofs(), oomph::TPVDElementWithContinuousPressure< DIM >::unpin_elemental_solid_pressure_dofs(), oomph::SolidNode::unpin_position(), oomph::GeneralisedNewtonianAxisymmetricTTaylorHoodElement::unpin_proper_nodal_pressure_dofs(), oomph::AxisymmetricTTaylorHoodElement::unpin_proper_nodal_pressure_dofs(), oomph::TTaylorHoodElement< DIM >::unpin_proper_nodal_pressure_dofs(), oomph::GeneralisedNewtonianTTaylorHoodElement< DIM >::unpin_proper_nodal_pressure_dofs(), and oomph::ImmersedRigidBodyElement::unpin_rotation_angle().

void oomph::Data::unpin_all ( )
inline

Unpin all the stored variables.

Definition at line 396 of file nodes.h.

References Eqn_number, i, Is_unclassified, and Nvalue.

Referenced by oomph::Node::unpin_all(), and oomph::SolidNode::unpin_all().

double oomph::Data::value ( const unsigned &  i) const
inline

Return i-th stored value. This function is not virtual so that it can be inlined. This means that if we have an explicit pointer to a Data object Data* data_pt->value() always returns the "raw" stored value.

Definition at line 291 of file nodes.h.

References i, range_check(), and Value.

Referenced by oomph::PeriodicOrbitAssemblyHandler< NNODE_1D >::adapt_temporal_mesh(), oomph::ImmersedRigidBodyElement::apply_rigid_body_motion(), oomph::Newmark< NSTEPS >::assign_initial_data_values_stage1(), oomph::Newmark< NSTEPS >::assign_initial_data_values_stage2(), oomph::Steady< 0 >::assign_initial_values_impulsive(), oomph::Newmark< NSTEPS >::assign_initial_values_impulsive(), oomph::BDF< NSTEPS >::assign_initial_values_impulsive(), oomph::GeneralisedElement::assign_local_eqn_numbers(), oomph::BDF< NSTEPS >::calculate_predicted_values(), oomph::TR::calculate_predicted_values(), oomph::ImmersedRigidBodyElement::centre_of_gravity(), copy(), oomph::ImmersedRigidBodyElement::dposition_dt(), dump(), oomph::ODEElement::fill_in_contribution_to_jacobian(), oomph::ODEElement::fill_in_contribution_to_residuals(), oomph::NavierStokesFluxControlElement< ELEMENT >::fill_in_generic_residual_contribution_fluid_traction(), oomph::NavierStokesWomersleyPressureControlElement::fill_in_generic_residual_contribution_pressure_control(), oomph::RefineablePolarCrouzeixRaviartElement::further_build(), oomph::Problem::get_dofs(), oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >::get_drag_and_torque(), oomph::YoungLaplaceEquations::get_kappa(), oomph::operator<<(), oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >::output(), oomph::ImmersedRigidBodyElement::output_centre_of_gravity(), oomph::AxisymmetricTCrouzeixRaviartElement::p_axi_nst(), oomph::GeneralisedNewtonianAxisymmetricTCrouzeixRaviartElement::p_axi_nst(), oomph::AxisymmetricQCrouzeixRaviartElement::p_axi_nst(), oomph::GeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::p_axi_nst(), oomph::LinearisedAxisymmetricQCrouzeixRaviartElement::p_linearised_axi_nst(), oomph::TCrouzeixRaviartElement< DIM >::p_nst(), oomph::GeneralisedNewtonianTCrouzeixRaviartElement< DIM >::p_nst(), oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::p_nst(), oomph::GeneralisedNewtonianQCrouzeixRaviartElement< DIM >::p_nst(), oomph::PRefineableQCrouzeixRaviartElement< DIM >::p_nst(), oomph::QCrouzeixRaviartElement< DIM >::p_nst(), oomph::QSphericalCrouzeixRaviartElement::p_spherical_nst(), oomph::VolumeConstraintElement::p_traded(), oomph::TPoroelasticityElement< ORDER >::p_value(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::p_value(), oomph::PeriodicOrbitAssemblyHandler< NNODE_1D >::PeriodicOrbitAssemblyHandler(), oomph::FluidInterfaceElement::pext(), oomph::post_midpoint_update(), oomph::TRaviartThomasDarcyElement< ORDER >::q_internal(), oomph::TPoroelasticityElement< ORDER >::q_internal(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::q_internal(), oomph::Node::raw_value(), oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineableQSphericalCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineablePolarCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineableAxisymmetricQCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::rebuild_from_sons(), oomph::PseudoBucklingRingElement::reference_pressure(), oomph::RefineableNavierStokesFluxControlElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::ImmersedRigidBodyTriangleMeshPolygon::reset_reference_configuration(), oomph::ContinuationStorageScheme::set_consistent_pinned_values(), oomph::SolidICProblem::set_newmark_initial_condition_consistently(), oomph::IMRBase::shift_time_values(), oomph::TR::shift_time_values(), oomph::Steady< 0 >::shift_time_values(), oomph::Newmark< NSTEPS >::shift_time_values(), oomph::NewmarkBDF< NSTEPS >::shift_time_values(), oomph::BDF< NSTEPS >::shift_time_values(), oomph::AxisymQPVDElementWithPressure::solid_p(), oomph::QPVDElementWithPressure< DIM >::solid_p(), oomph::IMRBase::temporal_error_in_value(), oomph::BDF< NSTEPS >::temporal_error_in_value(), oomph::TR::temporal_error_in_value(), oomph::TimeStepper::time_derivative(), and value().

double oomph::Data::value ( const unsigned &  t,
const unsigned &  i 
) const
inline

Return i-th value at time level t (t=0: present, t>0: previous) This function is not virtual so that it can be inlined. This means that if we have an explicit pointer to a Data object Data* data_pt->value() always returns to the "raw" stored value.

Definition at line 303 of file nodes.h.

References i, range_check(), t, and Value.

void oomph::Data::value ( Vector< double > &  values) const

Compute Vector of values for the Data value.

Compute Vector of values (dofs or pinned) at this Data object.

Definition at line 473 of file nodes.cc.

References i, nvalue(), and value().

void oomph::Data::value ( const unsigned &  t,
Vector< double > &  values 
) const

Compute Vector of values (dofs or pinned) in this data at time level t (t=0: present; t>0: previous).

Compute Vector of values (dofs or pinned) at this node at time level t (t=0: present; t>0: previous)

Definition at line 484 of file nodes.cc.

References i, nvalue(), and value().

double* oomph::Data::value_pt ( const unsigned &  i) const
inline

Return the pointer to the i-the stored value. Typically this is required when direct access to the stored value is required, e.g. when writing functions that return a reference to a variable that is stored in a Data object.

Definition at line 322 of file nodes.h.

References i, range_check(), and Value.

Referenced by add_value_pt_to_map(), oomph::Problem::arc_length_step_solve(), oomph::SpectralElement::assign_all_generic_local_eqn_numbers(), oomph::ElementWithMovingNodes::assign_all_generic_local_eqn_numbers(), assign_eqn_numbers(), oomph::RefineableElement::assign_hanging_local_eqn_numbers(), oomph::GeneralisedElement::assign_internal_and_external_local_eqn_numbers(), oomph::FiniteElement::assign_nodal_local_eqn_numbers(), oomph::ImmersedRigidBodyElement::centre_rotation_angle(), oomph::ImmersedRigidBodyElement::centre_x_displacement(), oomph::ImmersedRigidBodyElement::centre_y_displacement(), oomph::FpPressureAdvectionDiffusionProblem< ELEMENT >::doc_solution(), oomph::GeneralisedElement::fill_in_jacobian_from_external_by_fd(), oomph::GeneralisedElement::fill_in_jacobian_from_internal_by_fd(), oomph::RefineableElement::fill_in_jacobian_from_nodal_by_fd(), oomph::FiniteElement::fill_in_jacobian_from_nodal_by_fd(), oomph::BuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_by_fd(), oomph::PolarCrouzeixRaviartElement::fix_pressure(), oomph::PolarTaylorHoodElement::fix_pressure(), oomph::RefineableAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineableNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::AxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::NavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::ElasticAxisymmetricFluidInterfaceElement< ELEMENT >::lagrange(), oomph::ElasticLineFluidInterfaceElement< ELEMENT >::lagrange(), oomph::ElasticSurfaceFluidInterfaceElement< ELEMENT >::lagrange(), oomph::PolarCrouzeixRaviartElement::p_pnst(), oomph::SolidICProblem::set_newmark_initial_condition_consistently(), and oomph::YoungLaplaceContactAngleElement< ELEMENT >::u().

double* oomph::Data::value_pt ( const unsigned &  t,
const unsigned &  i 
) const
inline

Return the pointer to the i-th stored value, or any of its history values (const version). Typically this is required when direct access to the stored value is required, e.g. when writing functions that return a reference to a variable that is stored in a Data object.

Definition at line 335 of file nodes.h.

References i, range_check(), t, and Value.

Friends And Related Function Documentation

template<class NODE_TYPE >
friend class BoundaryNode
friend

Definition at line 101 of file nodes.h.

friend class BoundaryNodeBase
friend

Definition at line 100 of file nodes.h.

friend class CopiedData
friend

Definition at line 99 of file nodes.h.

Referenced by oomph::SolidNode::set_external_variable_position_pt().

friend class HijackedData
friend

Definition at line 98 of file nodes.h.

std::ostream& operator<< ( std::ostream &  out,
const Data d 
)
friend

Output operator: output all values at all times, along with any extra information stored for the timestepper.

Data output operator: output equation numbers and values at all times, along with any extra information stored for the timestepper.

Definition at line 335 of file nodes.cc.

friend class SolidNode
friend

Definition at line 106 of file nodes.h.

Member Data Documentation

Data** oomph::Data::Copy_of_data_pt
protected

C-style array of any Data objects that contain copies of the current Data object's data values.

Definition at line 132 of file nodes.h.

Referenced by add_copy(), remove_copy(), resize(), set_time_stepper(), and ~Data().

TimeStepper * oomph::Data::Default_static_time_stepper_pt =new Steady<0>()
staticprotected

Default (static) timestepper used in steady problems.

Default (steady) timestepper for steady Data.

Definition at line 169 of file nodes.h.

long* oomph::Data::Eqn_number
private
long oomph::Data::Is_constrained =-2
static

Static "Magic number" used in place of the equation number to indicate that the value is constrained because it is associated with non-conforming element boundaries — a hanging node — (and is therefore pinned)

Static "Magic number" to indicate that the value is constrained, usually because is it associated with non-conforming data, otherwise known as hanging nodes

Definition at line 207 of file nodes.h.

Referenced by constrain(), is_constrained(), and unconstrain().

long oomph::Data::Is_pinned =-1
static
long oomph::Data::Is_segregated_solve_pinned =-3
static

Static "Magic number" used in place of the equation number to indicate that the value is pinned, but only for the duration of a segregated solve.

Definition at line 197 of file nodes.h.

Referenced by is_segregated_solve_pinned().

long oomph::Data::Is_unclassified =-10
static

Static "Magic number" used in place of the equation number to denote a value that hasn't been classified as pinned or free.

Static "Magic number" to indicate values that haven't been classified as pinned or free.

Definition at line 201 of file nodes.h.

Referenced by oomph::SpectralElement::assign_all_generic_local_eqn_numbers(), oomph::ElementWithMovingNodes::assign_all_generic_local_eqn_numbers(), oomph::GeneralisedElement::assign_internal_and_external_local_eqn_numbers(), oomph::FiniteElement::assign_nodal_local_eqn_numbers(), oomph::BlockPreconditioner< MATRIX >::block_setup(), Data(), resize(), self_test(), unconstrain(), unpin(), and unpin_all().

unsigned oomph::Data::Ncopies
protected

Number of Data that contain copies of this Data object's values.

Definition at line 136 of file nodes.h.

Referenced by add_copy(), remove_copy(), resize(), set_time_stepper(), and ~Data().

int oomph::Data::Non_halo_proc_ID
private

Non-halo processor ID for Data; -1 if it's not a halo.

Definition at line 146 of file nodes.h.

Referenced by is_halo(), non_halo_proc_ID(), set_halo(), and set_nonhalo().

unsigned oomph::Data::Nvalue
private
TimeStepper* oomph::Data::Time_stepper_pt
private

Pointer to a Timestepper. The inclusion of a Timestepper pointer in the Data class, ensures that time-derivatives can be calculated and storage can be managed at the low (Data) level.

Definition at line 126 of file nodes.h.

Referenced by ntstorage(), set_time_stepper(), and time_stepper_pt().

double** oomph::Data::Value
private

C-style array of pointers to data values and possible history values. The data must be ordered in such a way that Value[i][t] gives the i-th data value at the time value t. The ordering is chosen so that all the time levels of a particular value can be access from a single pointer to a double. This is required for copying/hijacking functionality. The data should be accessed by using the member functions value(time,ival) and set_value(time,ival,value), where time=0: present.

Definition at line 116 of file nodes.h.

Referenced by add_values_to_vector(), oomph::HijackedData::clear_copied_pointers(), oomph::CopiedData::clear_copied_pointers(), oomph::CopiedData::CopiedData(), Data(), delete_value_storage(), does_pointer_correspond_to_value(), oomph::HijackedData::HijackedData(), read_values_from_vector(), oomph::HijackedData::reset_copied_pointers(), oomph::CopiedData::reset_copied_pointers(), resize(), oomph::SolidNode::set_external_variable_position_pt(), oomph::SolidNode::set_position_time_stepper(), set_time_stepper(), set_value(), oomph::SolidNode::SolidNode(), value(), value_pt(), oomph::CopiedData::~CopiedData(), and oomph::HijackedData::~HijackedData().


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