Commit b8cd789e authored by snuverink_j's avatar snuverink_j
Browse files

Merge branch...

Merge branch '488-clang-compiler-error-unmatched-template-parameter-const-centeringenum' into 'master'

Resolve "clang compiler error: unmatched template parameter `const CenteringEnum*`"

Closes #488

See merge request !302
parents 4868efe8 28fbfdb9
...@@ -465,7 +465,7 @@ void PeriodicFaceBCApply(PeriodicFace<T,D,M,Vert>& pf, ...@@ -465,7 +465,7 @@ void PeriodicFaceBCApply(PeriodicFace<T,D,M,Vert>& pf,
template<class T, unsigned D, class M> template<class T, unsigned D, class M>
void PeriodicFaceBCApply(PeriodicFace<T,D,M,Edge>& pf, void PeriodicFaceBCApply(PeriodicFace<T,D,M,Edge>& pf,
Field<T,D,M,Edge>& A ); Field<T,D,M,Edge>& A );
template<class T, unsigned D, class M, const CenteringEnum* CE, unsigned NC> template<class T, unsigned D, class M, CenteringEnum* CE, unsigned NC>
void PeriodicFaceBCApply(PeriodicFace<T,D,M, void PeriodicFaceBCApply(PeriodicFace<T,D,M,
CartesianCentering<CE,D,NC> >& pf, CartesianCentering<CE,D,NC> >& pf,
Field<T,D,M,CartesianCentering<CE,D,NC> >& A ); Field<T,D,M,CartesianCentering<CE,D,NC> >& A );
...@@ -876,7 +876,7 @@ void PeriodicFaceBCApply(PeriodicFace<T,D,M,Edge>& pf, ...@@ -876,7 +876,7 @@ void PeriodicFaceBCApply(PeriodicFace<T,D,M,Edge>& pf,
// Specialization of PeriodicFace::apply() for CartesianCentering centering. // Specialization of PeriodicFace::apply() for CartesianCentering centering.
// Rather, indirectly-called specialized global function PeriodicFaceBCApply // Rather, indirectly-called specialized global function PeriodicFaceBCApply
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
template<class T, unsigned D, class M, const CenteringEnum* CE, unsigned NC> template<class T, unsigned D, class M, CenteringEnum* CE, unsigned NC>
void PeriodicFaceBCApply(PeriodicFace<T,D,M, void PeriodicFaceBCApply(PeriodicFace<T,D,M,
CartesianCentering<CE,D,NC> >& pf, CartesianCentering<CE,D,NC> >& pf,
Field<T,D,M,CartesianCentering<CE,D,NC> >& A ) Field<T,D,M,CartesianCentering<CE,D,NC> >& A )
...@@ -1175,7 +1175,7 @@ CalcParallelPeriodicDomain(const Field<T,D,M,Edge> &A, ...@@ -1175,7 +1175,7 @@ CalcParallelPeriodicDomain(const Field<T,D,M,Edge> &A,
// See comments above - vert centering wrong, I think. // See comments above - vert centering wrong, I think.
template<class T, unsigned D, class M, const CenteringEnum* CE, unsigned NC> template<class T, unsigned D, class M, CenteringEnum* CE, unsigned NC>
inline void inline void
CalcParallelPeriodicDomain(const Field<T,D,M,CartesianCentering<CE,D,NC> >& A, CalcParallelPeriodicDomain(const Field<T,D,M,CartesianCentering<CE,D,NC> >& A,
const ParallelPeriodicFace<T,D,M, const ParallelPeriodicFace<T,D,M,
...@@ -2783,7 +2783,7 @@ void ExtrapolateFaceBCApply(ExtrapolateFace<T,D,M,Vert>& ef, ...@@ -2783,7 +2783,7 @@ void ExtrapolateFaceBCApply(ExtrapolateFace<T,D,M,Vert>& ef,
template<class T, unsigned D, class M> template<class T, unsigned D, class M>
void ExtrapolateFaceBCApply(ExtrapolateFace<T,D,M,Edge>& ef, void ExtrapolateFaceBCApply(ExtrapolateFace<T,D,M,Edge>& ef,
Field<T,D,M,Edge>& A ); Field<T,D,M,Edge>& A );
template<class T, unsigned D, class M, const CenteringEnum* CE, unsigned NC> template<class T, unsigned D, class M, CenteringEnum* CE, unsigned NC>
void ExtrapolateFaceBCApply(ExtrapolateFace<T,D,M, void ExtrapolateFaceBCApply(ExtrapolateFace<T,D,M,
CartesianCentering<CE,D,NC> >& ef, CartesianCentering<CE,D,NC> >& ef,
Field<T,D,M,CartesianCentering<CE,D,NC> >& A ); Field<T,D,M,CartesianCentering<CE,D,NC> >& A );
...@@ -3262,7 +3262,7 @@ void ExtrapolateFaceBCApply(ExtrapolateFace<T,D,M,Edge>& ef, ...@@ -3262,7 +3262,7 @@ void ExtrapolateFaceBCApply(ExtrapolateFace<T,D,M,Edge>& ef,
// Specialization of ExtrapolateFace::apply() for CartesianCentering centering. // Specialization of ExtrapolateFace::apply() for CartesianCentering centering.
// Rather,indirectly-called specialized global function ExtrapolateFaceBCApply: // Rather,indirectly-called specialized global function ExtrapolateFaceBCApply:
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
template<class T, unsigned D, class M, const CenteringEnum* CE, unsigned NC> template<class T, unsigned D, class M, CenteringEnum* CE, unsigned NC>
void ExtrapolateFaceBCApply(ExtrapolateFace<T,D,M, void ExtrapolateFaceBCApply(ExtrapolateFace<T,D,M,
CartesianCentering<CE,D,NC> >& ef, CartesianCentering<CE,D,NC> >& ef,
Field<T,D,M,CartesianCentering<CE,D,NC> >& A ) Field<T,D,M,CartesianCentering<CE,D,NC> >& A )
...@@ -3596,7 +3596,7 @@ void ExtrapolateAndZeroFaceBCApply(ExtrapolateAndZeroFace<T,D,M,Vert>& ef, ...@@ -3596,7 +3596,7 @@ void ExtrapolateAndZeroFaceBCApply(ExtrapolateAndZeroFace<T,D,M,Vert>& ef,
template<class T, unsigned D, class M> template<class T, unsigned D, class M>
void ExtrapolateAndZeroFaceBCApply(ExtrapolateAndZeroFace<T,D,M,Edge>& ef, void ExtrapolateAndZeroFaceBCApply(ExtrapolateAndZeroFace<T,D,M,Edge>& ef,
Field<T,D,M,Edge>& A ); Field<T,D,M,Edge>& A );
template<class T, unsigned D, class M, const CenteringEnum* CE, unsigned NC> template<class T, unsigned D, class M, CenteringEnum* CE, unsigned NC>
void ExtrapolateAndZeroFaceBCApply(ExtrapolateAndZeroFace<T,D,M, void ExtrapolateAndZeroFaceBCApply(ExtrapolateAndZeroFace<T,D,M,
CartesianCentering<CE,D,NC> >& ef, CartesianCentering<CE,D,NC> >& ef,
Field<T,D,M,CartesianCentering<CE,D,NC> >& A ); Field<T,D,M,CartesianCentering<CE,D,NC> >& A );
...@@ -4203,7 +4203,7 @@ void ExtrapolateAndZeroFaceBCApply(ExtrapolateAndZeroFace<T,D,M,Edge>& ef, ...@@ -4203,7 +4203,7 @@ void ExtrapolateAndZeroFaceBCApply(ExtrapolateAndZeroFace<T,D,M,Edge>& ef,
// centering. Rather,indirectly-called specialized global function // centering. Rather,indirectly-called specialized global function
// ExtrapolateAndZeroFaceBCApply: // ExtrapolateAndZeroFaceBCApply:
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
template<class T, unsigned D, class M, const CenteringEnum* CE, unsigned NC> template<class T, unsigned D, class M, CenteringEnum* CE, unsigned NC>
void ExtrapolateAndZeroFaceBCApply(ExtrapolateAndZeroFace<T,D,M, void ExtrapolateAndZeroFaceBCApply(ExtrapolateAndZeroFace<T,D,M,
CartesianCentering<CE,D,NC> >& ef, CartesianCentering<CE,D,NC> >& ef,
Field<T,D,M,CartesianCentering<CE,D,NC> >& A ) Field<T,D,M,CartesianCentering<CE,D,NC> >& A )
...@@ -4525,7 +4525,7 @@ void FunctionFaceBCApply(FunctionFace<T,D,M,Vert>& ff, ...@@ -4525,7 +4525,7 @@ void FunctionFaceBCApply(FunctionFace<T,D,M,Vert>& ff,
template<class T, unsigned D, class M> template<class T, unsigned D, class M>
void FunctionFaceBCApply(FunctionFace<T,D,M,Edge>& ff, void FunctionFaceBCApply(FunctionFace<T,D,M,Edge>& ff,
Field<T,D,M,Edge>& A ); Field<T,D,M,Edge>& A );
template<class T, unsigned D, class M, const CenteringEnum* CE, unsigned NC> template<class T, unsigned D, class M, CenteringEnum* CE, unsigned NC>
void FunctionFaceBCApply(FunctionFace<T,D,M, void FunctionFaceBCApply(FunctionFace<T,D,M,
CartesianCentering<CE,D,NC> >& ff, CartesianCentering<CE,D,NC> >& ff,
Field<T,D,M,CartesianCentering<CE,D,NC> >& A ); Field<T,D,M,CartesianCentering<CE,D,NC> >& A );
...@@ -4802,7 +4802,7 @@ void FunctionFaceBCApply(FunctionFace<T,D,M,Edge>& ff, ...@@ -4802,7 +4802,7 @@ void FunctionFaceBCApply(FunctionFace<T,D,M,Edge>& ff,
// Specialization of FunctionFace::apply() for CartesianCentering centering. // Specialization of FunctionFace::apply() for CartesianCentering centering.
// Rather, indirectly-called specialized global function FunctionFaceBCApply: // Rather, indirectly-called specialized global function FunctionFaceBCApply:
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
template<class T, unsigned D, class M, const CenteringEnum* CE, unsigned NC> template<class T, unsigned D, class M, CenteringEnum* CE, unsigned NC>
void FunctionFaceBCApply(FunctionFace<T,D,M, void FunctionFaceBCApply(FunctionFace<T,D,M,
CartesianCentering<CE,D,NC> >& ff, CartesianCentering<CE,D,NC> >& ff,
Field<T,D,M,CartesianCentering<CE,D,NC> >& A ) Field<T,D,M,CartesianCentering<CE,D,NC> >& A )
...@@ -4976,7 +4976,7 @@ void ComponentFunctionFaceBCApply(ComponentFunctionFace<T,D,M,Vert>& ff, ...@@ -4976,7 +4976,7 @@ void ComponentFunctionFaceBCApply(ComponentFunctionFace<T,D,M,Vert>& ff,
template<class T, unsigned D, class M> template<class T, unsigned D, class M>
void ComponentFunctionFaceBCApply(ComponentFunctionFace<T,D,M,Edge>& ff, void ComponentFunctionFaceBCApply(ComponentFunctionFace<T,D,M,Edge>& ff,
Field<T,D,M,Edge>& A ); Field<T,D,M,Edge>& A );
template<class T, unsigned D, class M, const CenteringEnum* CE, unsigned NC> template<class T, unsigned D, class M, CenteringEnum* CE, unsigned NC>
void ComponentFunctionFaceBCApply(ComponentFunctionFace<T,D,M, void ComponentFunctionFaceBCApply(ComponentFunctionFace<T,D,M,
CartesianCentering<CE,D,NC> >& ff, CartesianCentering<CE,D,NC> >& ff,
Field<T,D,M, Field<T,D,M,
...@@ -5259,7 +5259,7 @@ void ComponentFunctionFaceBCApply(ComponentFunctionFace<T,D,M,Edge>& ff, ...@@ -5259,7 +5259,7 @@ void ComponentFunctionFaceBCApply(ComponentFunctionFace<T,D,M,Edge>& ff,
//CartesianCentering centering. Rather, indirectly-called specialized //CartesianCentering centering. Rather, indirectly-called specialized
//global function ComponentFunctionFaceBCApply: //global function ComponentFunctionFaceBCApply:
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
template<class T, unsigned D, class M, const CenteringEnum* CE, unsigned NC> template<class T, unsigned D, class M, CenteringEnum* CE, unsigned NC>
void ComponentFunctionFaceBCApply(ComponentFunctionFace<T,D,M, void ComponentFunctionFaceBCApply(ComponentFunctionFace<T,D,M,
CartesianCentering<CE,D,NC> >& ff, CartesianCentering<CE,D,NC> >& ff,
Field<T,D,M,CartesianCentering<CE,D,NC> >& A ) Field<T,D,M,CartesianCentering<CE,D,NC> >& A )
...@@ -5650,7 +5650,7 @@ calcEurekaSlabToFill(const Field<T,D,M,Edge>& field, int face,int) ...@@ -5650,7 +5650,7 @@ calcEurekaSlabToFill(const Field<T,D,M,Edge>& field, int face,int)
// If that component is cell, the number of guard cells. // If that component is cell, the number of guard cells.
// //
template<class T, unsigned D, class M, const CenteringEnum* CE, unsigned NC> template<class T, unsigned D, class M, CenteringEnum* CE, unsigned NC>
static NDIndex<D> static NDIndex<D>
calcEurekaSlabToFill(const Field<T,D,M,CartesianCentering<CE,D,NC> >& field, calcEurekaSlabToFill(const Field<T,D,M,CartesianCentering<CE,D,NC> >& field,
int face, int face,
......
...@@ -87,7 +87,7 @@ centeredInitialize(CenteredFieldLayout<Dim,Mesh,Edge> & cfl, ...@@ -87,7 +87,7 @@ centeredInitialize(CenteredFieldLayout<Dim,Mesh,Edge> & cfl,
} }
//------------------CartesianCentering centering------------------------------- //------------------CartesianCentering centering-------------------------------
template<const CenteringEnum* CE, unsigned Dim, class Mesh, template<CenteringEnum* CE, unsigned Dim, class Mesh,
unsigned NComponents> unsigned NComponents>
inline void inline void
centeredInitialize(CenteredFieldLayout<Dim,Mesh, centeredInitialize(CenteredFieldLayout<Dim,Mesh,
...@@ -172,7 +172,7 @@ centeredInitialize(CenteredFieldLayout<Dim,Mesh,Edge> & cfl, ...@@ -172,7 +172,7 @@ centeredInitialize(CenteredFieldLayout<Dim,Mesh,Edge> & cfl,
} }
//------------------CartesianCentering centering------------------------------- //------------------CartesianCentering centering-------------------------------
template<const CenteringEnum* CE, unsigned Dim, class Mesh, template<CenteringEnum* CE, unsigned Dim, class Mesh,
unsigned NComponents> unsigned NComponents>
inline void inline void
centeredInitialize(CenteredFieldLayout<Dim,Mesh, centeredInitialize(CenteredFieldLayout<Dim,Mesh,
...@@ -254,7 +254,7 @@ centeredInitialize(CenteredFieldLayout<Dim,Mesh,Edge> & cfl, ...@@ -254,7 +254,7 @@ centeredInitialize(CenteredFieldLayout<Dim,Mesh,Edge> & cfl,
} }
//------------------CartesianCentering centering------------------------------- //------------------CartesianCentering centering-------------------------------
template<const CenteringEnum* CE, unsigned Dim, class Mesh, template<CenteringEnum* CE, unsigned Dim, class Mesh,
unsigned NComponents> unsigned NComponents>
inline void inline void
centeredInitialize(CenteredFieldLayout<Dim,Mesh, centeredInitialize(CenteredFieldLayout<Dim,Mesh,
......
...@@ -32,14 +32,14 @@ ...@@ -32,14 +32,14 @@
enum CenteringEnum {CELL=0, VERTEX=1, VERT=1}; enum CenteringEnum {CELL=0, VERTEX=1, VERT=1};
// Primary class for canned and user-defined cartesian centerings: // Primary class for canned and user-defined cartesian centerings:
template<const CenteringEnum* CE, unsigned Dim, unsigned NComponents=1U> template<CenteringEnum* CE, unsigned Dim, unsigned NComponents=1U>
class CartesianCentering class CartesianCentering
{ {
public: public:
static void print_Centerings(std::ostream&); // Print function static void print_Centerings(std::ostream&); // Print function
static std::string CenteringName; static std::string CenteringName;
}; };
template <const CenteringEnum* CE, unsigned Dim, unsigned NComponents> template <CenteringEnum* CE, unsigned Dim, unsigned NComponents>
void CartesianCentering<CE,Dim,NComponents>:: void CartesianCentering<CE,Dim,NComponents>::
print_Centerings(std::ostream& out) print_Centerings(std::ostream& out)
{ {
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
// include files // include files
#include "Meshes/CartesianCentering.h" #include "Meshes/CartesianCentering.h"
template <const CenteringEnum* CE, unsigned Dim, unsigned NComponents> template <CenteringEnum* CE, unsigned Dim, unsigned NComponents>
std::string CartesianCentering<CE,Dim,NComponents>::CenteringName = std::string CartesianCentering<CE,Dim,NComponents>::CenteringName =
"CartesianCentering: no specialized name (yet) for this case"; "CartesianCentering: no specialized name (yet) for this case";
......
Markdown is supported
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