diff --git a/acc/mhd_solver/stencil_assembly.sas b/acc/mhd_solver/stencil_assembly.sas index f9025f9..e095d08 100644 --- a/acc/mhd_solver/stencil_assembly.sas +++ b/acc/mhd_solver/stencil_assembly.sas @@ -13,6 +13,50 @@ gradient(in Scalar vertex) derz(vertexIdx, vertex)}; } +Preprocessed Scalar +der6x_upwd(in Scalar vertex), +{ + return (Scalar){(1.0/60.0)*inv_ds* ( + - 20.0* vertex[vertexIdx.x, vertexIdx.y, vertexIdx.z] + + 15.0*(vertex[vertexIdx.x, vertexIdx.y+1, vertexIdx.z] + vertex[vertexIdx.x, vertexIdx.y-1, vertexIdx.z]) + - 6.0*(vertex[vertexIdx.x, vertexIdx.y+2, vertexIdx.z] + vertex[vertexIdx.x, vertexIdx.y-2, vertexIdx.z]) + + vertex[vertexIdx.x, vertexIdx.y+3, vertexIdx.z] + vertex[vertexIdx.x, vertexIdx.y-3, vertexIdx.z]; + )} +} + +Preprocessed Scalar +der6x_upwd(in Scalar vertex), +{ + return (Scalar){(1.0/60.0)*inv_ds* ( + - 20.0* vertex[vertexIdx.x, vertexIdx.y, vertexIdx.z] + + 15.0*(vertex[vertexIdx.x, vertexIdx.y+1, vertexIdx.z] + vertex[vertexIdx.x, vertexIdx.y-1, vertexIdx.z]) + - 6.0*(vertex[vertexIdx.x, vertexIdx.y+2, vertexIdx.z] + vertex[vertexIdx.x, vertexIdx.y-2, vertexIdx.z]) + + vertex[vertexIdx.x, vertexIdx.y+3, vertexIdx.z] + vertex[vertexIdx.x, vertexIdx.y-3, vertexIdx.z]; + )} +} + +Preprocessed Scalar +der6x_upwd(in Scalar vertex), +{ + return (Scalar){(1.0/60.0)*inv_ds* ( + - 20.0* vertex[vertexIdx.x, vertexIdx.y, vertexIdx.z] + + 15.0*(vertex[vertexIdx.x, vertexIdx.y, vertexIdx.z+1] + vertex[vertexIdx.x, vertexIdx.y, vertexIdx.z-1]) + - 6.0*(vertex[vertexIdx.x, vertexIdx.y, vertexIdx.z+2] + vertex[vertexIdx.x, vertexIdx.y, vertexIdx.z-2]) + + vertex[vertexIdx.x, vertexIdx.y, vertexIdx.z+3] + vertex[vertexIdx.x, vertexIdx.y, vertexIdx.z-3]; + )} +} + +Preprocessed Scalar +der6_upwd(in Scalar vertex) +{ + der6 = + + + + + return der6; +} + Preprocessed Matrix hessian(in Scalar vertex) {