29 #ifndef FUNCTION_DATA_INCLUDED
30 #define FUNCTION_DATA_INCLUDED
32 #define BOUNDARY_CONDITIONS 1
37 template<
int Degree,
class Real>
41 #if BOUNDARY_CONDITIONS
54 #if BOUNDARY_CONDITIONS
70 virtual void setValueTables(
const int& flags,
const double& valueSmooth,
const double& normalSmooth);
87 #if BOUNDARY_CONDITIONS
88 void set(
const int& maxDepth ,
const PPolynomial<Degree>& F ,
const int& normalize ,
bool useDotRatios=
true ,
bool reflectBoundary=
false );
93 #if BOUNDARY_CONDITIONS
94 Real
dotProduct(
const double& center1 ,
const double& width1 ,
const double& center2 ,
const double& width2 ,
int boundary1 ,
int boundary2 )
const;
95 Real
dDotProduct(
const double& center1 ,
const double& width1 ,
const double& center2 ,
const double& width2 ,
int boundary1 ,
int boundary2 )
const;
96 Real
d2DotProduct(
const double& center1 ,
const double& width1 ,
const double& center2 ,
const double& width2 ,
int boundary1 ,
int boundary2 )
const;
98 Real
dotProduct(
const double& center1 ,
const double& width1 ,
const double& center2 ,
const double& width2 )
const;
99 Real
dDotProduct(
const double& center1 ,
const double& width1 ,
const double& center2 ,
const double& width2 )
const;
100 Real
d2DotProduct(
const double& center1 ,
const double& width1 ,
const double& center2 ,
const double& width2 )
const;
108 #include "FunctionData.inl"
static const int D_DOT_FLAG
static const int D_VALUE_FLAG
Real dotProduct(const double ¢er1, const double &width1, const double ¢er2, const double &width2, int boundary1, int boundary2) const
static const int DOT_FLAG
static const int VALUE_FLAG
PPolynomial< Degree > baseFunction
PPolynomial< Degree-1 > dBaseFunction
PPolynomial< Degree+1 > * baseFunctions
Real d2DotProduct(const double ¢er1, const double &width1, const double ¢er2, const double &width2, int boundary1, int boundary2) const
PPolynomial< Degree > leftBaseFunction
virtual void clearValueTables(void)
virtual void setValueTables(const int &flags, const double &valueSmooth, const double &normalSmooth)
virtual void setDotTables(const int &flags)
static const int D2_DOT_FLAG
Real dDotProduct(const double ¢er1, const double &width1, const double ¢er2, const double &width2, int boundary1, int boundary2) const
virtual void setValueTables(const int &flags, const double &smooth=0)
void set(const int &maxDepth, const PPolynomial< Degree > &F, const int &normalize, bool useDotRatios=true, bool reflectBoundary=false)
PPolynomial< Degree-1 > dLeftBaseFunction
PPolynomial< Degree > rightBaseFunction
static int SymmetricIndex(const int &i1, const int &i2, int &index)
virtual void clearDotTables(const int &flags)
static int SymmetricIndex(const int &i1, const int &i2)
PPolynomial< Degree-1 > dRightBaseFunction