Omega currently applies spatially uniform Del2 and Del4 MeshScaling values, which are hard-coded as 1.0 in HorzMesh.cpp:
//------------------------------------------------------------------------------
// Set mesh scaling coefficients for mixing terms in momentum and tracer
// equations so viscosity and diffusion scale with mesh.
void HorzMesh::computeMeshScaling() {
OMEGA_SCOPE(o_MeshScalingDel2, MeshScalingDel2);
OMEGA_SCOPE(o_MeshScalingDel4, MeshScalingDel4);
// TODO: implement mesh scaling by cell area, only no scaling
// option for now
parallelFor(
{NEdgesAll}, KOKKOS_LAMBDA(int Edge) {
o_MeshScalingDel2(Edge) = 1.0;
o_MeshScalingDel4(Edge) = 1.0;
});
MeshScalingDel2H = createHostMirrorCopy(MeshScalingDel2);
MeshScalingDel4H = createHostMirrorCopy(MeshScalingDel4);
} // end computeMeshScaling
These scaling factors directly affect the horizontal Del2 and Del4 viscosity/diffusion coefficients. For example, MeshScalingDel2 is multiplied into the Del2 tendency in TendencyTerms.h:
for (int KVec = 0; KVec < KLen; ++KVec) {
const I4 K = KStart + KVec;
const Real Del2U =
((DivCell(ICell1, K) - DivCell(ICell0, K)) * DcEdgeInv -
(RVortVertex(IVertex1, K) - RVortVertex(IVertex0, K)) *
DvEdgeInv);
Tend(IEdge, K) +=
EdgeMask(IEdge, K) * ViscDel2 * MeshScalingDel2(IEdge) * Del2U;
}
}
MeshScalingDel2 and MeshScalingDel4 should be spatially variable to properly account for changes in mesh resolution. Without this, simulations on variable-resolution meshes can be more vulnerable to numerical noise and model instability.
Omega currently applies spatially uniform Del2 and Del4
MeshScalingvalues, which are hard-coded as1.0inHorzMesh.cpp:These scaling factors directly affect the horizontal Del2 and Del4 viscosity/diffusion coefficients. For example,
MeshScalingDel2is multiplied into the Del2 tendency inTendencyTerms.h:MeshScalingDel2andMeshScalingDel4should be spatially variable to properly account for changes in mesh resolution. Without this, simulations on variable-resolution meshes can be more vulnerable to numerical noise and model instability.