Public Member Functions | Private Attributes | List of all members
oomph::Spine Class Reference

Spines are used for algebraic node update operations in free-surface fluid problems: They form the back-bones along which nodes in a a free-surface mesh are located. Typically, the free surface is located at the "end" of the spine; the nodes in the interior of the mesh are located at fixed fractions along the spine. The key Data member of the Spine object is its "height" – usually an unknown in the problem – which is used by the SpineNode's node update function to update the SpineNode's position. More...

#include <spines.h>

Public Member Functions

 Spine ()
 Default constructor: Create the Spine and initialise its height to zero. More...
 
 Spine (const double &height)
 Constructor: Create the Spine and initialise its height to the specified value. More...
 
 Spine (const double &height, const Vector< Data * > &geom_data_pt)
 Constructor: Create the Spine and initialise its height to the specified value. Store the vector of (pointers to) the additional geometric Data that is required during the node update operation for this Spine. More...
 
 Spine (const double &height, const Vector< Data * > &geom_data_pt, const Vector< GeomObject * > &geom_object_pt)
 Constructor: Create the Spine and initialise its height to the specified value. Store the vector of (pointers to) the additional geometric Data that is required during the node update operation; also store vector of (pointers to) GeomObjects that is required during the node update operation for this Spine. More...
 
 ~Spine ()
 Destructor: Wipe Data object that stores the Spine height. All other objects (geometric Data and geometric objects) were created outside the Spine and must be deleted there. More...
 
double & height ()
 Access function to spine height. More...
 
Data *& spine_height_pt ()
 Access function to Data object that stores the spine height. More...
 
Dataspine_height_pt () const
 Access function to Data object that stores the spine height (const version) More...
 
unsigned ngeom_data ()
 Number of geometric Data that is involved in the node update operations for this Spine. More...
 
void set_geom_data_pt (const Vector< Data * > &geom_data_pt)
 Set vector of (pointers to) geometric Data that is involved in the node update operations for this Spine. Wipes any previously existing geometric Data. More...
 
void add_geom_data_pt (Data *geom_data_pt)
 Add (pointer to) geometric Data that is involved in the node update operations for this Spine. More...
 
Data *& geom_data_pt (const unsigned &i)
 Return i-th geometric Data that is involved in the node update operations for this Spine. More...
 
Datageom_data_pt (const unsigned &i) const
 Return i-th geometric Data that is involved in the node update operations for this Spine. Const version. More...
 
Vector< Data * > & vector_geom_data_pt ()
 Return the vector of geometric data. More...
 
unsigned ngeom_object ()
 Number of geometric objects that is involved in the node update operations for this Spine. More...
 
void set_geom_object_pt (const Vector< GeomObject * > &geom_object_pt)
 Set vector of (pointers to) geometric objects that is involved in the node update operations for this Spine. More...
 
void add_geom_object_pt (GeomObject *geom_object_pt)
 Add (pointer to) geometric object that is involved in the node update operations for this Spine. More...
 
GeomObject *& geom_object_pt (const unsigned &i)
 Return i-th geometric object that is involved in the node update operations for this Spine. More...
 
GeomObjectgeom_object_pt (const unsigned &i) const
 Return i-th geometric object that is involved in the node update operations for this Spine. Const version. More...
 
Vector< GeomObject * > & vector_geom_object_pt ()
 Return the vector of all geometric objects that affect this spine. More...
 
unsigned ngeom_parameter ()
 Number of geometric parameters that are involved in the node update operations for this Spine. More...
 
void set_geom_parameter (const Vector< double > &geom_parameter)
 Set vector of geometric parameters that are involved in the node update operations for this Spine. Wipes any previously existing geometric parameters. More...
 
void add_geom_parameter (const double &geom_parameter)
 Add geometric parameter involved in the node update operations for this Spine. More...
 
double & geom_parameter (const unsigned &i)
 Return i-th geometric parameter that is involved in the node update operations for this Spine. More...
 
const double & geom_parameter (const unsigned &i) const
 Return i-th geometric parameter that is involved in the node update operations for this Spine. Const version. More...
 

Private Attributes

Vector< Data * > Geom_data_pt
 Data that stores the spine height. More...
 
Vector< GeomObject * > Geom_object_pt
 Vector that stores the pointers to geometric objects that is involved in the node update operation. More...
 
Vector< double > Geom_parameter
 Vector that stores doubles that are used in the geometric updates. More...
 

Detailed Description

Spines are used for algebraic node update operations in free-surface fluid problems: They form the back-bones along which nodes in a a free-surface mesh are located. Typically, the free surface is located at the "end" of the spine; the nodes in the interior of the mesh are located at fixed fractions along the spine. The key Data member of the Spine object is its "height" – usually an unknown in the problem – which is used by the SpineNode's node update function to update the SpineNode's position.

In more complex problems (such as the case where a fluid layer is deposited on an elastic body), the node update function can depend on additional information, such as the GeomObject representation of the elastic body, and additional Data objects wich specify the position on the GeomObject from which the Spine emanates. The Spine class therefore provides storage for pointers to GeomObjects and storage for any additional geometric Data that may be required during node update operations.

Definition at line 63 of file spines.h.

Constructor & Destructor Documentation

◆ Spine() [1/4]

oomph::Spine::Spine ( )
inline

Default constructor: Create the Spine and initialise its height to zero.

Definition at line 68 of file spines.h.

References Geom_data_pt.

◆ Spine() [2/4]

oomph::Spine::Spine ( const double &  height)
inline

Constructor: Create the Spine and initialise its height to the specified value.

Definition at line 77 of file spines.h.

References Geom_data_pt, and height().

◆ Spine() [3/4]

oomph::Spine::Spine ( const double &  height,
const Vector< Data * > &  geom_data_pt 
)
inline

Constructor: Create the Spine and initialise its height to the specified value. Store the vector of (pointers to) the additional geometric Data that is required during the node update operation for this Spine.

Definition at line 90 of file spines.h.

References geom_data_pt(), Geom_data_pt, height(), and i.

◆ Spine() [4/4]

oomph::Spine::Spine ( const double &  height,
const Vector< Data * > &  geom_data_pt,
const Vector< GeomObject * > &  geom_object_pt 
)
inline

Constructor: Create the Spine and initialise its height to the specified value. Store the vector of (pointers to) the additional geometric Data that is required during the node update operation; also store vector of (pointers to) GeomObjects that is required during the node update operation for this Spine.

Definition at line 115 of file spines.h.

References geom_data_pt(), Geom_data_pt, height(), and i.

◆ ~Spine()

oomph::Spine::~Spine ( )
inline

Destructor: Wipe Data object that stores the Spine height. All other objects (geometric Data and geometric objects) were created outside the Spine and must be deleted there.

Definition at line 142 of file spines.h.

References Geom_data_pt.

Member Function Documentation

◆ add_geom_data_pt()

void oomph::Spine::add_geom_data_pt ( Data geom_data_pt)
inline

Add (pointer to) geometric Data that is involved in the node update operations for this Spine.

Definition at line 191 of file spines.h.

References geom_data_pt(), and Geom_data_pt.

◆ add_geom_object_pt()

void oomph::Spine::add_geom_object_pt ( GeomObject geom_object_pt)
inline

Add (pointer to) geometric object that is involved in the node update operations for this Spine.

Definition at line 237 of file spines.h.

References geom_object_pt(), and Geom_object_pt.

◆ add_geom_parameter()

void oomph::Spine::add_geom_parameter ( const double &  geom_parameter)
inline

Add geometric parameter involved in the node update operations for this Spine.

Definition at line 280 of file spines.h.

References geom_parameter(), and Geom_parameter.

◆ geom_data_pt() [1/2]

Data *& oomph::Spine::geom_data_pt ( const unsigned &  i)
inline

Return i-th geometric Data that is involved in the node update operations for this Spine.

Definition at line 198 of file spines.h.

References Geom_data_pt, and i.

Referenced by add_geom_data_pt(), oomph::SpineNode::all_geom_data_pt(), set_geom_data_pt(), and Spine().

◆ geom_data_pt() [2/2]

Data * oomph::Spine::geom_data_pt ( const unsigned &  i) const
inline

Return i-th geometric Data that is involved in the node update operations for this Spine. Const version.

Definition at line 205 of file spines.h.

References Geom_data_pt, and i.

◆ geom_object_pt() [1/2]

GeomObject *& oomph::Spine::geom_object_pt ( const unsigned &  i)
inline

◆ geom_object_pt() [2/2]

GeomObject * oomph::Spine::geom_object_pt ( const unsigned &  i) const
inline

Return i-th geometric object that is involved in the node update operations for this Spine. Const version.

Definition at line 251 of file spines.h.

References Geom_object_pt, and i.

◆ geom_parameter() [1/2]

double & oomph::Spine::geom_parameter ( const unsigned &  i)
inline

◆ geom_parameter() [2/2]

const double & oomph::Spine::geom_parameter ( const unsigned &  i) const
inline

Return i-th geometric parameter that is involved in the node update operations for this Spine. Const version.

Definition at line 294 of file spines.h.

References Geom_parameter, and i.

◆ height()

double & oomph::Spine::height ( )
inline

◆ ngeom_data()

unsigned oomph::Spine::ngeom_data ( )
inline

Number of geometric Data that is involved in the node update operations for this Spine.

Definition at line 171 of file spines.h.

References Geom_data_pt.

Referenced by oomph::SpineNode::ngeom_data().

◆ ngeom_object()

unsigned oomph::Spine::ngeom_object ( )
inline

Number of geometric objects that is involved in the node update operations for this Spine.

Definition at line 218 of file spines.h.

References Geom_object_pt.

Referenced by oomph::SpineNode::ngeom_object().

◆ ngeom_parameter()

unsigned oomph::Spine::ngeom_parameter ( )
inline

Number of geometric parameters that are involved in the node update operations for this Spine.

Definition at line 265 of file spines.h.

References Geom_parameter.

◆ set_geom_data_pt()

void oomph::Spine::set_geom_data_pt ( const Vector< Data * > &  geom_data_pt)
inline

Set vector of (pointers to) geometric Data that is involved in the node update operations for this Spine. Wipes any previously existing geometric Data.

Definition at line 179 of file spines.h.

References geom_data_pt(), Geom_data_pt, and i.

◆ set_geom_object_pt()

void oomph::Spine::set_geom_object_pt ( const Vector< GeomObject * > &  geom_object_pt)
inline

Set vector of (pointers to) geometric objects that is involved in the node update operations for this Spine.

Definition at line 225 of file spines.h.

References geom_object_pt(), Geom_object_pt, and i.

Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::ChannelSpineMesh< ELEMENT >::build_channel_spine_mesh(), and oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::reposition_spines().

◆ set_geom_parameter()

void oomph::Spine::set_geom_parameter ( const Vector< double > &  geom_parameter)
inline

Set vector of geometric parameters that are involved in the node update operations for this Spine. Wipes any previously existing geometric parameters.

Definition at line 273 of file spines.h.

References geom_parameter(), and Geom_parameter.

Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::ChannelSpineMesh< ELEMENT >::build_channel_spine_mesh(), and oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::reposition_spines().

◆ spine_height_pt() [1/2]

Data *& oomph::Spine::spine_height_pt ( )
inline

◆ spine_height_pt() [2/2]

Data * oomph::Spine::spine_height_pt ( ) const
inline

Access function to Data object that stores the spine height (const version)

Definition at line 163 of file spines.h.

References Geom_data_pt.

◆ vector_geom_data_pt()

Vector< Data * > & oomph::Spine::vector_geom_data_pt ( )
inline

Return the vector of geometric data.

Definition at line 211 of file spines.h.

References Geom_data_pt.

◆ vector_geom_object_pt()

Vector< GeomObject * > & oomph::Spine::vector_geom_object_pt ( )
inline

Return the vector of all geometric objects that affect this spine.

Definition at line 258 of file spines.h.

References Geom_object_pt.

Member Data Documentation

◆ Geom_data_pt

Vector<Data*> oomph::Spine::Geom_data_pt
private

Data that stores the spine height.

Vector that stores the pointers to additional geometric Data

Definition at line 305 of file spines.h.

Referenced by add_geom_data_pt(), geom_data_pt(), height(), ngeom_data(), set_geom_data_pt(), Spine(), spine_height_pt(), vector_geom_data_pt(), and ~Spine().

◆ Geom_object_pt

Vector<GeomObject*> oomph::Spine::Geom_object_pt
private

Vector that stores the pointers to geometric objects that is involved in the node update operation.

Definition at line 309 of file spines.h.

Referenced by add_geom_object_pt(), geom_object_pt(), ngeom_object(), set_geom_object_pt(), and vector_geom_object_pt().

◆ Geom_parameter

Vector<double> oomph::Spine::Geom_parameter
private

Vector that stores doubles that are used in the geometric updates.

Definition at line 312 of file spines.h.

Referenced by add_geom_parameter(), geom_parameter(), ngeom_parameter(), and set_geom_parameter().


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