Example codes
and tutorials
The (Not-so) Quick Guide
List of tutorials/demo codes
Single-Physics Problems
Poisson
Adaptivity illustrated for Poisson
Advection-Diffusion
Unsteady heat equation
Linear wave equation
The Young-Laplace equation
Navier-Stokes
Free-surface Navier-Stokes
Axisymmetric Navier-Stokes
Solid mechanics
Beam structures
Shell structures
Multi-physics Problems
Fluid-structure interaction
Boussinesq convection
Steady thermoelasticity
Methods-based example codes and tutorials
Mesh generation
Linear solvers and preconditioners
Visualisation of the results
Parallel processing
How to write a new element
How to write a new refineable element
Default nonlinear solvers -- the sequence of action functions
...
Documentation
FE theory and top-down discussion of the data structure
The (Not-so) Quick Guide
Comprehensive bottom-up discussion of the data structure
List of available structured and unstructured meshes
Linear solvers and preconditioners
Visualisation of the results
Parallel processing
Coding conventions and C++ style
Creating documentation
Optimisation - robustness vs. "raw speed"
Linear vs. nonlinear problems
Storing shape functions
Changing the default "full" integration scheme
Disabling the ALE formulation of unsteady equations
C vs. C++ output
Different sparse assembly techniques and the STL memory pool
Publications
Publications
Talks
Journal publications
Theses
Picture show
Download
Copyright
Download/installation instructions
Download page
FAQ & Contact
FAQ
Change log
Bugs and other known problems
Completeness of the library & our "To-Do List"
Contact the developers
Get involved

 


Beta release!

Please note that the library has not been "officially" released. While we continue to work on the documentation, these web pages are likely to contain broken links and documents in draft form. Please send an email to

oomph-lib AT maths DOT man DOT ac DOT uk

if you wish to be informed of the library's "official" release.

oomph::BoundaryNode< NODE_TYPE > Class Template Reference

#include <nodes.h>

Inheritance diagram for oomph::BoundaryNode< NODE_TYPE >:

oomph::BoundaryNodeBase List of all members.

Detailed Description

template<class NODE_TYPE>
class oomph::BoundaryNode< NODE_TYPE >

A template Class for BoundaryNodes; that is Nodes that MAY live on the boundary of a Mesh. The class is formed by a simple composition of the template parameter NODE_TYPE, which must be a Node class and the BoundaryNodeBase class. Final overloading of functions is always in favour of the BoundaryNodeBase implementation; i.e. these nodes can live on boundaries.

Definition at line 1726 of file nodes.h.


Public Member Functions

 BoundaryNode ()
 Default Constructor.
 BoundaryNode (const unsigned &n_dim, const unsigned &n_position_type, const unsigned &initial_n_value)
 Steady constructor, for a BoundaryNode of spatial dimension n_dim. Simply passes all arguments through to the underlying Node constructor which allocates storage for initial_n_value values. NPosition_type is the number of coordinate types needed in the mapping between local and global coordinates (e.g. 1 for Lagrange-type elements; 2 for 1D Hermite elements; 4 for 2D Hermite elements, etc).
 BoundaryNode (TimeStepper *const &time_stepper_pt, const unsigned &n_dim, const unsigned &n_position_type, const unsigned &initial_n_value)
 Unsteady constructor for a BoundaryNode of spatial dimension n_dim. Simply passes all arguments through to the underlygin Node constructor which allocates storage for initial_n_value values with history values as required by the timestepper. n_position_type: # of coordinate types needed in the mapping between local and global coordinates (e.g. 1 for Lagrange-type elements; 2 for 1D Hermite elements; 4 for 2D Hermite elements).
 BoundaryNode (const unsigned &n_lagrangian, const unsigned &n_lagrangian_type, const unsigned &n_dim, const unsigned &n_position_type, const unsigned &initial_n_value)
 Steady constructor for Solid-type boundary nodes. The node has n_lagrangian Lagrangian coordinates of n_lagrangian_type types (1 for Lagrange elements, 2 for 1D Hermite etc.). The Eulerian dimension of the Node is n_dim and we have n_position_type (generalised) Eulerian coordinates. There are initial_n_value values stored at this node.
 BoundaryNode (TimeStepper *const &time_stepper_pt, const unsigned &n_lagrangian, const unsigned &n_lagrangian_type, const unsigned &n_dim, const unsigned &n_position_type, const unsigned &initial_n_value)
 Unsteady constructor for Solid-type boundary nodes Allocates storage for initial_n_value nodal values with history values as required by timestepper. The node has n_lagrangian Lagrangian coordinates of n_lagrangian_type types (1 for Lagrange elements, 2 for 1D Hermite etc.)/ The Eulerian dimension of the Node is n_dim and we have n_position_type generalised Eulerian coordinates.
 ~BoundaryNode ()
 Destructor resets pointers if.
 BoundaryNode (const BoundaryNode< NODE_TYPE > &node)
 Broken copy constructor.
void operator= (const BoundaryNode< NODE_TYPE > &)
 Broken assignment operator.
void get_boundaries_pt (std::set< unsigned > *&boundaries_pt)
 Access to pointer to set of mesh boundaries that this node occupies; NULL if the node is not on any boundary Final overload.
bool is_on_boundary ()
 Test whether the node lies on a boundary Final overload.
bool is_on_boundary (const unsigned &b)
 Test whether the node lies on mesh boundary b Final overload.
void add_to_boundary (const unsigned &b)
 Add the node to mesh boundary b, final overload.
void remove_from_boundary (const unsigned &b)
 Remover the node from mesh boundary b, final overload.
unsigned ncoordinates_on_boundary (const unsigned &b)
 Get the number of boundary coordinates on mesh boundary b.
void get_coordinates_on_boundary (const unsigned &b, Vector< double > &boundary_zeta)
 Return the vector of coordinates on mesh boundary b Final overload.
void set_coordinates_on_boundary (const unsigned &b, const Vector< double > &boundary_zeta)
 Set the vector of coordinates on mesh boundary b Final overload.
void get_coordinates_on_boundary (const unsigned &b, const unsigned &k, Vector< double > &boundary_zeta)
 Return the vector of k-th generalised boundary coordinates on mesh boundary b Final overload.
void set_coordinates_on_boundary (const unsigned &b, const unsigned &k, const Vector< double > &boundary_zeta)
 Set the vector of k-th generalised boundary coordinates on mesh boundary b. Final overload.
void make_periodic (Node *const &node_pt)
 Make the node periodic.
void make_periodic_nodes (const Vector< Node * > &periodic_nodes_pt)
 Make the nodes passed in periodic_nodes periodic from this node.
bool is_a_copy () const
 Return a boolean to indicate whether the data contains any copied values. If the node is periodic all values are copied.
bool is_a_copy (const unsigned &i) const
 Return a boolean to indicate whether the i-th value is a copied value. If the node is periodic all values are copies.
void assign_eqn_numbers (unsigned long &global_ndof, Vector< double * > &dof_pt)
 Overload the equation assignment operation.
void resize (const unsigned &n_value)
 Resize the number of equations.

Private Member Functions

void reset_copied_pointers ()
 Set pointers to the copied data used when we have periodic nodese.
void clear_copied_pointers ()
 Clear pointers to the copied data used when we have periodic nodes Simply zero the pointers to the memory rather than deleting them.

Constructor & Destructor Documentation

template<class NODE_TYPE>
oomph::BoundaryNode< NODE_TYPE >::BoundaryNode (  )  [inline]

Default Constructor.

Definition at line 1767 of file nodes.h.

template<class NODE_TYPE>
oomph::BoundaryNode< NODE_TYPE >::BoundaryNode ( const unsigned &  n_dim,
const unsigned &  n_position_type,
const unsigned &  initial_n_value 
) [inline]

Steady constructor, for a BoundaryNode of spatial dimension n_dim. Simply passes all arguments through to the underlying Node constructor which allocates storage for initial_n_value values. NPosition_type is the number of coordinate types needed in the mapping between local and global coordinates (e.g. 1 for Lagrange-type elements; 2 for 1D Hermite elements; 4 for 2D Hermite elements, etc).

Definition at line 1776 of file nodes.h.

template<class NODE_TYPE>
oomph::BoundaryNode< NODE_TYPE >::BoundaryNode ( TimeStepper *const &  time_stepper_pt,
const unsigned &  n_dim,
const unsigned &  n_position_type,
const unsigned &  initial_n_value 
) [inline]

Unsteady constructor for a BoundaryNode of spatial dimension n_dim. Simply passes all arguments through to the underlygin Node constructor which allocates storage for initial_n_value values with history values as required by the timestepper. n_position_type: # of coordinate types needed in the mapping between local and global coordinates (e.g. 1 for Lagrange-type elements; 2 for 1D Hermite elements; 4 for 2D Hermite elements).

Definition at line 1789 of file nodes.h.

template<class NODE_TYPE>
oomph::BoundaryNode< NODE_TYPE >::BoundaryNode ( const unsigned &  n_lagrangian,
const unsigned &  n_lagrangian_type,
const unsigned &  n_dim,
const unsigned &  n_position_type,
const unsigned &  initial_n_value 
) [inline]

Steady constructor for Solid-type boundary nodes. The node has n_lagrangian Lagrangian coordinates of n_lagrangian_type types (1 for Lagrange elements, 2 for 1D Hermite etc.). The Eulerian dimension of the Node is n_dim and we have n_position_type (generalised) Eulerian coordinates. There are initial_n_value values stored at this node.

Definition at line 1803 of file nodes.h.

template<class NODE_TYPE>
oomph::BoundaryNode< NODE_TYPE >::BoundaryNode ( TimeStepper *const &  time_stepper_pt,
const unsigned &  n_lagrangian,
const unsigned &  n_lagrangian_type,
const unsigned &  n_dim,
const unsigned &  n_position_type,
const unsigned &  initial_n_value 
) [inline]

Unsteady constructor for Solid-type boundary nodes Allocates storage for initial_n_value nodal values with history values as required by timestepper. The node has n_lagrangian Lagrangian coordinates of n_lagrangian_type types (1 for Lagrange elements, 2 for 1D Hermite etc.)/ The Eulerian dimension of the Node is n_dim and we have n_position_type generalised Eulerian coordinates.

Definition at line 1818 of file nodes.h.

template<class NODE_TYPE>
oomph::BoundaryNode< NODE_TYPE >::~BoundaryNode (  )  [inline]

Destructor resets pointers if.

Definition at line 1829 of file nodes.h.

References oomph::BoundaryNodeBase::Copied_node_pt.

template<class NODE_TYPE>
oomph::BoundaryNode< NODE_TYPE >::BoundaryNode ( const BoundaryNode< NODE_TYPE > &  node  )  [inline]

Broken copy constructor.

Definition at line 1844 of file nodes.h.

References oomph::BrokenCopy::broken_copy().


Member Function Documentation

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::add_to_boundary ( const unsigned &  b  )  [inline]

Add the node to mesh boundary b, final overload.

Reimplemented from oomph::BoundaryNodeBase.

Definition at line 1871 of file nodes.h.

References oomph::BoundaryNodeBase::add_to_boundary().

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::assign_eqn_numbers ( unsigned long &  global_ndof,
Vector< double * > &  dof_pt 
) [inline]

Overload the equation assignment operation.

Definition at line 1934 of file nodes.h.

References oomph::Data::assign_eqn_numbers(), oomph::BoundaryNodeBase::Copied_node_pt, and oomph::SolidNode::variable_position_pt().

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::clear_copied_pointers (  )  [inline, private]

Clear pointers to the copied data used when we have periodic nodes Simply zero the pointers to the memory rather than deleting them.

Definition at line 1748 of file nodes.h.

References oomph::BoundaryNodeBase::Copied_node_pt, and OOMPH_EXCEPTION_LOCATION.

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::get_boundaries_pt ( std::set< unsigned > *&  boundaries_pt  )  [inline]

Access to pointer to set of mesh boundaries that this node occupies; NULL if the node is not on any boundary Final overload.

Reimplemented from oomph::BoundaryNodeBase.

Definition at line 1858 of file nodes.h.

References oomph::BoundaryNodeBase::get_boundaries_pt().

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::get_coordinates_on_boundary ( const unsigned &  b,
const unsigned &  k,
Vector< double > &  boundary_zeta 
) [inline]

Return the vector of k-th generalised boundary coordinates on mesh boundary b Final overload.

Reimplemented from oomph::BoundaryNodeBase.

Definition at line 1901 of file nodes.h.

References oomph::BoundaryNodeBase::get_coordinates_on_boundary().

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::get_coordinates_on_boundary ( const unsigned &  b,
Vector< double > &  boundary_zeta 
) [inline]

Return the vector of coordinates on mesh boundary b Final overload.

Reimplemented from oomph::BoundaryNodeBase.

Definition at line 1888 of file nodes.h.

References oomph::BoundaryNodeBase::get_coordinates_on_boundary().

template<class NODE_TYPE>
bool oomph::BoundaryNode< NODE_TYPE >::is_a_copy ( const unsigned &  i  )  const [inline]

Return a boolean to indicate whether the i-th value is a copied value. If the node is periodic all values are copies.

Definition at line 1930 of file nodes.h.

References oomph::BoundaryNodeBase::Copied_node_pt.

template<class NODE_TYPE>
bool oomph::BoundaryNode< NODE_TYPE >::is_a_copy (  )  const [inline]

Return a boolean to indicate whether the data contains any copied values. If the node is periodic all values are copied.

Definition at line 1924 of file nodes.h.

References oomph::BoundaryNodeBase::Copied_node_pt.

template<class NODE_TYPE>
bool oomph::BoundaryNode< NODE_TYPE >::is_on_boundary ( const unsigned &  b  )  [inline]

Test whether the node lies on mesh boundary b Final overload.

Reimplemented from oomph::BoundaryNodeBase.

Definition at line 1867 of file nodes.h.

References oomph::BoundaryNodeBase::is_on_boundary().

template<class NODE_TYPE>
bool oomph::BoundaryNode< NODE_TYPE >::is_on_boundary (  )  [inline]

Test whether the node lies on a boundary Final overload.

Reimplemented from oomph::BoundaryNodeBase.

Definition at line 1863 of file nodes.h.

References oomph::BoundaryNodeBase::is_on_boundary().

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::make_periodic ( Node *const &  node_pt  )  [inline]

Make the node periodic.

Definition at line 1914 of file nodes.h.

References oomph::BoundaryNodeBase::make_node_periodic().

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::make_periodic_nodes ( const Vector< Node * > &  periodic_nodes_pt  )  [inline]

Make the nodes passed in periodic_nodes periodic from this node.

Definition at line 1919 of file nodes.h.

References oomph::BoundaryNodeBase::make_nodes_periodic().

template<class NODE_TYPE>
unsigned oomph::BoundaryNode< NODE_TYPE >::ncoordinates_on_boundary ( const unsigned &  b  )  [inline]

Get the number of boundary coordinates on mesh boundary b.

Reimplemented from oomph::BoundaryNodeBase.

Definition at line 1880 of file nodes.h.

References oomph::BoundaryNodeBase::ncoordinates_on_boundary().

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::operator= ( const BoundaryNode< NODE_TYPE > &   )  [inline]

Broken assignment operator.

Definition at line 1850 of file nodes.h.

References oomph::BrokenCopy::broken_assign().

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::remove_from_boundary ( const unsigned &  b  )  [inline]

Remover the node from mesh boundary b, final overload.

Reimplemented from oomph::BoundaryNodeBase.

Definition at line 1875 of file nodes.h.

References oomph::BoundaryNodeBase::remove_from_boundary().

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::reset_copied_pointers (  )  [inline, private]

Set pointers to the copied data used when we have periodic nodese.

Definition at line 1731 of file nodes.h.

References oomph::BoundaryNodeBase::Copied_node_pt, and OOMPH_EXCEPTION_LOCATION.

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::resize ( const unsigned &  n_value  )  [inline]

Resize the number of equations.

Definition at line 1959 of file nodes.h.

References oomph::BoundaryNodeBase::Copied_node_pt, oomph::Data::nvalue(), and OOMPH_EXCEPTION_LOCATION.

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::set_coordinates_on_boundary ( const unsigned &  b,
const unsigned &  k,
const Vector< double > &  boundary_zeta 
) [inline]

Set the vector of k-th generalised boundary coordinates on mesh boundary b. Final overload.

Reimplemented from oomph::BoundaryNodeBase.

Definition at line 1907 of file nodes.h.

References oomph::BoundaryNodeBase::set_coordinates_on_boundary().

template<class NODE_TYPE>
void oomph::BoundaryNode< NODE_TYPE >::set_coordinates_on_boundary ( const unsigned &  b,
const Vector< double > &  boundary_zeta 
) [inline]

Set the vector of coordinates on mesh boundary b Final overload.

Reimplemented from oomph::BoundaryNodeBase.

Definition at line 1894 of file nodes.h.

References oomph::BoundaryNodeBase::set_coordinates_on_boundary().


The documentation for this class was generated from the following file:
Generated on Mon Aug 10 11:25:27 2009 by  doxygen 1.4.7