Jive reference manual
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions
jive::geom::BoundaryShape Class Referenceabstract

Encapsulates the geometrical properties of a boundary of a finite element. More...

Inheritance diagram for jive::geom::BoundaryShape:
Inheritance graph

Public Types

typedef Shape Super
 
- Public Types inherited from jive::geom::Shape
typedef util::Vector Vector
 A vector type. More...
 
typedef util::Matrix Matrix
 A matrix type. More...
 

Public Member Functions

virtual int globalRank () const
 Returns the global rank of this shape. More...
 
virtual void getNormals (const Matrix &q, const Vector &w, const Matrix &c) const =0
 Computes the normal vectors in the integration points. More...
 
virtual void getNodeNormals (const Matrix &q, const Matrix &c) const =0
 Computes the normal vectors in the nodes of this shape. More...
 
virtual void evalNormal (const Vector &q, const Vector &u, const Matrix &c) const =0
 Computes the normal vector in a given point. More...
 
virtual jem::ClassgetClass () const
 Returns the Class instance representing the runtime class of this object. More...
 
- Public Member Functions inherited from jive::geom::Shape
virtual int localRank () const =0
 Returns the local rank of this shape. More...
 
virtual int nodeCount () const =0
 Returns the number of nodes. More...
 
virtual int shapeFuncCount () const =0
 Returns the number of shape functions. More...
 
virtual int integrationPointCount () const =0
 Returns the number of integration points. More...
 
virtual Matrix getLocalNodeCoords () const =0
 Returns the coordinates of the nodes in the local coordinate system. More...
 
virtual Matrix getIntegrationPoints () const =0
 Returns the integration points in the local coordinate system. More...
 
virtual void getGlobalIntegrationPoints (const Matrix &x, const Matrix &c) const
 Computes the integration points in the global coordinate system. More...
 
virtual void getIntegrationWeights (const Vector &w, const Matrix &c) const =0
 Computes the integration weights in the global coordinate system. More...
 
virtual Matrix getShapeFunctions () const =0
 Returns the shape functions evaluated in the integration points. More...
 
virtual void evalShapeFunctions (const Vector &h, const Vector &u) const =0
 Computes the shape functions in a given point. More...
 
virtual void getGlobalPoint (const Vector &x, const Vector &u, const Matrix &c) const =0
 Converts a local coordinate vector to a global coordinate vector. More...
 
virtual bool getLocalPoint (const Vector &u, const Vector &x, double eps, const Matrix &c) const
 Converts a global coordinate vector to a local coordinate vector. More...
 
virtual bool containsLocalPoint (const Vector &u) const =0
 Tests whether a point lies within this shape. More...
 
- Public Member Functions inherited from jem::Object
virtual String toString () const
 Returns a short textual description of this object. More...
 
virtual long hashValue () const
 Returns a hash value for this object. More...
 
virtual bool equals (const Ref< Object > &obj) const
 Tests whether two objects are equal. More...
 
Ref< Objectclone () const
 Returns a copy of this object. More...
 

Static Public Member Functions

static jem::ClassgetType ()
 Returns a pointer to a Class object representing this class. More...
 
- Static Public Member Functions inherited from jive::geom::Shape
static jem::ClassgetType ()
 Returns a pointer to a Class object representing this class. More...
 
- Static Public Member Functions inherited from jem::Object
static ClassgetType ()
 Returns the Class instance representing the Object class. More...
 

Protected Member Functions

virtual ~BoundaryShape ()
 
- Protected Member Functions inherited from jem::Collectable
 Collectable ()
 Creates an empty Collectable. More...
 
 ~Collectable ()
 Frees resources. More...
 

Detailed Description

#include <jive/geom/BoundaryShape.h>

The abstract class BoundaryShape encapsulates the geometrical properties of a boundary of a finite element. It can be used to evaluate an integral over a boundary of en element; to evaluate the shape functions on a boundary of an element; and to evaluate the normals on a boundary of an element.

The BoundaryShape class extends the Shape class with the functions getNormals(), getNodeNormals() and evalNormal(). These functions compute the normal vectors on an element boundary in different points on that boundary.

The rank of the local coordinate system of a boundary shape is one less than the rank of the global coordinate system of that shape. For instance, a boundary line has a one-dimensional local coordinate system and `lives' in a two-dimensional global coordinate system.

See also
InternalShape

Member Typedef Documentation

Constructor & Destructor Documentation

virtual jive::geom::BoundaryShape::~BoundaryShape ( )
protectedvirtual

Member Function Documentation

static jem::Class* jive::geom::BoundaryShape::getType ( )
static

Returns a pointer to a jem::Class object that represents the BoundaryShape class. This pointer remains valid during the entire lifetime of the current program.

Returns
A pointer to a jem::Class object that represents this class.
virtual int jive::geom::BoundaryShape::globalRank ( ) const
virtual

Returns the rank (number of dimensions) of the global coordinate system in which this boundary shape `lives'. The implementation provided by the BoundaryShape class returns

this->localRank() + 1

Returns
The global rank of this boundary shape.

Implements jive::geom::Shape.

virtual void jive::geom::BoundaryShape::getNormals ( const Matrix q,
const Vector w,
const Matrix c 
) const
pure virtual

Fills the matrix q with the normal vectors in the integration points of this boundary shape: q(i,j) is set to the i-th component of the normal vector in the j-th integration point. As a bonus, the vector w is filled with the integration weights in the global coordinate system: w[i] is set to the integration weight associated with the i-th integration point. The matrix c should contain the global node coordinates: c(i,j) should be equal to the i-th global coordinate of the j-th node.

Parameters
q- a matrix that will be filled with the normal vectors in the integration points.
w- a vector that will be filled with the global integration points.
c- a matrix containing the global node coordinates.
Precondition
q.size(0) == this->globalRank() &&
q.size(1) == this->integrationPointCount() &&
w.size() == this->integrationPointCount() &&
c.size(0) == this->globalRank() &&
c.size(1) == this->nodeCount()

Implemented in jive::geom::BoundaryPoint, and jive::geom::ParametricBoundary.

virtual void jive::geom::BoundaryShape::getNodeNormals ( const Matrix q,
const Matrix c 
) const
pure virtual

Fills the matrix q with the normal vectors in the nodes of this boundary shape: q(i,j) is set to the i-th component of the normal vector in the j-th node. The matrix c should contain the global node coordinates: c(i,j) should be equal to the i-th global coordinate of the j-th node.

Parameters
q- a matrix that will be filled with the normal vectors in the nodes.
c- a matrix containing the global node coordinates.
Precondition
q.size(0) == this->globalRank() &&
q.size(1) == this->nodeCount() &&
c.size(0) == this->globalRank() &&
c.size(1) == this->nodeCount()
virtual void jive::geom::BoundaryShape::evalNormal ( const Vector q,
const Vector u,
const Matrix c 
) const
pure virtual

Fills the vector q with the components of the normal vector in a specific point within this boundary shape: q[i] is set to the i-th component of the normal vector. The vector u should contain the local coordinates of that point: u[i] should be equal to the i-th local coordinate. The matrix c should contain the global node coordinates: c(i,j) should be equal to the i-th global coordinate of the j-th node.

Parameters
q- a vector that will be filled with the components of the normal vector in the specified point.
u- a vector containing the local coordinates of that point.
c- a matrix containing the global node coordinates.
Precondition
q.size() == this->globalRank() &&
u.size() == this->localRank() &&
c.size(0) == this->globalRank() &&
c.size(1) == this->nodeCount()

Implemented in jive::geom::BoundaryPoint, jive::geom::ParametricEdge, jive::geom::ParametricSurface, and jive::geom::Parametric4DSurf.

virtual jem::Class* jive::geom::BoundaryShape::getClass ( ) const
virtual

Returns a pointer to the Class instance representing the runtime class of this object. If T denotes the runtime class of this object, then this function is equivalent with T::getType(). The pointer is valid during the entire lifetime of the program.

Returns
A pointer to the Class instance representing the runtime class of this object.

Reimplemented from jive::geom::Shape.