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)=delete
 Broken copy constructor. More...
 
void operator= (const Data &)=delete
 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)
 Output operator: output all values at all times, along with any extra information stored for the timestepper. More...
 

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 85 of file nodes.h.

Constructor & Destructor Documentation

◆ Data() [1/4]

oomph::Data::Data ( )

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

Default constructor.

Definition at line 237 of file nodes.cc.

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

◆ Data() [2/4]

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

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

◆ Data() [3/4]

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.

◆ Data() [4/4]

oomph::Data::Data ( const Data data)
delete

Broken copy constructor.

◆ ~Data()

oomph::Data::~Data ( )
virtual

Destructor, deallocates memory assigned for data.

Virtual destructor, deallocates memory assigned for data.

Definition at line 483 of file nodes.cc.

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

Member Function Documentation

◆ add_copy()

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 76 of file nodes.cc.

References Copy_of_data_pt, i, and Ncopies.

Referenced by oomph::CopiedData::CopiedData(), oomph::HijackedData::HijackedData(), oomph::BoundaryNodeBase::make_node_periodic(), and oomph::BoundaryNodeBase::make_nodes_periodic().

◆ add_eqn_numbers_to_vector()

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 1236 of file nodes.cc.

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

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

◆ add_value_pt_to_map()

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.

Reimplemented in oomph::SolidNode.

Definition at line 1089 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().

◆ add_values_to_vector()

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 1112 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().

◆ assign_eqn_numbers()

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 896 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::BoundaryNode< NODE_TYPE >::assign_eqn_numbers(), oomph::SolidNode::assign_eqn_numbers(), and oomph::GeneralisedElement::assign_internal_eqn_numbers().

◆ clear_copied_pointers()

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 176 of file nodes.cc.

Referenced by ~Data().

◆ constrain()

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 432 of file nodes.h.

References eqn_number(), i, Is_constrained, and Is_pinned.

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

◆ constrain_all()

void oomph::Data::constrain_all ( )
inline

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

Definition at line 451 of file nodes.h.

References constrain(), i, and Nvalue.

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

◆ copy()

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

Copy Data values from specified Data object.

Definition at line 601 of file nodes.cc.

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

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

◆ delete_value_storage()

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 187 of file nodes.cc.

References Eqn_number, and Value.

Referenced by oomph::BoundaryNodeBase::make_node_periodic(), oomph::BoundaryNodeBase::make_nodes_periodic(), and ~Data().

◆ describe_dofs()

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 939 of file nodes.cc.

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

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

◆ does_pointer_correspond_to_value()

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 568 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().

◆ dump()

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 645 of file nodes.cc.

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

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

◆ eqn_number() [1/2]

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

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

Definition at line 367 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::ElementWithMovingNodes::assign_all_generic_local_eqn_numbers(), oomph::SpectralElement::assign_all_generic_local_eqn_numbers(), assign_eqn_numbers(), oomph::ElementWithExternalElement::assign_external_interaction_data_local_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::AdvectionDiffusionEquations< DIM >::dinterpolated_u_adv_diff_ddata(), oomph::RefineableAdvectionDiffusionEquations< DIM >::dinterpolated_u_adv_diff_ddata(), oomph::RefineableAxisymAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::RefineableSphericalAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::SphericalAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::SteadyAxisymAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::AxisymAdvectionDiffusionEquations::dinterpolated_u_axi_adv_diff_ddata(), oomph::AxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::RefineableAxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::NavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::SpaceTimeNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< 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(), 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::SpaceTimeNavierStokesEquations< DIM >::pin_all_non_pressure_dofs(), oomph::SpaceTimeNavierStokesMixedOrderEquations< 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().

◆ eqn_number() [2/2]

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

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

Definition at line 376 of file nodes.h.

References Eqn_number, i, and range_check().

◆ eqn_number_pt()

long* oomph::Data::eqn_number_pt ( const unsigned &  i)
inline

◆ is_a_copy() [1/2]

virtual bool oomph::Data::is_a_copy ( ) const
inlinevirtual

◆ is_a_copy() [2/2]

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 261 of file nodes.h.

◆ is_constrained()

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

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

Definition at line 472 of file nodes.h.

References Eqn_number, i, and Is_constrained.

Referenced by assign_eqn_numbers(), oomph::Node::assign_eqn_numbers(), oomph::LinearisedQCrouzeixRaviartElement::pin_real_or_imag(), and oomph::LinearisedQCrouzeixRaviartElement::unpin_real_or_imag().

◆ is_halo()

bool oomph::Data::is_halo ( ) const
inline

◆ is_pinned()

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

◆ is_segregated_solve_pinned()

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 424 of file nodes.h.

References Eqn_number, i, and Is_segregated_solve_pinned.

Referenced by assign_eqn_numbers().

◆ non_halo_proc_ID()

int oomph::Data::non_halo_proc_ID ( )
inline

◆ ntstorage()

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 879 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(), 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::ProjectableAdvectionDiffusionReactionElement< ADR_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableAxisymLinearElasticityElement< AXISYM_LINEAR_ELAST_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableAxisymmetricTaylorHoodElement< TAYLOR_HOOD_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableAxisymmetricCrouzeixRaviartElement< CROUZEIX_RAVIART_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableAxisymmetricPoroelasticityElement< AXISYMMETRIC_POROELASTICITY_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableDarcyElement< DARCY_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableDisplacementBasedFoepplvonKarmanElement< FVK_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableFoepplvonKarmanElement< FVK_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableFourierDecomposedHelmholtzElement< FOURIER_DECOMPOSED_HELMHOLTZ_ELEMENT >::nhistory_values_for_projection(), oomph::GeneralisedNewtonianProjectableAxisymmetricTaylorHoodElement< TAYLOR_HOOD_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::GenericLagrangeInterpolatedProjectableElement< ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableHelmholtzElement< HELMHOLTZ_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableLinearElasticityElement< LINEAR_ELAST_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableTaylorHoodElement< TAYLOR_HOOD_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableCrouzeixRaviartElement< CROUZEIX_RAVIART_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectablePMLFourierDecomposedHelmholtzElement< FOURIER_DECOMPOSED_HELMHOLTZ_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectablePMLHelmholtzElement< HELMHOLTZ_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectablePMLTimeHarmonicLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectablePoissonElement< POISSON_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableUnsteadyHeatSpaceTimeElement< UNSTEADY_HEAT_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableUnsteadyHeatMixedOrderSpaceTimeElement< UNSTEADY_HEAT_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableTimeHarmonicFourierDecomposedLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableTimeHarmonicLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::nhistory_values_for_projection(), oomph::ProjectableUnsteadyHeatElement< UNSTEADY_HEAT_ELEMENT >::nhistory_values_for_projection(), oomph::SpectralPeriodicOrbitElement< NNODE_1D >::num_Z2_flux_terms(), oomph::TreeBasedRefineableMeshBase::p_adapt_mesh(), range_check(), read(), read_values_from_vector(), resize(), set_time_stepper(), and oomph::TreeBasedRefineableMeshBase::synchronise_nonhanging_nodes().

◆ nvalue()

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

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

Definition at line 483 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::ElementWithMovingNodes::assign_all_generic_local_eqn_numbers(), oomph::SpectralElement::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< NSTEPS >::assign_initial_data_values(), oomph::BDF< NSTEPS >::assign_initial_data_values(), oomph::Newmark< NSTEPS >::assign_initial_data_values(), oomph::Newmark< NSTEPS >::assign_initial_data_values_stage1(), oomph::Newmark< NSTEPS >::assign_initial_data_values_stage2(), oomph::Steady< NSTEPS >::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::Circle::Circle(), oomph::Multi_domain_functions::construct_new_external_halo_master_node_helper(), oomph::Missing_masters_functions::construct_new_external_halo_master_node_helper(), oomph::Multi_domain_functions::construct_new_external_halo_node_helper(), oomph::Missing_masters_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::ProjectableAxisymmetricPoroelasticityElement< AXISYMMETRIC_POROELASTICITY_ELEMENT >::data_values_of_field(), oomph::ProjectableDarcyElement< DARCY_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::Ellipse::Ellipse(), oomph::GeneralisedElement::external_local_eqn(), oomph::GeneralisedElement::fill_in_jacobian_from_external_by_fd(), oomph::GeneralisedElement::fill_in_jacobian_from_internal_by_fd(), oomph::FiniteElement::fill_in_jacobian_from_nodal_by_fd(), oomph::RefineableElement::fill_in_jacobian_from_nodal_by_fd(), oomph::Problem::get_data_to_be_sent_during_load_balancing(), oomph::AxisymmetricQCrouzeixRaviartElement::get_dof_numbers_for_unknowns(), oomph::AxisymmetricQTaylorHoodElement::get_dof_numbers_for_unknowns(), oomph::AxisymmetricTCrouzeixRaviartElement::get_dof_numbers_for_unknowns(), oomph::BiharmonicEquations< DIM >::get_dof_numbers_for_unknowns(), oomph::GeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::get_dof_numbers_for_unknowns(), oomph::GeneralisedNewtonianAxisymmetricQTaylorHoodElement::get_dof_numbers_for_unknowns(), oomph::GeneralisedNewtonianAxisymmetricTCrouzeixRaviartElement::get_dof_numbers_for_unknowns(), oomph::RefineableAdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >::get_dof_numbers_for_unknowns(), oomph::ClampedHermiteShellBoundaryConditionElement::get_dof_numbers_for_unknowns(), oomph::BlockPrecQTaylorHoodSpaceTimeElement::get_dof_numbers_for_unknowns(), oomph::BlockPrecQTaylorHoodMixedOrderSpaceTimeElement::get_dof_numbers_for_unknowns(), oomph::QSphericalCrouzeixRaviartElement::get_dof_numbers_for_unknowns(), oomph::QSphericalTaylorHoodElement::get_dof_numbers_for_unknowns(), oomph::Problem::get_dofs(), oomph::ProjectablePMLTimeHarmonicLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::get_field(), oomph::ProjectableTimeHarmonicFourierDecomposedLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::get_field(), oomph::ProjectableTimeHarmonicLinearElasticityElement< 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::FiniteElement::identify_field_data_for_interactions(), oomph::RefineableElement::identify_field_data_for_interactions(), oomph::AxisymmetricTCrouzeixRaviartElement::identify_pressure_data(), oomph::GeneralisedNewtonianAxisymmetricTCrouzeixRaviartElement::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::ProjectablePMLTimeHarmonicLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::local_equation(), oomph::ProjectableTimeHarmonicFourierDecomposedLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::local_equation(), oomph::ProjectableTimeHarmonicLinearElasticityElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >::local_equation(), 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::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::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::SpaceTimeNavierStokesEquations< DIM >::pin_all_non_pressure_dofs(), oomph::SpaceTimeNavierStokesMixedOrderEquations< 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(), oomph::PseudoBucklingRing::PseudoBucklingRing(), 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::Problem::send_data_to_be_sent_during_load_balancing(), 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::Steady< NSTEPS >::shift_time_values(), oomph::Newmark< NSTEPS >::shift_time_values(), oomph::NewmarkBDF< NSTEPS >::shift_time_values(), oomph::BDF< NSTEPS >::shift_time_values(), oomph::TR::shift_time_values(), oomph::MGSolver< DIM >::solve(), oomph::StraightLine::StraightLine(), 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().

◆ operator=()

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

Broken assignment operator.

◆ pin()

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

Pin the i-th stored variable.

Definition at line 385 of file nodes.h.

References eqn_number(), i, 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::AxisymmetricQTaylorHoodElement::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricQTaylorHoodElement::fix_pressure(), oomph::LinearisedAxisymmetricQTaylorHoodElement::fix_pressure(), oomph::LinearisedQTaylorHoodElement::fix_pressure(), oomph::AxisymmetricTCrouzeixRaviartElement::fix_pressure(), oomph::AxisymmetricTTaylorHoodElement::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricTCrouzeixRaviartElement::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricTTaylorHoodElement::fix_pressure(), oomph::GeneralisedNewtonianQCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianQTaylorHoodElement< DIM >::fix_pressure(), oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianTCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianTTaylorHoodElement< DIM >::fix_pressure(), oomph::QCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::QTaylorHoodElement< DIM >::fix_pressure(), oomph::PRefineableQCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::TCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::TTaylorHoodElement< DIM >::fix_pressure(), oomph::PolarCrouzeixRaviartElement::fix_pressure(), oomph::PolarTaylorHoodElement::fix_pressure(), oomph::QTaylorHoodSpaceTimeElement< DIM >::fix_pressure(), oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >::fix_pressure(), oomph::QSphericalCrouzeixRaviartElement::fix_pressure(), oomph::QSphericalTaylorHoodElement::fix_pressure(), oomph::AxisymmetricQCrouzeixRaviartElement::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::fix_pressure(), oomph::LinearisedAxisymmetricQCrouzeixRaviartElement::fix_pressure(), oomph::LinearisedQCrouzeixRaviartElement::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::AxisymmetricTTaylorHoodElement::pin_all_nodal_pressure_dofs(), oomph::GeneralisedNewtonianAxisymmetricTTaylorHoodElement::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::SpaceTimeNavierStokesEquations< DIM >::pin_all_non_pressure_dofs(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::pin_all_non_pressure_dofs(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::pin_all_spines(), oomph::ImmersedRigidBodyElement::pin_centre_of_mass_coordinate(), oomph::RefineableAxisymmetricQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableLinearisedQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableQTaylorHoodElement< DIM >::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineablePolarTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableQSphericalTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableQPVDElementWithContinuousPressure< DIM >::pin_elemental_redundant_nodal_solid_pressures(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::pin_p_value(), oomph::TRaviartThomasDarcyElement< ORDER >::pin_p_value(), oomph::TPoroelasticityElement< ORDER >::pin_p_value(), oomph::SolidNode::pin_position(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::pin_q_edge_value(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::pin_q_internal_value(), oomph::TRaviartThomasDarcyElement< ORDER >::pin_q_internal_value(), oomph::TPoroelasticityElement< ORDER >::pin_q_internal_value(), oomph::LinearisedQCrouzeixRaviartElement::pin_real_or_imag(), 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::DisplacementBasedFoepplvonKarmanEquations::use_linear_bending_model(), oomph::FoepplvonKarmanEquations::use_linear_bending_model(), oomph::WomersleyMesh< WOMERSLEY_ELEMENT >::WomersleyMesh(), and oomph::WomersleyProblem< ELEMENT, DIM >::WomersleyProblem().

◆ pin_all()

void oomph::Data::pin_all ( )
inline

◆ range_check()

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 47 of file nodes.cc.

References i, ntstorage(), Nvalue, and t.

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

◆ read()

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

Read data object from a file.

Read data object from file.

Definition at line 672 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::Mesh::read(), oomph::Node::read(), and oomph::SpineMesh::read().

◆ read_eqn_numbers_from_vector()

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 1274 of file nodes.cc.

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

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

◆ read_values_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 1182 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().

◆ remove_copy()

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 102 of file nodes.cc.

References Copy_of_data_pt, i, and Ncopies.

Referenced by oomph::BoundaryNode< NODE_TYPE >::~BoundaryNode(), oomph::CopiedData::~CopiedData(), and oomph::HijackedData::~HijackedData().

◆ reset_copied_pointers()

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 162 of file nodes.cc.

Referenced by resize(), and set_time_stepper().

◆ resize()

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 1002 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().

◆ self_test()

unsigned oomph::Data::self_test ( )

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

Definition at line 965 of file nodes.cc.

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

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

◆ set_halo()

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 520 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().

◆ set_nonhalo()

void oomph::Data::set_nonhalo ( )
inline

Label the node as not being a halo.

Definition at line 526 of file nodes.h.

References Non_halo_proc_ID.

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

◆ set_time_stepper()

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 406 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::GeneralisedElement::set_internal_data_time_stepper(), oomph::SolidNode::set_position_time_stepper(), oomph::AxisymmetricPoroelasticityEquations::set_q_internal_timestepper(), and oomph::PoroelasticityEquations< DIM >::set_q_internal_timestepper().

◆ set_value() [1/2]

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 271 of file nodes.h.

References i, range_check(), and Value.

Referenced by oomph::WomersleyProblem< 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< NSTEPS >::assign_initial_data_values(), oomph::BDF< NSTEPS >::assign_initial_data_values(), oomph::Newmark< NSTEPS >::assign_initial_data_values(), oomph::Newmark< NSTEPS >::assign_initial_data_values_stage1(), oomph::Newmark< NSTEPS >::assign_initial_data_values_stage2(), oomph::Steady< NSTEPS >::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::Multi_domain_functions::construct_new_external_halo_master_node_helper(), oomph::Missing_masters_functions::construct_new_external_halo_master_node_helper(), oomph::Multi_domain_functions::construct_new_external_halo_node_helper(), oomph::Missing_masters_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::LinearisedQCrouzeixRaviartElement::copy_efunction_to_normalisation(), 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::AxisymmetricQTaylorHoodElement::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricQTaylorHoodElement::fix_pressure(), oomph::LinearisedAxisymmetricQTaylorHoodElement::fix_pressure(), oomph::LinearisedQTaylorHoodElement::fix_pressure(), oomph::AxisymmetricTCrouzeixRaviartElement::fix_pressure(), oomph::AxisymmetricTTaylorHoodElement::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricTCrouzeixRaviartElement::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricTTaylorHoodElement::fix_pressure(), oomph::GeneralisedNewtonianQCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianQTaylorHoodElement< DIM >::fix_pressure(), oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianTCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::GeneralisedNewtonianTTaylorHoodElement< DIM >::fix_pressure(), oomph::QCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::QTaylorHoodElement< DIM >::fix_pressure(), oomph::PRefineableQCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::TCrouzeixRaviartElement< DIM >::fix_pressure(), oomph::TTaylorHoodElement< DIM >::fix_pressure(), oomph::QTaylorHoodSpaceTimeElement< DIM >::fix_pressure(), oomph::QTaylorHoodMixedOrderSpaceTimeElement< DIM >::fix_pressure(), oomph::QSphericalCrouzeixRaviartElement::fix_pressure(), oomph::QSphericalTaylorHoodElement::fix_pressure(), oomph::AxisymmetricQCrouzeixRaviartElement::fix_pressure(), oomph::GeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::fix_pressure(), oomph::LinearisedAxisymmetricQCrouzeixRaviartElement::fix_pressure(), oomph::LinearisedQCrouzeixRaviartElement::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::RefineableAxisymmetricQCrouzeixRaviartElement::further_build(), oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::further_build(), oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement::further_build(), oomph::RefineableLinearisedQCrouzeixRaviartElement::further_build(), oomph::RefineablePolarCrouzeixRaviartElement::further_build(), oomph::RefineableQSphericalCrouzeixRaviartElement::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::FpPressureAdvectionDiffusionProblem< ELEMENT >::pin_all_non_pressure_dofs(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::pin_p_value(), oomph::TPoroelasticityElement< 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::RefineableAxisymmetricQCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::rebuild_from_sons(), oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::rebuild_from_sons(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineableLinearisedQCrouzeixRaviartElement::rebuild_from_sons(), oomph::PRefineableQCrouzeixRaviartElement< DIM >::rebuild_from_sons(), oomph::RefineablePolarCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineableQSphericalCrouzeixRaviartElement::rebuild_from_sons(), oomph::VorticitySmoother< ELEMENT >::recover_vorticity(), oomph::ImmersedRigidBodyTriangleMeshPolygon::reset_reference_configuration(), oomph::ContinuationStorageScheme::set_consistent_pinned_values(), oomph::Problem::set_dofs(), oomph::SolidICProblem::set_newmark_initial_condition_consistently(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::set_p_value(), oomph::TRaviartThomasDarcyElement< ORDER >::set_p_value(), oomph::Problem::set_pinned_values_to_zero(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::set_q_edge(), oomph::TRaviartThomasDarcyElement< ORDER >::set_q_edge(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::set_q_internal(), oomph::TRaviartThomasDarcyElement< 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::Steady< NSTEPS >::shift_time_values(), oomph::Newmark< NSTEPS >::shift_time_values(), oomph::NewmarkBDF< NSTEPS >::shift_time_values(), oomph::BDF< NSTEPS >::shift_time_values(), and oomph::TR::shift_time_values().

◆ set_value() [2/2]

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 281 of file nodes.h.

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

◆ time_stepper_pt() [1/2]

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

Return the pointer to the timestepper.

Definition at line 238 of file nodes.h.

References Time_stepper_pt.

Referenced by oomph::SurfactantTransportInterfaceElement::add_additional_residual_contributions_interface(), oomph::BackupMeshForProjection< GEOMETRIC_ELEMENT >::BackupMeshForProjection(), oomph::LinearElasticityEquationsBase< DIM >::body_force(), oomph::TimeHarmonicLinearElasticityEquationsBase< DIM >::body_force(), oomph::PVDEquationsBase< DIM >::body_force(), oomph::RefineableQElement< 3 >::build(), oomph::RefineableSolidQElement< 3 >::build(), oomph::RefineableQElement< 1 >::build(), oomph::RefineableQElement< 2 >::build(), oomph::RefineableSolidQElement< 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::AxisymmetricPoroelasticityEquations::d2u_dt2(), oomph::PoroelasticityEquations< DIM >::d2u_dt2(), oomph::AxisymmetricLinearElasticityEquationsBase::d2u_dt2_axisymmetric_linear_elasticity(), oomph::LinearWaveEquations< DIM >::d2u_dt2_lin_wave(), oomph::LinearElasticityEquationsBase< DIM >::d2u_dt2_linear_elasticity(), oomph::AdvectionDiffusionReactionEquations< NREAGENT, DIM >::dc_dt_adv_diff_react(), oomph::SurfactantTransportInterfaceElement::dcdt_surface(), oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >::dposition_dt(), oomph::ImmersedRigidBodyElement::dposition_dt(), oomph::AxisymmetricPoroelasticityEquations::dq_edge_dt(), oomph::PoroelasticityEquations< DIM >::dq_edge_dt(), oomph::AxisymmetricPoroelasticityEquations::dq_internal_dt(), oomph::PoroelasticityEquations< DIM >::dq_internal_dt(), oomph::AxisymmetricPoroelasticityEquations::du_dt(), oomph::PoroelasticityEquations< DIM >::du_dt(), oomph::AdvectionDiffusionEquations< DIM >::du_dt_adv_diff(), oomph::AxisymAdvectionDiffusionEquations::du_dt_axi_adv_diff(), oomph::AxisymmetricNavierStokesEquations::du_dt_axi_nst(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::du_dt_axi_nst(), oomph::AxisymmetricLinearElasticityEquationsBase::du_dt_axisymmetric_linear_elasticity(), oomph::GeneralisedAdvectionDiffusionEquations< DIM >::du_dt_cons_adv_diff(), oomph::GeneralisedAxisymAdvectionDiffusionEquations::du_dt_cons_axisym_adv_diff(), oomph::LinearWaveEquations< DIM >::du_dt_lin_wave(), oomph::LinearisedAxisymmetricNavierStokesEquations::du_dt_linearised_axi_nst(), oomph::LinearisedNavierStokesEquations::du_dt_linearised_nst(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::du_dt_nst(), oomph::NavierStokesEquations< DIM >::du_dt_nst(), oomph::PolarNavierStokesEquations::du_dt_pnst(), oomph::SphericalAdvectionDiffusionEquations::du_dt_spherical_adv_diff(), oomph::SphericalNavierStokesEquations::du_dt_spherical_nst(), oomph::UnsteadyHeatEquations< DIM >::du_dt_ust_heat(), oomph::WomersleyEquations< DIM >::du_dt_womersley(), oomph::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::AxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_axi_adv_diff(), oomph::RefineableAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_axi_adv_diff(), oomph::AxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::GeneralisedAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_cons_axisym_adv_diff(), 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::LinearisedNavierStokesEquations::fill_in_generic_residual_contribution_linearised_nst(), oomph::RefineableLinearisedNavierStokesEquations::fill_in_generic_residual_contribution_linearised_nst(), oomph::RefineableSphericalAdvectionDiffusionEquations::fill_in_generic_residual_contribution_spherical_adv_diff(), oomph::SphericalAdvectionDiffusionEquations::fill_in_generic_residual_contribution_spherical_adv_diff(), oomph::RefineableSphericalNavierStokesEquations::fill_in_generic_residual_contribution_spherical_nst(), oomph::SphericalNavierStokesEquations::fill_in_generic_residual_contribution_spherical_nst(), oomph::AxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineablePolarTaylorHoodElement::get_interpolated_values(), oomph::RefineablePolarCrouzeixRaviartElement::get_interpolated_values(), 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::AxisymmetricNavierStokesTractionElement< ELEMENT >::output(), oomph::AxisymmetricPoroelasticityTractionElement< ELEMENT >::output(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::output(), oomph::ProjectableUnsteadyHeatSpaceTimeElement< UNSTEADY_HEAT_ELEMENT >::output(), oomph::ProjectableUnsteadyHeatMixedOrderSpaceTimeElement< UNSTEADY_HEAT_ELEMENT >::output(), oomph::ProjectableUnsteadyHeatElement< UNSTEADY_HEAT_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().

◆ time_stepper_pt() [2/2]

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

Return the pointer to the timestepper (const version).

Definition at line 244 of file nodes.h.

References Time_stepper_pt.

◆ unconstrain()

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 442 of file nodes.h.

References eqn_number(), i, Is_constrained, and Is_unclassified.

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

◆ unconstrain_all()

void oomph::Data::unconstrain_all ( )
inline

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

Definition at line 461 of file nodes.h.

References i, Nvalue, and unconstrain().

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

◆ unpin()

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

Unpin the i-th stored variable.

Definition at line 391 of file nodes.h.

References eqn_number(), i, and Is_unclassified.

Referenced by oomph::RefineableAxisymmetricQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableLinearisedQTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableQTaylorHoodElement< DIM >::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineablePolarTaylorHoodElement::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >::pin_elemental_redundant_nodal_pressure_dofs(), oomph::RefineableQSphericalTaylorHoodElement::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::AxisymmetricTTaylorHoodElement::unpin_all_nodal_pressure_dofs(), oomph::GeneralisedNewtonianAxisymmetricTTaylorHoodElement::unpin_all_nodal_pressure_dofs(), oomph::ImmersedRigidBodyElement::unpin_centre_of_mass_coordinate(), oomph::RefineableAxisymmetricQTaylorHoodElement::unpin_elemental_pressure_dofs(), oomph::RefineableAxisymmetricQCrouzeixRaviartElement::unpin_elemental_pressure_dofs(), oomph::RefineableGeneralisedNewtonianAxisymmetricQTaylorHoodElement::unpin_elemental_pressure_dofs(), oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::unpin_elemental_pressure_dofs(), oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >::unpin_elemental_pressure_dofs(), oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::unpin_elemental_pressure_dofs(), oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::unpin_elemental_pressure_dofs(), oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement::unpin_elemental_pressure_dofs(), oomph::RefineableLinearisedAxisymmetricQTaylorHoodElement::unpin_elemental_pressure_dofs(), oomph::RefineableLinearisedQCrouzeixRaviartElement::unpin_elemental_pressure_dofs(), oomph::RefineableLinearisedQTaylorHoodElement::unpin_elemental_pressure_dofs(), oomph::RefineableQTaylorHoodElement< DIM >::unpin_elemental_pressure_dofs(), oomph::RefineableQCrouzeixRaviartElement< DIM >::unpin_elemental_pressure_dofs(), oomph::PRefineableQCrouzeixRaviartElement< DIM >::unpin_elemental_pressure_dofs(), oomph::RefineablePolarTaylorHoodElement::unpin_elemental_pressure_dofs(), oomph::RefineablePolarCrouzeixRaviartElement::unpin_elemental_pressure_dofs(), oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >::unpin_elemental_pressure_dofs(), oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >::unpin_elemental_pressure_dofs(), oomph::RefineableQSphericalTaylorHoodElement::unpin_elemental_pressure_dofs(), oomph::RefineableQSphericalCrouzeixRaviartElement::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::AxisymmetricTTaylorHoodElement::unpin_proper_nodal_pressure_dofs(), oomph::GeneralisedNewtonianAxisymmetricTTaylorHoodElement::unpin_proper_nodal_pressure_dofs(), oomph::GeneralisedNewtonianTTaylorHoodElement< DIM >::unpin_proper_nodal_pressure_dofs(), oomph::TTaylorHoodElement< DIM >::unpin_proper_nodal_pressure_dofs(), oomph::LinearisedQCrouzeixRaviartElement::unpin_real_or_imag(), oomph::ImmersedRigidBodyElement::unpin_rotation_angle(), and oomph::WomersleyMesh< WOMERSLEY_ELEMENT >::WomersleyMesh().

◆ unpin_all()

void oomph::Data::unpin_all ( )
inline

Unpin all the stored variables.

Definition at line 407 of file nodes.h.

References Eqn_number, i, Is_unclassified, and Nvalue.

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

◆ value() [1/4]

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 293 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< NSTEPS >::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::LinearisedQCrouzeixRaviartElement::copy_efunction_to_normalisation(), oomph::ImmersedRigidBodyElement::dposition_dt(), dump(), oomph::LinearisedNavierStokesEigenfunctionNormalisationElement::eigenvalue(), oomph::ODEElement::fill_in_contribution_to_jacobian(), oomph::ODEElement::fill_in_contribution_to_residuals(), oomph::PolarNavierStokesTractionElement< ELEMENT >::fill_in_generic_residual_contribution(), oomph::NavierStokesFluxControlElement< ELEMENT >::fill_in_generic_residual_contribution_fluid_traction(), oomph::NavierStokesWomersleyPressureControlElement::fill_in_generic_residual_contribution_pressure_control(), oomph::RefineableAxisymmetricQCrouzeixRaviartElement::further_build(), oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::further_build(), oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::further_build(), oomph::RefineableQCrouzeixRaviartElement< DIM >::further_build(), oomph::RefineablePolarCrouzeixRaviartElement::further_build(), oomph::Problem::get_dofs(), oomph::NavierStokesSurfaceDragTorqueElement< ELEMENT >::get_drag_and_torque(), oomph::YoungLaplaceEquations::get_kappa(), 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::NavierStokesSurfaceDragTorqueElement< ELEMENT >::output(), oomph::ImmersedRigidBodyElement::output_centre_of_gravity(), oomph::AxisymmetricQCrouzeixRaviartElement::p_axi_nst(), oomph::AxisymmetricTCrouzeixRaviartElement::p_axi_nst(), oomph::GeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::p_axi_nst(), oomph::GeneralisedNewtonianAxisymmetricTCrouzeixRaviartElement::p_axi_nst(), oomph::LinearisedAxisymmetricQCrouzeixRaviartElement::p_linearised_axi_nst(), oomph::LinearisedQCrouzeixRaviartElement::p_linearised_nst(), oomph::GeneralisedNewtonianQCrouzeixRaviartElement< DIM >::p_nst(), oomph::PRefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::p_nst(), oomph::GeneralisedNewtonianTCrouzeixRaviartElement< DIM >::p_nst(), oomph::QCrouzeixRaviartElement< DIM >::p_nst(), oomph::PRefineableQCrouzeixRaviartElement< DIM >::p_nst(), oomph::TCrouzeixRaviartElement< DIM >::p_nst(), oomph::QSphericalCrouzeixRaviartElement::p_spherical_nst(), oomph::VolumeConstraintElement::p_traded(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::p_value(), oomph::TPoroelasticityElement< ORDER >::p_value(), oomph::FluidInterfaceElement::pext(), oomph::post_midpoint_update(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::q_internal(), oomph::TRaviartThomasDarcyElement< ORDER >::q_internal(), oomph::TPoroelasticityElement< ORDER >::q_internal(), oomph::Node::raw_value(), oomph::RefineableAxisymmetricQCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineableGeneralisedNewtonianAxisymmetricQCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::rebuild_from_sons(), oomph::RefineableLinearisedAxisymmetricQCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineableLinearisedQCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineablePolarCrouzeixRaviartElement::rebuild_from_sons(), oomph::RefineableQSphericalCrouzeixRaviartElement::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::Steady< NSTEPS >::shift_time_values(), oomph::Newmark< NSTEPS >::shift_time_values(), oomph::NewmarkBDF< NSTEPS >::shift_time_values(), oomph::BDF< NSTEPS >::shift_time_values(), oomph::TR::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().

◆ value() [2/4]

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 305 of file nodes.h.

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

◆ value() [3/4]

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 517 of file nodes.cc.

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

◆ value() [4/4]

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 503 of file nodes.cc.

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

◆ value_pt() [1/2]

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 324 of file nodes.h.

References i, range_check(), and Value.

Referenced by add_value_pt_to_map(), oomph::Problem::arc_length_step_solve(), oomph::ElementWithMovingNodes::assign_all_generic_local_eqn_numbers(), oomph::SpectralElement::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::ElementWithExternalElement::fill_in_jacobian_from_external_interaction_field_by_fd(), oomph::ElementWithExternalElement::fill_in_jacobian_from_external_interaction_geometric_by_fd(), oomph::GeneralisedElement::fill_in_jacobian_from_internal_by_fd(), oomph::FiniteElement::fill_in_jacobian_from_nodal_by_fd(), oomph::RefineableElement::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::AxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::GeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::NavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineableNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::SpaceTimeNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::PolarCrouzeixRaviartElement::p_pnst(), oomph::SpaceTimeNavierStokesEquations< DIM >::re_st(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::re_st(), oomph::SpaceTimeNavierStokesEquations< DIM >::re_st_pt(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::re_st_pt(), oomph::LinearisedNavierStokesEquations::set_eigenfunction_normalisation_element(), oomph::SolidICProblem::set_newmark_initial_condition_consistently(), oomph::SpaceTimeNavierStokesEquations< DIM >::st(), oomph::SpaceTimeNavierStokesEquations< DIM >::st_pt(), and oomph::YoungLaplaceContactAngleElement< ELEMENT >::u().

◆ value_pt() [2/2]

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 337 of file nodes.h.

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

Friends And Related Function Documentation

◆ BoundaryNode

template<class NODE_TYPE >
friend class BoundaryNode
friend

Definition at line 97 of file nodes.h.

◆ BoundaryNodeBase

friend class BoundaryNodeBase
friend

Definition at line 95 of file nodes.h.

◆ CopiedData

friend class CopiedData
friend

Definition at line 94 of file nodes.h.

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

◆ HijackedData

friend class HijackedData
friend

Definition at line 93 of file nodes.h.

◆ operator<<

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.

◆ SolidNode

friend class SolidNode
friend

Definition at line 102 of file nodes.h.

Member Data Documentation

◆ Copy_of_data_pt

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 127 of file nodes.h.

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

◆ Default_static_time_stepper_pt

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 162 of file nodes.h.

◆ Eqn_number

long* oomph::Data::Eqn_number
private

◆ Is_constrained

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 198 of file nodes.h.

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

◆ Is_pinned

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

◆ Is_segregated_solve_pinned

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 188 of file nodes.h.

Referenced by is_segregated_solve_pinned().

◆ Is_unclassified

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 192 of file nodes.h.

Referenced by oomph::ElementWithMovingNodes::assign_all_generic_local_eqn_numbers(), oomph::SpectralElement::assign_all_generic_local_eqn_numbers(), oomph::GeneralisedElement::assign_internal_and_external_local_eqn_numbers(), oomph::FiniteElement::assign_nodal_local_eqn_numbers(), resize(), self_test(), unconstrain(), unpin(), and unpin_all().

◆ Ncopies

unsigned oomph::Data::Ncopies
protected

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

Definition at line 131 of file nodes.h.

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

◆ Non_halo_proc_ID

int oomph::Data::Non_halo_proc_ID
private

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

Definition at line 140 of file nodes.h.

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

◆ Nvalue

unsigned oomph::Data::Nvalue
private

◆ Time_stepper_pt

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 122 of file nodes.h.

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

◆ Value

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 112 of file nodes.h.

Referenced by add_values_to_vector(), oomph::HijackedData::clear_copied_pointers(), oomph::CopiedData::clear_copied_pointers(), oomph::CopiedData::CopiedData(), delete_value_storage(), does_pointer_correspond_to_value(), oomph::HijackedData::HijackedData(), oomph::BoundaryNodeBase::make_node_periodic(), oomph::BoundaryNodeBase::make_nodes_periodic(), read_values_from_vector(), oomph::HijackedData::reset_copied_pointers(), oomph::CopiedData::reset_copied_pointers(), oomph::BoundaryNode< NODE_TYPE >::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: