BEM++  2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Types | Public Member Functions | Private Attributes | List of all members
Fiber::SurfaceNormalDependentFunction< Functor > Class Template Reference

Function defined via a user-supplied functor, depending on global coordinates and on the surface normal. More...

#include </home/wojtek/Projects/BEM/bempp-sven/bempp/lib/fiber/surface_normal_dependent_function.hpp>

Inheritance diagram for Fiber::SurfaceNormalDependentFunction< Functor >:
Fiber::Function< Functor::ValueType >

Public Types

typedef Function< typename
Functor::ValueType > 
Base
 
typedef Functor::ValueType ValueType
 
typedef Base::CoordinateType CoordinateType
 
- Public Types inherited from Fiber::Function< Functor::ValueType >
typedef ScalarTraits
< Functor::ValueType >
::RealType 
CoordinateType
 

Public Member Functions

 SurfaceNormalDependentFunction (const Functor &functor)
 
virtual int worldDimension () const
 
virtual int codomainDimension () const
 
virtual void addGeometricalDependencies (size_t &geomDeps) const
 
virtual void evaluate (const GeometricalData< CoordinateType > &geomData, arma::Mat< ValueType > &result) const
 
- Public Member Functions inherited from Fiber::Function< Functor::ValueType >
virtual void evaluate (const GeometricalData< CoordinateType > &geomData, arma::Mat< Functor::ValueType > &result) const =0
 

Private Attributes

const Functor & m_functor
 

Detailed Description

template<typename Functor>
class Fiber::SurfaceNormalDependentFunction< Functor >

Function defined via a user-supplied functor, depending on global coordinates and on the surface normal.

The template parameter Functor should be a class implementing the following interface:

class Functor
{
public:
// Type of the function's values (e.g. float or std::complex<double>)
typedef <implementiation-defined> ValueType;
typedef ScalarTraits<ValueType>::RealType CoordinateType;
// Number of components of the function's arguments ("point" and "normal")
int argumentDimension() const;
// Number of components of the function's result
int resultDimension() const;
// Evaluate the function at the point "point", with vector normal to the
// surface given in the argument "normal", and store result in the array
// "result".
// All arrays will be preinitialised to correct dimensions.
void evaluate(const arma::Col<CoordinateType>& point,
const arma::Col<CoordinateType>& normal,
arma::Col<ValueType>& result) const;
};

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