Implementetion for hyperdiffusion to be tested later.

This commit is contained in:
Miikka Vaisala
2019-06-21 17:29:06 +08:00
parent f2a33bf4f8
commit 57881e5961
2 changed files with 17 additions and 14 deletions

View File

@@ -25,7 +25,7 @@ der6x_upwd(in Scalar vertex),
} }
Preprocessed Scalar Preprocessed Scalar
der6x_upwd(in Scalar vertex), der6y_upwd(in Scalar vertex),
{ {
return (Scalar){(1.0/60.0)*inv_ds* ( return (Scalar){(1.0/60.0)*inv_ds* (
- 20.0* vertex[vertexIdx.x, vertexIdx.y, vertexIdx.z] - 20.0* vertex[vertexIdx.x, vertexIdx.y, vertexIdx.z]
@@ -36,7 +36,7 @@ der6x_upwd(in Scalar vertex),
} }
Preprocessed Scalar Preprocessed Scalar
der6x_upwd(in Scalar vertex), der6z_upwd(in Scalar vertex),
{ {
return (Scalar){(1.0/60.0)*inv_ds* ( return (Scalar){(1.0/60.0)*inv_ds* (
- 20.0* vertex[vertexIdx.x, vertexIdx.y, vertexIdx.z] - 20.0* vertex[vertexIdx.x, vertexIdx.y, vertexIdx.z]
@@ -46,17 +46,6 @@ der6x_upwd(in Scalar vertex),
)} )}
} }
Preprocessed Scalar
der6_upwd(in Scalar vertex)
{
der6 =
return der6;
}
Preprocessed Matrix Preprocessed Matrix
hessian(in Scalar vertex) hessian(in Scalar vertex)
{ {

View File

@@ -3,6 +3,7 @@
#define LTEMPERATURE (0) #define LTEMPERATURE (0)
#define LGRAVITY (0) #define LGRAVITY (0)
#define LFORCING (1) #define LFORCING (1)
#define LUPWD (0)
// Declare uniforms (i.e. device constants) // Declare uniforms (i.e. device constants)
@@ -27,6 +28,14 @@ uniform int ny;
uniform int nz; uniform int nz;
Scalar
upwd_der6(in Vector uu, in Scalar lnrho)
{
return (Scalar){uu.x*der6x_upwd(lnrho) + uu.y*der6y_upwd(lnrho) + uu.z*der6z_upwd(lnrho)}
}
Vector Vector
value(in Vector uu) value(in Vector uu)
{ {
@@ -41,7 +50,12 @@ gradients(in Vector uu)
Scalar Scalar
continuity(in Vector uu, in Scalar lnrho) { continuity(in Vector uu, in Scalar lnrho) {
return -dot(value(uu), gradient(lnrho)) - divergence(uu); return -dot(value(uu), gradient(lnrho))
#if LUPWD
//This is a corrective hyperdiffusion term for upwinding.
+ upwd_der6(uu, lnrho)
#ENDIF
- divergence(uu);
} }
#if LENTROPY #if LENTROPY