Commit 40e4a8da authored by Sergey Yakovlev's avatar Sergey Yakovlev
Browse files

Added DetFaceBasisKey functionality


git-svn-id: https://gforge.sci.utah.edu/svn/nektar/trunk@4048 305cdda6-5ce1-45b3-a98d-dfc68c8b3305
parent 753db752
......@@ -1260,6 +1260,12 @@ namespace Nektar
return LibUtilities::NullBasisKey;
}
const LibUtilities::BasisKey StdExpansion::v_DetFaceBasisKey(const int i, const int k) const
{
ASSERTL0(false, "This function is not valid or not defined");
return LibUtilities::NullBasisKey;
}
int StdExpansion::v_GetFaceNumPoints(const int i) const
{
ASSERTL0(false, "This function is not valid or not defined");
......
......@@ -468,6 +468,10 @@ namespace Nektar
return v_DetEdgeBasisKey(i);
}
const LibUtilities::BasisKey DetFaceBasisKey(const int i, const int k) const
{
return v_DetFaceBasisKey(i, k);
}
/**
* \brief This function returns the number of quadrature points
* belonging to the \a i-th face.
......@@ -1614,6 +1618,8 @@ namespace Nektar
STD_REGIONS_EXPORT virtual int v_DetCartesianDirOfEdge(const int edge);
STD_REGIONS_EXPORT virtual const LibUtilities::BasisKey v_DetEdgeBasisKey(const int i) const;
STD_REGIONS_EXPORT virtual const LibUtilities::BasisKey v_DetFaceBasisKey(const int i, const int k) const;
STD_REGIONS_EXPORT virtual int v_GetFaceNumPoints(const int i) const;
......
......@@ -222,6 +222,8 @@ namespace Nektar
STD_REGIONS_EXPORT virtual int v_CalcNumberOfCoefficients(
const std::vector<unsigned int> &nummodes,
int &modes_offset);
STD_REGIONS_EXPORT virtual const LibUtilities::BasisKey
v_DetFaceBasisKey(const int i, const int k) const;
STD_REGIONS_EXPORT virtual LibUtilities::BasisType v_GetEdgeBasisType(
const int i) const;
STD_REGIONS_EXPORT virtual void v_WriteToFile(
......
......@@ -1309,6 +1309,31 @@ namespace Nektar
return nmodes;
}
const LibUtilities::BasisKey StdTetExp::v_DetFaceBasisKey(
const int i, const int k) const
{
ASSERTL2(i >= 0 && i <= 4, "face id is out of range");
int nummodes = GetBasis(0)->GetNumModes();
//temporary solution, need to add conditions based on face id
//also need to add check of the points type
switch (k)
{
case 0:
{
const LibUtilities::PointsKey pkey(nummodes+1,LibUtilities::eGaussLobattoLegendre);
return LibUtilities::BasisKey(LibUtilities::eModified_A,nummodes,pkey);
}
break;
case 1:
{
const LibUtilities::PointsKey pkey(nummodes,LibUtilities::eGaussRadauMAlpha1Beta0);
//const LibUtilities::PointsKey pkey(nummodes+1,LibUtilities::eGaussLobattoLegendre);
return LibUtilities::BasisKey(LibUtilities::eModified_B,nummodes,pkey);
}
break;
}
}
LibUtilities::BasisType StdTetExp::v_GetEdgeBasisType(const int i) const
{
......
......@@ -256,6 +256,8 @@ namespace Nektar
STD_REGIONS_EXPORT virtual int v_CalcNumberOfCoefficients(
const std::vector<unsigned int> &nummodes,
int &modes_offset);
STD_REGIONS_EXPORT virtual const LibUtilities::BasisKey
v_DetFaceBasisKey(const int i, const int k) const;
STD_REGIONS_EXPORT virtual LibUtilities::BasisType v_GetEdgeBasisType(
const int i) const;
STD_REGIONS_EXPORT virtual void v_WriteToFile(
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment