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

#include <shape.h>

Public Member Functions

 DShape (const unsigned &N, const unsigned &P)
 Constructor with two parameters: a single-index shape function. More...
 
 DShape (const unsigned &N, const unsigned &M, const unsigned &P)
 Constructor with three paramters: a two-index shape function. More...
 
 DShape ()
 
 DShape (const DShape &dshape)
 Broken copy constructor. More...
 
void operator= (const DShape &dshape)
 
void operator= (DShape *const &dshape_pt)
 
 ~DShape ()
 Destructor, clean up the memory allocated by this object. More...
 
void resize (const unsigned &N, const unsigned &P, const unsigned &M=1)
 
double & operator() (const unsigned &i, const unsigned &k)
 Overload the round bracket operator for access to the data. More...
 
const double & operator() (const unsigned &i, const unsigned &k) const
 Overload the round bracket operator (const version) More...
 
double & operator() (const unsigned &i, const unsigned &j, const unsigned &k)
 Overload the round bracket operator, with 3 indices. More...
 
const double & operator() (const unsigned &i, const unsigned &j, const unsigned &k) const
 Overload the round bracket operator (const version) More...
 
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. More...
 
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. More...
 
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. More...
 
unsigned long nindex1 () const
 Return the range of index 1 of the derivatives of the shape functions. More...
 
unsigned long nindex2 () const
 Return the range of index 2 of the derivatives of the shape functions. More...
 
unsigned long nindex3 () const
 Return the range of index 3 of the derivatives of the shape functions. More...
 

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. More...
 

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. More...
 
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. More...
 
unsigned Index1
 Size of the first index of the shape function. More...
 
unsigned Index2
 Size of the second index of the shape function. More...
 
unsigned Index3
 Size of the third index of the shape function. More...
 

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 275 of file shape.h.

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 335 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 340 of file shape.h.

References Allocated_storage, and DPsi.

oomph::DShape::DShape ( )
inline

Default constructor - just assigns a null pointers and zero index sizes.

Definition at line 346 of file shape.h.

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

Broken copy constructor.

Definition at line 349 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 407 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 489 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 492 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 495 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 482 of file shape.h.

References Index2, and Index3.

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

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

Overload the round bracket operator for access to the data.

Definition at line 427 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 436 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 445 of file shape.h.

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

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 455 of file shape.h.

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

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

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

Definition at line 353 of file shape.h.

References DPsi, Index1, Index2, and Index3.

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 379 of file shape.h.

References DPsi, Index1, Index2, and Index3.

void oomph::DShape::range_check ( const unsigned &  i,
const unsigned &  j,
const unsigned &  k 
) const
inlineprivate

Private function that checks whether the indices are in range.

Definition at line 299 of file shape.h.

References Index1, Index2, and Index3.

Referenced by operator()().

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 468 of file shape.h.

References DPsi, and i.

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

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 475 of file shape.h.

References DPsi, and i.

void oomph::DShape::resize ( const unsigned &  N,
const unsigned &  P,
const unsigned &  M = 1 
)
inline

Change the size of the storage. Note that (for some strange reason) index2 is the "optional" index, to conform with the existing constructor.

Definition at line 412 of file shape.h.

References Allocated_storage, DPsi, Index1, Index2, Index3, and oomph::QuadTreeNames::N.

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 287 of file shape.h.

Referenced by DShape(), resize(), 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 282 of file shape.h.

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

unsigned oomph::DShape::Index1
private

Size of the first index of the shape function.

Definition at line 290 of file shape.h.

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

unsigned oomph::DShape::Index2
private

Size of the second index of the shape function.

Definition at line 293 of file shape.h.

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

unsigned oomph::DShape::Index3
private

Size of the third index of the shape function.

Definition at line 296 of file shape.h.

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


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