diff --git a/FunctionSpace/LocalFunctionSpace.h b/FunctionSpace/LocalFunctionSpace.h index 374d972b4a25630d58fdd06c3aa7b7ae60f7a9b1..40418ec5980b891cf5545633b06bc37c8b8fe6d4 100644 --- a/FunctionSpace/LocalFunctionSpace.h +++ b/FunctionSpace/LocalFunctionSpace.h @@ -1,18 +1,41 @@ #ifndef _LOCALFUNCTIONSPACE_H_ #define _LOCALFUNCTIONSPACE_H_ +/** + @class LocalFunctionSpace + @brief Mother class for Local Function Spaces + + This class is the @em mother (by @em inheritence) of all@n + Local Function Spaces.@n + + A Local Function Space is a Basis on which we can interpolate on. + */ + class LocalFunctionSpace{ protected: bool scalar; int size; public: + //! Deletes this LocalFunctionSpace + //! virtual ~LocalFunctionSpace(void); + //! @return Returns: + //! @li @c true, if a + //! @em scalar Basis is used + //! @li @c false, if a + //! @em vectorial Basis is used + //! @see LocalFunctionSpaceScalar + //! @see LocalFunctionSpaceVector bool isScalar(void) const; + + //! @return Returns the size of the Basis used int getSize(void) const; protected: + //! Instantiate a new LocalFunctionSpace + //! @warning Users can't instantiate a LocalFunctionSpace LocalFunctionSpace(void); }; diff --git a/FunctionSpace/LocalFunctionSpaceScalar.h b/FunctionSpace/LocalFunctionSpaceScalar.h index 04ca7adf44ba64b4ffc7d7911a0576f2d250bfd5..d8b6a0252f3f32946252e0aa56a38fa6551ce3c9 100644 --- a/FunctionSpace/LocalFunctionSpaceScalar.h +++ b/FunctionSpace/LocalFunctionSpaceScalar.h @@ -6,13 +6,34 @@ #include "Basis.h" #include "LocalFunctionSpace.h" +/** + @class LocalFunctionSpaceScalar + @brief Scalar Local Function Spaces + + A Local Function Space build on a @em Scalar Basis. + */ + class LocalFunctionSpaceScalar: LocalFunctionSpace{ protected: const std::vector<Polynomial>* basis; public: + //! Instantiate a new LocalFunctionSpaceScalar + //! @param basis The Basis used to build + //! this Function Space LocalFunctionSpaceScalar(const Basis& basis); + + //! Deletes this LocalFunctionSpaceScalar + //! virtual ~LocalFunctionSpaceScalar(void); + + //! Performs an Interpolation + //! @param coef The coefficients to use for the + //! Interpolation + //! @param x,y,z The coordinate of the Interpolation + //! @return Returns the value of the Interpolation + double interpolate(const fullVector<double>& coef, + double x, double y, double z) const; }; #endif diff --git a/FunctionSpace/LocalFunctionSpaceVector.h b/FunctionSpace/LocalFunctionSpaceVector.h index 1a0ebc7376b0a435fc4de79524e4bf5e2a7c0793..57971f6eb5e7ce7ebfacc5088c5244b1a76ed238 100644 --- a/FunctionSpace/LocalFunctionSpaceVector.h +++ b/FunctionSpace/LocalFunctionSpaceVector.h @@ -4,15 +4,37 @@ #include <vector> #include "Polynomial.h" #include "Basis.h" +#include "fullMatrix.h" #include "LocalFunctionSpace.h" +/** + @class LocalFunctionSpaceVector + @brief Vectorial Local Function Spaces + + A Local Function Space build on a @em Vectorial Basis. + */ + class LocalFunctionSpaceVector: LocalFunctionSpace{ protected: const std::vector<std::vector<Polynomial> >* basis; public: + //! Instantiate a new LocalFunctionSpaceVector + //! @param basis The Basis used to build + //! this Function Space LocalFunctionSpaceVector(const Basis& basis); + + //! Deletes this LocalFunctionSpaceVector + //! virtual ~LocalFunctionSpaceVector(void); + + //! Performs an Interpolation + //! @param coef The coefficients to use for the + //! Interpolation + //! @param x,y,z The coordinate of the Interpolation + //! @return Returns the value of the Interpolation + fullVector<double> interpolate(const fullVector<double>& coef, + double x, double y, double z) const; }; #endif