BEM++  2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
Bempp::ConcreteGeometry< DuneGeometry > Class Template Reference

Wrapper of a Dune geometry of type DuneGeometry. More...

#include </home/wojtek/Projects/BEM/bempp-sven/bempp/lib/grid/concrete_geometry.hpp>

Inheritance diagram for Bempp::ConcreteGeometry< DuneGeometry >:
Bempp::Geometry

Public Member Functions

 ConcreteGeometry (const DuneGeometry &dune_geometry)
 Constructor from a DuneGeometry object.
 
const DuneGeometry & duneGeometry () const
 Read-only access to the underlying Dune geometry object.
 
bool isInitialized () const
 Return true if the Dune geometry object has already been set, false otherwise.
 
void uninitialize ()
 Uninitialize the Dune geometry object.
 
virtual int dim () const
 Dimension of the geometry.
 
virtual int dimWorld () const
 Dimension of the space containing the geometry.
 
virtual void setupImpl (const arma::Mat< double > &corners, const arma::Col< char > &auxData)
 
virtual GeometryType type () const
 Type of the reference element. More...
 
virtual bool affine () const
 True if the geometry mapping is affine and false otherwise.
 
virtual int cornerCount () const
 Number of corners of the reference element. More...
 
virtual void getCornersImpl (arma::Mat< double > &c) const
 
virtual void local2globalImpl (const arma::Mat< double > &local, arma::Mat< double > &global) const
 
virtual void global2localImpl (const arma::Mat< double > &global, arma::Mat< double > &local) const
 
virtual void getIntegrationElementsImpl (const arma::Mat< double > &local, arma::Row< double > &int_element) const
 
virtual double volume () const
 Volume of geometry.
 
virtual void getCenterImpl (arma::Col< double > &c) const
 
virtual void getJacobiansTransposedImpl (const arma::Mat< double > &local, Fiber::_3dArray< double > &jacobian_t) const
 
virtual void getJacobianInversesTransposedImpl (const arma::Mat< double > &local, Fiber::_3dArray< double > &jacobian_inv_t) const
 
virtual void getNormalsImpl (const arma::Mat< double > &local, arma::Mat< double > &normal) const
 
virtual void getDataImpl (size_t what, const arma::Mat< double > &local, Fiber::GeometricalData< double > &data) const
 
- Public Member Functions inherited from Bempp::Geometry
virtual ~Geometry ()
 Destructor.
 
void setup (const arma::Mat< double > &corners, const arma::Col< char > &auxData)
 Set up geometry of an entity. More...
 
void setup (const arma::Mat< float > &corners, const arma::Col< char > &auxData)
 
void getCorners (arma::Mat< double > &c) const
 Get the positions of the geometry corners. More...
 
void getCorners (arma::Mat< float > &c) const
 
void local2global (const arma::Mat< double > &local, arma::Mat< double > &global) const
 Convert local (logical) to global (physical) coordinates. More...
 
void local2global (const arma::Mat< float > &local, arma::Mat< float > &global) const
 
void global2local (const arma::Mat< double > &global, arma::Mat< double > &local) const
 Convert global (physical) to local (logical) coordinates. More...
 
void global2local (const arma::Mat< float > &global, arma::Mat< float > &local) const
 
void getIntegrationElements (const arma::Mat< double > &local, arma::Row< double > &int_element) const
 Get the factor appearing in the integral transformation formula at specified points. More...
 
void getIntegrationElements (const arma::Mat< float > &local, arma::Row< float > &int_element) const
 
void getCenter (arma::Col< double > &c) const
 Get center of geometry. More...
 
void getCenter (arma::Col< float > &c) const
 
void getJacobiansTransposed (const arma::Mat< double > &local, arma::Cube< double > &jacobian_t) const
 Get transposed Jacobian matrices at specified points. More...
 
void getJacobiansTransposed (const arma::Mat< float > &local, arma::Cube< float > &jacobian_t) const
 
void getJacobiansTransposed (const arma::Mat< double > &local, Fiber::_3dArray< double > &jacobian_t) const
 
void getJacobiansTransposed (const arma::Mat< float > &local, Fiber::_3dArray< float > &jacobian_t) const
 
void getJacobianInversesTransposed (const arma::Mat< double > &local, arma::Cube< double > &jacobian_inv_t) const
 Get inverses of transposed Jacobian matrices at specified points. More...
 
void getJacobianInversesTransposed (const arma::Mat< float > &local, arma::Cube< float > &jacobian_inv_t) const
 
void getJacobianInversesTransposed (const arma::Mat< double > &local, Fiber::_3dArray< double > &jacobian_inv_t) const
 
void getJacobianInversesTransposed (const arma::Mat< float > &local, Fiber::_3dArray< float > &jacobian_inv_t) const
 
void getNormals (const arma::Mat< double > &local, arma::Mat< double > &normal) const
 Get unit vectors normal to the entity at specified points. More...
 
void getNormals (const arma::Mat< float > &local, arma::Mat< float > &normal) const
 
void getData (size_t what, const arma::Mat< double > &local, Fiber::GeometricalData< double > &data) const
 
void getData (size_t what, const arma::Mat< float > &local, Fiber::GeometricalData< float > &data) const
 

Private Member Functions

 dune_static_assert ((int) DuneGeometry::coorddimension==(int) DuneGeometry::dimensionworld,"ConcreteGeometry: world dimension does not agree with ""number of coordinates")
 
void setDuneGeometry (const DuneGeometry &dune_geometry)
 
void calculateNormals (const Fiber::_3dArray< double > &jt, arma::Mat< double > &normals) const
 

Private Attributes

std::auto_ptr< DuneGeometry > m_dune_geometry
 

Friends

template<int codim, typename DuneEntity >
class ConcreteEntity
 
class ConcreteGeometryFactory< DuneGeometry >
 

Detailed Description

template<typename DuneGeometry>
class Bempp::ConcreteGeometry< DuneGeometry >

Wrapper of a Dune geometry of type DuneGeometry.

Member Function Documentation

template<typename DuneGeometry>
virtual int Bempp::ConcreteGeometry< DuneGeometry >::cornerCount ( ) const
inlinevirtual

Number of corners of the reference element.

Since a geometry is a convex polytope the number of corners is a well-defined concept. The method is redundant because this information is also available via the reference element. It is here for efficiency and ease of use.

Implements Bempp::Geometry.

template<typename DuneGeometry>
virtual void Bempp::ConcreteGeometry< DuneGeometry >::getJacobianInversesTransposedImpl ( const arma::Mat< double > &  local,
Fiber::_3dArray< double > &  jacobian_inv_t 
) const
inlinevirtual

However, this bit of data copying could be avoided.

Implements Bempp::Geometry.

template<typename DuneGeometry>
virtual GeometryType Bempp::ConcreteGeometry< DuneGeometry >::type ( ) const
inlinevirtual

Type of the reference element.

The type can be used to access the Dune::GenericReferenceElement.

Implements Bempp::Geometry.


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