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::Mesh Class Reference

#include <mesh.h>

Inheritance diagram for oomph::Mesh:

oomph::AlgebraicMesh oomph::BrickMeshBase oomph::CylinderWithFlagMesh< ELEMENT > oomph::DGMesh oomph::DummyMesh oomph::GeompackQuadMesh< ELEMENT > oomph::GeompackQuadScaffoldMesh oomph::HermiteQuadMesh< ELEMENT > oomph::MacroElementNodeUpdateMesh oomph::OneDMesh< ELEMENT > oomph::QuadMeshBase oomph::RefineableMeshBase oomph::SimpleCubicScaffoldTetMesh oomph::SimpleCubicTetMesh< ELEMENT > oomph::SolidMesh oomph::SpineMesh oomph::TetgenScaffoldMesh oomph::TetMeshBase oomph::TriangleMeshBase oomph::TriangleScaffoldMesh oomph::WomersleyMesh< WOMERSLEY_ELEMENT > List of all members.

Detailed Description

A general mesh class.

The main components of a Mesh are:

Definition at line 63 of file mesh.h.


Public Types

typedef void(FiniteElement::*) SteadyExactSolutionFctPt (const Vector< double > &x, Vector< double > &soln)
 Typedef for function pointer to function that computes steady exact solution.
typedef void(FiniteElement::*) UnsteadyExactSolutionFctPt (const double &time, const Vector< double > &x, Vector< double > &soln)
 Typedef for function pointer to function that computes unsteady exact solution.

Public Member Functions

 Mesh ()
 Default constructor.
 Mesh (const Vector< Mesh * > &sub_mesh_pt)
 Constructor builds combined mesh from the meshes specified. Note: This simply merges the meshes' elements and nodes (ignoring duplicates; no boundary information etc. is created).
void merge_meshes (const Vector< Mesh * > &sub_mesh_pt)
 Merge meshes. Note: This simply merges the meshes' elements and nodes (ignoring duplicates; no boundary information etc. is created).
virtual void setup_boundary_element_info ()
 Interface for function that is used to setup the boundary information (Empty virtual function -- implement this for specific Mesh classes).
virtual void setup_boundary_element_info (std::ostream &outfile)
 Setup lookup schemes which establish whic elements are located next to mesh's boundaries. Doc in outfile (if it's open). (Empty virtual function -- implement this for specific Mesh classes).
 Mesh (const Mesh &dummy)
 Broken copy constructor.
void operator= (const Mesh &)
 Broken assignment operator.
virtual ~Mesh ()
 Virtual Destructor to clean up all memory.
void flush_element_and_node_storage ()
 Flush storage for elements and nodes by emptying the vectors that store the pointers to them. This is useful if a particular mesh is only built to generate a small part of a bigger mesh. Once the elements and nodes have been created, they are typically copied into the new mesh and the auxiliary mesh can be deleted. However, if we simply call the destructor of the auxiliary mesh, it will also wipe out the nodes and elements, because it still "thinks" it's in charge of these...
Node *& node_pt (const unsigned long &n)
 Return pointer to global node n.
GeneralisedElement *& element_pt (const unsigned long &e)
 Return pointer to element e.
const Vector< GeneralisedElement * > & element_pt () const
 Return reference to the Vector of elements.
Vector< GeneralisedElement * > & element_pt ()
 Return reference to the Vector of elements.
FiniteElementfinite_element_pt (const unsigned &e)
 Upcast (downcast?) to FiniteElement (needed to access FiniteElement member functions).
Node *& boundary_node_pt (const unsigned &b, const unsigned &n)
 Return pointer to node n on boundary b.
void set_nboundary (const unsigned &nbound)
 Set the number of boundaries in the mesh.
void remove_boundary_nodes ()
 Remove all information about mesh boundaries.
void remove_boundary_nodes (const unsigned &b)
 Remove all information about nodes stored on the b-th boundary of the mesh.
void remove_boundary_node (const unsigned &b, Node *const &node_pt)
void add_boundary_node (const unsigned &b, Node *const &node_pt)
 Add a (pointer to) a node to the b-th boundary.
bool boundary_coordinate_exists (const unsigned &i) const
 Indicate whether the i-th boundary has an intrinsic coordinate.
unsigned long nelement () const
 Return number of elements in the mesh.
unsigned long nnode () const
 Return number of nodes in the mesh.
void add_node_pt (Node *const &node_pt)
 Add a (pointer to a) node to the mesh.
void add_element_pt (GeneralisedElement *const &element_pt)
 Add a (pointer to) an element to the mesh.
virtual void node_update (const bool &update_all_solid_nodes=false)
 Update nodal positions in response to changes in the domain shape. Uses the FiniteElement::get_x(...) function for FiniteElements and doesn't do anything for other element types.

If a MacroElement pointer has been set for a FiniteElement, the MacroElement representation is used to update the nodal positions; if not get_x(...) uses the FE interpolation and thus leaves the nodal positions unchanged. Virtual, so it can be overloaded by specific meshes, such as AlgebraicMeshes or SpineMeshes.

Generally, this function updates the position of all nodes in response to changes in the boundary position. For SolidNodes it only applies the update to those SolidNodes whose position is determined by the boundary position, unless the bool flag is set to true.
virtual void reorder_nodes ()
 Re-order nodes in the order in which they appear in elements -- can be overloaded for more efficient re-ordering.
template<class BULK_ELEMENT, template< class > class FACE_ELEMENT>
void build_face_mesh (const unsigned &b, Mesh *const &face_mesh_pt)
 Constuct a Mesh of FACE_ELEMENTs along the b-th boundary of the mesh (which contains elements of type BULK_ELEMENT).
unsigned self_test ()
 Self-test: Check elements and nodes. Return 0 for OK.
unsigned check_for_repeated_nodes (const double &epsilon=1.0e-12)
 Check for repeated nodes within a given spatial tolerance. Return (0/1) for (pass/fail).
void prune_dead_nodes ()
 Prune nodes. Nodes that have been marked as obsolete are removed from the mesh (and its boundary-node scheme).
unsigned nboundary () const
 Return number of boundaries.
unsigned long nboundary_node (const unsigned &ibound) const
 Return number of nodes on a particular boundary.
FiniteElementboundary_element_pt (const unsigned &b, const unsigned &e) const
 Return pointer to e-th finite element on boundary b.
unsigned nboundary_element (const unsigned &b) const
 Return number of finite elements that are adjacent to boundary b.
int face_index_at_boundary (const unsigned &b, const unsigned &e) const
 For the e-th finite element on boundary b, return int to indicate the face_index of the face adjacent to the boundary. This is consistent with input required during the generation of FaceElements.
virtual void dump (std::ofstream &dump_file)
 Dump the data in the mesh into a file for restart.
virtual void read (std::ifstream &restart_file)
 Read solution from restart file.
void output (std::ostream &outfile)
 Output for all elements.
void output (std::ostream &outfile, const unsigned &n_plot)
 Output at f(n_plot) points in each element.
void output (FILE *file_pt)
 Output for all elements (C-style output).
void output (FILE *file_pt, const unsigned &nplot)
 Output at f(n_plot) points in each element (C-style output).
void output (const std::string &output_filename)
 Output for all elements.
void output (const std::string &output_filename, const unsigned &n_plot)
 Output at f(n_plot) points in each element.
void output_fct (std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt)
 Output a given Vector function at f(n_plot) points in each element.
void output_fct (std::ostream &outfile, const unsigned &n_plot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt)
 Output a given time-dep. Vector function at f(n_plot) points in each element.
void output_boundaries (std::ostream &outfile)
 Output the nodes on the boundaries (into separate tecplot zones).
void output_boundaries (const std::string &output_filename)
void assign_initial_values_impulsive ()
 Assign initial values for an impulsive start.
void shift_time_values ()
 Shift time-dependent data along for next timestep: Deal with nodal Data/positions and the element's internal Data.
void calculate_predictions ()
 Calculate predictions for all Data and positions associated with the mesh, usually used in adaptive time-stepping.
virtual void compute_error (std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm)
 Plot error when compared against a given exact solution. Also returns the norm of the error and that of the exact solution.
virtual void compute_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
 Plot error when compared against a given time-depdendent exact solution. Also returns the norm of the error and that of the exact solution.
unsigned nexternal_element ()
 Number of external elements for this Mesh.
FiniteElementexternal_element_pt (const unsigned &e)
 Access fct to the e-th external element in this Mesh.
bool add_external_element_pt (FiniteElement *&el_pt)
 Add external element to this Mesh.
unsigned nexternal_node ()
 Number of external nodes for this Mesh.
Nodeexternal_node_pt (const unsigned &j)
 Access fct to the j-th external node in this Mesh.
bool add_external_node_pt (Node *&nod_pt)
 Add external node to this Mesh.
void flush_all_external_storage ()
 Wipe the storage for all externally-based elements and delete halos.

Protected Member Functions

virtual unsigned long assign_global_eqn_numbers (Vector< double * > &Dof_pt)
 Assign (global) equation numbers to the nodes.
virtual void assign_local_eqn_numbers ()
 Assign local equation numbers in all elements.
void convert_to_boundary_node (Node *&node_pt)
 A function that upgrades an ordinary node to a boundary node We shouldn't ever really use this, but it does make life that bit easier for the lazy mesh writer. The pointer to the node is replaced by a pointer to the new boundary node in all element look-up schemes and in the mesh's Node_pt vector. The new node is also addressed by node_pt on return from the function.

Protected Attributes

bool Lookup_for_elements_next_boundary_is_setup
Vector< Vector< FiniteElement * > > Boundary_element_pt
 Vector of Vector of pointers to elements on the boundaries: Boundary_element_pt(b,e).
Vector< Vector< int > > Face_index_at_boundary
 For the e-th finite element on boundary b, this is the index of the face that lies along that boundary.
Vector< FiniteElement * > External_element_pt
Vector< Node * > External_node_pt
 Vector holding pointers to the external nodes on the external elements.
Vector< Node * > Node_pt
 Vector of pointers to nodes.
Vector< GeneralisedElement * > Element_pt
 Vector of pointers to generalised elements.
std::vector< bool > Boundary_coordinate_exists
 Vector of boolean data that indicates whether the boundary coordinates have been set for the boundary.

Static Protected Attributes

static Steady< 0 > Default_TimeStepper
 The Steady Timestepper.

Private Attributes

Vector< Vector< Node * > > Boundary_node_pt
 Vector of Vector of pointers to nodes on the boundaries: Boundary_node_pt(b,n). Note that this is private to force the use of the add_boundary_node() function, which ensures that the reverse look-up schemes for the nodes are set up.

Friends

class Problem
 Problem is a friend.

Member Typedef Documentation

typedef void(FiniteElement::*) oomph::Mesh::SteadyExactSolutionFctPt(const Vector< double > &x, Vector< double > &soln)

Typedef for function pointer to function that computes steady exact solution.

Definition at line 188 of file mesh.h.

typedef void(FiniteElement::*) oomph::Mesh::UnsteadyExactSolutionFctPt(const double &time, const Vector< double > &x, Vector< double > &soln)

Typedef for function pointer to function that computes unsteady exact solution.

Definition at line 193 of file mesh.h.


Constructor & Destructor Documentation

oomph::Mesh::Mesh (  )  [inline]

Default constructor.

Definition at line 197 of file mesh.h.

References Lookup_for_elements_next_boundary_is_setup.

oomph::Mesh::Mesh ( const Vector< Mesh * > &  sub_mesh_pt  )  [inline]

Constructor builds combined mesh from the meshes specified. Note: This simply merges the meshes' elements and nodes (ignoring duplicates; no boundary information etc. is created).

Definition at line 216 of file mesh.h.

References merge_meshes().

oomph::Mesh::Mesh ( const Mesh dummy  )  [inline]

Broken copy constructor.

Definition at line 238 of file mesh.h.

References oomph::BrokenCopy::broken_copy().

oomph::Mesh::~Mesh (  )  [virtual]

Virtual Destructor to clean up all memory.

Definition at line 470 of file mesh.cc.

References Element_pt, and Node_pt.


Member Function Documentation

void oomph::Mesh::add_boundary_node ( const unsigned &  b,
Node *const &  node_pt 
)

Add a (pointer to) a node to the b-th boundary.

Add the node node_pt to the b-th boundary of the mesh This function also sets the boundary information in the Node itself

Definition at line 234 of file mesh.cc.

References oomph::Node::add_to_boundary(), Boundary_node_pt, and node_pt().

Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::RefineableQElement< 2 >::build(), oomph::RefineableQElement< 3 >::build(), oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicTetMesh< ELEMENT >::build_from_scaffold(), oomph::GeompackQuadMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicMesh< ELEMENT >::build_mesh(), oomph::RectangularQuadMesh< ELEMENT >::build_mesh(), oomph::OneDMesh< ELEMENT >::build_mesh(), oomph::HermiteQuadMesh< ELEMENT >::build_mesh(), oomph::FishMesh< ELEMENT >::build_mesh(), oomph::ChannelWithLeafletMesh< ELEMENT >::ChannelWithLeafletMesh(), oomph::CollapsibleChannelMesh< ELEMENT >::CollapsibleChannelMesh(), oomph::CylinderWithFlagMesh< ELEMENT >::CylinderWithFlagMesh(), oomph::EighthSphereMesh< ELEMENT >::EighthSphereMesh(), oomph::FSIDrivenCavityMesh< ELEMENT >::FSIDrivenCavityMesh(), oomph::GeompackQuadScaffoldMesh::GeompackQuadScaffoldMesh(), oomph::QuarterCircleSectorMesh< ELEMENT >::QuarterCircleSectorMesh(), oomph::QuarterTubeMesh< ELEMENT >::QuarterTubeMesh(), oomph::RefineableQSpectralElement< 2 >::rebuild_from_sons(), oomph::RefineableQSpectralElement< 3 >::rebuild_from_sons(), oomph::SimpleCubicScaffoldTetMesh::SimpleCubicScaffoldTetMesh(), oomph::SimpleRectangularQuadMesh< ELEMENT >::SimpleRectangularQuadMesh(), oomph::SimpleRectangularTriMesh< ELEMENT >::SimpleRectangularTriMesh(), oomph::TetgenScaffoldMesh::TetgenScaffoldMesh(), oomph::TriangleScaffoldMesh::TriangleScaffoldMesh(), and oomph::TubeMesh< ELEMENT >::TubeMesh().

void oomph::Mesh::add_element_pt ( GeneralisedElement *const &  element_pt  )  [inline]

Add a (pointer to) an element to the mesh.

Definition at line 357 of file mesh.h.

References element_pt(), and Element_pt.

Referenced by build_face_mesh(), oomph::WomersleyMesh< WOMERSLEY_ELEMENT >::WomersleyMesh(), and oomph::WomersleyProblem< ELEMENT, DIM >::WomersleyProblem().

bool oomph::Mesh::add_external_element_pt ( FiniteElement *&  el_pt  ) 

Add external element to this Mesh.

Definition at line 4054 of file mesh.cc.

References External_element_pt, and nexternal_element().

Referenced by oomph::Multi_domain_functions::locate_zeta_for_local_coordinates().

bool oomph::Mesh::add_external_node_pt ( Node *&  nod_pt  ) 

Add external node to this Mesh.

Definition at line 4082 of file mesh.cc.

References External_node_pt, and nexternal_node().

Referenced by oomph::Multi_domain_functions::locate_zeta_for_local_coordinates().

void oomph::Mesh::add_node_pt ( Node *const &  node_pt  )  [inline]

Add a (pointer to a) node to the mesh.

Definition at line 354 of file mesh.h.

References node_pt(), and Node_pt.

Referenced by oomph::RefineableQElement< 2 >::build(), oomph::RefineableQElement< 3 >::build(), build_face_mesh(), oomph::ChannelWithLeafletMesh< ELEMENT >::ChannelWithLeafletMesh(), oomph::RefineableQSpectralElement< 2 >::rebuild_from_sons(), oomph::RefineableQSpectralElement< 3 >::rebuild_from_sons(), and oomph::TetgenMesh< ELEMENT >::split_elements_in_corners().

unsigned long oomph::Mesh::assign_global_eqn_numbers ( Vector< double * > &  Dof_pt  )  [protected, virtual]

Assign (global) equation numbers to the nodes.

Reimplemented in oomph::SpineMesh.

Definition at line 491 of file mesh.cc.

References Element_pt, and Node_pt.

Referenced by oomph::Problem::assign_eqn_numbers(), and oomph::SpineMesh::assign_global_eqn_numbers().

void oomph::Mesh::assign_initial_values_impulsive (  ) 

Assign initial values for an impulsive start.

Assign the initial values for an impulsive start, which is acheived by looping over all data in the mesh (internal element data and data stored at nodes) and setting the calling the assign_initial_values_impulsive() function for each data's timestepper

Definition at line 1087 of file mesh.cc.

References element_pt(), nelement(), nnode(), and Node_pt.

Referenced by oomph::Problem::assign_initial_values_impulsive().

void oomph::Mesh::assign_local_eqn_numbers (  )  [protected, virtual]

Assign local equation numbers in all elements.

Definition at line 517 of file mesh.cc.

References Element_pt.

Referenced by oomph::Problem::assign_eqn_numbers().

bool oomph::Mesh::boundary_coordinate_exists ( const unsigned &  i  )  const [inline]

Indicate whether the i-th boundary has an intrinsic coordinate.

Definition at line 326 of file mesh.h.

References Boundary_coordinate_exists, and OOMPH_EXCEPTION_LOCATION.

Referenced by oomph::RefineableQElement< 2 >::build(), oomph::RefineableQElement< 3 >::build(), oomph::FishMesh< ELEMENT >::build_mesh(), oomph::RefineableQSpectralElement< 2 >::rebuild_from_sons(), and oomph::RefineableQSpectralElement< 3 >::rebuild_from_sons().

FiniteElement* oomph::Mesh::boundary_element_pt ( const unsigned &  b,
const unsigned &  e 
) const [inline]

Return pointer to e-th finite element on boundary b.

Definition at line 474 of file mesh.h.

References Boundary_element_pt, Lookup_for_elements_next_boundary_is_setup, and OOMPH_EXCEPTION_LOCATION.

Referenced by build_face_mesh(), and oomph::TetgenMesh< ELEMENT >::split_elements_in_corners().

Node* & oomph::Mesh::boundary_node_pt ( const unsigned &  b,
const unsigned &  n 
) [inline]

Return pointer to node n on boundary b.

Reimplemented in oomph::SolidMesh.

Definition at line 300 of file mesh.h.

References Boundary_node_pt.

Referenced by oomph::SolidMesh::boundary_node_pt(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), build_face_mesh(), oomph::FishMesh< ELEMENT >::build_mesh(), merge_meshes(), remove_boundary_nodes(), and oomph::TetgenMesh< ELEMENT >::setup_boundary_coordinates().

template<class BULK_ELEMENT, template< class > class FACE_ELEMENT>
void oomph::Mesh::build_face_mesh ( const unsigned &  b,
Mesh *const &  face_mesh_pt 
) [inline]

Constuct a Mesh of FACE_ELEMENTs along the b-th boundary of the mesh (which contains elements of type BULK_ELEMENT).

Definition at line 384 of file mesh.h.

References add_element_pt(), add_node_pt(), boundary_element_pt(), boundary_node_pt(), face_index_at_boundary(), nboundary_element(), and nboundary_node().

void oomph::Mesh::calculate_predictions (  ) 

Calculate predictions for all Data and positions associated with the mesh, usually used in adaptive time-stepping.

Calculate predictions for all Data and positions associated with the mesh. This is usually only used for adaptive time-stepping when the comparison between a predicted value and the actual value is usually used to determine the change in step size. Again the loop is over all data in the mesh and individual timestepper functions for each data value are called.

Definition at line 1162 of file mesh.cc.

References element_pt(), nelement(), nnode(), and Node_pt.

Referenced by oomph::Problem::calculate_predictions().

unsigned oomph::Mesh::check_for_repeated_nodes ( const double &  epsilon = 1.0e-12  )  [inline]

Check for repeated nodes within a given spatial tolerance. Return (0/1) for (pass/fail).

Definition at line 420 of file mesh.h.

References nnode(), and oomph::oomph_info.

Referenced by self_test().

virtual void oomph::Mesh::compute_error ( std::ostream &  outfile,
FiniteElement::SteadyExactSolutionFctPt  exact_soln_pt,
double &  error,
double &  norm 
) [inline, virtual]

Plot error when compared against a given time-depdendent exact solution. Also returns the norm of the error and that of the exact solution.

Definition at line 632 of file mesh.h.

References Element_pt, and OOMPH_EXCEPTION_LOCATION.

virtual void oomph::Mesh::compute_error ( std::ostream &  outfile,
FiniteElement::UnsteadyExactSolutionFctPt  exact_soln_pt,
const double &  time,
double &  error,
double &  norm 
) [inline, virtual]

Plot error when compared against a given exact solution. Also returns the norm of the error and that of the exact solution.

Definition at line 595 of file mesh.h.

References Element_pt, and OOMPH_EXCEPTION_LOCATION.

void oomph::Mesh::convert_to_boundary_node ( Node *&  node_pt  )  [protected]

A function that upgrades an ordinary node to a boundary node We shouldn't ever really use this, but it does make life that bit easier for the lazy mesh writer. The pointer to the node is replaced by a pointer to the new boundary node in all element look-up schemes and in the mesh's Node_pt vector. The new node is also addressed by node_pt on return from the function.

A function that upgrades an ordinary node to a boundary node. All pointers to the node from the mesh's elements are found. and replaced by pointers to the new boundary node. If the node is present in the mesh's list of nodes, that pointer is also replaced. Finally, the pointer argument node_pt addresses the new node on return from the function. We shouldn't ever really use this, but it does make life that bit easier for the lazy mesh writer.

Definition at line 1202 of file mesh.cc.

References oomph::FiniteElement::construct_boundary_node(), oomph::Node::copy(), oomph::SolidNode::copy(), Element_pt, finite_element_pt(), nelement(), Node_pt, oomph::FiniteElement::node_pt(), node_pt(), and OOMPH_EXCEPTION_LOCATION.

Referenced by oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicTetMesh< ELEMENT >::build_from_scaffold(), oomph::GeompackQuadMesh< ELEMENT >::build_from_scaffold(), oomph::FishMesh< ELEMENT >::build_mesh(), oomph::ChannelWithLeafletMesh< ELEMENT >::ChannelWithLeafletMesh(), oomph::QuarterTubeMesh< ELEMENT >::QuarterTubeMesh(), oomph::SimpleRectangularTriMesh< ELEMENT >::SimpleRectangularTriMesh(), and oomph::TubeMesh< ELEMENT >::TubeMesh().

void oomph::Mesh::dump ( std::ofstream &  dump_file  )  [virtual]

Dump the data in the mesh into a file for restart.

Dump function for the mesh class. Loop over all nodes and elements and dump them

Reimplemented in oomph::SpineMesh.

Definition at line 697 of file mesh.cc.

References nelement(), and nnode().

Referenced by oomph::SpineMesh::dump().

Vector<GeneralisedElement*>& oomph::Mesh::element_pt (  )  [inline]

Return reference to the Vector of elements.

Definition at line 276 of file mesh.h.

References Element_pt.

const Vector<GeneralisedElement*>& oomph::Mesh::element_pt (  )  const [inline]

Return reference to the Vector of elements.

Definition at line 273 of file mesh.h.

References Element_pt.

Referenced by add_element_pt(), assign_initial_values_impulsive(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), calculate_predictions(), merge_meshes(), node_update(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicFishMesh< ELEMENT >::setup_algebraic_node_update(), oomph::RefineableBrickMesh< ELEMENT >::setup_octree_forest(), and shift_time_values().

GeneralisedElement* & oomph::Mesh::element_pt ( const unsigned long &  e  )  [inline]

Return pointer to element e.

Definition at line 269 of file mesh.h.

References Element_pt.

Referenced by oomph::NavierStokesLSCPreconditioner::assemble_velocity_mass_matrix_diagonal(), oomph::Problem::assign_eqn_numbers(), oomph::Multi_domain_functions::aux_setup_multi_domain_interaction(), oomph::SolidICProblem::backup_original_state(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::MeshAsGeomObject< DIM_LAGRANGIAN, DIM_EULERIAN, ELEMENT >::construct_it(), oomph::Problem::copy(), oomph::SolidHelpers::doc_2D_principal_stress(), oomph::Z2ErrorEstimator::doc_flux(), oomph::FSI_functions::doc_fsi(), oomph::NetFluxControlElement::fill_in_generic_residual_contribution_flux_control(), oomph::FoldHandler::FoldHandler(), oomph::Multi_domain_functions::get_dim_helper(), oomph::Z2ErrorEstimator::get_element_errors(), oomph::Problem::get_jacobian(), oomph::MeshAsGeomObject< DIM_LAGRANGIAN, DIM_EULERIAN, ELEMENT >::get_min_and_max_coordinates(), oomph::Problem::get_residuals(), oomph::HopfHandler::HopfHandler(), oomph::ImposeFluxForWomersleyElement< DIM >::ImposeFluxForWomersleyElement(), oomph::Multi_domain_functions::locate_zeta_for_local_coordinates(), oomph::NetFluxControlElement::NetFluxControlElement(), oomph::PitchForkHandler::PitchForkHandler(), oomph::WomersleyImpedanceTubeBase< WOMERSLEY_ELEMENT, DIM >::precompute_aux_integrals(), oomph::HSL_MA42::reorder_elements(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::reposition_spines(), oomph::SolidICProblem::reset_original_state(), oomph::AugmentedBlockPitchForkLinearSolver::resolve(), oomph::BlockPitchForkLinearSolver::resolve(), oomph::AugmentedBlockFoldLinearSolver::resolve(), oomph::BlockPreconditioner< oomph::CRDoubleMatrix >::set_mesh(), oomph::Problem::set_pinned_values_to_zero(), oomph::FSI_functions::setup_fluid_load_info_for_solid_elements(), oomph::Z2ErrorEstimator::setup_patches(), oomph::SolidICProblem::setup_problem(), oomph::HSL_MA42::solve(), oomph::BlockHopfLinearSolver::solve(), oomph::AugmentedBlockPitchForkLinearSolver::solve(), oomph::BlockPitchForkLinearSolver::solve(), oomph::AugmentedBlockFoldLinearSolver::solve(), oomph::HSL_MA42::solve_for_one_dof(), oomph::BlockHopfLinearSolver::solve_for_two_rhs(), oomph::Problem::sparse_assemble_row_or_column_compressed_with_lists(), oomph::Problem::sparse_assemble_row_or_column_compressed_with_maps(), oomph::Problem::sparse_assemble_row_or_column_compressed_with_two_arrays(), oomph::Problem::sparse_assemble_row_or_column_compressed_with_two_vectors(), oomph::Problem::sparse_assemble_row_or_column_compressed_with_vectors_of_pairs(), oomph::ImposeFluxForWomersleyElement< DIM >::total_volume_flux(), oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::total_volume_flux_into_downstream_tube(), oomph::WomersleyImpedanceTubeBase< WOMERSLEY_ELEMENT, DIM >::total_volume_flux_into_impedance_tube(), and oomph::WomersleyImpedanceTubeBase< WOMERSLEY_ELEMENT, DIM >::WomersleyImpedanceTubeBase().

FiniteElement* oomph::Mesh::external_element_pt ( const unsigned &  e  )  [inline]

Access fct to the e-th external element in this Mesh.

Definition at line 1193 of file mesh.h.

References External_element_pt.

Node* oomph::Mesh::external_node_pt ( const unsigned &  j  )  [inline]

Access fct to the j-th external node in this Mesh.

Definition at line 1210 of file mesh.h.

References External_node_pt.

int oomph::Mesh::face_index_at_boundary ( const unsigned &  b,
const unsigned &  e 
) const [inline]

For the e-th finite element on boundary b, return int to indicate the face_index of the face adjacent to the boundary. This is consistent with input required during the generation of FaceElements.

Definition at line 508 of file mesh.h.

References Face_index_at_boundary, Lookup_for_elements_next_boundary_is_setup, and OOMPH_EXCEPTION_LOCATION.

Referenced by build_face_mesh(), oomph::TriangleMesh< ELEMENT >::setup_boundary_coordinates(), and oomph::TetgenMesh< ELEMENT >::setup_boundary_coordinates().

FiniteElement* oomph::Mesh::finite_element_pt ( const unsigned &  e  )  [inline]

Upcast (downcast?) to FiniteElement (needed to access FiniteElement member functions).

Definition at line 280 of file mesh.h.

References Element_pt, and OOMPH_EXCEPTION_LOCATION.

Referenced by oomph::RefineableMeshBase::adapt_mesh(), oomph::OneDLagrangianMesh< ELEMENT >::assign_default_element_gradients(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::ChannelSpineMesh< ELEMENT >::build_channel_spine_mesh(), oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicTetMesh< ELEMENT >::build_from_scaffold(), oomph::GeompackQuadMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicMesh< ELEMENT >::build_mesh(), oomph::RectangularQuadMesh< ELEMENT >::build_mesh(), oomph::OneDMesh< ELEMENT >::build_mesh(), oomph::HermiteQuadMesh< ELEMENT >::build_mesh(), oomph::FishMesh< ELEMENT >::build_mesh(), oomph::SingleLayerSpineMesh< ELEMENT, INTERFACE_ELEMENT >::build_single_layer_mesh(), oomph::SingleLayerCubicSpineMesh< ELEMENT, INTERFACE_ELEMENT >::build_single_layer_mesh(), oomph::TwoLayerSpineMesh< ELEMENT, INTERFACE_ELEMENT >::build_two_layer_mesh(), oomph::ChannelWithLeafletMesh< ELEMENT >::ChannelWithLeafletMesh(), oomph::CircularCylindricalShellMesh< ELEMENT >::CircularCylindricalShellMesh(), oomph::CollapsibleChannelMesh< ELEMENT >::CollapsibleChannelMesh(), convert_to_boundary_node(), oomph::CylinderWithFlagMesh< ELEMENT >::CylinderWithFlagMesh(), oomph::Z2ErrorEstimator::doc_flux(), oomph::FSI_functions::doc_fsi(), oomph::EighthSphereMesh< ELEMENT >::EighthSphereMesh(), oomph::TwoLayerSpineMesh< ELEMENT, INTERFACE_ELEMENT >::element_reorder(), oomph::SingleLayerSpineMesh< ELEMENT, INTERFACE_ELEMENT >::element_reorder(), oomph::RectangularQuadMesh< ELEMENT >::element_reorder(), oomph::ChannelSpineMesh< ELEMENT >::element_reorder(), oomph::FSIDrivenCavityMesh< ELEMENT >::FSIDrivenCavityMesh(), oomph::GeompackQuadScaffoldMesh::GeompackQuadScaffoldMesh(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::nfree_surface_spines(), oomph::METIS::partition_mesh(), oomph::QuarterCircleSectorMesh< ELEMENT >::QuarterCircleSectorMesh(), oomph::QuarterTubeMesh< ELEMENT >::QuarterTubeMesh(), oomph::RefineableMeshBase::refine_as_in_reference_mesh(), reorder_nodes(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::reposition_spines(), oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::set_external_data_from_navier_stokes_outflow_mesh(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicFishMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::setup_algebraic_node_update(), oomph::TriangleMeshBase::setup_boundary_element_info(), oomph::TetMeshBase::setup_boundary_element_info(), oomph::SimpleCubicTetMesh< ELEMENT >::setup_boundary_element_info(), oomph::QuadMeshBase::setup_boundary_element_info(), oomph::HermiteQuadMesh< ELEMENT >::setup_boundary_element_info(), oomph::BrickMeshBase::setup_boundary_element_info(), oomph::SimpleRectangularQuadMesh< ELEMENT >::SimpleRectangularQuadMesh(), oomph::SimpleRectangularTriMesh< ELEMENT >::SimpleRectangularTriMesh(), oomph::TetgenMesh< ELEMENT >::split_elements_in_corners(), oomph::TetgenScaffoldMesh::TetgenScaffoldMesh(), oomph::TriangleScaffoldMesh::TriangleScaffoldMesh(), oomph::TubeMesh< ELEMENT >::TubeMesh(), and oomph::WomersleyMesh< WOMERSLEY_ELEMENT >::WomersleyMesh().

void oomph::Mesh::flush_all_external_storage (  ) 

Wipe the storage for all externally-based elements and delete halos.

Definition at line 3953 of file mesh.cc.

References External_element_pt, External_node_pt, nboundary(), nnode(), Node_pt, and remove_boundary_node().

Referenced by oomph::RefineableMeshBase::adapt_mesh(), and oomph::Multi_domain_functions::setup_multi_domain_interactions().

void oomph::Mesh::flush_element_and_node_storage (  ) 

Flush storage for elements and nodes by emptying the vectors that store the pointers to them. This is useful if a particular mesh is only built to generate a small part of a bigger mesh. Once the elements and nodes have been created, they are typically copied into the new mesh and the auxiliary mesh can be deleted. However, if we simply call the destructor of the auxiliary mesh, it will also wipe out the nodes and elements, because it still "thinks" it's in charge of these...

Flush storage for elements and nodes by emptying the vectors that store the pointers to them. This is useful if a particular mesh is only built to generate a small part of a bigger mesh. Once the elements and nodes have been created, they are typically copied into the new mesh and the auxiliary mesh can be deleted. However, if we simply call the destructor of the auxiliary mesh, it will also wipe out the nodes and elements, because it still "thinks" it's in charge of these...

Definition at line 460 of file mesh.cc.

References Element_pt, and Node_pt.

Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::reposition_spines(), and oomph::Problem::~Problem().

void oomph::Mesh::merge_meshes ( const Vector< Mesh * > &  sub_mesh_pt  ) 

Merge meshes. Note: This simply merges the meshes' elements and nodes (ignoring duplicates; no boundary information etc. is created).

Merge meshes. Note: This simply merges the meshes' elements and nodes (ignoring duplicates; no boundary information etc. is created).

Definition at line 57 of file mesh.cc.

References boundary_node_pt(), Boundary_node_pt, element_pt(), Element_pt, Lookup_for_elements_next_boundary_is_setup, nboundary_node(), nelement(), node_pt(), Node_pt, and OOMPH_EXCEPTION_LOCATION.

Referenced by Mesh(), and oomph::SolidMesh::SolidMesh().

unsigned oomph::Mesh::nboundary (  )  const [inline]

Return number of boundaries.

Definition at line 466 of file mesh.h.

References Boundary_node_pt.

Referenced by oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicTetMesh< ELEMENT >::build_from_scaffold(), oomph::GeompackQuadMesh< ELEMENT >::build_from_scaffold(), oomph::FishMesh< ELEMENT >::build_mesh(), oomph::CollapsibleChannelMesh< ELEMENT >::CollapsibleChannelMesh(), flush_all_external_storage(), oomph::FSIDrivenCavityMesh< ELEMENT >::FSIDrivenCavityMesh(), output_boundaries(), prune_dead_nodes(), oomph::TriangleMeshBase::setup_boundary_element_info(), oomph::TetMeshBase::setup_boundary_element_info(), oomph::SimpleCubicTetMesh< ELEMENT >::setup_boundary_element_info(), oomph::QuadMeshBase::setup_boundary_element_info(), oomph::HermiteQuadMesh< ELEMENT >::setup_boundary_element_info(), oomph::BrickMeshBase::setup_boundary_element_info(), and oomph::TetgenMesh< ELEMENT >::split_elements_in_corners().

unsigned oomph::Mesh::nboundary_element ( const unsigned &  b  )  const [inline]

Return number of finite elements that are adjacent to boundary b.

Definition at line 490 of file mesh.h.

References Boundary_element_pt, Lookup_for_elements_next_boundary_is_setup, and OOMPH_EXCEPTION_LOCATION.

Referenced by build_face_mesh(), oomph::TriangleMesh< ELEMENT >::setup_boundary_coordinates(), and oomph::TetgenMesh< ELEMENT >::setup_boundary_coordinates().

unsigned long oomph::Mesh::nboundary_node ( const unsigned &  ibound  )  const [inline]

Return number of nodes on a particular boundary.

Definition at line 469 of file mesh.h.

References Boundary_node_pt.

Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), build_face_mesh(), oomph::FishMesh< ELEMENT >::build_mesh(), oomph::CylinderWithFlagMesh< ELEMENT >::CylinderWithFlagMesh(), merge_meshes(), oomph::ElasticRectangularQuadMesh< ELEMENT >::set_boundary_coordinates(), and oomph::TetgenMesh< ELEMENT >::setup_boundary_coordinates().

unsigned long oomph::Mesh::nelement (  )  const [inline]

Return number of elements in the mesh.

Definition at line 348 of file mesh.h.

References Element_pt.

Referenced by oomph::RefineableMeshBase::adapt(), oomph::NavierStokesLSCPreconditioner::assemble_velocity_mass_matrix_diagonal(), oomph::Problem::assign_eqn_numbers(), assign_initial_values_impulsive(), oomph::Multi_domain_functions::aux_setup_multi_domain_interaction(), oomph::SolidICProblem::backup_original_state(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::ChannelSpineMesh< ELEMENT >::build_channel_spine_mesh(), oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicTetMesh< ELEMENT >::build_from_scaffold(), oomph::GeompackQuadMesh< ELEMENT >::build_from_scaffold(), oomph::FishMesh< ELEMENT >::build_mesh(), oomph::SingleLayerSpineMesh< ELEMENT, INTERFACE_ELEMENT >::build_single_layer_mesh(), oomph::SingleLayerCubicSpineMesh< ELEMENT, INTERFACE_ELEMENT >::build_single_layer_mesh(), calculate_predictions(), oomph::CollapsibleChannelMesh< ELEMENT >::CollapsibleChannelMesh(), oomph::MeshAsGeomObject< DIM_LAGRANGIAN, DIM_EULERIAN, ELEMENT >::construct_it(), convert_to_boundary_node(), oomph::Problem::disable_mass_matrix_reuse(), oomph::SolidHelpers::doc_2D_principal_stress(), oomph::Z2ErrorEstimator::doc_flux(), oomph::FSI_functions::doc_fsi(), oomph::WomersleyProblem< ELEMENT, DIM >::doc_solution(), dump(), oomph::TwoLayerSpineMesh< ELEMENT, INTERFACE_ELEMENT >::element_reorder(), oomph::SingleLayerSpineMesh< ELEMENT, INTERFACE_ELEMENT >::element_reorder(), oomph::RectangularQuadMesh< ELEMENT >::element_reorder(), oomph::ChannelSpineMesh< ELEMENT >::element_reorder(), oomph::Problem::enable_mass_matrix_reuse(), oomph::NetFluxControlElement::fill_in_generic_residual_contribution_flux_control(), oomph::FoldHandler::FoldHandler(), oomph::FSIDrivenCavityMesh< ELEMENT >::FSIDrivenCavityMesh(), oomph::Multi_domain_functions::get_dim_helper(), oomph::Z2ErrorEstimator::get_element_errors(), oomph::Problem::get_inverse_mass_matrix_times_residuals(), oomph::Problem::get_jacobian(), oomph::MeshAsGeomObject< DIM_LAGRANGIAN, DIM_EULERIAN, ELEMENT >::get_min_and_max_coordinates(), oomph::RefineableMeshBase::get_refinement_levels(), oomph::Problem::get_residuals(), oomph::HopfHandler::get_residuals(), oomph::PitchForkHandler::get_residuals(), oomph::FoldHandler::get_residuals(), oomph::HopfHandler::HopfHandler(), oomph::ImposeFluxForWomersleyElement< DIM >::ImposeFluxForWomersleyElement(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::initial_element_reorder(), oomph::DGMesh::limit_slopes(), oomph::Multi_domain_functions::locate_zeta_for_local_coordinates(), oomph::MacroElementNodeUpdateChannelWithLeafletMesh< ELEMENT >::MacroElementNodeUpdateChannelWithLeafletMesh(), oomph::MacroElementNodeUpdateCollapsibleChannelMesh< ELEMENT >::MacroElementNodeUpdateCollapsibleChannelMesh(), oomph::MacroElementNodeUpdateRefineableFishMesh< ELEMENT >::MacroElementNodeUpdateRefineableFishMesh(), merge_meshes(), oomph::NetFluxControlElement::NetFluxControlElement(), node_update(), oomph::METIS::partition_mesh(), oomph::PitchForkHandler::PitchForkHandler(), oomph::WomersleyImpedanceTubeBase< WOMERSLEY_ELEMENT, DIM >::precompute_aux_integrals(), oomph::QuarterCircleSectorMesh< ELEMENT >::QuarterCircleSectorMesh(), read(), oomph::RefineableMeshBase::refine_uniformly(), oomph::RefineableEighthSphereMesh< ELEMENT >::RefineableEighthSphereMesh(), oomph::HSL_MA42::reorder_elements(), reorder_nodes(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::reposition_spines(), oomph::SolidICProblem::reset_original_state(), oomph::AugmentedBlockPitchForkLinearSolver::resolve(), oomph::BlockPitchForkLinearSolver::resolve(), oomph::AugmentedBlockFoldLinearSolver::resolve(), oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::set_external_data_from_navier_stokes_outflow_mesh(), oomph::BlockPreconditioner< oomph::CRDoubleMatrix >::set_mesh(), oomph::SolidICProblem::set_newmark_initial_condition_consistently(), oomph::Problem::set_pinned_values_to_zero(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::setup_algebraic_node_update(), oomph::TriangleMeshBase::setup_boundary_element_info(), oomph::TetMeshBase::setup_boundary_element_info(), oomph::SimpleCubicTetMesh< ELEMENT >::setup_boundary_element_info(), oomph::QuadMeshBase::setup_boundary_element_info(), oomph::HermiteQuadMesh< ELEMENT >::setup_boundary_element_info(), oomph::BrickMeshBase::setup_boundary_element_info(), oomph::DGMesh::setup_face_neighbour_info(), oomph::FSI_functions::setup_fluid_load_info_for_solid_elements(), oomph::MacroElementNodeUpdateRefineableQuarterTubeMesh< ELEMENT >::setup_macro_element_node_update(), oomph::MacroElementNodeUpdateRefineableQuarterCircleSectorMesh< ELEMENT >::setup_macro_element_node_update(), oomph::RefineableBrickMesh< ELEMENT >::setup_octree_forest(), oomph::Z2ErrorEstimator::setup_patches(), oomph::SolidICProblem::setup_problem(), oomph::RefineableQuadMesh< ELEMENT >::setup_quadtree_forest(), shift_time_values(), oomph::HSL_MA42::solve(), oomph::BlockHopfLinearSolver::solve(), oomph::AugmentedBlockPitchForkLinearSolver::solve(), oomph::BlockPitchForkLinearSolver::solve(), oomph::AugmentedBlockFoldLinearSolver::solve(), oomph::HSL_MA42::solve_for_one_dof(), oomph::BlockHopfLinearSolver::solve_for_two_rhs(), oomph::Problem::sparse_assemble_row_or_column_compressed_with_lists(), oomph::Problem::sparse_assemble_row_or_column_compressed_with_maps(), oomph::Problem::sparse_assemble_row_or_column_compressed_with_two_arrays(), oomph::Problem::sparse_assemble_row_or_column_compressed_with_two_vectors(), oomph::Problem::sparse_assemble_row_or_column_compressed_with_vectors_of_pairs(), oomph::TetgenMesh< ELEMENT >::split_elements_in_corners(), oomph::ImposeFluxForWomersleyElement< DIM >::total_volume_flux(), oomph::NavierStokesImpedanceTractionElement< BULK_NAVIER_STOKES_ELEMENT, WOMERSLEY_ELEMENT, DIM >::total_volume_flux_into_downstream_tube(), oomph::WomersleyImpedanceTubeBase< WOMERSLEY_ELEMENT, DIM >::total_volume_flux_into_impedance_tube(), oomph::METIS::uniform_partition_mesh(), oomph::RefineableMeshBase::unrefine_uniformly(), oomph::WomersleyImpedanceTubeBase< WOMERSLEY_ELEMENT, DIM >::WomersleyImpedanceTubeBase(), oomph::WomersleyMesh< WOMERSLEY_ELEMENT >::WomersleyMesh(), and oomph::WomersleyProblem< ELEMENT, DIM >::WomersleyProblem().

unsigned oomph::Mesh::nexternal_element (  )  [inline]

Number of external elements for this Mesh.

External elements are "source" non-halo elements which are on the same process as the element for which they are the source

Definition at line 1187 of file mesh.h.

References External_element_pt.

Referenced by add_external_element_pt(), and oomph::Multi_domain_functions::aux_setup_multi_domain_interaction().

unsigned oomph::Mesh::nexternal_node (  )  [inline]

Number of external nodes for this Mesh.

Definition at line 1204 of file mesh.h.

References External_node_pt.

Referenced by add_external_node_pt(), and oomph::Multi_domain_functions::aux_setup_multi_domain_interaction().

unsigned long oomph::Mesh::nnode (  )  const [inline]

Return number of nodes in the mesh.

Definition at line 351 of file mesh.h.

References Node_pt.

Referenced by oomph::RefineableMeshBase::adapt_mesh(), oomph::OneDLagrangianMesh< ELEMENT >::assign_default_element_gradients(), assign_initial_values_impulsive(), oomph::OneDLagrangianMesh< ELEMENT >::assign_undeformed_positions(), oomph::CircularCylindricalShellMesh< ELEMENT >::assign_undeformed_positions(), oomph::Multi_domain_functions::aux_setup_multi_domain_interaction(), oomph::SolidICProblem::backup_original_state(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicTetMesh< ELEMENT >::build_from_scaffold(), oomph::GeompackQuadMesh< ELEMENT >::build_from_scaffold(), calculate_predictions(), check_for_repeated_nodes(), oomph::CircularCylindricalShellMesh< ELEMENT >::CircularCylindricalShellMesh(), oomph::CollapsibleChannelMesh< ELEMENT >::CollapsibleChannelMesh(), oomph::RefineableMeshBase::complete_hanging_nodes(), oomph::Problem::copy(), oomph::CylinderWithFlagMesh< ELEMENT >::CylinderWithFlagMesh(), oomph::FSI_functions::doc_fsi(), dump(), flush_all_external_storage(), oomph::FSIDrivenCavityMesh< ELEMENT >::FSIDrivenCavityMesh(), oomph::Z2ErrorEstimator::get_element_errors(), node_update(), oomph::MacroElementNodeUpdateMesh::node_update(), oomph::AlgebraicMesh::node_update(), prune_dead_nodes(), read(), reorder_nodes(), oomph::SolidICProblem::reset_original_state(), oomph::AlgebraicMesh::self_test(), oomph::SolidMesh::set_lagrangian_nodal_coordinates(), oomph::SolidICProblem::set_newmark_initial_condition_consistently(), oomph::SolidICProblem::set_newmark_initial_condition_directly(), oomph::Problem::set_pinned_values_to_zero(), oomph::AlgebraicFSIDrivenCavityMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicCollapsibleChannelMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicChannelWithLeafletMesh< ELEMENT >::setup_algebraic_node_update(), oomph::SolidICProblem::setup_problem(), shift_time_values(), and oomph::WomersleyMesh< WOMERSLEY_ELEMENT >::WomersleyMesh().

Node* & oomph::Mesh::node_pt ( const unsigned long &  n  )  [inline]

Return pointer to global node n.

Reimplemented in oomph::AlgebraicMesh, oomph::SolidMesh, and oomph::SpineMesh.

Definition at line 266 of file mesh.h.

References Node_pt.

Referenced by add_boundary_node(), add_node_pt(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicTetMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicMesh< ELEMENT >::build_mesh(), oomph::RectangularQuadMesh< ELEMENT >::build_mesh(), oomph::OneDMesh< ELEMENT >::build_mesh(), oomph::HermiteQuadMesh< ELEMENT >::build_mesh(), oomph::FishMesh< ELEMENT >::build_mesh(), convert_to_boundary_node(), oomph::Problem::copy(), oomph::CylinderWithFlagMesh< ELEMENT >::CylinderWithFlagMesh(), oomph::FSI_functions::doc_fsi(), oomph::EighthSphereMesh< ELEMENT >::EighthSphereMesh(), oomph::Z2ErrorEstimator::get_element_errors(), merge_meshes(), oomph::MacroElementNodeUpdateMesh::node_update(), oomph::QuarterTubeMesh< ELEMENT >::QuarterTubeMesh(), read(), oomph::RefineableMeshBase::refine_as_in_reference_mesh(), remove_boundary_node(), reorder_nodes(), oomph::Problem::set_pinned_values_to_zero(), oomph::HermiteQuadMesh< ELEMENT >::set_position_of_boundary_node(), oomph::HermiteQuadMesh< ELEMENT >::set_position_of_node(), oomph::SimpleCubicScaffoldTetMesh::SimpleCubicScaffoldTetMesh(), oomph::SimpleRectangularQuadMesh< ELEMENT >::SimpleRectangularQuadMesh(), oomph::TetgenScaffoldMesh::TetgenScaffoldMesh(), oomph::TriangleScaffoldMesh::TriangleScaffoldMesh(), and oomph::TubeMesh< ELEMENT >::TubeMesh().

void oomph::Mesh::node_update ( const bool &  update_all_solid_nodes = false  )  [virtual]

Update nodal positions in response to changes in the domain shape. Uses the FiniteElement::get_x(...) function for FiniteElements and doesn't do anything for other element types.

If a MacroElement pointer has been set for a FiniteElement, the MacroElement representation is used to update the nodal positions; if not get_x(...) uses the FE interpolation and thus leaves the nodal positions unchanged. Virtual, so it can be overloaded by specific meshes, such as AlgebraicMeshes or SpineMeshes.

Generally, this function updates the position of all nodes in response to changes in the boundary position. For SolidNodes it only applies the update to those SolidNodes whose position is determined by the boundary position, unless the bool flag is set to true.

Update nodal positions in response to changes in the domain shape. Uses the FiniteElement::get_x(...) function for FiniteElements and doesn't do anything for other element types.

If a MacroElement pointer has been set for a FiniteElement, the MacroElement representation is used to update the nodal positions; if not get_x(...) uses the FE interpolation and thus leaves the nodal positions unchanged. Virtual, so it can be overloaded by specific meshes, such as AlgebraicMeshes or SpineMeshes.

Generally, this function updates the position of all nodes in response to changes in the boundary position. For SolidNodes it only applies the update to those SolidNodes whose position is determined by the boundary position, unless the bool flag is set to true.

Local and global (Eulerian) coordinate

Reimplemented in oomph::AlgebraicMesh, oomph::MacroElementNodeUpdateMesh, oomph::SpineMesh, oomph::MacroElementNodeUpdateRefineableFishMesh< ELEMENT >, oomph::AlgebraicFishMesh< ELEMENT >, oomph::AlgebraicRefineableFishMesh< ELEMENT >, oomph::MacroElementNodeUpdateRefineableQuarterCircleSectorMesh< ELEMENT >, oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >, oomph::MacroElementNodeUpdateRefineableQuarterTubeMesh< ELEMENT >, and oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >.

Definition at line 278 of file mesh.cc.

References element_pt(), oomph::Node::is_hanging(), nelement(), nnode(), Node_pt, oomph::SolidNode::position_is_pinned(), and oomph::Node::x().

Referenced by oomph::ChannelWithLeafletMesh< ELEMENT >::ChannelWithLeafletMesh(), oomph::CollapsibleChannelMesh< ELEMENT >::CollapsibleChannelMesh(), oomph::CylinderWithFlagMesh< ELEMENT >::CylinderWithFlagMesh(), and oomph::SegregatableFSIProblem::extrapolate_solid_data().

void oomph::Mesh::operator= ( const Mesh  )  [inline]

Broken assignment operator.

Definition at line 244 of file mesh.h.

References oomph::BrokenCopy::broken_assign().

void oomph::Mesh::output ( const std::string &  output_filename,
const unsigned &  n_plot 
) [inline]

Output at f(n_plot) points in each element.

Definition at line 550 of file mesh.h.

References output().

void oomph::Mesh::output ( const std::string &  output_filename  )  [inline]

Output for all elements.

Definition at line 541 of file mesh.h.

References output().

void oomph::Mesh::output ( FILE *  file_pt,
const unsigned &  n_plot 
)

Output at f(n_plot) points in each element (C-style output).

Output function for the mesh class

Loop over all elements and plot (i.e. execute the element's own output() function). Use n_plot plot points in each coordinate direction. (C style output)

Definition at line 957 of file mesh.cc.

References Element_pt, and oomph::oomph_info.

void oomph::Mesh::output ( FILE *  file_pt  ) 

Output for all elements (C-style output).

Output function for the mesh class

Loop over all elements and plot (i.e. execute the element's own output() function) (C style output)

Definition at line 914 of file mesh.cc.

References Element_pt, and oomph::oomph_info.

void oomph::Mesh::output ( std::ostream &  outfile,
const unsigned &  n_plot 
)

Output at f(n_plot) points in each element.

Output function for the mesh class

Loop over all elements and plot (i.e. execute the element's own output() function). Use n_plot plot points in each coordinate direction.

Definition at line 867 of file mesh.cc.

References Element_pt, and oomph::oomph_info.

void oomph::Mesh::output ( std::ostream &  outfile  ) 

Output for all elements.

Output function for the mesh class

Loop over all elements and plot (i.e. execute the element's own output() function)

Definition at line 825 of file mesh.cc.

References Element_pt, and oomph::oomph_info.

Referenced by oomph::FSI_functions::doc_fsi(), oomph::WomersleyProblem< ELEMENT, DIM >::doc_solution(), output(), output_boundaries(), and oomph::RefineableMeshBase::refine_as_in_reference_mesh().

void oomph::Mesh::output_boundaries ( const std::string &  output_filename  )  [inline]

Output the nodes on the boundaries (into separate tecplot zones). Specify filename

Definition at line 573 of file mesh.h.

References output_boundaries().

void oomph::Mesh::output_boundaries ( std::ostream &  outfile  ) 

Output the nodes on the boundaries (into separate tecplot zones).

Output function for the mesh boundaries

Loop over all boundaries and dump out the coordinates of the points on the boundary (in individual tecplot zones)

Definition at line 672 of file mesh.cc.

References Boundary_node_pt, nboundary(), and output().

Referenced by output_boundaries().

void oomph::Mesh::output_fct ( std::ostream &  outfile,
const unsigned &  n_plot,
const double &  time,
FiniteElement::UnsteadyExactSolutionFctPt  exact_soln_pt 
)

Output a given time-dep. Vector function at f(n_plot) points in each element.

Output function for the mesh class

Loop over all elements and plot (i.e. execute the element's own output() function) at time t. Use n_plot plot points in each coordinate direction.

Definition at line 1043 of file mesh.cc.

References Element_pt, and oomph::oomph_info.

void oomph::Mesh::output_fct ( std::ostream &  outfile,
const unsigned &  n_plot,
FiniteElement::SteadyExactSolutionFctPt  exact_soln_pt 
)

Output a given Vector function at f(n_plot) points in each element.

Output function for the mesh class

Loop over all elements and plot (i.e. execute the element's own output() function). Use n_plot plot points in each coordinate direction.

Definition at line 1000 of file mesh.cc.

References Element_pt, and oomph::oomph_info.

void oomph::Mesh::prune_dead_nodes (  ) 

Prune nodes. Nodes that have been marked as obsolete are removed from the mesh (and its boundary-node scheme).

Nodes that have been marked as obsolete are removed from the mesh and the its boundaries

Definition at line 597 of file mesh.cc.

References Boundary_node_pt, nboundary(), nnode(), and Node_pt.

Referenced by oomph::RefineableMeshBase::adapt_mesh().

void oomph::Mesh::read ( std::ifstream &  restart_file  )  [virtual]

Read solution from restart file.

Try to cast to elastic node

Reimplemented in oomph::SpineMesh.

Definition at line 734 of file mesh.cc.

References nelement(), nnode(), node_pt(), OOMPH_EXCEPTION_LOCATION, and oomph::Node::read().

Referenced by oomph::SpineMesh::read().

void oomph::Mesh::remove_boundary_node ( const unsigned &  b,
Node *const &  node_pt 
)

Remove the node node_pt from the b-th boundary of the mesh This function also removes the information from the Node itself

Definition at line 210 of file mesh.cc.

References Boundary_node_pt, node_pt(), and oomph::Node::remove_from_boundary().

Referenced by flush_all_external_storage().

void oomph::Mesh::remove_boundary_nodes ( const unsigned &  b  ) 

Remove all information about nodes stored on the b-th boundary of the mesh.

Remove the information about nodes stored on the b-th boundary of the mesh

Definition at line 180 of file mesh.cc.

References boundary_node_pt(), and Boundary_node_pt.

void oomph::Mesh::remove_boundary_nodes (  ) 

Remove all information about mesh boundaries.

Definition at line 196 of file mesh.cc.

References Boundary_node_pt.

Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), and oomph::ChannelWithLeafletMesh< ELEMENT >::ChannelWithLeafletMesh().

void oomph::Mesh::reorder_nodes (  )  [virtual]

Re-order nodes in the order in which they appear in elements -- can be overloaded for more efficient re-ordering.

Reorder nodes in the order in which they are encountered when stepping through the elements

Definition at line 400 of file mesh.cc.

References finite_element_pt(), nelement(), nnode(), Node_pt, node_pt(), and OOMPH_EXCEPTION_LOCATION.

Referenced by oomph::RefineableMeshBase::adapt_mesh().

unsigned oomph::Mesh::self_test (  ) 

Self-test: Check elements and nodes. Return 0 for OK.

Reimplemented in oomph::AlgebraicMesh, oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >, and oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >.

Definition at line 530 of file mesh.cc.

References check_for_repeated_nodes(), Element_pt, Node_pt, and oomph::oomph_info.

Referenced by oomph::RefineableEighthSphereMesh< ELEMENT >::RefineableEighthSphereMesh(), oomph::RefineableQuarterTubeMesh< ELEMENT >::RefineableQuarterTubeMesh(), oomph::RefineableTubeMesh< ELEMENT >::RefineableTubeMesh(), and oomph::AlgebraicMesh::self_test().

void oomph::Mesh::set_nboundary ( const unsigned &  nbound  )  [inline]

Set the number of boundaries in the mesh.

Definition at line 304 of file mesh.h.

References Boundary_coordinate_exists, and Boundary_node_pt.

Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicTetMesh< ELEMENT >::build_from_scaffold(), oomph::GeompackQuadMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicMesh< ELEMENT >::build_mesh(), oomph::RectangularQuadMesh< ELEMENT >::build_mesh(), oomph::OneDMesh< ELEMENT >::build_mesh(), oomph::HermiteQuadMesh< ELEMENT >::build_mesh(), oomph::FishMesh< ELEMENT >::build_mesh(), oomph::ChannelWithLeafletMesh< ELEMENT >::ChannelWithLeafletMesh(), oomph::CollapsibleChannelMesh< ELEMENT >::CollapsibleChannelMesh(), oomph::CylinderWithFlagMesh< ELEMENT >::CylinderWithFlagMesh(), oomph::EighthSphereMesh< ELEMENT >::EighthSphereMesh(), oomph::FSIDrivenCavityMesh< ELEMENT >::FSIDrivenCavityMesh(), oomph::GeompackQuadScaffoldMesh::GeompackQuadScaffoldMesh(), oomph::QuarterCircleSectorMesh< ELEMENT >::QuarterCircleSectorMesh(), oomph::QuarterTubeMesh< ELEMENT >::QuarterTubeMesh(), oomph::SimpleCubicScaffoldTetMesh::SimpleCubicScaffoldTetMesh(), oomph::SimpleRectangularQuadMesh< ELEMENT >::SimpleRectangularQuadMesh(), oomph::SimpleRectangularTriMesh< ELEMENT >::SimpleRectangularTriMesh(), oomph::TetgenScaffoldMesh::TetgenScaffoldMesh(), oomph::TriangleScaffoldMesh::TriangleScaffoldMesh(), and oomph::TubeMesh< ELEMENT >::TubeMesh().

virtual void oomph::Mesh::setup_boundary_element_info ( std::ostream &  outfile  )  [inline, virtual]

Setup lookup schemes which establish whic elements are located next to mesh's boundaries. Doc in outfile (if it's open). (Empty virtual function -- implement this for specific Mesh classes).

Reimplemented in oomph::BrickMeshBase, oomph::QuadMeshBase, oomph::TetMeshBase, oomph::TriangleMeshBase, oomph::HermiteQuadMesh< ELEMENT >, and oomph::SimpleCubicTetMesh< ELEMENT >.

Definition at line 235 of file mesh.h.

virtual void oomph::Mesh::setup_boundary_element_info (  )  [inline, virtual]

Interface for function that is used to setup the boundary information (Empty virtual function -- implement this for specific Mesh classes).

Reimplemented in oomph::BrickMeshBase, oomph::QuadMeshBase, oomph::TetMeshBase, oomph::TriangleMeshBase, oomph::HermiteQuadMesh< ELEMENT >, and oomph::SimpleCubicTetMesh< ELEMENT >.

Definition at line 229 of file mesh.h.

Referenced by oomph::RefineableMeshBase::adapt_mesh(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), and oomph::CylinderWithFlagMesh< ELEMENT >::CylinderWithFlagMesh().

void oomph::Mesh::shift_time_values (  ) 

Shift time-dependent data along for next timestep: Deal with nodal Data/positions and the element's internal Data.

Shift time-dependent data along for next timestep: Again this is achieved by looping over all data and calling the functions defined in each data object's timestepper.

Definition at line 1123 of file mesh.cc.

References element_pt(), nelement(), nnode(), and Node_pt.

Referenced by oomph::Problem::shift_time_values().


Friends And Related Function Documentation

friend class Problem [friend]

Problem is a friend.

Definition at line 67 of file mesh.h.


Member Data Documentation

std::vector<bool> oomph::Mesh::Boundary_coordinate_exists [protected]

Vector of boolean data that indicates whether the boundary coordinates have been set for the boundary.

Definition at line 173 of file mesh.h.

Referenced by boundary_coordinate_exists(), oomph::FishMesh< ELEMENT >::build_mesh(), oomph::ChannelWithLeafletMesh< ELEMENT >::ChannelWithLeafletMesh(), oomph::CollapsibleChannelMesh< ELEMENT >::CollapsibleChannelMesh(), oomph::CylinderWithFlagMesh< ELEMENT >::CylinderWithFlagMesh(), oomph::FSIDrivenCavityMesh< ELEMENT >::FSIDrivenCavityMesh(), oomph::QuarterCircleSectorMesh< ELEMENT >::QuarterCircleSectorMesh(), oomph::QuarterTubeMesh< ELEMENT >::QuarterTubeMesh(), oomph::ElasticRectangularQuadMesh< ELEMENT >::set_boundary_coordinates(), set_nboundary(), oomph::TriangleMesh< ELEMENT >::setup_boundary_coordinates(), oomph::TetgenMesh< ELEMENT >::setup_boundary_coordinates(), and oomph::TubeMesh< ELEMENT >::TubeMesh().

Vector<Vector<FiniteElement*> > oomph::Mesh::Boundary_element_pt [protected]

Vector of Vector of pointers to elements on the boundaries: Boundary_element_pt(b,e).

Definition at line 85 of file mesh.h.

Referenced by boundary_element_pt(), oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), nboundary_element(), oomph::TriangleMeshBase::setup_boundary_element_info(), oomph::TetMeshBase::setup_boundary_element_info(), oomph::SimpleCubicTetMesh< ELEMENT >::setup_boundary_element_info(), oomph::QuadMeshBase::setup_boundary_element_info(), oomph::HermiteQuadMesh< ELEMENT >::setup_boundary_element_info(), and oomph::BrickMeshBase::setup_boundary_element_info().

Vector<Vector<Node*> > oomph::Mesh::Boundary_node_pt [private]

Vector of Vector of pointers to nodes on the boundaries: Boundary_node_pt(b,n). Note that this is private to force the use of the add_boundary_node() function, which ensures that the reverse look-up schemes for the nodes are set up.

Definition at line 75 of file mesh.h.

Referenced by add_boundary_node(), boundary_node_pt(), merge_meshes(), nboundary(), nboundary_node(), output_boundaries(), prune_dead_nodes(), oomph::Problem::rebuild_global_mesh(), remove_boundary_node(), remove_boundary_nodes(), and set_nboundary().

Steady< 0 > oomph::Mesh::Default_TimeStepper [static, protected]

The Steady Timestepper.

Definition at line 93 of file mesh.h.

Vector<GeneralisedElement*> oomph::Mesh::Element_pt [protected]

Vector of pointers to generalised elements.

Definition at line 169 of file mesh.h.

Referenced by oomph::RefineableMeshBase::adapt_mesh(), add_element_pt(), assign_global_eqn_numbers(), assign_local_eqn_numbers(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicTetMesh< ELEMENT >::build_from_scaffold(), oomph::GeompackQuadMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicMesh< ELEMENT >::build_mesh(), oomph::RectangularQuadMesh< ELEMENT >::build_mesh(), oomph::OneDMesh< ELEMENT >::build_mesh(), oomph::HermiteQuadMesh< ELEMENT >::build_mesh(), oomph::FishMesh< ELEMENT >::build_mesh(), oomph::SingleLayerCubicSpineMesh< ELEMENT, INTERFACE_ELEMENT >::build_single_layer_mesh(), compute_error(), convert_to_boundary_node(), oomph::CylinderWithFlagMesh< ELEMENT >::CylinderWithFlagMesh(), oomph::EighthSphereMesh< ELEMENT >::EighthSphereMesh(), oomph::SpineMesh::element_node_pt(), oomph::SolidMesh::element_node_pt(), element_pt(), oomph::TwoLayerSpineMesh< ELEMENT, INTERFACE_ELEMENT >::element_reorder(), oomph::SingleLayerSpineMesh< ELEMENT, INTERFACE_ELEMENT >::element_reorder(), oomph::RectangularQuadMesh< ELEMENT >::element_reorder(), oomph::ChannelSpineMesh< ELEMENT >::element_reorder(), finite_element_pt(), flush_element_and_node_storage(), oomph::GeompackQuadScaffoldMesh::GeompackQuadScaffoldMesh(), merge_meshes(), nelement(), output(), output_fct(), oomph::QuarterCircleSectorMesh< ELEMENT >::QuarterCircleSectorMesh(), oomph::QuarterTubeMesh< ELEMENT >::QuarterTubeMesh(), oomph::Problem::rebuild_global_mesh(), self_test(), oomph::SimpleCubicScaffoldTetMesh::SimpleCubicScaffoldTetMesh(), oomph::SimpleRectangularQuadMesh< ELEMENT >::SimpleRectangularQuadMesh(), oomph::SimpleRectangularTriMesh< ELEMENT >::SimpleRectangularTriMesh(), oomph::TetgenMesh< ELEMENT >::split_elements_in_corners(), oomph::TetgenScaffoldMesh::TetgenScaffoldMesh(), oomph::TriangleScaffoldMesh::TriangleScaffoldMesh(), oomph::TubeMesh< ELEMENT >::TubeMesh(), and ~Mesh().

Vector<FiniteElement*> oomph::Mesh::External_element_pt [protected]

Vector holding the pointers to the external elements, which are the elements that are source elements for elements within an existing Mesh that are contained on a different Mesh but the same processor (obviously only important after distribution of the mesh has occurred)

Definition at line 136 of file mesh.h.

Referenced by add_external_element_pt(), external_element_pt(), flush_all_external_storage(), and nexternal_element().

Vector<Node*> oomph::Mesh::External_node_pt [protected]

Vector holding pointers to the external nodes on the external elements.

Definition at line 139 of file mesh.h.

Referenced by add_external_node_pt(), external_node_pt(), flush_all_external_storage(), and nexternal_node().

Vector<Vector<int> > oomph::Mesh::Face_index_at_boundary [protected]

For the e-th finite element on boundary b, this is the index of the face that lies along that boundary.

Definition at line 89 of file mesh.h.

Referenced by oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), face_index_at_boundary(), oomph::TriangleMeshBase::setup_boundary_element_info(), oomph::TetMeshBase::setup_boundary_element_info(), oomph::SimpleCubicTetMesh< ELEMENT >::setup_boundary_element_info(), oomph::QuadMeshBase::setup_boundary_element_info(), oomph::HermiteQuadMesh< ELEMENT >::setup_boundary_element_info(), and oomph::BrickMeshBase::setup_boundary_element_info().

bool oomph::Mesh::Lookup_for_elements_next_boundary_is_setup [protected]

Flag to indicate that the lookup schemes for elements that are adjacent to the boundaries has been set up.

Definition at line 81 of file mesh.h.

Referenced by oomph::RefineableMeshBase::adapt_mesh(), boundary_element_pt(), oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), face_index_at_boundary(), merge_meshes(), Mesh(), nboundary_element(), oomph::TriangleMeshBase::setup_boundary_element_info(), oomph::TetMeshBase::setup_boundary_element_info(), oomph::SimpleCubicTetMesh< ELEMENT >::setup_boundary_element_info(), oomph::QuadMeshBase::setup_boundary_element_info(), oomph::HermiteQuadMesh< ELEMENT >::setup_boundary_element_info(), oomph::BrickMeshBase::setup_boundary_element_info(), and oomph::TetgenMesh< ELEMENT >::split_elements_in_corners().

Vector<Node*> oomph::Mesh::Node_pt [protected]

Vector of pointers to nodes.

Definition at line 166 of file mesh.h.

Referenced by add_node_pt(), assign_global_eqn_numbers(), assign_initial_values_impulsive(), oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicTetMesh< ELEMENT >::build_from_scaffold(), oomph::GeompackQuadMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicMesh< ELEMENT >::build_mesh(), oomph::RectangularQuadMesh< ELEMENT >::build_mesh(), oomph::OneDMesh< ELEMENT >::build_mesh(), oomph::HermiteQuadMesh< ELEMENT >::build_mesh(), oomph::FishMesh< ELEMENT >::build_mesh(), calculate_predictions(), convert_to_boundary_node(), oomph::CylinderWithFlagMesh< ELEMENT >::CylinderWithFlagMesh(), oomph::EighthSphereMesh< ELEMENT >::EighthSphereMesh(), flush_all_external_storage(), flush_element_and_node_storage(), oomph::GeompackQuadScaffoldMesh::GeompackQuadScaffoldMesh(), merge_meshes(), nnode(), oomph::SpineMesh::node_pt(), oomph::SolidMesh::node_pt(), node_pt(), oomph::AlgebraicMesh::node_pt(), oomph::SpineMesh::node_update(), node_update(), prune_dead_nodes(), oomph::QuarterCircleSectorMesh< ELEMENT >::QuarterCircleSectorMesh(), oomph::QuarterTubeMesh< ELEMENT >::QuarterTubeMesh(), oomph::Problem::rebuild_global_mesh(), reorder_nodes(), self_test(), oomph::SolidMesh::set_lagrangian_nodal_coordinates(), shift_time_values(), oomph::SimpleCubicScaffoldTetMesh::SimpleCubicScaffoldTetMesh(), oomph::SimpleRectangularQuadMesh< ELEMENT >::SimpleRectangularQuadMesh(), oomph::SimpleRectangularTriMesh< ELEMENT >::SimpleRectangularTriMesh(), oomph::TetgenScaffoldMesh::TetgenScaffoldMesh(), oomph::TriangleScaffoldMesh::TriangleScaffoldMesh(), oomph::TubeMesh< ELEMENT >::TubeMesh(), oomph::WomersleyMesh< WOMERSLEY_ELEMENT >::WomersleyMesh(), and ~Mesh().


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