16#ifndef Convection_tools_included
17#define Convection_tools_included
25double minmod(
double grad1,
double grad2)
28 if(grad1*grad2>0.) (std::fabs(grad1)<std::fabs(grad2)) ? gradlim=grad1 : gradlim=grad2 ;
32KOKKOS_INLINE_FUNCTION
double vanleer(
double grad1,
double grad2)
35 if(grad1*grad2>0.) gradlim=2.*grad1*grad2/(grad1+grad2) ;
39KOKKOS_INLINE_FUNCTION
double vanalbada(
double grad1,
double grad2)
42 if(grad1*grad2>0.) gradlim=grad1*grad2*(grad1+grad2)/(grad1*grad1+grad2*grad2) ;
46KOKKOS_INLINE_FUNCTION
double chakravarthy(
double grad1,
double grad2)
56 gradlim=Kokkos::min(grad1/grad2,1.8);
57 gradlim=Kokkos::max(gradlim,0.);
63KOKKOS_INLINE_FUNCTION
double superbee(
double grad1,
double grad2)
73 double gradlim1,gradlim2;
74 gradlim1=Kokkos::min(2*(grad1/grad2),1.);
75 gradlim2=Kokkos::min(grad1/grad2,2.);
76 gradlim=Kokkos::max(gradlim1,gradlim2);
77 gradlim=Kokkos::max(gradlim,0.);
84double FCT_LIMITEUR(
double grad1,
double grad2,
int cas)
89 return minmod(grad1, grad2);
91 return vanleer(grad1, grad2);
93 return vanalbada(grad1, grad2);
95 return chakravarthy(grad1, grad2);
97 return superbee(grad1, grad2);