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

#include <geom_objects.h>

Inheritance diagram for oomph::GeomObject:

oomph::Circle oomph::Ellipse oomph::EllipticalTube oomph::FiniteElement oomph::MeshAsGeomObject< DIM_LAGRANGIAN, DIM_EULERIAN, ELEMENT > oomph::PseudoBucklingRing oomph::StraightLine oomph::AdvectionDiffusionEquations< DIM > oomph::AdvectionDiffusionReactionEquations< NREAGENT, DIM > oomph::AxisymmetricNavierStokesEquations oomph::DGElement oomph::ElementWithExternalElement oomph::ElementWithMovingNodes oomph::ElementWithZ2ErrorEstimator oomph::FaceElement oomph::FSIFluidElement oomph::GeneralisedAdvectionDiffusionEquations< DIM > oomph::LinearElasticityEquationsBase< DIM > oomph::LinearWaveEquations< DIM > oomph::PointElement oomph::PoissonEquations< DIM > oomph::QElementBase oomph::QHermiteElement< DIM > oomph::RefineableElement oomph::SolidFiniteElement oomph::SpectralElement oomph::StorableShapeElementBase oomph::TElementBase oomph::UnsteadyHeatEquations< DIM > oomph::WomersleyEquations< DIM > oomph::PseudoBucklingRingElement List of all members.

Detailed Description

A geometric object is an object that provides a parametrised description of its shape via the function GeomObject::position(...).

The minimum functionality is: The geometric object has a number of Lagrangian (intrinsic) coordinates that parametrise the (Eulerian) position vector, whose dimension might differ from the number of Lagrangian (intrinsic) coordinates (e.g. for shell-like objects).

We might also need the derivatives of the position Vector w.r.t. to the Lagrangian (intrinsic) coordinates and interfaces for this functionality are provided. [Note: For some geometric objects it might be too tedious to work out the derivatives and they might not be needed anyway. In other cases we might always need the position vector and all derivatives at the same time. We provide suitable interfaces for these cases in virtual but broken (rather than pure virtual) form so the user can (but doesn't have to) provide the required versions by overloading.]

The shape of a geometric object is usually determined by a number of parameters whose value might have to be determined as part of the overall solution (e.g. for geometric objects that represent elastic walls). The geometric object therefore has a vector of (pointers to) geometric Data, which can be free/pinned and have a time history, etc. This makes it possible to `upgrade' GeomObjects to GeneralisedElements -- in this case the geometric Data plays the role of internal Data in the GeneralisedElement. Conversely, FiniteElements, in which a geometry (spatial coordinate) has been defined, inherit from GeomObjects, which is particularly useful in FSI computations: Meshing of moving domains is typically performed by representing the domain as an object of type Domain and, by default, Domain boundaries are represented by GeomObjects. In FSI computations, the boundary of the fluid domain is represented by a number of solid mechanics elements. These elements are, in fact, GeomObjects via inheritance so that the we can use the standard interfaces of the GeomObject class for mesh generation. An example is the class FSIHermiteBeamElement which is derived from the class HermiteBeamElement (a `normal' beam element) and the GeomObject class.

The shape of a geometric object can have an explicit time-dependence, for instance in cases where a domain boundary is performing prescribed motions. We provide access to the `global' time by giving the object a pointer to a timestepping scheme. [Note that, within the overall FE code, time is only ever evaluated at discrete instants (which are accessible via the timestepper), never in continuous form]. The timestepper is also needed to evaluate time-derivatives if the geometric Data carries a time history.

Definition at line 103 of file geom_objects.h.


Public Member Functions

 GeomObject ()
 Default constructor.
 GeomObject (const unsigned &ndim)
 Constructor: Pass dimension of geometric object (# of Eulerian coords = # of Lagrangian coords; no time history available/needed).
 GeomObject (const unsigned &nlagrangian, const unsigned &ndim)
 Constructor: pass # of Eulerian and Lagrangian coordinates. No time history available/needed.
 GeomObject (const unsigned &nlagrangian, const unsigned &ndim, TimeStepper *time_stepper_pt)
 Constructor: pass # of Eulerian and Lagrangian coordinates and pointer to time-stepper which is used to handle the position at previous timesteps and allows the evaluation of veloc/acceleration etc. in cases where the GeomData varies with time.
 GeomObject (const GeomObject &dummy)
 Broken copy constructor.
void operator= (const GeomObject &)
 Broken assignment operator.
virtual ~GeomObject ()
 (Empty) destructor
unsigned nlagrangian () const
 Access function to # of Lagrangian coordinates.
unsigned ndim () const
 Access function to # of Eulerian coordinates.
void set_nlagrangian_and_ndim (const unsigned &n_lagrangian, const unsigned &n_dim)
 Set # of Lagrangian and Eulerian coordinates.
TimeStepper *& time_stepper_pt ()
 Access function for pointer to time stepper: Null if object is not time-dependent.
TimeSteppertime_stepper_pt () const
 Access function for pointer to time stepper: Null if object is not time-dependent. Const version.
virtual unsigned ngeom_data () const
 How many items of Data does the shape of the object depend on? This is implemented as a broken virtual function. You must overload this for GeomObjects that contain geometric Data, i.e. GeomObjects whose shape depends on Data that may contain unknowns in the overall Problem.
virtual Datageom_data_pt (const unsigned &j)
 Return pointer to the j-th Data item that the object's shape depends on. This is implemented as a broken virtual function. You must overload this for GeomObjects that contain geometric Data, i.e. GeomObjects whose shape depends on Data that may contain unknowns in the overall Problem.
virtual void position (const Vector< double > &zeta, Vector< double > &r) const =0
 Parametrised position on object at current time: r(zeta).
virtual void position (const unsigned &t, const Vector< double > &zeta, Vector< double > &r) const
 Parametrised position on object: r(zeta). Evaluated at previous timestep. t=0: current time; t>0: previous timestep. Works for t=0 but needs to be overloaded if genuine time-dependence is required.
virtual void dposition_dt (const Vector< double > &zeta, const unsigned &j, Vector< double > &drdt)
 j-th time-derivative on object at current time: $ \frac{d^{j} r(\zeta)}{dt^j} $.
virtual void dposition (const Vector< double > &zeta, DenseMatrix< double > &drdzeta) const
 Derivative of position Vector w.r.t. to coordinates: $ \frac{dR_i}{d \zeta_\alpha}$ = drdzeta(alpha,i). Evaluated at current time.
virtual void d2position (const Vector< double > &zeta, RankThreeTensor< double > &ddrdzeta) const
 2nd derivative of position Vector w.r.t. to coordinates: $ \frac{d^2R_i}{d \zeta_\alpha d \zeta_\beta}$ = ddrdzeta(alpha,beta,i). Evaluated at current time.
virtual void d2position (const Vector< double > &zeta, Vector< double > &r, DenseMatrix< double > &drdzeta, RankThreeTensor< double > &ddrdzeta) const
 Posn Vector and its 1st & 2nd derivatives w.r.t. to coordinates: $ \frac{dR_i}{d \zeta_\alpha}$ = drdzeta(alpha,i). $ \frac{d^2R_i}{d \zeta_\alpha d \zeta_\beta}$ = ddrdzeta(alpha,beta,i). Evaluated at current time.
virtual void locate_zeta (const Vector< double > &zeta, GeomObject *&sub_geom_object_pt, Vector< double > &s, const bool &use_coordinate_as_initial_guess=false)
 A geometric object may be composed of may sub-objects (e.g. a finite-element representation of a boundary). In order to implement sparse update functions, it is necessary to know the sub-object and local coordinate within that sub-object at a given intrinsic coordinate, zeta. Note that only one sub-object can "cover" any given intrinsic position. If the position is at an "interface" between sub-objects, either one can be returned. The default implementation merely returns, the pointer to the "entire" GeomObject and the coordinate, zeta The optional boolean flag only applies if a Newton method is used to find the value of zeta, and if true the value of the coordinate s is used as the initial guess for the method. If the flag is false (the default) a value of s=0 is used as the initial guess.
virtual void interpolated_zeta (const Vector< double > &s, Vector< double > &zeta) const
 A geometric object may be composed of many sub-objects each with their own local coordinate. This function returns the "global" intrinsic coordinate zeta (within the compound object), at a given local coordinate s (i.e. the intrinsic coordinate of the sub-GeomObject. In simple (non-compound) GeomObjects, the local intrinsic coordinate is the global intrinsic coordinate and so the function merely returns s. To make it less likely that the default implementation is called in error (because it is not overloaded in a derived GeomObject where the default is not appropriate, we do at least check that s and zeta have the same size if called in PARANOID mode.

Protected Attributes

unsigned NLagrangian
 Number of Lagrangian (intrinsic) coordinates.
unsigned Ndim
 Number of Eulerian coordinates.
TimeStepperGeom_object_time_stepper_pt
 Timestepper (used to handle access to geometry at previous timesteps).

Constructor & Destructor Documentation

oomph::GeomObject::GeomObject (  )  [inline]

Default constructor.

Definition at line 109 of file geom_objects.h.

oomph::GeomObject::GeomObject ( const unsigned &  ndim  )  [inline]

Constructor: Pass dimension of geometric object (# of Eulerian coords = # of Lagrangian coords; no time history available/needed).

Definition at line 114 of file geom_objects.h.

oomph::GeomObject::GeomObject ( const unsigned &  nlagrangian,
const unsigned &  ndim 
) [inline]

Constructor: pass # of Eulerian and Lagrangian coordinates. No time history available/needed.

Definition at line 121 of file geom_objects.h.

References OOMPH_EXCEPTION_LOCATION.

oomph::GeomObject::GeomObject ( const unsigned &  nlagrangian,
const unsigned &  ndim,
TimeStepper time_stepper_pt 
) [inline]

Constructor: pass # of Eulerian and Lagrangian coordinates and pointer to time-stepper which is used to handle the position at previous timesteps and allows the evaluation of veloc/acceleration etc. in cases where the GeomData varies with time.

Definition at line 144 of file geom_objects.h.

References OOMPH_EXCEPTION_LOCATION.

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

Broken copy constructor.

Definition at line 165 of file geom_objects.h.

References oomph::BrokenCopy::broken_copy().

virtual oomph::GeomObject::~GeomObject (  )  [inline, virtual]

(Empty) destructor

Definition at line 177 of file geom_objects.h.


Member Function Documentation

virtual void oomph::GeomObject::d2position ( const Vector< double > &  zeta,
Vector< double > &  r,
DenseMatrix< double > &  drdzeta,
RankThreeTensor< double > &  ddrdzeta 
) const [inline, virtual]

Posn Vector and its 1st & 2nd derivatives w.r.t. to coordinates: $ \frac{dR_i}{d \zeta_\alpha}$ = drdzeta(alpha,i). $ \frac{d^2R_i}{d \zeta_\alpha d \zeta_\beta}$ = ddrdzeta(alpha,beta,i). Evaluated at current time.

Reimplemented in oomph::StraightLine, oomph::Ellipse, and oomph::EllipticalTube.

Definition at line 327 of file geom_objects.h.

References OOMPH_EXCEPTION_LOCATION.

virtual void oomph::GeomObject::d2position ( const Vector< double > &  zeta,
RankThreeTensor< double > &  ddrdzeta 
) const [inline, virtual]

2nd derivative of position Vector w.r.t. to coordinates: $ \frac{d^2R_i}{d \zeta_\alpha d \zeta_\beta}$ = ddrdzeta(alpha,beta,i). Evaluated at current time.

Reimplemented in oomph::StraightLine, oomph::Ellipse, and oomph::EllipticalTube.

Definition at line 311 of file geom_objects.h.

References OOMPH_EXCEPTION_LOCATION.

Referenced by oomph::OneDLagrangianMesh< ELEMENT >::assign_undeformed_positions(), oomph::CircularCylindricalShellMesh< ELEMENT >::assign_undeformed_positions(), oomph::KirchhoffLoveBeamEquations::fill_in_contribution_to_residuals_beam(), oomph::KirchhoffLoveShellEquations::fill_in_contribution_to_residuals_shell(), oomph::KirchhoffLoveShellEquations::get_energy(), and oomph::KirchhoffLoveBeamEquations::get_energy().

virtual void oomph::GeomObject::dposition ( const Vector< double > &  zeta,
DenseMatrix< double > &  drdzeta 
) const [inline, virtual]

Derivative of position Vector w.r.t. to coordinates: $ \frac{dR_i}{d \zeta_\alpha}$ = drdzeta(alpha,i). Evaluated at current time.

Reimplemented in oomph::StraightLine, oomph::Ellipse, and oomph::MeshAsGeomObject< DIM_LAGRANGIAN, DIM_EULERIAN, ELEMENT >.

Definition at line 297 of file geom_objects.h.

References OOMPH_EXCEPTION_LOCATION.

virtual void oomph::GeomObject::dposition_dt ( const Vector< double > &  zeta,
const unsigned &  j,
Vector< double > &  drdt 
) [inline, virtual]

j-th time-derivative on object at current time: $ \frac{d^{j} r(\zeta)}{dt^j} $.

Reimplemented in oomph::FiniteElement, and oomph::PseudoBucklingRing.

Definition at line 269 of file geom_objects.h.

References OOMPH_EXCEPTION_LOCATION, and position().

virtual Data* oomph::GeomObject::geom_data_pt ( const unsigned &  j  )  [inline, virtual]

Return pointer to the j-th Data item that the object's shape depends on. This is implemented as a broken virtual function. You must overload this for GeomObjects that contain geometric Data, i.e. GeomObjects whose shape depends on Data that may contain unknowns in the overall Problem.

Reimplemented in oomph::FiniteElement, oomph::SolidFiniteElement, oomph::FaceElementAsGeomObject< ELEMENT >, oomph::StraightLine, oomph::Ellipse, oomph::Circle, oomph::MeshAsGeomObject< DIM_LAGRANGIAN, DIM_EULERIAN, ELEMENT >, oomph::PseudoBucklingRing, and oomph::RefineableSolidElement.

Definition at line 228 of file geom_objects.h.

References OOMPH_EXCEPTION_LOCATION.

Referenced by oomph::ImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::set_boundary_shape_geom_object_pt().

virtual void oomph::GeomObject::interpolated_zeta ( const Vector< double > &  s,
Vector< double > &  zeta 
) const [inline, virtual]

A geometric object may be composed of many sub-objects each with their own local coordinate. This function returns the "global" intrinsic coordinate zeta (within the compound object), at a given local coordinate s (i.e. the intrinsic coordinate of the sub-GeomObject. In simple (non-compound) GeomObjects, the local intrinsic coordinate is the global intrinsic coordinate and so the function merely returns s. To make it less likely that the default implementation is called in error (because it is not overloaded in a derived GeomObject where the default is not appropriate, we do at least check that s and zeta have the same size if called in PARANOID mode.

Reimplemented in oomph::FiniteElement.

Definition at line 372 of file geom_objects.h.

References OOMPH_EXCEPTION_LOCATION.

virtual void oomph::GeomObject::locate_zeta ( const Vector< double > &  zeta,
GeomObject *&  sub_geom_object_pt,
Vector< double > &  s,
const bool &  use_coordinate_as_initial_guess = false 
) [inline, virtual]

A geometric object may be composed of may sub-objects (e.g. a finite-element representation of a boundary). In order to implement sparse update functions, it is necessary to know the sub-object and local coordinate within that sub-object at a given intrinsic coordinate, zeta. Note that only one sub-object can "cover" any given intrinsic position. If the position is at an "interface" between sub-objects, either one can be returned. The default implementation merely returns, the pointer to the "entire" GeomObject and the coordinate, zeta The optional boolean flag only applies if a Newton method is used to find the value of zeta, and if true the value of the coordinate s is used as the initial guess for the method. If the flag is false (the default) a value of s=0 is used as the initial guess.

Reimplemented in oomph::FiniteElement, oomph::MeshAsGeomObject< DIM_LAGRANGIAN, DIM_EULERIAN, ELEMENT >, oomph::FSIHermiteBeamElement, and oomph::FSIDiagHermiteShellElement.

Definition at line 350 of file geom_objects.h.

Referenced by oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::ChannelSpineMesh< ELEMENT >::build_channel_spine_mesh(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::reposition_spines(), oomph::ImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::set_boundary_shape_geom_object_pt(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::setup_algebraic_node_update(), 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::RefineableAlgebraicFSIDrivenCavityMesh< ELEMENT >::update_node_update(), oomph::AlgebraicFishMesh< ELEMENT >::update_node_update(), oomph::RefineableAlgebraicCylinderWithFlagMesh< ELEMENT >::update_node_update(), oomph::RefineableAlgebraicCollapsibleChannelMesh< ELEMENT >::update_node_update(), oomph::RefineableAlgebraicChannelWithLeafletMesh< ELEMENT >::update_node_update(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::update_node_update_in_lower_right_box(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::update_node_update_in_region(), and oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::update_node_update_in_upper_left_box().

unsigned oomph::GeomObject::ndim (  )  const [inline]

Access function to # of Eulerian coordinates.

Definition at line 183 of file geom_objects.h.

References Ndim.

Referenced by oomph::QHermiteElement< DIM >::build_face_element(), oomph::FSIDiagHermiteShellElement::dposition_dlagrangian_at_local_coordinate(), oomph::FSIHermiteBeamElement::dposition_dlagrangian_at_local_coordinate(), oomph::KirchhoffLoveBeamEquations::fill_in_contribution_to_residuals_beam(), oomph::KirchhoffLoveShellEquations::get_energy(), oomph::KirchhoffLoveBeamEquations::get_energy(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_kinetic_energy_flux(), oomph::KirchhoffLoveBeamEquations::get_non_unit_tangent(), oomph::KirchhoffLoveBeamEquations::get_normal(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_rate_of_traction_work(), oomph::NavierStokesSurfacePowerElement< ELEMENT >::get_volume_flux(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_central_region(), oomph::AlgebraicFishMesh< ELEMENT >::node_update_in_body(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::node_update_in_central_box(), oomph::AlgebraicFishMesh< ELEMENT >::node_update_in_fin(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::node_update_in_lower_right_box(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::node_update_in_upper_left_box(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_lower_right_region(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_upper_left_region(), and oomph::HermiteBeamElement::output().

virtual unsigned oomph::GeomObject::ngeom_data (  )  const [inline, virtual]

How many items of Data does the shape of the object depend on? This is implemented as a broken virtual function. You must overload this for GeomObjects that contain geometric Data, i.e. GeomObjects whose shape depends on Data that may contain unknowns in the overall Problem.

Reimplemented in oomph::ElementWithMovingNodes, oomph::FiniteElement, oomph::SolidFiniteElement, oomph::FaceElementAsGeomObject< ELEMENT >, oomph::StraightLine, oomph::Ellipse, oomph::Circle, oomph::EllipticalTube, oomph::MeshAsGeomObject< DIM_LAGRANGIAN, DIM_EULERIAN, ELEMENT >, oomph::PseudoBucklingRing, and oomph::RefineableSolidElement.

Definition at line 206 of file geom_objects.h.

References OOMPH_EXCEPTION_LOCATION.

Referenced by oomph::ElementWithMovingNodes::assemble_set_of_all_geometric_data(), and oomph::ImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::set_boundary_shape_geom_object_pt().

unsigned oomph::GeomObject::nlagrangian (  )  const [inline]

Access function to # of Lagrangian coordinates.

Definition at line 180 of file geom_objects.h.

References NLagrangian.

Referenced by oomph::SolidQHermiteElement< DIM >::build_face_element(), oomph::FSIDiagHermiteShellElement::dposition_dlagrangian_at_local_coordinate(), oomph::FSIHermiteBeamElement::dposition_dlagrangian_at_local_coordinate(), oomph::KirchhoffLoveBeamEquations::fill_in_contribution_to_residuals_beam(), oomph::KirchhoffLoveShellEquations::get_energy(), oomph::KirchhoffLoveBeamEquations::get_energy(), oomph::KirchhoffLoveBeamEquations::get_non_unit_tangent(), oomph::KirchhoffLoveBeamEquations::get_normal(), oomph::AlgebraicFishMesh< ELEMENT >::node_update_in_body(), oomph::AlgebraicFishMesh< ELEMENT >::node_update_in_fin(), oomph::SolidQHermiteElement< 2 >::output(), oomph::SolidQHermiteElement< 1 >::output(), oomph::HermiteBeamElement::output(), oomph::StorableShapeSolidElementBase::pre_compute_d2shape_lagrangian_at_knots(), and oomph::StorableShapeSolidElementBase::pre_compute_dshape_lagrangian_at_knots().

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

Broken assignment operator.

Definition at line 171 of file geom_objects.h.

References oomph::BrokenCopy::broken_assign().

virtual void oomph::GeomObject::position ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r 
) const [inline, virtual]

Parametrised position on object: r(zeta). Evaluated at previous timestep. t=0: current time; t>0: previous timestep. Works for t=0 but needs to be overloaded if genuine time-dependence is required.

Reimplemented in oomph::FiniteElement, oomph::StraightLine, oomph::Ellipse, oomph::Circle, oomph::EllipticalTube, oomph::MeshAsGeomObject< DIM_LAGRANGIAN, DIM_EULERIAN, ELEMENT >, and oomph::PseudoBucklingRing.

Definition at line 253 of file geom_objects.h.

References OOMPH_EXCEPTION_LOCATION, and position().

virtual void oomph::GeomObject::position ( const Vector< double > &  zeta,
Vector< double > &  r 
) const [pure virtual]

Parametrised position on object at current time: r(zeta).

Implemented in oomph::FiniteElement, oomph::StraightLine, oomph::Ellipse, oomph::Circle, oomph::EllipticalTube, oomph::MeshAsGeomObject< DIM_LAGRANGIAN, DIM_EULERIAN, ELEMENT >, and oomph::PseudoBucklingRing.

Referenced by oomph::AlgebraicChannelWithLeafletMesh< ELEMENT >::AlgebraicChannelWithLeafletMesh(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::BrethertonSpineMesh(), oomph::ChannelSpineMesh< ELEMENT >::build_channel_spine_mesh(), oomph::FishMesh< ELEMENT >::build_mesh(), oomph::ChannelWithLeafletDomain::ChannelWithLeafletDomain(), dposition_dt(), oomph::ImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::fill_in_generic_contribution_to_residuals_displ_lagr_multiplier(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::find_distance_to_free_surface(), oomph::ChannelWithLeafletDomain::macro_bound_I_E(), oomph::ChannelWithLeafletDomain::macro_bound_I_W(), oomph::ChannelWithLeafletDomain::macro_bound_II_E(), oomph::ChannelWithLeafletDomain::macro_bound_II_W(), oomph::TubeDomain::macro_element_boundary(), oomph::CylinderWithFlagDomain::macro_element_boundary(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_central_region(), oomph::AlgebraicFishMesh< ELEMENT >::node_update_in_body(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::node_update_in_central_box(), oomph::AlgebraicFishMesh< ELEMENT >::node_update_in_fin(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::node_update_in_lower_right_box(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::node_update_in_upper_left_box(), oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::node_update_IX(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_lower_right_region(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_upper_left_region(), oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::node_update_VIII(), oomph::ImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::output(), oomph::MeshAsGeomObject< DIM_LAGRANGIAN, DIM_EULERIAN, ELEMENT >::position(), position(), oomph::QuarterTubeDomain::r_bot_right_B(), oomph::QuarterTubeDomain::r_bot_right_D(), oomph::QuarterCircleSectorDomain::r_bot_right_E(), oomph::QuarterTubeDomain::r_bot_right_F(), oomph::QuarterTubeDomain::r_bot_right_R(), oomph::QuarterCircleSectorDomain::r_bot_right_S(), oomph::QuarterTubeDomain::r_bot_right_U(), oomph::QuarterCircleSectorDomain::r_bot_right_W(), oomph::QuarterTubeDomain::r_centr_B(), oomph::QuarterTubeDomain::r_centr_D(), oomph::QuarterTubeDomain::r_centr_F(), oomph::QuarterTubeDomain::r_centr_L(), oomph::QuarterTubeDomain::r_centr_R(), oomph::QuarterCircleSectorDomain::r_centr_S(), oomph::QuarterTubeDomain::r_centr_U(), oomph::QuarterCircleSectorDomain::r_centr_W(), oomph::CollapsibleChannelDomain::r_E_collapsible(), oomph::CollapsibleChannelDomain::r_N_collapsible(), oomph::CollapsibleChannelDomain::r_S_collapsible(), oomph::QuarterTubeDomain::r_top_left_B(), oomph::QuarterCircleSectorDomain::r_top_left_E(), oomph::QuarterTubeDomain::r_top_left_F(), oomph::QuarterTubeDomain::r_top_left_L(), oomph::QuarterCircleSectorDomain::r_top_left_N(), oomph::QuarterCircleSectorDomain::r_top_left_S(), oomph::QuarterTubeDomain::r_top_left_U(), oomph::QuarterCircleSectorDomain::r_top_left_W(), oomph::FishDomain::r_upper_body_E(), oomph::FishDomain::r_upper_body_N(), oomph::FishDomain::r_upper_body_S(), oomph::FishDomain::r_upper_body_W(), oomph::FishDomain::r_upper_fin_N(), oomph::FishDomain::r_upper_fin_S(), oomph::FishDomain::r_upper_fin_W(), oomph::CollapsibleChannelDomain::r_W_collapsible(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::reposition_spines(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicFSIDrivenCavityMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicCollapsibleChannelMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicChannelWithLeafletMesh< ELEMENT >::setup_algebraic_node_update(), oomph::AlgebraicChannelWithLeafletMesh< ELEMENT >::slanted_bound_up(), oomph::ChannelWithLeafletDomain::slanted_bound_up(), oomph::ChannelSpineMesh< ELEMENT >::spine_node_update(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_channel(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_film_lower(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_film_upper(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_horizontal_transition_lower(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_horizontal_transition_upper(), oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_vertical_transition_lower(), and oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >::spine_node_update_vertical_transition_upper().

void oomph::GeomObject::set_nlagrangian_and_ndim ( const unsigned &  n_lagrangian,
const unsigned &  n_dim 
) [inline]

Set # of Lagrangian and Eulerian coordinates.

Definition at line 186 of file geom_objects.h.

References Ndim, and NLagrangian.

Referenced by oomph::FaceElementAsGeomObject< ELEMENT >::FaceElementAsGeomObject(), and oomph::FSIWallElement::setup_fsi_wall_element().

TimeStepper* oomph::GeomObject::time_stepper_pt (  )  const [inline]

Access function for pointer to time stepper: Null if object is not time-dependent. Const version.

Definition at line 199 of file geom_objects.h.

References Geom_object_time_stepper_pt.

TimeStepper*& oomph::GeomObject::time_stepper_pt (  )  [inline]

Access function for pointer to time stepper: Null if object is not time-dependent.

Definition at line 195 of file geom_objects.h.

References Geom_object_time_stepper_pt.

Referenced by oomph::Circle::Circle(), oomph::SolidFiniteElement::construct_boundary_node(), oomph::FiniteElement::construct_boundary_node(), oomph::ElementWithSpecificMovingNodes< ELEMENT, oomph::MacroElementNodeUpdateNode >::construct_boundary_node(), oomph::DGElement::construct_boundary_nodes_and_faces(), oomph::SolidFiniteElement::construct_node(), oomph::FiniteElement::construct_node(), oomph::ElementWithSpecificMovingNodes< ELEMENT, oomph::MacroElementNodeUpdateNode >::construct_node(), oomph::DGElement::construct_nodes_and_faces(), oomph::LinearWaveEquations< DIM >::d2u_dt2_lin_wave(), oomph::AdvectionDiffusionReactionEquations< NREAGENT, DIM >::dc_dt_adv_diff_react(), oomph::AdvectionDiffusionEquations< DIM >::du_dt_adv_diff(), oomph::AxisymmetricNavierStokesEquations::du_dt_axi_nst(), oomph::GeneralisedAdvectionDiffusionEquations< DIM >::du_dt_cons_adv_diff(), oomph::NavierStokesEquations< DIM >::du_dt_nst(), oomph::UnsteadyHeatEquations< DIM >::du_dt_ust_heat(), oomph::WomersleyEquations< DIM >::du_dt_womersley(), oomph::AdvectionDiffusionEquations< DIM >::fill_in_generic_residual_contribution_adv_diff(), oomph::AdvectionDiffusionReactionEquations< NREAGENT, DIM >::fill_in_generic_residual_contribution_adv_diff_react(), oomph::GeneralisedAdvectionDiffusionEquations< DIM >::fill_in_generic_residual_contribution_cons_adv_diff(), oomph::LinearWaveEquations< DIM >::fill_in_generic_residual_contribution_lin_wave(), oomph::UnsteadyHeatEquations< DIM >::fill_in_generic_residual_contribution_ust_heat(), oomph::WomersleyEquations< DIM >::fill_in_generic_residual_contribution_womersley(), oomph::FiniteElement::get_x(), oomph::Circle::position(), oomph::Ellipse::position(), oomph::StraightLine::position(), oomph::PseudoBucklingRing::PseudoBucklingRing(), oomph::SolidICProblem::set_newmark_initial_condition_consistently(), oomph::SolidICProblem::set_newmark_initial_condition_directly(), and oomph::SolidICProblem::set_static_initial_condition().


Member Data Documentation

TimeStepper* oomph::GeomObject::Geom_object_time_stepper_pt [protected]

Timestepper (used to handle access to geometry at previous timesteps).

Definition at line 405 of file geom_objects.h.

Referenced by oomph::PseudoBucklingRing::accel(), oomph::PseudoBucklingRing::position(), time_stepper_pt(), and oomph::PseudoBucklingRing::veloc().

unsigned oomph::GeomObject::Ndim [protected]

Number of Eulerian coordinates.

Definition at line 401 of file geom_objects.h.

Referenced by oomph::PseudoBucklingRing::accel(), ndim(), oomph::PseudoBucklingRing::position(), set_nlagrangian_and_ndim(), and oomph::PseudoBucklingRing::veloc().

unsigned oomph::GeomObject::NLagrangian [protected]

Number of Lagrangian (intrinsic) coordinates.

Definition at line 398 of file geom_objects.h.

Referenced by nlagrangian(), and set_nlagrangian_and_ndim().


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