Diffpack Documentation


Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

BasisFuncAtPt Class Reference

finite element basis functions evaluated at a point. More...

#include <BasisFuncAtPt.h>

List of all members.

Public Methods

 BasisFuncAtPt ()
 BasisFuncAtPt (const BasisFuncAtPt &b)
 ~BasisFuncAtPt ()
bool ok () const
bool redim (HandleElmDefs &elmdef)
void initAtPoint (const Ptv(real) &eval_pt, HandleElmDefs &elmdef, const Mat(real) &elmcoor, int current_side)
void updateJacobi (const Mat(real) &elmcoor)
void operator= (const BasisFuncAtPt &b)
bool evaluatedAt (const Ptv(real) &loc_pt)
real N (int i) const
real dN (int i, int dir) const
real d2N (int i, int dir1, int dir2) const
real dNloc (int i, int dir) const
const Mat(real)& JacobiMatrix () const
const Mat(real)& invJacobiMatrix () const
const Vec(real)& N () const
const Mat(real)& dNgloc () const
const Mat(real)& dNloc () const
const Vec(real)& Ng () const
const Mat(real)& dN () const
const ArrayGen(real)& d2N () const
void copyJacobiEtc (const BasisFuncAtPt &b)
void unInitialize ()
void evalDerivatives (int i)
real detJ () const
real detSideJ () const
void getNormalVectorOnSide (Ptv(real) &vec) const

Static Public Attributes

long int ncalls_calcJacobi
long int ncalls_initAtPoint


Detailed Description

finite element basis functions evaluated at a point.

NAME: BasisFuncAtPt - finite element basis functions evaluated at a point

DESCRIPTION:

The class represent data associated with the finite element basis functions evaluated at a point in an element. These data include the basis function values, the values of the derivatives (with respect to local and global coordinates), the values of the functions used in the geometric mapping (for isoparametric functions these functions coincides with the basis functions), and the Jacobi matrix (plus inverse) associated with the geometric mapping. The class is used by class "FiniteElement".

One can think of using an array of "BasisFuncAtPt" objects such that each object represents the basis function data at a numerical integration point. It is then possible to evaluate all basis function data once and for all if all the elements are equal in type and shape.


Constructor & Destructor Documentation

BasisFuncAtPt::BasisFuncAtPt ( )
 

There is a copy constructor and a constructor without arguments. The latter must be followed by a call to "redim" before the object is initialized. The "redim" function will only redimension the data structures according to the current element information. "initAtPoint" performs all evaluations of basis functions, the Jacobian etc. We refer to class "FiniteElement" for examples on how "BasisFuncAtPt" is used in finite element computations.

BasisFuncAtPt::BasisFuncAtPt ( const BasisFuncAtPt & b )
 

See documentation of one of the overloaded constructor.

BasisFuncAtPt::~BasisFuncAtPt ( ) [inline]
 


Member Function Documentation

const Mat(real) & BasisFuncAtPt::JacobiMatrix ( ) const [inline]
 

returns a reference to the Jacobi matrix

const Vec(real) & BasisFuncAtPt::N ( ) const [inline]
 

See documentation of one of the overloaded functions.

real BasisFuncAtPt::N ( int i ) const
 

returns the value of the basis function.

const Vec(real) & BasisFuncAtPt::Ng ( ) const [inline]
 

void BasisFuncAtPt::copyJacobiEtc ( const BasisFuncAtPt & b )
 

const ArrayGen(real) & BasisFuncAtPt::d2N ( ) const [inline]
 

See documentation of one of the overloaded functions.

real BasisFuncAtPt::d2N ( int i,
int dir1,
int dir2 ) const
 

returns the value of the second order derivative of the basis function.

const Mat(real) & BasisFuncAtPt::dN ( ) const [inline]
 

See documentation of one of the overloaded functions.

real BasisFuncAtPt::dN ( int i,
int dir ) const
 

returns the value of the derivative of the basis function in global coordinates.

const Mat(real) & BasisFuncAtPt::dNgloc ( ) const [inline]
 

const Mat(real) & BasisFuncAtPt::dNloc ( ) const [inline]
 

See documentation of one of the overloaded functions.

real BasisFuncAtPt::dNloc ( int i,
int dir ) const
 

returns the value of the derivative of the basis function in local coordinates.

real BasisFuncAtPt::detJ ( ) const
 

returns the determinant of the Jacobi matrix.

real BasisFuncAtPt::detSideJ ( ) const
 

returns the area of a surface element used in surface integration.

void BasisFuncAtPt::evalDerivatives ( int i )
 

sets a flag to the supplied value determining to which order the derivativs should be evaluated. See also function "FiniteElement d2N".

bool BasisFuncAtPt::evaluatedAt ( const Ptv(real) & loc_pt )
 

returns a true value if the current object''s basis function data were based on the local point given as argument to this function. The function makes it easy to check whether the object is properly filled or not.

void BasisFuncAtPt::getNormalVectorOnSide ( Ptv(real) & vec ) const
 

returns the outward unit normal vector if the current evaluation point is at a side in the element.

void BasisFuncAtPt::initAtPoint ( const Ptv(real) & eval_pt,
HandleElmDefs & elmdef,
const Mat(real) & elmcoor,
int current_side )
 

evaluates all the basis functions, Jacobian etc., at the current evaluation point.

const Mat(real) & BasisFuncAtPt::invJacobiMatrix ( ) const [inline]
 

returns a reference to the inverse Jacobi matrix

bool BasisFuncAtPt::ok ( ) const
 

void BasisFuncAtPt::operator= ( const BasisFuncAtPt & b )
 

assignment operator, makes it easy to copy objects from an array "VecSimplest(BasisFuncAtPt)".

bool BasisFuncAtPt::redim ( HandleElmDefs & elmdef )
 

See documentation of one of the overloaded functions.

void BasisFuncAtPt::unInitialize ( )
 

set the "initialized" flag to false.

void BasisFuncAtPt::updateJacobi ( const Mat(real) & elmcoor )
 

updates the values in the data structures that are affected by the shape (and not the type) of the element. For example, the Jacobi matrix is affected by the shape while the basis functions themselves are only dependent upon the element type. The function is included for enabling efficient coding of finite element algorithms on grids consisting of only one element type. Instead of calling "initAtPoint" for every element, one simply calls "updateJacobi".


Member Data Documentation

long int BasisFuncAtPt::ncalls_calcJacobi [static]
 

long int BasisFuncAtPt::ncalls_initAtPoint [static]
 


The documentation for this class was generated from the following file:
Copyright © 2003 inuTech GmbH. All rights reserved.