00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _LINEARBASISFUNCTION_HPP_
00029 #define _LINEARBASISFUNCTION_HPP_
00030
00031 #include "ChastePoint.hpp"
00032
00033
00034 template <unsigned ELEM_DIM>
00035 class LinearBasisFunction
00036 {
00037 public:
00038 static double ComputeBasisFunction(const ChastePoint<ELEM_DIM> &rPoint, unsigned basisIndex);
00039 static c_vector<double, ELEM_DIM> ComputeBasisFunctionDerivative(const ChastePoint<ELEM_DIM> &rPoint, unsigned basisIndex);
00040
00041 static void ComputeBasisFunctions(const ChastePoint<ELEM_DIM> &rPoint, c_vector<double, ELEM_DIM+1>& rReturnValue);
00042 static void ComputeBasisFunctionDerivatives(const ChastePoint<ELEM_DIM> &rPoint,
00043 c_matrix<double, ELEM_DIM, ELEM_DIM+1>& rReturnValue);
00044
00045 static void ComputeTransformedBasisFunctionDerivatives(const ChastePoint<ELEM_DIM> &rPoint,
00046 const c_matrix<double, ELEM_DIM, ELEM_DIM> &rInverseJacobian,
00047 c_matrix<double, ELEM_DIM, ELEM_DIM+1>& rReturnValue);
00048 };
00049
00053 template <>
00054 class LinearBasisFunction<0>
00055 {
00056 public:
00057 static double ComputeBasisFunction(const ChastePoint<0> &rPoint, unsigned basisIndex);
00058 static void ComputeBasisFunctions(const ChastePoint<0> &rPoint,c_vector<double,1>& rReturnValue);
00059 };
00060
00061
00062 #endif //_LINEARBASISFUNCTION_HPP_