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

#include <shape.h>

List of all members.


Detailed Description

A Class for the derivatives of shape functions The class design is essentially the same as Shape, but there is on additional index that is used to indicate the coordinate direction in which the derivative is taken.

Definition at line 251 of file shape.h.


Public Member Functions

 DShape (const unsigned &N, const unsigned &P)
 Constructor with two parameters: a single-index shape function.
 DShape (const unsigned &N, const unsigned &M, const unsigned &P)
 Constructor with three paramters: a two-index shape function.
 DShape (const DShape &dshape)
 Broken copy constructor.
void operator= (const DShape &dshape)
void operator= (DShape *const &dshape_pt)
 ~DShape ()
 Destructor, clean up the memory allocated by this object.
double & operator() (const unsigned &i, const unsigned &k)
 Overload the round bracket operator for access to the data.
const double & operator() (const unsigned &i, const unsigned &k) const
 Overload the round bracket operator (const version).
double & operator() (const unsigned &i, const unsigned &j, const unsigned &k)
 Overload the round bracket operator, with 3 indices.
const double & operator() (const unsigned &i, const unsigned &j, const unsigned &k) const
 Overload the round bracket operator (const version).
double & raw_direct_access (const unsigned long &i)
 Direct access to internal storage of data in flat-packed C-style column-major format. WARNING: Only for experienced users. Only use this if raw speed is of the essence, as in the solid mechanics problems.
const double & raw_direct_access (const unsigned long &i) const
 Direct access to internal storage of data in flat-packed C-style column-major format. WARNING: Only for experienced users. Only use this if raw speed is of the essence, as in the solid mechanics problems.
unsigned offset (const unsigned long &i, const unsigned long &j) const
 Caculate the offset in flat-packed C-style, column-major format, required for a given i,j. WARNING: Only for experienced users. Only use this if raw speed is of the essence, as in the solid mechanics problems.
unsigned long nindex1 () const
 Return the range of index 1 of the derivatives of the shape functions.
unsigned long nindex2 () const
 Return the range of index 2 of the derivatives of the shape functions.
unsigned long nindex3 () const
 Return the range of index 3 of the derivatives of the shape functions.

Private Member Functions

void range_check (const unsigned &i, const unsigned &j, const unsigned &k) const
 Private function that checks whether the indices are in range.

Private Attributes

double * DPsi
 Pointer that addresses the storage that will be used to read and set the shape-function derivatives. The values are packed into a flat array of doubles.
double * Allocated_storage
 Pointer that addresses the storage allocated by the object on construction. This will be the same as DPsi if the object is not copied.
unsigned Index1
 Size of the first index of the shape function.
unsigned Index2
 Size of the second index of the shape function.
unsigned Index3
 Size of the third index of the shape function.

Constructor & Destructor Documentation

oomph::DShape::DShape ( const unsigned &  N,
const unsigned &  P 
) [inline]

Constructor with two parameters: a single-index shape function.

Definition at line 311 of file shape.h.

References Allocated_storage, and DPsi.

oomph::DShape::DShape ( const unsigned &  N,
const unsigned &  M,
const unsigned &  P 
) [inline]

Constructor with three paramters: a two-index shape function.

Definition at line 316 of file shape.h.

References Allocated_storage, and DPsi.

oomph::DShape::DShape ( const DShape dshape  )  [inline]

Broken copy constructor.

Definition at line 321 of file shape.h.

References oomph::BrokenCopy::broken_copy().

oomph::DShape::~DShape (  )  [inline]

Destructor, clean up the memory allocated by this object.

Definition at line 379 of file shape.h.

References Allocated_storage.


Member Function Documentation

unsigned long oomph::DShape::nindex1 (  )  const [inline]

Return the range of index 1 of the derivatives of the shape functions.

Definition at line 444 of file shape.h.

References Index1.

Referenced by oomph::ClampedHermiteShellBoundaryConditionElement::dshape_local(), oomph::FiniteElement::transform_derivatives(), and oomph::FiniteElement::transform_derivatives_diagonal().

unsigned long oomph::DShape::nindex2 (  )  const [inline]

Return the range of index 2 of the derivatives of the shape functions.

Definition at line 447 of file shape.h.

References Index2.

Referenced by oomph::ClampedHermiteShellBoundaryConditionElement::dshape_local(), oomph::FiniteElement::transform_derivatives(), and oomph::FiniteElement::transform_derivatives_diagonal().

unsigned long oomph::DShape::nindex3 (  )  const [inline]

Return the range of index 3 of the derivatives of the shape functions.

Definition at line 450 of file shape.h.

References Index3.

Referenced by oomph::ClampedHermiteShellBoundaryConditionElement::dshape_local().

unsigned oomph::DShape::offset ( const unsigned long &  i,
const unsigned long &  j 
) const [inline]

Caculate the offset in flat-packed C-style, column-major format, required for a given i,j. WARNING: Only for experienced users. Only use this if raw speed is of the essence, as in the solid mechanics problems.

Definition at line 437 of file shape.h.

References Index2, and Index3.

Referenced by oomph::PVDEquations< DIM >::fill_in_generic_contribution_to_residuals_pvd(), oomph::RefineablePVDEquations< DIM >::fill_in_generic_contribution_to_residuals_pvd(), oomph::PVDEquationsWithPressure< DIM >::fill_in_generic_residual_contribution_pvd_with_pressure(), and oomph::RefineablePVDEquationsWithPressure< DIM >::fill_in_generic_residual_contribution_pvd_with_pressure().

const double& oomph::DShape::operator() ( const unsigned &  i,
const unsigned &  j,
const unsigned &  k 
) const [inline]

Overload the round bracket operator (const version).

Definition at line 410 of file shape.h.

References DPsi, Index2, Index3, and range_check().

double& oomph::DShape::operator() ( const unsigned &  i,
const unsigned &  j,
const unsigned &  k 
) [inline]

Overload the round bracket operator, with 3 indices.

Definition at line 400 of file shape.h.

References DPsi, Index2, Index3, and range_check().

const double& oomph::DShape::operator() ( const unsigned &  i,
const unsigned &  k 
) const [inline]

Overload the round bracket operator (const version).

Definition at line 391 of file shape.h.

References DPsi, Index2, Index3, and range_check().

double& oomph::DShape::operator() ( const unsigned &  i,
const unsigned &  k 
) [inline]

Overload the round bracket operator for access to the data.

Definition at line 382 of file shape.h.

References DPsi, Index2, Index3, and range_check().

void oomph::DShape::operator= ( DShape *const &  dshape_pt  )  [inline]

The assignment operator does a shallow copy (resets the pointer to the data)

Definition at line 351 of file shape.h.

References DPsi, Index1, Index2, Index3, and OOMPH_EXCEPTION_LOCATION.

void oomph::DShape::operator= ( const DShape dshape  )  [inline]

The assignment operator does a shallow copy (resets the pointer to the data)

Definition at line 325 of file shape.h.

References DPsi, oomph::OneDimLagrange::dshape(), Index1, Index2, Index3, and OOMPH_EXCEPTION_LOCATION.

void oomph::DShape::range_check ( const unsigned &  i,
const unsigned &  j,
const unsigned &  k 
) const [inline, private]

Private function that checks whether the indices are in range.

Definition at line 275 of file shape.h.

References Index1, Index2, Index3, and OOMPH_EXCEPTION_LOCATION.

Referenced by operator()().

const double& oomph::DShape::raw_direct_access ( const unsigned long &  i  )  const [inline]

Direct access to internal storage of data in flat-packed C-style column-major format. WARNING: Only for experienced users. Only use this if raw speed is of the essence, as in the solid mechanics problems.

Definition at line 430 of file shape.h.

References DPsi.

double& oomph::DShape::raw_direct_access ( const unsigned long &  i  )  [inline]

Direct access to internal storage of data in flat-packed C-style column-major format. WARNING: Only for experienced users. Only use this if raw speed is of the essence, as in the solid mechanics problems.

Definition at line 423 of file shape.h.

References DPsi.

Referenced by oomph::PVDEquations< DIM >::fill_in_generic_contribution_to_residuals_pvd(), oomph::RefineablePVDEquations< DIM >::fill_in_generic_contribution_to_residuals_pvd(), oomph::PVDEquationsWithPressure< DIM >::fill_in_generic_residual_contribution_pvd_with_pressure(), and oomph::RefineablePVDEquationsWithPressure< DIM >::fill_in_generic_residual_contribution_pvd_with_pressure().


Member Data Documentation

double* oomph::DShape::Allocated_storage [private]

Pointer that addresses the storage allocated by the object on construction. This will be the same as DPsi if the object is not copied.

Definition at line 263 of file shape.h.

Referenced by DShape(), and ~DShape().

double* oomph::DShape::DPsi [private]

Pointer that addresses the storage that will be used to read and set the shape-function derivatives. The values are packed into a flat array of doubles.

Definition at line 258 of file shape.h.

Referenced by DShape(), operator()(), operator=(), and raw_direct_access().

unsigned oomph::DShape::Index1 [private]

Size of the first index of the shape function.

Definition at line 266 of file shape.h.

Referenced by nindex1(), operator=(), and range_check().

unsigned oomph::DShape::Index2 [private]

Size of the second index of the shape function.

Definition at line 269 of file shape.h.

Referenced by nindex2(), offset(), operator()(), operator=(), and range_check().

unsigned oomph::DShape::Index3 [private]

Size of the third index of the shape function.

Definition at line 272 of file shape.h.

Referenced by nindex3(), offset(), operator()(), operator=(), and range_check().


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