From 5093edfd1e74623b6e58103989cf86e07701aa08 Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Mon, 15 Jun 2026 13:36:10 -0600 Subject: [PATCH 01/60] Convert some initial FCT algorithm from F90 to C++ --- components/omega/src/ocn/Tendencies.cpp | 270 ++++++++++++--- components/omega/src/ocn/TendencyTerms.cpp | 57 +++- components/omega/src/ocn/TendencyTerms.h | 322 +++++++++++++++++- .../omega/test/ocn/TendencyTermsTest.cpp | 7 +- 4 files changed, 596 insertions(+), 60 deletions(-) diff --git a/components/omega/src/ocn/Tendencies.cpp b/components/omega/src/ocn/Tendencies.cpp index d8273a844de0..abf73d62d37b 100644 --- a/components/omega/src/ocn/Tendencies.cpp +++ b/components/omega/src/ocn/Tendencies.cpp @@ -7,8 +7,8 @@ // tendency terms are enabled. // //===----------------------------------------------------------------------===// +#include -#include "Tendencies.h" #include "CustomTendencyTerms.h" #include "Eos.h" #include "Error.h" @@ -17,6 +17,7 @@ #include "OceanState.h" #include "PGrad.h" #include "Pacer.h" +#include "Tendencies.h" #include "TimeStepper.h" #include "Tracers.h" #include "VertAdv.h" @@ -226,6 +227,22 @@ void Tendencies::readConfig(Config *OmegaConfig ///< [in] Omega config if (Order == 4) { this->TracerHorzAdv.Coef3rdOrder = 0; } + Err += AdvectConfig.get("HorzTracerFluxLimiterEnable", TracerHorzAdv.FCT); + CHECK_ERROR_ABORT( + Err, + "Tendencies: HorzTracerFluxLimiterEnable not found in AdvectConfig"); + if (TracerHorzAdv.FCT) { + Err += AdvectConfig.get("HorzTracerFluxLimiterBudgetsEnable", + TracerHorzAdv.ComputeBudgets); + CHECK_ERROR_ABORT(Err, + "Tendencies: HorzTracerFluxLimiterBudgetsEnable not " + "found in AdvectConfig"); + Err += AdvectConfig.get("HorzTracerFluxLimiterMonotonicityCheckEnable", + TracerHorzAdv.MonotonicityCheck); + CHECK_ERROR_ABORT( + Err, "Tendencies: HorzTracerFluxLimiterMonotonicityCheckEnable " + "not found in AdvectConfig"); + } } Err += TendConfig.get("TracerDiffTendencyEnable", this->TracerDiffusion.Enabled); @@ -462,7 +479,7 @@ Tendencies::Tendencies(const std::string &Name_, ///< [in] Name for tendencies VelocityDiffusion(Mesh, VCoord), VelocityHyperDiff(Mesh, VCoord), SfcStressForcing(Mesh, VCoord), ExplicitBottomDrag(Mesh, VCoord), TracerDiffusion(Mesh, VCoord), TracerHyperDiff(Mesh, VCoord), - TracerHorzAdv(Mesh, VCoord), SurfaceTracerRestoring(Mesh), + TracerHorzAdv(Mesh, VCoord, VAdv), SurfaceTracerRestoring(Mesh), CustomThicknessTend(InCustomThicknessTend), CustomVelocityTend(InCustomVelocityTend), EqState(EqState), PGrad(PGrad), VMix(VMix) { @@ -602,7 +619,7 @@ void Tendencies::computeVelocityTendenciesOnly( AuxState->PseudoThicknessAux.FluxPseudoThickEdge; const Array2DReal &NormRVortEdge = AuxState->VorticityAux.NormRelVortEdge; const Array2DReal &NormFEdge = AuxState->VorticityAux.NormPlanetVortEdge; - Array2DReal NormVelEdge = State->getNormalVelocity(VelTimeLevel); + Array2DReal NormalVelEdge = State->getNormalVelocity(VelTimeLevel); if (LocPotentialVortHAdv.Enabled) { Pacer::start("Tend:PotentialVortHAdv", 2); parallelForOuter( @@ -615,7 +632,7 @@ void Tendencies::computeVelocityTendenciesOnly( Team, KRange, INNER_LAMBDA(int KChunk) { LocPotentialVortHAdv(LocNormalVelocityTend, IEdge, KChunk, NormRVortEdge, NormFEdge, - FluxPseudoThickEdge, NormVelEdge); + FluxPseudoThickEdge, NormalVelEdge); }); }); Pacer::stop("Tend:PotentialVortHAdv", 2); @@ -696,7 +713,7 @@ void Tendencies::computeVelocityTendenciesOnly( Pacer::start("Tend:computeVelocityVAdvTend", 2); // Compute velocity tendency from vertical advection - VAdv->computeVelocityVAdvTend(NormalVelocityTend, NormVelEdge, + VAdv->computeVelocityVAdvTend(NormalVelocityTend, NormalVelEdge, FluxPseudoThickEdge); Pacer::stop("Tend:computeVelocityVAdvTend", 2); @@ -772,52 +789,211 @@ void Tendencies::computeTracerTendenciesOnly( OMEGA_SCOPE(LocTracerDiffusion, TracerDiffusion); OMEGA_SCOPE(LocTracerHyperDiff, TracerHyperDiff); OMEGA_SCOPE(LocSurfaceTracerRestoring, SurfaceTracerRestoring); - OMEGA_SCOPE(MinLayerCell, VCoord->MinLayerCell); - OMEGA_SCOPE(MaxLayerCell, VCoord->MaxLayerCell); - OMEGA_SCOPE(MinLayerEdgeBot, VCoord->MinLayerEdgeBot); - OMEGA_SCOPE(MaxLayerEdgeTop, VCoord->MaxLayerEdgeTop); + OMEGA_SCOPE(LocMinLayerCell, VCoord->MinLayerCell); + OMEGA_SCOPE(LocMaxLayerCell, VCoord->MaxLayerCell); + OMEGA_SCOPE(LocMinLayerEdgeBot, VCoord->MinLayerEdgeBot); + OMEGA_SCOPE(LocMaxLayerEdgeTop, VCoord->MaxLayerEdgeTop); + + Array2DReal NormalVelEdge = State->getNormalVelocity(VelTimeLevel); + Array2DReal PseudoThickCell = State->getPseudoThickness(ThickTimeLevel); + Array2DReal FluxPseudoThickEdge = + AuxState->PseudoThicknessAux.FluxPseudoThickEdge; + + OMEGA_SCOPE(LocPseudoThickCell, PseudoThickCell); + OMEGA_SCOPE(LocNormalVelEdge, NormalVelEdge); + OMEGA_SCOPE(LocFluxPseudoThickEdge, FluxPseudoThickEdge); Pacer::start("Tend:computeTracerTendenciesOnly", 1); parallelForOuter( {NTracers, Mesh->NCellsAll}, KOKKOS_LAMBDA(int L, int ICell, const TeamMember &Team) { - const int KMin = MinLayerCell(ICell); - const int KMax = MaxLayerCell(ICell); + const int KMin = LocMinLayerCell(ICell); + const int KMax = LocMaxLayerCell(ICell); parallelForInner( Team, Range{KMin, KMax}, INNER_LAMBDA(int K) { LocTracerTend(L, ICell, K) = 0; }); }); - // compute tracer horizotal advection - Array2DReal NormalVelEdge = State->getNormalVelocity(VelTimeLevel); - const Array2DReal &FluxPseudoThickEdge = - AuxState->PseudoThicknessAux.FluxPseudoThickEdge; + R8 Dt = 0; + TimeStep.get(Dt, TimeUnits::Seconds); if (LocTracerHorzAdv.Enabled) { Pacer::start("Tend:tracerHorzAdv", 2); - parallelForOuter( - {NTracers, Mesh->NEdgesAll}, - KOKKOS_LAMBDA(int L, int IEdge, const TeamMember &Team) { - const int KMin = MinLayerEdgeBot(IEdge); - const int KMax = MaxLayerEdgeTop(IEdge); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv(L, IEdge, KChunk, TracerArray, - FluxPseudoThickEdge, NormalVelEdge); - }); - }); - parallelForOuter( - {NTracers, Mesh->NCellsAll}, - KOKKOS_LAMBDA(int L, int ICell, const TeamMember &Team) { - const int KMin = MinLayerCell(ICell); - const int KMax = MaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv(LocTracerTend, L, ICell, KChunk); - }); - }); + if (LocTracerHorzAdv.FCT) { + parallelForOuter( + {Mesh->NCellsAll}, + KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { + const int KMin = LocMinLayerCell(ICell); + const int KMax = LocMaxLayerCell(ICell); + const int KRange = vertRangeChunked(KMin, KMax); + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocTracerHorzAdv.FCTProvisionaLayerThicknesses( + ICell, KChunk, Dt, LocFluxPseudoThickEdge, + LocPseudoThickCell, LocNormalVelEdge); + }); + }); + Kokkos::fence(); + for (int L = 0; L < NTracers; ++L) { + parallelForOuter( + {Mesh->NCellsAll}, + KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { + const int KMin = LocMinLayerCell(ICell); + const int KMax = LocMaxLayerCell(ICell); + const int KRange = vertRangeChunked(KMin, KMax); + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocTracerHorzAdv.FCTTracerCurFill(L, ICell, KChunk, + TracerArray); + }); + }); + Kokkos::fence(); + parallelForOuter( + {Mesh->NCellsAll}, + KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { + const int KMin = LocMinLayerCell(ICell); + const int KMax = LocMaxLayerCell(ICell); + const int KRange = vertRangeChunked(KMin, KMax); + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocTracerHorzAdv.FCTTracerMinMax( + ICell, KChunk, LocMinLayerCell, LocMaxLayerCell); + }); + }); + Kokkos::fence(); + parallelForOuter( + {Mesh->NEdgesHaloH(1)}, + KOKKOS_LAMBDA(int IEdge, const TeamMember &Team) { + const int KMin = LocMinLayerEdgeBot(IEdge); + const int KMax = LocMaxLayerEdgeTop(IEdge); + const int KRange = vertRangeChunked(KMin, KMax); + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocTracerHorzAdv.FCTHighAndLowOrderFlux( + IEdge, KChunk, LocMinLayerCell, LocMaxLayerCell, + LocFluxPseudoThickEdge, LocNormalVelEdge); + }); + }); + Kokkos::fence(); + parallelForOuter( + {Mesh->NCellsAll + 1}, + KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { + const int KMin = LocMinLayerCell(ICell); + const int KMax = LocMaxLayerCell(ICell); + const int KRange = vertRangeChunked(KMin, KMax); + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocTracerHorzAdv.FCTInitFluxInOut(ICell, KChunk); + }); + }); + Kokkos::fence(); + parallelForOuter( + {Mesh->NCellsHaloH(0)}, + KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { + const int KMin = LocMinLayerCell(ICell); + const int KMax = LocMaxLayerCell(ICell); + const int KRange = vertRangeChunked(KMin, KMax); + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocTracerHorzAdv.FCTFluxInOut(ICell, KChunk, Dt, + LocPseudoThickCell); + }); + }); + Kokkos::fence(); + parallelForOuter( + {Mesh->NEdgesHaloH(0)}, + KOKKOS_LAMBDA(int IEdge, const TeamMember &Team) { + const int KMin = LocMinLayerEdgeBot(IEdge); + const int KMax = LocMaxLayerEdgeTop(IEdge); + const int KRange = vertRangeChunked(KMin, KMax); + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocTracerHorzAdv.FCTRescaleHighOrderFlux(IEdge, + KChunk); + }); + }); + Kokkos::fence(); + parallelForOuter( + {Mesh->NCellsOwned}, + KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { + const int KMin = LocMinLayerCell(ICell); + const int KMax = LocMaxLayerCell(ICell); + const int KRange = vertRangeChunked(KMin, KMax); + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocTracerHorzAdv.FCTAccumulateHighOrderFlux( + L, ICell, KChunk, Dt, LocTracerTend, + LocPseudoThickCell); + }); + }); + Kokkos::fence(); + if (LocTracerHorzAdv.ComputeBudgets) { + parallelForOuter( + {Mesh->NEdgesHaloH(1)}, + KOKKOS_LAMBDA(int IEdge, const TeamMember &Team) { + const int KMin = LocMinLayerEdgeBot(IEdge); + const int KMax = LocMaxLayerEdgeTop(IEdge); + const int KRange = vertRangeChunked(KMin, KMax); + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocTracerHorzAdv.FCTComputeBudgetAdvectionEdgeFlux( + L, IEdge, KChunk); + }); + }); + parallelForOuter( + {Mesh->NCellsOwned}, + KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { + const int KMin = LocMinLayerCell(ICell); + const int KMax = LocMaxLayerCell(ICell); + const int KRange = vertRangeChunked(KMin, KMax); + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocTracerHorzAdv.FCTComputeBudgetAdvectionTendency( + L, ICell, KChunk); + }); + }); + } + if (LocTracerHorzAdv.MonotonicityCheck) { + parallelForOuter( + {Mesh->NCellsOwned}, + KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { + const int KMin = LocMinLayerCell(ICell); + const int KMax = LocMaxLayerCell(ICell); + const int KRange = vertRangeChunked(KMin, KMax); + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocTracerHorzAdv.FCTMonotonicityCheck( + L, ICell, KChunk, TracerArray); + }); + }); + } + } + } else { + parallelForOuter( + {NTracers, Mesh->NEdgesAll}, + KOKKOS_LAMBDA(int L, int IEdge, const TeamMember &Team) { + const int KMin = LocMinLayerEdgeBot(IEdge); + const int KMax = LocMaxLayerEdgeTop(IEdge); + const int KRange = vertRangeChunked(KMin, KMax); + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocTracerHorzAdv(L, IEdge, KChunk, TracerArray, + LocFluxPseudoThickEdge, + LocNormalVelEdge); + }); + }); + parallelForOuter( + {NTracers, Mesh->NCellsAll}, + KOKKOS_LAMBDA(int L, int ICell, const TeamMember &Team) { + const int KMin = LocMinLayerCell(ICell); + const int KMax = LocMaxLayerCell(ICell); + const int KRange = vertRangeChunked(KMin, KMax); + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocTracerHorzAdv(LocTracerTend, L, ICell, KChunk); + }); + }); + } Pacer::stop("Tend:tracerHorzAdv", 2); } @@ -829,8 +1005,8 @@ void Tendencies::computeTracerTendenciesOnly( parallelForOuter( {NTracers, Mesh->NCellsAll}, KOKKOS_LAMBDA(int L, int ICell, const TeamMember &Team) { - const int KMin = MinLayerCell(ICell); - const int KMax = MaxLayerCell(ICell); + const int KMin = LocMinLayerCell(ICell); + const int KMax = LocMaxLayerCell(ICell); const int KRange = vertRangeChunked(KMin, KMax); parallelForInner( @@ -849,8 +1025,8 @@ void Tendencies::computeTracerTendenciesOnly( parallelForOuter( {NTracers, Mesh->NCellsAll}, KOKKOS_LAMBDA(int L, int ICell, const TeamMember &Team) { - const int KMin = MinLayerCell(ICell); - const int KMax = MaxLayerCell(ICell); + const int KMin = LocMinLayerCell(ICell); + const int KMax = LocMaxLayerCell(ICell); const int KRange = vertRangeChunked(KMin, KMax); parallelForInner( @@ -885,7 +1061,7 @@ void Tendencies::computeTracerTendenciesOnly( parallelFor( {NTracersToRestore, Mesh->NCellsAll}, KOKKOS_LAMBDA(int R, int ICell) { - const int KMin = MinLayerCell(ICell); + const int KMin = LocMinLayerCell(ICell); const int L = TracerIdsToRestore(R); LocSurfaceTracerRestoring(LocTracerTend, L, ICell, KMin, TracersMonthlySurfClimo, TracerArray); @@ -904,11 +1080,11 @@ void Tendencies::computePseudoThicknessTendencies( TimeInstant Time ///< [in] Time ) { // only need PseudoThicknessAux on edge - Array2DReal PseudoThick = State->getPseudoThickness(ThickTimeLevel); - Array2DReal NormVel = State->getNormalVelocity(VelTimeLevel); + Array2DReal PseudoThick = State->getPseudoThickness(ThickTimeLevel); + Array2DReal NormalVelEdge = State->getNormalVelocity(VelTimeLevel); OMEGA_SCOPE(PseudoThicknessAux, AuxState->PseudoThicknessAux); OMEGA_SCOPE(PseudoThickCell, PseudoThick); - OMEGA_SCOPE(NormalVelEdge, NormVel); + OMEGA_SCOPE(LocNormalVelEdge, NormalVelEdge); OMEGA_SCOPE(MinLayerEdgeBot, VCoord->MinLayerEdgeBot); OMEGA_SCOPE(MaxLayerEdgeTop, VCoord->MaxLayerEdgeTop); @@ -925,7 +1101,7 @@ void Tendencies::computePseudoThicknessTendencies( parallelForInner( Team, KRange, INNER_LAMBDA(int KChunk) { PseudoThicknessAux.computeVarsOnEdge( - IEdge, KChunk, PseudoThickCell, NormalVelEdge); + IEdge, KChunk, PseudoThickCell, LocNormalVelEdge); }); }); Pacer::stop("Tend:computePseudoThickAux", 2); diff --git a/components/omega/src/ocn/TendencyTerms.cpp b/components/omega/src/ocn/TendencyTerms.cpp index 5b142888142c..0bf6a9860dfb 100644 --- a/components/omega/src/ocn/TendencyTerms.cpp +++ b/components/omega/src/ocn/TendencyTerms.cpp @@ -7,13 +7,14 @@ // defined in the corresponding header file. // //===----------------------------------------------------------------------===// +#include +#include -#include "TendencyTerms.h" -#include "AuxiliaryState.h" #include "DataTypes.h" +#include "Error.h" #include "HorzMesh.h" #include "HorzOperators.h" -#include "OceanState.h" +#include "TendencyTerms.h" #include "Tracers.h" namespace OMEGA { @@ -72,23 +73,37 @@ BottomDragOnEdge::BottomDragOnEdge(const HorzMesh *Mesh, MaxLayerEdgeTop(VCoord->MaxLayerEdgeTop) {} TracerHorzAdvOnCell::TracerHorzAdvOnCell(const HorzMesh *Mesh, - const VertCoord *VCoord) + const VertCoord *VCoord, + const VertAdv *VAdv) : HorzontalMesh(Mesh), VerticalCoord(VCoord), + NVertLayers(VCoord->NVertLayers), NAdvCellsForEdge("NumberOfCellsContribToAdvectionAtEdge", Mesh->NEdgesAll), AdvCellsForEdge("IndexOfCellsContributingToAdvection", Mesh->NEdgesAll, Mesh->MaxEdges2 + 2), AdvMaskHighOrder("MaskForHighOrderAdvectionTerms", Mesh->NEdgesAll, VCoord->NVertLayers), + CellsOnCell(Mesh->CellsOnCell), AdvCoefs("CommonAdvectionCoefficients", Mesh->MaxEdges2 + 2, Mesh->NEdgesAll), AdvCoefs3rd("CommonAdvectionCoeffsForHighOrder", Mesh->MaxEdges2 + 2, Mesh->NEdgesAll), HighOrderFlxHorz("HigherOrderHorizontalFlux", Tracers::getNumTracers(), Mesh->NEdgesAll, VCoord->NVertLayers), - NEdgesOnCell(Mesh->NEdgesOnCell), EdgesOnCell(Mesh->EdgesOnCell), - CellsOnEdge(Mesh->CellsOnEdge), EdgeSignOnCell(Mesh->EdgeSignOnCell), - DvEdge(Mesh->DvEdge), AreaCell(Mesh->AreaCell) {} + TracerCur(), NEdgesOnCell(Mesh->NEdgesOnCell), + EdgesOnCell(Mesh->EdgesOnCell), CellsOnEdge(Mesh->CellsOnEdge), + MinLayerEdgeBot(VCoord->MinLayerEdgeBot), + MaxLayerEdgeTop(VCoord->MinLayerEdgeTop), + EdgeSignOnCell(Mesh->EdgeSignOnCell), DvEdge(Mesh->DvEdge), + AreaCell(Mesh->AreaCell), + VerticalPseudoVelocity(VAdv->VerticalPseudoVelocity), HProvInv(), + HNewInv(), HProv(), TracerMax(), TracerMin(), HighOrderFlx(), + LowOrderFlx(), MinLayerCell(VCoord->MinLayerCell), + MaxLayerCell(VCoord->MaxLayerCell), WorkTend(), FlxIn(), FlxOut(), + ActiveTracerHorizontalAdvectionEdgeFlux(), + ActiveTracerHorizontalAdvectionTendency() { + deepCopy(HighOrderFlxHorz, 0); +} TracerDiffOnCell::TracerDiffOnCell(const HorzMesh *Mesh, const VertCoord *VCoord) @@ -142,6 +157,34 @@ void TracerHorzAdvOnCell::init() { parallelFor( {NEdgesAll}, KOKKOS_LAMBDA(int IEdge) { masksAndCoefficients(IEdge); }); Kokkos::fence(); + if (FCT) { + HProvInv = Array2DReal("FCTProvesionalLayerThickness", Mesh->NEdgesAll, + NVertLayers); + HNewInv = Array2DReal("FCTProvesionalNewInverse", NEdgesAll, NVertLayers); + HProv = Array2DReal("FCTProvesionalThickness", NCellsAll, NVertLayers); + TracerCur = Array2DReal("TracerCur", NCellsAll + 1, NVertLayers), + TracerMax = Array2DReal("FCTTracerMax", NCellsAll, NVertLayers); + TracerMin = Array2DReal("FCTTracerMin", NCellsAll, NVertLayers); + HighOrderFlx = + Array2DReal("FCTHighOrderFlx", std::max(NEdgesAll, NCellsAll) + 1, + NVertLayers + 1); + LowOrderFlx = + Array2DReal("FCTLowOrderFlx", std::max(NEdgesAll, NCellsAll) + 1, + NVertLayers + 1); + WorkTend = Array2DReal("WorkTend", NCellsAll + 1, NVertLayers); + FlxIn = Array2DReal("FlxIn", NCellsAll + 1, NVertLayers); + FlxOut = Array2DReal("FlxOut", NCellsAll + 1, NVertLayers); + if (ComputeBudgets) { + const int NTracers = Tracers::getNumTracers(); + const int NEdges = Mesh->NEdgesHaloH(1); + ActiveTracerHorizontalAdvectionEdgeFlux = + Array3DReal("FCTActiveTracerHorizontalAdvectionEdgeFlux", NTracers, + NEdges, NVertLayers); + ActiveTracerHorizontalAdvectionTendency = + Array3DReal("FCTActiveTracerHorizontalAdvectionTendency", NTracers, + NCellsAll, NVertLayers); + } + } } } // end namespace OMEGA diff --git a/components/omega/src/ocn/TendencyTerms.h b/components/omega/src/ocn/TendencyTerms.h index 548832b290bf..17278db42edc 100644 --- a/components/omega/src/ocn/TendencyTerms.h +++ b/components/omega/src/ocn/TendencyTerms.h @@ -12,12 +12,14 @@ #include "AuxiliaryState.h" #include "GlobalConstants.h" +#include "Halo.h" #include "HorzMesh.h" #include "MachEnv.h" #include "OceanState.h" #include "VertCoord.h" #include // for std::copysign +#include namespace OMEGA { @@ -163,7 +165,6 @@ class KEGradOnEdge { /// Gradient of sea surface height defined on edges multipled by gravitational /// acceleration, for momentum equation -/// NOTE: This term is only appropriate for shallow water (Omega v0) simulations class SSHGradOnEdge { public: bool Enabled = false; @@ -375,11 +376,15 @@ class BottomDragOnEdge { // Tracer horizontal advection term class TracerHorzAdvOnCell { public: - bool Enabled = false; - bool ForceLowOrder = false; + bool Enabled = true; + bool ForceLowOrder = false; + bool FCT = true; + bool ComputeBudgets = false; + bool MonotonicityCheck = false; // coefficient for blending high-order terms Real Coef3rdOrder = 0.25; - TracerHorzAdvOnCell(const HorzMesh *Mesh, const VertCoord *VCoord); + TracerHorzAdvOnCell(const HorzMesh *Mesh, const VertCoord *VCoord, + const VertAdv *VAdv); void init(); KOKKOS_FUNCTION void operator()(const I4 L, const I4 IEdge, const I4 KChunk, const Array3DReal &TracerCell, @@ -432,29 +437,336 @@ class TracerHorzAdvOnCell { for (int I = 0; I < NEdgesOnCell(ICell); ++I) { const I4 IEdge = EdgesOnCell(ICell, I); - for (int K = KStart; K < KEnd; ++K) { + for (I4 K = KStart; K < KEnd; ++K) { Tend(L, ICell, K) += EdgeSignOnCell(ICell, I) * HighOrderFlxHorz(L, IEdge, K) * InvAreaCell; } } } + KOKKOS_FUNCTION void + FCTProvisionaLayerThicknesses(const I4 ICell, const I4 KChunk, const Real Dt, + const Array2DReal &FluxPseudoThickEdge, + const Array2DReal &LayerThickness, + const Array2DReal &NormVelEdge) const { + + const I4 KStart = KChunk * VecLength; + const I4 KEnd = KStart + VecLength; + + const Real InvAreaCell = Dt / AreaCell(ICell); + for (I4 K = KStart; K < KEnd; ++K) { + HProv(ICell, K) = LayerThickness(ICell, K); + } + for (I4 I = 0; I < NEdgesOnCell(ICell); ++I) { + const I4 IEdge = EdgesOnCell(ICell, I); + const Real SignedFactor = + InvAreaCell * DvEdge(IEdge) * EdgeSignOnCell(ICell, I); + // Provisional layer thickness is after horizontal + // thickness flux only + for (I4 K = KStart; K < KEnd; ++K) { + const Real NormalThicknessFlux = + FluxPseudoThickEdge(IEdge, K) * NormVelEdge(IEdge, K); + HProv(ICell, K) += SignedFactor * NormalThicknessFlux; + } + } + // New layer thickness is after horizontal and vertical + // thickness flux + for (I4 K = KStart; K < KEnd; ++K) { + HProvInv(ICell, K) = 1.0_Real / HProv(ICell, K); + HNewInv(ICell, K) = + 1.0_Real / + (HProv(ICell, K) - Dt * VerticalPseudoVelocity(ICell, K) + + Dt * VerticalPseudoVelocity(ICell, K + 1)); + } + } + + KOKKOS_FUNCTION void FCTTracerCurFill(const I4 L, const I4 ICell, + const I4 KChunk, + const Array3DReal &TracerArray) const { + const I4 KStart = KChunk * VecLength; + const I4 KEnd = KStart + VecLength; + for (I4 K = KStart; K < KEnd; ++K) + TracerCur(ICell, K) = TracerArray(L, ICell, K); + } + KOKKOS_FUNCTION void FCTTracerMinMax(const I4 ICell, const I4 KChunk, + const Array1DI4 MinLayerCell, + const Array1DI4 MaxLayerCell) const { + + const I4 KStart = KChunk * VecLength; + const I4 KEnd = KStart + VecLength; + for (I4 K = KStart; K < KEnd; ++K) { + TracerMin(ICell, K) = TracerCur(ICell, K); + TracerMax(ICell, K) = TracerCur(ICell, K); + } + for (I4 I = 0; I < NEdgesOnCell(ICell); ++I) { + const I4 ICell2 = CellsOnCell(ICell, I); + const I4 KMin = MinLayerCell(ICell2); + const I4 KMax = MaxLayerCell(ICell2); + const I4 KRange = vertRangeChunked(KMin, KMax); + for (I4 KChunk = 0; KChunk < KRange; ++KChunk) { + const I4 KStart1 = Kokkos::max(KStart, KChunk * VecLength); + const I4 KEnd1 = Kokkos::min(KEnd, KStart1 + VecLength); + for (I4 K = KStart1; K < KEnd1; ++K) { + TracerMax(ICell, K) = + Kokkos::max(TracerMax(ICell, K), TracerCur(ICell2, K)); + TracerMin(ICell, K) = + Kokkos::min(TracerMin(ICell, K), TracerCur(ICell2, K)); + } + } + } + } + + KOKKOS_FUNCTION void FCTHighAndLowOrderFlux( + const I4 IEdge, const I4 KChunk, const Array1DI4 &MinLayerCell, + const Array1DI4 &MaxLayerCell, const Array2DReal &FluxPseudoThickEdge, + const Array2DReal &NormVelEdge) const { + const Real Coef3rdOrder = 0.25; + + const I4 ICell1 = CellsOnEdge(IEdge, 0); + const I4 ICell2 = CellsOnEdge(IEdge, 1); + + const I4 KStart = KChunk * VecLength; + const I4 KEnd = KStart + VecLength; + + // compute some common intermediate factors + for (I4 K = KStart; K < KEnd; ++K) + HighOrderFlx(IEdge, K) = 0.0_Real; + + // Compute 3rd or 4th fluxes where requested. + for (int I = 0; I < NAdvCellsForEdge(IEdge); ++I) { + const I4 ICell = AdvCellsForEdge(IEdge, I); + const Real Coef1 = AdvCoefs(I, IEdge); + const Real Coef3 = AdvCoefs3rd(I, IEdge) * Coef3rdOrder; + const I4 KStartCell = MinLayerCell(ICell); + const I4 KLenCell = MaxLayerCell(ICell); + const I4 KEndCell = KStartCell + KLenCell; + for (I4 K = KStartCell; K <= KEndCell; ++K) { + const Real NormalThicknessFlux = + FluxPseudoThickEdge(IEdge, K) * NormVelEdge(IEdge, K); + const Real TracerWgt = + NormalThicknessFlux * + (Coef1 + Coef3 * std::copysign(1.0_Real, NormalThicknessFlux)); + HighOrderFlx(IEdge, K) += + TracerWgt * TracerCur(ICell, K) * AdvMaskHighOrder(IEdge, K); + } + } + // Compute 2nd order fluxes where needed. + // Also compute low order upwind horizontal flux (monotonic) + // Remove low order flux from the high order flux + // Store left over high order flux in highOrderFlx array + for (I4 K = MinLayerEdgeBot(IEdge); K <= MaxLayerEdgeTop(IEdge); ++K) { + const Real NormalThicknessFlux = + FluxPseudoThickEdge(IEdge, K) * NormVelEdge(IEdge, K); + const Real TracerWeight = (1.0_Real - AdvMaskHighOrder(IEdge, K)) * + (DvEdge(IEdge) * 0.5_Real) * + NormalThicknessFlux; + + LowOrderFlx(IEdge, K) = + DvEdge(IEdge) * (Kokkos::max(0.0_Real, NormalThicknessFlux) * + TracerCur(ICell1, K) + + Kokkos::min(0.0_Real, NormalThicknessFlux) * + TracerCur(ICell2, K)); + + HighOrderFlx(IEdge, K) += + TracerWeight * (TracerCur(ICell1, K) + TracerCur(ICell2, K)); + HighOrderFlx(IEdge, K) -= LowOrderFlx(IEdge, K); + } + } + + KOKKOS_FUNCTION void FCTInitFluxInOut(const I4 ICell, + const I4 KChunk) const { + const I4 KStart = KChunk * VecLength; + const I4 KEnd = KStart + VecLength; + for (I4 K = KStart; K < KEnd; ++K) + WorkTend(ICell, K) = 0; + for (I4 K = KStart; K < KEnd; ++K) + FlxIn(ICell, K) = 0; + for (I4 K = KStart; K < KEnd; ++K) + FlxOut(ICell, K) = 0; + } + + KOKKOS_FUNCTION void FCTFluxInOut(const I4 ICell, const I4 KChunk, + const Real Dt, + const Array2DReal &LayerThickness) const { + const Real InvAreaCell = 1._Real / AreaCell(ICell); + const I4 KStartCell = chunkStart(KChunk, MinLayerCell(ICell)); + const I4 KLenCell = chunkLength(KChunk, KStartCell, MaxLayerCell(ICell)); + const I4 KEndCell = KStartCell + KLenCell - 1; + for (I4 K = KStartCell; K <= KEndCell; ++K) { + // Finish computing the low order horizontal fluxes + // Upwind fluxes are accumulated in workTend + for (I4 I = 0; I < NEdgesOnCell(ICell); ++I) { + const I4 IEdge = EdgesOnCell(ICell, I); + const Real SignedFactor = EdgeSignOnCell(ICell, I) * InvAreaCell; + for (I4 K = MinLayerEdgeBot(IEdge); K <= MaxLayerEdgeTop(IEdge); + ++K) { + // Here workTend is the advection tendency due to the + // upwind (low order) fluxes. + WorkTend(ICell, K) += SignedFactor * LowOrderFlx(IEdge, K); + + // Accumulate remaining high order fluxes + FlxOut(ICell, K) += + Kokkos::min(0.0_Real, SignedFactor * HighOrderFlx(IEdge, K)); + FlxIn(ICell, K) += + Kokkos::max(0.0_Real, SignedFactor * HighOrderFlx(IEdge, K)); + } + } + // Build the factors for the FCT + // Computed using the bounds that were computed previously, + // and the bounds on the newly updated value + // Factors are placed in the flxIn and flxOut arrays + for (I4 K = MinLayerCell(ICell); K <= MaxLayerCell(ICell); ++K) { + // Here workTend is the upwind tendency + const Real TracerUpwindNew = + (TracerCur(ICell, K) * LayerThickness(ICell, K) + + Dt * WorkTend(ICell, K)) * + HProvInv(ICell, K); + const Real TracerMinNew = + TracerUpwindNew + Dt * FlxOut(ICell, K) * HProvInv(ICell, K); + const Real TracerMaxNew = + TracerUpwindNew + Dt * FlxIn(ICell, K) * HProvInv(ICell, K); + const Real ScaleFactorIn = (TracerMax(ICell, K) - TracerUpwindNew) / + (TracerMaxNew - TracerUpwindNew + Eps); + FlxIn(ICell, K) = + Kokkos::min(1.0_Real, Kokkos::max(0.0_Real, ScaleFactorIn)); + const Real ScaleFactorOut = + (TracerUpwindNew - TracerMin(ICell, K)) / + (TracerUpwindNew - TracerMinNew + Eps); + FlxOut(ICell, K) = + Kokkos::min(1.0_Real, Kokkos::max(0.0_Real, ScaleFactorOut)); + } + } + } + + KOKKOS_FUNCTION void FCTRescaleHighOrderFlux(const I4 IEdge, + const I4 KChunk) const { + const I4 ICell1 = CellsOnEdge(IEdge, 0); + const I4 ICell2 = CellsOnEdge(IEdge, 1); + const I4 KStart = KChunk * VecLength; + const I4 KEnd = KStart + VecLength; + for (I4 K = KStart; K < KEnd; ++K) { + HighOrderFlx(IEdge, K) = + Kokkos::max(0.0_Real, HighOrderFlx(IEdge, K)) * + Kokkos::min(FlxOut(ICell1, K), FlxIn(ICell2, K)) + + Kokkos::min(0.0_Real, HighOrderFlx(IEdge, K)) * + Kokkos::min(FlxIn(ICell1, K), FlxOut(ICell2, K)); + } + } + + KOKKOS_FUNCTION void + FCTAccumulateHighOrderFlux(const I4 L, const I4 ICell, const I4 KChunk, + const Real Dt, const Array3DReal &TracerArray, + const Array2DReal &LayerThickness) const { + + // Accumulate the scaled high order vertical tendencies + // and the upwind tendencies + const Real InvAreaCell1 = 1.0_Real / AreaCell(ICell); + const I4 KStart = KChunk * VecLength; + const I4 KEnd = KStart + VecLength; + + // Accumulate the scaled high order horizontal tendencies + for (I4 I = 0; I < NEdgesOnCell(ICell); ++I) { + const I4 IEdge = EdgesOnCell(ICell, I); + const Real SignedFactor = InvAreaCell1 * EdgeSignOnCell(ICell, I); + for (I4 K = MinLayerEdgeBot(IEdge); K <= MaxLayerEdgeTop(IEdge); ++K) { + // WorkTend on RHS is upwind tendency + // WorkTend on LHS is total horiz advect tendency + WorkTend(ICell, K) += SignedFactor * HighOrderFlx(IEdge, K); + } + } + for (I4 K = KStart; K < KEnd; ++K) { + // workTend on RHS is total horiz advection tendency + // TracerCur on LHS is provisional tracer after + // horizontal fluxes only. + TracerCur(ICell, K) = (TracerCur(ICell, K) * LayerThickness(ICell, K) + + Dt * WorkTend(ICell, K)) * + HProvInv(ICell, K); + TracerArray(L, ICell, K) += WorkTend(ICell, K); + } + } + + KOKKOS_FUNCTION void + FCTComputeBudgetAdvectionEdgeFlux(const I4 L, const I4 IEdge, + const I4 KChunk) const { + // Save u*h*T flux on edge for analysis. This variable will be + // divided by h at the end of the time step. + const I4 KStart = KChunk * VecLength; + const I4 KEnd = KStart + VecLength; + for (I4 K = KStart; K < KEnd; ++K) { + ActiveTracerHorizontalAdvectionEdgeFlux(L, IEdge, K) = + (LowOrderFlx(IEdge, K) + HighOrderFlx(IEdge, K)) / DvEdge(IEdge); + } + } + + KOKKOS_FUNCTION void + FCTComputeBudgetAdvectionTendency(const I4 L, const I4 ICell, + const I4 KChunk) const { + const I4 KStart = KChunk * VecLength; + const I4 KEnd = KStart + VecLength; + for (I4 K = KStart; K < KEnd; ++K) { + ActiveTracerHorizontalAdvectionTendency(L, ICell, K) = + WorkTend(ICell, K); + } + } + + KOKKOS_FUNCTION void + FCTMonotonicityCheck(const I4 L, const I4 ICell, const I4 KChunk, + const Array3DReal &TracerArray) const { + // Check tracer values against local min,max to detect + // non-monotone values and write warning if found + + const I4 KStart = KChunk * VecLength; + const I4 KEnd = KStart + VecLength; + for (I4 K = KStart; K < KEnd; ++K) { + if (TracerArray(L, ICell, K) < TracerMin(ICell, K) - Eps) { + printf("Horizontal minimum out of bounds on tracer: %i %lg %lg\n", + L, TracerMin(ICell, K), TracerArray(L, ICell, K)); + } + if (TracerArray(L, ICell, K) > TracerMax(ICell, K) + Eps) { + printf("Horizontal maximum out of bounds on tracer: %i %lg %lg\n", + L, TracerMax(ICell, K), TracerArray(L, ICell, K)); + } + } + } + private: + const Real Eps = 1.e-10_Real; const HorzMesh *HorzontalMesh; const VertCoord *VerticalCoord; + const I4 NVertLayers; + Array1DI4 NAdvCellsForEdge; Array2DI4 AdvCellsForEdge; Array2DI4 AdvMaskHighOrder; + Array2DI4 CellsOnCell; Array2DReal AdvCoefs; Array2DReal AdvCoefs3rd; Array3DReal HighOrderFlxHorz; + Array2DReal TracerCur; Array1DI4 NEdgesOnCell; Array2DI4 EdgesOnCell; Array2DI4 CellsOnEdge; + Array1DI4 MinLayerEdgeBot; + Array1DI4 MaxLayerEdgeTop; Array2DReal EdgeSignOnCell; Array1DReal DvEdge; Array1DReal AreaCell; + Array2DReal VerticalPseudoVelocity; + Array2DReal HProvInv; + Array2DReal HNewInv; + Array2DReal HProv; + Array2DReal TracerMax; + Array2DReal TracerMin; + Array2DReal HighOrderFlx; + Array2DReal LowOrderFlx; + Array1DI4 MinLayerCell; + Array1DI4 MaxLayerCell; + Array2DReal WorkTend; + Array2DReal FlxIn; + Array2DReal FlxOut; + Array3DReal ActiveTracerHorizontalAdvectionEdgeFlux; + Array3DReal ActiveTracerHorizontalAdvectionTendency; }; // Tracer horizontal diffusion term diff --git a/components/omega/test/ocn/TendencyTermsTest.cpp b/components/omega/test/ocn/TendencyTermsTest.cpp index 1dac68633182..a0cc2071eb11 100644 --- a/components/omega/test/ocn/TendencyTermsTest.cpp +++ b/components/omega/test/ocn/TendencyTermsTest.cpp @@ -1111,7 +1111,12 @@ int testTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { // Compute numerical result Array3DReal NumTrFluxDiv("NumTrFluxDiv", NTracers, Mesh->NCellsOwned, NVertLayers); - TracerHorzAdvOnCell TrHorzAdvOnC(Mesh, VCoord); + + VertAdv::init(); + const auto VAdv = VertAdv::getDefault(); + VertAdv::clear(); + + TracerHorzAdvOnCell TrHorzAdvOnC(Mesh, VCoord, VAdv); TrHorzAdvOnC.ForceLowOrder = true; TrHorzAdvOnC.init(); From 25c55dc0690b57dc107785271563f0f966f2c53a Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Fri, 26 Jun 2026 12:53:16 -0600 Subject: [PATCH 02/60] Update user guide --- components/omega/doc/userGuide/TendencyTerms.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/components/omega/doc/userGuide/TendencyTerms.md b/components/omega/doc/userGuide/TendencyTerms.md index 3db2b4c10098..1ce4d8fa1558 100644 --- a/components/omega/doc/userGuide/TendencyTerms.md +++ b/components/omega/doc/userGuide/TendencyTerms.md @@ -48,6 +48,9 @@ the currently available tendency terms: | | HorzTracerFluxOrder | 1 for standard linear advection | TracerHighOrderHorzAdvOnCell | TracerHorzAdvTendencyEnable | enable/disable term | | HorzTracerFluxOrder | 2 for second order advection algorithm +| | HorzTracerFluxLimiterEnable | enable montonic flux corrected transport (FCT) +| | HorzTracerFluxLimiterBudgetsEnable | enable budgets if FCT is enabled +| | HorzTracerFluxLimiterMonotonicityCheckEnable | enable check for monononic if FCT is enabled | TracerDiffOnCell | TracerDiffTendencyEnable | enable/disable term | | EddyDiff2 | horizontal diffusion coefficient | TracerHyperDiffOnCell | TracerHyperDiffTendencyEnable | enable/disable term From 4ef8465708845ea0f6bb7fa242465a0018050043 Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Tue, 30 Jun 2026 13:42:30 -0600 Subject: [PATCH 03/60] Add dumping of budget fields to output database. --- components/omega/configs/Default.yml | 3 + .../omega/doc/userGuide/TendencyTerms.md | 57 +++++++++++++++--- ...rder_tracer_convergence_on_sphere_FCT.jpeg | Bin 0 -> 399978 bytes components/omega/src/ocn/TendencyTerms.cpp | 34 +++++++++++ components/omega/src/ocn/TendencyTerms.h | 8 +++ 5 files changed, 95 insertions(+), 7 deletions(-) create mode 100644 components/omega/doc/userGuide/images/higher_order_tracer_convergence_on_sphere_FCT.jpeg diff --git a/components/omega/configs/Default.yml b/components/omega/configs/Default.yml index 9f589f9466cf..b19536e27664 100644 --- a/components/omega/configs/Default.yml +++ b/components/omega/configs/Default.yml @@ -32,6 +32,9 @@ Omega: FluxThicknessType: Center HorzTracerFluxOrder: 2 VerticalTracerFluxLimiterEnable: true + HorzTracerFluxLimiterEnable: false + HorzTracerFluxLimiterBudgetsEnable: false + HorzTracerFluxLimiterMonotonicityCheckEnable: false VerticalTracerFluxOrder: 3 SfcStress: InterpType: Isotropic diff --git a/components/omega/doc/userGuide/TendencyTerms.md b/components/omega/doc/userGuide/TendencyTerms.md index 1ce4d8fa1558..8b7438700ada 100644 --- a/components/omega/doc/userGuide/TendencyTerms.md +++ b/components/omega/doc/userGuide/TendencyTerms.md @@ -45,12 +45,12 @@ the currently available tendency terms: | | ViscDel4 | horizontal biharmonic mixing coefficient for normal velocity | | DivFactor | scale factor for the divergence term | TracerHorzAdvOnCell | TracerHorzAdvTendencyEnable | enable/disable term -| | HorzTracerFluxOrder | 1 for standard linear advection +| | HorzTracerFluxOrder | 2 for standard linear advection | TracerHighOrderHorzAdvOnCell | TracerHorzAdvTendencyEnable | enable/disable term -| | HorzTracerFluxOrder | 2 for second order advection algorithm -| | HorzTracerFluxLimiterEnable | enable montonic flux corrected transport (FCT) -| | HorzTracerFluxLimiterBudgetsEnable | enable budgets if FCT is enabled -| | HorzTracerFluxLimiterMonotonicityCheckEnable | enable check for monononic if FCT is enabled +| | HorzTracerFluxOrder | 3 for second order advection algorithm +| | HorzTracerFluxLimiterEnable | enable/disable monotonic flux corrected transport (FCT) +| | HorzTracerFluxLimiterBudgetsEnable | enable/disable budgets if FCT is enabled +| | HorzTracerFluxLimiterMonotonicityCheckEnable | enable/disable check for mon-mononic values if FCT is enabled | TracerDiffOnCell | TracerDiffTendencyEnable | enable/disable term | | EddyDiff2 | horizontal diffusion coefficient | TracerHyperDiffOnCell | TracerHyperDiffTendencyEnable | enable/disable term @@ -97,13 +97,13 @@ $$ $$ Where $u$ is $\mathbf{V}\cdot\mathbf{n}$ where $\mathbf{n}$ is the unit normal along the edge being evaluated and $F$ is the evaluation of $\psi$ for the elements on each side of the edge being evaluated. -This is used when the TracerHorzAdvOnCell user option is active and HorzTracerFluxOrder is 1. +This is used when the TracerHorzAdvOnCell user option is active and HorzTracerFluxOrder is 2. To make the comparison to higher order methods explicit, this first order method is equivalent to defining $\psi$ as a linear function, $\psi = c_0 + c_x x + c_y y$, between the two elements sharing the edge $i$ and taking the directed derivative along the edge. For higher order flux calculations, higher order derivatives of $\psi$ are needed and for the user option of -TracerHorzAdvOnCell along with HorzTracerFluxOrder set to 2, a quadratic approximation of $\psi$ is used, +TracerHorzAdvOnCell along with HorzTracerFluxOrder set to 3, a quadratic approximation of $\psi$ is used, $$ \psi = c_0 + c_x x + c_y y + c_{xx} x^2 + c_{xy} xy + c_{yy} y^2, $$ @@ -143,6 +143,49 @@ is about order 1.7 as shown in {numref}`tracer-higher-order-convergence`: Tracer higer order convergence example of a cosine bell advected on a sphere showing an order 1.71 convergence rate ``` +### Monotonic Flux Limiting Transport for Second Order Horizontal Advection + +It is well known that higher order (order 2 and above) scheme for numerically integrating fluxes suffer +from dispersive "ripples" in the results particularly near steep gradients. Lower order schemes +produce no ripples but suffer from excessive numerical diffusion. Flux-corrected transport (FCT) is a +technique which embodies the best of both schemes. + +The implementation of a monotonic flux-corrected transport (FCT) in Omega follows a standard algorithm as given in + +Zalesak, S. T. (1979). Fully multidimensional flux-corrected transport algorithms for fluids. +Journal of Computational Physics, 31(3), 335–362. DOI: 10.1016/0021-9991(79)90051-2 + +The procedure is as follows given the notation above: +1. Compute $F^L_{i+1/2}(u\psi)$, the transportive flux by some low order scheme guarenteed to give +monotonic (ripple-free) results. +2. Compute $F^H_{i+1/2}(u\psi)$, the transportative flux by some high order scheme. +3. Define the "antififfusive flux": +$$ +A_{i+1/2}(u\psi) = F^H_{i+1/2}(u\psi) - F^L_{i+1/2}(u\psi) +$$ +4. Compute the updated low order ("transported and diffused") "td" solution: +$$ + w^{td}_i = w^n_i - \frac{1}{\Delta x}[F_{i+1/2}(u\psi) - F_{i-1/2}(u\psi)] +$$ +5. Limit he $A_{i+1/2}(u\psi)$ in a manner such that $w^{n+1}$ as computed below is free of extrema +not found in $w^{td}$ = $w^n$; +$$ +A^C_{i+1/2}(u\psi) = C_{i+1/2}(u\psi) A_{i+1/2}(u\psi), \quad \quad 0 \leq C_{i+1/2} \leq 1 +$$ +6. Finally apply hte limited antidiffusive fluxes: +$$ + w^{n+1}_i = w^{td}_i - \frac{1}{\Delta x}[A^C_{i+1/2}(u\psi) - A^C_{i-1/2}(u\psi)] +$$ + + +```{figure} images/higher_order_tracer_convergence_on_sphere_FCT.jpeg +:name: tracer-higher-order-convergence_FCT +:align: center +:width: 600 px +Tracer higer order convergence example of a cosine bell advected on a sphere with FCT showing an order 2.23 convergence rate +``` + + ## See Also Additional information on forcing (currently wind forcing and surface tracer diff --git a/components/omega/doc/userGuide/images/higher_order_tracer_convergence_on_sphere_FCT.jpeg b/components/omega/doc/userGuide/images/higher_order_tracer_convergence_on_sphere_FCT.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4f55571646108f11a4bf3713a59a7fa0da93053d GIT binary patch literal 399978 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⩔n*XInNAEirt{2g| zVSaU1N+9W1SApSYX~6!}XRDtL6kiQZmF+jV?Cv>sZt&%{$4Wv^QRBmR4p`ks7suCu zUbhO~{6S5KMeyg?9V+?e+lJW(Z4}~BgdQxfk#bNZUX?n%wnxKB_kp6ZlCy`;P1g;T z*gqM>alwBvh$Z}mF9mw*@|bpMEmAe<^+a9-kO9v~cZLC zq9ythi6sYO11gsprtFv$9^}yg9T+d}pHQnuHHg{``T#$|%nQf-22MW^-N0*b+lk01DKf)6ylvvcQ!bzVZ`3~KyyF+a&R8(os9E(^!x-vnB!Ls} z+`HvGy)3$TYN_gE$KkUU-q$l61opPp>nHSun{Ye|;UF#K15Ydisx6?D5odOc3pzCZ zLTxCP`Gtz6@EbHIwb^uU)75+N;=R&6a^ZccBMR)Pm!|jbmOp73L}B`RsXVj$m`2EF z0!JB~&eVlF%^0P3ecstFnpMP2Y|ig!*&y0&hKV}3q2hrtD#otd4h9W(#{!!)?hv$q z6G5bT-}fhOgrgc`AY4!0k6zLxR|C>hep7`9rizN(WE|w?4IgYq_|=&P=H4D;F_~s* z*J@4Yv1t{5xgFU4&Y;oqd zlwBNpvnL*N-P2#=zMZYSaLBQ1XjSV6Edi-x76%pxT*=+;14VReV^A ztP4B!$C&Jy@);*Noi)3qgn~op9{^==vDi;3D<9cq1Tm!TlcVPc&oM`gWmQmzyuQRE znYR+7>J4#*jZpcIaJ+U}kY@cYD3rC!P5ed1luq~gq2ZdB3L#%N^2%OK4?Aluc4%@V zlz?VQ|42VKjiFy4hGY|7_74Vy)6OpKH+_YDj0wFIQBGQ3P22F`&ULdX3y{rzjA6-* zFt=UB7A3R9HWKy)?eF%~BE?86>9MAzXJb72=laW@9U9-iiT0w?Ht~vbE+G=CeS|I6 zh~kMuw2+SstO(BclIu9XOu)6>=HA;1E3a4aKCtxQ1(KVWt1yW0=PeI|yo8LN;1!vEOFC)EuIJUkjs|7<{ z9vqKH_>AejZPxE$Pmhz_`=JtTX%r2jb_fq)55wRD*{C>xVBpNpUb%!VL0%4Ra^u(I zZ9ZSHuY(QnV99tWmV3VTQDq;)!N78b%4&V2oM2~_s9fK34n8dA%TknnkGQx^VMkY4 zw$g4HJ;JaAERC9*9*YNo^w}*pnLCggiX`Uh>`tumDSG_9WsBK^oyKoANqOq6f6=;J z{h{06BKG7#!B5=cF?W2wumuUg@vm+Fs_dwXYzk!1ir+`1Uh483GF~ff&vR!SXlCa4 z9zuUJ{e6~3jG<$S=Xoci22x5Zg9S4x3fe4g_|Z0t`uKFz6L0-O`E?FyuK3WcW+IuI zK@uy@u)pZBbQpcCxaX3qW3{hC6W7DNbBpE`c7_%O$`7$)46qK%yJzr6z_4htU-$`H z9&vDDoutQzzMVX6X*+a|ux)@D{-@$8o;6^jYbVKtCJ}VfN;iC)X&>bD+4JF8UZi2t z8|MqW{_3bk^z(1fmfDH6ZsA_`lv8lgn2d(-aqHO|S%*o%KE~4} zF(P&26|JU+aqEvr)CffQ(E!Pl1ya}WWgX0w$_j>OUuZ$FOHa2jb*Fd79Zb?Zyv=*& zA+2-73gN4#$5ZFyJVlxHNfj{_2+4c*d=$=6TH?cki_?@=f+>G!t(`W~zKj55#7)?N z_kpd(HDCbA-EtvE`oR6uyb4V32(LV~c`o5Q)88HTn~9Wv(F|?EO>;5>pjuliYz$Ex zLx0(if!QdiEKCg99bTfl}O9W-D1%7!2=q*l(|>xBDc@`W)K(5`V2iIvgD@$gY72W4ryR^vef}I*R1sy zN*4ng4j?BNsU&vfDskPukAq>ylHSf#oy4NSjKAwL)2zRqhV|mrPw5=RiJCiNH)@;{QQ+FHH>KVn%z43 zpT6|(cj@7V&A%zoxWqpEE-unau6lK+$~TU>AL|6Mfm4TM)yen$1$UovBQ@L@K7{#* z2@41quw6~y&3&$yIu;#`3oeh*RgtrDzTny!p|R9r`Tg#$)fnP}@c1FQ&({Zjp%zYQ zb*?i24(uAswhxSYm4LLoBMnW+iUt8ZcKj{Am9lxM>CA&`Uiqd>hBc4>ACa{G0k84= zH`@3@sa7Bh1kf6+3U~?`2bWNn2_$}pFH6>hjbP&&|L-0_*TG(0i zlIpl@n((NZ!l_E;R33WFu3jSok}}|b%i0SUy&Qy->r?s!J)umGfGK~R?-u{_3J=6C zQ4(sUWV?963C)z!A2XHATP(#=c!;?xsJg8&MRw%0cTs`EvxE0LANqUITtloeA;-Al zpSYSS|Exe1plkn~mJ7@+|J`m2D4u24W7={`#!4>x^FJy+FwXj?S>%6j9qT`>+RNV> z1N-lieE;%u$U!o7d4A1=T<^`?m4sc#^-Zt+jxJh26Wa0sWaUfT$1H^(M_&C+Zv$SM zz20xtg1@OGWED75JU0NfSn>nddCoflMJYp@1vqoH6~u)U(jCl-?0ewb$)teGy8Qfo z*_!Mo%z~~5d3g+5Gy=HL0XdUK}(-Kv12>_+}9f=(=8}#CJ{69;2Ldp zn01fRG~tRrjRGkJWXG{1TUIWyA9@>T;F!nZffMwjg#FdGbXo!7vwYds)6Yg!sFU7BDJXj`@~C%>JaC(i7P>-qEM0FTzy4q~v1cvAhdguS#-^ohcFPU`Q%3^s7bsH4F^!>GWz5w@ zy72hDr1jj)bWe8rOI#^OSZ0>Xxy)tTwe%#NjaR}7PvslCxC9_oWNMqnNPRP5PY(jb zIt&d0-&nkHua+*d5{EDC^!eWL)x7^J!qpMba3zKJ6gMjHam9NQkgQ(;=-?NMm*vXH zrpC|A)1p6W;LlT^33{LI@82n~a($ZnqkZFcuGv8GLbFr(hqqq4RBHqhSKL+UwRN>bgJ)P3awg=xhBo~|yQG_Z7HF$-vR zCNxc{L$8bHVkdWDzk{jgHpgG1mxVzd#25;PfAE{xWuP>@4Q|M#FjIq`Squ!siyzgU169#tsE6%R%OTARdp`yOPXrlSp)jjPlo zo@h5v#6;Xeih(v6tWq`;`Z8B(?jqIpYSeK48vBb|%h2u)zCh_BlB65N+;^uW2fh1c* z;e*JOj;PMKbB4W2cn@cMvQNW1SJnFC9h64wB-l;d351$kKW35vq@S-~rxCUfmc&OQ zx?k&al}_(6SL~VfZq_`GIw?rXg8*ykasv1Fig}H;We}0VR7cpe)75>aQ$?E z>-X2MgEDyxye|tmgemT1UWBfUrIYFZ05CQjJs0YHcU@u_hHv?4U?}4mcMFG$a zYs}Xy!@#z2-DIa}$w_kuXIlwWmz4PURH!jLgl=>mD^reQ6Z3FQgw6E%1~kvluNxS* z3%^e3O*~(}JzL2h%AK=rRzP1d*~Y%g$x?+}I-~k28!#Tka7b3e{2X3ttV+i5L7bVR z-hygqOz;k<;ut0BsJh(e=ZC+yp6frFs`<$E(gT}tV=fV}zl2F6fYYWA1eyeymxGuq zmT;IX(SsiTR=p~>0hq0nU}T|ZD%dl1H1VXKIFO_yE%kyU!WE+Cq;6tYVJ>^}uLLnV za;5S1uw`cLYY*EqznLo758BjQASJ=hhf;S=%;xEJ0H5~nyn-7qO#>7Ox8 zPkt`EDo8j4)q-I2!jl7-8H)kTbFnqBp*LoNH5Ky{4QM?hBMszY^@pFT#q#3}dFr}4 z_*&!>TsoWs&a67!l(zs?Lr(*~&9)PsK(%Rs*Uy3deS z^k8zGrG+Cq*=Q5~M%n$UvT(fB+p9$fqz3(;oqg&%DLlBTGmqyMGNSJ9sJDt3X4)#3 zUWXLh3BZB7fVpG=s&7|WTNcOAGucv6>NvYXiIj~E%^vkR=k}&{6+wIk_Z1S}H~46y ze)~MqcNx9rum<=VkLUrBc_&Nz5u@%BNZ@AN^=iLv{_?ZT7VUQ?>6LrMkdkFYP+I3L zBYNdDyo$@U-$4m82&PXvnkQU2BG*rRH+3eQqr1Z3jA?7?I5&9^v~=MIm-T`-f}a=J z&p`Rb{jXeArM({lGe(Y~qYd`BpgnrM_lk{fe$nZ!>YDb%MNI!(q*xz{Q2eJBWarmQ zNv|iR9h=_gjUID#b(gU;Y?xDwQt5JiI(py6n%i6%Wp@|pfJ&NYhM101sR{$o6|Cgc zSKVH`YIb$lTdezOsaa9vz^fOp;;tLKEp66v`EX+DVeH6V6zAk0cy^zWgvW>%7=9A# z#gAGnbIUwtspJjk0EXI(UQ;0!2eLyy?E8gE_vZsaVDQfXnDu?l$Z_Ra5Hq|uF91!B z9wv9y{d+|2{{v--n*MSM&1Wsk%t57oI64*|%V=vrixReYRA3|V8{OFX>fJ%N#wy>-TIBAg)}*~OU!1;A8>g8^3G~}K3v5-MEGP^a1||m z&4s}evC0)~9a&Z`SK3No01R+p-^`&j;hqZB4nz)bOGh_4Dl;8w_3i~8PrI3Ld+60~ z0nvzomot{P{?Et^iLGr1>lp*~yz1{VCL8ZfT3Fd)%nT$wTsz^Oy0=Gc`)AJpc0)oz z>30+~5mS4IYi3`;C^mP=nrDp-2d{*Hk9L5qpI@y|1m9$yoLWS>(1pV%lPU-$ULEb3 zHO(GMn$>G+E}W7@?=`M9TnjN?Jb-`*`$Zxsc$f(Wci#oulEpBt!s5m`ulb0>dS~HK zn_eYo%`MQwJgCE%Z`|+n#V4acWiDgPN-)T`$q8LWCq^$ZJ?)P7y$r@x>VHfM4!-ZQ z(dnS#b(`+H+aKTMx{iatvjM;xikHVr!I_jYUDoF8#xe{aL2)W()wC{Q^jR=};>jOz zt${l(o!=K;{GQ^zGvK?Dj2X|0`!NWOp`Rqf2fy=UBGL3l4E=nkKnwlMSoOo*gDrVZ z4pm7H{WUl&zj(Jl{J6Ky+P=GXkG#@u;blgq$1Sh2Owgf8yTL9X@W$&dEB;8uq=VcO zey&RU^S6cYa`_&Tc=JzC@A&uDHvZGfsQr`ri=eDqBO1+#@Z)cFU8IwmF+7v0T0OH~ z8^7q>nj>0Af&yoBfJl38|#TW_8=F`jbLrg{&0uc*M6#ws=B@!GH`kY9&GM{k&0SnV-M_aC3p;xDv zE5B8qVO!qD(dLD(%8PcX;djw2WNvF(^s0{)7ZnvpUMedq3p;GO^;8<){iqG^-f$d3 z30QMi{l06nE=&GA{m3|`2{SlOa~-JD*fedlJKmUK+5RAy@Chr%GN+E5Q@T8S)^4Y#{wJQq6^RWNr-wQ$ zj#@(Hj`%hPX+@PC54kJMGmY`8^yJtKLgDl+?Tn@LQJ0jR{zlZ$L+I}gR8WMritvlk z)D6{2*hlK*RT4}Do3dW2`RKkE_qEUZmS*=15B&bnJcwFIlwuiT!u?3n?(!SUDvrn& z2DzC>@rPvP4b548Dj=?;`&}9Y7}Xg2JAY9Lax%xrVxxxN-!d_iA_fsk=i6_(5JN`3 zn55G;RCGq5>Bd-CkyKY@VrW-KDWcr_k)j|4m3UI@4w*6~I`xPRz>FV3K0^7rv$Npq z+rt#!ES4aBg*5KzY*VF)Bkb(^_BbbZ;>lcMF#E7)tK_%$8&lj54(5G9FFyoh1sLe6 z1PQ2i2jtR*z4KML!qK~-BB%Zg!{meW!iaU>`NOoW-!eYzHYm4F$(o>1*U zBOM0^aI&sOB3ptehu`l%hrNvBO+2??Fs=X5>^zTS;Ye$%sfj{0oj$;l1(E-a+4Rh0 z`GgD>p?@N32Vd?@+@;`Moc#{bfbKqb4#Y^Dg++qg>Qgm(T)Pa;gC2rOTVl*T14TRe z<5v=D&%jY@xYJ-@ZV_ry+S{BwexW$4(W9T5)fR)?P6jA{DS5BO!QzK%xiHjnh;D-( zo=5mP>B%dB>~y0&PC?IVQx$Gs_0YRkL3pv@q`F`9$df|4ee<>vE#Q2q#?01!{771Q zOL|g`CNz)>lIyG_hFFJT8+vptL23YC(!Ik!Z=JmB?0S;Mp)K_OGvK^6ON`Y8O390c3)n>p?N=}{1*n0iVxrr!~;RK2T z>S@9~-)+|CrF?#&e!Qi6-^Z3Vv$p82L_f5n`~Qdprs+6+QF4!hU$WJQqe@%0(vPQE z@KZ$-(@m(HA^Wg%flizZ(8CV!Iy`Rk8fY_*uPK)Ead^XqV|#>T5wP3yDzY&L&e!)f0(=5?s{ z6yyz(fPwdCGT7M$fzVhm?)<9z@Qz}4_so%2K%dxme&n5rYwfU-tGn3&H5~h-KL*y- zKsIG$dzji(z#Ct^&I$AkU$hPZ2zcPY++)JqdotbW6&Fv=gI$6Z5_3qPWSGT!FHkqdhk2(LLD~@Zb-i&l$iw0)a zQ|>_=cpe&sYfsK)-TFg4v&G#$7e^=7$Zm0lOx^0yp^@_Ow81c$DDvo=Hs)OWvaEL-#|21O`Hqlp^zSpPSbJyCbp~v*N^O&{)`z{FA z2`jtJ%9mDrklzk;a`kIhWyY_yWqF8qw$8`)g>;*}=Xg}?^O9Pa3XR%Ul$f}QviVYw4U*|BDK?h`hHeL6DnB%dm&pAllFpU&njS=>voDNWQx2??o2!k3uxNDKOZvG?ZjP{04)I1yPV zd)6sS6jJt(NfMHzvSk@UmI>KHWMs|0g;E(MsVo!OmznI9?E5|l*=LF|nVI+JclEu` zIrll=``q`rzvsI=&iOs=f5OBp@Aq}RuGjKhn8PmX_z<1v+@f`klpe@qM8Eu=Z7Jk% z{qa=Z?Slmyw>iu108#Z&uFATatzs*IVujX8TLkD5U5k>Dl zz^VTJliCuV2jUEqpmffK(0E9pExCwiZ>nsFYn;ivA%xgax89M?UC{{v;R)0&&CZQTM{+oP zI80{F=8&UV;df){#LfNdImW-2dF8elFB}UOMK|LC(|R_p{;U54)Eh2Xf4$3l$kNMLSu3pO+Qp*0c2fp)wogau zWDvv-*4chFl8Xd0rD!2lB+L@ml%|G{EBQJqxN$W2ZVXkL>X;Fg{`2HG*%ZQ$c z_k@q-Kx{kn0NXtr&fQ47P(F_onOe&h6nT(jua=Z8cv2zbd`d5yvcBXmzvwit&vpmR zwgrfzbI6ZMzE`73=M1Rvg+`v+=jgQtO|;t|Cp&^~TUpAx=Dz6AKOl zifYH4;#20+tJg ze=|bP=U#e;Tp^2;KB~V9{FT*z9y6BA(l2vLyA%v3X4k22 zKF`r_NZNZfc34~Q91-(-0A-n!Y!`B9- z?n34c6PGm%RZoZ?3gt<^k@c&oG`trhf_9s}j1&s**?U%>{p|9u%Fpk6&aPjJ$w^tO z*6VXCy$2=+h)GzpghnlrD|iz@xvA$@^}XZY`_tirOB_%;bDW zEMH7ZI{@i#s=_FW8Z?o`GTp+tC(`s6co#~Ml7iwAy6qjy?Tjxv;{k6^BeX)QFL!54 zI5XhC3t9XhWH0k!UwbJ>dualb+1cVE0d>ODz6f z*~$Mo;rb`Bd)OcUWnFgv(Or%|pOXK*etzrk>=t|~koWVB*a!#3(B$VpFo$8)gUM%6 zsaQm5pz0MC^@@r5mgH9qU%9Qt{176`qwP7>UW=>bq`2W=I*c;vZ|Y)YU&hE`zfKk9E zVHkFd8sXFn9)7ddnHA!f#Z=ylw-Pf*L*f3fO+F=Y*>^W<$Ox`l0m1isgJ#S`}3m*#+Ro+7MSJ9rFhRN{P3dY8Kuql1t;H zjJqMoNkaAJq4r1jcDQ#ktT%|{%$(&7%Y5;+51mqC5wKPD1V{|;ilAs}lLx_Pbq%xo zK#v8PA0Ed!RFbQp|2j;ss^(`N%H@bhv9gnlSX_R-a4edV5rmI9#pzIKT znoz2UR&847ghrLpbAW2P{dr(%B0wjsEIKJF?MsLy^T7j>5oaX+4&EdGH@ohyWEK9` zHGcVrEB7b-i%#d?>)iPB=RKZ0^27<0Xz(k=n5(C0d&8@8Oj4Ko6$0v9vio?J7*1aH zO}*GT#F|jLC0$z~uOLl)CI;(d{h>ArxX^h|=H(lnwheBT-Z&5K^R-!~g9_o4w94TCr)|WGRe2B@MWD|T@Cy7f$h5|$212Aai#kF-FhtT@GLxF7xbms4vg*>c5)u82mWz? zFa*28>>eQfY>+mdmg%b^0iS)Dzet>xa{Tn=-oXoctV34&N$@$qw2@yyjytFi4lKJ% z9*gTzJ-=%xmRfXpmjx%%M7c)QgStljP#D%Nc$4U52$%nCLJ^~3L z8-uVqqCfdP#h+wR(7%PG3f=H|G(PoyVq=B>84Dl)M9d8Di2q#*l(12%WjGiDeL!wB z5i@=gf;LR%IADi@{eCJOZZw;j?22R_`FYI7@rj;hhO8As`ZHb_$)Dr{v6+KTfivi8 zghP^^m?{{JXRU27u3ahW=OrJt-hG}2d`@KWuPu*vzPFFL!chN#$6k_n&G8muW|*Im z0-B7>pwk@{^Sj$kInGs8)EZyL+KNdGy*m|bX#GU5F3a$1z*;1a_ajG)lIP`oUgrr7 z_^cKb05C8ZqPNicZzPFueFJ5bSe`Sd(c$V-WiW3qsaQR_D;IQZNU<+J2w<3$PVqm# z%%S?=oYjKQM>IuImc~B{9f%|8UjjoFLY)NfP@^ls1HL{X+osJqV^_)cG2J_5Xvo<- zHXx@9mwee}=58SaI+))oHoOO2+51sxVqxy`a}u76A~|3d;2fS&yFz;bxSMedf++@? z!G)J1NJhny62f}(O+Ekc<^baJC^&EbV91JS1Vx^|50qvgi*P_)Qkr(&-`-7b{bBLDNMib@_XiF~GZQofMn1 zYgDfXn1o;gWPdaj9r(spwdTrW8(VMg5E|^_$jb;7#}U=8oKvmJo2-XqS$9g0FL~2s zUfC@cT;r4Y9!yK|G!;ExJ5b~|%B5g%=baw|;_@TLesjCL!g-Dj<((0etK@}4zUe#5 zg|_cWx;bdcmcon+n(VD_Y07d;Fa9}||F7`1Oay2jUOf5)NUdlf_rxrwM*mC<1e9F= z8&Jfr4-4@18sg+UG4pCRe7)4EPH5!IZ+`jfw;watTG3U=Q?`^{auWT~Cf_AW^6eQ} zV#Rx-&HhAHR3GCp(MN!Wc(~J5a|wUxxM*T%XsyJ^rdswf{^Ej&FJJCO!k9%Eek#Sn zg&~PB`@!&OLf1~V#TD18%x|@c^lv@BP~Vrlj;6~vaSDbivZ8S#hjtXhjJ0jOF{I#P zRB+4Wt`GSlt)CC-v8wL3OO3{R;^8#;5oe<8hRUmMrWC26mwG?t7W|LXGL(u9KS3+1 zjC)5694S8S65^!TbimXO9rIaVf-Ag#@46=zAXTd=)#UTH=M*@c`OCCLLb-tQn;g`S zA)ec!$feSFM(3*w{v=t>(&+Sd%|Sx8cO+aKiI~`wsX1re_P(5F^~xIsp37Zh&Gf;~ zM-&jC2Ki5Fi(p&fl;fZ%J;+Cv1Es|q4=ab0B=LttrFNM_ucD;N;OllqUrr{XSuB*K z4lymuD@W|R72qA_V|FuQoDVv6a$R4SzMgenAC%{t)I_8&mG*l11j4iY5+(OecKZi~ z!v@Nfou=6U+v8ifAz~mx>z(`w4x8-_`Sp>uE@{uZnbQq{WiG)_E#GSghMr^HedJ8j z%jaHA=o;7wwRbq0J$7=kne)^Qr!3q`uP4Kef8d(`*Om)^`u_i7Lh^s=71Ut_DH<&^ z+WoKkbdb)1FFa(e7wrgpZ&ypS1r8^y03+TWG;jD<3_rx-`GYb`Mh)M}P}t15^yI-U z^U0-OG7=9WoW?R8;)uoM&%_>ln2r?b))>XvHomb&WncC>6kXHJLk?%%E#A06+DgFh z!-<7CRh*<$f8waJFL%(7u1y`}imF9dd`$IZ*!lh~#eKy3vGU3N)?$&cb6mQ36=^Wj z+Bia$F&cFcc|^gsoXY5C+n;1Sd#tN{cIn*b={V25PQvbnJaKe^-`Jzj?tYww)YAL9 zBQCx7<6cG4XMBg)8TQ!!PgmeS`G4Gh372n_6h(Ce?WlT0mDM^c$#0pw3IaI;W$+4d zrW{p|nq{=J_qHLh`s<@)n%&Fhbl?>Zo8Mez6w6u38-UDn3~158D5qx$%b@5HDq08q zsr`rh<36S)-w0T^Tx)MGUD3bgBeZyGX?ZuB59HGdCoT`%5wyH@0P$`+Ae}iq?Mv(7 z6g?KaG@elO8y@8|20S%O=U5UKvg7Ef3%1rer79gF=U!=*mdyg8arLQ>Fk1QJlMK&e z)wPR%c@lRwej~h}gX+gA%)pKKll**enVyeut$eN+K=+(}{?znA%8-%U{U6q!SWdb5 zIgCFXXO3FB!w5w@vT8xTH>2@m{v<;9h$fFrz*NK~9v->6-)uwtc$nV1l?(*!LqnBx zqub#a-}+-GFL@Jg;Wqvu&Evnaoi+Mj*2nn2c{>YK!7z%JA-RQK3Y2!69cVTLpJ*h1 zBXZ83my6?E#uEB2g1w5VugK>+n_nJ0e=Mij#g~+c{Om>(FaLw#*eg;hJrRNf zKA|dhRTScU3H+(tX#iwa@$^2(u1l385aoYKv`4fTkVoivwD%Sa8b=Cli?c2uQ*YnC z9p;9$owT*3WL`;-yP2@(dj7mk%e!|G0%sW*A0St;pwVDSic1VXjBb|0?F%04%q?81 zDOq(mSf2L-f`aPmYO@}6eO8EhKDMi1j3xa59LI0FkTOue`8lsdSIWbW7DER>t3xh~ z4z}#N$$RKR1j73J|E8Kac7WM&p#Ln70rSCqhYd_SW!*bW{e&b0>WnAWOdH&%KRf3s zn*k{u_6@mwZj>RC#~{FQn7vZZn5)B>c4{vn_h(yfV9ZKI-4uI-31gbd-U!{IuKYuz zsP{`7-Io!NEHZZ0%LC?6VApZX?tKjiHWcB6a|ml{>0 z-Q21B+@0xe!dy;!(1=^t@P_c2(Nr+sNWP17k9QPOP8Uhzwq6k4$!Giix>&yK+u^9G zYyXSQ%-?m0`d8F#|2prH|JIv?sE}>_gCU+5ho8e!igp@*Mb3}=^3{G5N^*2Vv^Ci3 zJR2PexWc;B@r2Z{02nZ6q1bTkl^>{k$Gp;3&BeD;$*!6(X#FX2R$vzyp?j19pASz{ z!!ob(%(R_qVr)y#9Pguj2`|VS7Z_R1b$C)bW>Sa}Bu(GwX>dt!J}k{tL6?gV!?856yRRs2t&`@q4qJ2HS=Ev0f-S)h~N(s#jmrsZ=g*>C8TN_At}7#-*X{X&=*?kpR@gvh~dcx zt}oxe7`Zy?G4mc+!dm^>vvY?NZvgkiF1!0Ct;)t!{qWDE%MRAIU%{%n&N(jgD5PTL zs$Y1(&)d(RD(G}DqDz6G?_Uh5ILo>+4It$Ip>geB@jLMUje}J2zYA6PUwX>u|NeTF z|2j7OHQ)chB;&<(xx>5hTxy6Uv;@txDA=%NPb(znUfx@+$>u{k$2XmSYQwX5{Ce8< zGpEV_Ql}RIM+n52{9J66KNwVx7k>ZadZv*&D(X+Y&m|rH-+* zGl(zZz_N@y3)0|s2w~t`0cTb9nZS^<2i+vf+51x4o%mikz zA)H7tU8dl;R`R!bn}9P8lh&>h?=stqqP7)ut9HDz!2H_*K=c*1%iZ2m8s;q)o9)z^ zhXcO%Y*|>fP42{@JSW9g((dd*=n9>N-j!JmB;F~ zZ_4BjXB?ACzgZi5?%idH!_koflLGXSK1MsYHpIhO7{o)7y-LX>U9&AGF2_{{-KcC9+hS(pk%Q0NglmZI6NB%9dx(4tfMj)c>kd}n?+-jg^X)M z`sEOX_ixAHq=pDI3JAc{BosjoGffdKwGTEUhxO~|k?!pcKjB(TLKUtkbTxDM22#n( zl#i;Ws_scjmVdAn*IhN!(}y(t-l(?ZyX7Bg`kc>gLbd|+O)uIJpD40{jRjK0 zc&6aQIsNIA*WO%M!Fr^9TTpIfzd0erCtc{2tQg!DI{#L z3!m7rm-sR5GQ%B_%JK=aKBw=q>jg&S-b@2fUaaP zFC=cIKU$JM6hNK4J1x*%I>08G1q%#t{J1Bw0thBu=thK^SO-^=dRd2I(;org+*}nV+{L%X2-`r7?%2}I={)iaWwu!@{_o^pyp}q ztCR;Mj`kYm8GAdsO9P+Up9bs(mjub91w_7ZwZ-4WfT(ZS@QHLv7a660yZh&7*ZB`kR^xEf zR=C%i!wV|dd>ME)1)2)#9W;p%3cPPF@0}fd z5}E*fjE^40zBYzOHTsi8FEmX)T)eMuRv)cV+%a+Q!+pW?`LN6M96W&t%+O4>Kc9Nicg&}=M5Cvhz#B6G$c*P z5aMtp`9thYBxu)&xVSTuN<_A5_`qXT89LNzc@{6c2#%QByd`{GRPw-Nm&2tL0(@+D z!xb#9OmwqOI0q`nL4f{D=hQqrF~_pxlg|r|0uN;YP5RX6@m;Q-5USkO)67xGr)ZK` zQ9Qn~v6ph|DYC+ij-<(8mz?RK5NdRTuUmaX(s+s?E)2Z@O(>e-siwcc9Y+C4yOz*+ z;oDVginzhIC<$8ue>W!O<1Gh{drNyY;O32EC+U~aZGy8zlT^wDd<76mQ=??kUwnWN z_{z%ltsSsgKHS~tCGK>R+;SOw)}Q`<*I-NN;8aoBI05=A9i@4Abdc4hH%hN3OIA*0 z_)Bn5Rc35=oMqGU3>5`Tc3TkJR=T4M*OL`}Z zm1kQD6M%yfObxPt6K&8G^+Ym=?p#RYN<#kLe4Kg*V%es$M8WpaHYJ9X*gb&dD( zT9q;n^?XIWrdwZy*v|rdKr<(rP>m1*{sVCM`Zo3;(tZuTpJs9w023I>)4kdrUwdQo zLeu2&1&;k6p9^(`ht(u8(PQ3}g#tV+u{X6*wve*cY}L1#t6t^7MUPqh5Pzh$x=v5} zYDa6V;RViDfh_eR3^YeN7EJ(9f8b*?X1lQYfvOxn5Uz>qZ*6jR-&Ci1R{fqF*1b)Zvt#4nYGL{NMvxwrqX89TcN1jwXr5a z__e@&_4gjCbfoO^hIZt+y4ucdG(>=(kGdTM(gTTY#O}x8Hu0 zqXWP;IjX`gaD2@7?b-23s_^QDT#mY$~g(n)*CY+J?^G}(Umz__MW1@m%DKZ+} zJcJ>dg4#N&JqQ%RwEc>^9k4?yWqs4O!5#%7t|cq2hUzb*LR{m{DGuB(VaJUyTg``I zh+(hm=;b*0_)FM(Z)#k7>9RoYF1~^sl}a{shCZT+t{ue-aHbUq0bV45rq@Jlr_)gK z!L}_oS?en~l?4~BJeQ5@78jR{Jb!J#65EGPgcDuOXndV*68w3igwZx1iC{PT@x;*5 z3!&myziO0ZuX&)P{ORKZ5xQCQ2MEGCh9ax6kvLC<#o&b;hjclEG1txEGL1*~gbNuVw3&0-zSk0)D!NQ$F~2D4al$?WtfO@t4$3a^lIHdKh$+Tibn zIu);)UTec}l*|w5XaxB!E@N81&I>+x{HhPo=V(pv(kmrvv2}y zcwWaE=R-p~CT&FetFiCI7qOdjY2=?bW18Y_Kn7?+Eu3iGn=nhXG@J1JX&t$_W=b)e zOMK!;jE(qeF1TMNeDY4jT-he;*S6&^=OnL1*x-JG`w0%j=CWA{kPH@}VU>R{OxTj6 zM;9qbV(WDY@2rY3vl7(FWr^E7r>{p&*Ny8u?OHg-cLa78UYy4QmhnQV%&OtL+Wf!gX;|la=*Z5? zjdWSaMP$40YfPJZ7hw{@+aQ@#pRe{y_8q!88z^0MrE*q3c}1C=Hz<3>$98Wo<+)OC z3h;LId}{|BVveIHwveBfX#%Ox0S&4%_#k|Z76s5Ch9k@jkr1}u^{w8~Ckx_7BwDZZ zV_Rb*?Aub7SWhq{1b=g%j$n1Jc){=;IHacjGL=n2uOq>&gwhMqS7wQ>LbL+Ic|-c6 z$t}8?M-~kv?algsFnDi0L=w%hsdq7zHSJy2`6N3CK2Z7G!J5IkY_syyc`m;<`OH6C z;)NO5%f1RN?!)6#DawhEc>zfZ`r@?<(BN@P)RNm0R9 z;XKeto@Q0Ql9IEBDqV2;#+D_HVd3P2!4r13MP=NlN5mfaUpAD_Ak2THi43TPlmK!x z$W`z4K2*@>5ud@A>c9GQcGIz@1}C-`GE9>WuIYeRvC{aN$WOF(6HZk5#KZZZBc8r3 zPrBO|H>TEkH4F4w0F|QSfpangyMPrFHH;pM2iiv*s}d}K@-Wn%zfj~+=5V2+Yi^cB zGLY?n{eyH{Oio(6`HMA_9K|k%_MS$XL>V9o_r_x_LJCO+r518GJ3N- zU;&kP($#K2@%Z0GiZ1}>nn3It*zqt;O6WW)l_hwU5?w=_O;|ADXm|o6+FqNwXC7$ZQAL-6SA4ho1PBf4M=t<#x$S_~} z8y)*1Fk~Y$%g-R|Sd0(I+>DjxQuuk2^|raxr!mcIQOHl2-$YB+%J42-&e1Ye^mrzL zj9+MQw|+UhrWLKlsZ3Z1^L=GC@aT-;WK(Lh=R-KK!`@<#} z)_Qs6Rp*;eBzNdgzwnn=yS7YGAwe|(516{-lM|_LVtZFO2yrxFLn>RaPwPS1jr}C; z4xIexU6_`=c*%CC_%vBxrs-RwM079Z3fQ59#~5PZZZd-KVzwqO0_~h^LdeRAQ4I6) z4dw7mUmI{RzO8tBxt{s_?Ri*j3*XiWmAo;Harh*!(g-deYw3!0Ua%B~erhH3D(+4Eip3-52N@p%y@bHC#_z zfK3d}kE>WyyeH|r&0^9MDKAcsd!cwv|0+z207sCwpZeQ;u-k!}3BN5_7i?c&nlds0 zSyhwd)p!~eV6RG*VOcOAk~yoKU0oif@XCe7k=Y~7{*l<|4+IGV!5&cT3sHmC;k{^v zsx$tkmXh+b2T{HrnaU~AleUvHjF`QxcJx6^wbe#C)fnAui10|hMt(rqebbAj6tr3G z;}Xcvv^E}A^7M9TzTz70lO@d zR|j8(ZP*suFl6YYH6vM0t3OZq$cOBKwPPvDMG)J{yb^miis(GAkwQ}{yDiC4dI6ck7rI`xylx9O99)qFCvBpA&I|I_~&Tr|amRjd{@wH9ds7Oq- zxxS%!_+76z!I+Of9k%z@h;@l|V-i3h@T4556T^dE3EP31ki>JTzx0=XYc1ZikNcqp zY0ko-qqZ~;3TXilBeIj7gc3nXWMkrXXM=rq%2+e$J;SLh6lun10a)^BaC`aDU*HHg zG?jN9k)975(UQY<_)rwLXab!;6(7uM#!o{s550C$A37Wh3D{!&{-J#Q%!Hh>T@Qa8 zRq>6h$K5oWCsO+_J&j-;MOV+#_=CtmQ6chfumnOpd{kHaJ+U&#v!kOq(azJVT`Lh~ zq~Cj(mGRlpHfbMMuw;rzT@dUp{aNGbVpAuoR@gxjYoelgLg7rqJH3~zoubiq+QTpA z<*OX)yuyX%+yyBkkOdHkBe%wTzZ%9J3$vj_g)X)gMs*!ws2*l6u_X5$mW4~7JpYRJ z<~6<&Ikp9HJ|%|b@qZw(ZY+|VuRx=<1|i!>=1xxY8|A`dK3K`8-BJZ!RcB%6T3I4a z`*5P0e`w53B;={kpI%$PG^;Wm{N~pi+zXe%yLIF#{0;gV_;BIi-gSc+a_Zz@TQ!0+ zr7DEj*^wJnqCR1kn4xW5_S$=&?M$b1c265Y(uicVe&>y8m=Fm})82zW_F9_}%^sXf zO~oA!4zfCMUc<`DQY)s`yTeGgok>$7Q5AgyI*KQh&JqoNdwjF;k$AgIDAkT6rO3cv z5@$Htb8p|y&hd`&jdY(>^zsv0I;C>bDO2>5z(WRbW?q!17=wj=4MC{O)1)+)*aA~) zP;Wo?wntjme8@mDt_2MUpYT3XdG5zbrqQ^Eh+I}-^)%T6V#dmgvO(kB^NdkJej$D7nV7!6sO{E$5gJa|ZFgkq#!uj0k zcjzB#;e+Ah@E`7I0ra}rC}KOo6EH>Zfp->!NtvxetnW}yg$dTtUn1NQf@8t@&DHN; z^}hAI8e$YSJQXkE_*uG4_nUdK(Q?dH)UPA-S3m(3tU&n3+?}2{suE3>#M-8*IG*OI zRl0s-f905tj>)3KAG zxSwhGp8H-*io4QLM=ciRvU^#=9~r)Y+jtM%JSCwO(N?zgD89`ygQAevK(zO6>frTxxE&G2qYW6R`Wz9-fdYun3VK>YSO^-rc=XV9Y2;1His&@>%Rf)G1*v*q9XLxJqzj4B3b2?wLODT zKb{2?S6*S|oZ-iP@KG^pa3Omm%prk+akY)=r%Rq*xa*v@5>YD~zd7e1?)MBIo$8h3-KVc_dAP%U;2U4*{*|Jr#|xpB11WR`r=@UhraNvmyU)Rn~&kT9Lpl;`|_Dtpn^`{e%eZ+`j-|r0F9; zQzx3WO^bccQy*MtihG{a%6q{qz&G~Vw$AQ6j&~ThKP-U$EKoSioXBCGV?Ds(^VIaQ zj~{D^^S;Z7gfkU)_u-8J?k7VR294tOQR0+?L))Dpo{igZ#r!(W_^CVRjC`Xob75jc z4XcqI0^$(j)>bV3&|GNg&B^t9uTSQXKPof^%xD>%dHO6s5_i$mnVe3~a1q>FcWci( z_;AjZ86$J%X-?et$%1w6kbKynmV5_}KP-geOG@}^JZI8Zlh9CDfnmFohd*(dfM|S` zK)&%eC(B@iJWyzqV)C}JDxZ|0w4WSc=0=vln0cC6OVQH*S^hBEZU`tkI8nJly#0a~ zLAY)u@<8Blc9>;#03MpSysI-x!ii=lCKin+GG>|?PW|%Mn+$QqO*g!hbHlC|H_xaL zv+t6b9HZ=5xpLN8y}4)f`Vt<3Y2^3j(GBSNZ^AG*tx?`@MWgXeJqEv>DVX8s;!qkb=sHT_VPKBK%A!A=qzK+gF_TOGtOYG9tE9wlC zc}LG>eso}CA=u$iXhnPN@{yFjqtDkw7ihw^+9HKj6K+UP$8$a=YgHxDT9A=5n`cojF2}#)(l< zkvJ092==XX%`Weh){8`U59@NKQ<)KFK+hhOf0J4W8ol)ohWl7bKm9|&9}K-yh}{VQ z?+62jJ~xE|n!S3Z*M25~NBaN#fj-u$|Mvv{?;0fk*INgJIaUMqkupQ)Gb5M)nv4V8 ziqjQF_o1%S=Ko+=2rQr58Z(*ejZ>q-4^FJ^Wp+9F3be>SuFj5+V(>krDed3QaKH7> zJuUQlH2;Jj--j3WnAl98r&}45&icNcm@(rTOFK9p;3qwu=U*$f+=Q+{(D+0ba)30e z6q$iyNKzu0ZdA?2y&_iU+)B4SiEz&Anb5pdnQpad>?3*Td8oib5}=-(0R~!$&;c(J zhHOhO46~>DL%lQby3uf+;8n7h&-Ks)xt2t7VL*pTVV%Ke6B}1Wg=>x%p3+`VSa4!` z&DQUOz5^${3hn5_XEKi&7n)bc66#Jocd4(cN_Txfrknx*Q&X|!GiDH&}ZX2@1$rk*<(ia~?pPyOo!!C+<)oNJ&0>3-WT7}j}RIt*- z7eU63r@z?YFyjdGGW8*Bmit-gbo()e6bg&x3uVWQU%1yuJQwx$HZZ3#Gw_=^Ka^Me?SS7v z1suB@!nsdZ!h8na|J#)9#?*l8u6NIH$4Ng%XqaI?<8?>w$ZUMq@1uGNL9}!p z)T0C-HesQEFm#DHfqcFTv{y=5U&j&G(NhwjS)C2qZH2erty*;G5u%U_$)FF#1GVJ| z(xZX<&+I{6k+9Ph_8KkWM+G7Iz71zRF-!8q8%2dvZ{}_$tjMOwh$(m$RE5XDDLOR} z`v7{0gGl@zPn@|%;(*w%fpu~c2$T`tA;ki)6EJethkivhI$S@lm6*&vVqzpRFcX>> zeWIfKloD>~tnD4qJEuB~SohS>%?0=>bu9H9@GrQH6AOO1SQZG6-lK2DIxCA0h_YC3 zd4a;wRd6of%pjV3n6AFIx0yb7pMAG&g0_ZoD$@VZ&lRapaH zZ}u*4JCltcbc48lCr>_GG`xv5 zLQDrHXa|W8_{r0jfZ`9jJPAX*Vn&gZZ2>uqmcOJ&-qGRVst`$Shcm}Ni>z)JqdA@i zzq&3<`9hc9n*qydfrbn{il=G@vunuv2;dXcSg!;JrB{CMONTyP=%jYwbrFQGXl4%x zG{PcFf^*tNzY8~>CT>|YR!jSR=ngHKbU{y^eg#hk4o&!|M);gh9FAvzwx8go%Oz{j zuXyDB`-&<(F~O0M??4xP=+2vmFRpV(SQ#7eGk&EEHs|qEk_mLHx!sg)ikcUnU1eVD zmGXK$X(9C*IcLCWBYyebZY_~NO34BH0jx!5VX*u$XyO%kJV5o{zGbXB%jvm3alYbN zW3I)j;&7%4nvb4m-J0G(9EN6wAv-)Vr1t?B;ebAiMWf36echAE^Ja1PET+2{BL`bU z-`KkBL923|b7$d0!1PXu>aYq1jy^Qr2}HE+i3U_Dk^t5C&VB!ybVI+er#SGI@tMr- zY-aHc0Rg(n=&w!iu2LM7nxZ;@b9IEx=bE|-Vo&}%Gj`$`n#%*I?~xn5ANkz?n68^Wrdt)D}9}C8C9jWPW)I4hcDYxu( z+2E8CeC=?xxd_!R<1|BRmk&j&2)Y(eLP3o*4FGCJ9S2^Qgf8);J%bRN&qA`Lw8Z_{ zw&_bo^e>&SJ)8{tTrh2YtUEu!0mb?Qz;Re}q3%7_HXn+tQVia`b|aJOKZj2!owt1! z)_QrwJU>ror`1lT_+D7v4lN3NJnXDc6&xhRH?Yy~C%-sH$yLbQVphKUe|5LKtrjhTWQ z3g2%B@9Sfw>W}_d25-qXd{nDu{r5>xT1UAyr~SHm7*ayroe}jH^#Th$Yjf)WV%nGU z?xyyuHmevMHK;hsf`3IU|qe_vDq+(f%|M;0}6-E>h0)g|qN4cpA?K zveXCgwtmk;jc|vcui;0MXItx2UQWc~-)8}w<>jZM_I9u5zC6i59I*}v;UA@5cdtK@ zI@csJ*ou>=O6W9uAFGW*p#pf?IZw%5KX1TjVR4o{-w`0amu$gtVnI3DdIP*bM%X!0 z)he5GzpjLRCyU`!#@3bctF5y)wdjXN_x$=89n46xgw$4_2{S@(Jj6(I8qBmLcK*r2 z^WyNwUxeDLuihTs2>j&Y`$d!U^uDH>zt3DYAf-wUBq^;YQ_X35^v8`3OCYV^huYnf z@2zovt|;S@;wql)!XXJZLkqs&?cagC<1?`ot;A+6bQGRY{Re}9cjXX|Vc89Lk<8;s zFlEyd6B-Ch_b#{}YOfuH13CPn2!a=}{(2U@QhW(abuIsyUxWWV3vqw_9grq8Aok|6 zFzL#Ak1%Z_`f?RGXC(sFCZVv&*#)?#t6}%G0y~VP!_CiL^!I&s_L} zA<1W|VHM63W+wN!X9((lCYkDbg+G*?0m2~&T|Q&1tqzBAq~AwuXlFHBV9-l@_yLM} zp&dOhDCX#pH{Thtc7>BtDG5K7{E^>Pki9UPNDUzw(E=x)M?~*Ef60t#(+EE@RAvOf zXSRWA2$Y4!^$yYG_ayT7;h%3&P6NLK`W$`|1+m4?Z;4r3OXq1&5MGGH0PRA%FNzy{ z;RQbFKlyWqg{xsr3g+-R?DyC@v{-=)h(*2@%5TuF*eSW-{!I5Q05 zUQF+LBGo8(l#HMkHL_C8XlK&FtyQn_C_bMs8TRc#b2f_A6 zc7KjbzSBYQncYh6@G~K@KR0ulU4Di-&Ef%;sMb{Z)T}ADWg-6X-Q@DsA{P9lEOcOT zo(e#X&BqXKNS@UbF3)iil<*ltS(%BE9!(CuDU6crOvD*kh}{_w2MF|h^!n3aEWmsQ zsX=0a&;o{d4gSlJb%P0Pj>&fP9;yyYT>nrVI$2w?Fjp9;x8wYKz1=jUXtMO37;O z<`o&!4#qOivq^obr&|3C!^|)jLEj9-VJQqnYqEV8Cj+kjG|jBP>{(?ve6aC!Q43qo z(EZ~h-yf{}oI16a%diIkL5%dsFb(SE@R{7@4Ly=zyV5oy(o%hQz z#IT2RwNFAziurs2P2)7O!-poUMtH8<3bBz$X7j4<`)5i?-1b@*I**<~m{w%5_K6mC z4vmss&+ZRLpqm2`j%Y3rM)U!!0&y^0z|=8E_ZX2LJtIvlne$iG!aWr=5jnEFZ;@#d zK~>Hi+J|uTIKavN9$1+}i~`UA{?8{TS|IA$9Rrl!_zgv0#hM;h_ z=IZ$ZBD*|20YQj?|A^}a{#R`cuy5{6J1O{2W)QbGNPJT#St0iJg>LQ{(raRG%UiR^ z?T1XaRPUdDhzkpt+I{V4D=hbhP1^vCbwx)a!TuIU(yjov%hdSX;wRpX2E{Y0{@P;M z8Jlid@n=3OfY~P;Pv}8VWP4+D`Jv7UJg_QmulF;VpN${Q(eh3WJid=yFZlFWOxt8u4239bdfHb06<}b_)Bm3qcGCq6rj05g5?GBbtSP zl$kvV+^|Iq(Xs%@Nc+S^L4;j24Fhbbw>~N*&1lgdLuV+43!@P(D6@kU(HkE|6jib$ z=Q~^M}2p1fQecPMlutv+t z?|^FS7i_?I)G%F61ne& zv@zDryX^)4tjTD7cVC^4Qiq7!l#^f7XyzWF4;W0|^03O$$VR$1C4Ro0rnfErYsIu` zRJFM0@N@s~;n()&Bh>yL6M(;M*Z)scVARWtv8Neaog!g}qb>tH=LrgyDoU|xtBGsJ zaCpOF)jmyr)n`2B-J>O@bP7(+d_W&Sb%$wFO=#AXBgF;;?1ah1+)%%}t#4ZxZ<)_Z zvB`-O^-~CW^4s3!ItFuC7^TKI=Nw7xnbn9tr_MFGKwa9lRJmBn5Ti+pgc`9ZwGw!_ zL~YFvDM~|{PqoboxY=voIC2FF{8|Kkka7J^1ZQ9lFp%mlHbE)>*bAt*zbLk0>62}+ zZH(S}i7KMFQC&TLc%q5XG{15muCFL>6b6qWku-b3M9z?HeBaz@E)^c&exC+Fro^}P+#Qk zMJ10{vkot2Don(25(9n&c-4&vAbBsAP@_5KM~1W{D3R=AgQ zKOwP<%=Uzorp4GSA7m1siEG$RK)-zBB||uP=pCco=qk5$G*u0noMlteWep#~9ehuU zi&Ii=;b^08G}azA^-<2sW_!dJFBy1;O}P1R#66!DGte^S&^;5TGXN=u36Quk^H|Qc zEAi`rXOsi#s-MH)@-L(ge^bu0c)+~x0M-yo$eACd@fJYrogf9J)6NegJmD0n(fA!$ z0+My<@eC@DdFbGbz4Wos-Vdpc4ea@hfwv^<^_oo|JcfRPkO&68bLg>Fh&{^7gE)_R zKwO@mnXZxG8992z+tvK1xE3MWw(yW_*F@$U=EvmZHm2R4e@+DdhF||m{_bCB*mC^X za^whWU0q;`X7jDPnifoNrMLItj(}B??GCR*C*U2i33+1lG#7m0yw~OfUsxR6q|R2m z9e11gWKXY12mQ|CsKiTrZyAiD9tUv?)5~Q|dM7?~+_8CL6aq^LbM`Iyq`h4U_3v-e zz3m1};i4=;zi7aA8b5m-YQ-d zJigld(q`?d{Yv_0@%qG$tn;X)h>e;r)OM@WE67#Quw#}0ELffJUN~9S2E9JSxHtN{ zSBV4($!|1E@0d3EG)_cgL!0E&D#0}bc;A=tLy|&^qG>I|9G5}K8f=()kH!pYgFFDI z4FBB$2@2B&f9rxBN16*F1RFzKMr-bs1bYN13O{+t+s1vizAi8z=ArJ50vyw!349KM zBDG8ty-&S>ZnoD^3Zy!P_lK)D5X~ZXo_?N~yj~kqrHE=1VqbL2MVuZ|ICu8TDDQ{t zbZh3@f(-EQN<=ioVGlk<9%XA@GwcX)aA7(6M4)yKPqSA@nCi+=|BpuPgt$S@Ct46(SQO{TC5nU=RS zBn}Nfr@e9FlKq;U@%f=k49;3C&OYLz7!zIX%}YGkVin*DU)f5)5HI1!k9U#dDS8AL z#YUub^kK=ilh#F)2JZTjo4JYN8LImT*pVQFn30%7BhC2&Ae`|04-zJm+>!_E8; zhHn=U^Cyv$cqkd%fun(N2=ElP$O#Yw{?8u9e%FQ$fFf~!5M>4YYde6GS%r&0018*; z!({TR^A^sv4dW&9uwEHH+bXDo{eYeBon02Y!n$=I4JrVlIX)f-mQ@r8NQ80;&}oje z3-7Ie_L(S4Slq6eQ5sR0JUM0N-XgzN=#+KyDX!V&PHT7iH_?Ky)bUx$={ShJA7m}e zyYvhpf?2cZ5;6%Pbo1$@{`R*=mrVz4cY~}xDt)aGpD}%V=&0q1x*w0Nz*TB)m?d5m z^`RVPUDtO5k&wOpCZ&{gNUwxaVae28rEOd__+iC8WwOIarSTPS!yQK2?|S|l9u_75 zY({D+!o-F-+*9tc8I~ zA0f&XMfNF_LTMpon^Zz73JEa@*+R-%%-a$oObA6xg(S;lokGSgNwPDRnX&I?#29Aj z`|7^F_kEr7Ip@BwbARr0&UO8M*Y_VXn)lnh-mlkleLNqJU$8G?9qf+=zhJMxfl|lQ zb#mDzLu3T&G3PJXWes2Uvots}6x90WA3>YEuLLgqZ*}AT&3*n73H+&_vu~SUUAoJo zkl6!ky%iIXwyj6=q!Qqb2=4)56!Q$L03v|~99_X=F*wgQAiWu}y)fty)=tb--DKN^ zO_iLXWi36PP5CNWV^DG?w>ttQL2m)N5R9{~2(j_d)yF|Rg?4*C!XDL>Rs=3& z_8D7tHe9)@ULfi*Zpps-T72(k6jitHe@det48W8M*hhqv7i^q(;ptX(N;&|y%&GW6N7_C*Ws%rM23QMb&e7hJ0dgy&_YpZ-tiZ2 zN)&ow#}keZzu$2D1*=v<(!m*`39~}*Udy|K+~^(*XZrSz=E|Z7=QnN-ct2KER=9YK zEWN3&t;m$AEv}d>jUQ-7EkbpZ$Pc49Dvox70xc$!-1k@Z=nA{-v~lMXnFO?7zTuK; zg}_QpoeXICT2dtqbEo6L3Ec@+L4N^HdI6_g@!G}=qy{A_hOGrmQl?`boi06`{O*|N z^8>A3rI(~NxKFFp%Vnhi=L8T`kHKCiJtnT|`4E{Bb9m+p1Lp7J_ZNf}-&^pz4hvv; zzOvp^@X<_-aW4T^_A!btt0q6&t*_J0%8p=Is^{&c85Mth;;KbwPvkYOFhPCKA3Wri z|MWVDF)0LHPJ^|>78EYGKEMJ)X1S!Zi-W4T@cXV4EO07GnKabi53Km0Z62h@LFTkB zw|uYrzV~S9>vSui~e@3$8!`GMb2C}`z=G|&6uZtf$%LA@XbuB4Ix;RQD8cuLqff93= zp6oLYHfKt|2;oMHFGoXTUC*ZIDN#0!$QKlx#k@v$B6q~-%J?RkP!Fd%zb90_%s(3_ z^6ilsqS3vUG)eLi@`R>Dwlx3+C z+XzF?UWOxQKpeIe#HW{nU1>4u2U`V(7qsJ|5xYz25vOwrWl$Q z7CisnASu@J`~{4i``7v6UoZrcu8XL%Y|BG^M+n=W>1*E|y*h}Lme1>+jNQrpam<0$ zjeH4FZu_IlmbXE5mTSv=b0S>OE~ZW|m^ynYmMK*wRV{Q?F6`_oc3y}rh-byCLxgnp zHlu=o^}4<||Dqtd-aXWN3htE#-Qxy0{FRyFIt>Dn06wxh7^H(1(Rrv^1P*FYC5$zn zQmmjv7E4#g?)U{Oz+C)vt>Sa^Db9yO#!7Dk`1N!SaIzX^iWJGXMu;=Wo*w)r=o;PO zyRztPXsP1A#w?-e=KH_4UoC93mT_?*^H+j5vF+XhJqL^ld(HQ@pDn6thzD0HZv zDCCpQm&~)zIdf@qnWy`xi3E0afu2rPt%bJM$joEJPzUCox@1aIMq)Qpa-e%d_PFwj zGb@HIo#s136Cd!Wfd}SAKj^iHe$OTnan6k$gz+o!hI^=}VuecIYU2E!?nB8Q3vcd- zXylY#Q63MgP3Q|jV6pV0ZFQDi^i*0b{fV4tMc7b-<{eK1!IjUo3^kQABAAD_#t0&1Xp(C=WKoFhOqF@&6gZFJ(8_bn;5fU54>8fh!S1wR zqwtgrm zYkVV|mmpQ>MHbBW8tc8@f9%A|$F%<12MTxFX{oeu${u(do+;rpK7wcfVaQdY3|*3~ zCq<7UFOqSslT&5*;-s7FE8pT)t$)Exejhni&|Y0Efk>H1iYYM?Sq|>^oNyvMkA<;` z-(!U_!k;g%u1D9j@)s(&kDdeXa_``!;~HdjDQ{nlW4VZR?`H_@1sZ+3D~c4t#t3At z1Y@b9-zjPKUBDI=8KVq(Xs%eoaWWE&9Pu<^$}r9CdOjWe0a};SuhcwG_>^*VMPFRO zGsRL_+VE7Mg!w(7)0~AT%|fyO00zwR5YsBk_^GjA)YgccRI{g!Q5VZy4SF5@&Mv*h z115(*%)$JEoq`jf@#!a!8=9cef-J+tQ!4TCf#U42)lYAPx z>iLhW^$h?`o=VDJjzWT^ByiTHh3#^OKhE4|{-t>)-83W1D{JpH*=GE(EdDFR7M%Qj z?!iOej`pW6)pur5`kOrt4_Q^buoM|8d8U{#7&Nv=`XKw*b>X^-+?lRKPfUTMJd* z)cE)~ADV8&RGg~lO}!E+EV@=QU65$g#9#cbWrxvlC~_v@G`BZiILISANR1v`#5ACC zK3>p9%mzii%z=XWU@wu#&a; zq~n6egFS~X2g=(vkM^ef_SV5ia5$^|5Y4ookq+iHDpen8YuS?#f;NS3Gl0IbtNWJV z0dnXWIUy%g*efBx4*V9e5-&vHVYlMI9aj7ABgt!Ipl%=pzySS?$ju$tb#Ab&o&%F` z65#@8>>pJIhu^jxit3L7ep<%?h>#0IGiO2&#K_-SI=&T{^csrAdIT64C5osIl_|rc zeXxRarimvV(HC*03J<+1?AJuuxMX$^p7IbV*XA3H0m@GtI%-kUSYmM>%*HiGC_6w2otL-J^s5mXwysy)$tLnE38nqGV@4WT~#L&MaYiMJog|a!&PMG!lm@_ z8Fz**cBK?N9wWdOF)Ge_iYLAD{{@5TD!OgU4M2{2WYnOgS1P`|=~o%STs~|9GoI@3 ztcD6+oZ?hx=RJd&DI}hBaCN%*?p4aIyD%9ewN2(FaJ3LT>9wo`SceDTX{j^skCpX^ z5SueKNkCwTN@VWnOo~i-ruXrVp*3RXRA?vqNY_hV`cUzB3g;3!@Sn3s2!} z=uwTDZ*zs$jH_PkGuu#yiqXs+S!~k{h8C!?rrI;(peGhk8TJn^!cfKibb01=%84vW z!x$zSB{?^9tBSIeANclS?2&86Mrr%G{OZh*%ihQd@YnKavm3053n1O(Hm72q6fC5v zZe!XeGo7-Axf?xn=ABKS=xDSAPMx~)CEl==Q6GXR0#T+sXn_eUvw4RY_E6oi8a{TX zohJSG+j-O;Ahx{6){Z%+8Kd5uZn!OjSc$hrY$=wZ6 zoZo}&(FxK)Qf~ilsxj)Q^y6SiFbo-F-7{X&JNEe_C?a`EAE=DX7X0Gxn~88}T4c*Ra*+Z^xTy_$db%737p*>y$#@4hCl zRFZ7}G(hfC6@J^y`l$nv``6C01oeH&Ot%U?dDEJ$7V^C-%fUsPgMPcztDI$ax%#Pz zi!}^&O#%>Ni4I&jElo=wv(++7_81>d)X=w|T~dDiKHuSX>67f}bK&%mx~XE{jP1b} z$exQu{D+^EadiLWQRC>ka^u|DCYnfrN5$B&)2-7I%s3xHN}hYpxss7-!J+e8T{zFj zw3h>li>a)_FvQ370_nK^XS5ZZge9`nXWfW4PQMjGMmU$ zU6;O(c1YH#!NWs{4}i{PgFH9^cDleMIYAcZk_U zl8B2YfI6A<#P}yv;+sMmyzxP5i2VY=!G5X1P+x5dYM>_3%m5hO;al(GIJ>zoT}AcK zGuYz1(p~u6kce!r?PTM`Kuq5I8wH5C_d525R#w&nh8J^Ii32uVE-LL1b@AT<zT_<5>_YO8RDLL}Q z=v(ced=(PS`R6#8Au)iGVeY76ZwCgB%a>mGj!l3ldRTF{2mMjeKi4o(mL0UJXpbK$ zKs(~xgJ(*7TxKP-BaqLEp)pKosWOJ`4gyIyVGZYxN`Tbs}a_4WF{kPIl{)=VnKcT<{WO9Y*+Ggyl>u}a% zf+9Pv61$wl=G6hM{s2}cV&O8Vp$+EKK`s#9gqTzX?q(qF4Ky?Kp1pw}g%ekz&>*;L zoL6O~g&?eF-hBE66LWWHuoLTHoFn+PR4`~jxr(N%5F4dF z3r-BTkE_b6KC0F=`4;wll&n_8e_%#Z&ETeH>CrhOEbSm&o&wc^{W4wG!56fh?&_ve ztwUldbsKcQf(fMbT~RT5>7Zhv=g{*qsTE5FJ3LHvR)EUM-p*oZ7kwnUBqASM>%Nvp z?8~Y6WRuZCymuQIRdzoqM{l)>)4D`YvUeJP=t7p-asw%` zx5`N#u9lk8{WX}ce{;-o1H|lg%XX6G<*YmuPe9YIZCIxAyTK}dWmi8L1Cq1X_YlNK zA;9dis1f{^>3B`HAgb#@4~X=8g8(ytV(-51{&UybXb=0Cp0|?Xd)Ip*4T$2}A5+9U z3pT9@Jviq^vD1$=XvaWH<`+V2zc_PBohA3Tc`2S12%JF@cn}cY)r+o#U-SiyIV8!X z@sd!TGFer?#^tLzhY!x(-{awZpVD)*nIZ4#qVA`4sk+G<5x-zNK0$SEpzce-uasjg z*BPJ$7l&Yq0c_Vi!xE~~)YSn522qP%R0LZrv%JU!PDptWMOZ$}?r^6?-&*mvV~$V9 zrSq*YM?Ybg=GnX;Jm&h{ZhnlaMV71gx8Mosi2xhx(mM>!BIn`A2~c0# zTH^AP{t$3IkOa2OCQlZZQFW?Hg1b6haTg4~3vQFP-0c0q@qdxyJOcJ0C)o)yd#n_a zC1}0m{znp6wf{C>V;RlvBCdEMcOVvQdZE>n3$(9!?_6n;<&QS)e#>y;j+U97Rf>u? z9JWt>HX*v_sUGP!I!JnXz>F;@4VE*9U7I3?5~c@^caJS^yB=X!tu;2`aqa8L{s==y zXXAG}1fvD&_poQNv+kr^CY+Nzt46#eW0kII2VIE=V8?{R37l3ItC9373=xK)+e z+$T30c`of9Pff!rcIr5L`!WdA_pkyEQO+ax-dS!cc0r^TY}gTEv^tT%bK_Ha$I-giHg)?EME4h4gK3s? z&cA7dwqk&gJmR*8TYpo{(I4ed%w~C(N&-gQHk)R=XPKsay^xdu4Scjp?FSm_py^Uq z0tRuBF^CGUMIAC`$awtllN0Hb`{dCqv3xIYe+m8mavMb>q5v$vJj7kLpj}ig`HJ z5vrNoU~FG-?rq@e73H9cw3No742e6uADJ)hrVpu^u_! zd5QnGl#zGjwQFCTZW`{16$a2)P&(r(2G1%Q@a)p}eUIj;#|oIZkAqfQf}ySUQEX{) z>F5w{dc#f;4d_ds_g`5U-@skVCYZI}%At zG;?Wu_`C`AhTRWQ+!0I>4O&s(;cBZK`gw5V{mKKHCO=Uwbq&~5WnyN`47_iL>zq5% zg1PY%nJ~H+{5f!4&S9b&04ReKIcT$UrN#e^&4?jSRZb%~3Pib(z4X`M_O(HRAG#-y zVMLDd5$l;Sc@Hm3T=%%yKmwPgQ^+cpbB`}}dY#q_uJ;}f@c88w7=JRHbG{G38>HnU zc>+fX^5SMRKj7)vA9&c}v-QZUjvUAcDTpVv3Jr8zsES9%5XG5JMfKTYXk%PSH{V0g z6s>QZtL%G~yJ_NU=p5&e4|?(#cg7QWD}G;%j01EgA@avXDKDlNlgXTbS! zYdVr@P>UeBO3ktiUY5uH9lNeb2p!eh*=rQdbvl@|Jk?BoxK7uND5zqX3F-DWk@xgsF7in zu?64a@=k|3^)VG6913E3e=6{_cy?;8$@5H7=Pqxg4QN3L`LYu3__Xe$Lln!V&5W5F z+13%0$+7yM`4h@JIf?e0*E*Vz^kYbxO8=UXm#zTQmKqi5G2u~9yc*VV&Ah|O(fEAr z;>Y4O#lpL?V&JjwK{&e`4@^+8fI(qSjKrLE$hNWiB-^flgQ1jMIH}Hm;e@NflR#ip zmXaJuA`Xt5bk%I1@pm(A&k^fUFN~{0;x50BUZ4!=%dH6^XRk1%+^svJAxG5+J2|Q- zpyP;qO=1a7&CN}nPjQ_}`6?Eu;J5F^V6;kOqEYJ*}M#f#+(>|_L(eT zGUk`-b~bzT7+&M<(l3}>*WjT-1tiTWQV)%C-&E-=^ME&`>EuRL>$nO;V(j_-XnlRu z0@DWm3!?IIySU9QU`in{PRD*Ium?_`2RE`N@D^$DsWL)0oiZ6D|C{bhdO}wr5 z8v?sqr8Ttbn_w2pD_;m?gOvWbAgzaFxP)sTp(ZKs46Q%K@U#>@B>0=>xEPdbk$9Nuv58-1b^`*xzXG--HNfO+7l5vK24%dIVDRNYW zs(r8VdWwbRZ3otAsL>NyjAzOt-4I)YoLR-C2q(rR^dN3CkbRr^a03w${Fz||)n&s0 z7a2jrwvq}p7+>-y@6YpTmv16J$@Wmsc4%eD4BszspGjHXE?AF0ff(b#gb@k4UQ9Jv z9PQ#S7~s(k|JDK`j&g^S%cYc8Leo3h+c$tI5kvJOC>Dj%Ot=lNt`t+*D#ed7ntr!m zgxI>%GY-2n=y3e;z*fVqlW+JrcR5?wcSChsK#3g?tAnrakP>CYCy>}`TcH%mAnI_R zt&Lf-_0ED;PRCi=rMi0)9+~DF_7|C>_WFpy{=YaTGyoHWc`hBle&9lP9`YqVd61E> z61_XRD8Z*U!GveQFQK+X_5J0adzX|q-6$;)%;O}C;2fwapOxdY-BrZDO4u<|!9pw3g~ZXy`)pifx_Ve%V6@3O;S*OA88SA=(SSeV0J z@xzWNUyeDz$piq`In2go#U||LPtbRGQINk$1rP5q=uYga0bfhf^PyRsF&2mSB+^gd zKp+gZk`OD`7w~d*kAKe^mx6W$Bx;>3>Ne^rTwL5TFl68^`(>gmIdo;rcJO{m>v#?- z9IDd*#bJ0Uktxza(tXX)LbY3JHuZ((x%*2pI|_$ee7$M;&u@m-2E2|qa|d@(;M4cO z=@6kGN}z^;$iUDwact9IDw2&40>$s#C!o523QyldWWH6T1%SS6eFrEY79kf$7$QM3 zV1GYGeS5IJ@Paz$ae-LRmQVR^lc)BgYji<9uF?PKLZacMsrHvtKhw#3C+Cr9cnOXv z*$(z>FAEJg+AzGRZp?OH6RGww1lQcrIWV6lnN!wRsAg50AoBHu)AUmrlg}{7ur~?o zVyznEqebMWCw3{bw6261+vK}H646)NdC(xPw?x9qh@ZEPXKOiN16cVTNrQC0Zl~^k z@Kp(Nu_5lF%bR@a0dBKo#VAO<;GOHWrtEznkMksEB-J02zkM=ukBpJMT<%+_ZZCo~ zi6sD>bTF9@3aL@;x<${S6b%j*th&#?EvxBb)>}m+kG7s^G*Y>lsBwvSx8+mxFPNoC zG=^VSn(0j0pG&D4n~Ja>1F%5T^oOkDW;o+~DU`7+oW3?9&vFaaVaz^g=?L4GL+ri0R@=B~2JNEMPwfvw1$TTkg`G zipr2->|-DM{2Z-2e4PY}p|hH;@}Ze*J>6brP1)8Xu=AjzN2e0-*2 z?*gY2xm&HxR`cqo8HMDf9%=uTcE|`!j$;AVX#s>KTy5P>(4c$WQS142??8=A`JM?4 zLQ}oJnYZF*_8o!F+T!z#Tg(%F!wMAe^nh+>vdQkvl`IPa5+!WZuXN0!%*ZAhFwe1^TLnQh)|8)qp<0wHL^2ByO20^@IU3 zCPT>ekO3{1^{O1cdx)NDR#sN>LM{0GD51x|Njyd;Z(sH|!OovD(~4a+WUw_{!ACp_ zIRnm9lR6J)5@MnKexa>P+7#|E{w`s%$KUKp-p#O)urky7E#P!)$(~l!Cc#kAe=A%~ z!kJ=P>}?*PbF#gKA?t>ORqJV68^n~g3g(e7dFqeQ1TL#9y}9(N7?)ub;|pVEpXBa5 zy7>vDw-Ko=ULnYGOXkje8i?odO`kQ)=nz$?F16T}&@NRb(xRYR$ya6k_=}K)lhCft zqh_(;2`y`D44^DAix;WpB)P*m*rP}Rblh@*!*w*^-Sn189{Hjd*DrQe^=TLGT0l;O zkV}g-djfyQYhWi$hlLN~!U#g{7!KE(V;^v%9{WFCi=nk+q|yjWBB?vXYDXr&y#B!H z=#Bg))C`>c6Ph^HuJCXU#dr)Is}1M>cHJ7euL#R;#TM^K_1NDz6cj&N;KEt2s|(cu zXUe-+z0cbV@MZ1nUG|-IQ08JEtcmRF;?a>ImmRPEDr7EFZvt8}I}qjlixCWSu<}Nr z{2+yn!<22!_Z=gO&v)rNIJmkCAFUIip7Zpw_G8_bpT(1mlt)5>X_D+n{7qH*-eu-afA+Rd4|m7lozWaE z-eUt#bD0X83sF~lYvtX=bDr`pu5URToOUu?P|$^Qg@-Nh6l{kbbToS#h?14jLt3=5 zZfd6)dP1TxBV}cpvz>FlcrAKwngw?LJuu~C2>L-ZGb@}H3aqxr z7@nm*+)ob_^J1NtAlf0ZK~?CLDE$E;W8TLk%f0)4wUou>KhD?f$No zw(@*1Iqai>meEy?x;-F2JJHSN2Xl&H7p-iY0tK;DzM#uRpZX3RO+E!*0YiJeYrk3R zgD?zlR10z&##BU&MWN?XKcKRrNCF1X_`>j_V6XWLq~G zlX3qhuiXLl1TlUOmA&O%a;fkJdC|%w*X82Q&%D^VaN0T6W4x2efEGC{2+m5<7R{v} zKRc|D;UStiwqzkLa%1>{-NR@YNxP^~aO+lX81xvsC_x!ArmHi~1T2%cMrq@&+3li= zuL|m6@NHM_O>-F4Z1umEezS;JRxLUBrLrV9Gi$tN_@t5ZwSs zG_-1INHLFs1p7<(zE3mcuRC6e>xbzd`rHuOeD3aX-`lra5i{Y8^I)HqVix@=OI{!v zE+dAmVx;IOhiYrLzP6Jw7ahJuJSOsoNN`h`FQY4^( zT=liFF!}R@^;?X%PO_KW!%PIB(hWu(03V*#G2l4+#;Qg*V9}HMO|R^yY_J9^Tl(Pw zQ+ccd4cf`;Pl{GIR*8fDB>lG-AH5Y{A%Io(3!#lTyGrw*-QWLCd`K-&_}HqE>Y_kF zc@2t0VR8U+X~Gx42jxEB5k{okR%Gr()TaKJ!|&F%8TXQ@J||Y5xI(;C^3H7^9co^I3g%)xtxq6hi8QZ9WhXB3Qu7ml^ee*18jT~J{pN^q0Z0W9J=aYSwg!I#&IJ9*MoA3C$Yhg0=q%Wt?HVc8+s?sFw7_N9?0xH`@bN5@>^I%6sxkR&S$0K zHD*LgzEBPLsGM~4c*2BUW1~>}P|bava~R6YpsjdF(0xaeTy0Ssrz}G}sB^mena&aJ z;C_7=>H%GYRz^iP6gp{hGcLLw8yLoZt&H`iG`yYC->`*-p2)M(7%iu%f)QgGN{8+@ z_nAFh;|5Xfgf)BJ!_e@pjcjKgcAoy8s~#;GW{=RXPH8L@dd=(iDJ4qsIsmwqKQVkmc|iZNUC z&*%aE;E6=F5G$q^su&NL@)h(!#=(G^wx%@cp{rh{#Wv}u9(N@9dXk;OOc7!FTTgf z`rkX2Sb9f~20|20wxB=#6iADkW*LgWW*Dm3Q{>05Wt{9T+HG#6Quc7DY2#wxC)VVn z2{81?msIwWJNZQzOlYn-#!b^O%fV2A`*S{x`t~t< zAH}bb{N=I0JFAX6+h$*wV%LgNe#eBOXu6zTQ4K(_hT&1)f6j%}6DgUqCoUG&iQM?U z2gX>stIW!qXWAeE#n|qZnS{MyIjdC z?^sl&DA#{&_+CnB&hu#-KGfbNhiR-QCPP^fP!fVElghX_1KheQQ*;?g$&FmPHrGH# zMdbzl$H9EvQU4dEc@s#v~eH}!wMjP#^}BN`~UEs|C2IT|6jefXpzd|;eL-E z_dTG#bh~6Pr7zXvL24iQ>1&0<_W&RO2m?N}z67-!`P{2Am-*_Q2uZe>>~gzyN3OS! zS24E8;3tXgJKVK{w{9v#E@g}_pb^I}Zx)(zQbJu$)A03=Fd^^ut35tL9#@4*M>xx* zW2Nuk$Pc)@)E=9rKeTuCH#6uij^R!#?^b_@>FyypX`yj`@kaYzl?4AAH*;H702{{ziXR~b<_$)0&L8p5L1DM zvZdTG2=;pP@uE*_9Y4?db>Z3Y_Mkg`$g!{MtHqeRTL#a`78V2+2 zs5H~_0csp1P%MC4@PK`jbRDQfmCV`PqwQ8uXpp(^GfH;uGLNb9sPY8-39)!RG$>Fj zAgK;Sh`duD3#U{n#&=Z3>p6-O?lX_pOd)J7Hvw00a zPjPl#7PCV{&{~Hx!R()bzPBAWJ(>h!{A2Sq+k50{LdN|XqGB_@NAc$lgxVJVT|nGF z3b6j(??9^-m`4zihbf~PF%%0gUNxk28DasFB-Bm1W*+Gh-P`No$7)O{u9$*Bld*Ln zTnk5wN05c9raT+0fQK~D{15vM4C03xxl+16R;-#Nd?=;>C)BAan-Hf=2p&tZjR&eu!^lNxggp-h%UP1PD3_;VJ9&XXC0Btz? zyBP(1*V{hsbM@x)k=pj)oG}xDfcwpM@Xr*?lU0U?<%OQt58bP@zN9>S_}G!#?v(sp zi_Xx!$)Q|#-RV=T&wxrBEgK|3e@g_+u`tP&1 zIvQE_iRilDZ%RSRkcZ}~55WP@XX>ki8*C<(1m-?}~U#JwGw*Hmw`^z--5{$auwEuV5~>!gp9!m$r~ z!nSeUKfU`M09*WZJmk-O|8s)pf6YcXfA#)z&V5{0p56?PLJFxbKi1fx-t#~#!}pz< z(vY=&d33hYHXiPZ@slU9V~T9~2s$WDpJx<7q)j3AdF&F>y0Z)`?6Qu6_j`0LHE&8B zTH5o}(?~A)LgkSq2_votmXqtulR&=!Ecd&>C#fl(xpBxWeM#@!)B>=l0&R7cE$^cAb=wCJ?8%314_5>k;Iae za*CN{|57#2o4V|_cXb74x%>|aqI}~D2i~2Ux!zAx2jrJpVDFxRIx7RDz&5-BMZhWJ zc)EfjODZ=MPqEldH{}7Yo^l>dR|UEg5UCixE69n`QV$m>7vgLK_$h&_#!uSMYxQQ_ zPX9U}Di@o_^D@zWb0-%43w9e&>jOQcD-0R;%G78OlVc-g;S|}|1*a=;I7#(18zb!l zL%q^i3xO}P4=z16lP9qtS@0ULv( zt?y?|tHe$up4CoJpv_G@??_8Lb1X!20TeecTQgs<3L#P?l5zn%;~Wi^2K{1={lS=zY@BBUVstHV(Sf^4eiipBcJbz=Sr^gY@T|+c{ISYqytx|47 zN7zaBVeERQ!n zYz^4ap_2hokJYsnFAoTRm+W&T5cC!mE-~lVO&T(#DC^;?Qi$#J3-v?BU8^%!N4vg% z-xoH@>mY6(uf}o3oS)kiCUbz(?H`WJGr`)1jj~&SfXN~jBoYuA`CI*1gQ*OcoMo$& z^?Lc5EatO>zIOrXvq)nIVG?hZ?$dpmZFAsksrM<1jur4+K)edobs|^&5gQ5GCScI@ z8OLu~x2>&UR-o2y*Du&75ZDR<4N^cb4nlNEtZ)h(%IwxDK_R>j9&(&HaF^C#CAY?x_EaS^EF`dz3Qz zFb)rn`ikH`Nwb69CUp$?^Zk<*nY2zK(A=NmO{9qnRvPDem|(3owfbE zi=%yJvnK1|-M&;>^L~p~&(lmay{{ncEk>ZVEXB!a>q&?Ba@2=4AtBeaXOXTyqNVZ= z)&UJH*bvu|;oLo4{d=9r=^2{TedU#23eqLgvFL_yYt23|${w=>mA|va(n|Z8Y>%Bh*^-ilMzXn zES5%h3xB!0t%Fh_r44)VgQvIbAFTf0i^=}c>!^EBoj#zEgcn0hQ64g$xd&gqJ5pr& zYFTvB1*&M|P_XmG+pX=NoBO^xr$kx=TwnQO$OY|Pm*ioJrLzU@^~0}Hz9pi55KDs0 zQd7i!BE~E@PZ&AL-l;TyiOJ9&QoP+JbTkCH%J+WVF9k;{86ciZ(mSSh&p-|c&xtG5 zQUH1qe6A^H=1yn!_C*G;TXkmI9DoN8u`o1tB#re_`EViG!^ESeGo!D_nic(8U(wcT;COxyCW zN#*-Khrt|HhQljX+JdY6&zW|dh7*EC+XJ+kQ9J0-WLrdw9jwR zRYzx;S(m@&7JvC(BnbrRF6;+wDmxA2rnJRyzX0?bH4R`@SSc(^Pze-J|HTaGKU+@a zX|GshsbT{%_GoJ`#6$BdFldAB!0th_Z&sfMqwd`0#lCTQCG>3|$ckaWZY?Q9$C7oG zD2Y4r?iE~b%-AX&)|rV>3CVTRnO}q=Fj8!ppqn2Umf_3cHsmYP@XeoD|IFM#=MS-$+dcR%vGUW(3JpbvV0ou(TU8k z+s%4cvyUm;Cr{B>RL%ajd#Ne!Oi1a0aqpp(3p!Ru8b0o?`ANY&sXjg)EUN?6TmB#p zwyirx;P^L%djWEn%m0;N%s-4)!C2`(^ZS}ZtdBsg4&VVyfV>x38^Z&}u;IKz0WnQy z%i~D0m$Py&j>~%Fd}XifCOK}oLXEP#5yQ9;17pLO4h%R{=Lqub4pBF_IKn>T*7P`j zp>z84R6eyAZ zCJsRQcDxF2@6nbhFpPfJR2H;+r(v5vY5W^Xssf}G(dtP`L67O01GzaF3TQE-%wH2eBtPl(?3j>;SXX6z{8{eorh_GK5F|Itfv{ObQ7 z_8{1JgvavGGR+Ju-+ktRZuSZGfb4!~JKfp5_sx&RqORsS=I2#P``v^Mzq{>wzWJ?G zjJ-ZTyfcx5SqivJa`B`{Xw?dQzIu1im<4QeY&isJ5V3KcuO7300to(bk3a<$P?81{ zSdly{cO=CQWajgd_cv13y#tC|(z!g1)aEP9!o!XUq1;)w|7LprpNIP2^-%xT1S?e% zh7_8~@>lkXtH5|fZ^gi-)V+j^-q{9Mj*{Ob!GtdBzU<-*4y$n4)@76mA6Po{Pw4LEbr`Y z377CQEsR|Bm#GlV2g-+6ln2y^@356{xW{2t5H8;Z(PK#Ln!83t*9{ev@V)R?6Kdzr0B?|Lb`x8g_ zA4Tu~_ILM36+us^+BK{7RY1{KDaI+(s@Y*O=E|_}K&&vKMu2LvP)>!DWs4Q#@wbDm z&DjUl246ZoyI&@@u}?OJBs>_6?bHN_F4YKP#kHusIXESf=~VU?&vR(h!V%{T%(#EM zFzpVOVVl4B*g0})*GHT$ASicoI(3cbHJ9(!YU~)gPBjYJy$XzfKy#CwuWhky)5;Bf z_B?3)_Pr{!f}B|6o~a|o=b@q4|tZyK&LfF&;V^@FR&wZRsk*>s<$!AAxr-eI#2{JS{eP0YXaGv^eZPzvar(|*A` zmLH{JIPq>s-s=Gk4XH2exyMkn(HlGV<6c~7090H31cAB0I^m&?#)cvj#wxATk-TORdmWTVqRtMJNmDBK0 zfC$0TPaUa{Mw<&kf6s>ZQ*8}S);fkbue&dEiio-G$2o*!pS zBfo=Ic@kToo|OOw2sA7qNw(NA=6?D&EbU#jakhR1fjucWsTolzD#*Z3PRS+Z)!lx2 z-~!X*UzijIymMP(C>?_xv=?-4#*LtZ-8CBQc9e2A(}C<^iW&nYztnH0q%ECaa)ox~ zJ(WEu>Ug%{fVSnQzm2;6H7WT=-+4APLGo7ut$f%WfmreYKpVcwU$E=%|I-}fKQsj4 zzkdABIxG4(Z4`)f1Al*@r5*^ZrY?q(Q>m7bKA)`*-6M3W78Ptq>hbr@D!y=5J0@-5 zt+c3OzSJrK`1=v`h$uEMI6vn+A?88f4z>w)=JM~(^L{TnC>viY>4Zq1*?gU=6Dy00 za?~3~4;v8@X8YZ;6ctE<%>K=9{eNd={#N(@uPH$Np{ey}dFK#M(ezVNY(6x@1*$tx zqsi2u-)E>2=$_*yRJ-u|d3G81nr%LD{TL23{?OvhYcbTbBXHTapD6{rJa-Q314Jrd zAEbZILiMDK%HpDGX_YDs_@u=d}y1VLg$4rlg9s7qJq}Q;3jY5aWzT8GiWyM$$ zH?O<*AxJGk8*tFm1OXcl9SJJ^ZfYFth~y2{?~*&~ZH+vt8Gy1)VuBfu53U32LYK9G0-?p&uT zVaV`fyuHUeJAJOVCp2P3X{QJmo(i2*XQ%kGZ4kv#OerDomT3AZhCQIks2X36+H@+4 zAR{GQtedlrxo`Ru%H+f?9KTp6a_^gk@M8;`+u^@-ALM;X1i3~#6w}gx{ZsL=NL+{8*4pPk=6`u%(Cw1Z=6L_fsQ!);8GQ#MJl;z7mbd~5z^JD(e zauM9L@$ApFZb+7$$mIzkCf z@x`z0^xj<`E@Z!H7iiCqmb)uClczMt%O%_*7orQ;Qo=G(ouE1oX0_;w>rEJfJNb;Y z(HMd|05xvb-N!zWHqaquTj z&79SI>};2sU!T9Xu`;(++fm-^5DvvxuY}f4|HZT7TgKUZ#~Ge%f-D#KjQLCy#Xn3} zHK6}|ml{#h?XLCpf%)}5S|3&6k&?l#`$}@5o#rrQ)^Et{An`GA2TBF16W84t@N+Ds z>K#4x#%D~U-1wDV&+O`|XZi)B&FNDwUJSV@y`Ok_0Cx8P=X&D5OF5NSl-Yd051Sas z?ZQCjQm0*QPhB>AvAbFG4O)nPVSn970Ws_G1R=nwBF^#C%>a9`(Sie<8(@ov4TAsP z1Hti*_@VpPS*g&?bT9t7G=tDAb_aE9ZUMpg;k3J6bf!4J|BeV_Pr0D5i}iY)dWdcu zQ@CN=f3cWxiCu3e#>&Qf&Zxy{HR)=Ov5F$#qX| zkzW%3b(+oF#^7@Uo7${{e$X-u#Z52hfL>n;RD2v{dtd%|mFo$W{gtE4iuu%op72D4 z7l2bCs<^nMTjh1P&%o8u(Gjr&Z{p6#$?+?_j|J1au)Ewa>;FQ4!^vz%xOULB!r9xi zC{Jif^au*3J`D=BF$Qdoz8?F(b!6YremnYg&d_1Bo~q~ZPGiSb6MG~P$jU1Ng1bA8|!>- z6a=b34&AwqKE8XClSB4|@yg4EXou5)%?SGl)t$oM#OSurFm&vjnFo!0NpFS>36a>B z-s#GEDl<~Aob^qv!6eytb+w_o1!D2^Bd^;ZSQ$VvEw{N|&isbkx*uVei15e>zS$F* zL*wUZqU?uw4#e#a0)mF8Kl@EFuOWg=Oyfhj4KkCOr@D!-$=rej*~eF$vju< z@p&eL583=p;LizVns*;sTP9dGXG+p7xa-6E4j^rN$Q`ECp)$W}sMwDf0SiXEgO)^V zK&!9Nv31&=lEiMrTz8Xaq66#aTLAjrf;WJih;;4W>lKvcML1bVgn2M?GAw;1 zuW&ZO8T(@2N8{JOU>s%k@t2j!?G9{yk4~s~`wYA+8w|)@$PV`=>#xWZ*VfP3Jl#n= zgg%RGH(`p(vw4LX0Z^T?3Z9Ih=h(ZB5u-}JeNc>H>N=)<-~BWsI#B9Oo7@9J4?4xlsu7?&j1%h*>G_)Q2Q*x)=q+o@84v#4#dE2x_XcPA zkClS$nR>5;EdF{V3ZNYUQKu;>(Y|9yQKZdmnnx_C$Bzu>^Y3V`P6?Ebu#jopvwZ+d zKF$`3=wBOBeS|M1MlE2SBkO;`%&EIlPqfOb9M={e*zl0!ERXT>$PUMOx0s!V{~z|= zJRHiu?;jo^i7d&IZIrE&WG~xL*^(wHYnn>3Zy`h`OC&o*gh@!*CfTxNtSL*@2+7PS zWSy~$lbJcc&&PG&*Kypx>$;BL@AusI?|zQwc#h|fiprel`8nU8_vgL5-mg~`vO0qy z!MbyFFrS?$_gBD5_E8n=s%7muTQsJ|T~j)R6Di+oQIj8T>1tU6$R7dHQ)o@Ek4h(S zV4Xu67W6N6mpQk)x*n3G7&x8c_@fM{X5|3fJA=V*3AEpLJer9*2&_rHBuaa4B-!D1 zf~qlV-cer-ZaSK~rdxq$0W+l3(g!K8k;{t;4TI_WjIhBfv%!~NTuIFRo)@J;!hQXG zZwGCxo~FIzHKoWikP@D9c@l*7sj-e%RgP;vT*Kt|o8*rl^k3)3E)|ci02Bc~u)rhW z?VKQZC-K=ZwEIIX{3x5B>>`g_jmyX1GUKRw_JNaq&{VM?zQ-qa_BcKzs*iQ66xslN zmNN{8{!mrl61W#5;orA^J|$o6zV~CbV6~^o;mNP&x#IdV>$zKZ-%mb`1eUX8PnU)V zP!++^dxb%;*2<0b$)&1I~kRJD|@aa)EzI|9K$uNuHK@-2_4}o$4Gr@Z;!!C7xvh!i}!WP$$=$bQ2g+I=>XC7!T9Vwr^yL9qbbgVUf z@#U_jV@z;H5MS+(y9up zuTADo(>FZX8Riw-2{2r6t%Z3(NC>3jL|y&CPLbrI;uDMFlPjw~)?_$IEuQVw{;CRp`+)Dm2>{)9 zyL<SVUJ4Or!L z?9%y%d(Y?})MZ!1zSv|)R#3&rk}33Cp^B8RS({ zv5?kTK#fVvaRP8#`}gy!#>uO$^^$LW_ojR|rCl}J&bzsS0qhfwFy{pQK0Kgz1;^UN z4Gnb&tvPy*;9fa&yRppK`3gVHpUmF7MDV~svYksHasj~>#W`9hkbVQ&>&<2Zb%nfm zAnS!!l+Sgpy5bsm)?4kpVU-DC;VNg}!4?p$*)tOfL;|3nM^AK4&pe~6h4t#G5=L|| zrELMag{9lNOIcdBtwUWGD$l)97F9;1fCPh?i(l0TwtERwghA1CA9higth6)9w>|Z@ z1fC-^)TIi-KcFPF*AR9o9rw_28~5y^34VIZg}#;bF#fsTfarVGbGOH3_O{fdMP^%X zjf8@lY-A&WSb*J&a@SQN5tcehXs+=f$1|f7Ce(CX(I0D}@xpAMt{e5M-43617Vfdv z2p;P4`25v)`;zq*7=UXbfhR`?=^?_#?h7x~5fzkqW5Sg62i#t%x1PoSc@rxwju2k5 znmLV_A2e2#tYU$m{}cc!%#1*ir|KtoUsH_bz{U$3?^18YY}0)m)vcU|(>26Zv`#un zNAS461k&0tHw~ClS}$EctlO?{k&}81>I0KQPn6W;o>j_r#&{KcYROKcDMYWX2HCuR z#KDCbyZSe*&$9|K&&%)Bkt_Hx1$YmH~7ujQOXCNi= z-H3NImyi==+z#}SC3(TI=Addt#pdjLn@Aq*Nzmz0Js_2Qy0h#4t_LN5&aZll23fZ0 zDFcXXK2+Sg&*)oe`SVU+k(9fl$HBn#L1LmI!Zk>VyxFGoIK;Z8ezI)6ROOKMgof6d z*v(FI_1p$gkC&O*v_FWWQ#lA!#WgP5PPV2VHj;IYI=FkVS&z)4vRi~(pu?8{Fqz|_ zP&rb7AxNmDvuSh-eAkxyBg5VCJl5J-Dmh#*Qf zUg9t}yi!4^7+$(eH_y_3eEXp7;T!X9-{T{#=KfEX@&4myvHtds$G*q35uWhM)fV7s zLRA;30UjSrk>$7JZwTPXA|4xZO<_au$xtlw`N}N{2xv47uLs6Al0%NE2xHB!m`ct zPZo#I7;fHq3=p;{8*?E7*JCidL(ef2Zx3#GLl;3r*=uCZdi8OJP?O{F3n5Wq=bhnq=A?UajU}rV_06n=_yH+^GXC3lu?*yV(k(q=>e((7Wy{iG?MeS zRqj#6rh{LXNzBufz4e;Mn&U^`0mMyf($YcTvQB_)^%(46i7*8>R1J>7=l)4Fx0W;* z%5)}uTVs}!?fqrr&A9j_3-?B}99aAqkDSy=-QTtWP?rYaAUYZbhGlC?Jn5*g0jmXy z_w=>P%xF(uD?h>Lyn8W@vQO986^{BQy+_yF=yW^iV@D{|V(gSq@!*mys9Q&_1Q%iBWysG?A?{4K0gv=Y2Jsiscf())u;PN7pz|UUC z5+{`;Tyd4P3_;Dd+9?s3&Foa=fR5`;X@_g}&3f|_Kf7ytj=cmT>ll&Wh_HEs{RvZJ zn~M+Vo^Usz7T>Dvoq&6v5x3ZAo7Y<{N7ojtt9%~6rD?S+WFyN8$y_qoioOz|uUGQ- zu=N#TKZsOb;wUzF7P#kr;bto`oYoIA6Iww>fLiIroFdannImV-kF6``T`G#c(OigC z#T-O=0}Z(8rhMI%c3$NClDD2g#rqHL3Q`|qQdmsBavXFz9+HOfO!JXLA7rG4=<3~@ZlhCfI99EmiR{R~`qat*LEuk#JV))q&9-gx-8-`&4kK4ZGUB2RO_{q$F z6J^$R%k|b#qiW8hXY5|r+%!C3B}e*)8MOauIeFl}x179Fy!)4xZOkvgcJeP!oNxZ_ z+y0;KP5y<@1iC5z%QCF`FK}Ro5EwZbEkFP!FT=QV4MTFwh(1 zI+mOF=FhhI)2#FooqHpcgh4X}Hbcq6L*wu92abvg(9ZOhm zas%(hF~B_b%e5VmFASr^!AB;(_>R&-*6 zup@z^RV&5d$dGJid9|t-cZ`rmxB5uiSYugH1rYZ!22KVDE2Ys6fG>nYIhoNYM@56f zP;J?ttRLGm)qML=F{S0zW%?cB(#cBY2VyQaZz&70`iiibQyNSe0%4kZpB z8nX=&QsS>8cp8&=@^tKSsLz*ObNA%cH}L$L)jTSu;nxoaJ3r_u!91W!5FzPi_hAr6 zUg~|X>S-U#&@MeLgY&&(!+ZB7&jy_n1c+nE_xPnW(rFz)M8eSTX9N}*R9(|Z2^L?S zP-TA0l?wfCGkwU(@Rqjq)+=}bP)tuT1RaUEh;oKEkqgHedcpqGxb;vd3afKJ?HG5> zXS`=we)9AynbO6et1{u3K6Ep7oRyZz1aH)Z%liq2y*kITSx=XeGtnZ~-;X|!+%#5J z{xTUcXM4|_?ei64i6R2qpeVRy3yuBmy;IGs+J8Dyo+{BXAZQ0vN7jrJ&sJ84Jmp*L!xJ#uIe#c73GT)+z zZ;%u;_Ivr#I&M6Kycx|n`nJ7c;zHIU`Yk)CMJf2oe&u!iO&p!^ocfzo1DkHmuz5UI z$Xh;MJeUgk*{nhr36^}QN-u_I38nNF&xh*J!_>JKjjDR(8E&Kko5^F>_HNbw}i;2 zGAZ{WBa`Oj;eB%;&VSZ)gdq(jfq?xxNSAoYrj3R~MK71CC5{feg4bq~JmfR`MZAjc z+S$u{NCk7chep_Uu}N`kpC15X6)E_jNCQfFk}p|F;OE4j`UkHL%GcGW+>Dlyu$}yT zRq_{^a3TyG?=5}=VhWOF8Hl7G3hUS74|(i2V_4vj<91HE`2C;myJvZqQ*dsuDuGBr z?+)w7NC56V6gL5cFj;p9I%P2vNuJ~XLZt9e_T-;@3>ru*3yE1%5qmjVwJ z*4&9eTR09ZL<;n~$lhIaD$*Ytlb&I71U~l7F+#tnp~a;(kpC}4JyjtDq=sT4AXKpe z_r+W0^{5dkxZ-swJGcV!w&DB>ku+96x7?;G#mtJPXY$_}*O}3;w2v^^JJcasA+-w) zW?;T5n~76P```Kd9JIY?z>&8bhxt_jK0+0|y{INVa8-3!&IQMzciLU^ry|7v1}#yx zoaw*hr}0QUinrReBlfmUWxbh`-nF;}x6&weY^irN!}w)TXIqWr2}oTHU!HF?F|1cs6Ti zwfpF*8F+>qFt{Mk0Jr2MZvvXX`_4Z^6@OG93qK54_%*n0?uTxyOVd6SF>_kRGhcph zscADC&JCN`_<)Fc1Pe4#SK2?iwYAj?Wgg60vlw1>tg5Pw4{()x_Kg3*_i)T~8hG5@ z%-4DXa3_*-1K7H}5`!dgKSt|gPr9X2la@8lPs@nufLxjWb1oU=N!?|~Dz zM;KU3ZCD!+Z*Blee}4!Sv$0+qTa5=Lvg_Z}4|$d96cSV(-+S?RC~TT**2_2X{u7ud z6m*ey1FGN))fnCrg?NZg`ugm_VJ{)?2XA^V;Yg__>#Hvl>6%Gr+&2Mqc*h%_4+AvZ z=kW=jxBks(brsMH?yTZWZrz4k+X8i_c$rV-;2Ov`~iGL zFr#GQzEVtSVjjMVLsLaZ)`0sQcbThvZkHn@zXJ7F)@8MoIh zSB-icJ~ZGZJ){=rTwm{!_dHYF=wZcG@wCJvtSMk+^TOmIh0EYa4uv`n>YT>gI9!|T zCVgg-V zQs@+77t0sC3^WAR5+vObF+eAYM+qc(_aP-Rn57J|H#=GOv!wWs<%FHSmyC@guk_2S zQ_{sJK!X>b+9V#TNnQEGEAa=#1q;n>0{I1@hP&za@4avoF!u}aJ=EGMdPFueNgqsD zH6j^`xJS5kl|LA0r>!e!{14w_ra?5qV+n2o6f+0vLiNEuljsB7wfV3(FbZ~XxaHr4 z!ok05<6upF_ajf&%qsSq{d52IA<$YRnTL@W>90w*3_EUm9PyG>l)5d#qUY@*-X)KK!cjUGre2 zMOhGW5-9F)Cyobz<3fRF_*31zaQ!sJI=XzMt=+EUS=8by1Bu>t-_w^(*mg@zOU2Wz zEikh?zRnTbqJ#2E0+euj4M^x%WF@NA`#{iweih(D`ZMGvdg6up@5Vr1H_@j_Tsm(0 z0jB&@ z63Q=dn3Fu*Uw*yMVhF%;y*$07PX+xlLX;dOMyO)!LxsQ%+ysk%7DOOZF+xZYJ=RcR zDmIRxSe%*OcXhDp?Xsu5#;TeMTMA!^N6JAlj_AwUmpJHmKnZ0G0&&RM6VLuagunX> zLA~1Va$S*vf1)!$%DFgXv8u6!bIOz(YdAIeF58*o;KCC?3Wb60;y_siPUt3czL)(XNpVd0N!I;Saq<_3WWJfA-BvpSc1PsZoxRl?Xb z;#dAwetZh%Pwg~T#0AN#bFc(BunxZmFUP#>z& zk}CaN&;l)%8jc#zJv~~z@7{0I$%>WP;3vE^%X{Bg0rTfhx?%vR(Fip48VY)GlqyD> zrpo3{qC2%-L4L;1I(zD`KV?g6bf#B2m{t(RYmiB_1xz-EVuBtUL5>;2oCy>Z@kW$E zKp}Lobsj#cTzhFaW2qLmrL2>^i60mT7>6b!W*q=vVZolDpuNYE+6mRhORV=t#)V_@ zBpn)0X=#FpiE(@GKQLT|ee178Kx;KaGnu_Z^W!6<;i=?U_jw{#B zbM3#_B6^c!1osZWT!1TJM>9V#_Bm3mFZQbuV)TT*N!u=ZGo1Vs<1>6dd`?xcIrO1^ zyg4F4#v(srZ-sb2$7T!B8`2Vh_ry-;T-KFTipPyvcAd!^Ue~o6IgBnXbNzi}GtdH4 ziDg5%Bt0Zl5h5+g$VKY3uJEUAv1Ec*|4LrdBb)feJCB}AC(eJr`2$3AD(EB}#o3u5 zh#?`Pymag-Ghho$?H3*6s(JBhUe$h{x9awy*+Phmed0s&x+E6Ujxd%`L0~I%a1OPo zV_n`hnp1E#qk6&&14{3Zotsc1-d&|pac$!I_<4=4OnU#<_@bdg1h#Hca0kc4CJh#C zEQkxxYg6Rrk^Ai@f&$4?k@>MY=CAbI&#HN^7BZjT>hb)2vpPB5<@T0HvST3g_scye z%F9a23K|s2ndBndGwBlD$29A*IUTLIIw}qB{NF@f^RN#j_pLl z?H(UCDjxqoIc*4ZY2o9r(Kka$CVS^b@{#2 z$8M!u+-u5wA^16=h4ic|WlE3%Ds(OWSYj=vY6T!tXfJje4tK%dotm=x2n9&2XC0}f zjDL~cj8~GDb-H)*cUH5Y_pw8(CJ%d07+g*2(%XY=$p);h-myPLBHIc4)oAumomBsQ z%$yQ8%Snt8`joGurypXo{a4a?1U!XuN`g-L!JH0sXAss(GM^Ki`@}KxuoCq`TF2`N zvsY8&oeK5_vTZZAdFQSf3#5FApO!GePk=s=&eYC?G(#*H7@P#SNq2CQwoQA%y!`&M zbzb2h0n_0C{x=JHqD{f+U%b@1KRBwk1njFKswI}xpZaylO61f?>+jjEDqpKEQWFE4I$?tIHN2Xwjaah)XKaEOcbi($%3M{Lj6NUL~ zxthoL+O@HXZVxP{IW{MTA(R1gRnm>X{ae96NYn2^QzHf6lA!TBI)-FZu-egTG$s2p z{~b9bqxnWbmCu9kTT{|&J3aypX=cEC0St^?it?zo0~G}yd{4ngDAiR_g`X@V(eE1& z#Og-h4)vZd!<>!}+fAgy3=phL3B8?e*JmWf5TCI9Lr7>fA1X&5Ci zq$xZ?nMnF%$1LvGF?b1;7*(0ts442o-R(yR~X!rrlQ)6~eg`wn?eI@p!HuCJt51pkyk%m5}bH4zE# z0rA%tx-LABb*IjoxW{{Bs-ubR+qXgcLr1%>f0xNNJY}`U692e7jU~3rx8~x?ifO(?8Se=@)!FuPBkD)D$q#mVQe5P6!Wx~5WKI=6U?AxE|#I{?$+hlkNpO11RKp7d!}O8aPowCfUNz6pH(j|kgG11qkxnjbeJPHzz~#7 z7~}5Ro~BBnsFF^8z2)QIk8FDEWyUgduL|IvSa-kAyEF})X%6$P)zH$-;E>pdfiF4_f2rT-i-J`{ zefkf7TO7;(@NQ6t={0lk0I~C!>%g_=*^(u4gW6<5tP-Ty#}L-0B{1uoXd z0mV~Ih{6e~y?7AV7AF1v1$wxOUd6l97Jce}BZTjMqQS2lqk-l-deZurR7{C1fV(o5 z{s8Wo1z5xCCeV`c{km!Ob2n8kuW+pI=x)6%e^V4zQ1D}UX*sK8i75laE2NIn|t2ADZ8pZbz= zIWxWdb+H{8vll*`eU{rb2KRX%p`{-A25kB&90kb?J5*o);ds>)aYC6 zcJH_m>)5z~=M9njFg)&yb3?%IUH%?3PvZcrn3W0AU5`Eqh_@3Uf+Lr7+%?;R@m~IB zifC0E*$zsSsmw_GmS3{erMP4D+-X(W{516gELNXBbzgWNV?K1#EF{F==G7C~J&zxs zEG|BYK-^$y76j}L2>cA!j(Bc#C@b9zJi0OnfX0!F{7MN;`x>>rz6d?Q`2wBgLTajU zZjqA~+ah6S3l!p=Dw%qtfSE*mfPOXzLkk1Oq`|O?vCk2>MD4L^IxzUsF;e$yzDlOx zgTay0zqe%(*wmP2Y~0TyOk9&@5Nf(M!pS8dX}7zT)@0h-@pCi*nJ;~LM_6e1&9uP{ zF$c#Bwci%){e>-L25?t=M3A3HAw`BHI(A%L>dnHP2(CX9gAh&G^m<`4sR+j^1`V5Ek)J?akkp6M6%D%n-0b)UKc+njVCu zJKEWHBI9&q$)_5%)yK;vJryjYgF|a?Zbn)2+hxcNMYXs;Bx^>Bn zG#ZH_W?x4P6NekoyQ_ttgkDTvM$)wuf@Gfz{=CJ>b$o{O`nyk8O1?O!uoUvkCW8-8 z)*}E<#Ki*SIn&zis`*VqLl*~r9UY!n;P#N`_}-x%xrA9#!u+xa8Dt~eDXGXT1_lO< zwYn@jiG+(<{;4?PMZ=wtud%Wh+4NtNX;6N4`L2b`&E(gFQ2-B_R!7DldDWAICV~Ki zdB6Wc*}boayuII=y9-Qq@ZD4l{GHi^^mq zQ@|NBS%&4rP(sm+RHd<5xJ~j9$oVz=Ss2^EI^JMcUtpsNG%i4ioVD!E^j=^jqlm+( zEptK}hRzPffhmAMb+~r@ZzFitWDG<6G+lHeY#f{%rc+NOxhpE^n8%^WJE4wwHv>&- zvyN2_9(Qc$b)Rj{uS+F(9^)#pcVBQlj(4=p%RFzA$f}^g&1XQ2ICc0Tssjn{`Azq6 z1Lrsfj4rgH#|@TyYa+ehzRn;k<5JB9EDm#hY=asLymeWodlGovKyTy2ohM}3+}%9j zgN}ZdT9?|~O=z8^Ei!Q!+GS>y-Z8j0&m^Wr@7Op0xLaf0;}h4kni*?r?flUpqJJT- zO+ixlB}2`n0N`eyL5ftfE7?EXMnpxSKuhP-Ddp?(?m~g6pP4splkl1PNPN}54@LcN zl1H#0Ht-{1w-d&%3Uz4AT3BbTTC zfh92`ez|JQFGa9TErjqhRs42{Nbds--u>qZ$eH3zccXEJ8kYU3@rk`GczjeCd902_ zSo^Noe&I(4)fcKRakS+MFdOv_&R=H6e4+_wv3KR*>q4QYn_n)0bNh3^#%Pp|Ckcgg zMNTyBBg9yMoKWS=*f??5)tIXud_MZ8)Ga%3JUZ;tA1>&f98^@7JSpn(EXSCxl+X?F zTR`%p*+;M_Z+f5@mHmnboi(H+?P0f4a4r4Q)X%3AbW*tkaoK= zl-s}m=Y?g7&wnBAVe55M(KoMeQ3S}f9ato0UJD5{e`@*`6o z$@|H56rGtR}C+YUA8F~>k`X6i;!qGIwk$kv`@l)_+>8F z8!PhIh{+G9otp6n=`w`bKeSl?XVX0YTmN>=IZ;m%(j*(jkMkz@L-?hy_f|ywGz0Kso70%Z&9`Rcsj*qh49g+YDUD3co?kp2r)-0k8*WSNzCZeoahUn8 zk$3vVBg$x^CCvZP*S_1OoaeiwLCfBygd$Wcq#G{R)Pmm&HPE#g>QJZGAQUmWIR5yW zG1faO+wrB>N#gyJru!fXVUg>UwmXoOX z3V1)hx|5cp#s?2@B2T}uC8~->?`=9-urHyeOa-u9u zD}@K3qLD&X+DK6CunRB4ulHV@JW=L#%d14@@~%?t)l<^aS@22he~NRI*}gyn=q`{e^IZMn-rQE>NSB-}02W z*DlK>B-EZ{1+p)9xDoO<6B6fPyHH)a0k*}NK>Uv3w`FKEi~P4h)sA<}Q{K!0WmoHb zXXu7w_5OoXq3J3t@wPuQYHn#5NNs`G?xkWFD1qC9o|iGrgqgEDhZxLA5{7zz4^@4+ zLRz|YbvOBU$Z~@1RbJ-+uZNL~xOZSa9Y+Hd>xice1AxnVo4$}%7{*QC0J7517$Ib`;d!ZM2 zzd-jp5%ym$%gQ4f*blDHyv2IWVb``em<$XR|9J&cEMn}>T7bD&>Bk@}&9#y`7^>&V z+i@>fPAl$D(Utvi?%LfL`7U9hiNFW=Fy^e7a@DN#7J&ag7FF-tKK%woN%Ds6FLC@* zVu;BYfUxOd=n>UgMNvZ^YY8~wmg70W7uU1VIepT_! zc0Q;MSN&T!02DV^{)v0*A1D6)J;A_y+U&%9ABA~FM?t*UeGNKFHwd!7K=E9zd(-!F ztXKVA>ePi)()frxhlyX^p(8~nI;B?tc#@esfN8g8oCJGT()2Hc@gb5D9mD~kBWH&q z#eg7u6}^3$mlHch$H15SIcN)pSbhwp4TLAb@=WoVD8dR85AYW*fPV)J=S2cC`d>OA z6~r!Kx6JgB6J>%7Lu?x;jJEv3t>2a04~ncb0;4b=7Qw>2z(eFGQ!<#q&;bAyH2=M- ztf_+F3`2n^D-}EN8T9`_a1Hbt(~}^Oi9$MQaN^lk%qBeg7vd?n_xk_;-v67|{i7w( zdJ$Lyhx;5#tWm5y)SdaVQSmLL(S2>GXtb1+_5F+QYh#~;fc-25hkj6EEMhFvHe)~s zm`)l+xf<3A4K7U*U$}R4^mh z2gwG8H=!8DRAI&e%jw)_LL~*EI>Q1cl$^pYPN@ezMwPwyx_+qIcF0`6c$Y18MI`9y z=(f@58rV&{%OH6(N)m&gi=_AVridxyY#>?U{9^d#Z+N7k_VNStGd4#Ge(wH`RIYj- zq_aXpQn0PO<9?*gr9ukasx1f=x&{^nh2PMBD_2qwY@`h!CsnyWZ^Vo)Zt0|=w=G7g zY2Yg|pOqd>HwaI@aa(66YL2C$gXr`xKxj4q$%7_8+ZcS40GLm=8a8nqATOMSu|EdNEBEFDlbEnBZj3M*8* z?JuWc7Mf_iBo@7AH{t6jyk{EZ5!7KUu?SZ?6-jW~a>^QNd#{#N3+m6O(x;3n#z)yX zIXqHRla1Q>-k&dsV8Kr*LAqG-*E}+EVwQw$@jV*C%LR$Jxn+`0REI1?Wh7ZjWXt3- z?px1lGQ>bhjNP4?i6W+;gkb4V2Z%{R^95yry115MZc<@Qq(o&EUum!U=chl=Jgn~x zs!l8}o&L02A2os|f<**d4~5VZalx{~+;ae7LaB{jlCBu?UyxZPMeONB@D!w__Ow@4 z9B;3X`*@fT4_-6J&f@EZgepM5wT4vzXx(chr27Kqq)(8n+m+~>uYt4kL}0IDg_;CH zHK7$s-!({+iZ!mGazyKxIV(mN7G0NvycB0doNj*Kv|>|v$Hu3x4lCe5P5JvRK$yhY zNq@jN$4rxS^;-Y9i|IVz^;+tSZ^6{zAGVdr2$kcPkDb?N?Xha!MX2AopGvq{x9I@G z07coS`4=M19Re{|#3r`I4Bidy6rfx@dc|ljAbwIArj@4Abl`nIzHFl~+)J*Zs;(iU z7wMdS_1LXkwS%5xXD2{YIi5iA++3wj664u-eEbsn zu(5pVs_hrARpsB=6)TvA0EP;-C8-h}C*wSq6!*JOmcl9F%ei}&Za471$sxw(3~Ho_JyFnp|MnF7^YB!6t42B**MW;h zvNp254ZQ+&lO?oUe~J!}*YE+lRx{dWHUg)*zZ|-HPzIrzYQhSDYTc+ML$DU0EZw4} z$34HPCkpL*1-&45Og0D#r)&Hv{NrUE!8ZEHi&u9~^)X|q6hK*2<1T-_-ybFD5|}GO z)y)=7eDS75wtBL#$NjiK%duym3C->xVai>)M~XPQ1w%0~Zwgf=!$apNUBmt?;*@0| zx#-#FjYDd~tbfur%DrLfxE;8N(NZCnWDMTKp-UWVUx0anrd&j55SSeSCnUQ9HLwL4 zO;N{3Y%T4vu1rSm znh4sz($*xoqeOG3rpcYEg{e)^baHuQ2mByh)k31LE#Tu6&N`g8_{V& z=^!iJ*z|SV(@Eu1`VGqKhFBQ_C3uSQ3fqRFUG`66N)4B6kK=!3z`WYPd!r#|xa%SS zgA|B9LtvlRwt2@i9fxYE!upUUQNi*-IfS#Q9`s*uT2P-{Ea5()JNAS36JbIc=FA5U zVhaN0S++iAs*XBcIaH=Ps{7_Hbh+D;@H^kCT@O5XHE+3@I3to^s&~zR&*v4PYYk9n zK%TD|SHP2wGT13Ic#(82-RpFlHtz5fNkx;Gb78M+_>%5}q-Fkpn7)UDvBY`wmH`2r z3fo&izA(4coiPbQq-d~dGy29x;m!ml@D8oF&tY4JajTJ7P~F*BBN3RoHlte&z`8*1 z>9-QD63>)CjpKq=m;xwXy@z&uoN700?8;` zpgjSI+S#k1D)pK$coyDw9W1#h1N>)v5{SqCEW?Ce0?Y**($V|OSA@l2pc3thUkBKY zNNd9H-C&+^VY;2L9YT1?J7@PFhO>D;gPh2?qk#~Cr5GoTbA6(z1`D7`rt3~=r=%9{ z8W;J5AlGww9Wm3@bRC8kCLW1w+(&sfTo2{9i{44T8YF|c*2%*`=)=tKcp?Y4G#hLS zf0LY@VNUHhF6Krk*556C&<}daaA)*kiD~1Zc6cz%O7nV$6O)1RNPNxf$JFg_8IwBKY)=za1Cd|O4-r=M1HbL&B zi@4qSZzu9^I*kUnM73nIMz0>v(=Dq ze>f5MA7#ItIKbC47j&Y3_LwbtJK1{8037^j44EN4aWEsVb7-3DR8*j(?&!wS-QN`v zEBhw?6r-7y?=OT{uM_myv7!V@pgd#$ixz@7D8~K)hL?}pTlHqC5lb06gyH*GkJv7M zxO`ag2e z?SN|gI#w02KWwh<(uqPR>7XFcuqqK`-m=aPm4E^Y7)Z#Fgo&!(d;FfB(7>X9+--|T zHl;UBF7e)YqcAXsz>_9mUK3`$Iu2|WwlGP!xoOWw_h6k6wOncH;ZGg5>yxKjZCl$K z{T#fXZmYkik8TQJeoX@N^9eO;qE0b{LOQMsH6%BNaZzT%^Yx3M{q`1b_)x^ac&sSs zX#>F+m^0}ma1`b!;>&StwBFHiF@Pdr0nR@vt-U`xsxk4XpkiqpPsGd}u}-$uR3ebu zU7#2I(YhX4IN@?%qRPt3%0fnnMv+Q9@+zMF+__7FK!3Fuf#BW?%M*y72~p!-X>=Ke zD>RqFTjLI&sOrzUcK6oc@l=wvUgogKD2)URO^HD9$1?U4S_n0SMddPhSdVjX8vO*t z;UV{J34cgmu4zDVO>rZ;;O>HW$g&jM{`ZHjHa}Zq8dw<-@?0g4_Irn_lJ^MBw^`Jt zj?4%jv^|u0UMpp;%S4R@X8i^a5-4Yqw$9Eju7DvchnQ7$Sba*kkyEL4Dh_l!owS9q zJZ_uy_R90-*?s)-3pE4)A^HdXH_)eEVAP?AD@f>wRRi59>}Lx6Dfa-u8#)7Xx2B-k zJVHxy!f5L0Gghq8C(r%ysyk>TaD&u~eKU!T!Yp}Goi9Nf^edpeHdWkp=K~e{B;bM5 zkL+Jl4yKxt%^HYB;8PZh;C*ahW1B!+rR=$h1kKWU|?MYQ4^*$OQkhIq?o#0L%$ds>8jIXlx%`=aBB(UcP z^C$Kg5XbHXRtqmtO31uS`Ve+YBQFi+z0G_mb5@KY4?XN^V>>Y916)#V7YHK>#21(v z^b?>fIT1O#z@f6={|@O&0DDd_flt?mwv3$J==*LFjnWvlR(Z zXP+>a(8B4NN#c%d5;lpgS$TvdzCuYdlu1ePxu=HwCpF2MPdq&p6+_QrL3f6y$S0*!-1X#@ zo!zOAKp;9o9e_Y3C$kAV_hAPs+WG>#{^<>PV0&{>md+Pca_u7(6$|f!#4ZnS9Q{?_ z&`?iViW=(E>A7wylR`SaylAGXEE_A6J%VOv57B_pzLEfO0w_D>fbc5*5(m_VZEMAP z1Zvv6EYJ1^sCH4;W)76Gn?XPp_2nu`eq1(;T60Ee1BfNlGT zx`Ez4GzDrnl*}Ol)PcapYch1?XF;HO9A}82}+9Z$?31|VU5-Fc0jV{K}Wdb z<3w$y^tsB4`g6&i0k$_|#dnMI@$4vzpZ$9w-+I*&cyItrZ*lg=ey^kjePlk?W1TOa z64I0Xv$8u+u@YW8(_e02>U4|eGWk!SA%gUbtNYnu-Km#=niLBuX0&1;8Ei8_`hvz! zDTqLR5e#xUo!)2hccbC;qul8g8a^tbfs%H7Y)Qy1wT1erB?Wp2JXGnfmG6e-YdR8Y z`t8%1qgku)_MeF2!*5uw_!JilN*f~B4T-D;%ou{>PMldgwPZ{}j-iQ<-oCJ>nv+{c zxeN0us?b^F<-1yjYz8?E*`C)bkD!)b&`*SY#qkhsdyh@D;3_p+UAQGBDMo3Y1!K#d znTMNSs=en!sPxbaQYzN81%495u*7f_<($$^J}3+CHYejBqnt;;MEuCO5@b?+>K)Za ze^0WAc+DEzW`W4qd%!aJ>B?;tPHiyvfKU0=o0}_NLu2_<>_bJ7H-4wbRYP6 zoT{1ev?@H&@M9Cv%B-&Wu-Y%Fo+wdAeToLHgCGcx|v^*u$ex+xg~&ST4%|1ziFNXh2oq)IhOxU)U9JmI za#C$vM|}O>tNp61`28y-HdyAC?PTWjR8#z&fAcZDU>cKS$%$(Gw@D&zh6S@EjLX4^@~$=UZt)>B2@x4|o(OA|c_k{UPPTYVDu11<8|5iD^P1u4X`?bB{%ouZ4*?xgz6 zBUlgIm?kN3sh6%6R6@H94au%w7p6w>O-wbtP-*es&pG`8bHdnE@FJ9P`s^p;k63Lq z2v|M9>yWYCTmF{HZYp6^>7KIn9T3JO^nvH6_x$bvPjr{UQr)K)LWjDwZ^hk#(+EtkYE7&!d!?Qobr>C`-)Y`oItW z%bu?)QVy(7(px|JOe#Rnz?GuFHPlcZI7nu*Qw$x0tGbguetW3W!A0`WV41<$({0E~|x4cVE^=jcUT2dEo7SW@e#?>B!0-C>DZq$Z6U1dBggVjqd)k zH*T8`9eZQmRHYm zL@=yF>3F$Z+0R4x+d4g~N92A6>N%cT{n4Ps&z$==+C)sNH3KOC1VZCz!604fe2iT; z&%xfSX2@b&sHjyFf-{cJ9Ry;~b7TD+YYX6=fcxz7ghjy|mQp)r+r19ILHM6DJM1)R zIkpafl^MoxmorRiCU0p>N5;;8plGm~yUSC%HJBcZho{7P&+uARCCMyr791{vGVuWRbyxOi%= z3O9NY)=!nx{R0{J6`(No&wW;wwZ3-Lm^X2>y<}|TfxEf8=b7JerU9;po)|d}r*sJ{ zU&&g-J(_wSR!B)B3l=?YJWVdC^S6ml(8%3N>XF^!&>D}5=h!l&m!xj)*4q&x}xf#lTlWVMXx zs8L?~-9>gjrW-n$3hx1vpN4bz6GNeaZ{~2Ej!-OB>$~eHpAEB|_EYwB{Pex%Qon|m zU|(pO@)q5m!-IjGaD@lySVac!K!m?FU}%20W06#S6QXyKj9^nyzd}Jni^iZgvk&79?&s#-Qi5&S?>k1uH5}qfhyKS>cfEtGLEdFEnRLL{YIe34cw=eg@5-@?cxBldgN?77P zPe9G^3A3~W_HIwm8nLfKgIPx)KDw@02j&rx7o6+$4kRv4e7}|&sB_P&!h- zK62sWm<#3673^z(0N-&YC`Scc(iH0!V&5RA1kWe2+uf~GV>~% z82rL$W_IC&v~o1BdQ@?Pk!wfO=mgaS`l-_`pU`#8D7EqB@ZgF&;Aw}|=UzR5qfsx; z?5rK3h8F?{Zv;M6p3e41>m%`)j$w(L*3%pDeBmAM7>o$x3j8m5S`frLjUUHM3&l_{ zq#t^B^2;tttDKb64ziv}cU2yc*0*iQzHvL5cUvU%801SLL{9BfLp}=QOX?cZ(Y?w3 z=!0}>vXp-Bd~ZTeNUC|5Bl)`H9@5(zX`8>caH-aqxcm22H!xi9yHY!@c76#-xmMEK zpt&iFFV>zv@`?cH8vc=I74^IVJOeC{dg4359(ttQjn5poCQ)D-W%%1BLE) z^5Tzv)Sfq;_B%2k%+Lilcm?Z);|c3TQ7o5G%>;h$)V4OH@H&lBFw`?~Gv;#eeos9k z)Y66M?*h$qql<|Di@i6Ghw|-v75`*&UU_T0bUbN^BE>THHN&*L~g z+xz`_e?GA=K+Wxeq@FO;-QtFa%|Yt3hFMh@1i9tW*r`BcP;lfeI-gIiJLH0t+X02YOI# z996f^&L0jk$S_MkRn?nnK|@j<#@_4}cCB2d8GQ3j__&I$a&M2d`^GYpI`X9M5~HTp zv;fwoA^vGP)T#Mz>v?qMl-U~JvJvh-vA$Hv^I*;pF}u58I%QUK3Eh$K zl>NF|x#`UGkQI#>q({cyr?U|xdF$)8g)7=|8ugOiADy#rOOwnk!$=%@I_>uA&E9E2 zR(c$~hsgza!r@*n)bpTt&n0+>Mf}goV|tF9-j~Nd`Yr^xtv75i6};C9yjKfiM=eYO*u)W!Tc5_Q zfB^fiuiyB6{jcV$@cu|+^5lSnD^3UJ5QhcT!k_c4_^*@9U0wj22?FgWi~c=87{v+7 zF{VqJ0>nrI#{XhL>xqLNlKuoJ15f9hWM0^$fpYl}B^R{BwS%YXb_l3{qvTP9TGUE( z(g=dtyfDdlg8$@41vSJ}psxpTuFhy^t#0=(mTO2D$xF|grh+|Rd>n-1PPi3G#(n(E z29p~aS|v_0kl~@I@ngUT^HRW}2?qzM{Tki{N0ahJGsG|qITWFPdD8&bFu4U&kj%{G z1^NUyG}Xs6#2~sb8#Sh~>caa8^*$%?#qL`2 zMl1q>F4hmV6m-OT9H$_g0tx3nI}|qdp14brf+mi>#H8aQgAAOe?8FRrEM<60e&HRL zkBoRr-^-?tSZ**1sBFN-+(We{MKA^77Gh699$ac%Jm7KqMY}ydOyP{wG$s+#1DGY` ze(>ZH=h8Akz7`%8ReF1COhTELSHlfsLKi&U>5_(r~D z!#B*`Hj9GWODd<)T{|E?JlV;Ml>8E|q`Jd#G_Hlg*y`nob)TsO6?U&oJLJVH#OJ59 z3qF3ae@@j+d+%@2f4j$E<3=S8KcFK(bCx&7Di}!VV#!H*teA>~xW6YDX6Y zJPs_6ZSjg3^o#Q-SQt6O6d}_Ci{+|cmx_fMCmOkBDX2tYPj3kkMc!eK7@l&t|uPSe@uABRZoZ9`SFkDEw?)BiFM@3cE`-ISq5sjxR`{MlqJYEAkSLF^N*6srnq)4=Y4`N9W zad`+u<%3_)E?_DTdZD7q%p!90AL=k{h(Q^9^_OR_)?T01yjrR6!bS(h8w@F=tpzH_ zwjcyu-K9n^Q0`Xxav}{S22-k&NfGEpU@NyD0M<+|1lUfh{17CIo*GpuF_$%06Y-OO z_H-uYUJ8bh1JV)1N_6M&B(u4OcgBTnJrQ3Y*Ica($Tf6hV6rb=01Bb1qh|{GO!o*~ z4_@Jh>PS#rC0*nq^(;6?j-X4svK19sX<6WrJD*N!i#h68$zPXIP+WWeRN(tlr$VvI zC&6eD$Piluv}I+Cvr7-9Gua3eIfr+LGVCb5wANynOemq{>mC((w>%r7`sg*$aB$$khR zy5BhUN@*I%bX2>r!2rbh*GD9SR18gq**O4}K#S$%WvWB(y72%3hKS=DO_X_olhT2? zy)R9+7wmQ3b#?z#R-#&b`j!mX;&|#OVB-zpe2~e8Q~`d)MJw2BkX9Blj977jgrG%> zLDX8T8vqLK0fQW5@teqSc8!X2GI;SLVe#{TwUvJwy!33Ll;OT$AEKoVN`&D}|GB614L5U+R)S{fxL>5*X9{xP(3 z`A`2@_;YvyXwdiBNCXDs4YqH6X zmH1f#eZoP>$@Zu9%nG?sc(tnYQgN(ywLWde#WU`X{#okAw2>w2|`O_{Mr z1|3fEz@D!*_>$tdU;B#bPFL?SneW2}zgT2YBWUVlMlPO^g)bY(rr@S^8Iy7JfNAX^ zLKLU}h+*}qVJ~NA&y3jCXZ%e9+d|%(N(+S?4RU6@1|LC{tuHrE##r5pP6Vb848%y3 zOWZr+x}>6DFCje8C9Qq_c5xGz@*}iWXjBb*YSF&J&)mhx%!#K=PxFHUW)YlP=gBCJWo+&pzHS{HMJDxB%c@? zaUB>{2{N4Gm{xYmz9QW4y(Qh3pcU9MLh54~G@DG5ORi%bq}3XQqDlV;pNjwZT$ z9pZp{7O4E z_cFUJQ4^kfeUqacGR+7_hv&_8{61sF7l&sN<2$~M?Mp}?Fw>aor%~;EF z%yG^BT2q_G9q@KibDM3=TNd%zRJNi^=iY>!zid4G=&zb&tftuM5*KOm{<72(ut80N zu2xc%pWmLx^R8jAVsnG;FFP#d}sJt+)ZgyUq9Tbfx_a5zBbR^vlB6*%kiO5l5-Od;h#^mXy)de ziVpLfXtE_wWO=-E-8hmWC7!P(eC35n!wx$G1aR#B%TapAD&WWD!KO+6_o?mC=w4;@ z16`7%mP_)FxHjrN%bA>YLgdz(X)i(7Ixcc~>4e+8kA251pHSj!OUE=5kDj0ZQqNle z)ebg7+l|Q`MCYhF@#d+^Wa?w**U^%DZB8URQ%3cr!hQ$5|7k#g1=K*8P$~z+WnqD7 z<4X6s2*OvM#`AMa&ed&?RQjRZ=L))q-2N6Md??|d=EPlVf_zY*i&cm2Xn=NXUL*pIKBgpckaC{1zz z=IvcPKaOzZDzH431%>&VP2w0wsTX^HvH1CBlx!_4WPu?umVYUiegNlV^FX>Y!+#u_ z^S1K&Ymnd#TNPl_{Y5MD&tA7>X63nVl|M@N%-`;JY?ZqNNcofuEalP+nY~!9a?u$$nSiZueP!(QWQe~+^(^ZXZrsE4%{m@8a-@^d=1{UmD#kot>6)Aq@iAJuDt!vwb zudaQXSF;`nk?cCkIPKwVQCu0mG_xb!f9i6IK9BxQHU;*9y0dTpA6S^Oilmzd zbpN{*(p(Dui|(L`Jn${o2K{$bulw|Zy05F#0{tE%d*wY4lu zW}$#b8w+nOtKQ>9)LxVeo-IglpzJH6rTFS6U%3?XfqC5bLwu~)t> zf*gEjP%x}JO-hC_=<)z;jzDGd5xp?Ekv8(qkKz9mHT-Qg^dJ4V&g7JFqXi57N)Nt- z?r}X$+kpQpUWu}2T;jH_cY7vbu*na<8+44Jhwm<#dl9*(;iRUpxDI=nG^cB{SCYS2 zMjwO+hAOU=fWRn_@PmXV|ClOHGOmRd?Of|FI^V8m_cF;LXmk-j)(rNkucBK~!x&;^ zOZWafIrOki(`{tIqitV7mT)mlVGx8xZgn>*!EKX7Xos%uPou~T*IE#rt|w2(3cC!x z+;)NEBC|Q0{nbOQm%Ke&iX9<)=}vGU#m}4uMIZ;P`3;_oSforLHy*AgQKK$V_kRT4 z$p0Qwx=yfdd#}n3_A7k^nBNn4Ld=Gg^1wPG0Z}}2%fR>USMLB~v?7;qUQ%2JBLk|3j8a7`g)~SCNo`xs1}ReG`5gFsN6Hx9m`2Sax4AhH(~Ren>M3o zV*)FmH*I7DzBia0!B+zw`dtRLR_je6j<~!HzV}h~fMf9)lt}8Y0i?C6@)wJV$^ye7pZ)^+3Up2RdL4QA&5vC{~&9}yu?F<2~~<{kB-a)WI80L*s2w8s}K;X=x@ zx#lL`@?KSxf5Y^9e%;tX+BT5kQ6S}?L(d~;$+`o@YrZp{GTW6gO? zP7zQvyw1ph7IWYXP*$JCQ3r6V%ZzFeH+G{&(bTt$vJl0Po(Uc}jgX*iO4*2A_Xznm zK*2G)xx^yBq`opM=}*0vA3Ay^erJ|1+aEXjbvI%|&--abypkM{42|Khr<(Y3^ zu#m|ecfl-wT)QlK(_U={{t7$=!g zU|Q27p&R9}Ay`CKsNo><2w2Ihc&DUYbaq&AN?E+gCMmksN*J%+TH(y6!#`qY`v@&_ z&^F{}-wI2;&JR%*rXZfsjoUmk83irc41!W=CVoH#A7=r}py=WTG|(k{81H4SKrMnR zr-3X_#Hrr37iJcLy8Ce4y}FCnY!0s$OrJS8LmzHC&Fq4$P;*w_=#PWx+n8FtYK4r}(nM zJV5p75({kbb|dK}z1NSgu=)7F-PjMaZ$2-f;{`?Ud{HBQOt{XBQG&Nm8b*TxGHk2? zqJy?Z;Y`JD(fEq5#~iCmp2u?(c*-g&39z=#*nbFmFKW7-4GssP@k#KECa9BKbk>}Z zPKbPQ9CdLZ)ig#~DabeXWp#}|-wuPfqrz5?yH9a{kjRpsGzC;jV*l2M&@n7D0Np^E6$)3#qKWJgPR$lQnhtzRrko zr2F96`$fz>0k@r#yEaC*D<|HUa$(y7mH2Q4W-op(-n|pv&)e8J;x$dpmdc-67H)Vu zHZO9xL9*;d+grOPv7GaVUcECCldk{F`9!|N;-^J|j%-$tKKX6|0VQZiO;EEf$!uIw z$skl2O2onW{MT%0N0?s`JMoVAFewQ}`tRuw2j(()$T_@TdDdksV`Uhnq@$6!FD6a_ zZM>OMDO)x+mOy|GMJ|*2X$UX?FdSec;vwyjut!ex1#)J#a;;jmpxNkt?SjJT^~5QG z66EVe2|j)1EQ%0=Ap1g##N3chrYPeHM94{x?2ObgBq|;_T7YV4oUrZSKJ{(*3>S8zzU%{1TMl|1d zN0ev2B&>{$ifG55HMnr4mGZ;^ib8=J$IU^y5F7E^M;&PUI*udgRF4Lt^sCV7Prvwx ztS6i~{IZCXA07q*6-1|esKFmaND@;Cosh3(WYHz4^EK@Tfz-Ho->F@XXBCF_2j_2I z2dmKzHvE_rH)XKN+?fivXyI2AjGP9tQoyXW^+luudDLWg_0NZT3f7Wm^}1D?DLy5- zv>O(mmf4_&tVyypQrOLV2($IO$g$@k_qW`_7CARvlTx!Z`oqDsBygXgS{b1SIYYxu zEn8l#$WeTA5#4(5=ud$_h-bvM93TDa8IQq-RVer#E6aV~DA`XbS|Y#EEA7tsNzlar zh3avWMG`|)eyX~Fvn;T7m%n*fGe!{X^^3*AQl04u3Mhu4 z^Zdsm2)!Iz(*TC6$hd+hl%R?_n}IR~(Cu$(LlysM{E9x?Ro*H1HRrQe;Jar=IgS>6 z%1e__N($=B!;(Tldb4vPX7emq0wDR7i>gRk44`=jDKp;GdQ%h{Y%-Gx7JS1CB6puC z2YKF%9j;Vuo3(l6sattiYK@fv18N%U=0Wh#h@k$h6Ve6h-wL4ixLD3K#Df8FnP3M4 z#4Jb~@aV}_ztOq|WBg4EVdgNtsIrB3*s(r6^7Z5Q{tG8Q^c1KpZ^XGcrR{aqDfb&W z@~vNC1pfdr+`;4`FskafL%QnNV0EWkONizk9cMSK`6;uE5`b_Rzte4KHv5w6l=bpF~`|m`7&0{cVvAlzU0Iw&IYX zU-C7%XKnV!w+6cqWX~UT2}g1ulj9lL){^lMRR0q=uhfx)TXDyVvoSVG-eX_w<$Gj0 zw^NrWdpKO^E&jtV?1luT!|`(#v^yd7=#oLYpceuBa`0Q-CVBQ(Wk1vFb@mp2iY%iQ z?Jj6}zp!c~y*;8|@^<0-oVQHXkl)p#hZ@`kSKSb$yls(oT0@({QU`iW)8!Y%mU_;W zATB6hq_d#BJn)1?FIXmstW-ib7})37k7yc+v0oqMKqTXOKuiLfw^FGx;8wAwQ=jmT zIR0@stX4qjYyq|4_-s?VSQ2)|gLcvt?>9X2ZH&~WYXorvY@{J&va;ym13e{}HLck3 zO~hs}xaZ?c0L=f>8Pfm;5gfA4mY+;bxD*^R1mB>6?f-MgQvddl-C)~t`b%X3N3jRr zWt`cz0Tlt1Ux;^Vx#2)T-PdgM0<%IFdn^7IidRsW%1i5fF_E%8P^xqiBZ%}RXOHd`(*RYS@+2VX$0kSM_ZXCTN-72?OGrM0a-AmoZivAe`+Jsam$v)0>0ruZM@=-|p zU6gPg+s{c4xRhMrsZus-620sjta4p!zQw!a%x^;N)LgQ99NnFwK|hEW-E>2iVfk{RzL+IF9i8XT3Y+R2SABW|n1GLWKxZ`I<3>{f z78RZbgT#Fr6{V0yv}#dY{P?XV$2Mo+UOavhU#u+Fq42)gl&b*y0?WcXvu7Gf7X{0_ z!-l-GKncwS1U;s|qP$m}O8X{SZ@;MhgxeQ${^N=EX-2j_ViX6AuI4CcSSPbJT1oB4 z!=1VQC9|3x2Crdjv{lUq?@uRJtUjLzzWLSt1Q`%J*gIYl_S0^Q*1aVsF6WOm1HAkmlB(r#ef?_ zasoG&2i(|c;Kpp9X;M#Mwg7q-eg}xrB1-Y~%K|@voIGg$5JtA>p8Y)FLf3eGl6p^| zy*A8S7F%}hfaX4L&*<#zx6+{@pxWDzgC-mE3j6m?<>vkFwhZr)>TG0+?=d3SVsZ}o zN*Xo9n(Hg_T(7wBlhct`Yb<9k0Pas6@8~{iF4A;dJug~E!+9q*?~0*hc|k!LM)0tq zK%~jE5$k0k{oSAs?YdKL#{_ zLx%YyiuaAZh_O=|{&G5z0$vRV6xXYNyZK!>-UVzKYVio|j4h_xYn09jTCZN0?NxgF z-R_FpG1cqY+1q&b3i)0?-}lhqf)DdC@JQysT4(@Qm%DUj51$&SeGKOD@AeI zhpT7Kuk=8ZnTL;9yS*i?Rr^JTTAAs74MZidH8=#>t8y_6JT8YMrm$40TpbIX=drE9 zYwD|t(4(=oy^Y3@`)TDKX`*eA&jHqx89STk=jhJB#B1XT@3FkTKMVBsni7$SpEXIz zKKAbzQ5SyiT*v#e_aamDQME2?w0FO~J39whc=0+O*wRY~gO<|KeZQ-#>~1=zX}(?i z5K&nB(!=n!P_$dp)OA%1%my}BJJfKKsRusfSEmPCQ0*AcbdJ2e5`>DjOhjH5dWqDA24)Zkq5>NVJiqR|X-&@VZ7Tx{IRolW(>?m!WbJ7^<% z>A?7`AmCsNl49vb?=ZsTZ@|GySPiP4 zjiq_)Ub=isd^<>x@gIP*K`nMpbqWsfs)Fh5C&Uw!+p?^;O-icf|Fi5MEkq7okI=);ox(yYs;U^_bsf<){Dy=Q4i|m)z zA60SpDj0P<>TczpTrpsIuHDke5-~SP;{uO$0!u!NN@5BX_W*Y;TnDR9v&5#E`Fb78 z&NkP$TUlLhDrcnY?Ja13+zYA=*#zG(>-S<{i%@hS;U(ySo_4P@*`nDm{s6@}I^4)d z>->F@BGsp!eYZ3;t;0j}54~xDB(VrQp#y>sScUnT&Vurt9|3@1KTkIsQma&s+8MMt zbm{oi<6%Lt6JtTYbuu`W5ozXPVBF9(_LT?YW%J1~pbBucvlHu4g^Sbsz2*AQN4kD6YX&K-2)Y{I75x<<3F>Ra}w1@CQ>w&aOyQUZyL?%CR|;Sq22`DaDB2-aY3o; z%#$ZydP?QqiMv;-p1Q?)LJd3rDpb#lQG%N3VjlWEWTz1NDcH{xSZA(5l60VMaT!KT zBO|wTx<~EcRKvbIZ{#!duHL?83x+h7?I{!9PS}$ej{oM!lul#R0Z2ce4jgVB==L*w z$-DO8chD@itPkKiUmP>mhNQ^Wn0{u2J#uY)_xHy$CFN1y^y`er4J$0G5 zB(Py$qDyhHC=7NeX)15AiIBfwr(s3;5mnAD@NJ0(4QHh<$;7S%xGfj$Ni8>Ra|63w z1Uu?X9ROS%!b_;^Y!%Hsq~~6fTb=X(+TDA<nMHC<;VBQ^%5q#F;UuW?tG4V6`Clwv_${!Iz|Sog05AA(?$58Xt%F}F>%s`b&!y7A0@Z=O$uqby&_7e*5N z0F|zxPK|i(Ea?2b(`j^mzLXcHK7AvgjS6oFd@saJ%1-9CTX6d1H%OTZ_E z9KfVU$Ec4|rjTXx$3ahUnooeuQkGai>gg|}a-s9L&kE^Fu%bWt(G8HaV4zN61w+4B zg56N`X!ICF=ii|2r+~_69)QsS<>eThmG8PWTSFk`2fyAhQx!Lb%G9-MW>)BZ3Cv3$ zF1x?k3~Sqaly%D%{V9(w83E3|BfLRl58@-IEq*36OPRpfbVa~b3v!M+AIUE{THNOd`r0oFJM>`YqVnXD>wAzHaxQYo=de%TJ<G4M9IA>CcS+ za0UGk@h98j&#tkAfN$OGfhf{o2tW@I8{a@;|M@W^BuE~P$)%&=%S3G4aXEoeYyWK1 zl712qE9LHetua-muE*+je&{WePDAt$5L^7=+YfH3Fgqchb&LB57CJ9E!!}bfW0Dhw z&h)74kI=i6GHh$iS>nlBQMyl7TEbV5bzz<9k04*h!N_I0;2tK2A6Q-xWRoX}paF3T z8-31{IBa~s)=>QFmByQ0Wk2PQrO3)r-!FZeF;;kV!(mzch&nSGXskmGKq>_wV?!Fu z-9XvUn(<1ITtdTDOi^Y4G&J`-Pdu>dwp7^SaKl7 zf4Yc2$FJze!g0`~bRO(UGZdkWY6ab_AX`TGV^;?deAXa8{FImg{8<?!Id0LV(Gc*+DfcW!Cku{&Dn(W{d>#uLct`Jx5d4Nm{XBv_G`COeu`IOW$}JvM3=Qmv z2P3HKUR!eD(4v-q%Lk+?uCV+(j%Z#p9@tzh}^Blc*(wQEOV}uC-Y@r${^Ua$7Bm`V1x!(Zdk+E~S$sJ{`qo zNIS)VD{yXJV*(Ipde<+6N+RH=!WA?S_$ z%FEcGs`vP`yi`~~-gTSGmKiauP0kB@z)JvY(zi?&#p4Z}XJP!;t4>+Ht zNG5z_R4qt0V-AI!*;SB!fNcgZ64C;(=~(QmDlWwuKYE_(bZ{3$;E@F3$Q|W-d9AwI zQyKpJ?sdC9?!8eYoSmdgI~j!3vuK5O9Hmmo zgLmh{rPH$x{gKari7#wL+svw>E}<1(1ZK_k}9P-;nBKbv7Qn14^bqLBe%gHOT{!U$bRBjDLJsks#>}0yX6H7g4}~_)^$tVD<+%252y&0nJw_f zSC`!@X#6JJJ-x4Z*ZCB*!x5!6c;yrrWHvsBi-CwAYT0uA3u%o^)gG_428_4dLCy0r z)v|nr?RTq}*fd#-7tp5u2vCo1LdNX1*nzPe>>-WMcOB-@7Ql3e z2r`HD_ENa#$Vn}Mj>H7d{VS8-b|??i!fj_C&`@l&)=<5^SI;DpJH$Hn?6hPF=K)gW zdH>uX|GzYY{9S6}|G@kIt;3`H|6@5D|36kRHu@`k=PxPdf8|%9?8b9zT_h7%Y%TjUF|AuXxV!3FOv5vjjYm@D@U|tb=(U`^=GC0W%5=e_- zwR#|!oYwf3ooW?-XJ{#N@|Is|&6zeI%sxb$*YVmj_XMgW_^(;h(7?kS0vb}N%C`72 z`~!4(XOpCM>%G~8n|Ekt!?RVD&y>xcZ8s`-{h&JfrW0?C>&;dT37W`aDor@#3$`e) zDGqlZRT3SU+9)MfTbFtv)go$sb{1KF`azNmT563|we+O}pU6Rxw*!oh5+@GoHK5kODDY$_-LK^Kmok^r0_6vy1{I)#eC z^Eg)bm+h~KXv}0UiV^*ucDC|ii`VzI4zJo56Twf%#5_JmLd8}sUXc?!;c;@W9gLzJ z|1^J1f}$S3<(cQQ{|RrI&DFQ24oJ?NFgp&*k)}f?bC}hOglIY+mdSynY0|HB)oBHZ z!pb>w%tPd_pK5!Nb-jVNJqiW+N|b!YOhtXaoqH^A%k|;=*xM(!uHc;VuGK9 zh+GUmSxfuM9bEO?OCF6DEFYbpVCqh!JbCN&TAb<>I(DqZ;pzCQ)K1mo$ph7Ps0+R2 zn3MRPLfNYDvz8{$k85;=8{j~#fow(m(JJn;kMcF+EH$iIpiQxr;?=t7p{Z3rziX<_ ztPka2!3Uovm3xI}9;xY>otJ&_OpUo#M4BFIbzxgO6uW|q2{}Y@ZbC(&MwpVlvlOYf zE=5M)52=;ahRGJ`n`|0Ngbj|=`I7TUMDjcpT3nWLO{)e2MoOH5;I55tT_wD<4Sj@9 z_tnY!wf01uq)W1YQlnK&u+x!!@=2P28NYqouBBatDgQG%{73ksl*!o1Z6OkL`;sI6 zC7(FU?TW88-T#o(%N_9nDydI$qaFh48>;5))MQ3V4hG9(5@b!>_4(%g@H3{9iXAPJ zv*w@2qusVTz_ODLk_V>+O$bGJ*de5ODa{8k+xGKBpK3>TW49uc5(&L1wg&pL!E;=ATdY zq83^~iO(=LR6G42Iqm<_d#CAEWLo`%R>UInaF2&Ne>|Jc=|%ifv3MF;re^m6w&-4+ z9oevLeTn~``cPNlDbef-r*VapRZnf^%?|sg6`X-LteO$zcYq*wAMkWTYfUm`OOlpG zzY(9mAyrK8GcGYrXNUkCBM@e%uupX+diWmDQ-u9p{KNuVA2diE(YoFeoBxD(ON+~( zv)rQzq>G}d&4Zb|Rf7d2bxw|ni7QK{kwMLx(%PZX$%*1xI9FVzjxS9qNPt3LMbF>U zFROj=Y+~wjJdbsilKv)#LdxmXbe64cBeNqbJE}{Qonl%qcST*$HINX?tTTZPXo`6a zcqxD;nq|SUD?iLua?nK`D-p7Uowwup$!h&OdAO0S%kgM&Fr=?Vj*PoMYD1nH%{Eh& zE#0hg7;@=wKX+Kqe`{4AVS64e>d!_U2V>SqrzQ;sm63Nav>0I_V+%bs*%w)c3SXZ; zza3upMTwOq)8aIX&A+q^fAW6^+|n(d75rTJdHidw-`&!}VVP%!*>4vw&4|GkZIi`I zxx}y6;SH)!-%Pjqfs)3rIWotVE=&9XCct~+;QF>Y8hGezWL{FlJJ|V()HX(TS=CXG z(@MxuVO3erh8H_;@or3ymmNfhz8sOev0;o*#b*7eGYV38N9TeUXd3eZFqW`Cdw*&66ELIc@B}PX z9M6H8NOFG>+6HR!=0-uuWQh8a%-d|5+QdAFASYq2Z+h(La8U4W;Mmv714WX3>c0ki z{jsI)-yt^qH}miZ|J!W;>tn~2u4?RwpwH84f#-4MTaP5BGnCAEW(sWqpwwYiTw!s6qZ?EB1 zART+i0WV0GRu9zN#AMtUZF`%7P(7^ohCBEmS%dn3jBmSC8+W3lru0K^zZlVZ_ql-k zk-O*5`joA+Q1lV{-IqMpb&oC0W5jJAXj0*n7fBQ^=aqj$ubL+9W4Q{ z&R+kOp~%AIy57}Ln;5n=;u@3_%{jTdN9dadpQ?8%fK0azuuWlOu*HQ~&~tJPG?b)0 zSiY0suwwb*8Qwpv)9HZY9m(h~Lqc9e-f+OJ#_#Z78Z@O$RPmG&AC`#TRFO~JcebJ0 z$ojUe==Uf!v{Sb};#kmCMqce6vSX`drU1n}w-4`DA+i(WYsnww@RF~^XTwxeE^MTF zd1pu$c4uv135pj(eeL{nJ89;$#Y^jLsqoE@C~GkMhJRR6yIJ@g+P3map{(^eCf6?9 z3t#-u2H{#k{^){by5rAY1JyH@11E}2i^E1fjXpZqy6ar+Irct5s|P`MdqULaC&bIq z;b}!f^L$r1Ub~v?G--UuZz#L(v-FE02_DRM2zEt}m=T?q>W;ulLXsQS@FO0Up47xB1Y(^`oek^J(Y#m>v~Q+edRR%L^`=QeX?7}@TLEgPi}gW zb>YnMYEv(nc5Hge0XB#KH+-y!ZcN1T!ZoI8C%||gE2xdh|8fVu{55DkGK< zf4GKvo-*0Uu%`#m)ZBV)PiqAqv({TlyqmAlA+x1~w`(4}NbaDv_ulNo6L-VY4ijPn z_V(iKbDuqJ8AX#vPtw3xN}&zq0KewR2#7aC#T7ryJX&O(V5x|!l zJ41C3foz64uCh2|?eN%8HjC?hUe@+o25%QuPy8S*lZ0r8#`N;Z-@ezH6MY?4tgF*p z2H)Y+St=2wHd$k-E?n&zD@v$ZU7=aszm|C`;b+L2$+J6)~<}a8PJI6$!w%aE(4y+K4>i{ zIByZ}vr>*&`w4k>(B`tM4Md=jjlPjhA>st7391VFRbjo4Dzxg#5w{SBC~g!$|86^q|dpgQ!QjpY5tv7;iUA+B+M!{+m%?npjkB^Q$DpYmLqmQ&l`}476og&44xy_*+rZZLN+XHznbBwz6xJ>e`aT}g|EK#@^@boI#Zm%p( zGSrP$R|VKKutg(Nxs1jhduPGp6k_RWb4eH$03_s>Jm`9~NS%1lSxYJQegZyu&lmqo zkDggc-)JRX<$9JiLIz&4?yj(=UMAp~n)F%OB8$g+EO_pQQruCrsAFTLw= zSmwbXT}HlgkRLRSjg*p2wAFrMD3u{gJSP*`n3MJDhp2LuslriKYPk@&q2)wGnFLe2 zmnjuwN%pS9wBDcvou-`360CB70>qyqjhtrd(kM`iS9Az#ztWnQ=zN!JrO15euIG;} zFG&m7id&`VQA9~yUFUX}b@l=7FWJ4U9SNvD`;RoMKA`hB`xvOpjfhjP)+8Chl{cAk5Ds|tBpEud+3j$>|@&<3K(D=w1-F3kmlyWv9&mEECEVRfcc3Z+>y!2uVC($~a0 z6m?Gxm`R?H%j9^J-6j)t>YtbsTVk-!l*OXQ_TzbU1q7=vJ9!Dmp{iV6qr??>-yVp1 zpFOu$FUY##B(zB)bdC%HN)oU7BeDqTNKS|SZS0|W{8n@8`2Zhk%MAyPl^om8kU z?f~H32gC>7QHf(~moJDJegDSOuyjLfr-C|e@r_Gbi$V!{b_>~iv0;iwrt$k;$m79) z1u=FU->rhnD@bPW(r*KY@sQavS^6zkC5*z`ChYO9=^<6@_D4qJ;rT-4{(=3}OElJqEntE$2n2jQgSopL ztP?vU0`G}nr6UTlk2R<8u~ zSq9)Z`01(GF+1>Oog~m`wZj6=^_#Nb4N?PKC}$dy#AhqtVev*KJHyt5kcc=Im=>je z*)gor`%u^r3v}1_%ltKUvS(aS^|j)BYn!W;<58|XT0Fr*57e0;0IBq&i{O~Mi^0$J zge(2XIO;7uS#srlmGRy)WQ#E2SzB6M(6mOX4RXYDJWRazd#HrR11XDHjYJgT5sG}N zlVk28U7xZHddetb6Q2~X0>w1{yNn8?WkAv+Yu%3NiBQz&Q@(oD=Mh~!gK&6A8-jch zKRODuC8s$(e5lTFQh|R6=Rt#vlj(jRdQ`SypD7eQE#uC#(%v4ITK)*&A0SfQ4ybP7 zpXeIk@4Aq0R(eQVO(0N-XjJCTi(T9Gyw=Kay~+ydhN0I?Wh@xc+eyIL* zZZL=kcY?;-24j>5=-A<k$IqWHh|yx zu6LQE#0(p4AD9|&3s0ECj;c{J7*P=6g$-{ja@eq?Qjd$GJehcBT*Y?bO4j3%Zy4>L zQo5yWGQ>4zRm@CjiYPbbN6R>6A?W7UCfiWl5u+#-8nP>7>?KJy z5n^U+3&TumT+GbX?`*xl=krR!)#zia(|&vUQ!_~X9IG&8R2xX$x9kK=nB$M>6d zpEAG7^2(s!N#-3{Vhr9)>#9$s{~E`A@}%Cv4c<~`veGZ#G{ttOpJW(BvGrv-Mm2X2 z*;-OhPTIwY&7O$wyYq13(fy0*X`*@b*E&SmHOCd2&dGpDPl7mLIe{p}II*0}(WwMv zHQTO#qDH~53P>_N8Fo4#WkfJ6b`p z``NYt7xCwgE!}(fx>P^E9dsoAdezR+Gp%5d{L@G*5`d+U=V2|kXcDD}#P=P;jXzXg z{ytO(RvX!=U%-E=s3P}#lhXA1$4z&RjH@tQYw|VT4Tz&bfsjJchIa;IKN>bIN6&h( z1UYdh;3Dtq{=>l&>nGbA-%=!^b|fAdUG(@=zaVbJ>mc`Bk(VhL5af|RWIVxs!m};D z^mV>x6t7?Slsc*~wG&NOG_H;stF z1&pX}`rZ2<)QWq3zOfZ9Uu+h9zOl1iZpWcrD2>rh8N3eQBshz{c|4B6ZN~6vz)3nH z%Uwh-qMostX=|t0j@Sc!OSi`I!K4RG+OcFvAN4A=g|V4ZdRL>Nqw^wOc9k z*eQ(DHP|1qlmY@hAc-c(h-j7}GyvwyyFSr?HGYJQh!*??=;4nXu1^uat#|dXfuYIq z7cH`Qo7~&J-UrCQ$f(;@(fi}H z&b?YA(tC1bpY!C0uy-BLy13i-{8XGP)|8;zv&B-8b-F*P2G+Gg{{+=&>m`Rt<{F@SZKT}Xzf}4{;dOQ z3|+%m|K!ogUWts6ubsBp?&r7~H*HcXK-EPgnn@tG83t@Q5ZA3Pc-g0^IR!5j>R9Pr zXq-J6pjga{IDup@e)Fpj!$k?z!y|8Q0SQvWV!Ok0wyQ|-KJX3=4I21Bsr^lsB%&W5vFT2O02@ZgT7?V7v=L*7z@T49VNCHdiLowKkamVa$&pNz0tMOHdPxD@tDZN@3~AdV19^g1^X9Hdp!6egJcE- zZP=g~HN8poY);Cm0?|uc>WSgiAgKi)h2rAuL)M|tb`0GKGw=gt#mPhD;nX?<$$;g$ zN?T!%fL#H=JB!ABS~?&2exGq~GHyDEwLdV^iEcmp1w3ErKxb;#^(3!d>+j z&%>?c=nlhN>PbMW_0faaB{K6V=PAOCG~-r%Cl4Ajllv+3`A8$IMWIg;dLIiPZ zco>{9=1h-{uDQk_9Jf>&{W>yqh{5x^HFa`7Pjm2i+L>wa&>Q`5Qm|!{w+o$F;1=4r zbNxbIej>>)R$j~E3>);K(bT-%=8@H=IFmlao@S3W_$c{V<|eskt##-oodqo0(X`WzExVuwQY=RJ_|a;X#kXrm5ASv)WizT4 zkVW7Z2V^W0jU-0-OV8xYthXP@8UBmqS8w<$(#7Bep9XnU+*@>sH@3PnOu zB;_EV(kt&+6dQTTiJq_7_Ed{VPim1IH20QGZWFLKLcS_xRjrCPp7}yf$TncKHj>s@ z6a{iyq~dBM*UHvC{wfhI;PBcuvsij6HAQ0p)Da_%G+BZ0n#nPi!KhGbNY3!4A@%mD zmV7eTIgCwIZ3mrn^P9Hx=j|iv^p3jf;_4&s-*6qO6GaPf$%XHfuxwV~q2m&YkoHm9 z=KjM6PG5VVdWAHXqC>haakn6FRfBERB37_QQ=MsCR^j8y-^Bmh;ofJaDx#Nc4NJ*- zT;whssKr0VUi1M`lR;yr7%}EzE~{b@ownKV;)^$rfq;go=QMQPL>n#|Lkl?#<4<;_ z?yaqO@l`}Z2CKh29Ot=yOdT*NC@vr3eR0^C`vIV8=l-5`cFYVJj_RHsbc;-zl{y@| z?NnjH4aMZv4#I^+PwRGT*14LJJ8Ds8cLG1^6o2PACxa^aozeiW>KJxapylZL_+{Ss zStU}r_wLs_k8;M(ENFy0SyL<2Pjb_a$8wcB;9Xferc*{7Qfs|*&PoqhdgZU($equx z`1z$#|7W0!#vnG}hGgpztty4}a1xrWyld1TZN}vI@TW_r=j-FAV4T#K7a1&72Pg9l zuZ_YrnoTrAJAa@Ak!^#iqn_B!Y^{&;MfB81yUtOfxmksL-|8o84YrfYl4cWGvmfEo z`YyRUOGzmaLz97_xqhKF?|HvGl%QhyfM`h+S&DMPkDpk2!SM=HQbnaven0c_Tpq=L z)vLijT-pEM3VEO#U`6BWcY4U#j=-B!LwjV>>um?F4pDs~pE>v2!_k*jh2P z)IA41Z-}f7Vp#*QA6GIJUE?xp7**9@cK({!@jLHMT4!#pKIbx=7de)kwD=n!Yle10 zbni)UG4!EPpXi5Yy)^xeP5yE*o9sGAm2BUTa`z)1qw#WEUp`Zc)OUa4q}9Lw_|hpP zmwLdD5p+=Im1WS5f!aCE7QhjA3V>vE+xvgJX#VzR>{|kYJ`KpjlGp&oc!>6A% zELnZdmOV8;PkE-SfjIXqjHtIpY2Ua z_4-|9vc;uZ&vu`5t2nac^-<0Zbv>bl)ZK{i-=PW`0$bDfX%A{xd{7p(;0@O|HZzk3 zEc}?kT&SAvkpd0;Y`wGYcOdwxo~AubWeo6Q(;iOhc8UdnA zTG~#I!7(*2ke97hLm~qq8o*i9h8X-va}ik9R_Aii^Z?>wF$`W-iEbb!9~wFyTd z;O5WJeGn^jBs7b50inZ@Fk_{k{V5C9AW$77jk8TeK@t=Rn1N-VE{`DsXMdnFAAq0K zf1rHrzGB%59{`+6rKclJ+ML(J_WeLQRgyg{$!Wu~GQcYSN=m`OM)SyFERb~Dw968? zb-|9~W&ag?J1+?5->CmwJFe;gIqVkPABKI4t(VD9_(r>S5mD#}SfBs2dHd}r=T6ud z1&7N9o#rw*FP4`erpTIZK4_*y>bFMtK*uqUDXanhUk-EU1`=C#X{Hr1TAiO;u`P*j z3XCdr4!rc_msDIjWRaEF7GW4ZyMK1i57bU9U@xT1#Q}j7{%v&rx?07X=gTV@JQ+jE z&nC3*pR|3lm(NI~b|AQ)r2`o5+w9r$LEv|k0?M3yNK?i(_6s~Hma zp6)fX`nL2Qi3-Cu&od=BmB>!0-UxEBcTLENpFhe>0K>}sBS}s0EOChU>sSHZRY%kX;v&pwlybLKPbZk?=|Xm^u!Tzqr`Ay%|2rZ<;}5%8&`#4 zbHG#t0patc&cmCCO~dv8Ja|;}5Q@lNRby>gvNtgCRe^-)we+_Kbm~{>7}p=SH|!Em zc-xNTk%dBK*oH9RKE+Z=4GHTS8=V!p&k8$uR5_JhO-o}W#>oNZ*Q6Zcq&gsy`blI` zzZvU-fmJOVFySMb@E3{`cT@C!FWjl;)qP$Ms^SiRPz`x<#9vGLT+F@_38TlR`42-Y zF|a0}(ldfOT7FXW)c?$9B~3B;AAW+m^*vbnZo-YK#X3#^vd*5R78pDP2-xYwWw!*q zSKBuT))wR&a%nC%g(-a+N}W7dw=qp~ZoEp6+(ML#kkX2hd z{U41y?6~)66YZ0ZmF($)`>$Qkd=j~30o7n;`x$CuW7@M*6m;BTpbj7_4L)8BOUV+8 zT<$Tx2cziVNhPs!Bbe8J9)Y7Ij{c{9*w0L_qDQrf*R!Sm_Oi%p;-VzDm*0T5+kth* zu+&C?yXtZ3fTHD55S~o;1l(H6b>ywvQg$DHrsjUVs(ZvDha_2G;%ZL5>5_**T1 z&$3h{>L6v;?&q%N%5Um#CZuz???-6_rtyg@DXx2(i{g6E^>N)&B~urc%|qUjpIbI! z2j(pzPe;^eOLdopKiyVk?dX?iX;L^R{c-WE%{5I^aUZ`9gTsL;y_%z0MXqAI&zZLD zG~FzJMW~M}=Jga$;&%$Ee4d@*(~M?`myp36)JoFvmc>u__ z2iM32W%JUrONlwB`LrJmT3^cLjYtV|c?I2=d-#|Wa0gq*%=XqGU2~nIO2JTptk!Pb6}>5~{GL1-SxDW-VSHf3fV9tnVHpvnS?Jsc-!^ z)VBKE!kkgK7=4~1YJvUoih@N2N>Y7pY%#&Gb-OO&jdQ*n=G#(6+dcy3H3QQhSc>m| z9BVAjh1&?#Z^xc5l4N2z*AWrqos8!5A&fwvi)|Er;}Gdk#y0)gyx?|UmFJkN#7ZEw z7x(jght+*%ZCSyA$8l?sK8%o_k0fu>o7m+*o|AWqY0Qw16{i}Lm@246p369o!=`ff zjXo$Kt!3L-#7zyj(G>SE(8s2{yRfOK*38FEv{7Ml%-8F1YNE~6GSDuaNh$%p3yftB zu~vPlU?3d?{%_X|?IQ#Rzkf47)ORj)*2ml6?OmhUgp{qJ)3F?-!i10}8FZwdBT+Q) z0h4UgQ<&@VOzT!fJ@ygv!-pMh*F7mqnD>$lom7sdQP~Ol!Old$I>EaL6z)&Lyo8e|kf%Nx+ zzMcmsjy4_N{`B0-*h#&HSKTc#`_7|YPwcUIp>unA{}dur2cDX$*``G8n8Ct2NHj3u zDA@Sq$W1Sf+!{uby33d$>Mf)V)zeZdu{MjKurPw`AY&oKiFjD%n88(azu~ z2G7*e6)J-iq9z?xv(3C``80)Hif;w+JljEBwBW?lT)W0_WP(Z$!}6G~X6H@3M9ziM zozvaUCmMCdzHf2o{<8dQH;yOg^bDJTrOc6*4v=E7v-a;HK#Y(6;)n>`195dA8^C_g z>He8eVBUOK%6zKI?C!4b`S3OFp<^qGE!3=#dG#eKuVs5oB;Zk zi(2giFyFKtCNTn-G4SQF>L+Y0bz33qB#PDA*Oh(bYWUPPU2)l)m|a&pu+((geTp__ zrY~E#_uI^{x?Rnk)B6VYbS=eSS~Jlo6r5(t8_bd^)?#Z=<2cS}VdpP>-Q>Zn_n&I^ zpN}8IXpCK=j76Brdg)myHN54n-T%bso_`(liN=&|60UTZ*ovN=sp#|e%Y3!bih1>> zd5erqUJ33_>DNT_*roS)ETS z?y{|)U!@+8zgV=rB}!VfYp=7z4nyu@3ce$Jc=eTR0Zu-`3y+;U>0K>YIDdV7WOCqZ z$SU|acCI7`9r_?Q_C$Wd`Rft60tK61D=y3Y)mShe&*?4;6#hD}lL_4*aZa`=do2W8 z>NoprbFGxR{^<(863~WYsG+Y&^(TBLW038kox5&3i*oM!4fxw^&AK&xiT%!W4ilN4 z*im8DyKMhO{=DZdt>jV7?M|}J<*{G8FIVh4Z~D3MlUyunsz#83t|y54x%T5F9$Q@V zzFd8#vBlQyXw=bJ(`VfzEZgkTEXbfBg)F7_i#N764k>d@;Gv)Hn`LLhTH-{9< z+0922D)a^q76Fr~)A%2?@v`tRZ(Md{62yW72OA4JI2rM8?9dPGVCe%KN>$V~|Vb0p}9!Nq!?n8VU~9ald# zyd#B5i$}$t>tr-5+Mi-1ML8jSONV`!lN!2(%vOc-&!2f&ah6%RA3ZSdb#sGy zWYWmqR^_J^cExqEoa)B6(^(fWy=p&DK?j*mqr>06dF4;I&>_()yKY}54Q{p1Khl3K z?@sx5EBz_osizwskoIDA*KH)eAf4{~nA%FNAhj6c_&&dH_oNn??3?WOKeRQiZ(u?q zrar@TT}#cq32^Rt5+q|EM&)k)KH=W%RGQBlQ50JwV9d90@F1YCkNXT+fjAr&5uDUW z`nWs;_-lDnFOPXSdwyIi<>Gp=fX6{TC|UK)bRpjiuDrY>(4av<7QRN+)UB%(Dzg?; zw=9o+_ihAREiSxq&tY;TcWT?blP08d{^Mdoi(Rw6_j&Sz&$atozaO+s-y*awQN-}8 zg|__%_HYA0v37h5|392P=mn4sMSR3gC{|98Q7Pe!^9f!_*w`{D5M9-)l$(M z-s8jwEQN_)0=PgUmZjE5TK4PpoX5i3@)1*PStkb{2w)$x50AN76Tr)JFSsE5;43%Y z&XJo4%jWt}{QPV? z*i_1N7SiGbE^mKs4tnt>5zTo7T6>2=H$WfD3!pDs?#xL{lB8=4g2uEX5Dj`%cJ-XT zlg#ovRr!%XdGXNmVc7b;q>)AnnVo_Ge5&{Y|I%`jQL?e%a3?K^bmVCA*lh!5+*Gw`{PbQ z_3^j`Kis0q57gWRk`|x{!zCucP>=$de&Gj- zov%%q;)KBIKTrn(z9TjMh&kbJUrz_G`=RXL0n(R0mNUGXY9KACDaZk0S0@4>b_M9l zt{EL1`_bZ9C+CJ9fulEIzqk$L@Sx58jRFYX zXD|0-nF$bBQGeiVKTBic9n3|Wr>mTC9AQK3J1VmrByR4+s#58QFuzk^349KBnE z4KP42pMgbt&TW!s=S@PXcR9bgb~xVpiN~gDm{O6|C(Zk`ZGG#};S(|_jvH(Zt_UP3 z^|)FCyav6qB`Mm3x7!DAJj&VJezJQ`7FQhK?)rFlYTbm)={F}0j+TY(y%a<=1^r3~ zp`ZOqwq+1|W7#}nj2i($Ko%@JcS5;3TZBcu;^?$xu(h$;jqY5)x6@svo6p+S81YoA zyo@jn?dM%lP>LISw=W210bBorYq@|d)gm8aOk+pI2(V@}M~sF6IF%-Nyh--U17Ngf z{4Qwq1rg@YN;ttC^TZ{D7J*ufQtZcI^*aCHDn9C_w(8>p6q&J ze#^x(;jTh?1zbv71@a<#FXIk?uM+{^bO4%=!<3;psXh{5t38_}HImH}RQn1?Z@Hcf ztXF7`gkD&(#aofX^(=751KSxmBxBB#ZSr%vVZ#h&8IA+JgJ9*ee>P!DERbj+0Kd#+ zm?O=a01wzVL42Sw1r07DHU^{7oY<3OB)Q!bL&f0clj#e{9zirx&m=Evda?y)IA2W^ zpx4*$gFR?61n6IjP@%z4{RNkrbY!hE%ThBjASrtA%MOH6eg)h)xQ1hX73EF`2Z&Lp zMepB&N|FiPq~U(%eb|tfCc@Ig?}53lyh(*Fu!qCoEH%~pmjzqsF-j|HpHFMu!kbTc>b16A=p>WMrbE%sU{AX?sx zz2GFq1e+z?pRLGwpcnVBig1$t;r7Y2zRvWg4vH1E@rz5|XKx97-HQ(9to~o|eC<(A zCFvse2H>`yEgwSgO<$<)F78X#?xigwJC^@3_Kdh6Pe^_37nFd4&O&1ji4)!H&EMZ_tM}a>LC(p$e$} zG}a3PZ-$y?h$3u1#_DE5tru_A(mNP24Gq{L zf?!>R*CKriGNp``B>J2-kNe5+EouF=+BG(sd3&V=nWwA*pPKRLI)>Gai#apE1^pKK z1_v;E4>IV9uBc?}ZIM6NPEC&@;&C1xmmciP>plIVysYB9dHvQ`{n^oF$xmpw83|L& zq{9O+i~#og;kZnHNCa;KUv}FtU3_ZV_c~lbkN``jNt9F>&5+$<{5PAJ~E{Qap$-u-8p=$l6R><}un2l%^l^>$YzPU4EciHNF7u z%C?$K^f_E4VQpp|0X@F(tdKTm(xzI^jsLpdU(2+`U~8v5@BSrTL^6QpOV1sLv#4gz z99kEjdG+vI|J1ey?uA}S5xasnayKAr@Bv*WyF3gs5|i_XPi)WrBG+!x9r;P@hU?B9 z-1n~c+7msNnUMvjI^7ONz$W~cCX-50?r3)f~xp483}0anR(6ukI(^l7;lQx6)LE5BIBl|K!d+C!;Z* z6z;r=lgAbrQ|qZ!4vaE(YkcB8AxFwow!S62K6y`WxYbh3m_*1Zfrg`EZs3F=Dj&ln zGf2f`&y~yoc~r{3=G1Q_KZC>!Y}Cv+qkK zbxL6-aSuqk_Za~+3`>1~g^7L`T+raYTlGzei>RN}t?(`a^W5r?P4hTUwkBX?n;Ba} zU=n%BYhG9kYvz$un{e}LK^U5r{YaSch5th|z3Q+29sT>mdv?e{68$29UAUSG@Kxwr z_#CNk^Dk`!*dHr|koVlA^^vk~|1rk)PYgRsEc``q7pQ@7p4JEHo)9bP+@ zw2D;DBQZ&-=jWkv?O&UaCkMMj+Gf-jpp@sJxuE9gr@w76_`RQhzwMwF7(GG;0?qUXexUkW zZ(zU4pM0qe8#*FuXIPg*`>~ZtjX(h)^et{(jrG_oNn5&L1;IDu!AGkA0ekDmdslxA3fYj^Kzk&3<(;+pRZaUN3-OM1 z!xKv-bFDUwePP(LpUg?v?N}h=_Vs4xpgGb;x{3W31@b3p@<2Lr(2}~yiLbIn?pWez z${uDNc5czlW;}@k^zoSbOffCvt~R?R_`9pDtmh0@|rqo4bDI zk{hug=lwY5#JK^I>^!nWE!XsVFVBY{dnj<fj; zP8ksd30e4iyafD&r4!}C z?k;)0rYRG96r#KYftfiW3P-mm-{_Ocj)Q!twsFoPQG4jft1YfM8N7yrE#DNi`euKi zbaq7r%B9(zewT!t$CSIVMUs$p0W6uolo@ltobTJ@<#usgt0Z@zt-#~RKtBEy_=RzUr`US%HSuJfUW%l(%km`_Em%j?B8{wz(oD>&^ z-E4vi3wb2dS8IZ9JH8_&cXk-vx)R(!h@rbx&RVgYLR+!)E)4wxM#%pMDjM8OG8iOR z<)m|7x~dWekycL8)Y4y8au-<1Gc%@`!H(a@2qrxdp-K*@W4hx8TamRy>JL;Dq0}%Iah7G-x}WTfh0YUWLZ#^wW$9H>xzwzaeSISm!z!gV zo=Qp^<fjw~SwqT7HZRSZYtqEEh=w}C@)zVtK7 zbceq5m9)tU=v3{=2{#npD~P&!>}MZQB9Sdu0J@l7!N4P(5d?se&2~G^Td1Bu`WhXF zWy$$>a&mF)7`7yspK=7tPmz;@r92}`*Mb8B6cfO34D5LFRgZJyu^zvd`Q z*Q)eHK%(pR*nJ**CO=4`S6@F5M4)3m*~?(}(=o70Qmh-}6i}(qz8>s2^3m4I=TYGD$N;}__0Z$ko+GE% z9PpB|_Q-r79z%(`f_;DFc{z>OoN+KZh)NI}Fnj!^Dqi&D@SxM)QZpmbC-#Z^K1ulb zt2&$zHme^E!?va)d_QmL9;2TvD#^TA-S^$mFi8Zj&A1gc)O=D!fQPc%_D+b$iyN#1 zT)%mpU4QKS-pyBcK?U}+pd(>5ijzq4!L2f5a0AK;Bz1JiL&?FdtnxRt`)&kkRq3@# z;jPAbX4yHn%&@IM+5l9^XbKt(t$ZK`z1FwD;mcXZ$SAbR(^v2KXIjeMtYCAVBcZdB zQg%~fs|O>Nc;R}0F@Z-Do*(+UR$Z5E0c(yWp@%)bie_YI<#z^LNPIO`TOwL#TeUwh z2hHpuD#6VxQ#Kzb+h{wo4PG3xLD!!=vZ`hNRIg$WwQeRl>%G|QP9noOdW@GXq40GB z)e{nDAHB1!*rAB|tWkd3L^Nlc^G!O~Dxg1N^+ir0dv7Ho3agI|U!8`pbMgy47S|u2 zvt1yQ);pd3QEg`;0U(_YdYnR&1;%Q>_!bmM!xm}Hng3oUFx zWv$;;d*4^}M#0u72c=D3>t3GnvC3B_q(6l2`~P9ZyO#jS;ciga2uA|p8ZSEf`mFi~ z|03Ty6P2ECERAzIHopG8`L=S0_vWSrTwRxQ#i|*))prxv-WJ&Yg<0XCjR6?g_^>Bq z`&mDaI@H!SRv8!4)BAUEpGGhO!0*7Yo&CT-1KGifl*L26c-?}NgF_9~d1)R+=k{1| zr@U=K8K#m%H(xBd9%&yA}c zTn?E55|drAAXQ6(ca0%y%}0HJcv(FObY@9?Nd)b@CfXyfCdP~JZ~Kz1d|R?AcDKp& z@U8xB+pxNKkD-L!I94-lp}W{?VRM!ZUZp>jhaLD{6O4ahMIH4Y-OqQ{`aBW;l}|Cs zaxYhI^17-W0(o0`P*A!hTNZ#-t7*~5TAwjP0FKQtQ~n~nfRh~If2mfvH+#&q_rzxX zPnQMCZtZ{iU{rNAVv(}-gpL(*AIk;2ac3B*937@vyD9Wt?bdEUf5j?atz8!PcrJH! z)K!y)1KzuIcGw@iWvU2n%@7A~g4ohuScmY+46R%Skf~|EhG`=3zM0nxmG9M3D(x>k zl!7lyIV%5ZaO3Bp(cAO~2H0(gJKl_?1P&qq$e+_*Z`@Z-pBcq8cAUhd(ySg`knv3> zP_jhKpR}$%5itm+?{<^6kh}o+sLmF{F;{gH9ml4c1vh;kve-eNjN3e&(VH}2($1}G zQC)iQY|@8FD8;q8l`SDQHjAO(940kmWm^4=NF^^nl&ju?0@_VZpP|LF9GTz*iSQv& zipk|__b*oA8Z^M7@<_d<(p%%+XdWvJ-ORantt6V`Tj@(P#ms!5XO3zmGa{(Cs8CHf zRJv%^=;%X-3(T%ltHmq@ziradh}?3&;e}w7vhmu#;NPa43?mzcIdctNn%&>3*roCR{PFxa@W5 zp}ee=vLf9~AfHFrRF4ZW#L#zR;7#iRQp5wosqiQmVumxm9kro!oP9Ia7^=q7kycMS zQ0q>9XCYS-9(d;NZPzT3JE3PaI5$GqvaiCrtbOdAJ%|>b2V~mdR1v%oqf*i9S8(Iy z^{-rm`^C!pcbvPpD_e@Y8M^DnmH@}F8K)d_CCW`_8*^gxs)=#nGwR8c<>k)@kqte$ z>Ppf@p~tI+7LPlgo`u^jG0;@OUf^PaLf<0l8U2mR=%iZA%mMt%BP0EXyPw^}G}IqA zpfJI$jE3%H%wMmS3Ousd3W=5%V9@Tt7tedXGC%qvvAd72^>~Vd!(s8@l2xR4XhaB% z+(lf+E3>T6E!fi5jxjmvt4sFyVW%PAN%`t1ZDBAoRD zA%kvayWuO7IVTfDEh%#~+J8p38nuNBAbmq9Ds4z}cIXB3%kiwy(7ZOyfO+dR)I-bNDt zm%)U{ZmFsA>hd11(F|$fuSD4b4er;9u_)GdQriL|Gy`I+b~plQzQzm6PclDHCwBcn z>CeMpC9M7FWVkqwv6QESWH6mYrYy$RxKW?5jdLAapM2SMv2uIImaWN3yrz36j6}dD zcEVEHI+rYynlY@6r66E?-arCN!46C5_8G8b-sU7jXF6lDR|AqRbYURcp%?G3&ne0- zzrakjx#-8*(e(5g*G4C4-=57Dke%Ou$=36s?W7khLXvD* zChG+9eYooOSZ^EVE}9xid^y3WNO%ZqVdUT^EvfEwb3L*+CF0X&YS(4!sRpXW0N`wzCYp`~P z&K6ft3A=ZN8%Bg1cEh<1&N7T=Nov=BMKY;G)2q`LH+Mc zFa5oKq5sLR|4EoL{~-PD?}43v@3pM}@Dd30X+G{|%h*ovd29+zWWBZCj2sZWf^fsO zfb4;KdvO7lJZQ6H`ar@Zk>3iW7Am=J4z3xitDAhaJ{ASrw-VMu7m8$Cf(Z$s>){gb z)306x^);N|__#3i*og_WBscffW7#$KHgw<7R+`9@z)3V0-jSYDmXMn~bSUAZ-YWgq z7k9J$xE_Zt_??%&AWj(23_Q=`M!HoQ0RE(Oi`xKq2;6V3|=x4b?PMK0BV%*xX?E<5?W0Yn!|G61H0trX ztiV7uYr-rsrb?d~;TL`JH-+F$ASFAa0)}tHj8iF7G($kBEO7awgDoespm?cJYoCxU zN7p+A{YX~sj>I=7{56IcV9>E;4DE|(trdV~<7PhhP4dsUzfq}gneb3D4F3LUd*v0| z{R}Vcm}DzR4^x=hX#B;JpJgmQYVTREIbN^l_q?&Q*3rg^8@azdja?u|10Z58WxM5eL4M7?wOi3Sw?MeDCNwcO;QpLqIr)M`p=)lsxOm(#K!uIoHGX zq=uaCOi?TAD2r)@Z?|5r{uE(~u?X~Ss+DJiCh*3vH(guv@Qh#e{TCHL+obietBTAJ z@h(94F$2E!nCHYB-fT&VXLWVE_06|W`!Di8{kl8r{;_+duHo_V0+%$t{C#Thf3^Yo zUx;_TVK8)N)MDCzUC~1ufGDE-&O(u70?us+4q1n2RpL(8Tu_25GV1dmV0GME$Gjf81UFLZhJ3#waET%gh z5$*6rB4_4Va~Q-B(AG#aLJbbjp!cspA?zCHRA>clxi?BdrTKm^3t@q(EznQ*wYWs4 zr+E^-Y2zUBB|z3Vh^21n$9{GOkYgX9Z}U;ydYk6_=tl|*ouX*A-%HL$?iT?kdVex?0GWYRFSOTg>-P@|>NVTM(iGl}C(o|l#@;!qEt*xk^<|>r!AI|U3~_^2vI31COb>-jR>KbxrTV0f zDJgOt6F~8ru11-x)&BHdQD6#x z?9M!PV%Gogrcxi;#)siH4bsY~6Ao6Vc8m*5l5(+d0ubw23mPDa z)Oil87m%ZdVS9u?53X+Kum6q{%|Ua`q9OK4@C{JJPsY_ejL6(9Q_hs?@uSlJCL zyJ2NFti+nX1Wzjw^{=jR#U?8@`DLT5#1OwOiWQrz*kmQHT8XPx;;LVciH)vw z=SVzY;B0WQ0pbI}{~d3~Mq^%io@{7NN9F5lsmUPbZ+B-hyD=vm`2EUacZ`yKEON#SMa+lvY=5QOmC z0)j$XUe8N$P*^oL*Ho%2YPC~cA3WxIPZA{+qQgD|nT>=};!ou~`ZF-e zj$s%nC?oHYH%R|NO`LTBPW=tb?$IYsekf;3_Hx;j@;sP|=BG%qbqKTh^nRub(ua%y z#mpdTf<_}@(Ajbzbbxc$OP-W9KA+ycu-$uL(&W?FiG!4^s_@PLHywgGM-Zqy+@EzPOugIT#Ln?zBcKiBCzzhx%P ztN&9scTEWLhV&fFkJ-ZNxF)nX+Z*BU-%pKIxgzlAO){o)go-~b$3Y#xcRZzQwT^vH-MvE*|OI`LO`xbn^w zEB$+{klHn13l)SmV2T%k^3h#PnRXl-L-(u$`eF~+I~m5qSu{fQMa37D+48%tChp7I z$DNytdh^DN=bT*s+-m&HKel;M5Qao|Bh41DwAp^(0{q#g4BM9ZC}ce&@rfrxhS@FK z;cHpetDd;JN3UO`FkQrO^O~!tbH=tD)Ukn1kmz$HSe?ufCPtIs10E!H5>5devs~TRgs_>*qT9o$89nkg+KB>D!MEUmFr~9XPu79y)%UH2g0eB=! zqNFVo<3n}Xy7c_GazDmo(Z$NazBsqXr(%xuy)HcKFdD%3@VCf!Tj+Lz)oH zu;kpLFS(*6uy(TBh*B=8CVq^!1V@DZIdN3a$fcm*0Z3b>w1}kWCiEsh@ z=-oLwT*o_&W*Y+C74R_kXi(=7F&Up9DCI8jEr5bP9FSObt%E}V0N9fG1NHhl(^#B~ z(Yo@1KVT&-!0gL22W$vg<~p@u>PXQ~+XZfjP!sfocN3Nah*Sb1(7?$yLE-UzkoyZ{ z7cAR|=sRu3tdre9^hg`LRiV56$z%}DJ%Q=-vASaHYS%rA{jwfzkWLrGMQHu=>_f-QG_v#%kzkJIDj$rQxq*9w-hF z+WTGi{p&gTrz>)MTCnbQ7;jvZFP-&rbbz+4zE1J#3BU26LxSG@v#+gDI0531XoF zcuBhY4ZQVf)%AlFanufzhGh{Qy(>Y!^{e((cioj0FwhVVRI7ddJABnY{tGk~{wFIF z{JY#c5)4j}N%TiwW**qd*Fo{e@Z0=#=(##jGoflR>`3ut!^f>L6@w?vc8`qER8l)$ zW$-2T-C6UVl^Dpw9f1fEIMLV(pjbV{79$;oC0R}|4iUjfoC<6|^1-Eq<@FHp($b`f z?lc;{&k$d7ZtzZO5@n&iS(mFm&)DLf2xOjMS|5V!5_HEPd+^|sJ57b2hY|Kqf zi`H)bfm)B>ML680dF+#Qert~VqR+(RPnH80ejVb4Yyq+DFxVL*=sj5Jj8fMNpWxoX0b-i1S zI@JfPX}TZohQIbel+-NV3>qcycp9YjDQl`N1_)wdGpb_C(jA(ANe3=UQ!)fL$I9HOrwK{+;%MC4-3`~*v&6FrE3 zVHBg8{APXAlg*DQFIzn8_2-8S5VR3|_`WqGx&^jfghPAjN&keUmU-O`$3 z#Y!k|+}dP_(YMW?#e1K4jSh2KUrqB}b&s_0%?Wa_$seyUYLfR^Hq0p-)O0 z*pzw2bH_I?$!aV=A%10oHBuI6+d$@qDAT01ovf|q@=@j2#&FyhDzBy~Zhlt&*!seP zR2)&q%PvL%YfJE0*l_++#j89D|o>4KCLmzq*VB zal_F^-mBJD^bqk@c&PN*xk{FKS*T6XbE}EDp)Cg`cZ^(4<;?VNqWnN{!5HdfmPs;2 zUZ&N&tg0%T>F&o0q~)eePrOY%&@S`XL-mTor-{2aRe)+`on#!=+ZHw=GOy9cK^9-T zk!_fIoK6eR%*?c%6;y*&HtMwO(`#W}c#!DueEanjQ{oT_-T<-Xyy#?PT}e>~%aHB* zzKG4sh4n*=W?*0Z(M)Gns0Qa~V|wY*)XOSE+^=P(t?O}! zbC?v=GEE?v5G3I^HMUD*G^;tY!qA8<`+;vdZ3?LJs^ARNmeK=)Fnv!58tx@!Q6k{G zuR<=t==o#%9XWePWj1bBA3HdA(EFA3ty{}x(*?pVdM;OuP$z^Kemny$PXD{|_&@!9 z2xOa*E}`Lr(S-nacr+TqMA~Y>bIHT0^VrzYt&NNOM|fV?Eq$IpqaoMy`^*=Yy~Y#6 z>-N7ps31yc>BW+6@wL)*P2r*ieAH2F%Q`2V=#V>TQZ$z}ZU?stzbMFj*zrpFU47u! z^Enx1f3lvM3@&}WKK80AYCSh0FOk^!>O#UN)e?AG=m`gkIFFC!gAHX6v-Oot&^;N) z4=u-^Mj=gjA`T;N;7c_PYsIqS-T5B*a_2~sYa^=E{LTjlwp&-v&|jSIKF4~pI6&_b zNw2Kz*G4|V!SolUSV+&ptYie*gEq|X?Uz6Nr}>Be{vYTE@!z$@Dw>X?RS?heSeP`K zXGG^{=tGT5)6>&>iHg@AS?D*GbC#5FxXPkfEj`9ay#NH*wG-FA!J%`YuRQZR`ipAm z5aW4wXuNTFzpKKhaZD^Y*I`=7Y;% zkZ#+~LE|Cin?9v#8plZ;?GDmru65;sR4z~TN@qpOC2PEtX6Ia=wff@#!oVExP_w@% z?<80;Aja^>EHYtu6xTTfpZ(reTu?m^j-KrmI(M8!$UYGnz)3YrAzv^|G+U}sh+|H$FHfMZW!=}i zN@}^m8ELZ<7CN8uSu*N~42g>mQc%a@;t(r{m<*Bp(_7SGMYmPWGUUr&lw_4Y6n+0y zb#WbuyQ05A%4CFS>ULK~s`#}Im;AKxVPCaFKbw6wqjn$qy_P0ahHyGiK>~NnL5!Qk z`Xn3WK{G*Ry>{S_e!w~CEg`DAg)t}mmdmq*WCaD;lJ{)OmcleL)WV7(Hthqw&?7zu zTD0eIllx=X9yTikVsz6fb}Fh3E}dBhg;z7haQC_{#eR!3nf{{t>Ow^qop)fjn+Mwl zXba260k!ysDMKw1f1s%MGO2SvA7Q5Iv+V0K6>s9pk+!56qw2y9!*M@q`&4Cf zAYu*7OJowBxPX~DXc9@WBSGV%#MH-uds_TF+nKs}?lmNRr@f&cY`R9unsaMcb3Q}n zOQLBPdZq6uWYM$zUOO21X&2!tdw*Xsc1`;7dpN9B_vWQPd)J*4_3|&~S(oIZP#;nE zgcy*ESP}q;U;r4D2>4BS6N)2s-@%%LD&DH#;4}7 ztLNV2oiX5<`!!=T%fTx$zoz%8=HZK^&Ee+@zi1a2Xp>M21e}#BFxeq+^EySJ9^bIARhpEr{GiN*do>`#--Sxj;vIM++>>#?0gY|)R<=wpw2YX}Oq3A1$ za7OUls+Hy>7Pm+J;h$em?jI{GZzzv5`%E+t*b8_5gliG@EUNTREXj@ltK>w!LUBO{ZY@7Bf-gJ*QInVhpW7g63m9w7OJYM z5)MSLTboMW?$jxfe#cl6jzV4KWkEryI-rLRi!)fn7z{BEEm5`37&hLJ^hn#u1G+yc z+OEV~?N;pclA-rq(UQf1sTaOA4K8*v_iJY`%iu!hCNP$aUArGqjC>KnRJpZiP(%-# zQ>21V*5BH?Z;}@$Huof)DW7ql*m1^F`{yodsI!6Rfvp~KAJ#=UEvTr#1)@(;k?Gy} zED5pAB#z5MtX`LW`g8&rb!{C;-rqX?BojK1%g}z~i6g#KewXQ~AU-H|RA>pcAOP_Rm~z#&jy#JV=J$`q#Dse zn>J*(ORFpe+0KQ&^^~}iMq(O(gesD2WP2oED4~cD@$D{%`4{y7BAw=&h@dV6v~N3) zgqXfot!Wk^{rn{I-EM?&QE@Ge?BY0o^SahYv3sX{7xy4MEnr~&$N+|Pj&CZ-4tyXW z)8##WuiD;T`Z>vTsnc1!v-!&fD^7HyTaoik{aekRCb4EwqfNmG#|D)>Y!pxOvsx{M zz#H!c7spuo6@`clzC(IFoS6*xuNdE4e3kr)F+lF^slTYg>BtYy-*daV1_Ewmy(Nc- zl-^dx;gQ2Y63Oz;ch6LNYiB1Sa$8l0GCH7WHlL`?U@LH(6Ktnk-n9RC=q|o*4B-TO zoh1`Ibp|9}v*^J%Dr?xsvB{JlVS@PDs>=7Im>B1gO^54gqhb~oN)bP=27C&0r@d!Y zp$ooYGbNQp8ypLQUN4J#mnL++(Vg^lsg05j&ZvpnkaIybuA+QyzCbB5(b}~L<0=Rr zBR$tUCQe(*Yd-bG9-h`?MqSCv;|ecAldBaS_~;eF3uuuhFbixpP>cNP@O)C|`W~9) z&>t1^^It}^FP}5Gme*;{VCNQem+NBW({RaG^S6$aZTi2(?17!za3T#9p1y^XGyu?pwOX%p@y&JK{@M z_)&%z<(wSo-gKG(72%DA)xdIz(DOD46GaO-G2W#9%U?H@tR9H1akUgXM zG{0Z9=>Fcr64FLb)07iP3N(IagzL>59#&-wZ!(_4iNk?`R`XEg;oBwS6S5T^PscBr z*>S8cg-%_B-lQl=gw1`>RXTveycFLZC~^}|oCDq=rUQayo}sy`${yyh4uxEX$RfvF zjc&i0wv^O?CQJqxz8O^)0HUaWeUC)&_oN>>K+|*(IGTmwzbL2S5Q~L=?jMe``S~2I zxVw-G&lgIB_bV&8MHBa}XO>fDGgWSSz+||mKrNkMC*SU0&0IoHIJNS)rpuNYGfM*WpXvRX%B z`_B}UD=J#aMoKcu-KL;7y2YTNmOv+C$zzlriW4;FgKx@d{W6Vx?vum1&XX0% z=Py5TR~)`!^+O%uWTT$`x*fVuCjQw!p!ub6RfMTS5?O6#aiBwe|4MRs zpCZ!=6iML36MrSaN@dZ`^t>>MK-|1HA!hRgC0_qK`6PVas@`t#SYhSm@lJ9r=`*(> zR#Mw`5JP+iJoX}*!1;wl9EnQ#j3@6azxfySA(UxeBKykJxtf#0lf&l;sxiJNVj1LnP7mf=H2(j3r zP^>Ke|Gm?FZJmDM%Ex;HS=W`s$iw<3o?lPg^_7~bN~`#Ov&4Gg-QMfrm>#1AQ<@aO zPFQm3l}$c4?!TxTZ@8?O%}eT|yUa-U67MElzXip7skbQJXGO`4-m}c&@2Ic>B!~?P z8x)D0XX&dZ+jJiJn5I{amXeR2YY0~@81bHz*^D}jUA|2fgj$Y(WCSd%0JSZ`K~#BI zyshnAlV^Hntd;(GybGf8re0I4Am?P-_`^A2Q(?+C6!Z)ehbQJ?NO!)|1hTqzTxwTM z=lS*;d-*8|I0cep9{DGjx~U0b8~f`X^l*7qC!6pdH~5RXjUk=Fzz4TlAXw%5gLRr( zP?18Up(=cR;-EH;FR1yZuE^p;-I{~rZjnKp%LD`N?za~;8j<3#2~34m3t=jYa+8c* z!IOv2CRq=JoOh9{cRN1hci8oeKj)C^J0*5Ema*FO~O;yXlG3hEA5r)5uiQ&iDsK)Jx7|2-T*YuNwD>lf09g8lCovFD;#P06zL46lX4Ftto7*RzGn;1cf#q#P&cm0Skop z3TzA>dK7;7HmnaXSrw0oCh)&gf9FQ}kT)%+rtPhN+nwleqto|g68-vBj&Kc=HyhHB z&92;pIRL4?h$p^uIPMdQ7QK#S)Q^_KPVJ{NzV9zl zLa`<%?`7K5h@;7ZA%kJJc!unn#RsrJiKjT_(O(pMe|s78^8;j^Y%j?oOQ>r7_d##D zJA}q`=Os};)td!UJ=IfNKL1quV$!j&o(jUXK+Xao{{n%Lb_mub9uw`*ZPpy}sg?;AjG z5>g$`sRIp4K4vzoLGS!1aj3BVoTE&+q_tvD!aQWnw*3)|R0L0K1lq^WYBC1lj3)&U z(OpT8MRWF(k{(q*@~%F1)Kb?n%17GCp@8#>gxMlC_ z{+;j7w9e@`E3P;8(7539RDc<^jDtZ~LmVyCQ?NukB;+!veM8hvSJzN&pJ;8J>2{ih z(-GgBU1viz+US{_!1Ln$NRei5e#`MqB+%MjcKPF~#u_%*&VaasT4nO!E;rK-jrLlmqKSO$U z(5t3Y!Qyfy9@Yy$IDQcSqNcVG zjyDVO(8~CCa#!02!(SbSB25=q=k?>+zf?}i+*Ju+)H2qr`uwf_n<%g$CA z828HnLWO+o{kAsr-ans*Bm#VAx=K9`9~%*TOe$O*otI}~naF3(&b4OSi5)Z!a|Dy? z01@BdDnaNh=u7d%EucGsL@$u#U(3~yx}sk`lbbEQpDW4xNCS{0YiKOd#9< zI7L=q6NSS@AkuqE&sa0?DlzwcLo*{wo_7i~YI{53^(Oa_kDKj*w4v!ILp3HFu_Mt} zO*ep!X03x-4u)xm+@a@gVqrDhYDKNC?&ODF`ufAf+&bKak-O5r0^S^bf{L;;m#JOg z?dyAKr`Hp*4ITsnwFqq35Re8eZnAX?;cNr%V3j%lYp%ShFQc%|{lF;F{k^B6^6`td zLdO?xAM?6~eiD1pEBzOh&zfA|VTc~`_LpKEm5`9wYco4JIm3L;Na(n-v~+k$NiK^u zhh$>X+;dK%AvnYGI@nU--zUQ{ z#rIXVe}HNAfm%L8l zglT$`jmnP5zp|n<;LJv(LoM#RtdZQ6M>jDZeEgO{^Vz5O7~1Z!^V84b<;?Q)>}5+_?Ko0MdX!rAR%9!>^771DT4_|yMu&&jt)8FPEp_gmUtOvl z`+$Oi{p~kE5-0OdphI8pPD8C*qSkt3j$V>AY`kFUXdKZw)vhj->Am<{QuPp_^CZV! zQeGf&di;WFJ13H%$QWIG9^#X5;5UfW^x$9Uq9IxN?}@-1(Y5OTkK z#84B?7IyUd;1i@;_3hc+L*tHSaUce~H}8~Gb_N(AYqmM7)x$u92~dkP#vLCOK;Wxd zf7oCjUahqM#{035gE3YgDxW`Atuy*&75P=c)NWr4GbD#5c`J1GCjzmxLc?n6k3q>| z&e5+~)}-}VZFPQk-I|hKiuP!ezT}1}#8|$~O`0@tlWb@Tt~hrad4R2nS%pYW6h3+; z?Hu(SEo4Nbtqs{*?GeXlK<$a1mvFi(>zf&LDE5QKopwc8h!Ib^$@UTR7^>Z(39rwK z(uCXQEgw`4h8%nC)likr$(O7i8*-*nVd8)+s)wcYOCOK~JA)SwK3Jll0`LDxp$`)6 zDg%?ifp=Ap%sBv4$-|D3ZL@nw)ma2j`z-|yA@gt)lj_>aNmKENwH4tL*BLf}?|qaH zHW)@Y<;no;kBPz)vkV#V?*8grjxF<6LS1{DSH-jEpSm&U-gOGTqre&HT4!T&&J49Z zOc?{hk^~W7gK57|mQ+gBfLhe5dV^c8NR7M-4pjyYoS4D6;#0WaWWNBBr7CN@zFMQn z`*$IqZ!q2U6St>HhywSJDa4}^&EKpDXLebQy6y8anpYRK3V7{fKpS$3uiLthY>~@; zSs*+aUN1C(B(J5vP&n$49%H!3KUhv1*%0qL zhvo4!RBWuRZ;ZFB$^1dAh+6ZxanZWo?B!$86cZ-)I4;er3{SCbV=H&Tdqlcp`SHZu zW@#8pb%0&b3^a+cb^EiV(U;1p_<_PlkFRYyr@T$)`O<+BDSfb!>xM$l@Ccu`8d25u zVh8!5fotAA&JNcy<@qF&>$)r6e^UOq$bZY&3Fr&h3gMIiT3dkr0wQKWm1%`kld!>t z^rzmuSBL)8ac0pSX~jxjUScwSH5y-TCBM4-=^PedZGd*5Nm`M;5YA+(QQ#EC7p4<^ zS60nJ-&`5cR%4xYxT#uIeU&AZ7NakF=7DgJx5M}|<+AsBY@02+L^n19O}f=j6I!4o zgB5Z>KF#idTc`)!cXTR&7{LvMw&-J?qrsmRqP_GRBgm${2HY+)J}(1AF6~KG*h^o3 zrFE`Rr6JpziB8m-kzZfK#5AGzrMv3-PeIzR z$nZ3kI`&NqO}dZ-tH!kXPF^$Qq+Noy$Rb@%0|sZcEWIqV+I6iKXB=mOL=PE$&fp!h zGpb6}BPL^4O0o0t)ca7k8=?hGc#_cw&MlXZ(y&X6mM!KZymCOiAFX4ES!4N>lk_LX zIWNg^$l$^1V`qPe%ult|jBz!fr(e9SO(_uMhDS=>mJ%AX0B#;~leCWyZ7s+SqgXXer zXI855;=i^;>~t^6>W-JDe}QBr!w06`ihVl&NvltC=n&;tb z6BV`KX)Y@KSy~!+{b$(46Mnu*?y2KUSJ-& z)Iuj?Hy5{?5sGT7MC;@(aYfG8al4>46Jt{V1yFQhqG99c%C30OAKv%zs0uWP7yD7^ zG3MSamcPNawv>dqcku?7s^!-kw%0!8@_jssv zNwIME!be2iSnhgCtHskIf)Cre>Zzb*K5~0ZjTb$28C5o?kMPC*MWyIdk3r*Z?dTop zA$+4avIkFuleT5>m1Fei5OCK#HASYKOmKIA8FVW_uKiT`E5d(K!#9O@)UnxUk{Np2 zSbb#z#KJwT_#N*Eyz%mXv7_NJ+0sbA9M*gAYk?->(e~;qsz<(>gf6b%#sM05alu^GhjEy|EHj~^v`tSNq77`rw^lgsa( zCj1;KKD=ga6vU5m&3=HEUS$i;#k2!uA^|8!=CAMrpo?VaRoZ|)Qtn?(b0hOUn7e$( z^7L%zDIa8pd?Vre_CtZ_xK9;;$87d^#Aj7p)zv>Kf$-h}Pj7L@vKg|*$6K*< z+?9Vi=k8|m+drF8gfFOMX8%VAdE1Qw$;0%ob*i?S$V*%Ww9-O)N;yQ&4w0iC3gLM# z4n-SCT}{)8y}fk0O-=PTaIcG!Gaa0m{K^dg^@ah;I1lPp3IQt9Mb{iGu1_(R6>3Sq z{Z>SV@SEFn7&_DWG5~-Q|5$<5eh96+`hnT;{;C2_bU9p!7^5fc5xfByYObe01AS!> zfQ`1nJ^Gd>hn%?Jlt2ZOM6*TfPs?pA7x%HtMDQ`&#sMIH1l(=`4eMH6peJv7+f(TD z2mZxYZTFrN0^{38QQOTD&ubR$dWtSlS=Ss)b&8UyxJ_&cMDkIfNd|dS&p5f`-(y#Q zm8xO{<}Or{@Nw#r%D;Z*dpce|q9;ncEg6FtHlPWAQSXr9^_y?2^_8k-OoZxc>r4_a z7FaJYFL1vtieT5jZ^uge;sSML$I6O3s-C zqJR0gY|1A8j(HejOLYZ82M|qfbToz$(GRh@?9|@SFabNA{@Qdt@X6$aft>uX{(E8=wa)6&OUiWoMf_BBUEQ^9)4ki$ zR;j^HcK~zyZ#}da5JembkmuWH*j7Lg8A*{-^;8e^qbe~<*^d6UtH)g1gDOmkUFQg%QdiMmqo7=4lrR_s|2K4n zC{4ugGB~koIiA$DU_4ko@jG_RWK6>K7)pRU7`*xzoCCF-v#lyoAA?%Fo6!(Jl5Y0H%IJ2Cc!&vnWC2({Shr=L(nuACb7B(q zvps6$E*`qj#r|M*Ud*X(z+9DVCT>Gb4QCgnUvtmp+xP@K1N{N6i$Fp|;o$rb1^675 z#}S6w!uD0gby*I-ZQ_{^EL|;~lQ<_}+>hdG&pB%@{~@>qPr9{ElRRGv<4+IX?H~WX zQe&U~A%tSJsFQZBJfQ@k*RwL`T zqn#u_cHVd0XkyBU2E*5v5kj5Xvd;7u$SrmB^ zU)zk489hde$8BCA!RMv>pI@bCd#h%|XYKYn$ZzbuZ1Midtj(z$*TYNlC(4SO^`Mpl zh;&9hi69n&B@cHtY$Xv#o4iUr#aDMGe%5#}UiLiyp*>G7m`(Y?qP~$P{~?ZJUcVzL zAYzYH(*jhy&aW;!=`1czya|yTN?+B zfYlM(geMgy7Lr9fQTE%npq2x8;yh-`2;uljHJ?Jdu_WscZWqazw)oI2Lc5k`P z%DLd!!b6``{mdKgCC+rp*W4jW;}li6b$8+?FHaICJ3^h6Etx-6n9AN1liGVjBe{k7 z4*Rd;BDLs8 zUYY5u8&qbGr?_ZK%vALZXS;6p+@l^Js^xoZ)`~>^Le}}es59?@P@Ul{di`TEtgNWN z;OBtpU9YpFJ%{ zoUAq#WhEf}SgyJ!1vP@2lO+3Ne$?&|mTM7CKFYtQ=PR>WhuocZ^E_s3IuFN+b z=&0WAw$Or~X53#U?~CxsrHgIf@xD~@-C3T{rOxPutFfnva#7}BZ<6UkR|m@o?c6)H zqUfqsw+>Mc;p)`vs!*Yj2=f<8-f`Sx_B@|GB&$)O7B80}(m6bQ1Y{i^k(*g;zVVwl zeM$KC%Ro~=f0VpCE96(MxisCAVlMX_dX1y)Nk=$(|H+Oy47u^>Q|{8Ut5%ccrxLLC zb+)=YAGWRcEq(harjWOPTjq>%INM>MQT6b|7g(T(_wZ3}4Fl~8O)OYV#@8%d96cx; zMtDP5WmxmM#B07BYiRbAGha+$JrnhB-i!+E97K$Rey4%+0DF*b))+v$D`8jf0=FGZ z5m?4&wMZY9Vy%UtE1d?W$g2c!oS5erSifst`#W$uhzSjZ=+YaCIfux0Q3aHZ**AVQw|8kc^{5!lklTr`;zHJ}Bsf7v+nNP4}^lOekSaU`ruV&}M0G z7fmp}b@({%xS`w+K6y-oKix72Xu3mXeFXS$&Jxo#>RE>fgF%JJONrmizIJU0G0ip)2k)RKgTH(IZ7ldlx!1zzvw zWLEevc}pVi;J{d<+}0`H3DF2oZa#vjOK245!ODH7EK zA^N$F#?D0^qgPnSS|DSA^!h@gmeXStcYmHR;Y_xE+tJ<-fjMGd}-F55ZLA?|2)D@m`j3XaVt$b zz5pR8COdbwO7x3(J_#YWJF|U$Uwen)kdx2NT2==KT-1081GRcLs&?3SfP_TO&#-Q_ zHY-;|+6-$e%2qd4H6*x3%yT>|Nd7Dl@h-98jS3^Xo`Ky5AaPf4q+3=ri7k-CFW;Xe zORoosm#@o`TJ7AP;KN8x;-Pkxx3EJ|BDwlY%5`ci+MVx_Py`od} z#y^(26m5FNrlQt*g1A4Unu=}u%|n5C?CGzUi^JkHWt|zXawk7tGe)XtrgQy#a9i8f ztRUGtp}DxwGwrwI6^EJ5$`iMlyKT%C6I$#|ZERB?FiY-Jp}hgAYFJn%DGEbOfvQBK z|DxQjCa~@09${SMzI?U5_9z#d+6%d?o62W zV;P%{QJsJq3kI{3hw#Bz@?X^aLwiG2@~K-t*2@B;0~aj3F;=maa@7sbN6q6@G@M$6 zdNno6B?_KErGynJD%if4T%hRx`ic-Ig6J$4LV7)&+R-x_O3{S_|P*!YZL$x@!} z>g!x-7GqnKAjpY*k6T#<KL6G>yPidF?96? zQTa7{-0PD370-X&X-&Qqpc|itkO}no$s**b`IXOCbg2L*``jG3j&!U7rD-ick#%-N#vvDkG-lH-mnE-8=tuDK zKyh8PJ%3R)jr4SgSb^mrmZ#=pIcWAnf9kUgvTlqFjoz}No)cyJg{?r&Fag5sKackk6wfTMIsdffVV3O|&Est=|zZ1+;%N7yR12hEbS zGxTJ9xdBMA<^PfC^9I1Kt>}3(!_UqEev;?=mn?2MTOHJKnkI;6ikHU@1yo_#NiE z$h*79IULCyLwluv8q~~N0On^vrfkzMm$CT}5P)cq63qwxh9MmUe!Lf6+@$tUpuR=W zs<&88eD6uui#Jz)A7S)*By+M&|3ca-)@_UoAXT<9n%{`Q0qUL*WtgGp%(Z*sQ{T&-WFy=TGew61}ojuv7=B9iuc|5jIk$*M$93~G7YlBp(?D_twHx$FK7&og#$AZkFc68*c z$pP%8`rrgpqk3-DZ^>C1au4zYWqr(TAH7JwW3{3{6VW8PW>8H5xnOuKL~$fnl+TaY zYl95#y%E}I5le7Hx6ZTo1>0};fQc)>NpA8z!~;Z?J5W&R@jXc3506*dma^5SkSxDq z6SK_?)zk}{+vU>(Y&)OqlSA&q8>D#3H5gMyyAPA!O$GY4hV8BP>NT})xG8(P429C@ zTWgoSovSYMq=bu~ufVHeHhnIecccCObhB|9jyYXd@M_JcJe$68YxCBKTMUM&hz%(5 z0?r(8mT01Ul+Oc(%$_;AF+{=&A>Z?%!}QO=Ug@CQYl5EX15TQESmv z@^IOYwx?Oc@l;Q!WeOr$dqGiXPMIc>=?a;&vv~GKcEE{O4)uz@KCRhLf2Mnic@w!$ zd8OJ2xMtu7)&WGFjIe~YVJg4J;9Y$u`b{rOv?7v`J&!cRgCAvO_#Bk|s9~k)vUrEp z{3FBhbMOHwJJeza5vM`Yjn&FR9`c1y8PMr1-)1r_x@&9BjyP`Ee7MD28(_nAV9D|T zlLCY7$vj}A&;<|!M63tdx!B3z`L!651ktopO~3uhL9%SG@2ejJz@%>pN^3c=BApu27VqH2+}!=T%eMvDW060x0>!0X4f6(d?1<`t7{Nz zZoIA8bw7Y6wLxM!k+tCaSiSjRg5jX$$dbzDsG#DQYOmZgjZ5CfsI(b&TgexkNFzi9 zyA7Q4+=d?~08e&~FL95@t=e|<e6O8Oig4`j(>3S5 zZQ!hGcb2g1Tnrszz0Hm(mKV7 z{x(F0>J%a|d|*f`>G2bSlxyEt#^af5FRp8z6+V7J_jX_6$Iu_nsr{;6J0QzE(gyM> z6GTP`By(@BwlLks;2G?kU0DEeSgW+bT(#6Wda36KvUhb&a0W9GGbSI7Dg2i-Rdoz; z0T1iS4^!S$j6y!ZL$fe3GgNTOpMlfc>|%utPQ_|$>3q@?4`))1L=0o-0Jn3ZzZ?Xd zQ78bpegQZDO+BM;|RUYhGkdj2^(Hsjs_ zW9R^$6o94)VkzfHrVnm_E7L>t#WLEKm@*HD3fW){>%e3}KofW+}sM4Kh=(pYaE>+TxJMm3{9UUx?mhI1oLn zLB(BvA^l+M+;J4$kqkY?5c9DlKae}@L$Da$zagJ~XTm{6Z=gx$C7Z-za(QdgvmT{= z-e2l$nV+3N084R(50>X!`40508C^ejAL)75Rb#H<(B|3!k9s7u+xHESA)rBs`k2p7E+R*2~VeU|{DC z>lZ9H8z4Dk%m7s7|3T8q$j0;!m~Wb(1QN4S9hmeNWmP#wy=)KXA+xyO8Glg;Xo_Q# z>0eaQ#4;28-D?2#(A`V9_L|LH*RVGI71YwZ6WUh3=un`TUAus7>eOX3|JiJEDy=VJl6Oe43TR`p|rc0s)hO zd1Rnl=$Uf($n;oRdAHTPBmQ#?!h65Db_8fof|QS%nQ~=dm`u{T@k@_S1o$_I^=+-j z*?>mET;q$lZ@Vn*g=GlzQDXQhrUf(f&nq%*lp$OX$bhTwC+W`-!m9yP%@&EDJ2YCh zDe;MRLX>jfbDwd^sc4bOwX8eeqD}nb5G5cjICkJ2EcwF9VGjUHjf`R#Hk}%=Y?m%y z`q6e~=s<-_3fb9QH#MV{+oVqF4c+`TP$(rZAJq~V)EP`=Qj0n}(*GC5W5{L+BL6-4 z6Yh@JF9qJ`aCNd^w_}g2e<5-;R%3i|13Qafc{$JbI82qEhKR#Olt&fF7dWyQwl`@c zAH$^`pc+ORPhz+aEQJtDs=>NHj68bxYApeE}{on9c<#!Uol|<^A$9DR{ zvfn$`qX=yNz&{fV%yJw^n+20d49;py*FBVy+_6{nyZiOyY~fy;cj5qmf+ma)Qviz< z84Hr~4CO~dJgDdpDL9GPi)|MvpTJ%*CJqN^r42Td`GXsk9=l_?yR(c^Z6+q`=&a!Q zeqhNWfo@+GAlrj9N+(~$&VDEC+;Q~66!4^v{F5*bY(_p6<1s4*wrjz7;N;lc^!?Qj z9a(TvoAoj!#{S|#5&p_9H=i>(7FG{uPh9R|^Dzaf`O1cxP>UO~$75D63E@z8o9}7# z`k}Qk55Xq>d#iKH_TpB;Zl{cX@0Qh~9Fi7_mXnE<1dkttGMbS6FYX>2KKyNwItb}y!QwEleSYkK3znV-l)NHIBwr|fo zbN|@j;Am$@o)Y&hr|6`9ug8Y17CvIzw=hAkcU^@tVR}BI_7fCehcUwVg|mP)Jm0z1 zEIRb=uA;w`u4MBX;K_m`&M=F%4d4@JxeQ{dM{6ADEJak_d>lJ^fZpjc8Del-`zY{t#)vx?*B~-j`*ssY)TyQ zr=OI~ne})77H7IM7XAc|+L2G=^`L7D<6#r&8ZOzc|K z%=L8a1x+Osy;tYR)PvsDiUbBVU#VF2*Cx-eFH7{sFQwmn?ty>P@Gtmp881wwoIDL{kA0Et!%)9^q<==F$Fh`@-vfNnfZGBfJEbCO1=^xEO~_iNMd%KSw& zMB|5+@STaX{gf1N&3z29jAD=MFAvUkp7W_2>XbOtQWhAtVqm;*Q=sB^?=)*$kc}Wa zL5zv+1UZ8$CTPW+dXJ{~9~YVd2PkiBrEi{|8)ou}_f^bM1aka2Y<6(0$S#{tHSZd|h2 z?jYSHuPMG2G-u)ah?R7=n1@&b3CBmZx~zW%xD-20AHVQN+H6tTwApK;i1HnXERdcS z9n94vCQrlta5`DVY>aloYfl!IJMi9`l!bl6^U(1x){X2;=xvW%gPn(h`k9$%E1=W} z%M@q?GHx89So?i~aeC-W!&=AAB6^)dS1eq_^{?I%8`ZwI=_>o%5-N0~38LEpGyvH2 z9!daNAzo^6 zwbc6AJk$B5xEWiTMpnv8Un0XwzB<>rb2%ef_eS3A-zqjwkoNsgKa|l!tIAO z4R=m>pOkIW&-K;N*mpVc#51Oy!d)@QizDHa2vu7vKd8!qXNS9>Dtw}r6@z>2me)1! z&@!y?HD9%1nNQND8L1Y}62=vev_72-KQ@H#5JlKQG@#^5e}P}gb%%CrQW0PzNZY`# z8>36cwBcxqD-gU2rSQ=NExHgk7+?Uv(c&R1%wH+>$b}&za&uDfYfs(ZZ$(CHNYgR~ z6`vNBr5~iUhqIudT1(;WVjv1>V0|p1!A~Ja07#qI1wxInX#z)>dWb5#N!qdmO8k8L zQ7De4{#G@?x#WjEM}XU{axik&c8^(EUKLFAshX8FaPOmgPNaOnO+*lz#M9#Zp>WySj ziu>3J&Lq2u`@KnPZ}xpf;t1k~g0T9+_g2tSiWg4urQrGCF7u|ryNV_Z!A{GWV#j4A zr4n!5Zdt;2;akTrRp~T|K`;?v6(a@?MIZXgNsUgoRYTfXKjdCfIn~c4nUH=ju~SFC zsrYc6@8fU=q~~r%sn=2a7%eY6|F6oz(gbkk#U;xFt)@b!9VU{lmT(w;CA+Oefm_Pc zAK`tlQFdq%zz+MyI+_%F1Tgm8cGe!T_O#MYQ&OzypiOAruNwz z-i_9JY$QBYboqYK>aGKwN!l~z)PyIM8!Auz(seg+@KzWJoAPgm%2CNlL-@%we4iV_ zz3a?*z_<>)_$JUjMeW%~R%!ZkPF|&4t?C-y)GNjJUa9mvuQ-x8Io-q(!@Y5c?eP1u zKd%3py8qwhKzC0I@yGMJZ-pHgQ?PJSVZTvVmuUnF{GL@-?rXUq=+5*MenUP#2Qo}! z#K$_;;~RR*VwyDPdd$^0^E;5{Bdms+=(v z^lXePUH^hr)TkqH63@5klviTCG9M;mj?_U4(viW zW5~+ba0s>b&L4VUDBjpxpy00=81Yl)LFm0Amg{U;?h&ets6{e*g+udmybiw2+r z$+wKgui1hlS>R(1hXlYIzFwsv_sD9mrW&KBwDzH^pS!#*ML%(oiO(2Y$0hTnahcN( zjV%??41qJJ4XpA360nS%`e;Po(Gf!vrXn2Jd8sR7#|QB4P)u$5*s$D(CVn{j^J1FA zMP=#NPvtUVQM~3_3_F_t5G2CC%T`;crf?+X6#Z#P0QGdBQ%feUoeLQAA2vVvmyepU zE-k-eJKx>0FXVHE?aXyM7t{SpsOM!RyH zyy7_)%XYTew&_%H&K=HwBPTIL%tr`T1UMrQG!}u8CXWS6^BJl6r&q=bfGb^2JDk7n zt2{ZWHr}VJR$WoEjq^{@-I*{#m_tBZ9}x=_De$XF=cFt;bF@aX^WEYsgRi70AYG)+ zqz_GRyxeP@^`_NU+k7*&%w?d`XHaq3iV~GGtdBrCi=UYKhnCEi^k_JkX)u+Qace6x zb>ZJ>N!GIbyRszz1dVDFb8#I9Kz%!J9A31_9;gxM zyQd!xy*3u6ff|jLDuCSkPU<6^E>wk|K!sP8MXM*)lPK<5MdaK^&cmDZPiAYF;p^6~ z7ENAhNTI)}SKteN{u8gL05{Sdzx}`1d(W_@+HGw#3W78vNRc9;2`WvgDkY%OL_}1& z7z;=f5a}(GB1Nizz$*%m zJ3R@|Mv!w~B5sg4fVFNxZCB<-S`=M|b4=&H7wIMtJyeu4{LJ`PJyJ;%)EL|AhyC1o zIBjn#b{jw?)~mf>*;p8f&~0=y6%xWb1<+V8|S*1I-(1P4SI9AlD({G*cQPd7Q(`X`h*7@6x?f?sNcR6B6)y zn)GRw0Cs6%AD=$s=~+e(@F0eKVAD@A$*8tZ1hKHy=Ss}@7+q`=oX2NI9$lTL3`YT7 zcA89JMNij^8f5{RV9Me@mI*Eo8xNVV5!rH8K2{HW5I=pUFwt8rntDtRdkt8I8brv( z%Dx%ZHU|ef2^YR-F3Zy?m=Ph{X#CZ)jGZTcBdkv%*d%{T7M;kcN*$!Ma+l)>*py8Bbc|rn<3%&VED>r8!DB?cwm^J?ACv zsvTR-;PAfV_7mVak#wpHM~q=ljuxgL7&mas+v4P8zFyhn2RG%Ywzn%0V79dh+Tvni zMIZs#`|Hr8_PSJk`I`*UZ|@vg7{iz`2Skv0Pnhnk6^xqKQ6jSlypMj_N%(n$`W^Yr zogNGkX2Z^Y-S)xnn1fkX_hP;F?LLogRB!rN%RJeQAG4=^q;wT^pvKpTJ)Ms?c=bVQ z!nV@zF!}t>($a@R>6?mBIz$(>B*^3AFl2jlL_=7UQ~ogSm*T}+-KP%5JoY;-H>?z& zKfR4!UYq50Iq4kVgoftAT)8uYGn#5DpB^+dP}Nl2jS~x+iyf1us_0m=;wJq4E<2GG8283LIdG{TLbWPUK1?yJux5$Ku3tP zkN6G>1)iV#UN!Zqx{>xU*(ix9)1~k(X*rN9Nqni#p3B@cFSYw2#!vTnu})IMTys?wJCb2cN=tZKyY%{Ge-4?c?e4rP!+Dp zsCY)NXl=iu$8!^7Dv!49Ry=shU={n0t!CV+G{wD3h_k($))P6oGgw%$igqgy_D4+dt^X2+ByQpsWq4pu58+B7!@K-!F00Fus?zH_q`Izv|xN zC%N+U3|*bT5GE%$O?FPG&01YK62F&@4tNUZ={M%KJFrn46V8$iGq|5QsV;a&Mak5u zIG9vPoJitliK1ZQfobJKWFOEa=gFgaE-Eyo{`P9epOw3U)bds_VHxRx`Yg_TEneuU zIUqICMTF)sv6%9isQE!y&aXS4s2ta_Yj`(B_HppyBE|TkW9FA3?TpAJ4k;~1Et$9@ zJ8wA*Lsua3IW#PbT3rNCK`G-&sV)nBcNNWyF_`5I$U|2Qi^EE0j}ZC~3r~qG#9e1C zFutSG^%-vj8dC=GeDHIj2897Q*#OC)B{`&Ez{2A&czx=_Sb*`D$lgf zz^mVg7q(!z3(N9e+PIDGb!)gx0gZNs6&-5l#7{_jXEnX@p zeF~~0JN7nn7X33X=Wfsg#-Jiydl9`yAdqIK!zgmUdw1ZE?GpvmA?TxXwBN z38=ur9}d!8z>fThh-T;xVwT1LJPT?ZZF}+GnwEh5AO3{jn7!Z#!@%TGGIRPtM`S|>s z2J&Jb#>OS#PNDd^{aaJL;WGt)+(`P|^r5i*=?Mgr6HO?XksE=$FtEa47ZSEoQ0Hh0 zp@@61oc7&}ZV!9qyP|Q$kMD?~Q8|w4OOB0E!?OmOnv!qDG%8dj7%P;HP~$(dx}euG z1elH}va1oD?`s#ns)%&oixxsR9+pX&TWfdCbx;ZVuo;{cH*t*9(0oSF4der<5t~kX zlLN${mpuPQsq`-;Sm^igf38~RU-j0%$w0k@+7y1`VfotC$^z!QYN-65#4)+>}kEB}`waA0k_@;$DQGj1Ny>!xkz7^h2+1Lvn(SB zk=spfw$H=0LkQNZG_n!(2JGiWPN9a7YaSEUxF^kYI_*3&c1}%|)G9ev^>7VvU)c1} zMz9GP)UF+$Nc2gi4?>+hGweVZBdrCXfL3Uxt@TDepcCwxrLY75yzbiq4o}Vi$Ira{ z&p#O|3EaawMw|jfc!DZt2Vc3t(CkbLY(VV-x>m)eZVK7+q>VA5qNDd^Io?d){*ADi zn95a+*a!nU3X7mh2?+5VG;y#`F~#g)BWlvnm#VQUC-3L*`wdEU?X_d}{dE%v@n$-8G! z{s!79-&y9Y+w(x=$AT66HoF_U*CjJoj64`yda?if@NMb6Q&Vjy0|V53nT2whG|#7!N)owemRnG(QYFiq*=2uw(B~WXgJz{OOXGw%yZ@V0xr~2P z{^|Cupuc(ho@WbR*1l`F-Qg+mik+1=QofJ5iw?Fc+A+FDC5)!&24c>Wq3E9* z+4fb`Jm}u>0MV>S54%ye{KCe|HHjS!wPG3J|7cc{cYIyx?+sn>J+g7!hX6A z(Kz&s^0VQwi>`K}_K&>|bq}}lqpCbV*DCNKfDX+bw27HoGzKwMte16Wq{ZI)%) zh;8-Yl(Jl-OuNiO*!vGFtIq5rX=QenoTsmT4h|49abeU36LfFZx2AKkE)_upY;k$I^vO2}q8>mi}&_l+qN?7oB2DcZO<#_>C`mjzYXX!oj(l4_Tk%FBDyr+Yg`T)Q*_x2mZa&dJ zhfN{d6RcxPn&jskcA}&@&J7cJ^*Q-$2zyLb`QE=X)#7_+A~W{tPepeuNF&+?we>}Bmf-GC!)|1%5~gR0c)y*9T#hF#;ee z;Dl}94eEFJ0aLfOBGm~z-0mIJ!J_f^eLgir%Jj6!z5wI=2>eu=6ut((3s!DN?+KND z5y;Xi;#8LK>|0H_t&NTCnK$|?t#7RnosX|zvW7MNDK zD(MvMz0>EL@KA`RphlH{+S(o^8*VJ#}pOyVqOB_I@bC}A$Z#a+aoea@&T8WNxAxp zKr?I}V+zhp!J|Wm##D5g<4pvl33l7NGX$&3 zQ@;SF3w|=M2P(HtSsQvkODxT)dG@qwpjy;=h_#V4rtMW%lQHi6s+RMF1nTD-+>bM0 zv+4zQU5>9dUwuXC+n|<%cN~^PQtme)4{lJqY7(BR{ziDgx0WyiT<&6yX5OrxJ8A

snuBnLurvrO#kQJr8<8%i2b*|cqu{N$Ly?iNS`G&ps!oG>G z=D|z=;q~FhXKg9gBqT+Sx->@G@6y6Igr5@_y5+ZdaO9V4a!3roI)i5>4_b?7Nt5Z5 zumdB&2InGfN#>pVlR6B{*#eVftdR&ssArJQGExiTjNUVEtU zIr%Ao)D=(TWOku<0a-7Q&jL~*+6f(=S-K~7?(Oc7M{hj6$`-YX8tSegTyNdAA?&ia zcY)VZkA3X&pWg7VOyxh~Re+zY@5eHA<$14IyyeFj%ZFrr_Q>6@K*#CgKI$)!_89=y zBvcJ0;+S%D#HVUNi=`GxoB4PY*!P4zt17$uzJ^cDj6)8V$UPqG(uKVm=*8sr@E!d` z$IwjftBqW}C~bM4$#i};aGbiZdVqZ)Rz zal7h1sqa>tPhS3Mci32a)ADrxqNKd|y8lkS*0PGfN3ZhfT$qORbaY$%*O- zOVy^7n_dU-len@wPIX!RmOo_ESwfRCZ*!+RIQ?B*!n$)7h?$RL=J4C(bW@7lDnxO& z8mTg4?;INM_YNvhGYt@a(-6O;A)KG7t=h@rgzP(iGzeD%R&d^wDe)MXOdtTvEw-mi zLO%zYdLRz_w{PNBYk-?q!xK61uv`j502PM^43%>Lj^JcQK?Kl1b#4$m8sxLe6WtqB zXZT>*int^YHR{g^`tH{q@%_w(g+7;r2IbV_ovj6-^}X6ZaYLMds{=q%_muHj>TO0t z3-@g3PR1*`yen~#2Xpk{Y43;GlYXo+)E|%Q$gSe+#f?nf$sZptc8? z-F}07gRcRUC$5g+S-N<_mCqJdIZ@4RjvPkYy+@Xqv@f(g#}&wTK&#N%JT{vP?ynZp0; zbNsLW|NBYgf33~`cx`@v`Y#**FFW}k+sXf%*XaM>V^Ul0fJsd5YoPFOg4~ifkC{yG zIcXlDmSeTDYLyk-+*%v&o|Gh)S@6pv-d;R1TsP%89;oO+faXughN_UArSgQeHuI!h zeu`$iU$2NF`rMlqTTjmeyai5Y#L{?eQ{Jd=N&YGNYyBk!j4i4F{SnI1xhF@l!l4H6 z+8mE)r}%-Ex?w*pu2Oxz5c@{!V`lvE*p=>O%h(%-SbjFdlh-EJs9EqXnoXz56%obtLuIIfjhY{cX6?Kks)JU)GqnzK;^ znCIE~Y%|6{_S?x%tx6K9500Un2~V6ssV3UjdSJG^w#VZ%^*JN8MF=}IS(784>PKO3 z57xXdTONN}!GFjtGxbW<*@c~bF=o%=SRd(z|@95?f^q@0=$1C-u`07 zTMa!Ta`Mk}MPVL+Q2I0|Au6wt%mIK9#mKMDiy0)l8 zaN1$)>B!f57sn?Lt7?-(_%A7Z7mhLBdAvYJkCkN$_dI?xmO9ROs*ajCO+|xIL1s%L zw}S`9I)EJRa*ISvyDPWFbW4uskCJoC92XXk8nY(;e2Odr_Av!}f#kk~ewQ-VX~xnf zgxc{_KJZtL;b>Q(gWFs@*L^FM*8L}>{k<{YO#a96+yXEtgYRkvDMlLeBj9taP2fxz zuXK^2$A_7cu)m_2?;0;xW3PwIu+<8e`|j#@%M0p7@a&dXJ&q)cPw;|uaLjYob0|hi z65tZhvJp&u(1qZ&X%^e6Oyj-^CipZg<0m-r-5X3EP{n^Z9=h{4;!W2Y^Kn@*0TE-VZIG+_|h zJiUOTo^;Rao58<&%>)Yl|M1qIU1;eon#>tYIcoJIb_-470IIYzTzLI-=aLnF{{W*U z*0ho$@};Z0=79Pzn3fUHwUzyCOO7N&-XH-1wP|;1W?RZr*8&3>D&hx_f;W9x7Si6L zNG?jQ5`_c;dfPUd1NnApmzOYyQP66Dc=>=C86h07zJ3F$#npL8kKO;{Abi$KzNHbtZ74Gk5eZ7 z9MI?d)WD7lm6UVY_9P3 z-d#AMQ~J3qhxL+yR9*w6A>;aZJT3TN@c(~xasKcu?JBbmU3pTT`4QTutw=a6wU*?^ zxG{D{Q6XGp^aoLkB(*NT;(UCNul;>&6E3?FUHwfvxxZhQ_UUE(^vPn6Pr;?E`6}NS!3!E&&IJI@koP? z15XEVcBh5qhD>BYt%S0SV5mK>&tr#&+h+IDPk78D5pJV)Us8h`No&5FLtiGHewo}< zNYrUl9|mgKsbCLq7);6Aj|Lz*EVI^)O#Y2P{F``+GxeFEV}t&<*|2fAUrn3Y`^qBOX=2jCHV#TBQNbCB$_B*NEn%^+F!>=YKhP5fHSJlkYU3)@J?KCv zJ8t>X8=Df3P<_WSPji;rY!-)mf7&5v+3`CDr9fqG5j}-xo(q{*X2i_^OC91^S?=33 zr>+65D{;6V)WtR9@INDi!CuS-h@IF0Ev7yh8dGPU!ndBs&sLuQjd&1>`ZWMOc*^zg zzk@Zeo~Fct)&vfk_BRt^N=l372W{kwx5lQ;(8b!}Yd21YZ}1rwr0D%Eyz1v#gO%7p zGu-()jWJXeCc-xBRf1KFV^LhdoRlBlEH zzIDb38CE=F;B>nPr}FM?R0I&92{6FkbO(|Gp!Fy>_GQiy8Z`+H9eOo+PJ~q283e?8 zQ?-ib8(K=>1GMYd-n^=zTDodpCz#1g%6C|ojVQ5ORxxCESYl1?PyA8GeS!UB)nAup z9Z7d(yoPQmPqa)Zqg}k>TK1C_?kfHC+Uqvj;Q8wprpiS8`;(g|Z~$eVqt23z@imW; zu*={MFLq((M3ggQqtRD;EAh~=PoEVk{`@{q=qH|6|6 zU4Q;4Pq)hlWBaGDl)#Ua9^}+Mswv}9P0FM)F(6ud_xHvj9mu9?xZqCkZIeaA+f>dy zE-c@c<$nkn16MK(9FNSe0b^GUbd^`fV#Z?^)s??L+49e^TE#z+a~qwrfGZ$K*Az-@ z5eSSjqiCd@=nR-No3^fbABa|XQz=PEjtSTL+bBOUJ8+xkLoa+x1qg3N0#TWvn2Db{ zg6{sW_!c7{usEJ?sQDB==wG>xzxy*5dLBe5$Rj%datPE0df5Vcyzb$-nVKuXMzPw;6!y-B z^I12!HDa{f<#kR4f_cAsHm?m|=gU0VV}kn$C$?8}6@5s}iLIm*muVhdgus5?)}UO^BF)Vq_tEtku`Mbvdz*%;Tk!jOf)}qVRnUK>#Xg}p zM>mjoU#L;*jpcz}+`1$fD+iXFZ2eOGvB?)k4*mAabi;S&vth*1ULcz$^cPddHh8A~ zIqYsyH%2!KV#~Yk5@WJG@Zi~fcB_CJ0(!q>I1wYy@tRG}AVvhye&l63dSupsVou^E zZ^_p^zMXm+H!)pt^tfcFitdnBRHXbTCfDDS187p!GNEI3Csr*`t}FY=f`Y%utwv{^ z`F*Wj4Sh~uYkLO}VHy7-Wj5w}pF3?YSkqj@&hP^U*bq7Zt|KeArQwn8X|OZVsAp}5 zYj#c}fA+`f6%!??Yj@71_DHLUQLpg?_q3)=bx`FPFTJ``X(#CR#~V6@iUJRplr(Bg4+rnt~MSt1Q&fW3~ldVmEIWp6CUcWdP79wx;t}K=9!JI=@yY zR*jrNyF%9{>q9)Sfj}j9rvLlUm97J-K^jY^uW4p1%7?XKz72qT4SL|Th~O#%pf+`F z={d~4@dV6)K$3OW)k6w(8A`a+bAqMQVVToL`;^Y!Ka;3S!Tq=hKE4;*HHxo==mPR{ zUTqMsU07v@UDzf?uqClE-$T;~ zcD=)j9H2BzuP2=IJe8%F*cs92TV}R&9hyG<2H7jB+L+SNVKrK+h+_+3p@O_C33CJT z)C4%#Gbi$87N#mj27nEtjD%~?R8usgl}mr=Xi$$SHh(TCR@-Oz zSy<+jBu!?Yn}ul&;4XL34v5OPVJQ)~|Wme7}JE<6cya z@px=fL-EV&Z*dgYPab#|JS<~Q=eHw{ov&lQhoi~nUALwFV6*WQ=`+tLe_%Jc&XQI@ zC-+CS;Wl>QegL{^)DZf{3MLj^jp_g+uAwMc+K3`+Xy;bGxj{=zulHQbLnC3%&Fr)6u(%qW-X$9K3Z8tT3XDQ*pK3y z-TvWT|L4XK|1%Dd|KCZv{&&9f|3ISFp~d9bq+MIVypba%5WFU79St(#(#>Rp=`nBD zT2=KXYc}_wYmx<)x2|xQ-a$&?OY`7lEFOWXiWnIvA!upz3;vbY zKOPs;-9s{`j9p;7#Jl3+@~X;8i+Tzi02f)Qm}pXR!)F`C%ToF8P&`100HljHP&QwW zeT!c89Ybd{LzgV+pospDZ(iQ<7N+&IaKW~OFbomX>2ZG60L<|{QO#q>B!Q+}yQybE zGN~y$Ec9h))|(;V08V(qHwZMw4pMS)vr0P0W9@PRPqpZ4~%;s)v7B}3w(4!nZ!Y{CGyGVQ-<@R zjtv=^68h6GuNw58MQrv^kArX7Ky7Exgy)shD^NvkhZ&}8R9;o_eYL8QQxQjHmQ_nr z+I|uJClv}wa_E3mOaL8(A5quPglZtXDzBOF9m~gqot)rKH+be&BN9CnuDU*Dgw6q8 zb6XaPyjEYd3q(9c_=-3%0^mc!l(F%Z`>Z!@F7quT4|#QFY4>(w(K zGB22a_9)YJVnsmpiUNJGPav=ty@Y61b12>xNZ^r02uxR0mI*dI*j00fRsi0FuS)#*J3Ai+G4x5NDuR5>qA(4 zoLOFNmOS;Q^@y1tn%{8Y4oCHAg2amie$pVSdltR`){3$W)+hy*^{g#{fyfP>rVFQZ z2Kcy%#5^O9wP$HsTdSy5nyWQ9RBESb@d5qRN>x6S6WU{&(O`XBwz2OuLGV8-EO0*U z?eHrvpBHpqvgPD~;LU(DlZAbAV`kOfQS~D+b*bmC$0eU`0=cj~ayM++A&wyDW)aL; z$Mp+c8V(i+3JO}il-eFy#OiGzqO|k5RJ0`v0!$V4G}jh<0~An7yt@l?#^)@JWVYk< z--r`n_Blj9U_i0&nb8^rpgjhb)oo&mkYlnGGVQXGZ`+H+6dyTIrnVG3WxsQ`?eIR+ z@V9UCpbbFQ1Mz)i)C#_QkiM@*IbxP)ZL*^aFY5XAgO$r;$2Z?$6)drt&tjN@RUyC0&YT`M(r&DAenIM#Vd;Evu5ik{lS zO}`31rfJX}LGfTPI^c&(t~}Ylh^??_y6kj^pWEC+mE70HlivcJ4%+NBeu~`4f8Jul zh=bhFT-Yg8g>naevbOE*n+bU3boI#OXZwJOG6(-@`^@jxavbAw7kR?Wf#4oU>~EN+!x=A|)Pw9_%F5o{cx`UL-UUmd0oxJ|7&t~AxoW|6t zg)*VgsB34kHl=~#l|y}(AXhKikruFp4L5&+^dK_mv*q1r&8tOsF?^^W8AVkEV^|bj zr7_lg$hWxbhoYZOz>WU<85J^-eX>cDvYQTziDJ(i-mrf$>d1o+dVz5vOwM0rrnC#w zfvTM|n#|eGjxKS9miTtjKWx%oOq!jtIro5jPH@6bUF;Cz#!Kc9n6MH+7u-j+Bb&{3 z=Ar144WE1!bu}`VS31Tr8#+#la91`7R`lNCH8e$MRO`t+kY^-I#UGNgxqcxo{K)G> z1iRiY-EefLGLr*@abP^k8#Lijo*=2^5cVBbuCBaBHGesKSASE3VKE;;Ex>9jvRr<> zq`1cB$3s7LW;>dE9y8THho5XA)|iE$5j&H*iFyB z9{RS=7_mowTj}aM8c6Df<8RJRg@BZ(%BXEX>40blTIBZkwX)l#4`g`V8$zBoyL{5S zY&#SvE8SEoDJF(&!4uvNPP*Gv0ZFZVs>X{=2)^%?jJZZ3};X@nVc+TFn}#h;0_`xPBT~Z z(S@rWC7+is+BC#oY;k+vt-=y5eTO#Qa~!v!hU?fKFweXYMfu8X+cIb7lz@Fcj4mBQ zY}V|u^UNolC?oxPtMn}0JhLswb7<+x{%paNJu=A1XzaD|9(C#(T?urKIx~160f?++ z4Z3-kztZ_mZx=z-0jJyoOaaXCC}uQ*qyDok1-J&_wH6yG8qdHh73PKJZ9R)do#BAF zAmxQ-XZNgn4~^-*VPRb#$yb{;D${pxP}sM(LJ;!XKi?LKqxAi1Ctej_Tsw$4tn@$e1L=iT$o+iwqh zSvX+MMcGs(uZz0F^MPq|(hpUF;?nA@Br-myMnzq1EOI~W{2hFYlxEwu%{+h zp|@4Zx%`U96Z!{ZMEtY60(O^$8Waj`VVA$?AxFkK@zr^BULhb{PU8!7``Ux9l56{X zqo-rkv}N9U*pBCF_wLsBn=jsE`bF#5IfRRAfy;3_lI(K5KAQA>uZdWAu{<{z`nES1 z$XLt+sFSq-#AOkX#~Lhal=!oBSM}7OIQ_6KA6SCjZW}ym7WNBlCqpX)-A`P0d}%&i zPNUSaLM5}Sl{7QDIHLk`UgN?JV|Mr*D-OKWMKuj^IwtCP{%kLQae9S|qgDLn-pOSn zH=x-L!CEX#4pnjoRfzFSTa|VRJFs=`Br>8!UT4I5(%|`Sk}t_~%)NI(D!lx(pXla& zK5~j!qyIBY42VHs6?f{}QJf51Nn?f6NG~d@V^AXBE>t@A?iw1rU^z&x)XCqqe@E>T zr~6NlYs8jIj7Cu0>)G~A<4FKM(u* z#m?}-EXdPYR~R(4wN3W6--s(?o1BRHzhFJg|AD`)w1na`=>iGNi;roh(1ax=i<$HN zCCgUDC>TG26lJzSl-F8l3WBD>4D#>1lC&PHiRA4U~*D4li8Z@k@NOL3O8LnoyeqLFK}vS^JN~pyIx%kN2FOvA;iGEQ!U4?)n`5< z&+~>#trwAWK|GUlH;@Uzkk8}9m_s6BsVM@zA}+Z?$rtwPR=!-63@hzO@a4Nwfogh? z0m5W(3&|KTEGoo|5%G(0nySNy>&k4Vc=At_x@&SODQKU3zk^r7d9ki}GJyYf7gGG1 z|7Q>j^9HWJkCqJKO-+BDOwL9|Rj7Kdy z=pcNG49AXP_rqL-mHU1eVK5!yj0)ze>bV(@{zsmk-}k4zD=&JaJ&@LAnIemy$YXLW zg6HZx<1vV$vr&~bSzvPC`-XG=6n!zT*ULkO&p}&cGgoXw!vpThayhrJj;8nY_`xE6 zIWd<9tD7^qJcx=se#I%#R1y1=YxeH5dtDPwu)nZWx^h@Iu{9aS4Gd0#WOEAK`hDQs zZUq*bfmj}3Z9BlWz32PI1?bjF<~oNWPoL96{g)FaGU6^QcPz64#fbQ+?xvo3&9;G?U=vzt2 zezr>wf>^ELB48knXhKeQ9-WUy-J}Gp;>Cuq!ro`>dSbjh5kHiC-AUa$7p|$cuN-Vj zMDWO*Yeneceue;Zb%4AaLa3j?#a?r15b8Ajf~N$uCv=mOpJ|sixF?tf4w-UHgT~Cy zqkNrrMNpbWtUmOLHS)o+qeDaZd44=L+v1OQSxYclTJYUuc=_*^eV%px_d< z4JgQNyV?}`^}8DlHT5C7&qBN<`^|jrl4O$2i?#TGRQIp3RSIoC6G(<$#KfJ<0fHII zyWq#54PRmEmzgzE+gA^!%00|?sTn~ zu6QYy)_3&8ae?hYnr%H0h+-pi`4 z>%IJ?UJA?47E<0tYFOSqm9goa{s4L9^+teyc345}#(KeCy(F15<2DNrydBd9T z+`vD~gSDcVoX9d}FNSPRLrwI|HPdY1{Q0m?-RTPD8WT4@-2NzPF==Feyq~9>z2t6h zGH6NT1840GmUbBpJca<>rxXiRna_O=_Tmf_HOn-W2LeswH3Q~0se48>RLG+>_3V!2 z#2`IxVSbX=;t%Q-#yvD>)jzD9qAtM5ZsNg(8h<)BRjmUuU&?^;i3WUwZ^VJE6pd@| zR1EL9hcG$(XuASCn4Fe0uRuBKS#rsc&E!g!qIZegv6nZm7fdQY4mdt2+Ig)&zs}W` z{}+ymWn`moL6PVR_BI_Zpv;`}lgo<-$l%qi>?$m5Ae1u?J3-9~L#S+%D_Q^jQcNgy5;T`&bMJD@7CwK3G)@ey@$nS&|tGuxoOFPg5 znuU*JI=~3*u)}y~TMace* zxZ^ecgZhx1LQ0@1z%0~!vdU(#S8|n>j)TPKrm0@<{VJ_JiB&3V_wkdL^ialQF!)Z} zEof0;whBn|VtApY+tthoOCVrHw$0l#)g+-n4ldM**|JweKt(9Js4yTlsKLO^UftSY z=KkVje8sh;z#6K|3$A22X7jH#hR(78ZBP&O6$G~IX<+0jss)Li!gHya-^)EgVUI2; zYeIe<@G5W%&^TtIJoVi=L`Frb^4g9x)$mJw$~gs`U*+cPl(=)&*T&V^a?rd=%GcS24F*?1!mMLa9MI~i--zj?Phr5o*^WU2 zAED{=--!Cx2qrjj&>;d}Vsa*xxnsem4@M_^yn2xQX<^GhzbNz=#c!bWQ&kc-*?dpN z-6a{%dnzZ7a+ehBH8fIZo}A@Cd*G)u)`++m56>2*z#*H$PbH}zf6=~JSv}gpD*Q(O zfC2Odba*B(Eu6Mvnj;{l$yO?+U&8KzdL76(MvMaV^DdaYIzF~p47CB=XfNO%u5p7C zzhwA`hF-}%G5iw=pRS5sZ_@FB1oCpP&Ie81Zr543>D?WC3qSN?yD5HWiqKUUcadUM z_!3@sZ%n!y@~U9uAl})%w!vA}>QO=eBd&#duRm&h2EvTUV?-|yte+wq#H5o$I?;P? z(=|EkDq;;ANAk-Jl)9PWJkQT|DJ8moy_Wh^;av}6$4FW*h&EDy zmbDkGVBUs?WzefMp=7%4PB@__SLTNYU2(1;t3RYSpC$CiQPv)JwndfWtmQ`%`W>MR zb`l=^sv4saPbfn1;cL;ZsQt^j684Qx)n<9dg^CPg^yBl9P*>s)WxC{p8ACDGlb36Gr<7MV_W!eGrbA~tX@j2M`s@=)dKGOHL^QQoF+%K94 zal!80Gh%o$lvqXcus8W6kv6*Cw|+2phRAWbxJSm5vq2?I*k-SO8<=nhfh#x-we>?a zasYSf7BTP0OKE7yr3JX#Y#!L{B2F@I|a5+>-T5SpM(h3 zJtz>e)dH8i2aJW1ENLSmIpEiQS_}>5bWU1_+)EI!N#y4vz7dKMtr1MKS+X}^|G681 z-?V2=mIHtCye175oyYg|u?_j%ZPNr{sXMjVSnB2<_Ko?5=grdnih z%Q=)&#*!eyV_jXmt8eM4QH%g=;dDDr>8YbB&E-e>{d~td%l($e&VIfEDqcd?>pH;s zCDCo+S7ZoaDdex6D2`CG*RUP)EAc>eQ|(EE)lpRwj$uExLxWt>0t&DF(-Xr(IGJ_s z@C>-kE1 z_t<^<{++}pZ?Ac$TUh4Kx@T*WrD^5%OsvCsWD8|j{wtlon922#!lY3>7%6JXd|l)( zMyYCptgz<^nfm6c)3qeK#S%9OPp<@gyfSd!c_feY22 z*Ev6UW|(xDwD0rPcd2I*!?>gGnzIO#FeKoqS!=*aI);KuVWb`QorrlWbWiZ8SxGm}Azc704TuRIPk=Fr$7RD~DGgT_j?swK;jr000t=Vs$Q;y+J_79P!7AHU&l zAJ>~~X|*Jya+Len6Oiir9if9bds`nyOBnZCA3j{m@(kRl{d6u1+1uFy;H7zJepj^o4poc%MKiF?Y5DN3!37;&!9vC@E&oUIROB}!!LI|pO&6XMB0Oq1umSRnlP1n! zFG>!0r!pFqkTo62Qdx+}$$2g0>LyA3nB!Q|qg83SN;?#7@R z+gH+zJSFC}WA>Q2X{^GJD`z{a##C~;k4Fj1-cCEk?uQ^jPI(~YXuA%=?w7OGDs*|E zNr37B%?K&?%N$!qlnm>GJZ?JeYjJ9*cUj=Iw>PwZ4#sgNt0`C@w{pQ3714yp08KcL zi?~0B5`#BHj%71bjK0&oFzU+AC38bL#vjOwQnd^sz}Hz^;jO2Q(|l zX$?MzYc_jldL@!Z$-y|4ROj_Wy|=eVCg$bp&j{Cqy|&wG8nU+=^(wC8L27e?WxTxJPV zhVZBwjRC|fD`-w0kCM}wGd2FwWqygpyQn&TyLK90+bACMV%hpb8-8nW!z%?KS6_N& zzFu3{ju!05dePF9Kh~g1B-3`5msBki-E|hYp61ANpws>XVu@?{?2+S*(*d$CA`fV6 zp$cB#5O?dC$h-l(2NQ%0F0#91JWf#;hpPK?*U(OMcwG;&tZVf>gH(rE=!PK2B?=fi zqoM0h3@EIniA-;kRm}T=Y?3T_}|m8o8sHn;&&4J4^2s?Op1FF)kk*$;juBs#C( zCf@qa=-}trv=Uw-Ld`{(hphQX4TM6o+dzeOs&(i+n#Vd^>#HH38aZ!~@k`ILyiZn7 z{6)&~1jDay)y}B=itwLHfhtTV#|@sNhg^Ylc0^?EEWU4k=w}waoitgh*Cso4dE1k{ z8WKN>8m~-=d^vu8Fhek#Jf4b4JcH%kHr7HNN36$$2D!F$d1_Wk)mhR)9o3=8Y z?LHqbeM1#eJrK728n{Uo2#kzJ_sI3b_?4kwl#593-8^0E*vgH?GTMgYMg0MOpPg>K zeYER$gRl0cK^dWaN|!@l)})|UQ4cT!kKl}l5WuV3<1cB%3kTebn1-0?R*0tYjyz%;1+3CIt=~nV!qHl4sg-eWo;-O9vAA1VZVyRPL zX%4So23qejEEy4)_qB}4o*I*k3|90pkQeKby{S@_msD0R_QmI^h&O-r%VQ9gd}u29 z@S`HxKOwi^aHgVy@afaC8^WoA-uua{0a#iz`Dka7RfRrcZ zdVh$m)ms5i9laH@8e{|20}upmroZ|w$CkrD;nN$z6?e0R-Xs2i5%!hte1{=S22E{x zb9(RZ>kPkL`eq_7?CkvX@t>3efNw7Vj4(VCBCSspcVPF7uaR(Q`)2(*c<=jmF5yDL z=jgq`sV|!^+kbP?tK30oRSX{DxCU#Kpko{r?r~Hj2$w1oU7?oe{^e~0{z_4@k`XmH zehKWYL_wAH7^k!+z2GKWqdQnHhkx~rnb)jxFMoff3UTw?TkzIRu}d|ziHfNTUK2t} z6p_&LQcYevo%;929qQRx_;{VmCr}2qoKn)KbeRjhr^p4#J9wpSvN~zH%(Q6oUgy*j z`91k7@iI>(pZ)qzH~{{y;H~~EKl7*cf8BoV|5G?NNs#7;_yTq`Cj=WnRsu=`w`#%% zz1CPaU({#$%CV|!O@E}<%f~zGzP#?;A@m(cfxU1nfzglgi`tN+Sgr*{4rNNxG^!_$ z*|;#puxc5~;+1kT+vKU_P!P5u7+nq63CL)Gx>18*P8EXQRmQ=h!20=zkBrb0X@B?< zH8{_JgY5P+dUJ+u&XeImB0?}3LW2YXwV9E?+*-{(!^XXKW&SGC8%6n(qu% zChu6AvSZBuTEAv)=)K%wquTu&q++@`Mcx01i3`QI+F;`I5WyPn|HJ3{@*OvCV)4<^ zprZfqmk>ZHEnQhmlg5Sj4eR3Cw2wY$bQ{tLk=b7)IC|cDjA^ws-g@@#&pq?xu|Is6 z_L{EPOP*#jwhlSoEvw>eshMH-qMzUlCjgpKQ4b`?Cf;(wPp{ zeargLRSa_V=H~fLMP&(iR+lWBJSC5bf9c32!x*nXUgj%dOMGNsjSYW?fxX9X&{QAK zz>uU?a8?DhomzF`rQB1}HJvheZ|%(!ML{`ypFg!kt|Ds7Z1F?Kv^M-u?( zuTrp-pPTVYmh`J<$;1kzXzF~pI_*1oK7q_+zzWmH{q$+vwPoyxuIp8Debd9l=!=nY zw^ci@*k47Lkg}%{RL^#}>lx&ZM9Y{`wGO#29it`IjF=e29j<>i=;Xl?n2j3P!HDAJ zkVpM7iBs*{`Ps8QJ#@~@~+{6{59-zX;fikV`$MAk2u z!b=Ml%RIQjmbv?W&XK4c(NE5;&USM9*5v(t5$xSssOtHE?e~VV9*?QHk`E0Uis$X_ zZxQKPYWrA+i4kCg-S<)$)d4KISbQMx2RVRNB*!7Y9SvRo@VPXBTW|h>4=IN396Wa1 z_V04=HYf)_V&u$jqZr}o34n8qqV$rn2LD^gY_}KT*>z}MMz%v{@@hO+#to!6>|(Go z(mToyqTHDtNsr0x=}YQYMgyyy$o(&E?p?fMntNos-Fk(!#|rsKK?t>Fsb*x2o{-yC z088xQ#p>n;G~0ys2lNvP@BeJ`x=2X1F7q`!^Ce<_YUSCON!*8X=dis9{T_~a7#9N{ zJ{{i|)lH|}JXmgh>$=an(P%^SA5+ms-dt1>OHZ0|>uVs&u(oS@M@||C@S>Pelr*GLZ;TV4k5 z#z4j3_gY@cbz*Ni-Kuo9blIqFXXd`Lz{*VJo4Os}-I71rwX2%To?I`WDgbx(qIGW; zy?!!;sZpH{v)_5oYoDUlRb4rr7d&yAK^27*`%Os=iT3iEQ?>D%J`97ra_bTLoMf~f zwi)&@CK!(%OiXU)s?!f`yLDse%A7%e#ukCnb77MC8ozMpP8oV~5;+(F8+g#UN^ZJZ zZsq-_4xg$G%!&-#8_Q@setskGtAmxGN5ZSGa~ic#O@VI%%hpU&^;O@DmW#ZL8Nmc& z(e6oet}N}9y#<}ncfj1lxLpE9GrYV?J6|xqmGWAb4+&fXr?0~_U`G0Mn7-{K3uNXJ zP@2Ctx$TvEj&-3c%WIjq>ap=5UqMsFBx(BAxQ{EK#0}!5)Qs+}w<&;JBmEsgF~9h? zxX0C}Rabeaj+L?AAHMpIpP~5DbaYqQ(xm|er`8zeCKFj$;p+6=_>00owvSuld>ol9Rjy<}1nY6NmcdtbR4M(VUlpk9t z#bvxC!g^$EaGcVff=Rfeo-cw8VO!O>>K&TOC(Buei$9A3KkxWywJFnQ#g6$^2cRtR z(UV)ZL=5@+0j1y* z3sm^CndA_m#hRXGGVU{xk!D`_Y&y@t{+P&uH$qj#1LV1g0FY-8g0ZeXN`E<}#vEI|5!#$=c%U;T zvr$M%9WCv|20H#`A+Y@+!hq74P$lftSrRp{w)+;|T|27pGHFw>+J%M2pV2Iijwd+M)IDG%C9V-A(UfEDBbBV=53U>I*q^%? zK0>#PqYfO7_^G4g-guLpK*5-_elM_)On%a-&_S) z;LE2d{`H(sS$!2f@cmP`0$XBu*6U3vVcZ)G!2B^v;YM&v3O zEvZSW6Xm@1N>Vc-R*4IUu3D@MAMPitiXL#Vw7o@@$ox@MBe>JximP|bp8Ce_%m8h! zoY9CF4cN8aDzu*Wy|d#U7-~YS{}PD(lw9{qU}DA*c(4GB@D9hkq6csvRkz8z&#^Xa zHJbSf{W^V`btXN+m>QI2>LHicnK#gIPyg`uLSCx;)iBw|EP^gVeU<(@b^11iEy==R zkFNX@;9Z;eFX)h5hi#xSPirq6CNe;*FWA-*7X87mSs=57L4N){B#jTrq;cgUmdqJM zs)DD{kYR&8w``sDI(->|GXg@HGHpE>xD#iKqnWjcdFS7ub3Y%Reiz3N*7fPdOsEN1 ze&*FYT}HV{MvWy$%rc2jx%|8*lNXiSrbZlDij($3FUlN)JWtnWOF6}Gc%Gae)XUf0!>7Hhm@L6UgZeDANRZQvhbIAM?*9Y zwN_|n_q!K4+BG4YJBjDRR+*UOo(xIK-|t$#XPPiD1YcZ4p+|*dZh4oX=<@+G%5^#1 z>A%e+)51Cm$Fxn4uH203F;i;$^lr^*i~X9&JG5B!rNL16{LL`Y<6lp`aQg20XlWR3 zq$=KvxTxt27nK5U#61^^f6)%PKX-(>E`r-E2M>Ek;=n}gc1f;c7Hpp#ZbpA13;V&L zVS0onGI#$*jwjN3j%m(Y03UK>EmE@vS6arC))qu)so;L?*oRw#P+_Fg3BnSD+LKi@ zM64zE%$%&~%-4}v$vM=O`Jw&i8{hrC+$jm{6p z*U}V#7q5in7a^P^sITv&nP9PY_+0a-S-6LQ!Wy4_xQ-u9#WJOB_5&Ldx17w#xwhW! zZ1~(d3txq?9mvqRIr|fnS=03%X7n;WQs9(O> z^5nBA^46CGVJp=FrfuO0pwS;cG(dr5-6ci-{*!I3-G^Axe+~EBwjW6kIIzR^bZoqq z_$$?e+M4NHFO3Z-a)sL~M0{KiiF0##QtmnHERSb!iz`v7}>nZYmLq0e9V6 z@Q2I$9Zy9QZ@e+?l%FqkpyW&Tc4I3+v4!m>wYK*6d!)-=uGpB}9NXor73Q_J#@g-e z6Vr6wjQ2;|-xi$H2sN2d>J~aDpXbOv2;;J*BlY)bw)9RcvywTv;)dv+v_2DknOz4Z z&tyEsLMR@1R2lHEc=q8tqsLGh6JNuA=w7{Es_3T40lJid0C#@AUy%M(CYjXYl}gc0OIfoF&P= z#HuT!dtKUeqFc`Ndvc}wf%#3Q8`Z2&CfJM8!!&qMhNTZ$qkA>Z@F-kQFU~qrzlEC{ z>#(DTT8r<*p4yViO09bhI=l8!RQ00eil5d=Z#iWr6#HN~AHDz{r%gr;XNH@g4;}Eo zN>Zp(;e8kS^s=6t($}OXj+K``vaLVYD$4(d@4D?`SogwyIK)A@kRK^rX=|r<<$`Lo z+t=5-G+$q>*RI)-Ks2tK0>JHD@Df$ zMNn5Y7-_CLvus^ydv366_JIAqa50Jer%0+K1}@m3H>5l;8lHWB__j%+8VEPj znhmJK!i?c*p8mJ)#dugl3I6vjTqun#*-4pY1ntAUn+10_m;mm~#{aaEtHG;*#%}y? z$d1Jm*hecsrd~Eeo_OUnn$u$oPDg(rzf0 z7rpl+z24U-_ufbPVs3sGlic!%3sxkI=P?hctkp&ATcrhp<>+bqqxg5?1)rcQI{ugg zEC1rYc#8cYr|(zbxf>~ZMXIZ{=hMtqWUw|-25srYs`!;$VN_#C@+P(__FP+q;`1K& zp9sP+^ratUHy9(iLkhpqP|e2wYl3Lzi<)xeEx!ZB~i zP!%kV52M8{1O}AGceLkcq~mt>jc?Ik0*)cLoAm+g;~V7j z9ujDyUW*d&o1HTVy%LB#jTt1u&4?IE=RHUz@N~y@__=VG^9d5y#VTY>zI(ChZ<;9))QHr+ zD3Nj-p!Shzvh8ctN>hiuoV(N%`0foHjuL5s$maqcRau$mlM8zR$Oy51yUO z;0gI7pZrh1L-1SjhZHhvJX_w``&Y zR~7HcxJH!1x{$So7T0ROcNm_@`&OiOFgu`Ggiq@k)p?&`@!Z-Qs*t6L@lM#WgkrVG9q}Nnhkp{bm z%(?OhhAjy|zp<)PaIoKax~TUO`-(vhjDjjyg-kz=zid18fp6WyJGdVZeLt`!wc*)T z6;^-vUP#%FDUz-rRNzXGq7}#U?h~buF~JUgY&)JmpK;lEZ@|vQ#glhLeFyX{R1?CU zD}URlS;OR0NDQ=PgM%Wp)S4FlOjj}r-;Wd!xKfsmiOtpOUkX_=ak<~>cR$~2uT@+x z>&_^TD3`rae(*FtjWDb|G-yL`nwaRz`X)@H2H3@ZKZc4cxz#rSz8 zXq+&(rc^zOhc&uM5{T$I##n3MmAZw|*12e3*Q^QYjc>}NzwZ0=OEree();|;`;bT< zWoeGh#s~&nXCWf`mu^5XP~Hctwr)FZ6jXby_TJ>%i^XqF%chMzh)Hw3eaK_)=0qgd zZ8Dsrh&AKiWPQw2VPEGxG&B&22;TK#n~8dpQO6`-;_y$K87srTguY)1;Bzs_#tu;E zJ@Ke^cNI}C*pLa+yJXl;B91VLcdzeJY2&WXaXg?Hm!5l2vcW_Dsoe-gm0NgLtke+W zVjNEF-}7T7o0?HgH}3NwHY8^Xy@rXr4UZ_b2dK^pDRoLa+k(}WZ(Yn}e0Y@5vHshJ z`ccACFWY}SI~l4`E=_jusKl2h_G&UpuTq`z5MZ?H%o9U{P}CbC=qf z!uAaZkIxcc^NxG-{?^>u*ju_JnD4XA!BNWZRTV4E=>CVTlP{Z9s5x~>C zrx*77f21sq0)`xaNtZLaPY6kk=PHdox9`WgX+jl;qJ(N`;Zuw!?;n(X@H>vKcbp;5 z#*t^Dmx2JuevOiZA)y2IVa(x}2-t6GoI}YM{2ILbfP~$Go*eOx+l5Jo^~6qVx+?K2 zrR6K-D-9F(hx}_j#{}t-ul~cgXgoz}RSsPt+AJKEcjJavR&OH`IK1bqS)%!ssMk9! z7FU2ALm(09a4=9LzNAT5ZAG%f?WXdZEu!Bq@R3eoUnoqIkZZ(M@Ngw4uLLdhyf>#e zik-DSQ~I<@q(zV~$QG>)$gu<`~o=pOmQ z$M);MAf|M~r&$=M!W6WN${Z)p&BNfopM8Q1>{IyIzH3>z-_z zz8-(>OyJnL4R^7UTb5>Nr%&qZ5^hQ3 zz0gc%xyKxN<;Tz)W$fP@WXc26r;kP^9>hnvyE=u|bT3@M8juq8ddVIYb~>|}q0T%v zRGcmou!;M*z)3~$o_PIL&#OwOVtmY;x7chfEuf0?^WmlnOi4@ka4&^Etc|M6FgQ%k z(YF*57Zq!EZhI3zp*YNinkTb;{;+gh(NHG zUMy)_uoE*PV)oOqhMxlyyR)76ADgAQ+>m9TJblrS&x+3?iICfGI)ovH03#~E5`r)N*--KU+g zXb+xWdESp}f0sNVgRO*QR(Qm$HM;pjBB>r<@FfL8R#Baa;`f~;L6LoZ#MNgUOMjVE z^#n`~omD+`Pb6_){--pD(Gh69gk-DsFp$c~F!Ek-_p!bvGnmmsv5d;RVS`uqc}j~v z*Ql1ZpG;HC@)h>Q`SJB`Of&k38*>Anjl_H6i-*zD%OjWv=w=_Tc;nzi$`TFne)2&O@7QG%9mwRp`iH_Ia zcA_m0PPFkMW)!d-s0yX38C69lTXDBsIL0NcUA3!geTJu3L9~+p#O!p}w>RRY$qUNc z_wC%_A-jxf%TA3Hgt$D|5{fh|+(-Re`lYvr#pFXQttv~snBV%&)D>21dJU+W zowoV5R6v9DJZjVoT4k0Jj{|?uQ_SF6m;TS&H-;?VJqRvndg-M5ZN=!z^NtOE^U9lM z$@eMrCQ9G?gG*doLeen$U}88mv!nzq8|o@6_~xzJdEHNMdzN8v7sEI1#~Wb_@)Qjd zgV2L55u3dcL?p0yE+zQy}ikQiLo%e|9K0c*;6JC@hyz#5o*e-aJFp^AR zRwAy}eH&F1LF)-{&C#oQIk$a(lXVz2M;~nev{ydSRHXdPoNy?9P$>#KkI?Vam_G5) zq)p`NfCt7o3ggsJOV+u*wc*DLyRsa$)Q>$e6KCuBY`>+Ml|a;t-nyf&@+^P94ZT>7)J3xdxf`)TH}dVPg$LiwC>_gU>hMov8@gw$SGem9Zei(uJ1uu5 zm8jJ@@MUt%=Cijg8&nF0PMut1K?lx*G7f^Z5tu#r($QK%pP%A{=Lk`1+#xgZ&~{d@ z<*tw_O z&anDzY-MoI4#zCD7kgFCz27XdXa;&W4_B0*#W6;x@+6$IXV=f}W9ZEr*=V_Y&)Egr z-wUV7Q>w*b%lT(r2(1!6&SFgeJI0Erfdz`tqc;~1$e0v`TfZr~?{C5`Dt z;XYHLtMkIdI!>r)Jx_P_P6%fJ;%E%M=C3q)BD&Rove$5Ooy>6j zt)15UpPcTocKl%)6pd1;4^>-m6Y6A+8wNz>u@Q#ac9zwfw39QPl^F5E5lX7 z2@|fI?FhAr09dp>jiJHR;rP{D>tggqe)BS2EMnO1W$~l0*Mw)K7A_865HWDxyV6{B z%O^fui_p3Si$8plU*TQ%A+0qi*l}SC!pk&KR@N;{72S0RW*HfoC^{bKp3Iw5)L-l^ ztM>8mm1`6)D7$|B!UZG1WwW4u6xI_k?}S1;BXpIQ5qw~Hy_{n-f}03*kp3R2lM_)G z8X~=Um81({YzusUL9ilIyNZS?)2g-C1RNby?Jy+z z8x{G0h`?~&vPs`zN-vawyIBIYGJaRm6wp`OS$AUnix+(4>BfDj<-|Cq#w zY$wQnH=T&UfLz|aN-3n8f_O2Gp~ULli??g1ZyQ=|El&1BynIyIwn6;v8M}%s75Wbg zC)C_ty9FA*uRgCNGV2-f9OZ!i>apQwVeU!hoxDu_8__r1^6jnp34|SL8u7v1-=S&U z6LnmFLsPncID3UEKl5BVQ2TvxptRb z&pz2F*~#oe(H7~ADw^L5zR_O6y}#tfeaRUj^1`|1kOWID2UYG={tx7vi-rHt2po#9 z`ug7yaFUr)|N9o;&C7l)4Q^ig^$$(EIlM|wE-(WByOQlb+&|WANkiSh93fAHR-8lV zav(?j02_WZC5aOOUoJ&q22M}b<^)Wztx+4!>0hUtc5;oo^JhaW?yYex?#_sLkso;3 zp0Q@THR}l91fhRj@H7WN=7>1{@^o)e9a2cEvvl=YqHIeX>vr7n)1>K6RKUzVwXjnb z=TuiIu7!O3=Ute@U%bL%$)09xMJGMhwr)P!Wr!BJyW4n0N4~1pt5uzHdL5hqMU$X&0ES^!U@-5S(G^QW1S_6M)QF{`Uo6w;TT?gXQ)AfXEi-v z)vvmd=*zd|?LprM!EKXgztVAovFm;lt0nu}*&EQ#4AWuBTND}Y`e6-=2it=ru6;fC zZt`>Cl$l~@=-Ge`a&9$*{!#XN)YN5D7Rz!(JIv5X+*Ng4ju-pR_@m*+0;5pDv=08c zymj2SSTCOG2V*0<+1~9_vy_`<~P|h5@|()~!0zE1d}e@h96E#f{^5DwmpulT7W%oa~e$n}?1JpWXZ zp%jHm((AeFY_a8J&i*mxI8L-uKS1S_N2tbS-yBcRkCIkhMHN0-+!Z^V$DoybhJBQ2 zoV++1OWGV@Xe|d8CP8IdkDOKBX1wLT~$c}3B)t6nsXI=IcfnpY#Wx_qy}eY zz#SY84X-~vdbnGcXDHovouT_lZ*}cn{wpwz@qxI(^MihB^Pwf&P=vac;*u_pQ1{{K z85D`il>vcuma&pYI=xD!rJQbW(l{e;m8AA|+rZk!n}RncG=ZXsmzBe%Q|N3;Z@*0o z{u1sMuEZ+y9oEdk-^n-By}C6%=}K`>%3G_^ryeRFsz$RRS?ot?Wm8lUdTBb-3K(d& znoo)i16|~i-)C8O9*^atN5{{tQ|{92thxFg_g=AvsP?|hbPbWZRfrFP$c}jt&p7iu zSeaL8=*iiECXacYMN5XhdrH(R`Mr9!t9k8#Z+%UE)dM>QDeaFa)QN*##)hOiLa|k8 z*;#F_6ia@nvb1pP=Q|o7@HXw4U%Sl|k9Ujbu6XllLpWjF5snGeU-%=u3!y)Ks5EJa z(x+0hXj^3+)namQ+~MLo?^1^g-|2i8-&8!jWvXhJyXMd)6Th1qmYMNk$r|Y_w18eL8zD#(LM*yK8T_%k92+RuZ_*2YAo2czO8C_`AS@^5rv2J+8v~ zwdXOoe}VEr?;`?~@pE65U!k^(xo}AekR{g*9!ZtMWDX3A`FOoT`x%v5Z_Q*k8J)Q3 zX*QbA(J8yk>0T&CsB(CE$`TXg>-5r#cbT@PrEkNjfkz51Iq&FNwOTRmLHx`HQrPgQ z@Mf9&Z&T`OuHkz}s+Htg3}uG$@YKPz#nIMnv#IX6lZ>-x3icD13C8IhZ#};6m;wJj z`J{hp6-7!6HHf3A_ihnxnQsgA*&TN{L0Ee&aa~Boal4SXHGm@Wjzm*?;&HNJ>2) zAXi9QF|JLvSZi5n-g?FLcZtMPq}k}rx4jGnN!mKhm%_Ac?gzY7I`asn-=+#*k`<;E zm$foprEh%E`46AwCH+$^y*|XZVe6uXM$U=aAD0aihRas*i`<0omBGaLK~RTzrNKh3 zBk^I#x>9wVeR-4meq{I2*Vb+ZxuH21{IlJAVlv)P^QQaUuoVsPnIYai?iSx+ zavWv7p>|ftL$UmHk8D%qmDSBQ4UN;uLk(m1Qq68`fTI0Ig!&0r9C!0?D2$@<_Hnr< zpKFm3tG&UvmnKK$hC@6m?j8?0?6B}Vf!6~h+s)MG1&zveOHBRoFiaMMKnzSc^EeIA zc`K!1a7C;b+mAW-^FA}0PPsD&y+e*;^X8uBE-xHDG!15D7ZPLL9xB^ujfgkO>(}Kv znEPSA#{a(2bqSt@L0HSQ^}OK)!bdB9;Un>aYt3?{FB)fgSI-FAE`q32i}hB0gCCNW z0u2Jf$6a$bs&wi`|4?CWfVVQjqkGA0cb3Q`4XkH0n&E?7VvafElWDb!C%wdjSGv&cE2$+y2Nt#q zl9Veec@Obk>Al+Qrot{=?OxmAmC++TIwE(BOlN}Ya!!ZI83R2UkwOOr2-IgphMqCm;wX)KdEzqAfcW=Y5nSSciu~Y2OzLz zMOmM5_0H?MbT&UkmuvBI@6|0ZO1^D3iX^|t1_~G1E}dAL>b?(M;rWgY9zm|V`oHbp znv}TZ+`0T1$&E=j1(g6!Pl7Gq2`LYT6eymX*jlXpkx|=#)i6=gVRvTn)bBY<-{0EL zjadWcTW4Z!rp;l#aFV{}+%;}+B@0Fw;n`RpPHeUexed}mOk2Eh)_TB$v@uoNm$+%q zsds0)x8Dz~eX$Sk-wfg}JdIF82-tF$;k*OT-k+gd(OD@Lkk52J#E!aH-r_6FFE=hb z^Ke7bDbpH_nc(M#ep3_oNzUDP4usfCTO`d3N8mJ8>>sfXBgh)64U4UBv53_5yq>nf z?5fTheJe57*M}pk-;!hSLeVy@N;;#GuCWae%R;WZI3j3c0Z)!OVP69-aD1!kKRrmh<`~` zD|1Spw*3i%-qm3wZ#%3+g_jcyh!gJBB-;~R11^PcZbmzLln1YuX5Vu|m2Db6Zu{|q z_^=7daO2A5feuJv=}jtfG{yALct*I+G4J+$Bc$U6L_cQ<~v^b*uewNYhj?sIK6#L)#} zkXmRJBLD@CE7CB)JqdqR4FPvsZw@b#Lcfdu9ZBhJ#%i?WfhkstkCXv=;$PTDl#WpA z(giLqg$6>8(4nW1Q4VOhZFEgnbIfuX$Fiv3r*RfPk|fI?L6vL~@>Mj{D2sjQeLHCb zxESxQYaHpjl%@)l*VMHv;N) zg4c)(=_8GK`~xCGc>ji(5<9mX-!*HO>$}&Eheb=Y<5F)un5r(DZ{3GWg_hUmg@f}; zmo7Mlk{KSondNY@0MmBSog(}7FzfTqp(g9@J$-NF6HM72sUto zipjIr{|B{H$PNk{!2fpTJ;P5*4E^Eb;rt1|5(uLZZ2!|g>=Oz;1+TA+)=EzDKvKBS z;r!(L>c%0O;6zID!k&R^rHPR;^bNBMU>+to=zRYlOF0?YZ zWvcWeavjD>7bMA!A%d8AfI0nZWPfgj3gBc)88H_%MAr!7=RdCi{%Ab9yB%&gFCU?k zapF4tIo8F$Nc``J@|V7t{fN_&%}wr)Fj1Pz%hRj6lw`!>F-e`0sp z&KK8un^z=7?bf6jMs0`uW5%g}lLErey&(Pq@EzyyOXE6AIp4)1FC=@m~F3WlHYUQRsPl18zSL^v3gTJ68Ln~_vvp^{^mWH0Nw3x$}u2y z$ob|!9KOxkmi6i{&8duv_{n*bjq7KW)voy|#C*4%Dp^t;ji6{WFp1l|M-+Mnwy6Vg zw+>x=Ob|2HBqTpt{Aqyb9qPJhI9+jbcd<`F-NauO>i1Qzl}aGTb)d0ed2k@SwljrZ zL=n)v%h1GR>PKRYH*I|se|t{D^V0=^@@kc8KYm8#famBE6)FWt=!i0xJYN8kax_Xg z>1#{(D~TBU`NUzn5rJ=|8obBgG|qVN!tnGjr_Ojp`LtB^E3Bd zFEjI;Hsf_J`bxN65gk+h(7<@(?a33OTmVh!N!OlqW7?SU(kK@xD;)y}Re=f@yck+H z)dt?(xR7x7#>IOxs)@S{lwMYb{%iUhz9AgjxCOSX9cg*^6h_?ahwrKFUW~#ZKwKFN z{IzUL^bGTU{c2UY?%SXkJmhX&eVedmyzcAf3#WXCLa%SwPLDGUS@$of+&at#S&Ps+ z0Q;5|McRZ$*DT`0i`9!ed@UQZ*Ozc~H|@=IJF!1FJZukn?mSG$IslI*1#e(cCKouO z!P2M%Yo{oq!kkVP2tZ6aH%6I0+B1EfBYXDYY17Z;cUOnHP!*y82dODD*~ucX!CHk~ z;yUmikwhF0gbX)Jj~#dLc;j?5xz#YoNBo6OoJn?HY=iEiH56d)i*QXqbqj&({%qHN z$PtG%g00K=$JIB3XnzM6Z53c7sUDPHM_Lf(Q>a%A|AG+pFhVb;&2DnXqsQzKmM>N` z3!<+M3v7Gh`c6DM+dzh!~4-P45^Ws{-^sVoEJ@d!FC3 zRPcY~drNv|Yx$2e2O~fJy^S`|V6Hdh1yjz`Pz?oW<>S=qOJ|=z1bkifz|omXdWvibiwVo(fZY3c|1Y8?SBHsKB@E zxn$Bh+b9mqG+*lV{lmAzx_<(bfPDyi%O&y3G2LK4)N4p<&1iL{E^9P$jThp8Twkps`~Aep-;%deE zsq-_f{d8%?eTIxPA=&WlU!^PC@5ijbW`6zaso$aa)(`H%WA19++e!^jq_}x9bvV0H z2Bp>PvIxo%v~?Fq`MyW(kJ~EZe6PV>kr?~N>V%pr}GvpRyEDR?sf-UEo+}4@{k0(IA zdQmBB?TO{bwRJe6XCI#G-um%SjKE6K@3tM+kBN-pxNAqT@s>cB;fJ}hMP4|x00ISbS9V`5Z z$eo0q{&6{pZ@bG#w#f9oU@gCs;KqUT9=3WA1?EzDIt6ACKx&@awR^NWZTFk*sdJSd z;`%&G;y$y*qTi=JEM4ecW7ry=K2-Jer0FRx#1CPh-oZy?+GzJ^fX5Flga|vH*>(RV zYHm{8FF1)%V^=;pmn4yH2 zYg_(hV7tM`!7?qqKL)%RK8(}ABq zzglI4tEWqkG$&`=#2)GZBD^7>2$O*4g?&M{@n#vW>|mBo+eYecF(EDz-q*AhM~%Ji zyyR|Nr_hW4@U7Nf(|iyW$?KEZKcD{Msrt!|PrDq(1~0yQm92R4d8F1&BLT69dMBj_4#aL@mk_EU2@qkRfG&jS zv2D;@ug4z^CSADUlWiH4YiRAG+c_k$rDjJ>)I))D4Aqsn_4nsH*Yf{B6iG7uTq3G6 zf(x7XkIgb2=1CrFRT^7$sAb!;E6nxF)(EVXe7nu;YE0B0zCDCK6->N<_aRus$7pnN zh$UHtth)YdrVzpp{DBT!i|E5EUf8>L>#&C%urWWl`(V{qVA=>+_HB9?G`NP+&5u_e;?J6V?x7}BY zNFe+Y0#WFIEwaNJC@=^&T$`E7_Go*d_b4Im43W^WqVe^m_BzqiX{M+6rPLem=t3v) z?QdV277hLljBgCL%q||)i)SB$Z^=(VvxwJdD>1F=Wwp4wlN;ExWxvFl}b8!|O}Z?C#~hYvey1oftCgLmJtE{ki#gQHpiPISa<9S)ARAW1oIii|1x-2wN!%(=k6n-)aOVjf#2G2D*|4&(Zx~M!f-?HyIewz;=dR zco(c%z{JIR z9txJsJxUWabfY&bj%|#*`Qz=|HsV8b6Q-s3y_X@$#Cl-MESm*`&$Z$`o0RGgy=BF+qmBR4Bo0-sOg=uKnHi%x zNln_3_Kr;+e-y>HP{eLTJ%=e!2`Ut+C58_Q+*R*3w5K!t&Dt{(YTW1j**5!E6qPOu zo8ou5J zi6;JC`>~?P*rVYl5Bu!6TEjQ6hU|WUw$0ime{EZfdq27$o)c>S)eag*o`8bdE#-vPU;3n@l`cU|Jkk_j?)j$3}~pP5X;|!qYl=a&SvN61egl zxVQYU*$)sZ9#79yQsiYK9*D%41M#*FL;ZAdT9B1<-_&uff%oRJt7~c_HE--0rce%V z{+D3>uH|Lm>79@xHLoG|N!25(Dzxalm1lN21LH?_@B4`^_a>pvFNt-BQ$8o=?u5x> zt=8D`B&PPT`Xoe!f(z(gju98K!0k1I63myWFUGy8TbmX9cee`q+OJCT7Nv)W6MS0# z1yxycKS%_GdI9gU8Or0Z==4ZRkyXrAO!;jg*2(NI<+pM>%A3m;4>-PSOPL=-A&-!~ zWXC~psk;$RE1+#01p~v6dU33q#hH>qo}YB1&tzWo(hun>zh!V#)W=KpHNS%K&OKx{ zqot$?SF@;=emB^_M{z1Wo2uAUQlqJ~*X7}XjGUD#3h(V#+)w`91Tq1fDS!Fn3z``p z|L~PWRD0<)ph2vc9=^ic^OXx(E4bY)3gX&*yV%*k&3@i6i7_X1;<$1|coBs%UOt7M z&cePp8*~6rQ-QnYcX3!^>4mo~Y7Ol_){k#o!G0lGUSQ^!vYronr7@z7Zl+M94)bE!^D*zHtrU?>iH!8K7ttk_zE!60S=7?|}(?~>WTOxf+f6_USQPEu=GYYy+3JpAVTMVmQYxFB}4VjOopxJyC@K|N{t zgD&IBsmB?v7ozH$746Oqt3_%9PzJ2mLI1cbSy?AyKjd!Nms0)+ibnj)Gj z%Nk|Ka|D7fqC(74(WwfH5o=-3z-=kwZMi!d{DVAHk82$2IVse$to~+4_rlv?C}D=5 zfXsNI^D4ApC|=r=w6Z0!(Xul)e`>uiXSed^P3G75f)m#&i8%b>JN0?{L;(%WP`>^3&^WK9OfX zKM%#L!viCbLSh}#L&TO7nPqGT-ZM>lJJ)6Ce3$SuqNjJt@r@Oo#BIa+TiU`$UIdlKFu4Oq|4jKufiOxjDl@Kt?^jJT)ssjk1O+xA)6osFDq*`M`UT(#u)6SnGdSmM)o1=%_7iRjs zSZCa{KXaGSMp;Rv&UUu_o1`B8lLYov{15JLm*PL<-?pnJ%D;V&;qu#=QK?gu1#jPq za@*)C^;=6r=5y>(2G9{LLj~9WzcO+MooRWX+fXw5C-=9ff7^k5tREWvZ{Dx`ccy;J zxtV&4AMW+4uHNu%Q>A#>cC+>SEZ06gEb&BUp@pS;s={i)_<8d;0LPqO{|0tb4x0S4 zcmM5PcluU)_nNQwH^gL47r39bvM{|ovxqU{S%*XG)L0?c!#q}+Zyf)gfQ3kYF#CUf RG>s3X_!@O9>G|>hO#so4ghc=V literal 0 HcmV?d00001 diff --git a/components/omega/src/ocn/TendencyTerms.cpp b/components/omega/src/ocn/TendencyTerms.cpp index 0bf6a9860dfb..e08a70e37749 100644 --- a/components/omega/src/ocn/TendencyTerms.cpp +++ b/components/omega/src/ocn/TendencyTerms.cpp @@ -183,6 +183,40 @@ void TracerHorzAdvOnCell::init() { ActiveTracerHorizontalAdvectionTendency = Array3DReal("FCTActiveTracerHorizontalAdvectionTendency", NTracers, NCellsAll, NVertLayers); + const int NDims = 1; + const std::string GroupName = "AuxiliaryState"; + std::vector FluxDimNames(NDims, "NEdges"); + auto BudgetAdvectionEdgeFlux = Field::create( + ActiveTracerHorizontalAdvectionEdgeFlux.label(), // field name + "Tracer FCT Horizontal Advection Edge Flux Budget", // long name or + // description + "", // units + "", // CF standard Name + 0, // min valid value + std::numeric_limits::max(), // max valid value + NDims, // number of dimensions + FluxDimNames // dimension names + ); + BudgetAdvectionEdgeFlux->attachData( + ActiveTracerHorizontalAdvectionEdgeFlux); + FieldGroup::addFieldToGroup( + ActiveTracerHorizontalAdvectionEdgeFlux.label(), GroupName); + std::vector TendDimNames(NDims, "NCells"); + auto BudgetAdvectionCellTend = Field::create( + ActiveTracerHorizontalAdvectionTendency.label(), // field name + "Tracer FCT Horizontal Advection Cell Flux " + "Tendency", // long name or description + "", // units + "", // CF standard Name + 0, // min valid value + std::numeric_limits::max(), // max valid value + NDims, // number of dimensions + TendDimNames // dimension names + ); + BudgetAdvectionCellTend->attachData( + ActiveTracerHorizontalAdvectionTendency); + FieldGroup::addFieldToGroup( + ActiveTracerHorizontalAdvectionTendency.label(), GroupName); } } } diff --git a/components/omega/src/ocn/TendencyTerms.h b/components/omega/src/ocn/TendencyTerms.h index 17278db42edc..db3ee19fb00d 100644 --- a/components/omega/src/ocn/TendencyTerms.h +++ b/components/omega/src/ocn/TendencyTerms.h @@ -385,6 +385,14 @@ class TracerHorzAdvOnCell { Real Coef3rdOrder = 0.25; TracerHorzAdvOnCell(const HorzMesh *Mesh, const VertCoord *VCoord, const VertAdv *VAdv); +#if (0) + ~TracerHorzAdvOnCell() { + if (ComputeBudgets) { + Field::destroy(ActiveTracerHorizontalAdvectionEdgeFlux.label()); + Field::destroy(ActiveTracerHorizontalAdvectionTendency.label()); + } + } +#endif void init(); KOKKOS_FUNCTION void operator()(const I4 L, const I4 IEdge, const I4 KChunk, const Array3DReal &TracerCell, From 0fed5e6832156816b8a33e17e673a02ae80c99e4 Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Thu, 9 Jul 2026 08:47:01 -0600 Subject: [PATCH 04/60] Documentation updates. --- components/omega/doc/design/Tendencies.md | 17 ++++++++++++++--- components/omega/doc/devGuide/TendencyTerms.md | 1 - components/omega/doc/userGuide/TendencyTerms.md | 13 +++++++++++-- components/omega/src/ocn/TendencyTerms.cpp | 2 ++ 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/components/omega/doc/design/Tendencies.md b/components/omega/doc/design/Tendencies.md index fdca63beac38..6d5252a6fbfa 100644 --- a/components/omega/doc/design/Tendencies.md +++ b/components/omega/doc/design/Tendencies.md @@ -52,11 +52,22 @@ class Tendencies{ VelocityHyperDiffOnEdge VelocityHyperDiff; SfcStressForcingOnEdge SfcStressForcing; BottomDragOnEdge ExplicitBottomDrag; + TracerHorzAdvOnCell TracerHorzAdv; TracerDiffOnCell TracerDiffusion; TracerHyperDiffOnCell TracerHyperDiff; - TracerHorzAdvOnCell TracerHorzAdv; - TracerHighOrderHorzAdvOnCell TracerHighOrderHorzAdv; + SurfaceTracerRestoringOnCell SurfaceTracerRestoring; + private: + const HorzMesh *Mesh; ///< Pointer to horizontal mesh + VertCoord *VCoord; ///< Pointer to vertical coordinate + VertAdv *VAdv; ///< Pointer to vertical advection + CustomTendencyType CustomThicknessTend; + CustomTendencyType CustomVelocityTend; + Eos *EqState; ///< Pointer to equation of state + PressureGrad *PGrad; ///< Pointer to pressure gradient + VertMix *VMix; ///< Pointer to vertical mixing + I4 NTracers; ///< Number of tracers + TimeInterval TimeStep; ///< Time step static Tendencies *DefaultTendencies; static std::map> AllTendencies; }; @@ -106,7 +117,7 @@ void Tendencies::computeAllTendencies(const OceanState *State, const AuxilarySta ``` The layer thickness tendencies will be computed with a method: ```c++ -void Tendencies::computeThicknessTendencies(const OceanState *State, const AuxilaryState *AuxState, int TimeLevel, int VelTimeLevel, TimeInstant Time); +void Tendencies::computePseudoThicknessTendencies(const OceanState *State, const AuxilaryState *AuxState, int TimeLevel, int VelTimeLevel, TimeInstant Time); ``` The normal velocity tendencies will be computed with a method: ```c++ diff --git a/components/omega/doc/devGuide/TendencyTerms.md b/components/omega/doc/devGuide/TendencyTerms.md index 5fa72197132f..aa99ac309ea4 100644 --- a/components/omega/doc/devGuide/TendencyTerms.md +++ b/components/omega/doc/devGuide/TendencyTerms.md @@ -38,7 +38,6 @@ implemented: - `SfcStressForcingOnEdge` - `BottomDragOnEdge` - `TracerHorzAdvOnCell` -- `TracerHighOrderHorzAdvOnCell` - `TracerDiffOnCell` - `TracerHyperDiffOnCell` - `SurfaceTracerRestoringOnCell` diff --git a/components/omega/doc/userGuide/TendencyTerms.md b/components/omega/doc/userGuide/TendencyTerms.md index 8b7438700ada..5bca41ea2d14 100644 --- a/components/omega/doc/userGuide/TendencyTerms.md +++ b/components/omega/doc/userGuide/TendencyTerms.md @@ -15,7 +15,6 @@ tendency terms are currently implemented: | VelocityDiffusionOnEdge | Laplacian horizontal mixing, defined on edges | VelocityHyperDiffOnEdge | biharmonic horizontal mixing, defined on edges | TracerHorzAdvOnCell | horizontal advection of thickness-weighted tracers -| TracerHighOrderHorzAdvOnCell | second order horizontal advection of thickness-weighted tracers | TracerDiffOnCell | horizontal diffusion of thickness-weighted tracers | TracerHyperDiffOnCell | biharmonic horizontal mixing of thickness-weighted tracers | SfcStressForcingOnEdge | forcing by surface stress (e.g. wind), defined on edges @@ -46,7 +45,6 @@ the currently available tendency terms: | | DivFactor | scale factor for the divergence term | TracerHorzAdvOnCell | TracerHorzAdvTendencyEnable | enable/disable term | | HorzTracerFluxOrder | 2 for standard linear advection -| TracerHighOrderHorzAdvOnCell | TracerHorzAdvTendencyEnable | enable/disable term | | HorzTracerFluxOrder | 3 for second order advection algorithm | | HorzTracerFluxLimiterEnable | enable/disable monotonic flux corrected transport (FCT) | | HorzTracerFluxLimiterBudgetsEnable | enable/disable budgets if FCT is enabled @@ -186,6 +184,17 @@ Tracer higer order convergence example of a cosine bell advected on a sphere wit ``` +When monotonic flux limiting is used then there are two diagnostic options that can be enabled, +HorzTracerFluxLimiterBudgetsEnable and HorzTracerFluxLimiterMonotonicityCheckEnable. The +HorzTracerFluxLimiterMonotonicityCheckEnable flag enables a post-transport check that the +resulting values are indeed monotone as required by the algorithm and any discrepancies are +printed along with information on where they occur. + +The HorzTracerFluxLimiterBudgetsEnable option enables the output of two diagnostic fields to the +output mesh file. One is the "FCTActiveTracerHorizontalAdvectionEdgeFlux" variable which is the +edge flux across every side of every element. The other is the "FCTActiveTracerHorizontalAdvectionTendency" +variable which is the cell-centered value of the advection tendency. + ## See Also Additional information on forcing (currently wind forcing and surface tracer diff --git a/components/omega/src/ocn/TendencyTerms.cpp b/components/omega/src/ocn/TendencyTerms.cpp index e08a70e37749..abefbe7be16f 100644 --- a/components/omega/src/ocn/TendencyTerms.cpp +++ b/components/omega/src/ocn/TendencyTerms.cpp @@ -183,6 +183,8 @@ void TracerHorzAdvOnCell::init() { ActiveTracerHorizontalAdvectionTendency = Array3DReal("FCTActiveTracerHorizontalAdvectionTendency", NTracers, NCellsAll, NVertLayers); + deepCopy(ActiveTracerHorizontalAdvectionEdgeFlux, 0.0); + deepCopy(ActiveTracerHorizontalAdvectionTendency, 0.0); const int NDims = 1; const std::string GroupName = "AuxiliaryState"; std::vector FluxDimNames(NDims, "NEdges"); From 1d6e3c1830aa2a97e476c0ca6e58a69c08ef6acc Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Fri, 10 Jul 2026 07:40:53 -0600 Subject: [PATCH 05/60] Adding unit tests for horizontal FCT transport. --- .../omega/doc/userGuide/TendencyTerms.md | 39 +- ...higher_order_slotted_cylinder_FCT_diff.jpg | Bin 0 -> 689954 bytes ...er_slotted_cylinder_non_monotonic_diff.jpg | Bin 0 -> 875090 bytes components/omega/src/ocn/Tendencies.cpp | 140 ++--- components/omega/src/ocn/TendencyTerms.cpp | 17 +- components/omega/src/ocn/TendencyTerms.h | 522 +++++++++--------- .../omega/test/ocn/TendencyTermsTest.cpp | 343 +++++++++++- 7 files changed, 661 insertions(+), 400 deletions(-) create mode 100644 components/omega/doc/userGuide/images/higher_order_slotted_cylinder_FCT_diff.jpg create mode 100644 components/omega/doc/userGuide/images/higher_order_slotted_cylinder_non_monotonic_diff.jpg diff --git a/components/omega/doc/userGuide/TendencyTerms.md b/components/omega/doc/userGuide/TendencyTerms.md index 5bca41ea2d14..cc64cce92d53 100644 --- a/components/omega/doc/userGuide/TendencyTerms.md +++ b/components/omega/doc/userGuide/TendencyTerms.md @@ -184,16 +184,43 @@ Tracer higer order convergence example of a cosine bell advected on a sphere wit ``` -When monotonic flux limiting is used then there are two diagnostic options that can be enabled, -HorzTracerFluxLimiterBudgetsEnable and HorzTracerFluxLimiterMonotonicityCheckEnable. The +When monotonic flux limiting is used then there are two diagnostic options that can be enabled, +HorzTracerFluxLimiterBudgetsEnable and HorzTracerFluxLimiterMonotonicityCheckEnable. The HorzTracerFluxLimiterMonotonicityCheckEnable flag enables a post-transport check that the -resulting values are indeed monotone as required by the algorithm and any discrepancies are -printed along with information on where they occur. +resulting values are indeed monotone as required by the algorithm and any discrepancies are +printed along with information on where they occur. -The HorzTracerFluxLimiterBudgetsEnable option enables the output of two diagnostic fields to the +The HorzTracerFluxLimiterBudgetsEnable option enables the output of two diagnostic fields to the output mesh file. One is the "FCTActiveTracerHorizontalAdvectionEdgeFlux" variable which is the edge flux across every side of every element. The other is the "FCTActiveTracerHorizontalAdvectionTendency" -variable which is the cell-centered value of the advection tendency. +variable which is the cell-centered value of the advection tendency. + + +### Monotonic Flux Limiting Transport Example of Limiting Ripple Effect + +The effect of monotonic higher order FCT horizontal transport verses just higher order horizontal transport +can be seen in the Polaris test of the slotted cylinder. The cylinder is advected for one revolution under +a constant velocity field. The result is advecting the solution back to the original configuration as +an exact solution. The difference between the initial condition and the advected solution is the error +in the advection scheme. This difference is shown in the following two plots for non-monotonic and monotonic +advection. + +```{figure} images/higher_order_slotted_cylinder_non_monotonic_diff.jpg +:name: tracer-error-in-higher-order-convergence_non-monotonic +:align: center +:width: 600 px +Error in a tracer higher order convergence example of a slotted cylinder advected on a sphere with the standard third order advection +algorithm with no FCT flux correction. Notice the ringing due to the sharp edges of the tracer distribution. +``` + +```{figure} images/higher_order_slotted_cylinder_FCT_diff.jpg +:name: tracer-error-in-higher-order-convergence_FCT +:align: center +:width: 600 px +Error Tracer higher order convergence example of a slotted cylinder advected on a sphere with FCT monotone +flux correction. Notice the reduction in ringing around the sharp edges of the tracer distribution. +``` + ## See Also diff --git a/components/omega/doc/userGuide/images/higher_order_slotted_cylinder_FCT_diff.jpg b/components/omega/doc/userGuide/images/higher_order_slotted_cylinder_FCT_diff.jpg new file mode 100644 index 0000000000000000000000000000000000000000..80da864e47bc53ecacc096ce0b9c74eef35f4308 GIT binary patch literal 689954 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≫7Na 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∨hD8Li=ifiIj=xFcEtQA;#6MNUiNR+{8)R)BzX`6m^^Sq65q={KUljWm#DW82I?T`8mH`I%K&N2D-TmPp}_(oShCf2Zzn!!se zm%G^JYSac$mDA;1QX?@n8`GX0I}rzrQ#gt+&p2}@cxklp9BZx%hsc#n{)RI|Tr@eu zR^M>4f=_+Q1=>i!z(l9m5*^JO_DQKg#^Yn{7#P{87 z8mhkz3&0wQlkM=LU}yyP>KiVVmM_DbxDU-$1pYfe(Tq(;^)-L)Zj%jpSa~~=;0&!E zMrgm1A_wmQqyq5nC#~{lCu6xj)>G?)3o)^}-$>E)Kl4$L6H5RD`tS4w~11PCh_?o4*~4}r`biEGtB=t0{=(I)cB8M|Krow zfx2k<%L`-w^d9~}Z?&ERh|&e@y*J-*U+8SWDa)utRyt(Chyik#3ZauXOcOVm{|26_D(?cW&XT(;3_an^7-M zR4RcnvblZWCkJIbL=oN08Yqckav^s?tvSSjOFdO zp3?e;a|dZo`0@pijbBBO7pgCakw^qE(*m--oA>`GmzsfrL(8Y^@E<8#1e7IE`Eme1 zHT^r%(tePZ_y^L0Y4L&wZuWQ5cKnXCf4+Z{4V%#J$=7l)mF)Yz%YNN=(?7X?M#Ez) z4-9%O1e_v1)h7NywLjk7C>-cz*n_@n-=SMPJ@)s z$NoZ6JS4Q7!43QVT>kHt5R2*q+t&R*6O9bHu1Ereg8oGOzr2XAm3x38$>22dIg%HI z{5U}Af1wMXBmX9Cou}*n17G;xizPe$D?a%1XGv27f%kX6?RSayw|S8-^8N!~?f-^z zIr8_J_unM`DL8)e$L&AB|F@ZZ!|d;$ZgdHgRr5C11!_nn3RuD<*aDQ%FZ ze{%&56W2lZC;dh1{*?fPb~nEEA&&l0>o)xp!{ED@^>+=7f3Nl5bp4MRnILfg1oxkr4I%wzV8Nw=NBFkysK5_H`MWjd z#6J%|FaFJEA^gcz5dj8wp?r4ws~?p9Xa9$9-28WcC~=hVKioM^`ZHF-|EvytUik}X z@@K3Bc;z^l!GFa}{(`^!pM55g4|pvCV;ccaeH!2&{_FoK_c-{Zz)i&}Wp5Nnk=6?o@`2b-)L<0T- z8soj--rs}8d>2|3JQnLegT_t&bDsG7sLb(@)8Xs@Kv;~tu=%tCE~qPp6QP* zOl*r=ABhkU1~Iz%d)`uafZZ zxB7lx{O1oIw+nKQMVc*ldh=jp(`y08VHm4X|EFBn@42s}xmXiSu%|$QJ=+$g_r-Sh z_lrkQ1QHhd>tXim_JxQp`0U^RB&_$^v2Cj>-!8QtKaO0FfGSN)6b!nMM_4PQ#o#Xy z@(JbRLas7pGOUP;6dgmYv((}ZO7ZWUUM9x8pO-N$aUI7A#DwpG3^~V@W|=$-4rC;8 zC7sPXlvsqwQKd(Sj9a4ySuAbAPD7(vg2pUrS$W-w^EnO+$SE$1=eseZ$ws^Ze+ z4Cq+Y^_cgeJw4~_P&QrUxM-c^Qg3J?a@{2RONoS`UcfEw zzTu)Cu8h*CeIZ}#3e#!Y^LWo`;|Z8HnVI5F?1{#v2>pkSFSL(P3Y3fGD(iJ*Ad|2K zSxa=64sF^Q+Dk(A)^P0Y=tu8k9l@&#qr(&LAd?L+wkQFU^zd#Yj9-86a(iT>;+tVY zuXYDgMxK100T;G7VAFudD?Ht?s#whG%@D13T?cL8HvCADt3qQYyF+xe6@kB~Cf$yH z{P|(6B`hx@k}v=vqB0r&B}venGw>U(KO2*(-?RPA>4&vuaEV_e1kt|XmJ*r#w-i

$>+~ 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 z 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 z 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

8G1w1<~Oe(i%oBiHU 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�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

!CkDX#Ts~zmci|vGT1JIH}4C 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�s}j_Fqfh2dlFAQvm*B2emDHM31u` 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 literal 0 HcmV?d00001 diff --git a/components/omega/doc/userGuide/images/higher_order_slotted_cylinder_non_monotonic_diff.jpg b/components/omega/doc/userGuide/images/higher_order_slotted_cylinder_non_monotonic_diff.jpg new file mode 100644 index 0000000000000000000000000000000000000000..34e5553315f8e405a210f9971678e80f8ed42049 GIT binary patch literal 875090 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%0Dik!_Doef;$^O2~J!pn)2m=Rkt}t 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

G`Kpgz&SQ0zEdZ!*eDhQD@{3OwLK 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 literal 0 HcmV?d00001 diff --git a/components/omega/src/ocn/Tendencies.cpp b/components/omega/src/ocn/Tendencies.cpp index abf73d62d37b..4ea25c4491ee 100644 --- a/components/omega/src/ocn/Tendencies.cpp +++ b/components/omega/src/ocn/Tendencies.cpp @@ -784,6 +784,7 @@ void Tendencies::computeTracerTendenciesOnly( int VelTimeLevel, ///< [in] Time level TimeInstant Time ///< [in] Time ) { + OMEGA_SCOPE(LocTracerArray, TracerArray); OMEGA_SCOPE(LocTracerTend, TracerTend); OMEGA_SCOPE(LocTracerHorzAdv, TracerHorzAdv); OMEGA_SCOPE(LocTracerDiffusion, TracerDiffusion); @@ -823,148 +824,73 @@ void Tendencies::computeTracerTendenciesOnly( parallelForOuter( {Mesh->NCellsAll}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { - const int KMin = LocMinLayerCell(ICell); - const int KMax = LocMaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv.FCTProvisionaLayerThicknesses( - ICell, KChunk, Dt, LocFluxPseudoThickEdge, - LocPseudoThickCell, LocNormalVelEdge); - }); + LocTracerHorzAdv.FCTProvisionaLayerThicknesses( + Team, ICell, Dt, LocFluxPseudoThickEdge, LocPseudoThickCell, + LocNormalVelEdge); }); Kokkos::fence(); for (int L = 0; L < NTracers; ++L) { parallelForOuter( {Mesh->NCellsAll}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { - const int KMin = LocMinLayerCell(ICell); - const int KMax = LocMaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv.FCTTracerCurFill(L, ICell, KChunk, - TracerArray); - }); + LocTracerHorzAdv.FCTTracerCurFill(Team, L, ICell, + LocTracerArray); }); Kokkos::fence(); parallelForOuter( {Mesh->NCellsAll}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { - const int KMin = LocMinLayerCell(ICell); - const int KMax = LocMaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv.FCTTracerMinMax( - ICell, KChunk, LocMinLayerCell, LocMaxLayerCell); - }); + LocTracerHorzAdv.FCTTracerMinMax(Team, ICell); }); Kokkos::fence(); parallelForOuter( {Mesh->NEdgesHaloH(1)}, KOKKOS_LAMBDA(int IEdge, const TeamMember &Team) { - const int KMin = LocMinLayerEdgeBot(IEdge); - const int KMax = LocMaxLayerEdgeTop(IEdge); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv.FCTHighAndLowOrderFlux( - IEdge, KChunk, LocMinLayerCell, LocMaxLayerCell, - LocFluxPseudoThickEdge, LocNormalVelEdge); - }); - }); - Kokkos::fence(); - parallelForOuter( - {Mesh->NCellsAll + 1}, - KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { - const int KMin = LocMinLayerCell(ICell); - const int KMax = LocMaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv.FCTInitFluxInOut(ICell, KChunk); - }); + LocTracerHorzAdv.FCTHighAndLowOrderFlux( + Team, IEdge, LocFluxPseudoThickEdge, LocNormalVelEdge); }); Kokkos::fence(); parallelForOuter( {Mesh->NCellsHaloH(0)}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { - const int KMin = LocMinLayerCell(ICell); - const int KMax = LocMaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv.FCTFluxInOut(ICell, KChunk, Dt, - LocPseudoThickCell); - }); + LocTracerHorzAdv.FCTFluxInOut(Team, ICell, Dt, + LocPseudoThickCell); }); Kokkos::fence(); parallelForOuter( {Mesh->NEdgesHaloH(0)}, KOKKOS_LAMBDA(int IEdge, const TeamMember &Team) { - const int KMin = LocMinLayerEdgeBot(IEdge); - const int KMax = LocMaxLayerEdgeTop(IEdge); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv.FCTRescaleHighOrderFlux(IEdge, - KChunk); - }); + LocTracerHorzAdv.FCTRescaleHighOrderFlux(Team, IEdge); }); Kokkos::fence(); parallelForOuter( {Mesh->NCellsOwned}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { - const int KMin = LocMinLayerCell(ICell); - const int KMax = LocMaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv.FCTAccumulateHighOrderFlux( - L, ICell, KChunk, Dt, LocTracerTend, - LocPseudoThickCell); - }); + const Array2DReal Tend = Kokkos::subview( + LocTracerTend, L, Kokkos::ALL, Kokkos::ALL); + LocTracerHorzAdv.FCTAccumulateHighOrderFlux( + Team, ICell, Dt, Tend, LocPseudoThickCell); }); Kokkos::fence(); if (LocTracerHorzAdv.ComputeBudgets) { parallelForOuter( {Mesh->NEdgesHaloH(1)}, KOKKOS_LAMBDA(int IEdge, const TeamMember &Team) { - const int KMin = LocMinLayerEdgeBot(IEdge); - const int KMax = LocMaxLayerEdgeTop(IEdge); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv.FCTComputeBudgetAdvectionEdgeFlux( - L, IEdge, KChunk); - }); + LocTracerHorzAdv.FCTComputeBudgetAdvectionEdgeFlux( + Team, L, IEdge); }); parallelForOuter( {Mesh->NCellsOwned}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { - const int KMin = LocMinLayerCell(ICell); - const int KMax = LocMaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv.FCTComputeBudgetAdvectionTendency( - L, ICell, KChunk); - }); + LocTracerHorzAdv.FCTComputeBudgetAdvectionTendency( + Team, L, ICell); }); } if (LocTracerHorzAdv.MonotonicityCheck) { parallelForOuter( {Mesh->NCellsOwned}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { - const int KMin = LocMinLayerCell(ICell); - const int KMax = LocMaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv.FCTMonotonicityCheck( - L, ICell, KChunk, TracerArray); - }); + LocTracerHorzAdv.FCTMonotonicityCheck(Team, ICell); }); } } @@ -972,12 +898,11 @@ void Tendencies::computeTracerTendenciesOnly( parallelForOuter( {NTracers, Mesh->NEdgesAll}, KOKKOS_LAMBDA(int L, int IEdge, const TeamMember &Team) { - const int KMin = LocMinLayerEdgeBot(IEdge); - const int KMax = LocMaxLayerEdgeTop(IEdge); - const int KRange = vertRangeChunked(KMin, KMax); + const int KMin = LocMinLayerEdgeBot(IEdge); + const int KMax = LocMaxLayerEdgeTop(IEdge); parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv(L, IEdge, KChunk, TracerArray, + Team, Range{KMin, KMax}, INNER_LAMBDA(int K) { + LocTracerHorzAdv(L, IEdge, K, LocTracerArray, LocFluxPseudoThickEdge, LocNormalVelEdge); }); @@ -985,12 +910,11 @@ void Tendencies::computeTracerTendenciesOnly( parallelForOuter( {NTracers, Mesh->NCellsAll}, KOKKOS_LAMBDA(int L, int ICell, const TeamMember &Team) { - const int KMin = LocMinLayerCell(ICell); - const int KMax = LocMaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); + const int KMin = LocMinLayerCell(ICell); + const int KMax = LocMaxLayerCell(ICell); parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocTracerHorzAdv(LocTracerTend, L, ICell, KChunk); + Team, Range{KMin, KMax}, INNER_LAMBDA(int K) { + LocTracerHorzAdv(LocTracerTend, L, ICell, K); }); }); } @@ -1012,7 +936,7 @@ void Tendencies::computeTracerTendenciesOnly( parallelForInner( Team, KRange, INNER_LAMBDA(int KChunk) { LocTracerDiffusion(LocTracerTend, L, ICell, KChunk, - TracerArray, MeanPseudoThickEdge); + LocTracerArray, MeanPseudoThickEdge); }); }); Pacer::stop("Tend:tracerDiffusion", 2); @@ -1046,7 +970,7 @@ void Tendencies::computeTracerTendenciesOnly( } else if (VAdv->VertAdvChoice == VertAdvOption::FCT) { ThicknessForVAdv = AuxState->PseudoThicknessAux.ProvPseudoThickness; } - VAdv->computeTracerVAdvTend(LocTracerTend, TracerArray, ThicknessForVAdv, + VAdv->computeTracerVAdvTend(LocTracerTend, LocTracerArray, ThicknessForVAdv, TimeStep); Pacer::stop("Tend:computeTracerVAdvTend", 2); @@ -1064,7 +988,7 @@ void Tendencies::computeTracerTendenciesOnly( const int KMin = LocMinLayerCell(ICell); const int L = TracerIdsToRestore(R); LocSurfaceTracerRestoring(LocTracerTend, L, ICell, KMin, - TracersMonthlySurfClimo, TracerArray); + TracersMonthlySurfClimo, LocTracerArray); }); Pacer::stop("Tend:surfaceTracerRestoring", 2); } diff --git a/components/omega/src/ocn/TendencyTerms.cpp b/components/omega/src/ocn/TendencyTerms.cpp index abefbe7be16f..1cc7c7143339 100644 --- a/components/omega/src/ocn/TendencyTerms.cpp +++ b/components/omega/src/ocn/TendencyTerms.cpp @@ -93,7 +93,7 @@ TracerHorzAdvOnCell::TracerHorzAdvOnCell(const HorzMesh *Mesh, TracerCur(), NEdgesOnCell(Mesh->NEdgesOnCell), EdgesOnCell(Mesh->EdgesOnCell), CellsOnEdge(Mesh->CellsOnEdge), MinLayerEdgeBot(VCoord->MinLayerEdgeBot), - MaxLayerEdgeTop(VCoord->MinLayerEdgeTop), + MaxLayerEdgeTop(VCoord->MaxLayerEdgeTop), EdgeSignOnCell(Mesh->EdgeSignOnCell), DvEdge(Mesh->DvEdge), AreaCell(Mesh->AreaCell), VerticalPseudoVelocity(VAdv->VerticalPseudoVelocity), HProvInv(), @@ -174,6 +174,17 @@ void TracerHorzAdvOnCell::init() { WorkTend = Array2DReal("WorkTend", NCellsAll + 1, NVertLayers); FlxIn = Array2DReal("FlxIn", NCellsAll + 1, NVertLayers); FlxOut = Array2DReal("FlxOut", NCellsAll + 1, NVertLayers); + deepCopy(HProvInv, 0.0); + deepCopy(HNewInv, 0.0); + deepCopy(HProv, 0.0); + deepCopy(TracerCur, 0.0); + deepCopy(TracerMax, 0.0); + deepCopy(TracerMin, 0.0); + deepCopy(HighOrderFlx, 0.0); + deepCopy(LowOrderFlx, 0.0); + deepCopy(WorkTend, 0.0); + deepCopy(FlxIn, 0.0); + deepCopy(FlxOut, 0.0); if (ComputeBudgets) { const int NTracers = Tracers::getNumTracers(); const int NEdges = Mesh->NEdgesHaloH(1); @@ -183,8 +194,8 @@ void TracerHorzAdvOnCell::init() { ActiveTracerHorizontalAdvectionTendency = Array3DReal("FCTActiveTracerHorizontalAdvectionTendency", NTracers, NCellsAll, NVertLayers); - deepCopy(ActiveTracerHorizontalAdvectionEdgeFlux, 0.0); - deepCopy(ActiveTracerHorizontalAdvectionTendency, 0.0); + deepCopy(ActiveTracerHorizontalAdvectionEdgeFlux, 0.0); + deepCopy(ActiveTracerHorizontalAdvectionTendency, 0.0); const int NDims = 1; const std::string GroupName = "AuxiliaryState"; std::vector FluxDimNames(NDims, "NEdges"); diff --git a/components/omega/src/ocn/TendencyTerms.h b/components/omega/src/ocn/TendencyTerms.h index db3ee19fb00d..8e4f16760e53 100644 --- a/components/omega/src/ocn/TendencyTerms.h +++ b/components/omega/src/ocn/TendencyTerms.h @@ -378,366 +378,366 @@ class TracerHorzAdvOnCell { public: bool Enabled = true; bool ForceLowOrder = false; - bool FCT = true; + bool FCT = false; bool ComputeBudgets = false; bool MonotonicityCheck = false; // coefficient for blending high-order terms Real Coef3rdOrder = 0.25; TracerHorzAdvOnCell(const HorzMesh *Mesh, const VertCoord *VCoord, const VertAdv *VAdv); -#if (0) - ~TracerHorzAdvOnCell() { - if (ComputeBudgets) { - Field::destroy(ActiveTracerHorizontalAdvectionEdgeFlux.label()); - Field::destroy(ActiveTracerHorizontalAdvectionTendency.label()); - } - } -#endif + KOKKOS_FUNCTION ~TracerHorzAdvOnCell() {} void init(); - KOKKOS_FUNCTION void operator()(const I4 L, const I4 IEdge, const I4 KChunk, + KOKKOS_FUNCTION void operator()(const I4 L, const I4 IEdge, const I4 K, const Array3DReal &TracerCell, const Array2DReal &FluxPseudoThickEdge, const Array2DReal &NormVelEdge) const { - const I4 KStart = KChunk * VecLength; - const I4 KEnd = KStart + VecLength; - for (int K = KStart; K < KEnd; ++K) - HighOrderFlxHorz(L, IEdge, K) = 0; + HighOrderFlxHorz(L, IEdge, K) = 0; // Stay at low order at boundaries - for (int K = KStart; K < KEnd; ++K) { - const I4 JCell0 = CellsOnEdge(IEdge, 0); - const I4 JCell1 = CellsOnEdge(IEdge, 1); - const Real NormalThicknessFlux = - FluxPseudoThickEdge(IEdge, K) * NormVelEdge(IEdge, K); - const Real TracerWgt = DvEdge(IEdge) * 0.5_Real * NormalThicknessFlux; - HighOrderFlxHorz(L, IEdge, K) += - TracerWgt * (1._Real - AdvMaskHighOrder(IEdge, K)) * - (TracerCell(L, JCell1, K) + TracerCell(L, JCell0, K)); - } + const I4 JCell0 = CellsOnEdge(IEdge, 0); + const I4 JCell1 = CellsOnEdge(IEdge, 1); + const Real NormalThicknessFlux = + FluxPseudoThickEdge(IEdge, K) * NormVelEdge(IEdge, K); + const Real TracerWgt = DvEdge(IEdge) * 0.5_Real * NormalThicknessFlux; + HighOrderFlxHorz(L, IEdge, K) += + TracerWgt * (1._Real - AdvMaskHighOrder(IEdge, K)) * + (TracerCell(L, JCell1, K) + TracerCell(L, JCell0, K)); // High order (3rd or 4th) fluxes elsewhere when requested // - If HorzTracerFluxOrder = 2, NAdvCellsForEdge = 0 and // this loop is skipped. for (int I = 0; I < NAdvCellsForEdge(IEdge); ++I) { const I4 ICell = AdvCellsForEdge(IEdge, I); - for (int K = KStart; K < KEnd; ++K) { - const Real NormalThicknessFlux = - FluxPseudoThickEdge(IEdge, K) * NormVelEdge(IEdge, K); - const Real TracerWgt = - (AdvCoefs(I, IEdge) + - Coef3rdOrder * std::copysign(1._Real, NormalThicknessFlux) * - AdvCoefs3rd(I, IEdge)) * - NormalThicknessFlux; - HighOrderFlxHorz(L, IEdge, K) += TracerWgt * - TracerCell(L, ICell, K) * - AdvMaskHighOrder(IEdge, K); - } + const Real NormalThicknessFlux = + FluxPseudoThickEdge(IEdge, K) * NormVelEdge(IEdge, K); + const Real TracerWgt = + (AdvCoefs(I, IEdge) + + Coef3rdOrder * std::copysign(1._Real, NormalThicknessFlux) * + AdvCoefs3rd(I, IEdge)) * + NormalThicknessFlux; + HighOrderFlxHorz(L, IEdge, K) += + TracerWgt * TracerCell(L, ICell, K) * AdvMaskHighOrder(IEdge, K); } } KOKKOS_FUNCTION void operator()(const Array3DReal &Tend, const I4 L, - const I4 ICell, const I4 KChunk) const { - const I4 KStart = KChunk * VecLength; - const I4 KEnd = KStart + VecLength; + const I4 ICell, const I4 K) const { const Real InvAreaCell = 1._Real / AreaCell(ICell); - for (int K = KStart; K < KEnd; ++K) - Tend(L, ICell, K) = 0; + Tend(L, ICell, K) = 0; for (int I = 0; I < NEdgesOnCell(ICell); ++I) { const I4 IEdge = EdgesOnCell(ICell, I); - for (I4 K = KStart; K < KEnd; ++K) { - Tend(L, ICell, K) += EdgeSignOnCell(ICell, I) * - HighOrderFlxHorz(L, IEdge, K) * InvAreaCell; - } + Tend(L, ICell, K) += EdgeSignOnCell(ICell, I) * + HighOrderFlxHorz(L, IEdge, K) * InvAreaCell; } } KOKKOS_FUNCTION void - FCTProvisionaLayerThicknesses(const I4 ICell, const I4 KChunk, const Real Dt, + FCTProvisionaLayerThicknesses(const TeamMember &Team, const I4 ICell, + const Real Dt, const Array2DReal &FluxPseudoThickEdge, const Array2DReal &LayerThickness, const Array2DReal &NormVelEdge) const { + const int KMin = MinLayerCell(ICell); + const int KMax = MaxLayerCell(ICell); + parallelForInner( + Team, Range(KMin, KMax), INNER_LAMBDA(int K) { + FCTProvisionaLayerThicknesses(ICell, K, Dt, FluxPseudoThickEdge, + LayerThickness, NormVelEdge); + }); + } - const I4 KStart = KChunk * VecLength; - const I4 KEnd = KStart + VecLength; + KOKKOS_FUNCTION void + FCTProvisionaLayerThicknesses(const I4 ICell, const I4 K, const Real Dt, + const Array2DReal &FluxPseudoThickEdge, + const Array2DReal &LayerThickness, + const Array2DReal &NormVelEdge) const { const Real InvAreaCell = Dt / AreaCell(ICell); - for (I4 K = KStart; K < KEnd; ++K) { - HProv(ICell, K) = LayerThickness(ICell, K); - } + HProv(ICell, K) = LayerThickness(ICell, K); for (I4 I = 0; I < NEdgesOnCell(ICell); ++I) { const I4 IEdge = EdgesOnCell(ICell, I); const Real SignedFactor = InvAreaCell * DvEdge(IEdge) * EdgeSignOnCell(ICell, I); // Provisional layer thickness is after horizontal // thickness flux only - for (I4 K = KStart; K < KEnd; ++K) { - const Real NormalThicknessFlux = - FluxPseudoThickEdge(IEdge, K) * NormVelEdge(IEdge, K); - HProv(ICell, K) += SignedFactor * NormalThicknessFlux; - } + const Real NormalThicknessFlux = + FluxPseudoThickEdge(IEdge, K) * NormVelEdge(IEdge, K); + HProv(ICell, K) += SignedFactor * NormalThicknessFlux; } // New layer thickness is after horizontal and vertical // thickness flux - for (I4 K = KStart; K < KEnd; ++K) { - HProvInv(ICell, K) = 1.0_Real / HProv(ICell, K); - HNewInv(ICell, K) = - 1.0_Real / - (HProv(ICell, K) - Dt * VerticalPseudoVelocity(ICell, K) + - Dt * VerticalPseudoVelocity(ICell, K + 1)); - } + HProvInv(ICell, K) = 1.0_Real / HProv(ICell, K); + HNewInv(ICell, K) = + 1.0_Real / (HProv(ICell, K) - Dt * VerticalPseudoVelocity(ICell, K) + + Dt * VerticalPseudoVelocity(ICell, K + 1)); } - KOKKOS_FUNCTION void FCTTracerCurFill(const I4 L, const I4 ICell, - const I4 KChunk, + KOKKOS_FUNCTION void FCTTracerCurFill(const TeamMember &Team, const I4 L, + const I4 ICell, const Array3DReal &TracerArray) const { - const I4 KStart = KChunk * VecLength; - const I4 KEnd = KStart + VecLength; - for (I4 K = KStart; K < KEnd; ++K) - TracerCur(ICell, K) = TracerArray(L, ICell, K); + const int KMin = MinLayerCell(ICell); + const int KMax = MaxLayerCell(ICell); + parallelForInner( + Team, Range(KMin, KMax), + INNER_LAMBDA(int K) { FCTTracerCurFill(L, ICell, K, TracerArray); }); } - KOKKOS_FUNCTION void FCTTracerMinMax(const I4 ICell, const I4 KChunk, - const Array1DI4 MinLayerCell, - const Array1DI4 MaxLayerCell) const { - - const I4 KStart = KChunk * VecLength; - const I4 KEnd = KStart + VecLength; - for (I4 K = KStart; K < KEnd; ++K) { - TracerMin(ICell, K) = TracerCur(ICell, K); - TracerMax(ICell, K) = TracerCur(ICell, K); - } - for (I4 I = 0; I < NEdgesOnCell(ICell); ++I) { + + KOKKOS_FUNCTION void FCTTracerCurFill(const I4 L, const I4 ICell, const I4 K, + const Array3DReal &TracerArray) const { + TracerCur(ICell, K) = TracerArray(L, ICell, K); + TracerMin(ICell, K) = TracerArray(L, ICell, K); + TracerMax(ICell, K) = TracerArray(L, ICell, K); + } + KOKKOS_FUNCTION void FCTTracerMinMax(const TeamMember &Team, + const I4 ICell) const { + const I4 KMin = MinLayerCell(ICell); + const I4 KMax = MaxLayerCell(ICell); + const I4 NEdges = NEdgesOnCell(ICell); + for (I4 I = 0; I < NEdges; ++I) { const I4 ICell2 = CellsOnCell(ICell, I); - const I4 KMin = MinLayerCell(ICell2); - const I4 KMax = MaxLayerCell(ICell2); - const I4 KRange = vertRangeChunked(KMin, KMax); - for (I4 KChunk = 0; KChunk < KRange; ++KChunk) { - const I4 KStart1 = Kokkos::max(KStart, KChunk * VecLength); - const I4 KEnd1 = Kokkos::min(KEnd, KStart1 + VecLength); - for (I4 K = KStart1; K < KEnd1; ++K) { - TracerMax(ICell, K) = - Kokkos::max(TracerMax(ICell, K), TracerCur(ICell2, K)); - TracerMin(ICell, K) = - Kokkos::min(TracerMin(ICell, K), TracerCur(ICell2, K)); - } - } + const I4 KMin1 = Kokkos::max(KMin, MinLayerCell(ICell2)); + const I4 KMax1 = Kokkos::min(KMax, MaxLayerCell(ICell2)); + parallelForInner( + Team, Range(KMin1, KMax1), INNER_LAMBDA(int K) { + TracerMax(ICell, K) = + Kokkos::max(TracerMax(ICell, K), TracerCur(ICell2, K)); + TracerMin(ICell, K) = + Kokkos::min(TracerMin(ICell, K), TracerCur(ICell2, K)); + }); + Team.team_barrier(); } } - KOKKOS_FUNCTION void FCTHighAndLowOrderFlux( - const I4 IEdge, const I4 KChunk, const Array1DI4 &MinLayerCell, - const Array1DI4 &MaxLayerCell, const Array2DReal &FluxPseudoThickEdge, - const Array2DReal &NormVelEdge) const { - const Real Coef3rdOrder = 0.25; - - const I4 ICell1 = CellsOnEdge(IEdge, 0); - const I4 ICell2 = CellsOnEdge(IEdge, 1); - - const I4 KStart = KChunk * VecLength; - const I4 KEnd = KStart + VecLength; - - // compute some common intermediate factors - for (I4 K = KStart; K < KEnd; ++K) - HighOrderFlx(IEdge, K) = 0.0_Real; + KOKKOS_FUNCTION void + FCTHighAndLowOrderFlux(const TeamMember &Team, const I4 IEdge, + const Array2DReal &FluxPseudoThickEdge, + const Array2DReal &NormVelEdge) const { + const Real Coef3rdOrder = 0.25; + const I4 ICell1 = CellsOnEdge(IEdge, 0); + const I4 ICell2 = CellsOnEdge(IEdge, 1); + + const I4 KMin = MinLayerEdgeBot(IEdge); + const I4 KMax = MaxLayerEdgeTop(IEdge); + parallelForInner( + Team, Range(KMin, KMax), + INNER_LAMBDA(int K) { HighOrderFlx(IEdge, K) = 0; }); // Compute 3rd or 4th fluxes where requested. for (int I = 0; I < NAdvCellsForEdge(IEdge); ++I) { - const I4 ICell = AdvCellsForEdge(IEdge, I); - const Real Coef1 = AdvCoefs(I, IEdge); - const Real Coef3 = AdvCoefs3rd(I, IEdge) * Coef3rdOrder; - const I4 KStartCell = MinLayerCell(ICell); - const I4 KLenCell = MaxLayerCell(ICell); - const I4 KEndCell = KStartCell + KLenCell; - for (I4 K = KStartCell; K <= KEndCell; ++K) { - const Real NormalThicknessFlux = - FluxPseudoThickEdge(IEdge, K) * NormVelEdge(IEdge, K); - const Real TracerWgt = - NormalThicknessFlux * - (Coef1 + Coef3 * std::copysign(1.0_Real, NormalThicknessFlux)); - HighOrderFlx(IEdge, K) += - TracerWgt * TracerCur(ICell, K) * AdvMaskHighOrder(IEdge, K); - } + const I4 ICell = AdvCellsForEdge(IEdge, I); + const Real Coef1 = AdvCoefs(I, IEdge); + const Real Coef3 = AdvCoefs3rd(I, IEdge) * Coef3rdOrder; + const I4 KMin = MinLayerCell(ICell); + const I4 KMax = MaxLayerCell(ICell); + parallelForInner( + Team, Range(KMin, KMax), INNER_LAMBDA(int K) { + const Real NormalThicknessFlux = + FluxPseudoThickEdge(IEdge, K) * NormVelEdge(IEdge, K); + const Real TracerWgt = + NormalThicknessFlux * + (Coef1 + + Coef3 * std::copysign(1.0_Real, NormalThicknessFlux)); + HighOrderFlx(IEdge, K) += TracerWgt * TracerCur(ICell, K) * + AdvMaskHighOrder(IEdge, K); + }); + Team.team_barrier(); } // Compute 2nd order fluxes where needed. // Also compute low order upwind horizontal flux (monotonic) // Remove low order flux from the high order flux // Store left over high order flux in highOrderFlx array - for (I4 K = MinLayerEdgeBot(IEdge); K <= MaxLayerEdgeTop(IEdge); ++K) { - const Real NormalThicknessFlux = - FluxPseudoThickEdge(IEdge, K) * NormVelEdge(IEdge, K); - const Real TracerWeight = (1.0_Real - AdvMaskHighOrder(IEdge, K)) * - (DvEdge(IEdge) * 0.5_Real) * - NormalThicknessFlux; - - LowOrderFlx(IEdge, K) = - DvEdge(IEdge) * (Kokkos::max(0.0_Real, NormalThicknessFlux) * - TracerCur(ICell1, K) + - Kokkos::min(0.0_Real, NormalThicknessFlux) * - TracerCur(ICell2, K)); - - HighOrderFlx(IEdge, K) += - TracerWeight * (TracerCur(ICell1, K) + TracerCur(ICell2, K)); - HighOrderFlx(IEdge, K) -= LowOrderFlx(IEdge, K); - } + parallelForInner( + Team, Range(KMin, KMax), INNER_LAMBDA(int K) { + const Real NormalThicknessFlux = + FluxPseudoThickEdge(IEdge, K) * NormVelEdge(IEdge, K); + const Real TracerWeight = (1.0_Real - AdvMaskHighOrder(IEdge, K)) * + (DvEdge(IEdge) * 0.5_Real) * + NormalThicknessFlux; + LowOrderFlx(IEdge, K) = + DvEdge(IEdge) * (Kokkos::max(0.0_Real, NormalThicknessFlux) * + TracerCur(ICell1, K) + + Kokkos::min(0.0_Real, NormalThicknessFlux) * + TracerCur(ICell2, K)); + HighOrderFlx(IEdge, K) += + TracerWeight * (TracerCur(ICell1, K) + TracerCur(ICell2, K)); + HighOrderFlx(IEdge, K) -= LowOrderFlx(IEdge, K); + }); } - KOKKOS_FUNCTION void FCTInitFluxInOut(const I4 ICell, - const I4 KChunk) const { - const I4 KStart = KChunk * VecLength; - const I4 KEnd = KStart + VecLength; - for (I4 K = KStart; K < KEnd; ++K) - WorkTend(ICell, K) = 0; - for (I4 K = KStart; K < KEnd; ++K) - FlxIn(ICell, K) = 0; - for (I4 K = KStart; K < KEnd; ++K) - FlxOut(ICell, K) = 0; - } - - KOKKOS_FUNCTION void FCTFluxInOut(const I4 ICell, const I4 KChunk, + KOKKOS_FUNCTION void FCTFluxInOut(const TeamMember &Team, const I4 ICell, const Real Dt, const Array2DReal &LayerThickness) const { + const I4 KMin = MinLayerCell(ICell); + const I4 KMax = MaxLayerCell(ICell); const Real InvAreaCell = 1._Real / AreaCell(ICell); - const I4 KStartCell = chunkStart(KChunk, MinLayerCell(ICell)); - const I4 KLenCell = chunkLength(KChunk, KStartCell, MaxLayerCell(ICell)); - const I4 KEndCell = KStartCell + KLenCell - 1; - for (I4 K = KStartCell; K <= KEndCell; ++K) { - // Finish computing the low order horizontal fluxes - // Upwind fluxes are accumulated in workTend - for (I4 I = 0; I < NEdgesOnCell(ICell); ++I) { - const I4 IEdge = EdgesOnCell(ICell, I); - const Real SignedFactor = EdgeSignOnCell(ICell, I) * InvAreaCell; - for (I4 K = MinLayerEdgeBot(IEdge); K <= MaxLayerEdgeTop(IEdge); - ++K) { - // Here workTend is the advection tendency due to the - // upwind (low order) fluxes. - WorkTend(ICell, K) += SignedFactor * LowOrderFlx(IEdge, K); - - // Accumulate remaining high order fluxes - FlxOut(ICell, K) += - Kokkos::min(0.0_Real, SignedFactor * HighOrderFlx(IEdge, K)); - FlxIn(ICell, K) += - Kokkos::max(0.0_Real, SignedFactor * HighOrderFlx(IEdge, K)); - } - } - // Build the factors for the FCT - // Computed using the bounds that were computed previously, - // and the bounds on the newly updated value - // Factors are placed in the flxIn and flxOut arrays - for (I4 K = MinLayerCell(ICell); K <= MaxLayerCell(ICell); ++K) { - // Here workTend is the upwind tendency - const Real TracerUpwindNew = - (TracerCur(ICell, K) * LayerThickness(ICell, K) + - Dt * WorkTend(ICell, K)) * - HProvInv(ICell, K); - const Real TracerMinNew = - TracerUpwindNew + Dt * FlxOut(ICell, K) * HProvInv(ICell, K); - const Real TracerMaxNew = - TracerUpwindNew + Dt * FlxIn(ICell, K) * HProvInv(ICell, K); - const Real ScaleFactorIn = (TracerMax(ICell, K) - TracerUpwindNew) / - (TracerMaxNew - TracerUpwindNew + Eps); - FlxIn(ICell, K) = - Kokkos::min(1.0_Real, Kokkos::max(0.0_Real, ScaleFactorIn)); - const Real ScaleFactorOut = - (TracerUpwindNew - TracerMin(ICell, K)) / - (TracerUpwindNew - TracerMinNew + Eps); - FlxOut(ICell, K) = - Kokkos::min(1.0_Real, Kokkos::max(0.0_Real, ScaleFactorOut)); - } + parallelForInner( + Team, Range(KMin, KMax), INNER_LAMBDA(int K) { + WorkTend(ICell, K) = 0; + FlxIn(ICell, K) = 0; + FlxOut(ICell, K) = 0; + }); + // Finish computing the low order horizontal fluxes + // Upwind fluxes are accumulated in workTend + for (I4 I = 0; I < NEdgesOnCell(ICell); ++I) { + const I4 IEdge = EdgesOnCell(ICell, I); + const Real SignedFactor = EdgeSignOnCell(ICell, I) * InvAreaCell; + const I4 KMin = MinLayerEdgeBot(IEdge); + const I4 KMax = MaxLayerEdgeTop(IEdge); + parallelForInner( + Team, Range(KMin, KMax), INNER_LAMBDA(int K) { + // Here workTend is the advection tendency due to the + // upwind (low order) fluxes. + WorkTend(ICell, K) += SignedFactor * LowOrderFlx(IEdge, K); + // Accumulate remaining high order fluxes + FlxOut(ICell, K) += Kokkos::min( + 0.0_Real, SignedFactor * HighOrderFlx(IEdge, K)); + FlxIn(ICell, K) += Kokkos::max( + 0.0_Real, SignedFactor * HighOrderFlx(IEdge, K)); + }); + Team.team_barrier(); } + // Build the factors for the FCT + // Computed using the bounds that were computed previously, + // and the bounds on the newly updated value + // Factors are placed in the flxIn and flxOut arrays + parallelForInner( + Team, Range(KMin, KMax), INNER_LAMBDA(int K) { + // Here workTend is the upwind tendency + const Real TracerUpwindNew = + (TracerCur(ICell, K) * LayerThickness(ICell, K) + + Dt * WorkTend(ICell, K)) * + HProvInv(ICell, K); + const Real TracerMinNew = + TracerUpwindNew + Dt * FlxOut(ICell, K) * HProvInv(ICell, K); + const Real TracerMaxNew = + TracerUpwindNew + Dt * FlxIn(ICell, K) * HProvInv(ICell, K); + const Real ScaleFactorIn = + (TracerMax(ICell, K) - TracerUpwindNew) / + (TracerMaxNew - TracerUpwindNew + Eps); + FlxIn(ICell, K) = + Kokkos::min(1.0_Real, Kokkos::max(0.0_Real, ScaleFactorIn)); + const Real ScaleFactorOut = + (TracerUpwindNew - TracerMin(ICell, K)) / + (TracerUpwindNew - TracerMinNew + Eps); + FlxOut(ICell, K) = + Kokkos::min(1.0_Real, Kokkos::max(0.0_Real, ScaleFactorOut)); + }); } + KOKKOS_FUNCTION void FCTRescaleHighOrderFlux(const TeamMember &Team, + const I4 IEdge) const { + const int KMin = MinLayerEdgeBot(IEdge); + const int KMax = MaxLayerEdgeTop(IEdge); + parallelForInner( + Team, Range(KMin, KMax), + INNER_LAMBDA(int K) { FCTRescaleHighOrderFlux(IEdge, K); }); + } KOKKOS_FUNCTION void FCTRescaleHighOrderFlux(const I4 IEdge, - const I4 KChunk) const { + const I4 K) const { const I4 ICell1 = CellsOnEdge(IEdge, 0); const I4 ICell2 = CellsOnEdge(IEdge, 1); - const I4 KStart = KChunk * VecLength; - const I4 KEnd = KStart + VecLength; - for (I4 K = KStart; K < KEnd; ++K) { - HighOrderFlx(IEdge, K) = - Kokkos::max(0.0_Real, HighOrderFlx(IEdge, K)) * - Kokkos::min(FlxOut(ICell1, K), FlxIn(ICell2, K)) + - Kokkos::min(0.0_Real, HighOrderFlx(IEdge, K)) * - Kokkos::min(FlxIn(ICell1, K), FlxOut(ICell2, K)); - } + HighOrderFlx(IEdge, K) = + Kokkos::max(0.0_Real, HighOrderFlx(IEdge, K)) * + Kokkos::min(FlxOut(ICell1, K), FlxIn(ICell2, K)) + + Kokkos::min(0.0_Real, HighOrderFlx(IEdge, K)) * + Kokkos::min(FlxIn(ICell1, K), FlxOut(ICell2, K)); } KOKKOS_FUNCTION void - FCTAccumulateHighOrderFlux(const I4 L, const I4 ICell, const I4 KChunk, - const Real Dt, const Array3DReal &TracerArray, + FCTAccumulateHighOrderFlux(const TeamMember &Team, const I4 ICell, + const Real Dt, const Array2DReal &TracerArray, const Array2DReal &LayerThickness) const { // Accumulate the scaled high order vertical tendencies // and the upwind tendencies const Real InvAreaCell1 = 1.0_Real / AreaCell(ICell); - const I4 KStart = KChunk * VecLength; - const I4 KEnd = KStart + VecLength; - // Accumulate the scaled high order horizontal tendencies for (I4 I = 0; I < NEdgesOnCell(ICell); ++I) { const I4 IEdge = EdgesOnCell(ICell, I); const Real SignedFactor = InvAreaCell1 * EdgeSignOnCell(ICell, I); - for (I4 K = MinLayerEdgeBot(IEdge); K <= MaxLayerEdgeTop(IEdge); ++K) { - // WorkTend on RHS is upwind tendency - // WorkTend on LHS is total horiz advect tendency - WorkTend(ICell, K) += SignedFactor * HighOrderFlx(IEdge, K); - } - } - for (I4 K = KStart; K < KEnd; ++K) { - // workTend on RHS is total horiz advection tendency - // TracerCur on LHS is provisional tracer after - // horizontal fluxes only. - TracerCur(ICell, K) = (TracerCur(ICell, K) * LayerThickness(ICell, K) + - Dt * WorkTend(ICell, K)) * - HProvInv(ICell, K); - TracerArray(L, ICell, K) += WorkTend(ICell, K); + const I4 KMin = MinLayerEdgeBot(IEdge); + const I4 KMax = MaxLayerEdgeTop(IEdge); + parallelForInner( + Team, Range(KMin, KMax), INNER_LAMBDA(int K) { + // WorkTend on RHS is upwind tendency + // WorkTend on LHS is total horiz advect tendency + WorkTend(ICell, K) += SignedFactor * HighOrderFlx(IEdge, K); + }); + Team.team_barrier(); } + const int KMin = MinLayerCell(ICell); + const int KMax = MaxLayerCell(ICell); + parallelForInner( + Team, Range(KMin, KMax), INNER_LAMBDA(int K) { + // workTend on RHS is total horiz advection tendency + // TracerCur on LHS is provisional tracer after + // horizontal fluxes only. + TracerCur(ICell, K) = + (TracerCur(ICell, K) * LayerThickness(ICell, K) + + Dt * WorkTend(ICell, K)) * + HProvInv(ICell, K); + TracerArray(ICell, K) += WorkTend(ICell, K); + }); } KOKKOS_FUNCTION void - FCTComputeBudgetAdvectionEdgeFlux(const I4 L, const I4 IEdge, - const I4 KChunk) const { + FCTComputeBudgetAdvectionEdgeFlux(const TeamMember &Team, const I4 L, + const I4 IEdge) const { + const int KMin = MinLayerEdgeBot(IEdge); + const int KMax = MaxLayerEdgeTop(IEdge); + parallelForInner( + Team, Range(KMin, KMax), INNER_LAMBDA(int K) { + FCTComputeBudgetAdvectionEdgeFlux(L, IEdge, K); + }); + } + KOKKOS_FUNCTION void FCTComputeBudgetAdvectionEdgeFlux(const I4 L, + const I4 IEdge, + const I4 K) const { // Save u*h*T flux on edge for analysis. This variable will be // divided by h at the end of the time step. - const I4 KStart = KChunk * VecLength; - const I4 KEnd = KStart + VecLength; - for (I4 K = KStart; K < KEnd; ++K) { - ActiveTracerHorizontalAdvectionEdgeFlux(L, IEdge, K) = - (LowOrderFlx(IEdge, K) + HighOrderFlx(IEdge, K)) / DvEdge(IEdge); - } + ActiveTracerHorizontalAdvectionEdgeFlux(L, IEdge, K) = + (LowOrderFlx(IEdge, K) + HighOrderFlx(IEdge, K)) / DvEdge(IEdge); } KOKKOS_FUNCTION void - FCTComputeBudgetAdvectionTendency(const I4 L, const I4 ICell, - const I4 KChunk) const { - const I4 KStart = KChunk * VecLength; - const I4 KEnd = KStart + VecLength; - for (I4 K = KStart; K < KEnd; ++K) { - ActiveTracerHorizontalAdvectionTendency(L, ICell, K) = - WorkTend(ICell, K); - } + FCTComputeBudgetAdvectionTendency(const TeamMember &Team, const I4 L, + const I4 ICell) const { + const int KMin = MinLayerCell(ICell); + const int KMax = MaxLayerCell(ICell); + parallelForInner( + Team, Range(KMin, KMax), INNER_LAMBDA(int K) { + FCTComputeBudgetAdvectionTendency(L, ICell, K); + }); + } + KOKKOS_FUNCTION void FCTComputeBudgetAdvectionTendency(const I4 L, + const I4 ICell, + const I4 K) const { + ActiveTracerHorizontalAdvectionTendency(L, ICell, K) = WorkTend(ICell, K); } - KOKKOS_FUNCTION void - FCTMonotonicityCheck(const I4 L, const I4 ICell, const I4 KChunk, - const Array3DReal &TracerArray) const { + KOKKOS_FUNCTION void FCTMonotonicityCheck(const TeamMember &Team, + const I4 ICell) const { + const int KMin = MinLayerCell(ICell); + const int KMax = MaxLayerCell(ICell); + parallelForInner( + Team, Range(KMin, KMax), + INNER_LAMBDA(int K) { FCTMonotonicityCheck(ICell, K); }); + } + KOKKOS_FUNCTION void FCTMonotonicityCheck(const I4 ICell, const I4 K) const { // Check tracer values against local min,max to detect // non-monotone values and write warning if found - - const I4 KStart = KChunk * VecLength; - const I4 KEnd = KStart + VecLength; - for (I4 K = KStart; K < KEnd; ++K) { - if (TracerArray(L, ICell, K) < TracerMin(ICell, K) - Eps) { - printf("Horizontal minimum out of bounds on tracer: %i %lg %lg\n", - L, TracerMin(ICell, K), TracerArray(L, ICell, K)); - } - if (TracerArray(L, ICell, K) > TracerMax(ICell, K) + Eps) { - printf("Horizontal maximum out of bounds on tracer: %i %lg %lg\n", - L, TracerMax(ICell, K), TracerArray(L, ICell, K)); - } + if (TracerCur(ICell, K) < TracerMin(ICell, K) - Eps) { + printf("Horizontal minimum out of bounds on tracer: %lg %lg\n", + TracerMin(ICell, K), TracerCur(ICell, K)); + } + if (TracerCur(ICell, K) > TracerMax(ICell, K) + Eps) { + printf("Horizontal maximum out of bounds on tracer: %lg %lg\n", + TracerMax(ICell, K), TracerCur(ICell, K)); } } - private: + protected: const Real Eps = 1.e-10_Real; const HorzMesh *HorzontalMesh; const VertCoord *VerticalCoord; @@ -747,12 +747,12 @@ class TracerHorzAdvOnCell { Array2DI4 AdvCellsForEdge; Array2DI4 AdvMaskHighOrder; Array2DI4 CellsOnCell; + Array1DI4 NEdgesOnCell; Array2DReal AdvCoefs; Array2DReal AdvCoefs3rd; Array3DReal HighOrderFlxHorz; Array2DReal TracerCur; - Array1DI4 NEdgesOnCell; Array2DI4 EdgesOnCell; Array2DI4 CellsOnEdge; Array1DI4 MinLayerEdgeBot; diff --git a/components/omega/test/ocn/TendencyTermsTest.cpp b/components/omega/test/ocn/TendencyTermsTest.cpp index a0cc2071eb11..8669f00c94f4 100644 --- a/components/omega/test/ocn/TendencyTermsTest.cpp +++ b/components/omega/test/ocn/TendencyTermsTest.cpp @@ -38,6 +38,7 @@ #include #include +#include #include using namespace OMEGA; @@ -47,16 +48,38 @@ struct TestSetupPlane { Real Lx = 1; Real Ly = SqrtThree / 2; - ErrorMeasures ExpectedDivErrors = {0.00124886886594453264, - 0.00124886886590977139}; - ErrorMeasures ExpectedPVErrors = {0.00807347170900282914, - 0.00794755105765788429}; - ErrorMeasures ExpectedGradErrors = {0.00125026071878537952, - 0.00134354611117262161}; - ErrorMeasures ExpectedLaplaceErrors = {0.00113090174765822192, - 0.00134324628763667899}; - ErrorMeasures ExpectedTrHAdvErrors = {0.0029211089892916243, - 0.0024583038518548855}; + ErrorMeasures ExpectedDivErrors = {0.00124886886594453264, + 0.00124886886590977139}; + ErrorMeasures ExpectedPVErrors = {0.00807347170900282914, + 0.00794755105765788429}; + ErrorMeasures ExpectedGradErrors = {0.00125026071878537952, + 0.00134354611117262161}; + ErrorMeasures ExpectedLaplaceErrors = {0.00113090174765822192, + 0.00134324628763667899}; + ErrorMeasures ExpectedTrHAdvErrors = {0.0029211089892916243, + 0.0024583038518548855}; +#ifdef OMEGA_SINGLE_PRECISION + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsH = {1.9073486e-06, + 1.9073486e-06}; +#else + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsH = {0.00, 0.00}; +#endif + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsT = {0.00, 0.00}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMin = {4.000000000000000, + 3.130325392623192}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMax = {3.989322101820906, + 2.951517757265911}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsLFlx = {0.036084391824351, + 0.093369312248885}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsHFlx = {0.000000000000000, + 0.000000000000000}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxInOut = {1, + 1.4141906687834565}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsescaleHighOrderFlux = { + 1.0000946544106781, 1.0000046904038575}; + ErrorMeasures ExpectedFCTTracerHorAccumulateHighOrderFlux[2] = { + {0.35684105955366646, 0.43996568430617927}, + {0.35684105955366646, 0.44000472928159545}}; ErrorMeasures ExpectedTrDel2Errors = {0.00334357193650093847, 0.00290978146207349032}; ErrorMeasures ExpectedTrDel4Errors = {0.00508833446725232875, @@ -187,16 +210,33 @@ struct TestSetupSphere { // TODO: get this from the mesh Real Radius = REarth; - ErrorMeasures ExpectedDivErrors = {0.013652414501664885, - 0.0036904315983599676}; - ErrorMeasures ExpectedPVErrors = {0.0219217796608757037, - 0.0122537418367830303}; - ErrorMeasures ExpectedGradErrors = {0.0019094381714837498, - 0.0015218320661105702}; - ErrorMeasures ExpectedLaplaceErrors = {0.28193638497826856, - 0.270546491554748}; - ErrorMeasures ExpectedTrHAdvErrors = {0.013259410329645643, - 0.004094907022292395}; + ErrorMeasures ExpectedDivErrors = {0.013652414501664885, + 0.0036904315983599676}; + ErrorMeasures ExpectedPVErrors = {0.0219217796608757037, + 0.0122537418367830303}; + ErrorMeasures ExpectedGradErrors = {0.0019094381714837498, + 0.0015218320661105702}; + ErrorMeasures ExpectedLaplaceErrors = {0.28193638497826856, + 0.270546491554748}; + ErrorMeasures ExpectedTrHAdvErrors = {0.013259410329645643, + 0.004094907022292395}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsH = {1.018132e-05, 5.731925e-06}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsT = {0, 0}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMin = {3.999579401557967, + 3.085071897009343}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMax = {3.986850255594682, + 2.982026592494572}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsLFlx = {0.013961840219332, + 0.010140955894313}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsHFlx = {0.000000000000000, + 0.000000000000000}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxInOut = {1.000000000000000, + 0.028377245034891}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsescaleHighOrderFlux = { + 13513.739017932676, 5582.3198820148145}; + ErrorMeasures ExpectedFCTTracerHorAccumulateHighOrderFlux[2] = { + {111602.23404252343, 174468.92049098018}, + {111606.20044738504, 174462.10150302842}}; ErrorMeasures ExpectedTrDel2Errors = {0.04865718541236144, 0.005105510870642706}; ErrorMeasures ExpectedTrDel4Errors = {0.0008646345116716073, @@ -1075,7 +1115,6 @@ int testTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { I4 Err = 0; TestSetup Setup; - const auto Mesh = HorzMesh::getDefault(); const auto VCoord = VertCoord::getDefault(); @@ -1114,7 +1153,6 @@ int testTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { VertAdv::init(); const auto VAdv = VertAdv::getDefault(); - VertAdv::clear(); TracerHorzAdvOnCell TrHorzAdvOnC(Mesh, VCoord, VAdv); TrHorzAdvOnC.ForceLowOrder = true; @@ -1126,11 +1164,13 @@ int testTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { TrHorzAdvOnC(L, IEdge, KLayer, TrCell, ThickEdge, NormalVelocity); }); + Kokkos::fence(); parallelFor( {NTracers, Mesh->NCellsOwned, NVertLayers}, KOKKOS_LAMBDA(int L, int ICell, int KLayer) { TrHorzAdvOnC(NumTrFluxDiv, L, ICell, KLayer); }); + Kokkos::fence(); ErrorMeasures TrHAdvErrors; Err += @@ -1143,6 +1183,263 @@ int testTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { LOG_INFO("TendencyTermsTest: TracerHorzAdv PASS"); } + VertAdv::clear(); + return Err; +} // end testTracerHorzAdvOnCell + +class TracerHorzAdvOnCellTest : public TracerHorzAdvOnCell { + public: + TracerHorzAdvOnCellTest(const HorzMesh *Mesh, const VertCoord *VCoord, + const VertAdv *VAdv) + : TracerHorzAdvOnCell(Mesh, VCoord, VAdv) {}; + Array2DReal GetHProvInv() const { return HProvInv; }; + Array2DReal GetHProv() const { return HProv; }; + Array2DReal GetHNewInv() const { return HNewInv; }; + Array2DReal GetTracerCur() const { return TracerCur; }; + Array2DReal GetTracerMin() const { return TracerMin; }; + Array2DReal GetTracerMax() const { return TracerMax; }; + Array3DReal GetHighOrderFlxHorz() const { return HighOrderFlxHorz; }; + Array2DReal GetLowOrderFlx() const { return LowOrderFlx; }; + Array2DReal GetHighOrderFlx() const { return HighOrderFlx; }; + Array2DReal GetFlxIn() const { return FlxIn; }; + Array2DReal GetFlxOut() const { return FlxOut; }; +}; + +int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { + + I4 Err = 0; + TestSetup Setup; + const auto Mesh = HorzMesh::getDefault(); + const auto VCoord = VertCoord::getDefault(); + + // Compute exact result + Array3DReal ExactTrFluxDiv("ExactTrFluxDiv", NTracers, Mesh->NCellsOwned, + NVertLayers); + + Err += setScalar( + KOKKOS_LAMBDA(Real X, Real Y) { return Setup.tracerFluxDiv(X, Y); }, + ExactTrFluxDiv, Geom, Mesh, OnCell, ExchangeHalos::No); + + // Set input arrays + Array2DReal NormalVelocity("NormalVelocity", Mesh->NEdgesSize, NVertLayers); + + Err += setVectorEdge( + KOKKOS_LAMBDA(Real(&VecField)[2], Real X, Real Y) { + VecField[0] = Setup.vectorX(X, Y); + VecField[1] = Setup.vectorY(X, Y); + }, + NormalVelocity, EdgeComponent::Normal, Geom, Mesh); + + Array3DReal TrCell("TrCell", NTracers, Mesh->NCellsAll, NVertLayers); + Array3DReal TracerTend("TracerTend", NTracers, Mesh->NCellsAll, NVertLayers); + Array2DReal FluxPseudoThickEdge("FluxPseudoThickEdge", Mesh->NEdgesSize, + NVertLayers); + Array2DReal LayerThickness("LayerThickness", Mesh->NCellsSize, NVertLayers); + Array2DReal NormVelEdge("NormVelEdge", Mesh->NEdgesSize, NVertLayers); + Array2DReal HProvInvExact("HProvInvExact", Mesh->NCellsSize, NVertLayers); + Array2DReal HProvExact("HProvExact", Mesh->NCellsSize, NVertLayers); + Array2DReal HNewInvExact("HProvExact", Mesh->NCellsSize, NVertLayers); + Array2DReal TracerSubView("TracerSubView", Mesh->NCellsAll, NVertLayers); + Array2DReal FluxSubView0("FluxSubView0", Mesh->NEdgesAll, NVertLayers); + Array2DReal FluxSubView1("FluxSubView1", Mesh->NEdgesAll, NVertLayers); + Array2DReal FluxSubView3("FluxSubView3", Mesh->NEdgesAll, NVertLayers); + Array2DReal TracerMaxExact("HProvExact", Mesh->NCellsSize, NVertLayers); + Array2DReal TracerMinExact("HProvExact", Mesh->NCellsSize, NVertLayers); + Array2DReal ReferenceSolution("ReferenceSolution", Mesh->NEdgesSize, + NVertLayers); + Err += setScalar( + KOKKOS_LAMBDA(Real X, Real Y) { + const Real Z = -Setup.pseudoThick(X, Y); + return Z; + }, + TrCell, Geom, Mesh, OnCell); + + deepCopy(FluxPseudoThickEdge, 1._Real); + deepCopy(LayerThickness, 1._Real); + deepCopy(HProvExact, 1._Real); + deepCopy(HProvInvExact, 1._Real); + deepCopy(HNewInvExact, 1._Real); + deepCopy(NormVelEdge, 1._Real); + deepCopy(TracerMaxExact, 1._Real); + deepCopy(TracerMinExact, 1._Real); + deepCopy(ReferenceSolution, 1._Real); + + // Compute numerical result + Array3DReal NumTrFluxDiv("NumTrFluxDiv", NTracers, Mesh->NCellsOwned, + NVertLayers); + + VertAdv::init(); + const auto VAdv = VertAdv::getDefault(); + deepCopy(VAdv->VerticalPseudoVelocity, 10._Real); + + TracerHorzAdvOnCellTest TrHorzAdvOnC(Mesh, VCoord, VAdv); + TrHorzAdvOnC.ForceLowOrder = false; + TrHorzAdvOnC.FCT = true; + TrHorzAdvOnC.init(); + + const Real Dt = 1; + parallelFor( + {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(const int ICell, const int K) { + TrHorzAdvOnC.FCTProvisionaLayerThicknesses( + ICell, K, Dt, FluxPseudoThickEdge, LayerThickness, NormVelEdge); + }); + Kokkos::fence(); + + const auto HProvInv = TrHorzAdvOnC.GetHProvInv(); + const auto HProv = TrHorzAdvOnC.GetHProv(); + const auto HNewInv = TrHorzAdvOnC.GetHNewInv(); + + const Real ATol = 1.0e-10; + ErrorMeasures FCTTracerHorzAdvErrors; + Err += + computeErrors(FCTTracerHorzAdvErrors, HProv, HProvExact, Mesh, OnCell); + Err += checkErrors("TendencyTermsTest", "FCTHProv", FCTTracerHorzAdvErrors, + Setup.ExpectedFCTTracerHorzAdvErrorsH, RTol, ATol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTHProv PASS"); + + Err += computeErrors(FCTTracerHorzAdvErrors, HProvInv, HProvInvExact, Mesh, + OnCell); + Err += + checkErrors("TendencyTermsTest", "FCTHProvInv", FCTTracerHorzAdvErrors, + Setup.ExpectedFCTTracerHorzAdvErrorsH, RTol, ATol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTHProvInv PASS"); + Err += computeErrors(FCTTracerHorzAdvErrors, HNewInv, HNewInvExact, Mesh, + OnCell); + Err += checkErrors("TendencyTermsTest", "FCTHNewInv", FCTTracerHorzAdvErrors, + Setup.ExpectedFCTTracerHorzAdvErrorsH, RTol, ATol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTHNewInv PASS"); + + for (int L = 0; L < NTracers; ++L) { + parallelFor( + {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(const int ICell, const int K) { + TrHorzAdvOnC.FCTTracerCurFill(L, ICell, K, TrCell); + }); + Kokkos::fence(); + const Array2DReal TracerCur = TrHorzAdvOnC.GetTracerCur(); + const Array2DReal Tracers = + Kokkos::subview(TrCell, L, Kokkos::ALL, Kokkos::ALL); + deepCopy(TracerSubView, Tracers); + Err += computeErrors(FCTTracerHorzAdvErrors, TracerCur, TracerSubView, + Mesh, OnCell); + Err += checkErrors("TendencyTermsTest", "FCTTracerCurFill", + FCTTracerHorzAdvErrors, + Setup.ExpectedFCTTracerHorzAdvErrorsT, RTol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTTracerCurFill_" + std::to_string(L) + + " PASS"); + } + + const Array1DI4 MinLayerCell = VCoord->MinLayerCell; + const Array1DI4 MaxLayerCell = VCoord->MaxLayerCell; + const int L = 0; + parallelFor( + {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(const int ICell, const int K) { + TrHorzAdvOnC.FCTTracerCurFill(L, ICell, K, TrCell); + }); + Kokkos::fence(); + parallelForOuter( + {Mesh->NCellsOwned}, + KOKKOS_LAMBDA(const int ICell, const TeamMember &Team) { + TrHorzAdvOnC.FCTTracerMinMax(Team, ICell); + }); + Kokkos::fence(); + const auto TracerMin = TrHorzAdvOnC.GetTracerMin(); + const auto TracerMax = TrHorzAdvOnC.GetTracerMax(); + + Err += computeErrors(FCTTracerHorzAdvErrors, TracerMin, TracerMinExact, Mesh, + OnCell); + + Err += + checkErrors("TendencyTermsTest", "FCTTracerMin", FCTTracerHorzAdvErrors, + Setup.ExpectedFCTTracerHorzAdvErrorsMin, RTol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTTracerMin PASS"); + Err += computeErrors(FCTTracerHorzAdvErrors, TracerMax, TracerMaxExact, Mesh, + OnCell); + Err += + checkErrors("TendencyTermsTest", "FCTTracerMax", FCTTracerHorzAdvErrors, + Setup.ExpectedFCTTracerHorzAdvErrorsMax, RTol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTTracerMax PASS"); + + parallelForOuter( + {Mesh->NEdgesHaloH(1)}, + KOKKOS_LAMBDA(const int IEdge, const TeamMember &Team) { + TrHorzAdvOnC.FCTHighAndLowOrderFlux(Team, IEdge, FluxPseudoThickEdge, + NormVelEdge); + }); + Kokkos::fence(); + { + parallelForOuter( + {Mesh->NCellsHaloH(0)}, + KOKKOS_LAMBDA(const int ICell, const TeamMember &Team) { + TrHorzAdvOnC.FCTFluxInOut(Team, ICell, Dt, LayerThickness); + }); + const Array2DReal FlxIn = TrHorzAdvOnC.GetFlxIn(); + const Array2DReal FlxOut = TrHorzAdvOnC.GetFlxOut(); + Err += computeErrors(FCTTracerHorzAdvErrors, FlxIn, FlxOut, Mesh, OnCell); + Err += checkErrors("TendencyTermsTest", "FCTFluxInOut", + FCTTracerHorzAdvErrors, + Setup.ExpectedFCTTracerHorzAdvErrorsFlxInOut, RTol); + if (Err == 0) { + LOG_INFO("TendencyTermsTest: FCTFluxInOut PASS"); + } + } + { + parallelFor( + {Mesh->NEdgesHaloH(0), NVertLayers}, + KOKKOS_LAMBDA(const int IEdge, const int K) { + TrHorzAdvOnC.FCTRescaleHighOrderFlux(IEdge, K); + }); + const Array2DReal HighOrderFlx = TrHorzAdvOnC.GetHighOrderFlx(); + Err += computeErrors(FCTTracerHorzAdvErrors, HighOrderFlx, + ReferenceSolution, Mesh, OnEdge); + Err += checkErrors( + "TendencyTermsTest", "FCTRescaleHighOrderFlux", + FCTTracerHorzAdvErrors, + Setup.ExpectedFCTTracerHorzAdvErrorsescaleHighOrderFlux, RTol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTRescaleHighOrderFlux PASS"); + } + for (int L = 0; L < NTracers; ++L) { + parallelFor( + {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(const int ICell, const int K) { + TrHorzAdvOnC.FCTTracerCurFill(L, ICell, K, TrCell); + }); + Kokkos::fence(); + parallelForOuter( + {Mesh->NCellsOwned}, + KOKKOS_LAMBDA(const int ICell, const TeamMember &Team) { + const Array2DReal Tend = + Kokkos::subview(TracerTend, L, Kokkos::ALL, Kokkos::ALL); + TrHorzAdvOnC.FCTAccumulateHighOrderFlux(Team, ICell, Dt, Tend, + LayerThickness); + }); + Kokkos::fence(); + const Array2DReal TracerCur = TrHorzAdvOnC.GetTracerCur(); + const Array2DReal TendCur = + Kokkos::subview(TracerTend, L, Kokkos::ALL, Kokkos::ALL); + deepCopy(TracerSubView, TendCur); + Err += computeErrors(FCTTracerHorzAdvErrors, TracerCur, TracerSubView, + Mesh, OnCell); + Err += checkErrors("TendencyTermsTest", + "FCTAccumulateHighOrderFlux_" + std::to_string(L), + FCTTracerHorzAdvErrors, + Setup.ExpectedFCTTracerHorAccumulateHighOrderFlux[L], + RTol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTAccumulateHighOrderFlux_" + + std::to_string(L) + " PASS"); + } + + VertAdv::clear(); return Err; } // end testTracerHorzAdvOnCell @@ -1453,6 +1750,8 @@ int tendencyTermsTest(const std::string &MeshFile = DefaultMeshFile) { Err += testTracerHorzAdvOnCell(NVertLayers, NTracers, RTol); + Err += testFCTTracerHorzAdvOnCell(NVertLayers, NTracers, RTol); + Err += testTracerDiffOnCell(NVertLayers, NTracers, RTol); Err += testTracerHyperDiffOnCell(NVertLayers, NTracers, RTol); From 90b44bf02372904ac8001f6d3e5bae9a6265c843 Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Wed, 29 Jul 2026 15:45:06 -0600 Subject: [PATCH 06/60] Initialize Halo elements for unit tests --- .../omega/doc/userGuide/TendencyTerms.md | 2 +- components/omega/src/ocn/Tendencies.cpp | 34 +++-- components/omega/src/ocn/TendencyTerms.h | 20 ++- .../omega/test/ocn/TendencyTermsTest.cpp | 133 ++++++++++++------ 4 files changed, 129 insertions(+), 60 deletions(-) diff --git a/components/omega/doc/userGuide/TendencyTerms.md b/components/omega/doc/userGuide/TendencyTerms.md index cc64cce92d53..4aedbd264bbd 100644 --- a/components/omega/doc/userGuide/TendencyTerms.md +++ b/components/omega/doc/userGuide/TendencyTerms.md @@ -46,7 +46,7 @@ the currently available tendency terms: | TracerHorzAdvOnCell | TracerHorzAdvTendencyEnable | enable/disable term | | HorzTracerFluxOrder | 2 for standard linear advection | | HorzTracerFluxOrder | 3 for second order advection algorithm -| | HorzTracerFluxLimiterEnable | enable/disable monotonic flux corrected transport (FCT) +| | HorzTracerFluxLimiterEnable | enable/disable monotonic flux corrected transport (FCT). Requires HorzTracerFluxOrder to be greater than 2. | | HorzTracerFluxLimiterBudgetsEnable | enable/disable budgets if FCT is enabled | | HorzTracerFluxLimiterMonotonicityCheckEnable | enable/disable check for mon-mononic values if FCT is enabled | TracerDiffOnCell | TracerDiffTendencyEnable | enable/disable term diff --git a/components/omega/src/ocn/Tendencies.cpp b/components/omega/src/ocn/Tendencies.cpp index 4ea25c4491ee..38082d82c646 100644 --- a/components/omega/src/ocn/Tendencies.cpp +++ b/components/omega/src/ocn/Tendencies.cpp @@ -228,6 +228,11 @@ void Tendencies::readConfig(Config *OmegaConfig ///< [in] Omega config this->TracerHorzAdv.Coef3rdOrder = 0; } Err += AdvectConfig.get("HorzTracerFluxLimiterEnable", TracerHorzAdv.FCT); + OMEGA_REQUIRE( + !TracerHorzAdv.FCT || 2 < Order, + "HorzTracerFluxOrder: Since HorzTracerFluxLimiterEnable is true, " + "HorzTracerFluxOrder must be greater than 2. Found Order={}", + Order); CHECK_ERROR_ABORT( Err, "Tendencies: HorzTracerFluxLimiterEnable not found in AdvectConfig"); @@ -744,7 +749,7 @@ void Tendencies::computeVelocityTendenciesOnly( Pacer::start("Tend:explicitBottomDrag", 2); parallelFor( {Mesh->NEdgesAll}, KOKKOS_LAMBDA(int IEdge) { - LocExplicitBottomDrag(LocNormalVelocityTend, IEdge, NormVelEdge, + LocExplicitBottomDrag(LocNormalVelocityTend, IEdge, NormalVelEdge, KECell, MeanPseudoThickEdge); }); Pacer::stop("Tend:explicitBottomDrag", 2); @@ -807,7 +812,7 @@ void Tendencies::computeTracerTendenciesOnly( Pacer::start("Tend:computeTracerTendenciesOnly", 1); parallelForOuter( - {NTracers, Mesh->NCellsAll}, + "Tend:LocTracerTend.init", {NTracers, Mesh->NCellsAll}, KOKKOS_LAMBDA(int L, int ICell, const TeamMember &Team) { const int KMin = LocMinLayerCell(ICell); const int KMax = LocMaxLayerCell(ICell); @@ -822,7 +827,7 @@ void Tendencies::computeTracerTendenciesOnly( Pacer::start("Tend:tracerHorzAdv", 2); if (LocTracerHorzAdv.FCT) { parallelForOuter( - {Mesh->NCellsAll}, + "Tend:FCTProvisionaLayerThicknesses", {Mesh->NCellsAll}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { LocTracerHorzAdv.FCTProvisionaLayerThicknesses( Team, ICell, Dt, LocFluxPseudoThickEdge, LocPseudoThickCell, @@ -831,40 +836,40 @@ void Tendencies::computeTracerTendenciesOnly( Kokkos::fence(); for (int L = 0; L < NTracers; ++L) { parallelForOuter( - {Mesh->NCellsAll}, + "Tend:FCTTracerCurFill", {Mesh->NCellsAll}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { LocTracerHorzAdv.FCTTracerCurFill(Team, L, ICell, LocTracerArray); }); Kokkos::fence(); parallelForOuter( - {Mesh->NCellsAll}, + "Tend:FCTTracerCurFill", {Mesh->NCellsAll}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { LocTracerHorzAdv.FCTTracerMinMax(Team, ICell); }); Kokkos::fence(); parallelForOuter( - {Mesh->NEdgesHaloH(1)}, + "Tend:FCTHighAndLowOrderFlux", {Mesh->NEdgesHaloH(1)}, KOKKOS_LAMBDA(int IEdge, const TeamMember &Team) { LocTracerHorzAdv.FCTHighAndLowOrderFlux( Team, IEdge, LocFluxPseudoThickEdge, LocNormalVelEdge); }); Kokkos::fence(); parallelForOuter( - {Mesh->NCellsHaloH(0)}, + "Tend:FCTFluxInOut", {Mesh->NCellsHaloH(0)}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { LocTracerHorzAdv.FCTFluxInOut(Team, ICell, Dt, LocPseudoThickCell); }); Kokkos::fence(); parallelForOuter( - {Mesh->NEdgesHaloH(0)}, + "Tend:FCTRescaleHighOrderFlux", {Mesh->NEdgesHaloH(0)}, KOKKOS_LAMBDA(int IEdge, const TeamMember &Team) { LocTracerHorzAdv.FCTRescaleHighOrderFlux(Team, IEdge); }); Kokkos::fence(); parallelForOuter( - {Mesh->NCellsOwned}, + "Tend:FCTAccumulateHighOrderFlux", {Mesh->NCellsOwned}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { const Array2DReal Tend = Kokkos::subview( LocTracerTend, L, Kokkos::ALL, Kokkos::ALL); @@ -874,12 +879,14 @@ void Tendencies::computeTracerTendenciesOnly( Kokkos::fence(); if (LocTracerHorzAdv.ComputeBudgets) { parallelForOuter( + "Tend:FCTComputeBudgetAdvectionEdgeFlux", {Mesh->NEdgesHaloH(1)}, KOKKOS_LAMBDA(int IEdge, const TeamMember &Team) { LocTracerHorzAdv.FCTComputeBudgetAdvectionEdgeFlux( Team, L, IEdge); }); parallelForOuter( + "Tend:FCTComputeBudgetAdvectionTendency", {Mesh->NCellsOwned}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { LocTracerHorzAdv.FCTComputeBudgetAdvectionTendency( @@ -887,8 +894,9 @@ void Tendencies::computeTracerTendenciesOnly( }); } if (LocTracerHorzAdv.MonotonicityCheck) { + const I4 NCellsOwned = Mesh->NCellsOwned; parallelForOuter( - {Mesh->NCellsOwned}, + "Tend:FCTMonotonicityCheck", {Mesh->NCellsOwned}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { LocTracerHorzAdv.FCTMonotonicityCheck(Team, ICell); }); @@ -896,7 +904,7 @@ void Tendencies::computeTracerTendenciesOnly( } } else { parallelForOuter( - {NTracers, Mesh->NEdgesAll}, + "Tend:TracerHorzAdv.init", {NTracers, Mesh->NEdgesAll}, KOKKOS_LAMBDA(int L, int IEdge, const TeamMember &Team) { const int KMin = LocMinLayerEdgeBot(IEdge); const int KMax = LocMaxLayerEdgeTop(IEdge); @@ -908,7 +916,7 @@ void Tendencies::computeTracerTendenciesOnly( }); }); parallelForOuter( - {NTracers, Mesh->NCellsAll}, + "Tend:TracerHorzAdv.exec", {NTracers, Mesh->NCellsAll}, KOKKOS_LAMBDA(int L, int ICell, const TeamMember &Team) { const int KMin = LocMinLayerCell(ICell); const int KMax = LocMaxLayerCell(ICell); @@ -927,7 +935,7 @@ void Tendencies::computeTracerTendenciesOnly( if (LocTracerDiffusion.Enabled) { Pacer::start("Tend:tracerDiffusion", 2); parallelForOuter( - {NTracers, Mesh->NCellsAll}, + "Tend::TracerDiffusion", {NTracers, Mesh->NCellsAll}, KOKKOS_LAMBDA(int L, int ICell, const TeamMember &Team) { const int KMin = LocMinLayerCell(ICell); const int KMax = LocMaxLayerCell(ICell); diff --git a/components/omega/src/ocn/TendencyTerms.h b/components/omega/src/ocn/TendencyTerms.h index 8e4f16760e53..520e48776680 100644 --- a/components/omega/src/ocn/TendencyTerms.h +++ b/components/omega/src/ocn/TendencyTerms.h @@ -521,8 +521,10 @@ class TracerHorzAdvOnCell { const I4 KMin = MinLayerEdgeBot(IEdge); const I4 KMax = MaxLayerEdgeTop(IEdge); parallelForInner( - Team, Range(KMin, KMax), - INNER_LAMBDA(int K) { HighOrderFlx(IEdge, K) = 0; }); + Team, Range(KMin, KMax), INNER_LAMBDA(int K) { + HighOrderFlx(IEdge, K) = 0; + LowOrderFlx(IEdge, K) = 0; + }); // Compute 3rd or 4th fluxes where requested. for (int I = 0; I < NAdvCellsForEdge(IEdge); ++I) { const I4 ICell = AdvCellsForEdge(IEdge, I); @@ -728,12 +730,18 @@ class TracerHorzAdvOnCell { // Check tracer values against local min,max to detect // non-monotone values and write warning if found if (TracerCur(ICell, K) < TracerMin(ICell, K) - Eps) { - printf("Horizontal minimum out of bounds on tracer: %lg %lg\n", - TracerMin(ICell, K), TracerCur(ICell, K)); + Kokkos::printf( + "Horizontal minimum out of bounds on cell %d, level %d " + "new tracer value %lg is smaller than previous tracer minimum " + "%lg\n", + ICell, K, TracerCur(ICell, K), TracerMin(ICell, K)); } if (TracerCur(ICell, K) > TracerMax(ICell, K) + Eps) { - printf("Horizontal maximum out of bounds on tracer: %lg %lg\n", - TracerMax(ICell, K), TracerCur(ICell, K)); + Kokkos::printf( + "Horizontal maximum out of bounds on cell %d, level %d " + "new tracer value %lg is larger than previous tracer maximum " + "%lg\n", + ICell, K, TracerCur(ICell, K), TracerMax(ICell, K)); } } diff --git a/components/omega/test/ocn/TendencyTermsTest.cpp b/components/omega/test/ocn/TendencyTermsTest.cpp index 8669f00c94f4..c20d54d9b41e 100644 --- a/components/omega/test/ocn/TendencyTermsTest.cpp +++ b/components/omega/test/ocn/TendencyTermsTest.cpp @@ -64,22 +64,28 @@ struct TestSetupPlane { #else ErrorMeasures ExpectedFCTTracerHorzAdvErrorsH = {0.00, 0.00}; #endif - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsT = {0.00, 0.00}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMin = {4.000000000000000, - 3.130325392623192}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMax = {3.989322101820906, - 2.951517757265911}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsLFlx = {0.036084391824351, - 0.093369312248885}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsHFlx = {0.000000000000000, - 0.000000000000000}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxInOut = {1, - 1.4141906687834565}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsT = {0.00, 0.00}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMin = {4.000000000000000, + 3.1273853748885485}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMax = {3.989322101820906, + 2.6397002508968472}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsLFlx = {0.036084391824351, + 0.093369312248885}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsHFlx = {0.000000000000000, + 0.000000000000000}; + ErrorMeasures ExpectedFCTHighAndLowOrderFlux_High = {0.0165253009242944, + 0.012337271857415571}; + ErrorMeasures ExpectedFCTHighAndLowOrderFlux_Low = {0.036084391824351, + 0.092303444396272}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxIn = {1, 0.7829782033185549}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxOut = {1, 0.7040759846240653}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxInOut = {1, + 1.5053819233225736}; ErrorMeasures ExpectedFCTTracerHorzAdvErrorsescaleHighOrderFlux = { - 1.0000946544106781, 1.0000046904038575}; + 1.001623430330361, 0.9996778602155226}; ErrorMeasures ExpectedFCTTracerHorAccumulateHighOrderFlux[2] = { - {0.35684105955366646, 0.43996568430617927}, - {0.35684105955366646, 0.44000472928159545}}; + {0.01045387513810018, 0.05774265725842573}, + {0.01045387513810018, 0.05627743044712789}}; ErrorMeasures ExpectedTrDel2Errors = {0.00334357193650093847, 0.00290978146207349032}; ErrorMeasures ExpectedTrDel4Errors = {0.00508833446725232875, @@ -223,20 +229,28 @@ struct TestSetupSphere { ErrorMeasures ExpectedFCTTracerHorzAdvErrorsH = {1.018132e-05, 5.731925e-06}; ErrorMeasures ExpectedFCTTracerHorzAdvErrorsT = {0, 0}; ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMin = {3.999579401557967, - 3.085071897009343}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMax = {3.986850255594682, - 2.982026592494572}; + 3.0836281234295635}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMax = {3.9868502555946823, + 2.712542674500614}; ErrorMeasures ExpectedFCTTracerHorzAdvErrorsLFlx = {0.013961840219332, 0.010140955894313}; ErrorMeasures ExpectedFCTTracerHorzAdvErrorsHFlx = {0.000000000000000, 0.000000000000000}; + ErrorMeasures ExpectedFCTHighAndLowOrderFlux_High = {426256.39661430614, + 6532904825455.0130}; + ErrorMeasures ExpectedFCTHighAndLowOrderFlux_Low = {952854.2803370472, + 52005531508915.62}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxIn = {0.9999999991127118, + 0.020062237037249}; + ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxOut = {1.000000000000000, + 0.04471474159043722}; ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxInOut = {1.000000000000000, - 0.028377245034891}; + 0.04901906373124676}; ErrorMeasures ExpectedFCTTracerHorzAdvErrorsescaleHighOrderFlux = { - 13513.739017932676, 5582.3198820148145}; + 426255.39661430614, 68192.88195155785}; ErrorMeasures ExpectedFCTTracerHorAccumulateHighOrderFlux[2] = { - {111602.23404252343, 174468.92049098018}, - {111606.20044738504, 174462.10150302842}}; + {111602.23404252343, 178627.1237154654}, + {111606.20044738495, 177587.373552468}}; ErrorMeasures ExpectedTrDel2Errors = {0.04865718541236144, 0.005105510870642706}; ErrorMeasures ExpectedTrDel4Errors = {0.0008646345116716073, @@ -1232,27 +1246,28 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { Array3DReal TrCell("TrCell", NTracers, Mesh->NCellsAll, NVertLayers); Array3DReal TracerTend("TracerTend", NTracers, Mesh->NCellsAll, NVertLayers); - Array2DReal FluxPseudoThickEdge("FluxPseudoThickEdge", Mesh->NEdgesSize, + Array2DReal FluxPseudoThickEdge("FluxPseudoThickEdge", Mesh->NEdgesAll, NVertLayers); Array2DReal LayerThickness("LayerThickness", Mesh->NCellsSize, NVertLayers); - Array2DReal NormVelEdge("NormVelEdge", Mesh->NEdgesSize, NVertLayers); + Array2DReal NormVelEdge("NormVelEdge", Mesh->NEdgesAll, NVertLayers); Array2DReal HProvInvExact("HProvInvExact", Mesh->NCellsSize, NVertLayers); Array2DReal HProvExact("HProvExact", Mesh->NCellsSize, NVertLayers); Array2DReal HNewInvExact("HProvExact", Mesh->NCellsSize, NVertLayers); Array2DReal TracerSubView("TracerSubView", Mesh->NCellsAll, NVertLayers); + Array2DReal CellSubView0("CellSubView0", Mesh->NCellsAll, NVertLayers); Array2DReal FluxSubView0("FluxSubView0", Mesh->NEdgesAll, NVertLayers); Array2DReal FluxSubView1("FluxSubView1", Mesh->NEdgesAll, NVertLayers); Array2DReal FluxSubView3("FluxSubView3", Mesh->NEdgesAll, NVertLayers); - Array2DReal TracerMaxExact("HProvExact", Mesh->NCellsSize, NVertLayers); - Array2DReal TracerMinExact("HProvExact", Mesh->NCellsSize, NVertLayers); - Array2DReal ReferenceSolution("ReferenceSolution", Mesh->NEdgesSize, + Array2DReal TracerMaxExact("TracerMaxExact", Mesh->NCellsSize, NVertLayers); + Array2DReal TracerMinExact("TracerMinExact", Mesh->NCellsSize, NVertLayers); + Array2DReal ReferenceSolution("ReferenceSolution", Mesh->NEdgesAll, NVertLayers); Err += setScalar( KOKKOS_LAMBDA(Real X, Real Y) { const Real Z = -Setup.pseudoThick(X, Y); return Z; }, - TrCell, Geom, Mesh, OnCell); + TrCell, Geom, Mesh, OnCell, ExchangeHalos::No); deepCopy(FluxPseudoThickEdge, 1._Real); deepCopy(LayerThickness, 1._Real); @@ -1263,6 +1278,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { deepCopy(TracerMaxExact, 1._Real); deepCopy(TracerMinExact, 1._Real); deepCopy(ReferenceSolution, 1._Real); + deepCopy(CellSubView0, 1._Real); // Compute numerical result Array3DReal NumTrFluxDiv("NumTrFluxDiv", NTracers, Mesh->NCellsOwned, @@ -1344,7 +1360,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { }); Kokkos::fence(); parallelForOuter( - {Mesh->NCellsOwned}, + {Mesh->NCellsHaloH(0)}, KOKKOS_LAMBDA(const int ICell, const TeamMember &Team) { TrHorzAdvOnC.FCTTracerMinMax(Team, ICell); }); @@ -1368,28 +1384,62 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { if (Err == 0) LOG_INFO("TendencyTermsTest: FCTTracerMax PASS"); - parallelForOuter( - {Mesh->NEdgesHaloH(1)}, - KOKKOS_LAMBDA(const int IEdge, const TeamMember &Team) { - TrHorzAdvOnC.FCTHighAndLowOrderFlux(Team, IEdge, FluxPseudoThickEdge, - NormVelEdge); - }); - Kokkos::fence(); + { + parallelForOuter( + {Mesh->NEdgesHaloH(1)}, + KOKKOS_LAMBDA(const int IEdge, const TeamMember &Team) { + TrHorzAdvOnC.FCTHighAndLowOrderFlux( + Team, IEdge, FluxPseudoThickEdge, NormVelEdge); + }); + Kokkos::fence(); + Array2DReal HighOrderFlx = TrHorzAdvOnC.GetHighOrderFlx(); + Err += computeErrors(FCTTracerHorzAdvErrors, HighOrderFlx, FluxSubView3, + Mesh, OnEdge); + Err += checkErrors("TendencyTermsTest", "FCTHighAndLowOrderFlux_High", + FCTTracerHorzAdvErrors, + Setup.ExpectedFCTHighAndLowOrderFlux_High, RTol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTHighAndLowOrderFlux_High PASS"); + Array2DReal LowOrderFlx = TrHorzAdvOnC.GetLowOrderFlx(); + Err += computeErrors(FCTTracerHorzAdvErrors, LowOrderFlx, FluxSubView3, + Mesh, OnEdge); + Err += checkErrors("TendencyTermsTest", "FCTHighAndLowOrderFlux_Low", + FCTTracerHorzAdvErrors, + Setup.ExpectedFCTHighAndLowOrderFlux_Low, RTol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTHighAndLowOrderFlux_Low PASS"); + Kokkos::fence(); + } { parallelForOuter( {Mesh->NCellsHaloH(0)}, KOKKOS_LAMBDA(const int ICell, const TeamMember &Team) { TrHorzAdvOnC.FCTFluxInOut(Team, ICell, Dt, LayerThickness); }); - const Array2DReal FlxIn = TrHorzAdvOnC.GetFlxIn(); - const Array2DReal FlxOut = TrHorzAdvOnC.GetFlxOut(); - Err += computeErrors(FCTTracerHorzAdvErrors, FlxIn, FlxOut, Mesh, OnCell); + Kokkos::fence(); + Array2DReal FlxIn = TrHorzAdvOnC.GetFlxIn(); + Err += computeErrors(FCTTracerHorzAdvErrors, FlxIn, CellSubView0, Mesh, + OnCell); + Err += + checkErrors("TendencyTermsTest", "FCTFluxIn", FCTTracerHorzAdvErrors, + Setup.ExpectedFCTTracerHorzAdvErrorsFlxIn, RTol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTFluxIn PASS"); + Array2DReal FlxOut = TrHorzAdvOnC.GetFlxOut(); + Err += computeErrors(FCTTracerHorzAdvErrors, FlxOut, CellSubView0, Mesh, + OnCell); + Err += + checkErrors("TendencyTermsTest", "FCTFluxOut", FCTTracerHorzAdvErrors, + Setup.ExpectedFCTTracerHorzAdvErrorsFlxOut, RTol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTFluxOut PASS"); + Err += computeErrors(FCTTracerHorzAdvErrors, FlxOut, FlxIn, Mesh, OnCell); Err += checkErrors("TendencyTermsTest", "FCTFluxInOut", FCTTracerHorzAdvErrors, Setup.ExpectedFCTTracerHorzAdvErrorsFlxInOut, RTol); - if (Err == 0) { + if (Err == 0) LOG_INFO("TendencyTermsTest: FCTFluxInOut PASS"); - } + Kokkos::fence(); } { parallelFor( @@ -1397,6 +1447,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { KOKKOS_LAMBDA(const int IEdge, const int K) { TrHorzAdvOnC.FCTRescaleHighOrderFlux(IEdge, K); }); + Kokkos::fence(); const Array2DReal HighOrderFlx = TrHorzAdvOnC.GetHighOrderFlx(); Err += computeErrors(FCTTracerHorzAdvErrors, HighOrderFlx, ReferenceSolution, Mesh, OnEdge); @@ -1406,6 +1457,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { Setup.ExpectedFCTTracerHorzAdvErrorsescaleHighOrderFlux, RTol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTRescaleHighOrderFlux PASS"); + Kokkos::fence(); } for (int L = 0; L < NTracers; ++L) { parallelFor( @@ -1437,6 +1489,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { if (Err == 0) LOG_INFO("TendencyTermsTest: FCTAccumulateHighOrderFlux_" + std::to_string(L) + " PASS"); + Kokkos::fence(); } VertAdv::clear(); From d702607d29edc2110b82c4d0950caab543c1acb2 Mon Sep 17 00:00:00 2001 From: Maciej Waruszewski Date: Fri, 24 Jul 2026 10:53:22 -0600 Subject: [PATCH 07/60] Initialize TimeStep member in AuxiliaryState --- components/omega/src/ocn/AuxiliaryState.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/omega/src/ocn/AuxiliaryState.cpp b/components/omega/src/ocn/AuxiliaryState.cpp index 7c0bc3d71ca5..6d88df36afd9 100644 --- a/components/omega/src/ocn/AuxiliaryState.cpp +++ b/components/omega/src/ocn/AuxiliaryState.cpp @@ -28,7 +28,8 @@ AuxiliaryState::AuxiliaryState(const std::string &Name, const HorzMesh *Mesh, VorticityAux(stripDefault(Name), Mesh, VCoord), VelocityDel2Aux(stripDefault(Name), Mesh, VCoord), SurfTracerRestAux(stripDefault(Name), Mesh, NTracers), - TracerAux(stripDefault(Name), Mesh, VCoord, NTracers) { + TracerAux(stripDefault(Name), Mesh, VCoord, NTracers), + TimeStep(TimeStep) { GroupName = "AuxiliaryState"; if (Name != "Default") { From fe4693003cf777b7e81c0dc4f353bddcf78f740b Mon Sep 17 00:00:00 2001 From: Maciej Waruszewski Date: Fri, 24 Jul 2026 11:36:21 -0600 Subject: [PATCH 08/60] Add ProvPseudoThickness to aux state test --- components/omega/test/ocn/AuxiliaryStateTest.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/components/omega/test/ocn/AuxiliaryStateTest.cpp b/components/omega/test/ocn/AuxiliaryStateTest.cpp index 6f6cb5b3c626..8b57d89fd443 100644 --- a/components/omega/test/ocn/AuxiliaryStateTest.cpp +++ b/components/omega/test/ocn/AuxiliaryStateTest.cpp @@ -186,6 +186,7 @@ int testAuxState() { deepCopy(DefAuxState->PseudoThicknessAux.FluxPseudoThickEdge, NAN); deepCopy(DefAuxState->PseudoThicknessAux.MeanPseudoThickEdge, NAN); + deepCopy(DefAuxState->PseudoThicknessAux.ProvPseudoThickness, NAN); deepCopy(DefAuxState->VorticityAux.RelVortVertex, NAN); deepCopy(DefAuxState->VorticityAux.NormRelVortVertex, NAN); @@ -243,6 +244,14 @@ int testAuxState() { LOG_ERROR("AuxStateTest: MeanPseudoThickEdge FAIL"); } + const Real ProvPseudoThickSum = + sum(DefAuxState->PseudoThicknessAux.ProvPseudoThickness, NCellsOwned, + VCoord->MinLayerCell, VCoord->MaxLayerCell); + if (!Kokkos::isfinite(ProvPseudoThickSum)) { + Err++; + LOG_ERROR("AuxStateTest: ProvPseudoThickness FAIL"); + } + const Real RelVortVSum = sum(DefAuxState->VorticityAux.RelVortVertex, NVerticesOwned, VCoord->MinLayerVertexTop, VCoord->MaxLayerVertexBot); From 54aa426f6d38a3d44e6f0c7f032df0c3dc693552 Mon Sep 17 00:00:00 2001 From: Maciej Waruszewski Date: Fri, 24 Jul 2026 11:44:59 -0600 Subject: [PATCH 09/60] Fix vertical bounds in ProvPseudoThickness computation --- .../auxiliaryVars/PseudoThicknessAuxVars.h | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/components/omega/src/ocn/auxiliaryVars/PseudoThicknessAuxVars.h b/components/omega/src/ocn/auxiliaryVars/PseudoThicknessAuxVars.h index 50452b124ffc..d24ebfd50e8b 100644 --- a/components/omega/src/ocn/auxiliaryVars/PseudoThicknessAuxVars.h +++ b/components/omega/src/ocn/auxiliaryVars/PseudoThicknessAuxVars.h @@ -69,26 +69,31 @@ class PseudoThicknessAuxVars { const Array2DReal &NormalVelEdge, const Real Dt) const { - // Temporary for stacked shallow water - const int KStart = chunkStart(KChunk, MinLayerCell(ICell)); - const int KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); + const I4 KStartCell = chunkStart(KChunk, MinLayerCell(ICell)); + const I4 KLenCell = chunkLength(KChunk, KStartCell, MaxLayerCell(ICell)); + const I4 KEndCell = KStartCell + KLenCell - 1; Real TmpProv[VecLength] = {0.}; Real DtInvAreaCell = Dt / AreaCell(ICell); for (int J = 0; J < NEdgesOnCell(ICell); ++J) { const I4 JEdge = EdgesOnCell(ICell, J); + + const I4 KStartEdge = Kokkos::max(KStartCell, MinLayerEdgeBot(JEdge)); + const I4 KEndEdge = Kokkos::min(KEndCell, MaxLayerEdgeTop(JEdge)); + const Real Factor = DtInvAreaCell * DvEdge(JEdge) * EdgeSignOnCell(ICell, J); - for (int KVec = 0; KVec < KLen; ++KVec) { - const int K = KStart + KVec; + + for (int K = KStartEdge; K <= KEndEdge; ++K) { + const I4 KVec = K - KStartCell; TmpProv[KVec] += Factor * FluxPseudoThickEdge(JEdge, K) * NormalVelEdge(JEdge, K); } } - for (int KVec = 0; KVec < KLen; ++KVec) { - const int K = KStart + KVec; + for (int KVec = 0; KVec < KLenCell; ++KVec) { + const int K = KStartCell + KVec; ProvPseudoThickness(ICell, K) = PseudoThickCell(ICell, K) + TmpProv[KVec]; } From f0513b1619b0fb68a8854762f35cc74e1859f902 Mon Sep 17 00:00:00 2001 From: Maciej Waruszewski Date: Fri, 24 Jul 2026 11:52:11 -0600 Subject: [PATCH 10/60] Add sanity checks for the time steps --- components/omega/src/ocn/AuxiliaryState.cpp | 5 +++++ components/omega/test/timeStepping/TimeStepperTest.cpp | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/components/omega/src/ocn/AuxiliaryState.cpp b/components/omega/src/ocn/AuxiliaryState.cpp index 6d88df36afd9..7a332afcb053 100644 --- a/components/omega/src/ocn/AuxiliaryState.cpp +++ b/components/omega/src/ocn/AuxiliaryState.cpp @@ -1,5 +1,6 @@ #include "AuxiliaryState.h" #include "Config.h" +#include "Error.h" #include "Field.h" #include "Logging.h" #include "Pacer.h" @@ -130,6 +131,10 @@ void AuxiliaryState::computeMomAux(const OceanState *State, R8 ProjDtSeconds; ProjDt.get(ProjDtSeconds, TimeUnits::Seconds); + // Sanity checks for the time steps + OMEGA_REQUIRE(TimeStepSeconds > 0, "TimeStepSeconds has to be positive"); + OMEGA_REQUIRE(ProjDtSeconds > 0, "ProjDtSeconds has to be positive"); + Pacer::start("AuxState:computeMomAux", 1); computeMomVertAux(State, TracerArray, ThickTimeLevel, VelTimeLevel); diff --git a/components/omega/test/timeStepping/TimeStepperTest.cpp b/components/omega/test/timeStepping/TimeStepperTest.cpp index 8fb89e684c67..af84424217ff 100644 --- a/components/omega/test/timeStepping/TimeStepperTest.cpp +++ b/components/omega/test/timeStepping/TimeStepperTest.cpp @@ -218,10 +218,11 @@ int initTimeStepperTest(const std::string &mesh) { LOG_ERROR("TimeStepperTest: error creating test state"); } - TimeInterval ZeroTimeStep; // Zero-length time step placeholder + TimeInterval PosTimeStep( + 1, TimeUnits::Seconds); // Arbitrary positive time step (unused) auto *TestAuxState = AuxiliaryState::create("TestAuxState", DefMesh, DefHalo, DefVertCoord, - DefVAdv, NTracers, ZeroTimeStep); + DefVAdv, NTracers, PosTimeStep); Config *OmegaConfig = Config::getOmegaConfig(); TestAuxState->readConfigOptions(OmegaConfig); @@ -236,7 +237,7 @@ int initTimeStepperTest(const std::string &mesh) { // Creating non-default tendencies with custom velocity tendencies auto *TestTendencies = Tendencies::create( "TestTendencies", DefMesh, DefVertCoord, DefVAdv, DefPGrad, DefEos, - DefVMix, NTracers, ZeroTimeStep, &Options, + DefVMix, NTracers, PosTimeStep, &Options, Tendencies::CustomTendencyType{}, DecayVelocityTendency{}); if (!TestTendencies) { Err++; From 4771c9b05c0cd082d176e0c800888f848ad51f77 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Tue, 4 Aug 2026 16:09:39 -0500 Subject: [PATCH 11/60] Switch python linting from isort and flake8 to ruff Replace the isort and flake8 pre-commit hooks with ruff-check and ruff-format, configured in components/omega/ruff.toml in a similar way to Polaris. Since python_lint.cfg no longer holds anything but the mypy settings, rename it to mypy.cfg. Update dev-conda.txt and the linting dev guide to match. Unlike Polaris, keep ruff-format's default double quote style, since that is what Omega's python already uses. Co-Authored-By: Claude Opus 5 --- .pre-commit-config.yaml | 29 +++++++--------- components/omega/dev-conda.txt | 3 +- components/omega/doc/devGuide/Linting.md | 14 ++++---- components/omega/mypy.cfg | 7 ++++ components/omega/python_lint.cfg | 43 ------------------------ components/omega/ruff.toml | 30 +++++++++++++++++ 6 files changed, 58 insertions(+), 68 deletions(-) create mode 100644 components/omega/mypy.cfg delete mode 100644 components/omega/python_lint.cfg create mode 100644 components/omega/ruff.toml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 618ddfc8f7cc..b9a45151ca7f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -16,13 +16,6 @@ repos: - id: trailing-whitespace - id: end-of-file-fixer - # Can run individually with `pre-commit run isort --all-files` - - repo: https://github.com/PyCQA/isort - rev: 6.0.1 - hooks: - - id: isort - args: ["--settings-file=components/omega/python_lint.cfg"] - # Can run individually with `flynt [file]` or `flynt [source]` - repo: https://github.com/ikamensh/flynt rev: 1.0.6 @@ -31,22 +24,24 @@ repos: args: ["--fail-on-change", "--verbose", "--line-length=79"] require_serial: true - # Can run individually with `pre-commit run flake8 --all-files` - # Need to use flake8 GitHub mirror due to CentOS git issue with GitLab - # https://github.com/pre-commit/pre-commit/issues/1206 - - repo: https://github.com/pycqa/flake8 - rev: 7.3.0 - hooks: - - id: flake8 - args: ["--config=components/omega/python_lint.cfg"] - additional_dependencies: [flake8-isort] + # Can run individually with `pre-commit run ruff-check --all-files` or + # `pre-commit run ruff-format --all-files`. Both are configured in + # components/omega/ruff.toml + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.16.1 + hooks: + # Run the linter. + - id: ruff-check + args: ["--fix"] + # Run the formatter. + - id: ruff-format # Can run individually with `pre-commit run mypy --all-files` - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.18.2 hooks: - id: mypy - args: ["--config=components/omega/python_lint.cfg", "--show-error-codes"] + args: ["--config=components/omega/mypy.cfg", "--show-error-codes"] verbose: true additional_dependencies: ['types-requests'] exclude: ^components/omega/cime_config/build.* diff --git a/components/omega/dev-conda.txt b/components/omega/dev-conda.txt index 98242aa35a1b..525462603405 100644 --- a/components/omega/dev-conda.txt +++ b/components/omega/dev-conda.txt @@ -19,9 +19,8 @@ include-what-you-use fprettify # python linting -isort +ruff flynt -flake8 mypy # documentation diff --git a/components/omega/doc/devGuide/Linting.md b/components/omega/doc/devGuide/Linting.md index bb3ef687b16f..59e8a4e77556 100644 --- a/components/omega/doc/devGuide/Linting.md +++ b/components/omega/doc/devGuide/Linting.md @@ -54,18 +54,20 @@ You can specify one more more files instead of `--all-files`. ## Linting Python Code The tools used to lint python code include -[isort](https://pycqa.github.io/isort/) for sorting imports, [flynt](https://github.com/ikamensh/flynt) for enforcing string formatting -with f-strings, -[flake8](https://flake8.pycqa.org/en/latest/) for enforcing the -[PEP8](https://peps.python.org/pep-0008/) style guide for python, and +with f-strings, [ruff](https://docs.astral.sh/ruff/) for sorting imports and +enforcing the [PEP8](https://peps.python.org/pep-0008/) style guide for python +(`ruff-check`) as well as for formatting the code (`ruff-format`), and [mypy](https://mypy-lang.org/) for performing variable type checking. +`ruff` is configured in `components/omega/ruff.toml` and `mypy` in +`components/omega/mypy.cfg`. + You can run these tools individually if you need to: ```bash -pre-commit run isort --all-files pre-commit run flynt --all-files -pre-commit run flake8 --all-files +pre-commit run ruff-check --all-files +pre-commit run ruff-format --all-files pre-commit run mypy --all-files ``` You can specify one more more files instead of `--all-files`. diff --git a/components/omega/mypy.cfg b/components/omega/mypy.cfg new file mode 100644 index 000000000000..fe1d9d66a2f2 --- /dev/null +++ b/components/omega/mypy.cfg @@ -0,0 +1,7 @@ +[mypy] +python_version = 3.10 +check_untyped_defs = True +ignore_missing_imports = True +warn_unused_ignores = True +warn_redundant_casts = True +warn_unused_configs = True diff --git a/components/omega/python_lint.cfg b/components/omega/python_lint.cfg deleted file mode 100644 index 5ed1cb7ae948..000000000000 --- a/components/omega/python_lint.cfg +++ /dev/null @@ -1,43 +0,0 @@ -[flake8] -# https://pep8.readthedocs.io/en/latest/intro.html#error-codes -ignore = - # line break after operator - W504 -# Max width of Github code review is 79 characters -max-line-length = 79 -max-complexity = 18 -per-file-ignores = - */__init__.py: F401 - components/omega/cime_config/buildlib_cmake: E402, F403 -exclude = - .git, - docs, - .idea, - .mypy_cache, - .pytest_cache, - -[isort] -multi_line_output=3 -include_trailing_comma=True -force_grid_wrap=0 -use_parentheses=True -line_length=79 -skip= - e3sm_diags/e3sm_diags_driver.py - -[pycodestyle] -max-line-length = 79 -exclude = - .git - docs - .idea - .mypy_cache - .pytest_cache - -[mypy] -python_version = 3.10 -check_untyped_defs = True -ignore_missing_imports = True -warn_unused_ignores = True -warn_redundant_casts = True -warn_unused_configs = True diff --git a/components/omega/ruff.toml b/components/omega/ruff.toml new file mode 100644 index 000000000000..f08cfc7eab22 --- /dev/null +++ b/components/omega/ruff.toml @@ -0,0 +1,30 @@ +# Max width of GitHub code review is 79 characters +line-length = 79 + +[lint] +# E501 - max line-length +# E4 - whitespace +# E7 - multiple-statements +# E9 - trailing-whitespace +# F - Enable Pyflakes +# B - Enable flake8-bugbear +# W - Enable pycodestyle +# I - imports +# C901 - complex-structure +select = ["E501", "E4", "E7", "E9", "F", "B", "W", "I", "C901"] + +[lint.per-file-ignores] +"**/__init__.py" = ["F401"] +"**/cime_config/buildlib_cmake" = ["E402", "F403"] + +[format] +# Omega's python is mostly double quoted, unlike Polaris and other E3SM python +# packages +quote-style = "double" + +[lint.mccabe] +# Flag errors (`C901`) whenever the complexity level exceeds 18. +max-complexity = 18 + +[lint.pydocstyle] +convention = "numpy" From 1a552ca12ad1e3715e3b62d11154c83225aab3eb Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Tue, 4 Aug 2026 16:10:01 -0500 Subject: [PATCH 12/60] Apply ruff formatting to Omega's python code Run ruff-check and ruff-format over the existing python files so that the new hooks pass on a clean tree. These changes are purely cosmetic. Co-Authored-By: Claude Opus 5 --- components/omega/cime_config/buildlib_cmake | 14 ++++---- components/omega/cime_config/buildnml | 12 +++---- components/omega/doc/conf.py | 39 +++++++++++---------- 3 files changed, 31 insertions(+), 34 deletions(-) diff --git a/components/omega/cime_config/buildlib_cmake b/components/omega/cime_config/buildlib_cmake index c58dd654d79c..6b9145f8f7e8 100755 --- a/components/omega/cime_config/buildlib_cmake +++ b/components/omega/cime_config/buildlib_cmake @@ -18,15 +18,14 @@ logger = logging.getLogger(__name__) # noqa: F405 def buildlib(bldroot, installpath, case): - """ - """ + """ """ print("building omega") - metis_root = os.environ['METIS_ROOT'] - parmetis_root = os.environ['PARMETIS_ROOT'] + metis_root = os.environ["METIS_ROOT"] + parmetis_root = os.environ["PARMETIS_ROOT"] cmake_args = ( - f' -DOMEGA_BUILD_MODE=E3SM' + f" -DOMEGA_BUILD_MODE=E3SM" f' -DOMEGA_METIS_ROOT="{metis_root}"' f' -DOMEGA_PARMETIS_ROOT="{parmetis_root}"' ) @@ -37,12 +36,11 @@ def buildlib(bldroot, installpath, case): def _main(argv, documentation): - """ - """ + """ """ caseroot, libroot, bldroot = parse_input(sys.argv) with Case(caseroot, read_only=False) as case: buildlib(bldroot, libroot, case) -if (__name__ == "__main__"): +if __name__ == "__main__": _main(sys.argv, __doc__) diff --git a/components/omega/cime_config/buildnml b/components/omega/cime_config/buildnml index 7918c1ba0917..3bc59e32f81c 100755 --- a/components/omega/cime_config/buildnml +++ b/components/omega/cime_config/buildnml @@ -61,7 +61,6 @@ def buildnml(case, caseroot, compname): # write yaml file and copy to CaseDocs within a SharedArea context so that # correct file permissions are set with SharedArea(): - output_file = run_dir / "omega.yml" # write the updated yaml file to the run directory @@ -69,7 +68,7 @@ def buildnml(case, caseroot, compname): yaml.dump(config, file, Dumper=OrderedSafeDumper) # archive yaml file in CaseDocs - case_docs = case_root / 'CaseDocs' + case_docs = case_root / "CaseDocs" if case_docs.exists(): safe_copy(output_file, case_docs / "omega.yml") @@ -186,7 +185,7 @@ def _update_read_io_streams(config, case, stream): if stream == "RestartRead": continue_run = not continue_run - config[stream]['Filename'] = _get_file_name(case, stream) + config[stream]["Filename"] = _get_file_name(case, stream) # Leave `OnstartUp` default for HorzMeshIn and InitialVertCoord streams if stream not in ["HorzMeshIn", "InitialVertCoord"]: @@ -212,7 +211,7 @@ def _update_read_io_streams(config, case, stream): def _build_restart_write_io_stream(case): """Coupler dictates when to write restart files, so we just need to set up - the stream here. + the stream here. """ case_name = case.get_value("CASE") @@ -251,7 +250,7 @@ def _build_io_streams_config(default_io_streams, case): def _build_time_integration_config(default_time_integration, case): """Start and stop time are set by the coupler. - The time step is mesh dependent. + The time step is mesh dependent. """ ocn_grid = case.get_value("OCN_GRID") calendar = case.get_value("CALENDAR") @@ -285,8 +284,7 @@ def _build_time_integration_config(default_time_integration, case): def _main_func(): - """ - """ + """ """ caseroot = parse_input(sys.argv) with Case(caseroot) as case: buildnml(case, caseroot, "omega") diff --git a/components/omega/doc/conf.py b/components/omega/doc/conf.py index e5f41da10a2b..b673eea79557 100644 --- a/components/omega/doc/conf.py +++ b/components/omega/doc/conf.py @@ -16,14 +16,14 @@ # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. -if 'DOCS_VERSION' in os.environ: - version = os.environ.get('DOCS_VERSION') +if "DOCS_VERSION" in os.environ: + version = os.environ.get("DOCS_VERSION") release = version else: # The short X.Y.Z version. - version = 'develop' + version = "develop" # The full version, including alpha/beta/rc tags. - release = 'develop' + release = "develop" master_doc = "index" language = "en" @@ -48,26 +48,27 @@ # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. -exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", "README.md", - "**/README.md"] +exclude_patterns = [ + "_build", + "Thumbs.db", + ".DS_Store", + "README.md", + "**/README.md", +] intersphinx_mapping = { - 'matplotlib': ('http://matplotlib.org/stable', None), - 'numpy': ('https://numpy.org/doc/stable', None), - 'polaris': ('https://e3sm-project.github.io/polaris/main', None), - 'python': ('https://docs.python.org', None), - 'scipy': ('http://docs.scipy.org/doc/scipy/reference', None), + "matplotlib": ("http://matplotlib.org/stable", None), + "numpy": ("https://numpy.org/doc/stable", None), + "polaris": ("https://e3sm-project.github.io/polaris/main", None), + "python": ("https://docs.python.org", None), + "scipy": ("http://docs.scipy.org/doc/scipy/reference", None), "sphinx": ("https://www.sphinx-doc.org/en/master", None), - 'xarray': ('http://xarray.pydata.org/en/stable', None) + "xarray": ("http://xarray.pydata.org/en/stable", None), } # -- MyST settings --------------------------------------------------- -myst_enable_extensions = [ - 'colon_fence', - 'deflist', - 'dollarmath' -] +myst_enable_extensions = ["colon_fence", "deflist", "dollarmath"] math_number_all = True math_numfig = False myst_dmath_allow_labels = True @@ -76,12 +77,12 @@ myst_footnote_transition = True myst_dmath_double_inline = True myst_enable_checkboxes = True -suppress_warnings = ['myst.header'] +suppress_warnings = ["myst.header"] myst_heading_start_level = 1 # -- HTML output ------------------------------------------------- -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, From dcbe4f496668054716d4a4084f8c007a0d080a90 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 5 Aug 2026 10:53:12 +0200 Subject: [PATCH 13/60] Add flake8-errmsg Co-authored-by: Andrew Nolan <32367657+andrewdnolan@users.noreply.github.com> --- components/omega/ruff.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/omega/ruff.toml b/components/omega/ruff.toml index f08cfc7eab22..2c77ec648a53 100644 --- a/components/omega/ruff.toml +++ b/components/omega/ruff.toml @@ -11,7 +11,8 @@ line-length = 79 # W - Enable pycodestyle # I - imports # C901 - complex-structure -select = ["E501", "E4", "E7", "E9", "F", "B", "W", "I", "C901"] +# EM - Enable flake8-errmsg +select = ["E501", "E4", "E7", "E9", "F", "B", "W", "I", "C901", "EM"] [lint.per-file-ignores] "**/__init__.py" = ["F401"] From ab7fbb401b64ff5495561c6924a378bd63be0242 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 5 Aug 2026 04:25:19 -0500 Subject: [PATCH 14/60] Fix flake8-errmsg violations in Omega's CIME scripts Assign exception messages to a variable before raising, as required by the EM rules newly enabled in components/omega/ruff.toml. All four violations are in the extensionless CIME scripts, which pre-commit identifies as python from their shebang. Co-Authored-By: Claude Opus 5 --- components/omega/cime_config/buildlib_cmake | 3 ++- components/omega/cime_config/buildnml | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/components/omega/cime_config/buildlib_cmake b/components/omega/cime_config/buildlib_cmake index 6b9145f8f7e8..4d2c76655009 100755 --- a/components/omega/cime_config/buildlib_cmake +++ b/components/omega/cime_config/buildlib_cmake @@ -5,7 +5,8 @@ import sys _CIMEROOT = os.environ.get("CIMEROOT") if _CIMEROOT is None: - raise SystemExit("ERROR: must set CIMEROOT environment variable") + _MSG = "ERROR: must set CIMEROOT environment variable" + raise SystemExit(_MSG) _LIBDIR = os.path.join(_CIMEROOT, "CIME", "Tools") sys.path.append(_LIBDIR) diff --git a/components/omega/cime_config/buildnml b/components/omega/cime_config/buildnml index 3bc59e32f81c..4e940b0f8b4b 100755 --- a/components/omega/cime_config/buildnml +++ b/components/omega/cime_config/buildnml @@ -154,7 +154,8 @@ def _get_file_name(case, stream): ocn_grid = case.get_value("OCN_GRID") if ocn_grid not in omega_supported_grids: - raise ValueError(f"Unsupported OCN_GRID: {ocn_grid}") + msg = f"Unsupported OCN_GRID: {ocn_grid}" + raise ValueError(msg) # TODO: this will return a different value based on the stream name # For now mesh file contains all information needed in single file @@ -167,7 +168,8 @@ def _get_file_name(case, stream): mesh_dir = omega_dir / "EC30to60E2r2" return str(mesh_dir / "ocean.EC30to60E2r2.200908.teos10.260720.nc") else: - raise ValueError(f"Unsupported OCN_GRID: {ocn_grid}") + msg = f"Unsupported OCN_GRID: {ocn_grid}" + raise ValueError(msg) def _update_read_io_streams(config, case, stream): @@ -263,7 +265,8 @@ def _build_time_integration_config(default_time_integration, case): elif calendar == "GREGORIAN": time_integration["CalendarType"] = "Gregorian" else: - raise ValueError(f"Unsupported calendar type: {calendar}") + msg = f"Unsupported calendar type: {calendar}" + raise ValueError(msg) # Set start and stop time to invalid values in order to make clear to users # these values come from the coupler at runtime From b7d37c0dcd23d5dde94327239f1ed29d9cddfce5 Mon Sep 17 00:00:00 2001 From: Andrew Nolan Date: Fri, 31 Jul 2026 09:48:21 -0500 Subject: [PATCH 15/60] Pass logical current level to VertMixImplicit Also use getters to access state instead of raw access --- components/omega/src/ocn/VertMix.cpp | 8 +++++--- .../omega/src/timeStepping/ForwardBackwardStepper.cpp | 2 +- components/omega/src/timeStepping/RungeKutta2Stepper.cpp | 2 +- components/omega/src/timeStepping/RungeKutta4Stepper.cpp | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/components/omega/src/ocn/VertMix.cpp b/components/omega/src/ocn/VertMix.cpp index 9d5036ac1408..45431292ed16 100644 --- a/components/omega/src/ocn/VertMix.cpp +++ b/components/omega/src/ocn/VertMix.cpp @@ -441,8 +441,9 @@ void VertMix::applyVelVertMixImplicit( OMEGA_SCOPE(MinLayerEdgeBot, VCoord->MinLayerEdgeBot); OMEGA_SCOPE(MaxLayerEdgeTop, VCoord->MaxLayerEdgeTop); - const Array2DReal &NormalVelEdge = State->NormalVelocity[VelTimeLevel]; - const Array2DReal &PseudoThickCell = State->PseudoThickness[ThickTimeLevel]; + const Array2DReal &NormalVelEdge = State->getNormalVelocity(VelTimeLevel); + const Array2DReal &PseudoThickCell = + State->getPseudoThickness(ThickTimeLevel); // Compute velocity vertical mixing if (LocVelVertMixSetup.Enabled) { @@ -546,7 +547,8 @@ void VertMix::applyTracerVertMixImplicit( OMEGA_SCOPE(MinLayerCell, VCoord->MinLayerCell); OMEGA_SCOPE(MaxLayerCell, VCoord->MaxLayerCell); - const Array2DReal &PseudoThickCell = State->PseudoThickness[ThickTimeLevel]; + const Array2DReal &PseudoThickCell = + State->getPseudoThickness(ThickTimeLevel); if (LocTracerVertMixSetup.Enabled) { Pacer::start("Tend:tracerVertMix", 1); diff --git a/components/omega/src/timeStepping/ForwardBackwardStepper.cpp b/components/omega/src/timeStepping/ForwardBackwardStepper.cpp index ae8936f4ad3e..05b6a4389e72 100644 --- a/components/omega/src/timeStepping/ForwardBackwardStepper.cpp +++ b/components/omega/src/timeStepping/ForwardBackwardStepper.cpp @@ -95,7 +95,7 @@ void ForwardBackwardStepper::doStep( CurTracerArray = Tracers::getAll(VelCurLevel); if (VMix->VelVertMixSetup.Enabled or VMix->TracerVertMixSetup.Enabled) { VMix->VertMixImplicit(State, AuxState, CurTracerArray, NTracers, - State->CurTimeIndex); + VelCurLevel); } validateOceanState(State, AuxState, VertCoord::getDefault(), 0); diff --git a/components/omega/src/timeStepping/RungeKutta2Stepper.cpp b/components/omega/src/timeStepping/RungeKutta2Stepper.cpp index 5f6c6f46e534..4c0348140ae0 100644 --- a/components/omega/src/timeStepping/RungeKutta2Stepper.cpp +++ b/components/omega/src/timeStepping/RungeKutta2Stepper.cpp @@ -79,7 +79,7 @@ void RungeKutta2Stepper::doStep(OceanState *State, // model state CurTracerArray = Tracers::getAll(CurLevel); if (VMix->VelVertMixSetup.Enabled or VMix->TracerVertMixSetup.Enabled) { VMix->VertMixImplicit(State, AuxState, CurTracerArray, NTracers, - State->CurTimeIndex); + CurLevel); } validateOceanState(State, AuxState, VertCoord::getDefault(), CurLevel); diff --git a/components/omega/src/timeStepping/RungeKutta4Stepper.cpp b/components/omega/src/timeStepping/RungeKutta4Stepper.cpp index 3f0638799db1..1f382b812fc7 100644 --- a/components/omega/src/timeStepping/RungeKutta4Stepper.cpp +++ b/components/omega/src/timeStepping/RungeKutta4Stepper.cpp @@ -143,7 +143,7 @@ void RungeKutta4Stepper::doStep(OceanState *State, // model state CurTracerArray = Tracers::getAll(CurLevel); if (VMix->VelVertMixSetup.Enabled or VMix->TracerVertMixSetup.Enabled) { VMix->VertMixImplicit(State, AuxState, CurTracerArray, NTracers, - State->CurTimeIndex); + CurLevel); } validateOceanState(State, AuxState, VertCoord::getDefault(), CurLevel); From 6aab7629341d4aaf7499c29e41f4422322894a46 Mon Sep 17 00:00:00 2001 From: Andrew Nolan Date: Fri, 31 Jul 2026 13:48:01 -0400 Subject: [PATCH 16/60] Exchange halos after vertical mixing --- .../omega/src/timeStepping/ForwardBackwardStepper.cpp | 7 +++++++ components/omega/src/timeStepping/RungeKutta2Stepper.cpp | 7 +++++++ components/omega/src/timeStepping/RungeKutta4Stepper.cpp | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/components/omega/src/timeStepping/ForwardBackwardStepper.cpp b/components/omega/src/timeStepping/ForwardBackwardStepper.cpp index 05b6a4389e72..6e1b2f2f47d9 100644 --- a/components/omega/src/timeStepping/ForwardBackwardStepper.cpp +++ b/components/omega/src/timeStepping/ForwardBackwardStepper.cpp @@ -96,6 +96,13 @@ void ForwardBackwardStepper::doStep( if (VMix->VelVertMixSetup.Enabled or VMix->TracerVertMixSetup.Enabled) { VMix->VertMixImplicit(State, AuxState, CurTracerArray, NTracers, VelCurLevel); + + // Re-exchange halos after vertical mixing + Pacer::timingBarrier("ForwardBackward:vMixHaloExchBarrier", 3, Comm); + Pacer::start("ForwardBackward:vMixHaloExch", 3); + State->exchangeHalo(VelCurLevel); + Tracers::exchangeHalo(VelCurLevel); + Pacer::stop("ForwardBackward:vMixHaloExch", 3); } validateOceanState(State, AuxState, VertCoord::getDefault(), 0); diff --git a/components/omega/src/timeStepping/RungeKutta2Stepper.cpp b/components/omega/src/timeStepping/RungeKutta2Stepper.cpp index 4c0348140ae0..dcf33ad611a2 100644 --- a/components/omega/src/timeStepping/RungeKutta2Stepper.cpp +++ b/components/omega/src/timeStepping/RungeKutta2Stepper.cpp @@ -80,6 +80,13 @@ void RungeKutta2Stepper::doStep(OceanState *State, // model state if (VMix->VelVertMixSetup.Enabled or VMix->TracerVertMixSetup.Enabled) { VMix->VertMixImplicit(State, AuxState, CurTracerArray, NTracers, CurLevel); + + // Re-exchange halos after vertical mixing + Pacer::timingBarrier("RK2:vMixHaloExchBarrier", 3, Comm); + Pacer::start("RK2:vMixHaloExch", 3); + State->exchangeHalo(CurLevel); + Tracers::exchangeHalo(CurLevel); + Pacer::stop("RK2:vMixHaloExch", 3); } validateOceanState(State, AuxState, VertCoord::getDefault(), CurLevel); diff --git a/components/omega/src/timeStepping/RungeKutta4Stepper.cpp b/components/omega/src/timeStepping/RungeKutta4Stepper.cpp index 1f382b812fc7..abd83b03043e 100644 --- a/components/omega/src/timeStepping/RungeKutta4Stepper.cpp +++ b/components/omega/src/timeStepping/RungeKutta4Stepper.cpp @@ -144,6 +144,13 @@ void RungeKutta4Stepper::doStep(OceanState *State, // model state if (VMix->VelVertMixSetup.Enabled or VMix->TracerVertMixSetup.Enabled) { VMix->VertMixImplicit(State, AuxState, CurTracerArray, NTracers, CurLevel); + + // Re-exchange halos after vertical mixing + Pacer::timingBarrier("RK4:vMixHaloExchBarrier", 3, Comm); + Pacer::start("RK4:vMixHaloExch", 3); + State->exchangeHalo(CurLevel); + Tracers::exchangeHalo(CurLevel); + Pacer::stop("RK4:vMixHaloExch", 3); } validateOceanState(State, AuxState, VertCoord::getDefault(), CurLevel); From fedf54a6d81e036a40f16ae40aec590149bc6548 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 2 Aug 2026 06:24:47 -0500 Subject: [PATCH 17/60] Give each Omega unit test its own log file All test drivers call initLogging with no file name, so every CTest wrote into a single omega.log opened in append mode: one run's log was the concatenation of all tests with no test boundaries, and repeated runs in the same build tree appended to each other. Take the default log file name from the OMEGA_LOG_FILE environment variable when the caller does not supply one, and set it per test in add_omega_test so each test writes test/logs/.log. The name comes from the CTest test name because several tests share a source file. Truncate the log when it is opened, so it holds exactly one run, and open it with a banner giving the file, time and task. Clear stale logs of tests that are no longer run in omega_ctest.sh. Also insert the task id for per-rank logs when the file name has no extension, which was previously ignored. Co-Authored-By: Claude Opus 5 --- components/omega/OmegaBuild.cmake | 3 ++ components/omega/src/infra/Logging.cpp | 75 ++++++++++++++++++++++---- components/omega/src/infra/Logging.h | 17 ++++-- components/omega/test/CMakeLists.txt | 17 +++++- 4 files changed, 97 insertions(+), 15 deletions(-) diff --git a/components/omega/OmegaBuild.cmake b/components/omega/OmegaBuild.cmake index b7bb7e28f56b..1474b3e898c9 100644 --- a/components/omega/OmegaBuild.cmake +++ b/components/omega/OmegaBuild.cmake @@ -313,6 +313,9 @@ macro(init_standalone_build) set(_CtestScript ${OMEGA_BUILD_DIR}/omega_ctest.sh) file(WRITE ${_CtestScript} "#!/usr/bin/env bash\n\n") file(APPEND ${_CtestScript} "source ./omega_env.sh\n\n") + # each test truncates its own log on startup, so this only removes logs left + # behind by tests that are no longer run + file(APPEND ${_CtestScript} "rm -f test/logs/*.log\n\n") if(OMEGA_DEBUG) file(APPEND ${_CtestScript} "ctest --output-on-failure --verbose $* # --rerun-failed\n\n") else() diff --git a/components/omega/src/infra/Logging.cpp b/components/omega/src/infra/Logging.cpp index a548df34df59..b5603c8309f1 100644 --- a/components/omega/src/infra/Logging.cpp +++ b/components/omega/src/infra/Logging.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -150,6 +151,42 @@ static std::string getLogTaskSelector() { return std::string("master"); } +//------------------------------------------------------------------------------ +// Determine the log file name to use when the caller does not supply one. +// The OMEGA_LOG_FILE environment variable takes precedence so that a harness +// (eg CTest, which gives each unit test its own log) can name the file at run +// time; otherwise the built-in default name is used. +static std::string getDefaultLogFilePath() { + const char *Env = std::getenv("OMEGA_LOG_FILE"); + if (Env != nullptr && Env[0] != '\0') + return std::string(Env); + return OmegaDefaultLogfile; +} + +//------------------------------------------------------------------------------ +// Insert the MPI task id into a log file name so that each logging rank gets +// its own file, eg omega.log -> omega_3.log. When the name has no extension, +// the task id is simply appended. +static std::string addTaskIdToPath(const std::string &LogFilePath, + OMEGA::I4 TaskId) { + + const std::string Suffix = "_" + std::to_string(TaskId); + + std::size_t DotPos = LogFilePath.find_last_of('.'); + std::size_t SepPos = LogFilePath.find_last_of("\\/"); + + // only treat a dot as an extension when it is part of the file name and + // not part of a directory in the path + bool HasExtension = (DotPos != std::string::npos) && + (SepPos == std::string::npos || DotPos > SepPos); + + if (HasExtension) + return LogFilePath.substr(0, DotPos) + Suffix + + LogFilePath.substr(DotPos); + + return LogFilePath + Suffix; +} + //------------------------------------------------------------------------------ // Resolve which sub-communicator ranks should log from the runtime selector, // emitting master-rank diagnostics for invalid or empty selections. Sets @@ -248,18 +285,24 @@ int initLogging( if (ThisTaskLogs) { try { - std::size_t dotPos = LogFilePath.find_last_of('.'); - // create log file name/path and set default (*) logger. When more than // one rank logs, append the rank id to keep per-rank files distinct. - if (NumLogging > 1 && dotPos != std::string::npos) { - - NewLogFilePath = LogFilePath.substr(0, dotPos) + "_" + - std::to_string(TaskId) + - LogFilePath.substr(dotPos); - } else { - NewLogFilePath = LogFilePath; - } + // An empty path means the caller wants the default name, which may be + // supplied by the environment. + NewLogFilePath = + LogFilePath.empty() ? getDefaultLogFilePath() : LogFilePath; + + if (NumLogging > 1) + NewLogFilePath = addTaskIdToPath(NewLogFilePath, TaskId); + + // Start the run with an empty log file so that it only ever holds + // messages from this run. Both the spdlog sink created below and the + // stdout/stderr stream opened at the end of this function append to + // the file, so that their writes interleave correctly rather than + // overwriting each other; the file is therefore truncated here, ahead + // of both, rather than by either of them. + std::ofstream Truncate(NewLogFilePath, std::ios::trunc); + Truncate.close(); // Create default logger spdlog::set_default_logger( @@ -293,6 +336,18 @@ int initLogging( // Set the stdout and stderr buffers to the file streambuffer std::cout.rdbuf(LogFileStream.rdbuf()); std::cerr.rdbuf(LogFileStream.rdbuf()); + + // Open the log with a banner giving the file and the time it was + // opened, so the log can always be tied to the run that wrote it + std::time_t Now = std::time(nullptr); + char TimeStr[64]; + if (std::strftime(TimeStr, sizeof(TimeStr), "%Y-%m-%d %H:%M:%S", + std::localtime(&Now)) == 0) + TimeStr[0] = '\0'; + spdlog::info(fmt::runtime("----- Omega log " + NewLogFilePath + + " opened " + std::string(TimeStr) + + " on task " + std::to_string(TaskId) + + " -----")); } return RetVal; diff --git a/components/omega/src/infra/Logging.h b/components/omega/src/infra/Logging.h index aebabe446f41..c07350b98a96 100644 --- a/components/omega/src/infra/Logging.h +++ b/components/omega/src/infra/Logging.h @@ -157,6 +157,15 @@ /// An invalid selector logs a warning on the master rank and falls back to /// master-rank-only logging. +/// Log file naming +/// When no log file name is supplied to initLogging, the name is taken from +/// the OMEGA_LOG_FILE environment variable if it is set and non-empty, and +/// from OmegaDefaultLogfile otherwise. This lets a harness (in particular the +/// CTest harness, which gives every unit test its own file) name the log +/// without recompiling. A name passed explicitly to initLogging always wins. +/// The log file is truncated when it is opened, so it always holds exactly +/// the messages from the current run. + namespace OMEGA { // To prevent some circular dependencies between MachEnv and Logging @@ -167,10 +176,10 @@ const std::string OmegaDefaultLogfile = "omega.log"; ///< Default log filename static std::ofstream LogFileStream; ///< Default log iostream /// Initializes Omega logging, including setting up which tasks will log -/// and add redirection of stdout/stderr to log file -int initLogging( - const OMEGA::MachEnv *DefEnv, ///< [in] MachEnv with MPI task info - std::string const &LogFilePath = OmegaDefaultLogfile ///< [in] file name +/// and add redirection of stdout/stderr to log file. An empty LogFilePath +/// selects the default name (see the log file naming notes above). +int initLogging(const OMEGA::MachEnv *DefEnv, ///< [in] MachEnv w/ MPI task info + std::string const &LogFilePath = "" ///< [in] file name ); /// Alternative Logging initialization using a pre-defined custom Logger diff --git a/components/omega/test/CMakeLists.txt b/components/omega/test/CMakeLists.txt index e0f532887ee1..20fe917bdd48 100644 --- a/components/omega/test/CMakeLists.txt +++ b/components/omega/test/CMakeLists.txt @@ -1,5 +1,10 @@ # Omega Unit Tests +# Directory holding one log file per test, created here so that it exists +# before any test runs +set(OMEGA_TEST_LOG_DIR logs) +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${OMEGA_TEST_LOG_DIR}) + ##################### # Omega Test Function ##################### @@ -69,7 +74,17 @@ function(add_omega_test test_name exe_name source_files mpi_args) ) endif() - set_tests_properties(${test_name} PROPERTIES LABELS "${OMEGA_ARCH};Omega-0") + # Give each test its own log file (relative to the test working directory, + # which is this binary directory) so that the log of a test can be read on + # its own rather than mixed in with every other test's messages. The name + # comes from the test rather than the source file because several tests + # share a source file. + set_tests_properties( + ${test_name} + PROPERTIES + LABELS "${OMEGA_ARCH};Omega-0" + ENVIRONMENT "OMEGA_LOG_FILE=${OMEGA_TEST_LOG_DIR}/${test_name}.log" + ) endfunction() From 711cef363f35cdb08aa1f48ce85e799cdab39d7e Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 2 Aug 2026 06:25:25 -0500 Subject: [PATCH 18/60] Document Omega log file naming Describe the OMEGA_LOG_FILE environment variable and the per-test log files in the user and developer guides, and replace the developer guide's reference to the OMEGA_LOG_FILEPATH macro, which no longer exists. Co-Authored-By: Claude Opus 5 --- components/omega/doc/devGuide/Logging.md | 28 +++++++++++++++++++++-- components/omega/doc/userGuide/Error.md | 6 +++-- components/omega/doc/userGuide/Logging.md | 19 +++++++++++++++ 3 files changed, 49 insertions(+), 4 deletions(-) diff --git a/components/omega/doc/devGuide/Logging.md b/components/omega/doc/devGuide/Logging.md index 3a0f801e4e6c..da2ad5867670 100644 --- a/components/omega/doc/devGuide/Logging.md +++ b/components/omega/doc/devGuide/Logging.md @@ -23,8 +23,32 @@ file, serves as a pivotal component for initializing the Omega logging system. The function establishes the default logger configuration, ensuring that logging messages are effectively saved to a designated file. The path to -this file is determined by utilizing the `OMEGA_LOG_FILEPATH` macro, which -allows users to specify the desired file location for logging purposes. +this file can be passed as the second argument to `OMEGA::initLogging`. When +it is omitted, the path comes from the `OMEGA_LOG_FILE` environment variable +if that is set and non-empty, and from `OMEGA::OmegaDefaultLogfile` +(`omega.log`) otherwise. The log file is truncated when it is opened, so it +holds only the messages from the current run. + +## Log files in the unit tests + +Every unit test driver calls `OMEGA::initLogging(DefEnv)` without a file name, +so without any further arrangement all of the tests would write to a single +`omega.log` in the build's `test` directory, with nothing to say which test +wrote which line. To avoid this, `test/CMakeLists.txt` sets `OMEGA_LOG_FILE` +per test in `add_omega_test`, so that each test writes to +`test/logs/.log`. Note that the name comes from the CTest test +name rather than the source file, because several tests are built from the +same source (for example `TEND_PLANE_TEST` and +`TEND_PLANE_SINGLE_PRECISION_TEST` both come from `TendencyTermsTest.cpp`). + +A new test added with `add_omega_test` gets its own log file automatically. A +test driver that hard-codes a log file name would opt out of this, so pass no +file name to `initLogging` unless the test manages its own log files, as +`LoggingTest` does. + +The environment variable relies on the MPI launcher passing its environment +to the ranks it starts, which is true of `srun`. If a launcher does not, the +tests fall back to writing `omega.log`. ## Creating Logging Macros diff --git a/components/omega/doc/userGuide/Error.md b/components/omega/doc/userGuide/Error.md index c90dfc06ca0f..47e091b0dfa9 100644 --- a/components/omega/doc/userGuide/Error.md +++ b/components/omega/doc/userGuide/Error.md @@ -6,8 +6,10 @@ Omega includes an error handling facility that checks for potential errors and responds to those errors when encountered. It uses the [Logging](#omega-dev-logging) facility for writing the error messages so its behavior follows that of Logging. In particular, the error -messages will be output to a single log file (omega.log) unless the option -to write a log file for each MPI task is enabled at build time. Each message +messages will be output to a single log file (omega.log by default, see the +`OMEGA_LOG_FILE` environment variable) unless logging on more than one MPI +task is requested with `OMEGA_LOG_TASKS`, in which case each logging task +writes its own file. Each message will have the format ``` [*level] [file:line number] error message diff --git a/components/omega/doc/userGuide/Logging.md b/components/omega/doc/userGuide/Logging.md index 6c286e874be0..0d6002c91fbe 100644 --- a/components/omega/doc/userGuide/Logging.md +++ b/components/omega/doc/userGuide/Logging.md @@ -65,6 +65,25 @@ LOG_TRACE("The value of MyInt is: {}", MyInt); By default, the logfile will be created in the build directory. +## Log file name + +By default Omega writes its log messages to `omega.log` in the directory it is +run from. A different name or path can be requested at run time with the +`OMEGA_LOG_FILE` environment variable: + +```bash +export OMEGA_LOG_FILE=mylogs/run1.log +``` + +When more than one MPI rank writes a log (see `OMEGA_LOG_TASKS`), the rank +number is inserted into the name, so `omega.log` becomes `omega_0.log`, +`omega_1.log` and so on. The log file is truncated when Omega starts, so it +always contains only the messages from the current run. + +The Omega unit tests use this variable to give each test its own log file, +`test/logs/.log` in the build directory, rather than a single +shared log for the whole test suite. + ## E3SM Component Build T.B.D. From 6932e6589885f1921133338faa99be7bd325ce6d Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 2 Aug 2026 06:25:56 -0500 Subject: [PATCH 19/60] Move LogFileStream out of Logging.h The stream was declared static at namespace scope in the header, so every translation unit including Logging.h got its own unused copy. Only the copy in Logging.cpp is ever opened, so declare it there. Co-Authored-By: Claude Opus 5 --- components/omega/src/infra/Logging.cpp | 5 +++++ components/omega/src/infra/Logging.h | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/components/omega/src/infra/Logging.cpp b/components/omega/src/infra/Logging.cpp index b5603c8309f1..74830d9787c9 100644 --- a/components/omega/src/infra/Logging.cpp +++ b/components/omega/src/infra/Logging.cpp @@ -24,6 +24,11 @@ namespace OMEGA { +// Stream that holds the log file to which stdout and stderr are redirected. +// It must outlive the redirect, so it has static storage duration here rather +// than being a local of initLogging. +static std::ofstream LogFileStream; + //------------------------------------------------------------------------------ // Utility function to create a log message with prefix std::string diff --git a/components/omega/src/infra/Logging.h b/components/omega/src/infra/Logging.h index c07350b98a96..3447244199fc 100644 --- a/components/omega/src/infra/Logging.h +++ b/components/omega/src/infra/Logging.h @@ -173,7 +173,6 @@ class MachEnv; // Public variables used for logging const std::string OmegaDefaultLogfile = "omega.log"; ///< Default log filename -static std::ofstream LogFileStream; ///< Default log iostream /// Initializes Omega logging, including setting up which tasks will log /// and add redirection of stdout/stderr to log file. An empty LogFilePath From 9c757e92011a240cb1b9eec83ead612087fee6f1 Mon Sep 17 00:00:00 2001 From: Andrew Nolan Date: Fri, 24 Jul 2026 14:20:22 -0400 Subject: [PATCH 20/60] Add reconstruction stencil arrays to Decomp Read, redistribute, and translate NCellReconstructEdges and ReconstructStencilCell in Decomp like other mesh connectivity arrays. Ensures downstream code consumes already-local, halo-consistentindices Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- components/omega/src/base/Decomp.cpp | 311 +++++++++++++++++++--- components/omega/src/base/Decomp.h | 30 +++ components/omega/test/base/DecompTest.cpp | 34 +++ 3 files changed, 343 insertions(+), 32 deletions(-) diff --git a/components/omega/src/base/Decomp.cpp b/components/omega/src/base/Decomp.cpp index 6641eb935dc4..77e7ed6359d9 100644 --- a/components/omega/src/base/Decomp.cpp +++ b/components/omega/src/base/Decomp.cpp @@ -105,22 +105,27 @@ I4 srchVector(HostArray1DI4 InVector, // vector to search // These are initially read into a uniform linear distribution across MPI tasks // and redistributed later after the decomposition is complete. -void readMesh(const int MeshFileID, // file ID for open mesh file - const MachEnv *InEnv, // input machine environment for MPI layout - I4 &NCellsGlobal, // total number of cells - I4 &NEdgesGlobal, // total number of edges - I4 &NVerticesGlobal, // total number of vertices - I4 &MaxEdges, // max number of edges on a cell - I4 &MaxCellsOnEdge, // max number of cells sharing edge - I4 &VertexDegree, // number of cells/edges sharing vrtx - std::vector &CellsOnCellInit, // cell neighbors for each cell - std::vector &EdgesOnCellInit, // edge IDs for each cell edge - std::vector &VerticesOnCellInit, // vertices around each cell - std::vector &CellsOnEdgeInit, // cell IDs sharing edge - std::vector &EdgesOnEdgeInit, // all edges neighboring edge - std::vector &VerticesOnEdgeInit, // vertices on ends of edge - std::vector &CellsOnVertexInit, // cells meeting at each vrtx - std::vector &EdgesOnVertexInit // edges meeting at each vrtx +void readMesh( + const int MeshFileID, // file ID for open mesh file + const MachEnv *InEnv, // input machine environment for MPI layout + I4 &NCellsGlobal, // total number of cells + I4 &NEdgesGlobal, // total number of edges + I4 &NVerticesGlobal, // total number of vertices + I4 &MaxEdges, // max number of edges on a cell + I4 &MaxCellsOnEdge, // max number of cells sharing edge + I4 &VertexDegree, // number of cells/edges sharing vrtx + I4 &MaxEdges2, // twice max number of edges on a cell + bool &OnSphere, // true if mesh is spherical + std::vector &CellsOnCellInit, // cell neighbors for each cell + std::vector &EdgesOnCellInit, // edge IDs for each cell edge + std::vector &VerticesOnCellInit, // vertices around each cell + std::vector &CellsOnEdgeInit, // cell IDs sharing edge + std::vector &EdgesOnEdgeInit, // all edges neighboring edge + std::vector &VerticesOnEdgeInit, // vertices on ends of edge + std::vector &CellsOnVertexInit, // cells meeting at each vrtx + std::vector &EdgesOnVertexInit, // edges meeting at each vrtx + std::vector &NCellReconstructEdgesInit, // num stencil edges per cell + std::vector &ReconstructStencilCellInit // stencil edge IDs per cell ) { Error Err; // error code for IO calls @@ -205,7 +210,32 @@ void readMesh(const int MeshFileID, // file ID for open mesh file ABORT_ERROR("Decomp: Bad MaxCellsOnEdge/TWO ({}) read from file", MaxCellsOnEdge); } - I4 MaxEdgesOnEdge = 2 * MaxEdges; // 2*MaxCellsOnEdge + + DimName = "MaxEdges2"; + DimNameOld = "maxEdges2"; + I4 MaxEdges2ID; + Err = IO::getDimFromFile(MeshFileID, DimName, MaxEdges2ID, MaxEdges2); + if (Err.isFail()) { // dim not found, try again with older MPAS name + Err = IO::getDimFromFile(MeshFileID, DimNameOld, MaxEdges2ID, MaxEdges2); + CHECK_ERROR_ABORT(Err, "Decomp: error reading MaxEdges2"); + if (MaxEdges2 <= 0) + ABORT_ERROR("Decomp: Bad MaxEdges2 ({}) read from file", MaxEdges2); + } + I4 MaxEdgesOnEdge = MaxEdges2; // 2*MaxEdges, used below for + // EdgesOnEdge/WeightsOnEdge offsets + + // Determine whether the mesh is spherical or planar. This duplicates + // (temporarily) the OnSphere/on_a_sphere attribute parsing HorzMesh + // does via the full IOStream mechanism - here we just need a quick + // answer to decide whether the reconstruction stencil arrays (currently + // only generated for spherical meshes) are present in the file. + std::string OnSphereStr; + Err = IO::readMeta("OnSphere", OnSphereStr, MeshFileID, IO::GlobalID); + if (Err.isFail()) + Err = IO::readMeta("on_a_sphere", OnSphereStr, MeshFileID, IO::GlobalID); + std::transform(OnSphereStr.begin(), OnSphereStr.end(), OnSphereStr.begin(), + [](unsigned char c) { return std::tolower(c); }); + OnSphere = (OnSphereStr == "yes"); // Create the linear decompositions for parallel IO // Determine the size of each block, divided as evenly as possible @@ -276,16 +306,42 @@ void readMesh(const int MeshFileID, // file ID for open mesh file } // end loop VertexDegree } // end loop NVerticesLocal + // Offsets for the reconstruction stencil arrays. NCellReconstructEdges is + // a scalar per cell; ReconstructStencilCell is MaxEdges2-wide per cell. + // Both use the same linear cell chunking as the other XxOnCell arrays. + I4 OnCellSizeScalar = NCellsChunk; + I4 OnCellSize2 = NCellsChunk * MaxEdges2; + std::vector OnCellDimsScalar{NCellsGlobal}; + std::vector OnCellDims2{NCellsGlobal, MaxEdges2}; + std::vector OnCellOffsetScalar(OnCellSizeScalar, -1); + std::vector OnCellOffset2(OnCellSize2, -1); + for (int Cell = 0; Cell < NCellsLocal; ++Cell) { + I4 CellGlob = MyTask * NCellsChunk + Cell; + OnCellOffsetScalar[Cell] = CellGlob; + for (int Edge = 0; Edge < MaxEdges2; ++Edge) { + OnCellOffset2[Cell * MaxEdges2 + Edge] = CellGlob * MaxEdges2 + Edge; + } + } + // Create the parallel IO decompositions - IO::Rearranger Rearr = IO::RearrBox; - I4 OnCellDecomp = IO::createDecomp(IO::IOTypeI4, NDims, OnCellDims, - OnCellSize, OnCellOffset, Rearr); - I4 OnEdgeDecomp = IO::createDecomp(IO::IOTypeI4, NDims, OnEdgeDims, - OnEdgeSize, OnEdgeOffset, Rearr); - I4 OnEdgeDecomp2 = IO::createDecomp(IO::IOTypeI4, NDims, OnEdgeDims2, - OnEdgeSize2, OnEdgeOffset2, Rearr); - I4 OnVertexDecomp = IO::createDecomp(IO::IOTypeI4, NDims, OnVertexDims, - OnVertexSize, OnVertexOffset, Rearr); + IO::Rearranger Rearr = IO::RearrBox; + I4 OnCellDecomp = IO::createDecomp(IO::IOTypeI4, NDims, OnCellDims, + OnCellSize, OnCellOffset, Rearr); + I4 OnEdgeDecomp = IO::createDecomp(IO::IOTypeI4, NDims, OnEdgeDims, + OnEdgeSize, OnEdgeOffset, Rearr); + I4 OnEdgeDecomp2 = IO::createDecomp(IO::IOTypeI4, NDims, OnEdgeDims2, + OnEdgeSize2, OnEdgeOffset2, Rearr); + I4 OnVertexDecomp = IO::createDecomp(IO::IOTypeI4, NDims, OnVertexDims, + OnVertexSize, OnVertexOffset, Rearr); + I4 OnCellDecompScalar = -1; + I4 OnCellDecomp2 = -1; + if (OnSphere) { + OnCellDecompScalar = + IO::createDecomp(IO::IOTypeI4, 1, OnCellDimsScalar, OnCellSizeScalar, + OnCellOffsetScalar, Rearr); + OnCellDecomp2 = IO::createDecomp(IO::IOTypeI4, NDims, OnCellDims2, + OnCellSize2, OnCellOffset2, Rearr); + } // Now read the connectivity arrays. Try reading under the new Omega // name convention and the older MPAS mesh names. @@ -386,11 +442,37 @@ void readMesh(const int MeshFileID, // file ID for open mesh file CHECK_ERROR_ABORT(Err, "Decomp: error reading EdgesOnVertex"); } + // Vector reconstruction stencil - Omega-native fields, no legacy MPAS + // name to fall back on. These are mesh-dependent, precomputed as a + // preprocessing step (least-squares pseudo-inverse). Only spherical + // meshes currently have these fields, so require them only in that case. + if (OnSphere) { + NCellReconstructEdgesInit.resize(OnCellSizeScalar); + ReconstructStencilCellInit.resize(OnCellSize2); + + VarName = "NCellReconstructEdges"; + int NCellReconstructEdgesID; + Err = IO::readArray(&NCellReconstructEdgesInit[0], OnCellSizeScalar, + VarName, MeshFileID, OnCellDecompScalar, + NCellReconstructEdgesID); + CHECK_ERROR_ABORT(Err, "Decomp: error reading NCellReconstructEdges"); + + VarName = "ReconstructStencilCell"; + int ReconstructStencilCellID; + Err = IO::readArray(&ReconstructStencilCellInit[0], OnCellSize2, VarName, + MeshFileID, OnCellDecomp2, ReconstructStencilCellID); + CHECK_ERROR_ABORT(Err, "Decomp: error reading ReconstructStencilCell"); + } + // Initial decompositions are no longer needed so remove them now IO::destroyDecomp(OnCellDecomp); IO::destroyDecomp(OnEdgeDecomp); IO::destroyDecomp(OnEdgeDecomp2); IO::destroyDecomp(OnVertexDecomp); + if (OnSphere) { + IO::destroyDecomp(OnCellDecompScalar); + IO::destroyDecomp(OnCellDecomp2); + } } // end readMesh @@ -492,13 +574,16 @@ Decomp::Decomp( std::vector VerticesOnEdgeInit; std::vector CellsOnVertexInit; std::vector EdgesOnVertexInit; + std::vector NCellReconstructEdgesInit; + std::vector ReconstructStencilCellInit; HaloWidth = InHaloWidth; readMesh(FileID, InEnv, NCellsGlobal, NEdgesGlobal, NVerticesGlobal, - MaxEdges, MaxCellsOnEdge, VertexDegree, CellsOnCellInit, - EdgesOnCellInit, VerticesOnCellInit, CellsOnEdgeInit, - EdgesOnEdgeInit, VerticesOnEdgeInit, CellsOnVertexInit, - EdgesOnVertexInit); + MaxEdges, MaxCellsOnEdge, VertexDegree, MaxEdges2, OnSphere, + CellsOnCellInit, EdgesOnCellInit, VerticesOnCellInit, + CellsOnEdgeInit, EdgesOnEdgeInit, VerticesOnEdgeInit, + CellsOnVertexInit, EdgesOnVertexInit, NCellReconstructEdgesInit, + ReconstructStencilCellInit); // Close file IO::closeFile(FileID); @@ -546,6 +631,19 @@ Decomp::Decomp( VerticesOnCellInit); TimerFlag = Pacer::stop("Decomp rearrange cells", 2) && TimerFlag; + // Redistribute the vector reconstruction stencil arrays to the same + // final cell decomposition. This can happen as soon as CellID/CellLoc + // are finalized above - it does not participate in defining the + // decomposition itself, unlike CellsOnCellInit. Only spherical meshes + // currently have these arrays. + if (OnSphere) { + TimerFlag = + Pacer::start("Decomp rearrange recon stencil", 2) && TimerFlag; + rearrangeReconstructArrays(InEnv, NCellReconstructEdgesInit, + ReconstructStencilCellInit); + TimerFlag = Pacer::stop("Decomp rearrange recon stencil", 2) && TimerFlag; + } + // Partition the edges TimerFlag = Pacer::start("Decomp part edges", 2) && TimerFlag; partEdges(InEnv, CellsOnEdgeInit); @@ -632,6 +730,28 @@ Decomp::Decomp( } } + // ReconstructStencilCell - translated the same way as EdgesOnCell, but + // without compaction: column J must stay in place so it remains aligned + // with column J of ReconstructWeightsCell (read separately in HorzMesh). + // NCellReconstructEdgesH is a count, not an ID, and needs no translation. + // Only spherical meshes currently have this array. + if (OnSphere) { + for (int Cell = 0; Cell < NCellsSize; ++Cell) { + for (int Edge = 0; Edge < MaxEdges2; ++Edge) { + I4 GlobID = ReconstructStencilCellH(Cell, Edge); + auto it = GlobToLocEdge.find(GlobID); + I4 LocalAdd; + if (it != GlobToLocEdge.end()) { + LocalAdd = it->second; // retrieve map entry if exists + } else { + LocalAdd = NEdgesAll; // otherwise set to bndy/unknown address + GlobToLocEdge[GlobID] = NEdgesAll; // add an entry to map + } + ReconstructStencilCellH(Cell, Edge) = LocalAdd; + } + } + } + // VerticesOnCell for (int Cell = 0; Cell < NCellsSize; ++Cell) { for (int Vrtx = 0; Vrtx < MaxEdges; ++Vrtx) { @@ -759,8 +879,14 @@ Decomp::Decomp( CellsOnVertex = createDeviceMirrorCopy(CellsOnVertexH); EdgesOnVertex = createDeviceMirrorCopy(EdgesOnVertexH); - TimerFlag = Pacer::stop("Decomp construct device copy", 2) && TimerFlag; - TimerFlag = Pacer::stop("Decomp construct", 1) && TimerFlag; + + // Only spherical meshes currently have the reconstruction stencil arrays + if (OnSphere) { + NCellReconstructEdges = createDeviceMirrorCopy(NCellReconstructEdgesH); + ReconstructStencilCell = createDeviceMirrorCopy(ReconstructStencilCellH); + } + TimerFlag = Pacer::stop("Decomp construct device copy", 2) && TimerFlag; + TimerFlag = Pacer::stop("Decomp construct", 1) && TimerFlag; if (!TimerFlag) LOG_WARN("Decomp constructor: Error encounterd in timers"); } // end decomposition constructor @@ -2102,6 +2228,127 @@ void Decomp::rearrangeCellArrays( } // end function rearrangeCellArrays +//------------------------------------------------------------------------------ +// Redistribute the vector reconstruction stencil arrays (NCellReconstructEdges +// and ReconstructStencilCell) to the final cell decomposition. Follows the +// same linear-chunk broadcast/search pattern as rearrangeCellArrays, but - +// unlike EdgesOnCell - entries are copied verbatim without compaction: column +// J of ReconstructStencilCell must stay aligned with column J of +// ReconstructWeightsCell, which is read separately (and not reordered) in +// HorzMesh. On exit, ReconstructStencilCellH still holds global edge IDs +// (translation to local indices happens later, once GlobToLocEdge exists). + +void Decomp::rearrangeReconstructArrays( + const MachEnv *InEnv, //< [in] MachEnv for the new partition + const std::vector + &NCellReconstructEdgesInit, //< [in] num stencil edges per cell + const std::vector + &ReconstructStencilCellInit //< [in] stencil edge IDs per cell +) { + + bool TimerFlag = Pacer::start("rearrangeReconstructArrays", 3); + + // Extract some MPI information + MPI_Comm Comm = InEnv->getComm(); + I4 NumTasks = InEnv->getNumTasks(); + I4 MyTask = InEnv->getMyTask(); + + // Define the chunk sizes for the initial linear distribution - same + // chunking used for CellsOnCellInit etc in rearrangeCellArrays + I4 NCellsChunk = (NCellsGlobal - 1) / NumTasks + 1; + + // Buffer per cell holds the MaxEdges2 stencil entries plus the 1 count + I4 SizePerCell = MaxEdges2 + 1; + I4 BufSize = NCellsChunk * SizePerCell; + std::vector CellBuf(BufSize); + + // Create temporary arrays for holding the results. Initialize stencil + // entries to NEdgesGlobal+1 to denote a non-existent/padding entry - + // the same sentinel used (and already mapped in GlobToLocEdge) for + // EdgesOnCell. + HostArray2DI4 ReconstructStencilCellTmp("ReconstructStencilCell", NCellsSize, + MaxEdges2); + HostArray1DI4 NCellReconstructEdgesTmp("NCellReconstructEdges", NCellsSize); + deepCopy(ReconstructStencilCellTmp, NEdgesGlobal + 1); + deepCopy(NCellReconstructEdgesTmp, 0); + + // For each cell this task owns, determine the task and local address + // of the cell in the initial linear distribution (identical computation + // to rearrangeCellArrays - kept local/self-contained here rather than + // shared, matching the existing convention where rearrangeEdgeArrays and + // rearrangeVertexArrays each recompute their own Task/Add arrays too) + std::vector TaskInit(NCellsSize, NumTasks); + std::vector AddInit(NCellsSize, NCellsGlobal + 1); + for (int Cell = 0; Cell < NCellsAll; ++Cell) { + int GlobalID = CellIDH(Cell); // one-based + if (validCellID(GlobalID)) { + TaskInit[Cell] = (GlobalID - 1) / NCellsChunk; + AddInit[Cell] = GlobalID - 1 - TaskInit[Cell] * NCellsChunk; + } + } + + // Each task will broadcast the cells it owns in the initial linear + // distribution and all tasks will search their list of cells to determine + // entries it needs. + for (int ITask = 0; ITask < NumTasks; ++ITask) { + + TimerFlag = Pacer::start("rearrangeReconBcast", 3) && TimerFlag; + // If it is this task's turn to send, fill the buffer with the local + // chunk of both arrays. + if (MyTask == ITask) { // Fill buffer with local chunk + for (int Cell = 0; Cell < NCellsChunk; ++Cell) { + I4 BufAdd0 = Cell * SizePerCell; + CellBuf[BufAdd0] = NCellReconstructEdgesInit[Cell]; + for (int Edge = 0; Edge < MaxEdges2; ++Edge) { + I4 ArrayAdd = Cell * MaxEdges2 + Edge; + CellBuf[BufAdd0 + 1 + Edge] = + ReconstructStencilCellInit[ArrayAdd]; + } + } + } + Broadcast(CellBuf, InEnv, ITask); + TimerFlag = Pacer::stop("rearrangeReconBcast", 3) && TimerFlag; + + // For each cell needed locally, we can compute the task and address + // of the cell in the linear distribution and extract from the buffer + // if needed + + TimerFlag = Pacer::start("rearrangeReconSearch", 3) && TimerFlag; + for (int Cell = 0; Cell < NCellsAll; ++Cell) { + if (TaskInit[Cell] == ITask) { + if (AddInit[Cell] < NCellsGlobal + 1) { + + // Local cell needs the info so extract from the buffer into + // the local address. Unlike EdgesOnCell, we copy every slot + // verbatim in its original column position - no compaction - + // so the columns stay aligned with ReconstructWeightsCell. + I4 BufAdd0 = AddInit[Cell] * SizePerCell; + NCellReconstructEdgesTmp(Cell) = CellBuf[BufAdd0]; + for (int Edge = 0; Edge < MaxEdges2; ++Edge) { + I4 NbrEdge = CellBuf[BufAdd0 + 1 + Edge]; + if (validEdgeID(NbrEdge)) { + ReconstructStencilCellTmp(Cell, Edge) = NbrEdge; + } else { + ReconstructStencilCellTmp(Cell, Edge) = NEdgesGlobal + 1; + } + } + } + } + } + TimerFlag = Pacer::stop("rearrangeReconSearch", 3) && TimerFlag; + } // end loop over MPI tasks + + // Copy to final location on host - wait to create device copies until + // the entries are translated to local addresses rather than global IDs + ReconstructStencilCellH = ReconstructStencilCellTmp; + NCellReconstructEdgesH = NCellReconstructEdgesTmp; + + // All done + TimerFlag = Pacer::stop("rearrangeReconstructArrays", 3) && TimerFlag; + return; + +} // end function rearrangeReconstructArrays + //------------------------------------------------------------------------------ // Redistribute the various XxOnEdge index arrays to the final edge // decomposition. The inputs are the various XxOnEdge arrays in the diff --git a/components/omega/src/base/Decomp.h b/components/omega/src/base/Decomp.h index 1e98ef34cd9d..1941318f3f8c 100644 --- a/components/omega/src/base/Decomp.h +++ b/components/omega/src/base/Decomp.h @@ -140,6 +140,21 @@ class Decomp { const std::vector &VerticesOnCellInit ///< [in] vertices around cell ); + /// Redistribute the vector reconstruction stencil arrays + /// (NCellReconstructEdges, ReconstructStencilCell) to the final cell + /// decomposition. Unlike rearrangeCellArrays, entries are copied verbatim + /// (no compaction of unused/padded slots) because ReconstructStencilCell + /// columns are positionally paired with the ReconstructWeightsCell array + /// read separately in HorzMesh. Must be called after rearrangeCellArrays + /// has established CellID/CellLoc for the final partition. + void rearrangeReconstructArrays( + const MachEnv *InEnv, ///< [in] MachEnv for the new partition + const std::vector + &NCellReconstructEdgesInit, ///< [in] num stencil edges per cell + const std::vector + &ReconstructStencilCellInit ///< [in] stencil edge IDs per cell + ); + /// Redistribute the various XxOnEdge index arrays to the final edge /// decomposition. The inputs are the various XxOnEdge arrays in the /// initial linear distribution. On exit, all the XxOnEdge arrays are @@ -193,6 +208,7 @@ class Decomp { I4 NCellsAll; ///< Total number of local cells (owned + all halo) I4 NCellsSize; ///< Array size (incl padding, bndy cell) for cell arrays I4 MaxEdges; ///< Max number of edges around a cell + I4 MaxEdges2; ///< Twice max number of edges (2-edge-wide stencils) Array1DI4 NCellsHalo; ///< num cells owned+halo for halo layer HostArray1DI4 NCellsHaloH; ///< num cells owned+halo for halo layer @@ -259,6 +275,20 @@ class Decomp { Array2DI4 EdgesOnVertex; ///< Indx of edges sharing vertex as endpoint HostArray2DI4 EdgesOnVertexH; ///< Indx of edges sharing vertex as endpoint + // Vector reconstruction stencil (mesh-dependent, precomputed and stored + // in the mesh file - see HorzMesh for the paired ReconstructWeightsCell) + + bool OnSphere; ///< true if mesh is spherical (temporary local read of + ///< the OnSphere attribute - only spherical meshes + ///< currently have the reconstruction stencil below) + + Array1DI4 NCellReconstructEdges; ///< Num of edges in reconstruction stencil + HostArray1DI4 + NCellReconstructEdgesH; ///< Num of edges in reconstruction stencil + + Array2DI4 ReconstructStencilCell; ///< Local edge indices in the stencil + HostArray2DI4 ReconstructStencilCellH; ///< Local edge indices in the stencil + // Methods /// Initializes Omega decomposition info and creates the default diff --git a/components/omega/test/base/DecompTest.cpp b/components/omega/test/base/DecompTest.cpp index 96c0bc38cd16..9fda1ffc1fb7 100644 --- a/components/omega/test/base/DecompTest.cpp +++ b/components/omega/test/base/DecompTest.cpp @@ -85,6 +85,7 @@ int main(int argc, char *argv[]) { I4 NCellsOwned = DefDecomp->NCellsOwned; I4 NEdgesGlobal = DefDecomp->NEdgesGlobal; I4 NEdgesOwned = DefDecomp->NEdgesOwned; + I4 NEdgesAll = DefDecomp->NEdgesAll; I4 NVerticesGlobal = DefDecomp->NVerticesGlobal; I4 NVerticesOwned = DefDecomp->NVerticesOwned; @@ -126,6 +127,39 @@ int main(int argc, char *argv[]) { ABORT_ERROR("DecompTest: Sum vertex ID test FAIL {} {}", SumVertices, RefSumVertices); + // Test the vector-reconstruction stencil arrays (spherical meshes + // only): each owned cell's count is in range, active entries are + // resolvable local edges, and padding columns carry the NEdgesAll + // sentinel (confirms no compaction, so columns stay aligned with + // ReconstructWeightsCell). + if (DefDecomp->OnSphere) { + I4 MaxEdges2 = DefDecomp->MaxEdges2; + HostArray1DI4 NCellReconstructEdgesH = + DefDecomp->NCellReconstructEdgesH; + HostArray2DI4 ReconstructStencilCellH = + DefDecomp->ReconstructStencilCellH; + I4 LocalReconErrors = 0; + for (int Cell = 0; Cell < NCellsOwned; ++Cell) { + I4 NStencil = NCellReconstructEdgesH(Cell); + if (NStencil <= 0 || NStencil > MaxEdges2) + ++LocalReconErrors; + for (int J = 0; J < MaxEdges2; ++J) { + I4 StencilEdge = ReconstructStencilCellH(Cell, J); + if (J < NStencil) { + if (StencilEdge < 0 || StencilEdge > NEdgesAll) + ++LocalReconErrors; + } else if (StencilEdge != NEdgesAll) { + ++LocalReconErrors; + } + } + } + I4 ReconErrors = globalSum(LocalReconErrors, Comm); + if (ReconErrors != 0) + ABORT_ERROR("DecompTest: ReconstructStencilCell consistency " + "test FAIL {}", + ReconErrors); + } + // Clean up Decomp::clear(); MachEnv::removeAll(); From 58e51fbc09122c8d30aa2e79ebeb50849a9c4bd9 Mon Sep 17 00:00:00 2001 From: Andrew Nolan Date: Fri, 24 Jul 2026 16:33:38 -0400 Subject: [PATCH 21/60] Conditionally read Weights in HorzMesh --- components/omega/src/ocn/HorzMesh.cpp | 113 ++++++++++++++++++++------ components/omega/src/ocn/HorzMesh.h | 10 +++ 2 files changed, 98 insertions(+), 25 deletions(-) diff --git a/components/omega/src/ocn/HorzMesh.cpp b/components/omega/src/ocn/HorzMesh.cpp index bb8b909aad42..f20cfffebb50 100644 --- a/components/omega/src/ocn/HorzMesh.cpp +++ b/components/omega/src/ocn/HorzMesh.cpp @@ -20,6 +20,8 @@ #include "IOStream.h" #include "OmegaKokkos.h" +#include + namespace OMEGA { // create the static class members @@ -69,7 +71,7 @@ HorzMesh::HorzMesh(const std::string &Name, //< [in] Name for new mesh NEdgesSize = MeshDecomp->NEdgesSize; MaxCellsOnEdge = MeshDecomp->MaxCellsOnEdge; MaxEdges = MeshDecomp->MaxEdges; - MaxEdges2 = 2 * MaxEdges; + MaxEdges2 = MeshDecomp->MaxEdges2; NEdgesGlobal = MeshDecomp->NEdgesGlobal; NVerticesHalo = MeshDecomp->NVerticesHalo; @@ -83,34 +85,48 @@ HorzMesh::HorzMesh(const std::string &Name, //< [in] Name for new mesh CellID = MeshDecomp->CellID; - CellsOnCellH = MeshDecomp->CellsOnCellH; - EdgesOnCellH = MeshDecomp->EdgesOnCellH; - NEdgesOnCellH = MeshDecomp->NEdgesOnCellH; - VerticesOnCellH = MeshDecomp->VerticesOnCellH; - CellsOnEdgeH = MeshDecomp->CellsOnEdgeH; - EdgesOnEdgeH = MeshDecomp->EdgesOnEdgeH; - NEdgesOnEdgeH = MeshDecomp->NEdgesOnEdgeH; - VerticesOnEdgeH = MeshDecomp->VerticesOnEdgeH; - CellsOnVertexH = MeshDecomp->CellsOnVertexH; - EdgesOnVertexH = MeshDecomp->EdgesOnVertexH; - - CellsOnCell = MeshDecomp->CellsOnCell; - EdgesOnCell = MeshDecomp->EdgesOnCell; - NEdgesOnCell = MeshDecomp->NEdgesOnCell; - VerticesOnCell = MeshDecomp->VerticesOnCell; - CellsOnEdge = MeshDecomp->CellsOnEdge; - EdgesOnEdge = MeshDecomp->EdgesOnEdge; - NEdgesOnEdge = MeshDecomp->NEdgesOnEdge; - VerticesOnEdge = MeshDecomp->VerticesOnEdge; - CellsOnVertex = MeshDecomp->CellsOnVertex; - EdgesOnVertex = MeshDecomp->EdgesOnVertex; + CellsOnCellH = MeshDecomp->CellsOnCellH; + EdgesOnCellH = MeshDecomp->EdgesOnCellH; + NEdgesOnCellH = MeshDecomp->NEdgesOnCellH; + VerticesOnCellH = MeshDecomp->VerticesOnCellH; + CellsOnEdgeH = MeshDecomp->CellsOnEdgeH; + EdgesOnEdgeH = MeshDecomp->EdgesOnEdgeH; + NEdgesOnEdgeH = MeshDecomp->NEdgesOnEdgeH; + VerticesOnEdgeH = MeshDecomp->VerticesOnEdgeH; + CellsOnVertexH = MeshDecomp->CellsOnVertexH; + EdgesOnVertexH = MeshDecomp->EdgesOnVertexH; + NCellReconstructEdgesH = MeshDecomp->NCellReconstructEdgesH; + ReconstructStencilCellH = MeshDecomp->ReconstructStencilCellH; + + CellsOnCell = MeshDecomp->CellsOnCell; + EdgesOnCell = MeshDecomp->EdgesOnCell; + NEdgesOnCell = MeshDecomp->NEdgesOnCell; + VerticesOnCell = MeshDecomp->VerticesOnCell; + CellsOnEdge = MeshDecomp->CellsOnEdge; + EdgesOnEdge = MeshDecomp->EdgesOnEdge; + NEdgesOnEdge = MeshDecomp->NEdgesOnEdge; + VerticesOnEdge = MeshDecomp->VerticesOnEdge; + CellsOnVertex = MeshDecomp->CellsOnVertex; + EdgesOnVertex = MeshDecomp->EdgesOnVertex; + NCellReconstructEdges = MeshDecomp->NCellReconstructEdges; + ReconstructStencilCell = MeshDecomp->ReconstructStencilCell; + + // OnSphere is needed early (before the mesh field definitions below) + // to decide whether to define the ReconstructWeightsCell field, so we + // use the value Decomp already read from the mesh file. It is + // redetermined below (with the rest of the sphere/plane attributes) + // once the full mesh stream is read, which is redundant but harmless + // since both come from the same file. + OnSphere = MeshDecomp->OnSphere; // Create Omega Dimensions associated with this mesh createDimensions(MeshDecomp); - // Allocate remaining device arrays and define all mesh fields for associated - // I/O and initialization. Equivalent host arrays will be allocated and - // initialized after the fields are filled on the device. + // Allocate remaining device arrays and define all mesh fields for + // associated I/O and initialization. Equivalent host arrays will be + // allocated and initialized after the fields are filled on the device. + // This must happen before the mesh stream is read below, since the + // read populates the arrays attached to these fields. defineMeshFields(); // Read the input mesh stream to fill most of the fields @@ -275,6 +291,8 @@ void HorzMesh::createDimensions(Decomp *MeshDecomp) { auto MaxEdgesDim = Dimension::create("MaxEdges2", MaxEdges2); if (!Dimension::exists("VertexDegree")) auto VertexDegreeDim = Dimension::create("VertexDegree", VertexDegree); + if (!Dimension::exists("R3")) + auto R3Dim = Dimension::create("R3", 3); // For distributed dimensions we need to compute offsets along each // dimension (the global offset at each local point with -1 for non-owned @@ -444,6 +462,19 @@ void HorzMesh::completeReadArrays() { HorzMeshHalo->exchangeFullArrayHalo(FCell, OnCell); HorzMeshHalo->exchangeFullArrayHalo(FEdge, OnEdge); HorzMeshHalo->exchangeFullArrayHalo(FVertex, OnVertex); + // ReconstructWeightsCell is (NCells, R3, MaxEdges2) to match the mesh + // file's on-disk dimension order. Halo's generic 3D exchange expects + // the mesh dimension in the middle (as in Tracers' [Tracer, Cell, + // Vert]), so exchange each R3 component as a 2D (Cell, MaxEdges2) + // slice instead of the full 3D array. + if (OnSphere) { + for (int IComp = 0; IComp < 3; ++IComp) { + auto ReconstructWeightsCellSlice = Kokkos::subview( + ReconstructWeightsCell, Kokkos::ALL, IComp, Kokkos::ALL); + HorzMeshHalo->exchangeFullArrayHalo(ReconstructWeightsCellSlice, + OnCell); + } + } // Create host copies XCellH = createHostMirrorCopy(XCell); @@ -472,6 +503,9 @@ void HorzMesh::completeReadArrays() { FCellH = createHostMirrorCopy(FCell); FEdgeH = createHostMirrorCopy(FEdge); FVertexH = createHostMirrorCopy(FVertex); + if (OnSphere) { + ReconstructWeightsCellH = createHostMirrorCopy(ReconstructWeightsCell); + } } // end completeReadArrays @@ -994,6 +1028,35 @@ void HorzMesh::defineMeshFields() { MeshGroupIn->addField(FieldName); Field::attachFieldData(FieldName, FCell); + if (OnSphere) { + // Vector Reconstruction + // NCellReconstructEdges/ReconstructStencilCell come from Decomp (see + // constructor), not read here. ReconstructWeightsCell is pure data and + // is read as a normal mesh field below. + NDims = 3; + DimNames.resize(NDims); + DimNames[0] = "NCells"; + DimNames[1] = "R3"; + DimNames[2] = "MaxEdges2"; + FieldName = "ReconstructWeightsCell"; + ReconstructWeightsCell = + Array3DReal("ReconstructWeightsCell", NCellsSize, 3, MaxEdges2); + auto ReconstructWeightsCellField = Field::create( + FieldName, // field name + "weights to reconstruct Cartesian vector field from edge-" + "normal values at cell centers", // long name + "", // units + "", // CF standard name + std::numeric_limits::min(), // min valid value + std::numeric_limits::max(), // max valid value + NDims, // num of dimensions + DimNames, // dimension names + false // not time dependent + ); + MeshGroupIn->addField(FieldName); + Field::attachFieldData(FieldName, ReconstructWeightsCell); + } + // The sign and scaling fields are computed internally so are allocated // here. Because they are not read from a file or typically written to a // file, we do not create field metadata, though the definitions are diff --git a/components/omega/src/ocn/HorzMesh.h b/components/omega/src/ocn/HorzMesh.h index 66617f629fc7..0762308567d0 100644 --- a/components/omega/src/ocn/HorzMesh.h +++ b/components/omega/src/ocn/HorzMesh.h @@ -254,6 +254,16 @@ class HorzMesh { Array1DReal MeshScalingDel4; /// Coef to biharmonic mixing terms HostArray1DReal MeshScalingDel4H; /// Coef to biharmonic mixing terms + // Vector reconstruction + Array1DI4 NCellReconstructEdges; /// Num of edges used in stencil + HostArray1DI4 NCellReconstructEdgesH; /// Num of edges used in stencil + + Array2DI4 ReconstructStencilCell; /// Two edge wide stencil + HostArray2DI4 ReconstructStencilCellH; /// Two edge wide stencil + + Array3DReal ReconstructWeightsCell; /// Least Squares Weights + HostArray3DReal ReconstructWeightsCellH; /// Least Squares Weights + // Methods /// Initialize Omega local mesh and create default mesh From 2c19a1d6c2a710f480b2d912e63e964d5fc2e882 Mon Sep 17 00:00:00 2001 From: Andrew Nolan Date: Fri, 24 Jul 2026 19:52:06 -0400 Subject: [PATCH 22/60] Add VectorReconstructOnCell opeator and unit test Currently only supporting single level fields and returning local geographic vector components. Further support will be added as needed. --- components/omega/src/ocn/HorzOperators.cpp | 13 +++ components/omega/src/ocn/HorzOperators.h | 45 +++++++++ .../omega/test/ocn/HorzOperatorsTest.cpp | 97 +++++++++++++++++-- components/omega/test/ocn/OceanTestCommon.h | 5 + 4 files changed, 150 insertions(+), 10 deletions(-) diff --git a/components/omega/src/ocn/HorzOperators.cpp b/components/omega/src/ocn/HorzOperators.cpp index a41bf2ed1985..a551cd50a651 100644 --- a/components/omega/src/ocn/HorzOperators.cpp +++ b/components/omega/src/ocn/HorzOperators.cpp @@ -1,5 +1,6 @@ #include "HorzOperators.h" #include "DataTypes.h" +#include "Error.h" #include "HorzMesh.h" #include "VertCoord.h" @@ -65,4 +66,16 @@ MasksAndCoefficients::MasksAndCoefficients( CellsOnEdge(Mesh->CellsOnEdge), DcEdge(Mesh->DcEdge), DvEdge(Mesh->DvEdge), AdvCoefs(AdvCoefs), AdvCoefs3rd(AdvCoefs3rd), BoundaryCell(VCoord->BoundaryCell), DerivTwo(DerivTwo) {} + +VectorReconstructOnCell::VectorReconstructOnCell(HorzMesh const *Mesh) + : OnSphere(Mesh->OnSphere), + NCellReconstructEdges(Mesh->NCellReconstructEdges), + ReconstructStencilCell(Mesh->ReconstructStencilCell), + ReconstructWeightsCell(Mesh->ReconstructWeightsCell), + LatCell(Mesh->LatCell), LonCell(Mesh->LonCell) { + if (!Mesh->OnSphere) + ABORT_ERROR("VectorReconstructOnCell: reconstruction stencil/weights " + "are only available for spherical meshes"); +} + } // namespace OMEGA diff --git a/components/omega/src/ocn/HorzOperators.h b/components/omega/src/ocn/HorzOperators.h index 70260564d873..c545a95c0c8e 100644 --- a/components/omega/src/ocn/HorzOperators.h +++ b/components/omega/src/ocn/HorzOperators.h @@ -652,5 +652,50 @@ class MasksAndCoefficients { Array2DReal BoundaryCell; Array3DReal DerivTwo; }; + +// Reconstruct edge normal vector field at cell centers +class VectorReconstructOnCell { + public: + VectorReconstructOnCell(HorzMesh const *Mesh); + // Currently only support computing Zonal/Meridional (X/Y) for + // spherical (planar) meshes on a single vertical layer + KOKKOS_FUNCTION void operator()(const Array1DReal &UReconstructX, + const Array1DReal &UReconstructY, int ICell, + const Array1DReal &VecEdge) const { + + Real Ux = 0._Real, Uy = 0._Real, Uz = 0._Real; + + for (int J = 0; J < NCellReconstructEdges(ICell); ++J) { + const I4 JEdge = ReconstructStencilCell(ICell, J); + const Real Field = VecEdge(JEdge); + + Ux += ReconstructWeightsCell(ICell, 0, J) * Field; + Uy += ReconstructWeightsCell(ICell, 1, J) * Field; + Uz += ReconstructWeightsCell(ICell, 2, J) * Field; + } + + if (OnSphere) { + const Real clat = Kokkos::cos(LatCell(ICell)); + const Real slat = Kokkos::sin(LatCell(ICell)); + const Real clon = Kokkos::cos(LonCell(ICell)); + const Real slon = Kokkos::sin(LonCell(ICell)); + + // cartesian to local geographic + UReconstructX(ICell) = -slon * Ux + clon * Uy; + UReconstructY(ICell) = -(clon * Ux + slon * Uy) * slat + Uz * clat; + } else { + UReconstructX(ICell) = Ux; + UReconstructY(ICell) = Uy; + } + } + + private: + bool OnSphere; + Array1DI4 NCellReconstructEdges; + Array2DI4 ReconstructStencilCell; + Array3DReal ReconstructWeightsCell; + Array1DReal LatCell; + Array1DReal LonCell; +}; } // namespace OMEGA #endif diff --git a/components/omega/test/ocn/HorzOperatorsTest.cpp b/components/omega/test/ocn/HorzOperatorsTest.cpp index dbefa58664e5..76b64cff29b6 100644 --- a/components/omega/test/ocn/HorzOperatorsTest.cpp +++ b/components/omega/test/ocn/HorzOperatorsTest.cpp @@ -31,14 +31,17 @@ struct TestSetupPlane { Real Lx = 1; Real Ly = SqrtThree / 2; - ErrorMeasures ExpectedDivErrors = {0.00124886886594427027, - 0.00124886886590974385}; - ErrorMeasures ExpectedGradErrors = {0.00125026071878537952, - 0.00134354611117262204}; - ErrorMeasures ExpectedCurlErrors = {0.161365663569699946, - 0.161348016897141039}; - ErrorMeasures ExpectedReconErrors = {0.00450897496974901352, - 0.00417367308684470691}; + ErrorMeasures ExpectedDivErrors = {0.00124886886594427027, + 0.00124886886590974385}; + ErrorMeasures ExpectedGradErrors = {0.00125026071878537952, + 0.00134354611117262204}; + ErrorMeasures ExpectedCurlErrors = {0.161365663569699946, + 0.161348016897141039}; + ErrorMeasures ExpectedReconErrors = {0.00450897496974901352, + 0.00417367308684470691}; + // vector reconstruction is spherical-only; unused placeholder kept only + // so the (untemplated) test function compiles for all TestSetup variants + ErrorMeasures ExpectedVectorReconErrors = {0.0, 0.0}; ErrorMeasures ExpectedAnisoInterpErrors = {0.0026762081503380526, 0.003058198461518835}; ErrorMeasures ExpectedIsoInterpErrors = {0.004279097382993937, @@ -88,6 +91,8 @@ struct TestSetupSphere1 { 0.025202095212756463}; ErrorMeasures ExpectedReconErrors = {0.0206375134079833517, 0.00692590524910695858}; + ErrorMeasures ExpectedVectorReconErrors = {0.003308078126087204, + 0.0029425911574823007}; ErrorMeasures ExpectedAnisoInterpErrors = {0.0024015775047603197, 0.0018490649516209202}; ErrorMeasures ExpectedIsoInterpErrors = {0.007438367234983312, @@ -138,6 +143,8 @@ struct TestSetupSphere2 { 0.00204725417666192042}; ErrorMeasures ExpectedReconErrors = {0.0254271921029878764, 0.00419630561428921064}; + ErrorMeasures ExpectedVectorReconErrors = {0.0006982813838413156, + 0.0006104530488293548}; ErrorMeasures ExpectedAnisoInterpErrors = {0.0014465229922953644, 0.001643777653612931}; ErrorMeasures ExpectedIsoInterpErrors = {0.004755875091568591, @@ -318,7 +325,7 @@ int testCurl(Real RTol) { return Err; } -int testRecon(Real RTol) { +int testTangentRecon(Real RTol) { int Err = 0; TestSetup Setup; @@ -368,6 +375,75 @@ int testRecon(Real RTol) { return Err; } +// Reconstructs the Cartesian vector field at cell centers from edge-normal +// values using the least-squares weights/stencil in the mesh and compares +// the magnitude of the reconstructed vector against the exact magnitude at +// cell centers. This currently only supports spherical meshes, so it is a +// no-op for planar meshes. +int testVectorReconstruction(Real RTol) { + int Err = 0; + + // Vector reconstruction weights/stencil are only available for spherical + // meshes (see VectorReconstructOnCell) + if constexpr (Geom != Geometry::Spherical) { + return Err; + } + + TestSetup Setup; + + const auto &Mesh = HorzMesh::getDefault(); + + // Prepare operator input: edge-normal component of the exact vector field + // (VectorReconstructOnCell currently only supports a single vertical + // layer, so we use rank-1 arrays here) + Array1DReal VecEdge("VecEdge", Mesh->NEdgesSize); + Err += setVectorEdge( + KOKKOS_LAMBDA(Real(&VecField)[2], Real Lon, Real Lat) { + VecField[0] = Setup.exactVecX(Lon, Lat); + VecField[1] = Setup.exactVecY(Lon, Lat); + }, + VecEdge, EdgeComponent::Normal, Geom, Mesh); + + // Compute exact magnitude of the vector field at cell centers + Array1DReal ExactMagCell("ExactMagCell", Mesh->NCellsOwned); + Err += setScalar( + KOKKOS_LAMBDA(Real Lon, Real Lat) { + return vecMagnitude(Setup.exactVecX(Lon, Lat), + Setup.exactVecY(Lon, Lat)); + }, + ExactMagCell, Geom, Mesh, OnCell, ExchangeHalos::No); + + // Compute numerical reconstruction at cell centers + Array1DReal UReconstructX("UReconstructX", Mesh->NCellsOwned); + Array1DReal UReconstructY("UReconstructY", Mesh->NCellsOwned); + VectorReconstructOnCell ReconstructCell(Mesh); + parallelFor( + {Mesh->NCellsOwned}, KOKKOS_LAMBDA(int ICell) { + ReconstructCell(UReconstructX, UReconstructY, ICell, VecEdge); + }); + + // Magnitude of the numerical reconstruction + Array1DReal NumMagCell("NumMagCell", Mesh->NCellsOwned); + parallelFor( + {Mesh->NCellsOwned}, KOKKOS_LAMBDA(int ICell) { + NumMagCell(ICell) = + vecMagnitude(UReconstructX(ICell), UReconstructY(ICell)); + }); + + // Compute error measures + ErrorMeasures ReconErrors; + Err += computeErrors(ReconErrors, NumMagCell, ExactMagCell, Mesh, OnCell); + // Check error values + Err += checkErrors("OperatorsTest", "VectorReconstruction", ReconErrors, + Setup.ExpectedVectorReconErrors, RTol); + + if (Err == 0) { + LOG_INFO("OperatorsTest: VectorReconstruction PASS"); + } + + return Err; +} + int testInterpCellToEdge(Real RTol) { int Err = 0; TestSetup Setup; @@ -979,7 +1055,8 @@ int operatorsTest(const std::string &MeshFile = DefaultMeshFile) { Err += testDivergence(RTol); Err += testGradient(RTol); Err += testCurl(RTol); - Err += testRecon(RTol); + Err += testTangentRecon(RTol); + Err += testVectorReconstruction(RTol); Err += testInterpCellToEdge(RTol); Err += testsecondderivativeoncellconstructor(RTol); Err += testsecondderivativeoncellDeterminePlanerPatchGeometry(RTol); diff --git a/components/omega/test/ocn/OceanTestCommon.h b/components/omega/test/ocn/OceanTestCommon.h index 15fa6d0f3bba..63f03d44a9db 100644 --- a/components/omega/test/ocn/OceanTestCommon.h +++ b/components/omega/test/ocn/OceanTestCommon.h @@ -63,6 +63,11 @@ KOKKOS_INLINE_FUNCTION void tangentVector(Real (&TanVec)[3], } } +// returns the magnitude of a 2D vector given its (X, Y) components +KOKKOS_INLINE_FUNCTION Real vecMagnitude(Real X, Real Y) { + return Kokkos::sqrt(X * X + Y * Y); +} + enum class EdgeComponent { Normal, Tangential }; enum class Geometry { Planar, Spherical }; enum class ExchangeHalos { Yes, No }; From 30a66e51a728ab65127f223f637dfba150030d00 Mon Sep 17 00:00:00 2001 From: Andrew Nolan Date: Sat, 25 Jul 2026 10:24:04 -0400 Subject: [PATCH 23/60] Update documentation --- components/omega/doc/devGuide/Decomp.md | 7 +++++++ components/omega/doc/devGuide/HorzOperators.md | 1 + components/omega/doc/userGuide/Decomp.md | 2 ++ components/omega/doc/userGuide/HorzMesh.md | 1 + components/omega/doc/userGuide/HorzOperators.md | 1 + 5 files changed, 12 insertions(+) diff --git a/components/omega/doc/devGuide/Decomp.md b/components/omega/doc/devGuide/Decomp.md index 3c4bfcf27351..8c6b8416b0f5 100644 --- a/components/omega/doc/devGuide/Decomp.md +++ b/components/omega/doc/devGuide/Decomp.md @@ -67,6 +67,7 @@ described in the mesh specification above. In particular, it contains - NCellsHalo(i): the number of owned+halo cells for each halo layer - Analogous size variables for Edges and Vertices - MaxEdges: the max number of edges on a cell (and array size) + - MaxEdges2: the max number of edges on a edge - VertexDegree: the number of cells/edges at each vertex - CellID(NCellsSize): the global index for each local cell - CellLoc(NCellsSize,2): the task and local index for every local cell @@ -86,6 +87,12 @@ described in the mesh specification above. In particular, it contains at a vertex - NEdgesOnCell(NCellsSize): the number of actual edges on each cell - NEdgesOnEdge(NEdgesSize): the number of actual edges on each edge + - NCellReconstructEdges(NCellsSize): number of edges in the vector + reconstruction stencil for each cell (spherical meshes only) + - ReconstructStencilCell(NCellsSize,MaxEdges2): edge indices in the + vector reconstruction stencil for each cell (spherical meshes only) + - OnSphere: whether the mesh is spherical, read from the mesh file to + gate the reconstruction stencil arrays above For each of the arrays above, there is a copy of the array on the host and device (GPU) with the host array named with an extra H on the end diff --git a/components/omega/doc/devGuide/HorzOperators.md b/components/omega/doc/devGuide/HorzOperators.md index 7eab2b7e1e85..570942591483 100644 --- a/components/omega/doc/devGuide/HorzOperators.md +++ b/components/omega/doc/devGuide/HorzOperators.md @@ -37,6 +37,7 @@ Currently, the following operators are implemented: - `GradientOnEdge` - `CurlOnVertex` - `TangentialReconOnEdge` +- `VectorReconstructOnCell` Some tendency terms in the Omega PDE solver could in principle be constructed using these operators as building blocks. However, very often tendency terms diff --git a/components/omega/doc/userGuide/Decomp.md b/components/omega/doc/userGuide/Decomp.md index 3ef0b3636f80..d19a0972cd39 100644 --- a/components/omega/doc/userGuide/Decomp.md +++ b/components/omega/doc/userGuide/Decomp.md @@ -39,6 +39,8 @@ An input mesh file must be provided that contains at a minimum - the total number of cells, edges and vertices (NCells, NEdges, NVertices) - the mesh connectivity contained in the arrays CellsOnCell, EdgesOnCell VerticesOnCell, CellsOnEdge, EdgesOnEdge, CellsOnVertex, EdgesOnVertex. +For spherical meshes, the vector reconstruction stencil arrays +NCellReconstructEdges and ReconstructStencilCell are also required. Again, a full description of the mesh is given in the [Developer's Guide](#omega-dev-decomp). The file name for this input file is extracted from the HorzMeshIn input diff --git a/components/omega/doc/userGuide/HorzMesh.md b/components/omega/doc/userGuide/HorzMesh.md index 475ff844b07a..5f04225b8001 100644 --- a/components/omega/doc/userGuide/HorzMesh.md +++ b/components/omega/doc/userGuide/HorzMesh.md @@ -54,6 +54,7 @@ variables: | AngleEdge | Angle the edge normal makes with local eastward direction | radians | | MeshDensity | Value of density function used to generate a particular mesh at cell centers | - | | WeightsOnEdge | Reconstruction weights associated with each of the edgesOnEdge | - | +| ReconstructWeightsCell | Least-squares weights for reconstructing an edge-normal vector field at cell centers; spherical meshes only | - | In addition, some mesh metadata are read from the file and stored as mesh variables. These include ``OnSphere`` (or ``on_a_sphere`` for backcompatibility), diff --git a/components/omega/doc/userGuide/HorzOperators.md b/components/omega/doc/userGuide/HorzOperators.md index 0b3d9a4a9bd5..f71cea1f20a8 100644 --- a/components/omega/doc/userGuide/HorzOperators.md +++ b/components/omega/doc/userGuide/HorzOperators.md @@ -15,5 +15,6 @@ The following operators are currently implemented: - `GradientOnEdge` - `CurlOnVertex` - `TangentialReconOnEdge` +- `VectorReconstructOnCell` There are no user-configurable options. From dd14249cd267b55481eb885e58ee6333a4c433ce Mon Sep 17 00:00:00 2001 From: Andrew Nolan Date: Mon, 27 Jul 2026 13:29:55 -0500 Subject: [PATCH 24/60] Update mesh paths All meshes now have `SurfacePressure` in them and spherical meshes now also have the reconstruction realted variable --- components/omega/doc/devGuide/QuickStart.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/components/omega/doc/devGuide/QuickStart.md b/components/omega/doc/devGuide/QuickStart.md index fc4d67bcbe9a..387823618c4c 100644 --- a/components/omega/doc/devGuide/QuickStart.md +++ b/components/omega/doc/devGuide/QuickStart.md @@ -124,14 +124,14 @@ Some tests require a valid Omega mesh file. Different tests require different meshes. At the moment, mesh files need to be copied or linked to specifically named files under the `test` directory. Appropriate mesh files can be downloaded from: -- [Ocean Mesh](https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/ocean.QU.240km.omega_vars.260518.nc) -- [Global Mesh](https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/cosine_bell_icos480.omega_vars.260518.nc) -- [Planar Mesh](https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/PlanarPeriodic48x48.omega_vars.260518.nc) +- [Ocean Mesh](https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/ocean.QU.240km.omega_vars.260727.nc) +- [Global Mesh](https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/cosine_bell_icos480.omega_vars.260727.nc) +- [Planar Mesh](https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/PlanarPeriodic48x48.omega_vars.260720.nc) ```sh cd test -wget -O OmegaMesh.nc https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/ocean.QU.240km.omega_vars.260518.nc -wget -O OmegaSphereMesh.nc https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/cosine_bell_icos480.omega_vars.260518.nc -wget -O OmegaPlanarMesh.nc https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/PlanarPeriodic48x48.omega_vars.260518.nc +wget -O OmegaMesh.nc https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/ocean.QU.240km.omega_vars.260727.nc +wget -O OmegaSphereMesh.nc https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/cosine_bell_icos480.omega_vars.260727.nc +wget -O OmegaPlanarMesh.nc https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/PlanarPeriodic48x48.omega_vars.260720.nc cd .. ``` From 954aa692a7dbe10452adb3bdd612bffae336d971 Mon Sep 17 00:00:00 2001 From: Andrew Nolan <32367657+andrewdnolan@users.noreply.github.com> Date: Thu, 30 Jul 2026 16:30:51 -0600 Subject: [PATCH 25/60] Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Maciej Waruszewski --- components/omega/src/base/Decomp.cpp | 4 +--- components/omega/src/ocn/HorzMesh.cpp | 16 ++++++++-------- components/omega/src/ocn/HorzOperators.h | 12 ++++++------ components/omega/test/base/DecompTest.cpp | 2 +- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/components/omega/src/base/Decomp.cpp b/components/omega/src/base/Decomp.cpp index 77e7ed6359d9..60a1d74cd023 100644 --- a/components/omega/src/base/Decomp.cpp +++ b/components/omega/src/base/Decomp.cpp @@ -730,9 +730,7 @@ Decomp::Decomp( } } - // ReconstructStencilCell - translated the same way as EdgesOnCell, but - // without compaction: column J must stay in place so it remains aligned - // with column J of ReconstructWeightsCell (read separately in HorzMesh). + // ReconstructStencilCell - translated the same way as EdgesOnCell // NCellReconstructEdgesH is a count, not an ID, and needs no translation. // Only spherical meshes currently have this array. if (OnSphere) { diff --git a/components/omega/src/ocn/HorzMesh.cpp b/components/omega/src/ocn/HorzMesh.cpp index f20cfffebb50..5d05681a4283 100644 --- a/components/omega/src/ocn/HorzMesh.cpp +++ b/components/omega/src/ocn/HorzMesh.cpp @@ -1044,14 +1044,14 @@ void HorzMesh::defineMeshFields() { auto ReconstructWeightsCellField = Field::create( FieldName, // field name "weights to reconstruct Cartesian vector field from edge-" - "normal values at cell centers", // long name - "", // units - "", // CF standard name - std::numeric_limits::min(), // min valid value - std::numeric_limits::max(), // max valid value - NDims, // num of dimensions - DimNames, // dimension names - false // not time dependent + "normal values at cell centers", // long name + "", // units + "", // CF standard name + std::numeric_limits::lowest(), // min valid value + std::numeric_limits::max(), // max valid value + NDims, // num of dimensions + DimNames, // dimension names + false // not time dependent ); MeshGroupIn->addField(FieldName); Field::attachFieldData(FieldName, ReconstructWeightsCell); diff --git a/components/omega/src/ocn/HorzOperators.h b/components/omega/src/ocn/HorzOperators.h index c545a95c0c8e..e7d88d3b3c7d 100644 --- a/components/omega/src/ocn/HorzOperators.h +++ b/components/omega/src/ocn/HorzOperators.h @@ -675,14 +675,14 @@ class VectorReconstructOnCell { } if (OnSphere) { - const Real clat = Kokkos::cos(LatCell(ICell)); - const Real slat = Kokkos::sin(LatCell(ICell)); - const Real clon = Kokkos::cos(LonCell(ICell)); - const Real slon = Kokkos::sin(LonCell(ICell)); + const Real CLat = Kokkos::cos(LatCell(ICell)); + const Real SLat = Kokkos::sin(LatCell(ICell)); + const Real CLon = Kokkos::cos(LonCell(ICell)); + const Real SLon = Kokkos::sin(LonCell(ICell)); // cartesian to local geographic - UReconstructX(ICell) = -slon * Ux + clon * Uy; - UReconstructY(ICell) = -(clon * Ux + slon * Uy) * slat + Uz * clat; + UReconstructX(ICell) = -SLon * Ux + CLon * Uy; + UReconstructY(ICell) = -(CLon * Ux + SLon * Uy) * SLat + Uz * CLat; } else { UReconstructX(ICell) = Ux; UReconstructY(ICell) = Uy; diff --git a/components/omega/test/base/DecompTest.cpp b/components/omega/test/base/DecompTest.cpp index 9fda1ffc1fb7..dd2a5785fcb4 100644 --- a/components/omega/test/base/DecompTest.cpp +++ b/components/omega/test/base/DecompTest.cpp @@ -146,7 +146,7 @@ int main(int argc, char *argv[]) { for (int J = 0; J < MaxEdges2; ++J) { I4 StencilEdge = ReconstructStencilCellH(Cell, J); if (J < NStencil) { - if (StencilEdge < 0 || StencilEdge > NEdgesAll) + if (StencilEdge < 0 || StencilEdge >= NEdgesAll) ++LocalReconErrors; } else if (StencilEdge != NEdgesAll) { ++LocalReconErrors; From 9891440b3997e32207dfb25f19840b1f88b29d03 Mon Sep 17 00:00:00 2001 From: Andrew Nolan Date: Wed, 5 Aug 2026 18:13:07 -0400 Subject: [PATCH 26/60] Fix variable names and rename Reconstruct to Recon --- components/omega/doc/devGuide/Decomp.md | 4 +- .../omega/doc/devGuide/HorzOperators.md | 2 +- components/omega/doc/userGuide/Decomp.md | 2 +- components/omega/doc/userGuide/HorzMesh.md | 2 +- .../omega/doc/userGuide/HorzOperators.md | 2 +- components/omega/src/base/Decomp.cpp | 116 +++++++++--------- components/omega/src/base/Decomp.h | 23 ++-- components/omega/src/ocn/HorzMesh.cpp | 75 ++++++----- components/omega/src/ocn/HorzMesh.h | 12 +- components/omega/src/ocn/HorzOperators.cpp | 13 +- components/omega/src/ocn/HorzOperators.h | 32 ++--- components/omega/test/base/DecompTest.cpp | 18 ++- .../omega/test/ocn/HorzOperatorsTest.cpp | 23 ++-- 13 files changed, 157 insertions(+), 167 deletions(-) diff --git a/components/omega/doc/devGuide/Decomp.md b/components/omega/doc/devGuide/Decomp.md index 8c6b8416b0f5..f0591ea70788 100644 --- a/components/omega/doc/devGuide/Decomp.md +++ b/components/omega/doc/devGuide/Decomp.md @@ -87,9 +87,9 @@ described in the mesh specification above. In particular, it contains at a vertex - NEdgesOnCell(NCellsSize): the number of actual edges on each cell - NEdgesOnEdge(NEdgesSize): the number of actual edges on each edge - - NCellReconstructEdges(NCellsSize): number of edges in the vector + - NEdgesReconOnCell(NCellsSize): number of edges in the vector reconstruction stencil for each cell (spherical meshes only) - - ReconstructStencilCell(NCellsSize,MaxEdges2): edge indices in the + - ReconStencilCell(NCellsSize,MaxEdges2): edge indices in the vector reconstruction stencil for each cell (spherical meshes only) - OnSphere: whether the mesh is spherical, read from the mesh file to gate the reconstruction stencil arrays above diff --git a/components/omega/doc/devGuide/HorzOperators.md b/components/omega/doc/devGuide/HorzOperators.md index 570942591483..82efa155117c 100644 --- a/components/omega/doc/devGuide/HorzOperators.md +++ b/components/omega/doc/devGuide/HorzOperators.md @@ -37,7 +37,7 @@ Currently, the following operators are implemented: - `GradientOnEdge` - `CurlOnVertex` - `TangentialReconOnEdge` -- `VectorReconstructOnCell` +- `VectorReconOnCell` Some tendency terms in the Omega PDE solver could in principle be constructed using these operators as building blocks. However, very often tendency terms diff --git a/components/omega/doc/userGuide/Decomp.md b/components/omega/doc/userGuide/Decomp.md index d19a0972cd39..938c368094ee 100644 --- a/components/omega/doc/userGuide/Decomp.md +++ b/components/omega/doc/userGuide/Decomp.md @@ -40,7 +40,7 @@ An input mesh file must be provided that contains at a minimum - the mesh connectivity contained in the arrays CellsOnCell, EdgesOnCell VerticesOnCell, CellsOnEdge, EdgesOnEdge, CellsOnVertex, EdgesOnVertex. For spherical meshes, the vector reconstruction stencil arrays -NCellReconstructEdges and ReconstructStencilCell are also required. +NEdgesReconOnCell and ReconStencilCell are also required. Again, a full description of the mesh is given in the [Developer's Guide](#omega-dev-decomp). The file name for this input file is extracted from the HorzMeshIn input diff --git a/components/omega/doc/userGuide/HorzMesh.md b/components/omega/doc/userGuide/HorzMesh.md index 5f04225b8001..d68b2236355d 100644 --- a/components/omega/doc/userGuide/HorzMesh.md +++ b/components/omega/doc/userGuide/HorzMesh.md @@ -54,7 +54,7 @@ variables: | AngleEdge | Angle the edge normal makes with local eastward direction | radians | | MeshDensity | Value of density function used to generate a particular mesh at cell centers | - | | WeightsOnEdge | Reconstruction weights associated with each of the edgesOnEdge | - | -| ReconstructWeightsCell | Least-squares weights for reconstructing an edge-normal vector field at cell centers; spherical meshes only | - | +| ReconWeightsCell | Least-squares weights for reconstructing an edge-normal vector field at cell centers; spherical meshes only | - | In addition, some mesh metadata are read from the file and stored as mesh variables. These include ``OnSphere`` (or ``on_a_sphere`` for backcompatibility), diff --git a/components/omega/doc/userGuide/HorzOperators.md b/components/omega/doc/userGuide/HorzOperators.md index f71cea1f20a8..671592981473 100644 --- a/components/omega/doc/userGuide/HorzOperators.md +++ b/components/omega/doc/userGuide/HorzOperators.md @@ -15,6 +15,6 @@ The following operators are currently implemented: - `GradientOnEdge` - `CurlOnVertex` - `TangentialReconOnEdge` -- `VectorReconstructOnCell` +- `VectorReconOnCell` There are no user-configurable options. diff --git a/components/omega/src/base/Decomp.cpp b/components/omega/src/base/Decomp.cpp index 60a1d74cd023..d891b3b1988b 100644 --- a/components/omega/src/base/Decomp.cpp +++ b/components/omega/src/base/Decomp.cpp @@ -116,16 +116,16 @@ void readMesh( I4 &VertexDegree, // number of cells/edges sharing vrtx I4 &MaxEdges2, // twice max number of edges on a cell bool &OnSphere, // true if mesh is spherical - std::vector &CellsOnCellInit, // cell neighbors for each cell - std::vector &EdgesOnCellInit, // edge IDs for each cell edge - std::vector &VerticesOnCellInit, // vertices around each cell - std::vector &CellsOnEdgeInit, // cell IDs sharing edge - std::vector &EdgesOnEdgeInit, // all edges neighboring edge - std::vector &VerticesOnEdgeInit, // vertices on ends of edge - std::vector &CellsOnVertexInit, // cells meeting at each vrtx - std::vector &EdgesOnVertexInit, // edges meeting at each vrtx - std::vector &NCellReconstructEdgesInit, // num stencil edges per cell - std::vector &ReconstructStencilCellInit // stencil edge IDs per cell + std::vector &CellsOnCellInit, // cell neighbors for each cell + std::vector &EdgesOnCellInit, // edge IDs for each cell edge + std::vector &VerticesOnCellInit, // vertices around each cell + std::vector &CellsOnEdgeInit, // cell IDs sharing edge + std::vector &EdgesOnEdgeInit, // all edges neighboring edge + std::vector &VerticesOnEdgeInit, // vertices on ends of edge + std::vector &CellsOnVertexInit, // cells meeting at each vrtx + std::vector &EdgesOnVertexInit, // edges meeting at each vrtx + std::vector &NEdgesReconOnCellInit, // num stencil edges per cell + std::vector &ReconStencilCellInit // stencil edge IDs per cell ) { Error Err; // error code for IO calls @@ -306,8 +306,8 @@ void readMesh( } // end loop VertexDegree } // end loop NVerticesLocal - // Offsets for the reconstruction stencil arrays. NCellReconstructEdges is - // a scalar per cell; ReconstructStencilCell is MaxEdges2-wide per cell. + // Offsets for the reconstruction stencil arrays. NEdgesReconOnCell is + // a scalar per cell; ReconStencilCell is MaxEdges2-wide per cell. // Both use the same linear cell chunking as the other XxOnCell arrays. I4 OnCellSizeScalar = NCellsChunk; I4 OnCellSize2 = NCellsChunk * MaxEdges2; @@ -447,20 +447,19 @@ void readMesh( // preprocessing step (least-squares pseudo-inverse). Only spherical // meshes currently have these fields, so require them only in that case. if (OnSphere) { - NCellReconstructEdgesInit.resize(OnCellSizeScalar); - ReconstructStencilCellInit.resize(OnCellSize2); + NEdgesReconOnCellInit.resize(OnCellSizeScalar); + ReconStencilCellInit.resize(OnCellSize2); VarName = "NCellReconstructEdges"; - int NCellReconstructEdgesID; - Err = IO::readArray(&NCellReconstructEdgesInit[0], OnCellSizeScalar, - VarName, MeshFileID, OnCellDecompScalar, - NCellReconstructEdgesID); + int NEdgesReconOnCellID; + Err = IO::readArray(&NEdgesReconOnCellInit[0], OnCellSizeScalar, VarName, + MeshFileID, OnCellDecompScalar, NEdgesReconOnCellID); CHECK_ERROR_ABORT(Err, "Decomp: error reading NCellReconstructEdges"); VarName = "ReconstructStencilCell"; - int ReconstructStencilCellID; - Err = IO::readArray(&ReconstructStencilCellInit[0], OnCellSize2, VarName, - MeshFileID, OnCellDecomp2, ReconstructStencilCellID); + int ReconStencilCellID; + Err = IO::readArray(&ReconStencilCellInit[0], OnCellSize2, VarName, + MeshFileID, OnCellDecomp2, ReconStencilCellID); CHECK_ERROR_ABORT(Err, "Decomp: error reading ReconstructStencilCell"); } @@ -574,16 +573,16 @@ Decomp::Decomp( std::vector VerticesOnEdgeInit; std::vector CellsOnVertexInit; std::vector EdgesOnVertexInit; - std::vector NCellReconstructEdgesInit; - std::vector ReconstructStencilCellInit; + std::vector NEdgesReconOnCellInit; + std::vector ReconStencilCellInit; HaloWidth = InHaloWidth; readMesh(FileID, InEnv, NCellsGlobal, NEdgesGlobal, NVerticesGlobal, MaxEdges, MaxCellsOnEdge, VertexDegree, MaxEdges2, OnSphere, CellsOnCellInit, EdgesOnCellInit, VerticesOnCellInit, CellsOnEdgeInit, EdgesOnEdgeInit, VerticesOnEdgeInit, - CellsOnVertexInit, EdgesOnVertexInit, NCellReconstructEdgesInit, - ReconstructStencilCellInit); + CellsOnVertexInit, EdgesOnVertexInit, NEdgesReconOnCellInit, + ReconStencilCellInit); // Close file IO::closeFile(FileID); @@ -639,8 +638,7 @@ Decomp::Decomp( if (OnSphere) { TimerFlag = Pacer::start("Decomp rearrange recon stencil", 2) && TimerFlag; - rearrangeReconstructArrays(InEnv, NCellReconstructEdgesInit, - ReconstructStencilCellInit); + rearrangeReconArrays(InEnv, NEdgesReconOnCellInit, ReconStencilCellInit); TimerFlag = Pacer::stop("Decomp rearrange recon stencil", 2) && TimerFlag; } @@ -730,13 +728,13 @@ Decomp::Decomp( } } - // ReconstructStencilCell - translated the same way as EdgesOnCell - // NCellReconstructEdgesH is a count, not an ID, and needs no translation. + // ReconStencilCell - translated the same way as EdgesOnCell + // NEdgeReconOnCellH is a count, not an ID, and needs no translation. // Only spherical meshes currently have this array. if (OnSphere) { for (int Cell = 0; Cell < NCellsSize; ++Cell) { for (int Edge = 0; Edge < MaxEdges2; ++Edge) { - I4 GlobID = ReconstructStencilCellH(Cell, Edge); + I4 GlobID = ReconStencilCellH(Cell, Edge); auto it = GlobToLocEdge.find(GlobID); I4 LocalAdd; if (it != GlobToLocEdge.end()) { @@ -745,7 +743,7 @@ Decomp::Decomp( LocalAdd = NEdgesAll; // otherwise set to bndy/unknown address GlobToLocEdge[GlobID] = NEdgesAll; // add an entry to map } - ReconstructStencilCellH(Cell, Edge) = LocalAdd; + ReconStencilCellH(Cell, Edge) = LocalAdd; } } } @@ -880,8 +878,8 @@ Decomp::Decomp( // Only spherical meshes currently have the reconstruction stencil arrays if (OnSphere) { - NCellReconstructEdges = createDeviceMirrorCopy(NCellReconstructEdgesH); - ReconstructStencilCell = createDeviceMirrorCopy(ReconstructStencilCellH); + NEdgesReconOnCell = createDeviceMirrorCopy(NEdgesReconOnCellH); + ReconStencilCell = createDeviceMirrorCopy(ReconStencilCellH); } TimerFlag = Pacer::stop("Decomp construct device copy", 2) && TimerFlag; TimerFlag = Pacer::stop("Decomp construct", 1) && TimerFlag; @@ -2227,24 +2225,24 @@ void Decomp::rearrangeCellArrays( } // end function rearrangeCellArrays //------------------------------------------------------------------------------ -// Redistribute the vector reconstruction stencil arrays (NCellReconstructEdges -// and ReconstructStencilCell) to the final cell decomposition. Follows the +// Redistribute the vector reconstruction stencil arrays (NEdgesReconOnCell +// and ReconStencilCell) to the final cell decomposition. Follows the // same linear-chunk broadcast/search pattern as rearrangeCellArrays, but - // unlike EdgesOnCell - entries are copied verbatim without compaction: column -// J of ReconstructStencilCell must stay aligned with column J of -// ReconstructWeightsCell, which is read separately (and not reordered) in -// HorzMesh. On exit, ReconstructStencilCellH still holds global edge IDs +// J of ReconStencilCell must stay aligned with column J of +// ReconWeightsCell, which is read separately (and not reordered) in +// HorzMesh. On exit, ReconStencilCellH still holds global edge IDs // (translation to local indices happens later, once GlobToLocEdge exists). -void Decomp::rearrangeReconstructArrays( +void Decomp::rearrangeReconArrays( const MachEnv *InEnv, //< [in] MachEnv for the new partition const std::vector - &NCellReconstructEdgesInit, //< [in] num stencil edges per cell + &NEdgesReconOnCellInit, //< [in] num stencil edges per cell const std::vector - &ReconstructStencilCellInit //< [in] stencil edge IDs per cell + &ReconStencilCellInit //< [in] stencil edge IDs per cell ) { - bool TimerFlag = Pacer::start("rearrangeReconstructArrays", 3); + bool TimerFlag = Pacer::start("rearrangeReconArrays", 3); // Extract some MPI information MPI_Comm Comm = InEnv->getComm(); @@ -2264,11 +2262,10 @@ void Decomp::rearrangeReconstructArrays( // entries to NEdgesGlobal+1 to denote a non-existent/padding entry - // the same sentinel used (and already mapped in GlobToLocEdge) for // EdgesOnCell. - HostArray2DI4 ReconstructStencilCellTmp("ReconstructStencilCell", NCellsSize, - MaxEdges2); - HostArray1DI4 NCellReconstructEdgesTmp("NCellReconstructEdges", NCellsSize); - deepCopy(ReconstructStencilCellTmp, NEdgesGlobal + 1); - deepCopy(NCellReconstructEdgesTmp, 0); + HostArray2DI4 ReconStencilCellTmp("ReconStencilCell", NCellsSize, MaxEdges2); + HostArray1DI4 NEdgesReconOnCellTmp("NEdgesReconOnCell", NCellsSize); + deepCopy(ReconStencilCellTmp, NEdgesGlobal + 1); + deepCopy(NEdgesReconOnCellTmp, 0); // For each cell this task owns, determine the task and local address // of the cell in the initial linear distribution (identical computation @@ -2296,11 +2293,10 @@ void Decomp::rearrangeReconstructArrays( if (MyTask == ITask) { // Fill buffer with local chunk for (int Cell = 0; Cell < NCellsChunk; ++Cell) { I4 BufAdd0 = Cell * SizePerCell; - CellBuf[BufAdd0] = NCellReconstructEdgesInit[Cell]; + CellBuf[BufAdd0] = NEdgesReconOnCellInit[Cell]; for (int Edge = 0; Edge < MaxEdges2; ++Edge) { - I4 ArrayAdd = Cell * MaxEdges2 + Edge; - CellBuf[BufAdd0 + 1 + Edge] = - ReconstructStencilCellInit[ArrayAdd]; + I4 ArrayAdd = Cell * MaxEdges2 + Edge; + CellBuf[BufAdd0 + 1 + Edge] = ReconStencilCellInit[ArrayAdd]; } } } @@ -2319,15 +2315,15 @@ void Decomp::rearrangeReconstructArrays( // Local cell needs the info so extract from the buffer into // the local address. Unlike EdgesOnCell, we copy every slot // verbatim in its original column position - no compaction - - // so the columns stay aligned with ReconstructWeightsCell. - I4 BufAdd0 = AddInit[Cell] * SizePerCell; - NCellReconstructEdgesTmp(Cell) = CellBuf[BufAdd0]; + // so the columns stay aligned with ReconWeightsCell. + I4 BufAdd0 = AddInit[Cell] * SizePerCell; + NEdgesReconOnCellTmp(Cell) = CellBuf[BufAdd0]; for (int Edge = 0; Edge < MaxEdges2; ++Edge) { I4 NbrEdge = CellBuf[BufAdd0 + 1 + Edge]; if (validEdgeID(NbrEdge)) { - ReconstructStencilCellTmp(Cell, Edge) = NbrEdge; + ReconStencilCellTmp(Cell, Edge) = NbrEdge; } else { - ReconstructStencilCellTmp(Cell, Edge) = NEdgesGlobal + 1; + ReconStencilCellTmp(Cell, Edge) = NEdgesGlobal + 1; } } } @@ -2338,14 +2334,14 @@ void Decomp::rearrangeReconstructArrays( // Copy to final location on host - wait to create device copies until // the entries are translated to local addresses rather than global IDs - ReconstructStencilCellH = ReconstructStencilCellTmp; - NCellReconstructEdgesH = NCellReconstructEdgesTmp; + ReconStencilCellH = ReconStencilCellTmp; + NEdgesReconOnCellH = NEdgesReconOnCellTmp; // All done - TimerFlag = Pacer::stop("rearrangeReconstructArrays", 3) && TimerFlag; + TimerFlag = Pacer::stop("rearrangeReconArrays", 3) && TimerFlag; return; -} // end function rearrangeReconstructArrays +} // end function rearrangeReconArrays //------------------------------------------------------------------------------ // Redistribute the various XxOnEdge index arrays to the final edge diff --git a/components/omega/src/base/Decomp.h b/components/omega/src/base/Decomp.h index 1941318f3f8c..47c7530fc5c5 100644 --- a/components/omega/src/base/Decomp.h +++ b/components/omega/src/base/Decomp.h @@ -141,18 +141,18 @@ class Decomp { ); /// Redistribute the vector reconstruction stencil arrays - /// (NCellReconstructEdges, ReconstructStencilCell) to the final cell + /// (NEdgesReconOnCell, ReconStencilCell) to the final cell /// decomposition. Unlike rearrangeCellArrays, entries are copied verbatim - /// (no compaction of unused/padded slots) because ReconstructStencilCell - /// columns are positionally paired with the ReconstructWeightsCell array + /// (no compaction of unused/padded slots) because ReconStencilCell + /// columns are positionally paired with the ReconWeightsCell array /// read separately in HorzMesh. Must be called after rearrangeCellArrays /// has established CellID/CellLoc for the final partition. - void rearrangeReconstructArrays( + void rearrangeReconArrays( const MachEnv *InEnv, ///< [in] MachEnv for the new partition const std::vector - &NCellReconstructEdgesInit, ///< [in] num stencil edges per cell + &NEdgesReconOnCellInit, ///< [in] num stencil edges per cell const std::vector - &ReconstructStencilCellInit ///< [in] stencil edge IDs per cell + &ReconStencilCellInit ///< [in] stencil edge IDs per cell ); /// Redistribute the various XxOnEdge index arrays to the final edge @@ -276,18 +276,17 @@ class Decomp { HostArray2DI4 EdgesOnVertexH; ///< Indx of edges sharing vertex as endpoint // Vector reconstruction stencil (mesh-dependent, precomputed and stored - // in the mesh file - see HorzMesh for the paired ReconstructWeightsCell) + // in the mesh file - see HorzMesh for the paired ReconWeightsCell) bool OnSphere; ///< true if mesh is spherical (temporary local read of ///< the OnSphere attribute - only spherical meshes ///< currently have the reconstruction stencil below) - Array1DI4 NCellReconstructEdges; ///< Num of edges in reconstruction stencil - HostArray1DI4 - NCellReconstructEdgesH; ///< Num of edges in reconstruction stencil + Array1DI4 NEdgesReconOnCell; ///< Num of edges in reconstruction stencil + HostArray1DI4 NEdgesReconOnCellH; ///< Num of edges in reconstruction stencil - Array2DI4 ReconstructStencilCell; ///< Local edge indices in the stencil - HostArray2DI4 ReconstructStencilCellH; ///< Local edge indices in the stencil + Array2DI4 ReconStencilCell; ///< Local edge indices in the stencil + HostArray2DI4 ReconStencilCellH; ///< Local edge indices in the stencil // Methods diff --git a/components/omega/src/ocn/HorzMesh.cpp b/components/omega/src/ocn/HorzMesh.cpp index 5d05681a4283..aa4d4c36076b 100644 --- a/components/omega/src/ocn/HorzMesh.cpp +++ b/components/omega/src/ocn/HorzMesh.cpp @@ -85,34 +85,34 @@ HorzMesh::HorzMesh(const std::string &Name, //< [in] Name for new mesh CellID = MeshDecomp->CellID; - CellsOnCellH = MeshDecomp->CellsOnCellH; - EdgesOnCellH = MeshDecomp->EdgesOnCellH; - NEdgesOnCellH = MeshDecomp->NEdgesOnCellH; - VerticesOnCellH = MeshDecomp->VerticesOnCellH; - CellsOnEdgeH = MeshDecomp->CellsOnEdgeH; - EdgesOnEdgeH = MeshDecomp->EdgesOnEdgeH; - NEdgesOnEdgeH = MeshDecomp->NEdgesOnEdgeH; - VerticesOnEdgeH = MeshDecomp->VerticesOnEdgeH; - CellsOnVertexH = MeshDecomp->CellsOnVertexH; - EdgesOnVertexH = MeshDecomp->EdgesOnVertexH; - NCellReconstructEdgesH = MeshDecomp->NCellReconstructEdgesH; - ReconstructStencilCellH = MeshDecomp->ReconstructStencilCellH; - - CellsOnCell = MeshDecomp->CellsOnCell; - EdgesOnCell = MeshDecomp->EdgesOnCell; - NEdgesOnCell = MeshDecomp->NEdgesOnCell; - VerticesOnCell = MeshDecomp->VerticesOnCell; - CellsOnEdge = MeshDecomp->CellsOnEdge; - EdgesOnEdge = MeshDecomp->EdgesOnEdge; - NEdgesOnEdge = MeshDecomp->NEdgesOnEdge; - VerticesOnEdge = MeshDecomp->VerticesOnEdge; - CellsOnVertex = MeshDecomp->CellsOnVertex; - EdgesOnVertex = MeshDecomp->EdgesOnVertex; - NCellReconstructEdges = MeshDecomp->NCellReconstructEdges; - ReconstructStencilCell = MeshDecomp->ReconstructStencilCell; + CellsOnCellH = MeshDecomp->CellsOnCellH; + EdgesOnCellH = MeshDecomp->EdgesOnCellH; + NEdgesOnCellH = MeshDecomp->NEdgesOnCellH; + VerticesOnCellH = MeshDecomp->VerticesOnCellH; + CellsOnEdgeH = MeshDecomp->CellsOnEdgeH; + EdgesOnEdgeH = MeshDecomp->EdgesOnEdgeH; + NEdgesOnEdgeH = MeshDecomp->NEdgesOnEdgeH; + VerticesOnEdgeH = MeshDecomp->VerticesOnEdgeH; + CellsOnVertexH = MeshDecomp->CellsOnVertexH; + EdgesOnVertexH = MeshDecomp->EdgesOnVertexH; + NEdgesReconOnCellH = MeshDecomp->NEdgesReconOnCellH; + ReconStencilCellH = MeshDecomp->ReconStencilCellH; + + CellsOnCell = MeshDecomp->CellsOnCell; + EdgesOnCell = MeshDecomp->EdgesOnCell; + NEdgesOnCell = MeshDecomp->NEdgesOnCell; + VerticesOnCell = MeshDecomp->VerticesOnCell; + CellsOnEdge = MeshDecomp->CellsOnEdge; + EdgesOnEdge = MeshDecomp->EdgesOnEdge; + NEdgesOnEdge = MeshDecomp->NEdgesOnEdge; + VerticesOnEdge = MeshDecomp->VerticesOnEdge; + CellsOnVertex = MeshDecomp->CellsOnVertex; + EdgesOnVertex = MeshDecomp->EdgesOnVertex; + NEdgesReconOnCell = MeshDecomp->NEdgesReconOnCell; + ReconStencilCell = MeshDecomp->ReconStencilCell; // OnSphere is needed early (before the mesh field definitions below) - // to decide whether to define the ReconstructWeightsCell field, so we + // to decide whether to define the ReconWeightsCell field, so we // use the value Decomp already read from the mesh file. It is // redetermined below (with the rest of the sphere/plane attributes) // once the full mesh stream is read, which is redundant but harmless @@ -462,17 +462,16 @@ void HorzMesh::completeReadArrays() { HorzMeshHalo->exchangeFullArrayHalo(FCell, OnCell); HorzMeshHalo->exchangeFullArrayHalo(FEdge, OnEdge); HorzMeshHalo->exchangeFullArrayHalo(FVertex, OnVertex); - // ReconstructWeightsCell is (NCells, R3, MaxEdges2) to match the mesh + // ReconWeightsCell is (NCells, R3, MaxEdges2) to match the mesh // file's on-disk dimension order. Halo's generic 3D exchange expects // the mesh dimension in the middle (as in Tracers' [Tracer, Cell, // Vert]), so exchange each R3 component as a 2D (Cell, MaxEdges2) // slice instead of the full 3D array. if (OnSphere) { for (int IComp = 0; IComp < 3; ++IComp) { - auto ReconstructWeightsCellSlice = Kokkos::subview( - ReconstructWeightsCell, Kokkos::ALL, IComp, Kokkos::ALL); - HorzMeshHalo->exchangeFullArrayHalo(ReconstructWeightsCellSlice, - OnCell); + auto ReconWeightsCellSlice = + Kokkos::subview(ReconWeightsCell, Kokkos::ALL, IComp, Kokkos::ALL); + HorzMeshHalo->exchangeFullArrayHalo(ReconWeightsCellSlice, OnCell); } } @@ -504,7 +503,7 @@ void HorzMesh::completeReadArrays() { FEdgeH = createHostMirrorCopy(FEdge); FVertexH = createHostMirrorCopy(FVertex); if (OnSphere) { - ReconstructWeightsCellH = createHostMirrorCopy(ReconstructWeightsCell); + ReconWeightsCellH = createHostMirrorCopy(ReconWeightsCell); } } // end completeReadArrays @@ -1030,8 +1029,8 @@ void HorzMesh::defineMeshFields() { if (OnSphere) { // Vector Reconstruction - // NCellReconstructEdges/ReconstructStencilCell come from Decomp (see - // constructor), not read here. ReconstructWeightsCell is pure data and + // NEdgesReconOnCell/ReconStencilCell come from Decomp (see + // constructor), not read here. ReconWeightsCell is pure data and // is read as a normal mesh field below. NDims = 3; DimNames.resize(NDims); @@ -1039,9 +1038,9 @@ void HorzMesh::defineMeshFields() { DimNames[1] = "R3"; DimNames[2] = "MaxEdges2"; FieldName = "ReconstructWeightsCell"; - ReconstructWeightsCell = - Array3DReal("ReconstructWeightsCell", NCellsSize, 3, MaxEdges2); - auto ReconstructWeightsCellField = Field::create( + ReconWeightsCell = + Array3DReal("ReconWeightsCell", NCellsSize, 3, MaxEdges2); + auto ReconWeightsCellField = Field::create( FieldName, // field name "weights to reconstruct Cartesian vector field from edge-" "normal values at cell centers", // long name @@ -1054,7 +1053,7 @@ void HorzMesh::defineMeshFields() { false // not time dependent ); MeshGroupIn->addField(FieldName); - Field::attachFieldData(FieldName, ReconstructWeightsCell); + Field::attachFieldData(FieldName, ReconWeightsCell); } // The sign and scaling fields are computed internally so are allocated diff --git a/components/omega/src/ocn/HorzMesh.h b/components/omega/src/ocn/HorzMesh.h index 0762308567d0..c9eb3f2f755b 100644 --- a/components/omega/src/ocn/HorzMesh.h +++ b/components/omega/src/ocn/HorzMesh.h @@ -255,14 +255,14 @@ class HorzMesh { HostArray1DReal MeshScalingDel4H; /// Coef to biharmonic mixing terms // Vector reconstruction - Array1DI4 NCellReconstructEdges; /// Num of edges used in stencil - HostArray1DI4 NCellReconstructEdgesH; /// Num of edges used in stencil + Array1DI4 NEdgesReconOnCell; /// Num of edges used in stencil + HostArray1DI4 NEdgesReconOnCellH; /// Num of edges used in stencil - Array2DI4 ReconstructStencilCell; /// Two edge wide stencil - HostArray2DI4 ReconstructStencilCellH; /// Two edge wide stencil + Array2DI4 ReconStencilCell; /// Two edge wide stencil + HostArray2DI4 ReconStencilCellH; /// Two edge wide stencil - Array3DReal ReconstructWeightsCell; /// Least Squares Weights - HostArray3DReal ReconstructWeightsCellH; /// Least Squares Weights + Array3DReal ReconWeightsCell; /// Least Squares Weights + HostArray3DReal ReconWeightsCellH; /// Least Squares Weights // Methods diff --git a/components/omega/src/ocn/HorzOperators.cpp b/components/omega/src/ocn/HorzOperators.cpp index a551cd50a651..a530e8254dd1 100644 --- a/components/omega/src/ocn/HorzOperators.cpp +++ b/components/omega/src/ocn/HorzOperators.cpp @@ -67,14 +67,13 @@ MasksAndCoefficients::MasksAndCoefficients( DvEdge(Mesh->DvEdge), AdvCoefs(AdvCoefs), AdvCoefs3rd(AdvCoefs3rd), BoundaryCell(VCoord->BoundaryCell), DerivTwo(DerivTwo) {} -VectorReconstructOnCell::VectorReconstructOnCell(HorzMesh const *Mesh) - : OnSphere(Mesh->OnSphere), - NCellReconstructEdges(Mesh->NCellReconstructEdges), - ReconstructStencilCell(Mesh->ReconstructStencilCell), - ReconstructWeightsCell(Mesh->ReconstructWeightsCell), - LatCell(Mesh->LatCell), LonCell(Mesh->LonCell) { +VectorReconOnCell::VectorReconOnCell(HorzMesh const *Mesh) + : OnSphere(Mesh->OnSphere), NEdgesReconOnCell(Mesh->NEdgesReconOnCell), + ReconStencilCell(Mesh->ReconStencilCell), + ReconWeightsCell(Mesh->ReconWeightsCell), LatCell(Mesh->LatCell), + LonCell(Mesh->LonCell) { if (!Mesh->OnSphere) - ABORT_ERROR("VectorReconstructOnCell: reconstruction stencil/weights " + ABORT_ERROR("VectorReconOnCell: reconstruction stencil/weights " "are only available for spherical meshes"); } diff --git a/components/omega/src/ocn/HorzOperators.h b/components/omega/src/ocn/HorzOperators.h index e7d88d3b3c7d..bcb96b12dcab 100644 --- a/components/omega/src/ocn/HorzOperators.h +++ b/components/omega/src/ocn/HorzOperators.h @@ -654,24 +654,24 @@ class MasksAndCoefficients { }; // Reconstruct edge normal vector field at cell centers -class VectorReconstructOnCell { +class VectorReconOnCell { public: - VectorReconstructOnCell(HorzMesh const *Mesh); + VectorReconOnCell(HorzMesh const *Mesh); // Currently only support computing Zonal/Meridional (X/Y) for // spherical (planar) meshes on a single vertical layer - KOKKOS_FUNCTION void operator()(const Array1DReal &UReconstructX, - const Array1DReal &UReconstructY, int ICell, + KOKKOS_FUNCTION void operator()(const Array1DReal &UReconX, + const Array1DReal &UReconY, int ICell, const Array1DReal &VecEdge) const { Real Ux = 0._Real, Uy = 0._Real, Uz = 0._Real; - for (int J = 0; J < NCellReconstructEdges(ICell); ++J) { - const I4 JEdge = ReconstructStencilCell(ICell, J); + for (int J = 0; J < NEdgesReconOnCell(ICell); ++J) { + const I4 JEdge = ReconStencilCell(ICell, J); const Real Field = VecEdge(JEdge); - Ux += ReconstructWeightsCell(ICell, 0, J) * Field; - Uy += ReconstructWeightsCell(ICell, 1, J) * Field; - Uz += ReconstructWeightsCell(ICell, 2, J) * Field; + Ux += ReconWeightsCell(ICell, 0, J) * Field; + Uy += ReconWeightsCell(ICell, 1, J) * Field; + Uz += ReconWeightsCell(ICell, 2, J) * Field; } if (OnSphere) { @@ -681,19 +681,19 @@ class VectorReconstructOnCell { const Real SLon = Kokkos::sin(LonCell(ICell)); // cartesian to local geographic - UReconstructX(ICell) = -SLon * Ux + CLon * Uy; - UReconstructY(ICell) = -(CLon * Ux + SLon * Uy) * SLat + Uz * CLat; + UReconX(ICell) = -SLon * Ux + CLon * Uy; + UReconY(ICell) = -(CLon * Ux + SLon * Uy) * SLat + Uz * CLat; } else { - UReconstructX(ICell) = Ux; - UReconstructY(ICell) = Uy; + UReconX(ICell) = Ux; + UReconY(ICell) = Uy; } } private: bool OnSphere; - Array1DI4 NCellReconstructEdges; - Array2DI4 ReconstructStencilCell; - Array3DReal ReconstructWeightsCell; + Array1DI4 NEdgesReconOnCell; + Array2DI4 ReconStencilCell; + Array3DReal ReconWeightsCell; Array1DReal LatCell; Array1DReal LonCell; }; diff --git a/components/omega/test/base/DecompTest.cpp b/components/omega/test/base/DecompTest.cpp index dd2a5785fcb4..930e87aa89a8 100644 --- a/components/omega/test/base/DecompTest.cpp +++ b/components/omega/test/base/DecompTest.cpp @@ -131,20 +131,18 @@ int main(int argc, char *argv[]) { // only): each owned cell's count is in range, active entries are // resolvable local edges, and padding columns carry the NEdgesAll // sentinel (confirms no compaction, so columns stay aligned with - // ReconstructWeightsCell). + // ReconWeightsCell). if (DefDecomp->OnSphere) { - I4 MaxEdges2 = DefDecomp->MaxEdges2; - HostArray1DI4 NCellReconstructEdgesH = - DefDecomp->NCellReconstructEdgesH; - HostArray2DI4 ReconstructStencilCellH = - DefDecomp->ReconstructStencilCellH; - I4 LocalReconErrors = 0; + I4 MaxEdges2 = DefDecomp->MaxEdges2; + HostArray1DI4 NEdgesReconOnCellH = DefDecomp->NEdgesReconOnCellH; + HostArray2DI4 ReconStencilCellH = DefDecomp->ReconStencilCellH; + I4 LocalReconErrors = 0; for (int Cell = 0; Cell < NCellsOwned; ++Cell) { - I4 NStencil = NCellReconstructEdgesH(Cell); + I4 NStencil = NEdgesReconOnCellH(Cell); if (NStencil <= 0 || NStencil > MaxEdges2) ++LocalReconErrors; for (int J = 0; J < MaxEdges2; ++J) { - I4 StencilEdge = ReconstructStencilCellH(Cell, J); + I4 StencilEdge = ReconStencilCellH(Cell, J); if (J < NStencil) { if (StencilEdge < 0 || StencilEdge >= NEdgesAll) ++LocalReconErrors; @@ -155,7 +153,7 @@ int main(int argc, char *argv[]) { } I4 ReconErrors = globalSum(LocalReconErrors, Comm); if (ReconErrors != 0) - ABORT_ERROR("DecompTest: ReconstructStencilCell consistency " + ABORT_ERROR("DecompTest: ReconStencilCell consistency " "test FAIL {}", ReconErrors); } diff --git a/components/omega/test/ocn/HorzOperatorsTest.cpp b/components/omega/test/ocn/HorzOperatorsTest.cpp index 76b64cff29b6..dee946324a3e 100644 --- a/components/omega/test/ocn/HorzOperatorsTest.cpp +++ b/components/omega/test/ocn/HorzOperatorsTest.cpp @@ -380,11 +380,11 @@ int testTangentRecon(Real RTol) { // the magnitude of the reconstructed vector against the exact magnitude at // cell centers. This currently only supports spherical meshes, so it is a // no-op for planar meshes. -int testVectorReconstruction(Real RTol) { +int testVectorRecon(Real RTol) { int Err = 0; // Vector reconstruction weights/stencil are only available for spherical - // meshes (see VectorReconstructOnCell) + // meshes (see VectorReconOnCell) if constexpr (Geom != Geometry::Spherical) { return Err; } @@ -394,7 +394,7 @@ int testVectorReconstruction(Real RTol) { const auto &Mesh = HorzMesh::getDefault(); // Prepare operator input: edge-normal component of the exact vector field - // (VectorReconstructOnCell currently only supports a single vertical + // (VectorReconOnCell currently only supports a single vertical // layer, so we use rank-1 arrays here) Array1DReal VecEdge("VecEdge", Mesh->NEdgesSize); Err += setVectorEdge( @@ -414,31 +414,30 @@ int testVectorReconstruction(Real RTol) { ExactMagCell, Geom, Mesh, OnCell, ExchangeHalos::No); // Compute numerical reconstruction at cell centers - Array1DReal UReconstructX("UReconstructX", Mesh->NCellsOwned); - Array1DReal UReconstructY("UReconstructY", Mesh->NCellsOwned); - VectorReconstructOnCell ReconstructCell(Mesh); + Array1DReal UReconX("UReconX", Mesh->NCellsOwned); + Array1DReal UReconY("UReconY", Mesh->NCellsOwned); + VectorReconOnCell ReconCell(Mesh); parallelFor( {Mesh->NCellsOwned}, KOKKOS_LAMBDA(int ICell) { - ReconstructCell(UReconstructX, UReconstructY, ICell, VecEdge); + ReconCell(UReconX, UReconY, ICell, VecEdge); }); // Magnitude of the numerical reconstruction Array1DReal NumMagCell("NumMagCell", Mesh->NCellsOwned); parallelFor( {Mesh->NCellsOwned}, KOKKOS_LAMBDA(int ICell) { - NumMagCell(ICell) = - vecMagnitude(UReconstructX(ICell), UReconstructY(ICell)); + NumMagCell(ICell) = vecMagnitude(UReconX(ICell), UReconY(ICell)); }); // Compute error measures ErrorMeasures ReconErrors; Err += computeErrors(ReconErrors, NumMagCell, ExactMagCell, Mesh, OnCell); // Check error values - Err += checkErrors("OperatorsTest", "VectorReconstruction", ReconErrors, + Err += checkErrors("OperatorsTest", "VectorRecon", ReconErrors, Setup.ExpectedVectorReconErrors, RTol); if (Err == 0) { - LOG_INFO("OperatorsTest: VectorReconstruction PASS"); + LOG_INFO("OperatorsTest: VectorRecon PASS"); } return Err; @@ -1056,7 +1055,7 @@ int operatorsTest(const std::string &MeshFile = DefaultMeshFile) { Err += testGradient(RTol); Err += testCurl(RTol); Err += testTangentRecon(RTol); - Err += testVectorReconstruction(RTol); + Err += testVectorRecon(RTol); Err += testInterpCellToEdge(RTol); Err += testsecondderivativeoncellconstructor(RTol); Err += testsecondderivativeoncellDeterminePlanerPatchGeometry(RTol); From 3aa767834ff65d02a2caf430ae3ec65f5ad85738 Mon Sep 17 00:00:00 2001 From: Andrew Nolan Date: Thu, 6 Aug 2026 19:25:02 -0400 Subject: [PATCH 27/60] Use new names when reading from mesh --- components/omega/src/base/Decomp.cpp | 8 ++++---- components/omega/src/ocn/HorzMesh.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/components/omega/src/base/Decomp.cpp b/components/omega/src/base/Decomp.cpp index d891b3b1988b..33e08de0126f 100644 --- a/components/omega/src/base/Decomp.cpp +++ b/components/omega/src/base/Decomp.cpp @@ -450,17 +450,17 @@ void readMesh( NEdgesReconOnCellInit.resize(OnCellSizeScalar); ReconStencilCellInit.resize(OnCellSize2); - VarName = "NCellReconstructEdges"; + VarName = "NEdgesReconOnCell"; int NEdgesReconOnCellID; Err = IO::readArray(&NEdgesReconOnCellInit[0], OnCellSizeScalar, VarName, MeshFileID, OnCellDecompScalar, NEdgesReconOnCellID); - CHECK_ERROR_ABORT(Err, "Decomp: error reading NCellReconstructEdges"); + CHECK_ERROR_ABORT(Err, "Decomp: error reading NEdgesReconOnCell"); - VarName = "ReconstructStencilCell"; + VarName = "ReconStencilCell"; int ReconStencilCellID; Err = IO::readArray(&ReconStencilCellInit[0], OnCellSize2, VarName, MeshFileID, OnCellDecomp2, ReconStencilCellID); - CHECK_ERROR_ABORT(Err, "Decomp: error reading ReconstructStencilCell"); + CHECK_ERROR_ABORT(Err, "Decomp: error reading ReconStencilCell"); } // Initial decompositions are no longer needed so remove them now diff --git a/components/omega/src/ocn/HorzMesh.cpp b/components/omega/src/ocn/HorzMesh.cpp index aa4d4c36076b..abb3bf08166e 100644 --- a/components/omega/src/ocn/HorzMesh.cpp +++ b/components/omega/src/ocn/HorzMesh.cpp @@ -1037,7 +1037,7 @@ void HorzMesh::defineMeshFields() { DimNames[0] = "NCells"; DimNames[1] = "R3"; DimNames[2] = "MaxEdges2"; - FieldName = "ReconstructWeightsCell"; + FieldName = "ReconWeightsCell"; ReconWeightsCell = Array3DReal("ReconWeightsCell", NCellsSize, 3, MaxEdges2); auto ReconWeightsCellField = Field::create( From 4f938eeae8a9faf31a6f97a0f983a00d968bd2b0 Mon Sep 17 00:00:00 2001 From: Andrew Nolan Date: Thu, 6 Aug 2026 19:47:15 -0400 Subject: [PATCH 28/60] Add clarifying comment to docs about MaxEdge2 --- components/omega/doc/devGuide/Decomp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/omega/doc/devGuide/Decomp.md b/components/omega/doc/devGuide/Decomp.md index f0591ea70788..9c02ada2f207 100644 --- a/components/omega/doc/devGuide/Decomp.md +++ b/components/omega/doc/devGuide/Decomp.md @@ -67,7 +67,7 @@ described in the mesh specification above. In particular, it contains - NCellsHalo(i): the number of owned+halo cells for each halo layer - Analogous size variables for Edges and Vertices - MaxEdges: the max number of edges on a cell (and array size) - - MaxEdges2: the max number of edges on a edge + - MaxEdges2: the max number of edges on a edge (2*MaxEdges) - VertexDegree: the number of cells/edges at each vertex - CellID(NCellsSize): the global index for each local cell - CellLoc(NCellsSize,2): the task and local index for every local cell From 3c340420fed5f1c4c47d2fe327e2fc51ecc345ae Mon Sep 17 00:00:00 2001 From: Andrew Nolan Date: Fri, 7 Aug 2026 19:34:27 -0400 Subject: [PATCH 29/60] Update mesh paths --- components/omega/cime_config/buildnml | 4 ++-- components/omega/doc/devGuide/QuickStart.md | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/components/omega/cime_config/buildnml b/components/omega/cime_config/buildnml index 4e940b0f8b4b..9f86189bdb26 100755 --- a/components/omega/cime_config/buildnml +++ b/components/omega/cime_config/buildnml @@ -163,10 +163,10 @@ def _get_file_name(case, stream): if ocn_grid == "oQU240": mesh_dir = omega_dir / "oQU240" - return str(mesh_dir / "ocean.QU.240km.151209.teos10.260720.nc") + return str(mesh_dir / "ocean.QU.240km.151209.teos10.260807.nc") elif ocn_grid == "EC30to60E2r2": mesh_dir = omega_dir / "EC30to60E2r2" - return str(mesh_dir / "ocean.EC30to60E2r2.200908.teos10.260720.nc") + return str(mesh_dir / "ocean.EC30to60E2r2.200908.teos10.260807.nc") else: msg = f"Unsupported OCN_GRID: {ocn_grid}" raise ValueError(msg) diff --git a/components/omega/doc/devGuide/QuickStart.md b/components/omega/doc/devGuide/QuickStart.md index 387823618c4c..38dd8e2475af 100644 --- a/components/omega/doc/devGuide/QuickStart.md +++ b/components/omega/doc/devGuide/QuickStart.md @@ -124,13 +124,13 @@ Some tests require a valid Omega mesh file. Different tests require different meshes. At the moment, mesh files need to be copied or linked to specifically named files under the `test` directory. Appropriate mesh files can be downloaded from: -- [Ocean Mesh](https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/ocean.QU.240km.omega_vars.260727.nc) -- [Global Mesh](https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/cosine_bell_icos480.omega_vars.260727.nc) +- [Ocean Mesh](https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/ocean.QU.240km.omega_vars.260807.nc) +- [Global Mesh](https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/cosine_bell_icos480.omega_vars.260807.nc) - [Planar Mesh](https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/PlanarPeriodic48x48.omega_vars.260720.nc) ```sh cd test -wget -O OmegaMesh.nc https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/ocean.QU.240km.omega_vars.260727.nc -wget -O OmegaSphereMesh.nc https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/cosine_bell_icos480.omega_vars.260727.nc +wget -O OmegaMesh.nc https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/ocean.QU.240km.omega_vars.260807.nc +wget -O OmegaSphereMesh.nc https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/cosine_bell_icos480.omega_vars.260807.nc wget -O OmegaPlanarMesh.nc https://web.lcrc.anl.gov/public/e3sm/polaris/ocean/omega_ctest/PlanarPeriodic48x48.omega_vars.260720.nc cd .. ``` From 240ef294f284cde8c4a44b94a4f66d90a51fb6cb Mon Sep 17 00:00:00 2001 From: Maciej Waruszewski Date: Fri, 7 Aug 2026 13:42:32 -0600 Subject: [PATCH 30/60] Simplify creation of Tendencies --- components/omega/src/ocn/Tendencies.cpp | 46 ++++++++++++++++++------- components/omega/src/ocn/Tendencies.h | 45 +++++++----------------- 2 files changed, 46 insertions(+), 45 deletions(-) diff --git a/components/omega/src/ocn/Tendencies.cpp b/components/omega/src/ocn/Tendencies.cpp index 38082d82c646..271a02a9ff7d 100644 --- a/components/omega/src/ocn/Tendencies.cpp +++ b/components/omega/src/ocn/Tendencies.cpp @@ -506,19 +506,39 @@ Tendencies::Tendencies(const std::string &Name_, ///< [in] Name for tendencies } // end constructor -Tendencies::Tendencies(const std::string &Name_, ///< [in] Name for tendencies - const HorzMesh *Mesh, ///< [in] Horizontal mesh - VertCoord *VCoord, ///< [in] Vertical coordinate - VertAdv *VAdv, ///< [in] Vertical advection - PressureGrad *PGrad, ///< [in] Pressure gradient - Eos *EqState, ///< [in] Equation of state - VertMix *VMix, ///< [in] Vertical mixing - int NTracersIn, ///< [in] Number of tracers - TimeInterval TimeStepIn, ///< [in] Time step - Config *Options) ///< [in] Configuration options - : Tendencies(Name_, Mesh, VCoord, VAdv, PGrad, EqState, VMix, NTracersIn, - TimeStepIn, Options, CustomTendencyType{}, - CustomTendencyType{}) {} +// Create a non-default group of tendencies +Tendencies *Tendencies::create(const std::string &Name, + const HorzMesh *Mesh, ///< [in] Horizontal mesh + VertCoord *VCoord, ///< [in] Vertical coordinate + VertAdv *VAdv, ///< [in] Vertical advection + PressureGrad *PGrad, ///< [in] Pressure gradient + Eos *EqState, ///< [in] Equation of state + VertMix *VMix, ///< [in] Vertical mixing + int NTracersIn, ///< [in] Number of tracers + TimeInterval TimeStep, ///< [in] Time step + Config *Options, ///< [in] Configuration options + CustomTendencyType CustomThicknessTend, + CustomTendencyType CustomVelocityTend) { + + // Check to see if tendencies of the same name already exist and + // if so, exit with an error + if (AllTendencies.find(Name) != AllTendencies.end()) { + LOG_ERROR("Attempted to create Tendencies with name {} but Tendencies of " + "that name already exists", + Name); + return nullptr; + } + + // create new tendencies on the heap and put it in a map of + // unique_ptrs, which will manage its lifetime + auto *NewTendencies = new Tendencies( + Name, Mesh, VCoord, VAdv, PGrad, EqState, VMix, NTracersIn, TimeStep, + Options, CustomThicknessTend, CustomVelocityTend); + + AllTendencies.emplace(Name, NewTendencies); + + return get(Name); +} //------------------------------------------------------------------------------ // Compute tendencies for the pseudo-thickness equation diff --git a/components/omega/src/ocn/Tendencies.h b/components/omega/src/ocn/Tendencies.h index 877ba22faf2b..c277547c9e62 100644 --- a/components/omega/src/ocn/Tendencies.h +++ b/components/omega/src/ocn/Tendencies.h @@ -119,26 +119,19 @@ class Tendencies { TimeInstant Time); // Create a non-default group of tendencies - template - static Tendencies *create(const std::string &Name, ArgTypes &&...Args) { - // Check to see if tendencies of the same name already exist and - // if so, exit with an error - if (AllTendencies.find(Name) != AllTendencies.end()) { - LOG_ERROR( - "Attempted to create Tendencies with name {} but Tendencies of " - "that name already exists", - Name); - return nullptr; - } - - // create new tendencies on the heap and put it in a map of - // unique_ptrs, which will manage its lifetime - auto *NewTendencies = - new Tendencies(Name, std::forward(Args)...); - AllTendencies.emplace(Name, NewTendencies); - - return get(Name); - } + static Tendencies * + create(const std::string &Name, ///< [in] Name for tendencies + const HorzMesh *Mesh, ///< [in] Horizontal mesh + VertCoord *VCoord, ///< [in] Vertical coordinate + VertAdv *VAdv, ///< [in] Vertical advection + PressureGrad *PGrad, ///< [in] Pressure gradient + Eos *EqState, ///< [in] Equation of state + VertMix *VMix, ///< [in] Vertical mixing + int NTracersIn, ///< [in] Number of tracers + TimeInterval TimeStep, ///< [in] Time step + Config *Options, ///< [in] Configuration options + CustomTendencyType CustomThicknessTend = CustomTendencyType{}, + CustomTendencyType CustomVelocityTend = CustomTendencyType{}); // Destructor ~Tendencies(); @@ -182,18 +175,6 @@ class Tendencies { CustomTendencyType InCustomThicknessTend, CustomTendencyType InCustomVelocityTend); - Tendencies(const std::string &Name, ///< [in] Name for tendencies - const HorzMesh *Mesh, ///< [in] Horizontal mesh - VertCoord *VCoord, ///< [in] Vertical coordinate - VertAdv *VAdv, ///< [in] Vertical advection - PressureGrad *PGrad, ///< [in] Pressure gradient - Eos *EqState, ///< [in] Equation of state - VertMix *VMix, ///< [in] Vertical mixing - int NTracersIn, ///< [in] Number of tracers - TimeInterval TimeStep, ///< [in] Time step - Config *Options ///< [in] Configuration options - ); - void defineFields(); // forbid copy and move construction From 42c1aa53965cadc6b278506bea5d24c72005cdb9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 7 Aug 2026 22:57:41 +0000 Subject: [PATCH 31/60] Update Tendencies documentation to reflect new create API Co-authored-by: mwarusz <5665111+mwarusz@users.noreply.github.com> --- components/omega/doc/devGuide/Tendencies.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/components/omega/doc/devGuide/Tendencies.md b/components/omega/doc/devGuide/Tendencies.md index 443e8e6ddcd5..e61471acb491 100644 --- a/components/omega/doc/devGuide/Tendencies.md +++ b/components/omega/doc/devGuide/Tendencies.md @@ -26,15 +26,21 @@ tendency terms, which each store constant mesh information as private member var ## Creation of non-default tendencies A non-default tendency group can be created with or without custom tendencies. -Without custom tendencies, it is created from a string `Name`, horizontal mesh `Mesh`, vertical coordinate `VCoord`, number of tracers `NTracers`, and a configuration `Options`: +Without custom tendencies, it is created from a string `Name`, horizontal mesh `Mesh`, +vertical coordinate `VCoord`, vertical advection `VAdv`, pressure gradient `PGrad`, +equation of state `EqState`, vertical mixing `VMix`, number of tracers `NTracers`, +time step `TimeStep`, and a configuration `Options`: ```c++ -OMEGA::Tendencies* NewTendencies = OMEGA::Tendencies::create(Name, Mesh, VCoord, NTracers, Options); +OMEGA::Tendencies* NewTendencies = OMEGA::Tendencies::create( + Name, Mesh, VCoord, VAdv, PGrad, EqState, VMix, NTracers, TimeStep, Options); ``` For convenience, this returns a pointer to the newly created instance. To allow the user to provide custom tendencies, the `create` function can take two additional arguments `CustomThicknessTend` and `CustomVelocityTend` ```c++ -OMEGA::Tendencies* NewTendencies = OMEGA::Tendencies::create(Name, Mesh, VCoord, NTracers, Options, CustomThicknessTend, CustomVelocityTend); +OMEGA::Tendencies* NewTendencies = OMEGA::Tendencies::create( + Name, Mesh, VCoord, VAdv, PGrad, EqState, VMix, NTracers, TimeStep, Options, + CustomThicknessTend, CustomVelocityTend); ``` The two custom tendency arguments need to be callable objects that take a Kokkos array `Tend`, ocean state `State`, auxiliary state `AuxState`, two integers: `ThickTimeLevel` and `VelTimeLevel`, and time instant `Time`. From e943b41f4971e3b2f4c76e9934d01a2c9080b0b9 Mon Sep 17 00:00:00 2001 From: Maciej Waruszewski Date: Fri, 7 Aug 2026 13:52:25 -0600 Subject: [PATCH 32/60] Check for null pointers in create and init methods Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> --- components/omega/src/analysis/Analysis.cpp | 22 +++++++-- .../omega/src/analysis/AnalysisOperator.cpp | 6 +++ components/omega/src/base/Decomp.cpp | 5 +++ components/omega/src/base/Halo.cpp | 10 ++++- components/omega/src/base/IO.cpp | 1 + components/omega/src/infra/IOStream.cpp | 7 +++ components/omega/src/ocn/AuxiliaryState.cpp | 32 +++++++++++-- .../omega/src/ocn/CustomTendencyTerms.cpp | 2 + components/omega/src/ocn/Eos.cpp | 10 ++++- components/omega/src/ocn/Forcing.cpp | 11 ++++- components/omega/src/ocn/HorzMesh.cpp | 10 +++++ components/omega/src/ocn/OceanInit.cpp | 11 +++-- components/omega/src/ocn/OceanState.cpp | 17 ++++++- components/omega/src/ocn/PGrad.cpp | 17 ++++++- components/omega/src/ocn/SfcCoupling.cpp | 14 +++++- components/omega/src/ocn/Tendencies.cpp | 45 ++++++++++++++++--- components/omega/src/ocn/Tracers.cpp | 7 ++- components/omega/src/ocn/VertAdv.cpp | 14 +++++- components/omega/src/ocn/VertCoord.cpp | 12 +++++ components/omega/src/ocn/VertMix.cpp | 10 ++++- .../omega/src/timeStepping/TimeStepper.cpp | 39 ++++++++++++++-- 21 files changed, 269 insertions(+), 33 deletions(-) diff --git a/components/omega/src/analysis/Analysis.cpp b/components/omega/src/analysis/Analysis.cpp index 3307079d530d..de062aa2dd55 100644 --- a/components/omega/src/analysis/Analysis.cpp +++ b/components/omega/src/analysis/Analysis.cpp @@ -64,12 +64,18 @@ void Analysis::init() { registerAllBaseAnalysisOperators(); // Retrieve default instances of required components - auto DefEnv = MachEnv::getDefault(); - auto Mesh = HorzMesh::getDefault(); - auto VCoord = VertCoord::getDefault(); + auto DefEnv = MachEnv::getDefault(); + OMEGA_REQUIRE(DefEnv, "Null default MachEnv pointer in Analysis::init"); + auto Mesh = HorzMesh::getDefault(); + OMEGA_REQUIRE(Mesh, "Null default HorzMesh pointer in Analysis::init"); + auto VCoord = VertCoord::getDefault(); + OMEGA_REQUIRE(VCoord, "Null default VertCoord pointer in Analysis::init"); auto DefTimeStepper = TimeStepper::getDefault(); + OMEGA_REQUIRE(DefTimeStepper, + "Null default TimeStepper pointer in Analysis::init"); Clock *OmegaClock = DefTimeStepper->getClock(); Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in Analysis::init"); // Create the default Analysis instance Analysis::DefAnalysis = @@ -87,6 +93,16 @@ Analysis *Analysis::create(const std::string &Name, const MachEnv *Env, const HorzMesh *Mesh, const VertCoord *VCoord, Clock *ModelClock, Config *Options) { + OMEGA_REQUIRE(Env, "Null MachEnv pointer in Analysis::create with Name = {}", + Name); + OMEGA_REQUIRE( + Mesh, "Null HorzMesh pointer in Analysis::create with Name = {}", Name); + OMEGA_REQUIRE(VCoord, + "Null VertCoord pointer in Analysis::create with Name = {}", + Name); + OMEGA_REQUIRE(ModelClock, + "Null Clock pointer in Analysis::create with Name = {}", Name); + // Check for duplicate names if (AllAnalysisObjects.find(Name) != AllAnalysisObjects.end()) { LOG_ERROR("Attempted to create an Analysis with name {} " diff --git a/components/omega/src/analysis/AnalysisOperator.cpp b/components/omega/src/analysis/AnalysisOperator.cpp index 9822292683c2..e59d0cfca43a 100644 --- a/components/omega/src/analysis/AnalysisOperator.cpp +++ b/components/omega/src/analysis/AnalysisOperator.cpp @@ -36,6 +36,12 @@ AnalysisOperator::AnalysisOperator(const std::string &OperatorType) { void AnalysisOperator::initialize(const MachEnv *Env, const HorzMesh *InMesh, const VertCoord *InVCoord, Config Options) { + OMEGA_REQUIRE(Env, "Null MachEnv pointer in AnalysisOperator::initialize"); + OMEGA_REQUIRE(InMesh, + "Null HorzMesh pointer in AnalysisOperator::initialize"); + OMEGA_REQUIRE(InVCoord, + "Null VertCoord pointer in AnalysisOperator::initialize"); + // Store pointers needed during compute() Mesh = InMesh; VCoord = InVCoord; diff --git a/components/omega/src/base/Decomp.cpp b/components/omega/src/base/Decomp.cpp index 33e08de0126f..c347a77d0feb 100644 --- a/components/omega/src/base/Decomp.cpp +++ b/components/omega/src/base/Decomp.cpp @@ -489,6 +489,7 @@ void Decomp::init(const std::string &InMeshFileName) { // Retrieve options from Config Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in Decomp::init"); Config DecompConfig("Decomp"); Err = OmegaConfig->get(DecompConfig); @@ -524,6 +525,7 @@ void Decomp::init(const std::string &InMeshFileName) { // Retrieve the default machine environment MachEnv *DefEnv = MachEnv::getDefault(); + OMEGA_REQUIRE(DefEnv, "Null default MachEnv pointer in Decomp::init"); // Use one partition per MPI task as the default I4 NParts = DefEnv->getNumTasks(); @@ -900,6 +902,9 @@ Decomp *Decomp::create( ) { bool TimerFlag = Pacer::start("Decomp create", 1); + OMEGA_REQUIRE(Env, "Null MachEnv pointer in Decomp::create with Name = {}", + Name); + // Check to see if a decomposition of the same name already exists and // if so, exit with an error if (AllDecomps.find(Name) != AllDecomps.end()) { diff --git a/components/omega/src/base/Halo.cpp b/components/omega/src/base/Halo.cpp index f79e30ad9f1b..52ffec475138 100644 --- a/components/omega/src/base/Halo.cpp +++ b/components/omega/src/base/Halo.cpp @@ -13,6 +13,7 @@ //===----------------------------------------------------------------------===// #include "Halo.h" +#include "Error.h" #include "mpi.h" #include #include @@ -134,8 +135,10 @@ int Halo::init() { I4 IErr{0}; // error code - MachEnv *DefEnv = MachEnv::getDefault(); + MachEnv *DefEnv = MachEnv::getDefault(); + OMEGA_REQUIRE(DefEnv, "Null default MachEnv pointer in Halo::init"); Decomp *DefDecomp = Decomp::getDefault(); + OMEGA_REQUIRE(DefDecomp, "Null default Decomp pointer in Halo::init"); Halo::DefaultHalo = create("Default", DefEnv, DefDecomp); @@ -204,6 +207,11 @@ Halo::Halo(const std::string &Name, const MachEnv *InEnv, /// map Halo *Halo::create(const std::string &Name, const MachEnv *Env, const Decomp *Decomp) { + OMEGA_REQUIRE(Env, "Null MachEnv pointer in Halo::create with Name = {}", + Name); + OMEGA_REQUIRE(Decomp, "Null Decomp pointer in Halo::create with Name = {}", + Name); + // Check to see if a halo of the same name already exists and // if so, exit with an error if (AllHalos.find(Name) != AllHalos.end()) { diff --git a/components/omega/src/base/IO.cpp b/components/omega/src/base/IO.cpp index 86454efcc334..86a6ef14be53 100644 --- a/components/omega/src/base/IO.cpp +++ b/components/omega/src/base/IO.cpp @@ -133,6 +133,7 @@ void init(const MPI_Comm &InComm // [in] MPI communicator to use Error Err; Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in IO::init"); // Read IO subconfiguration Config IOConfig("IO"); diff --git a/components/omega/src/infra/IOStream.cpp b/components/omega/src/infra/IOStream.cpp index 8417ac737350..2a1cca616766 100644 --- a/components/omega/src/infra/IOStream.cpp +++ b/components/omega/src/infra/IOStream.cpp @@ -45,8 +45,11 @@ void IOStream::init(Clock *&ModelClock //< [inout] Omega model clock Error Err; + OMEGA_REQUIRE(ModelClock, "Null ModelClock pointer in IOStream::init"); + // Retrieve the model configuration and get the streams sub-config Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in IOStream::init"); Config StreamsCfgAll("IOStreams"); Err = OmegaConfig->get(StreamsCfgAll); CHECK_ERROR_ABORT( @@ -389,6 +392,10 @@ void IOStream::create(const std::string &StreamName, //< [in] name of stream Error Err; // internal error code + OMEGA_REQUIRE(ModelClock, + "Null ModelClock pointer in IOStream::create with Name = {}", + StreamName); + // Check whether the stream already exists if (AllStreams.find(StreamName) != AllStreams.end()) ABORT_ERROR("IOStream: Attempt to create stream {} that already exists", diff --git a/components/omega/src/ocn/AuxiliaryState.cpp b/components/omega/src/ocn/AuxiliaryState.cpp index 7a332afcb053..9a37a0739d98 100644 --- a/components/omega/src/ocn/AuxiliaryState.cpp +++ b/components/omega/src/ocn/AuxiliaryState.cpp @@ -329,6 +329,19 @@ AuxiliaryState *AuxiliaryState::create(const std::string &Name, VertCoord *VCoord, VertAdv *VAdv, const int NTracers, TimeInterval TimeStep) { + OMEGA_REQUIRE( + Mesh, "Null HorzMesh pointer in AuxiliaryState::create with Name = {}", + Name); + OMEGA_REQUIRE(MeshHalo, + "Null Halo pointer in AuxiliaryState::create with Name = {}", + Name); + OMEGA_REQUIRE( + VCoord, + "Null VertCoord pointer in AuxiliaryState::create with Name = {}", Name); + OMEGA_REQUIRE( + VAdv, "Null VertAdv pointer in AuxiliaryState::create with Name = {}", + Name); + if (AllAuxStates.find(Name) != AllAuxStates.end()) { LOG_ERROR("Attempted to create a new AuxiliaryState with name {} but it " "already exists", @@ -346,11 +359,20 @@ AuxiliaryState *AuxiliaryState::create(const std::string &Name, // Create the default auxiliary state. Assumes that HorzMesh, VertCoord, // VertAdv, and Halo have been initialized. void AuxiliaryState::init() { - const HorzMesh *DefMesh = HorzMesh::getDefault(); - Halo *DefHalo = Halo::getDefault(); - VertCoord *DefVCoord = VertCoord::getDefault(); - VertAdv *DefVAdv = VertAdv::getDefault(); + const HorzMesh *DefMesh = HorzMesh::getDefault(); + OMEGA_REQUIRE(DefMesh, + "Null default HorzMesh pointer in AuxiliaryState::init"); + Halo *DefHalo = Halo::getDefault(); + OMEGA_REQUIRE(DefHalo, "Null default Halo pointer in AuxiliaryState::init"); + VertCoord *DefVCoord = VertCoord::getDefault(); + OMEGA_REQUIRE(DefVCoord, + "Null default VertCoord pointer in AuxiliaryState::init"); + VertAdv *DefVAdv = VertAdv::getDefault(); + OMEGA_REQUIRE(DefVAdv, + "Null default VertAdv pointer in AuxiliaryState::init"); const TimeStepper *DefTimeStepper = TimeStepper::getDefault(); + OMEGA_REQUIRE(DefTimeStepper, + "Null default TimeStepper pointer in AuxiliaryState::init"); int NTracers = Tracers::getNumTracers(); TimeInterval TimeStep = DefTimeStepper->getTimeStep(); @@ -359,6 +381,8 @@ void AuxiliaryState::init() { "Default", DefMesh, DefHalo, DefVCoord, DefVAdv, NTracers, TimeStep); Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, + "Null OmegaConfig pointer in AuxiliaryState::init"); DefaultAuxState->readConfigOptions(OmegaConfig); } diff --git a/components/omega/src/ocn/CustomTendencyTerms.cpp b/components/omega/src/ocn/CustomTendencyTerms.cpp index a0959a0fdf8a..b0d187dc29b6 100644 --- a/components/omega/src/ocn/CustomTendencyTerms.cpp +++ b/components/omega/src/ocn/CustomTendencyTerms.cpp @@ -22,6 +22,8 @@ void ManufacturedSolution::init() { // Get ManufacturedSolConfig group Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, + "Null OmegaConfig pointer in ManufacturedSolution::init"); Config ManufacturedSolConfig("ManufacturedSolution"); Err += OmegaConfig->get(ManufacturedSolConfig); CHECK_ERROR_ABORT( diff --git a/components/omega/src/ocn/Eos.cpp b/components/omega/src/ocn/Eos.cpp index 16ea4da9f5a2..799981420aab 100644 --- a/components/omega/src/ocn/Eos.cpp +++ b/components/omega/src/ocn/Eos.cpp @@ -9,6 +9,7 @@ #include "Eos.h" #include "DataTypes.h" +#include "Error.h" #include "HorzMesh.h" namespace OMEGA { @@ -73,9 +74,13 @@ void Eos::destroyInstance() { /// for either a Linear or TEOS-10 equation. void Eos::init() { + HorzMesh *DefMesh = HorzMesh::getDefault(); + OMEGA_REQUIRE(DefMesh, "Null default HorzMesh pointer in Eos::init"); + VertCoord *DefVCoord = VertCoord::getDefault(); + OMEGA_REQUIRE(DefVCoord, "Null default VertCoord pointer in Eos::init"); + if (!Instance) { - Instance = - new Eos("Default", HorzMesh::getDefault(), VertCoord::getDefault()); + Instance = new Eos("Default", DefMesh, DefVCoord); } Error Err; // error code @@ -85,6 +90,7 @@ void Eos::init() { /// Get EosConfig group from Omega config Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in Eos::init"); Config EosConfig("Eos"); Err += OmegaConfig->get(EosConfig); CHECK_ERROR_ABORT(Err, "Eos::init: Eos group not found in Config"); diff --git a/components/omega/src/ocn/Forcing.cpp b/components/omega/src/ocn/Forcing.cpp index 42643dba5385..39cbe9311b18 100644 --- a/components/omega/src/ocn/Forcing.cpp +++ b/components/omega/src/ocn/Forcing.cpp @@ -10,6 +10,7 @@ //===--------------------------------------------------------------===// #include "Forcing.h" +#include "Error.h" #include "Field.h" #include "IOStream.h" #include "Logging.h" @@ -45,6 +46,11 @@ void Forcing::unregisterFields() const { SfcStressForcing.unregisterFields(); } // Create and register a non-default forcing instance. Forcing *Forcing::create(const std::string &Name, const HorzMesh *Mesh, Halo *MeshHalo) { + OMEGA_REQUIRE( + Mesh, "Null HorzMesh pointer in Forcing::create with Name = {}", Name); + OMEGA_REQUIRE(MeshHalo, + "Null Halo pointer in Forcing::create with Name = {}", Name); + if (AllForcing.find(Name) != AllForcing.end()) { LOG_ERROR("Attempted to create new Forcing with name {} but it already " "exists", @@ -68,7 +74,9 @@ void Forcing::init() { FieldGroup::create("Forcing"); const HorzMesh *DefMesh = HorzMesh::getDefault(); - Halo *DefHalo = Halo::getDefault(); + OMEGA_REQUIRE(DefMesh, "Null default HorzMesh pointer in Forcing::init"); + Halo *DefHalo = Halo::getDefault(); + OMEGA_REQUIRE(DefHalo, "Null default Halo pointer in Forcing::init"); DefaultForcing = Forcing::create("Default", DefMesh, DefHalo); @@ -79,6 +87,7 @@ void Forcing::init() { DefaultForcing->registerFields(DefMesh->MeshName); Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in Forcing::init"); DefaultForcing->readConfigOptions(OmegaConfig); // for now, forcing fields are read at start-up only. // to be extended to include switch from standalone to coupled. diff --git a/components/omega/src/ocn/HorzMesh.cpp b/components/omega/src/ocn/HorzMesh.cpp index abb3bf08166e..78f041584e1d 100644 --- a/components/omega/src/ocn/HorzMesh.cpp +++ b/components/omega/src/ocn/HorzMesh.cpp @@ -35,8 +35,11 @@ std::map> HorzMesh::AllHorzMeshes; void HorzMesh::init(const Clock *ModelClock //< [in] Model clock for IO alarms ) { + OMEGA_REQUIRE(ModelClock, "Null ModelClock pointer in HorzMesh::init"); + // Retrieve the default decomposition Decomp *DefDecomp = Decomp::getDefault(); + OMEGA_REQUIRE(DefDecomp, "Null default Decomp pointer in HorzMesh::init"); // Create the default mesh and set pointer to it HorzMesh::DefaultHorzMesh = create("Default", DefDecomp, ModelClock); @@ -234,6 +237,13 @@ HorzMesh *HorzMesh::create(const std::string &Name, //< [in] Name for new mesh Decomp *MeshDecomp, //< [in] Decomp for new mesh const Clock *ModelClock //< [in] Model clock for IO ) { + OMEGA_REQUIRE(MeshDecomp, + "Null Decomp pointer in HorzMesh::create with Name = {}", + Name); + OMEGA_REQUIRE(ModelClock, + "Null ModelClock pointer in HorzMesh::create with Name = {}", + Name); + // Check to see if a mesh of the same name already exists and // if so, exit with an error if (AllHorzMeshes.find(Name) != AllHorzMeshes.end()) diff --git a/components/omega/src/ocn/OceanInit.cpp b/components/omega/src/ocn/OceanInit.cpp index 6a50cb2c0b2b..472725f07dc4 100644 --- a/components/omega/src/ocn/OceanInit.cpp +++ b/components/omega/src/ocn/OceanInit.cpp @@ -64,10 +64,9 @@ static bool PrintAllRanks = false; bool printTimingAllRanks() { return Timing::PrintAllRanks; } // Read timing configuration and set Pacer options -static void readTimingConfig() { +static void readTimingConfig(Config *OmegaConfig) { Error Err; - Config *OmegaConfig = Config::getOmegaConfig(); Config TimingConfig("Timing"); Err += OmegaConfig->get(TimingConfig); CHECK_ERROR_ABORT(Err, "Timing: Timing group not found in Config"); @@ -104,6 +103,7 @@ int ocnInit(MPI_Comm Comm ///< [in] ocean MPI communicator // Init the default machine environment based on input MPI communicator MachEnv::init(Comm); MachEnv *DefEnv = MachEnv::getDefault(); + OMEGA_REQUIRE(DefEnv, "Null default MachEnv pointer in ocnInit"); // Initialize Omega logging initLogging(DefEnv); @@ -112,8 +112,9 @@ int ocnInit(MPI_Comm Comm ///< [in] ocean MPI communicator Config("Omega"); Config::readAll("omega.yml"); Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in ocnInit"); - readTimingConfig(); + readTimingConfig(OmegaConfig); // initialize remaining Omega modules Err = initOmegaModules(Comm); @@ -179,13 +180,15 @@ int ocnInit1(MPI_Comm Comm, ///< [in] ocean MPI communicator I4 Err = 0; // return error code MachEnv *DefEnv = MachEnv::getDefault(); + OMEGA_REQUIRE(DefEnv, "Null default MachEnv pointer in ocnInit1"); // Read config file into Config object Config("Omega"); Config::readAll(ConfigFile); Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in ocnInit1"); - readTimingConfig(); + readTimingConfig(OmegaConfig); // initialize remaining Omega modules Err = initOmegaModules(Comm, TimeParams, CouplingParams); diff --git a/components/omega/src/ocn/OceanState.cpp b/components/omega/src/ocn/OceanState.cpp index f497d6c1a693..990695207eaa 100644 --- a/components/omega/src/ocn/OceanState.cpp +++ b/components/omega/src/ocn/OceanState.cpp @@ -37,9 +37,15 @@ int OceanState::init() { // Retrieve the default decomposition and mesh Decomp *DefDecomp = Decomp::getDefault(); HorzMesh *DefHorzMesh = HorzMesh::getDefault(); - Halo *DefHalo = Halo::getDefault(); + OMEGA_REQUIRE(DefHorzMesh, + "Null default HorzMesh pointer in OceanState::init"); + Halo *DefHalo = Halo::getDefault(); + OMEGA_REQUIRE(DefHalo, "Null default Halo pointer in OceanState::init"); - int NVertLayers = VertCoord::getDefault()->NVertLayers; + VertCoord *DefVCoord = VertCoord::getDefault(); + OMEGA_REQUIRE(DefVCoord, + "Null default VertCoord pointer in OceanState::init"); + int NVertLayers = DefVCoord->NVertLayers; auto *DefTimeStepper = TimeStepper::getDefault(); if (!DefTimeStepper) { @@ -140,6 +146,13 @@ OceanState::create(const std::string &Name, //< [in] Name for new state const int NTimeLevels //< [in] number of time levels ) { + OMEGA_REQUIRE(Mesh, + "Null HorzMesh pointer in OceanState::create with Name = {}", + Name); + OMEGA_REQUIRE(MeshHalo, + "Null Halo pointer in OceanState::create with Name = {}", + Name); + // Check to see if a state of the same name already exists and // if so, exit with an error if (AllOceanStates.find(Name) != AllOceanStates.end()) { diff --git a/components/omega/src/ocn/PGrad.cpp b/components/omega/src/ocn/PGrad.cpp index e5a6952811e0..8bd65aa0463e 100644 --- a/components/omega/src/ocn/PGrad.cpp +++ b/components/omega/src/ocn/PGrad.cpp @@ -24,11 +24,16 @@ std::map> PressureGrad::AllPGrads; void PressureGrad::init() { // Retrieve default mesh and vertical coordinate - HorzMesh *DefMesh = HorzMesh::getDefault(); + HorzMesh *DefMesh = HorzMesh::getDefault(); + OMEGA_REQUIRE(DefMesh, + "Null default HorzMesh pointer in PressureGrad::init"); VertCoord *DefVCoord = VertCoord::getDefault(); + OMEGA_REQUIRE(DefVCoord, + "Null default VertCoord pointer in PressureGrad::init"); // Retrieve omega config Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in PressureGrad::init"); // Create the default PressureGrad and set pointer to it PressureGrad::DefaultPGrad = @@ -44,6 +49,16 @@ PressureGrad::create(const std::string &Name, /// [in] Name for PressureGrad const VertCoord *VCoord, ///< [in] Vertical coordinate Config *Options) { ///< [in] Configuration options + OMEGA_REQUIRE(Mesh, + "Null HorzMesh pointer in PressureGrad::create with Name = {}", + Name); + OMEGA_REQUIRE( + VCoord, "Null VertCoord pointer in PressureGrad::create with Name = {}", + Name); + OMEGA_REQUIRE(Options, + "Null Config pointer in PressureGrad::create with Name = {}", + Name); + // Check to see if a PressureGrad of the same name already exists and // if so, exit with an error if (AllPGrads.find(Name) != AllPGrads.end()) { diff --git a/components/omega/src/ocn/SfcCoupling.cpp b/components/omega/src/ocn/SfcCoupling.cpp index ecb28d465553..3c60fbe17c19 100644 --- a/components/omega/src/ocn/SfcCoupling.cpp +++ b/components/omega/src/ocn/SfcCoupling.cpp @@ -1,5 +1,6 @@ #include "SfcCoupling.h" #include "Eos.h" +#include "Error.h" #include "GlobalConstants.h" #include "Logging.h" #include "OceanState.h" @@ -21,7 +22,11 @@ int SfcCoupling::init(const CouplingInitParams &CouplingInitParams) { // Retrieve the default horizontal mesh and timestepper HorzMesh *DefHorzMesh = HorzMesh::getDefault(); - auto *DefTimeStepper = TimeStepper::getDefault(); + OMEGA_REQUIRE(DefHorzMesh, + "Null default HorzMesh pointer in SfcCoupling::init"); + auto *DefTimeStepper = TimeStepper::getDefault(); + OMEGA_REQUIRE(DefTimeStepper, + "Null default TimeStepper pointer in SfcCoupling::init"); TimeInterval OcnTimeStep = DefTimeStepper->getTimeStep(); TimeInterval CplTimeStep = CouplingInitParams.CouplingTimeStep; @@ -92,6 +97,13 @@ SfcCoupling *SfcCoupling::create( const std::map &ExportIdxMap, TimeStepper *Stepper, const TimeInterval &CouplingTimeStep, const CouplingLayout &Layout) { + OMEGA_REQUIRE(Mesh, + "Null HorzMesh pointer in SfcCoupling::create with Name = {}", + Name); + OMEGA_REQUIRE( + Stepper, + "Null TimeStepper pointer in SfcCoupling::create with Name = {}", Name); + // Check to see if a surface coupling of the same name already exists if (AllSfcCoupling.find(Name) != AllSfcCoupling.end()) { LOG_ERROR("Attempted to create a SfcCoupling with name {}, but a " diff --git a/components/omega/src/ocn/Tendencies.cpp b/components/omega/src/ocn/Tendencies.cpp index 271a02a9ff7d..df65cfb0221f 100644 --- a/components/omega/src/ocn/Tendencies.cpp +++ b/components/omega/src/ocn/Tendencies.cpp @@ -35,18 +35,32 @@ std::map> Tendencies::AllTendencies; void Tendencies::init() { Error Err; // error code - HorzMesh *DefHorzMesh = HorzMesh::getDefault(); - VertCoord *DefVertCoord = VertCoord::getDefault(); - VertAdv *DefVertAdv = VertAdv::getDefault(); + HorzMesh *DefHorzMesh = HorzMesh::getDefault(); + OMEGA_REQUIRE(DefHorzMesh, + "Null default HorzMesh pointer in Tendencies::init"); + VertCoord *DefVertCoord = VertCoord::getDefault(); + OMEGA_REQUIRE(DefVertCoord, + "Null default VertCoord pointer in Tendencies::init"); + VertAdv *DefVertAdv = VertAdv::getDefault(); + OMEGA_REQUIRE(DefVertAdv, + "Null default VertAdv pointer in Tendencies::init"); TimeStepper *DefTimeStepper = TimeStepper::getDefault(); - Eos *DefEos = Eos::getInstance(); - PressureGrad *DefPGrad = PressureGrad::getDefault(); - VertMix *DefVertMix = VertMix::getInstance(); + OMEGA_REQUIRE(DefTimeStepper, + "Null default TimeStepper pointer in Tendencies::init"); + Eos *DefEos = Eos::getInstance(); + OMEGA_REQUIRE(DefEos, "Null default Eos pointer in Tendencies::init"); + PressureGrad *DefPGrad = PressureGrad::getDefault(); + OMEGA_REQUIRE(DefPGrad, + "Null default PressureGrad pointer in Tendencies::init"); + VertMix *DefVertMix = VertMix::getInstance(); + OMEGA_REQUIRE(DefVertMix, + "Null default VertMix pointer in Tendencies::init"); I4 NTracers = Tracers::getNumTracers(); // Get TendConfig group Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in Tendencies::init"); Config TendConfig("Tendencies"); Err += OmegaConfig->get(TendConfig); CHECK_ERROR_ABORT(Err, "Tendencies: Tendencies group not found in Config"); @@ -520,6 +534,25 @@ Tendencies *Tendencies::create(const std::string &Name, CustomTendencyType CustomThicknessTend, CustomTendencyType CustomVelocityTend) { + OMEGA_REQUIRE(Mesh, + "Null HorzMesh pointer in Tendencies::create with Name = {}", + Name); + OMEGA_REQUIRE(VCoord, + "Null VCoord pointer in Tendencies::create with Name = {}", + Name); + OMEGA_REQUIRE( + VAdv, "Null VertAdv pointer in Tendencies::create with Name = {}", Name); + OMEGA_REQUIRE( + PGrad, "Null PressureGrad pointer in Tendencies::create with Name = {}", + Name); + OMEGA_REQUIRE(EqState, + "Null Eos pointer in Tendencies::create with Name = {}", Name); + OMEGA_REQUIRE( + VMix, "Null VertMix pointer in Tendencies::create with Name = {}", Name); + OMEGA_REQUIRE(Options, + "Null Config pointer in Tendencies::create with Name = {}", + Name); + // Check to see if tendencies of the same name already exist and // if so, exit with an error if (AllTendencies.find(Name) != AllTendencies.end()) { diff --git a/components/omega/src/ocn/Tracers.cpp b/components/omega/src/ocn/Tracers.cpp index c84fa5b33454..a7b3bdc4d35e 100644 --- a/components/omega/src/ocn/Tracers.cpp +++ b/components/omega/src/ocn/Tracers.cpp @@ -43,8 +43,11 @@ void Tracers::init() { Error Err; // error code // Retrieve mesh cell/edge/vertex totals from Decomp - HorzMesh *DefHorzMesh = HorzMesh::getDefault(); + HorzMesh *DefHorzMesh = HorzMesh::getDefault(); + OMEGA_REQUIRE(DefHorzMesh, "Null default HorzMesh pointer in Tracers::init"); VertCoord *DefVertCoord = VertCoord::getDefault(); + OMEGA_REQUIRE(DefVertCoord, + "Null default VertCoord pointer in Tracers::init"); NCellsOwned = DefHorzMesh->NCellsOwned; NCellsAll = DefHorzMesh->NCellsAll; @@ -52,6 +55,7 @@ void Tracers::init() { NVertLayers = DefVertCoord->NVertLayers; MeshHalo = Halo::getDefault(); + OMEGA_REQUIRE(MeshHalo, "Null default Halo pointer in Tracers::init"); auto *DefTimeStepper = TimeStepper::getDefault(); if (!DefTimeStepper) { @@ -67,6 +71,7 @@ void Tracers::init() { // load Tracers configs Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in Tracers::init"); Config TracersConfig("Tracers"); Err += OmegaConfig->get(TracersConfig); CHECK_ERROR_ABORT(Err, "Tracers: Tracers group not found in Config"); diff --git a/components/omega/src/ocn/VertAdv.cpp b/components/omega/src/ocn/VertAdv.cpp index 0a29ec7f6b17..901cc85ceae9 100644 --- a/components/omega/src/ocn/VertAdv.cpp +++ b/components/omega/src/ocn/VertAdv.cpp @@ -9,6 +9,7 @@ //===----------------------------------------------------------------------===// #include "VertAdv.h" +#include "Error.h" #include "Field.h" #include "Tracers.h" @@ -25,10 +26,13 @@ std::map> VertAdv::AllVertAdvs; // HorzMesh, VertCoord, and Tracers void VertAdv::init() { - auto Mesh = HorzMesh::getDefault(); + auto Mesh = HorzMesh::getDefault(); + OMEGA_REQUIRE(Mesh, "Null default HorzMesh pointer in VertAdv::init"); auto VCoord = VertCoord::getDefault(); + OMEGA_REQUIRE(VCoord, "Null default VertCoord pointer in VertAdv::init"); Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in VertAdv::init"); VertAdv::DefaultVertAdv = create("Default", Mesh, VCoord, OmegaConfig); @@ -95,6 +99,14 @@ VertAdv *VertAdv::create(const std::string &Name, //< [in] name for new VertAdv const VertCoord *VCoord, //< [in] associated VertCoord Config *Options //< [in] configuration options ) { + OMEGA_REQUIRE( + Mesh, "Null HorzMesh pointer in VertAdv::create with Name = {}", Name); + OMEGA_REQUIRE(VCoord, + "Null VertCoord pointer in VertAdv::create with Name = {}", + Name); + OMEGA_REQUIRE(Options, + "Null Config pointer in VertAdv::create with Name = {}", Name); + // Check to see if a VertAdv of the same name already exists and, if so, // exit with an error if (AllVertAdvs.find(Name) != AllVertAdvs.end()) { diff --git a/components/omega/src/ocn/VertCoord.cpp b/components/omega/src/ocn/VertCoord.cpp index 95a2750a3fa9..8345fbd79eb3 100644 --- a/components/omega/src/ocn/VertCoord.cpp +++ b/components/omega/src/ocn/VertCoord.cpp @@ -9,6 +9,7 @@ #include "VertCoord.h" #include "Dimension.h" +#include "Error.h" #include "Field.h" #include "GlobalConstants.h" #include "IO.h" @@ -38,10 +39,13 @@ void VertCoord::init( ) { Decomp *DefDecomp = Decomp::getDefault(); + OMEGA_REQUIRE(DefDecomp, "Null default Decomp pointer in VertCoord::init"); Halo *DefHalo = Halo::getDefault(); + OMEGA_REQUIRE(DefHalo, "Null default Halo pointer in VertCoord::init"); Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in VertCoord::init"); VertCoord::DefaultVertCoord = create("Default", DefDecomp, DefHalo, OmegaConfig, ReadStream, InNVertLayers); @@ -196,6 +200,14 @@ VertCoord *VertCoord::create( const bool ReadStream, // [in] optional logical to read stream const int InNVertLayers // [in] optional int to set vertical dim ) { + OMEGA_REQUIRE( + Decomp, "Null Decomp pointer in VertCoord::create with Name = {}", Name); + OMEGA_REQUIRE(MeshHalo, + "Null Halo pointer in VertCoord::create with Name = {}", Name); + OMEGA_REQUIRE(Options, + "Null Config pointer in VertCoord::create with Name = {}", + Name); + // Check to see if a VertCoord of the same name already exists and, if so, // exit with an error if (AllVertCoords.find(Name) != AllVertCoords.end()) { diff --git a/components/omega/src/ocn/VertMix.cpp b/components/omega/src/ocn/VertMix.cpp index 45431292ed16..b5618e73076b 100644 --- a/components/omega/src/ocn/VertMix.cpp +++ b/components/omega/src/ocn/VertMix.cpp @@ -13,6 +13,7 @@ #include "VertMix.h" #include "DataTypes.h" #include "Eos.h" +#include "Error.h" #include "GlobalConstants.h" #include "HorzMesh.h" #include "HorzOperators.h" @@ -100,9 +101,13 @@ void VertMix::destroyInstance() { /// missing. void VertMix::init() { + HorzMesh *DefMesh = HorzMesh::getDefault(); + OMEGA_REQUIRE(DefMesh, "Null default HorzMesh pointer in VertMix::init"); + VertCoord *DefVCoord = VertCoord::getDefault(); + OMEGA_REQUIRE(DefVCoord, "Null default VertCoord pointer in VertMix::init"); + if (!Instance) { - Instance = new VertMix("Default", HorzMesh::getDefault(), - VertCoord::getDefault()); + Instance = new VertMix("Default", DefMesh, DefVCoord); } Error Err; // error code @@ -112,6 +117,7 @@ void VertMix::init() { /// Get VertMixConfig group from Omega config Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in VertMix::init"); Config VertMixConfig("VertMix"); Err += OmegaConfig->get(VertMixConfig); CHECK_ERROR_ABORT(Err, "VertMix::init: VertMix group not found in Config"); diff --git a/components/omega/src/timeStepping/TimeStepper.cpp b/components/omega/src/timeStepping/TimeStepper.cpp index 4576f2946de2..ee3ee2dd6650 100644 --- a/components/omega/src/timeStepping/TimeStepper.cpp +++ b/components/omega/src/timeStepping/TimeStepper.cpp @@ -127,6 +127,23 @@ TimeStepper *TimeStepper::create( Halo *InMeshHalo ///< [in] ptr to halos ) { + OMEGA_REQUIRE( + InTend, "Null Tendencies pointer in TimeStepper::create with Name = {}", + InName); + OMEGA_REQUIRE( + InAuxState, + "Null AuxiliaryState pointer in TimeStepper::create with Name = {}", + InName); + OMEGA_REQUIRE(InMesh, + "Null HorzMesh pointer in TimeStepper::create with Name = {}", + InName); + OMEGA_REQUIRE(InVCoord, + "Null VertCoord pointer in TimeStepper::create with Name = {}", + InName); + OMEGA_REQUIRE(InMeshHalo, + "Null Halo pointer in TimeStepper::create with Name = {}", + InName); + // Start by calling the two-phase create function TimeStepper *NewTimeStepper = create(InName, InType, InTimeStep, InStartTime, InStopTime); @@ -248,6 +265,7 @@ void TimeStepper::init1() { // Retrieve TimeStepper options from Config if available Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in TimeStepper::init1"); Config TimeIntConfig("TimeIntegration"); Err = OmegaConfig->get(TimeIntConfig); CHECK_ERROR_ABORT(Err, "TimeIntegration group not found in Config"); @@ -335,6 +353,7 @@ void TimeStepper::init1(const TimeInitParams &TimeParams) { // TimeStepper and TimeStep are always read from the Config Config *OmegaConfig = Config::getOmegaConfig(); + OMEGA_REQUIRE(OmegaConfig, "Null OmegaConfig pointer in TimeStepper::init1"); Config TimeIntConfig("TimeIntegration"); Err = OmegaConfig->get(TimeIntConfig); CHECK_ERROR_ABORT(Err, "TimeIntegration group not found in Config"); @@ -363,12 +382,24 @@ void TimeStepper::init1(const TimeInitParams &TimeParams) { // Finish initialization of the default time stepper (phase 2) void TimeStepper::init2() { + OMEGA_REQUIRE(DefaultTimeStepper, + "Null default TimeStepper pointer in TimeStepper::init2"); + // Get default pointers - HorzMesh *DefMesh = HorzMesh::getDefault(); - VertCoord *DefVCoord = VertCoord::getDefault(); - Halo *DefHalo = Halo::getDefault(); - Tendencies *DefTend = Tendencies::getDefault(); + HorzMesh *DefMesh = HorzMesh::getDefault(); + OMEGA_REQUIRE(DefMesh, + "Null default HorzMesh pointer in TimeStepper::init2"); + VertCoord *DefVCoord = VertCoord::getDefault(); + OMEGA_REQUIRE(DefVCoord, + "Null default VertCoord pointer in TimeStepper::init2"); + Halo *DefHalo = Halo::getDefault(); + OMEGA_REQUIRE(DefHalo, "Null default Halo pointer in TimeStepper::init2"); + Tendencies *DefTend = Tendencies::getDefault(); + OMEGA_REQUIRE(DefTend, + "Null default Tendencies pointer in TimeStepper::init2"); AuxiliaryState *AuxState = AuxiliaryState::getDefault(); + OMEGA_REQUIRE(AuxState, + "Null default AuxiliaryState pointer in TimeStepper::init2"); // Attach data pointers DefaultTimeStepper->attachData(DefTend, AuxState, DefMesh, DefVCoord, From 49dd0bc1b2c5202ac0f95fc34271ebef68d36e79 Mon Sep 17 00:00:00 2001 From: Maciej Waruszewski Date: Fri, 7 Aug 2026 16:40:46 -0600 Subject: [PATCH 33/60] Initialize VertAdv in a few tests --- components/omega/test/analysis/AnalysisOperatorTest.cpp | 4 ++++ components/omega/test/analysis/AnalysisSystemTest.cpp | 6 +++--- components/omega/test/infra/IOStreamTest.cpp | 5 +++++ components/omega/test/ocn/FillValueTest.cpp | 3 +++ components/omega/test/ocn/StateTest.cpp | 5 +++++ 5 files changed, 20 insertions(+), 3 deletions(-) diff --git a/components/omega/test/analysis/AnalysisOperatorTest.cpp b/components/omega/test/analysis/AnalysisOperatorTest.cpp index 8ff5cf80ed8c..552e3c995150 100644 --- a/components/omega/test/analysis/AnalysisOperatorTest.cpp +++ b/components/omega/test/analysis/AnalysisOperatorTest.cpp @@ -16,6 +16,7 @@ #include "IOStream.h" #include "Logging.h" #include "TimeStepper.h" +#include "VertAdv.h" #include "VertCoord.h" #include "VertMix.h" @@ -943,6 +944,9 @@ void initAnalysisTest() { // Initialize the default vertical coordinate VertCoord::init(); + // Initialize VertAdv + VertAdv::init(); + // Initialize tracers Tracers::init(); diff --git a/components/omega/test/analysis/AnalysisSystemTest.cpp b/components/omega/test/analysis/AnalysisSystemTest.cpp index f29e3448ccb1..722f76d02879 100644 --- a/components/omega/test/analysis/AnalysisSystemTest.cpp +++ b/components/omega/test/analysis/AnalysisSystemTest.cpp @@ -691,6 +691,9 @@ void initAnalysisSystemTest() { // Initialize the default vertical coordinate VertCoord::init(); + // Initialize VertAdv + VertAdv::init(); + // Initialize tracers Tracers::init(); @@ -712,9 +715,6 @@ void initAnalysisSystemTest() { // Initialize tendencies Tendencies::init(); - // Initialize vertical advection - VertAdv::init(); - // Second step of time stepper initialization TimeStepper::init2(); diff --git a/components/omega/test/infra/IOStreamTest.cpp b/components/omega/test/infra/IOStreamTest.cpp index cfbb9963e4b9..171dea4ebaed 100644 --- a/components/omega/test/infra/IOStreamTest.cpp +++ b/components/omega/test/infra/IOStreamTest.cpp @@ -32,6 +32,7 @@ #include "TimeMgr.h" #include "TimeStepper.h" #include "Tracers.h" +#include "VertAdv.h" #include "VertCoord.h" #include "VertMix.h" #include "mpi.h" @@ -137,6 +138,9 @@ void initIOStreamTest(Clock *&ModelClock // Model clock // Initialize the vertical coordinate VertCoord::init(); + // Initialize VertAdv + VertAdv::init(); + // Initialize State TmpErr = OceanState::init(); if (TmpErr != 0) @@ -322,6 +326,7 @@ int main(int argc, char **argv) { OceanState::clear(); AuxiliaryState::clear(); Forcing::clear(); + VertAdv::clear(); HorzMesh::clear(); VertCoord::clear(); Field::clear(); diff --git a/components/omega/test/ocn/FillValueTest.cpp b/components/omega/test/ocn/FillValueTest.cpp index c692a43ca50e..7f07a440796b 100644 --- a/components/omega/test/ocn/FillValueTest.cpp +++ b/components/omega/test/ocn/FillValueTest.cpp @@ -42,6 +42,7 @@ #include "TimeMgr.h" #include "TimeStepper.h" #include "Tracers.h" +#include "VertAdv.h" #include "VertCoord.h" #include "VertMix.h" #include "mpi.h" @@ -129,6 +130,7 @@ void initFillValueTest() { HorzMesh::init(ModelClock); VertCoord::init(); + VertAdv::init(); Tracers::init(); AuxiliaryState::init(); PressureGrad::init(); @@ -445,6 +447,7 @@ int main(int argc, char *argv[]) { Tracers::clear(); IOStream::finalize(); TimeStepper::clear(); + VertAdv::clear(); HorzMesh::clear(); VertCoord::clear(); Field::clear(); diff --git a/components/omega/test/ocn/StateTest.cpp b/components/omega/test/ocn/StateTest.cpp index c9b25d5b2fa0..c72675859d14 100644 --- a/components/omega/test/ocn/StateTest.cpp +++ b/components/omega/test/ocn/StateTest.cpp @@ -29,6 +29,7 @@ #include "Pacer.h" #include "Tendencies.h" #include "TimeStepper.h" +#include "VertAdv.h" #include "VertCoord.h" #include "VertMix.h" #include "mpi.h" @@ -89,6 +90,9 @@ void initStateTest() { // Initialize the vertical coordinate VertCoord::init(); + // Initialize VertAdv + VertAdv::init(); + // Initialize tracers Tracers::init(); @@ -452,6 +456,7 @@ int main(int argc, char *argv[]) { VertMix::destroyInstance(); Tendencies::clear(); TimeStepper::clear(); + VertAdv::clear(); HorzMesh::clear(); VertCoord::clear(); Halo::clear(); From f3a49f23d28caeb2b2ab591b0a2ca399517c0014 Mon Sep 17 00:00:00 2001 From: Hyun Kang Date: Fri, 7 Aug 2026 13:01:53 -0400 Subject: [PATCH 34/60] Fix a bug in field registration of ProvPseudoThickness - Registered `ProvPseudoThickness` on cells instead of edges - Fixes an out-of-bounds read when writing the `AuxiliaryState` group, which segfaults on GPU builds --- .../omega/src/ocn/auxiliaryVars/PseudoThicknessAuxVars.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/omega/src/ocn/auxiliaryVars/PseudoThicknessAuxVars.cpp b/components/omega/src/ocn/auxiliaryVars/PseudoThicknessAuxVars.cpp index 2a608c176dc1..627f6cd3177c 100644 --- a/components/omega/src/ocn/auxiliaryVars/PseudoThicknessAuxVars.cpp +++ b/components/omega/src/ocn/auxiliaryVars/PseudoThicknessAuxVars.cpp @@ -63,6 +63,8 @@ void PseudoThicknessAuxVars::registerFields(const std::string &AuxGroupName, DimNames // dimension names ); + DimNames[0] = "NCells" + DimSuffix; + // Provisional Thickness auto ProvPseudoThicknessField = Field::create( ProvPseudoThickness.label(), // field name From acfaa3c50a74df23a1d8490bf609356b272f2808 Mon Sep 17 00:00:00 2001 From: Andrew Nolan Date: Fri, 31 Jul 2026 16:47:35 -0400 Subject: [PATCH 35/60] Add missing halo exchanges --- .../src/timeStepping/ForwardBackwardStepper.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/components/omega/src/timeStepping/ForwardBackwardStepper.cpp b/components/omega/src/timeStepping/ForwardBackwardStepper.cpp index 6e1b2f2f47d9..91ed0b59e27a 100644 --- a/components/omega/src/timeStepping/ForwardBackwardStepper.cpp +++ b/components/omega/src/timeStepping/ForwardBackwardStepper.cpp @@ -45,6 +45,8 @@ void ForwardBackwardStepper::doStep( VertMix *VMix = VertMix::getInstance(); + const MPI_Comm Comm = MeshHalo->getComm(); + if (State == nullptr) LOG_CRITICAL("Invalid State"); if (AuxState == nullptr) @@ -65,6 +67,13 @@ void ForwardBackwardStepper::doStep( prescribeVelocity(State, VelNextLevel, State, VelCurLevel, SimTime + TimeStep); + // Exchange halo of u^{n+1} before it is used below + Array2DReal NextNormalVelocity = State->getNormalVelocity(VelNextLevel); + Pacer::timingBarrier("ForwardBackward:velHaloExchBarrier", 3, Comm); + Pacer::start("ForwardBackward:velHaloExch", 3); + MeshHalo->exchangeFullArrayHalo(NextNormalVelocity, OnEdge); + Pacer::stop("ForwardBackward:velHaloExch", 3); + // R_h^{n} = RHS_h(u^{n+1}, h^{n}, t^{n}) Tend->computePseudoThicknessTendencies(State, AuxState, ThickCurLevel, VelNextLevel, SimTime); @@ -74,6 +83,13 @@ void ForwardBackwardStepper::doStep( prescribeThickness(State, ThickNextLevel, State, ThickCurLevel); + // Exchange halo of h^{n+1} before it is used below + Array2DReal NextPseudoThickness = State->getPseudoThickness(ThickNextLevel); + Pacer::timingBarrier("ForwardBackward:thickHaloExchBarrier", 3, Comm); + Pacer::start("ForwardBackward:thickHaloExch", 3); + MeshHalo->exchangeFullArrayHalo(NextPseudoThickness, OnCell); + Pacer::stop("ForwardBackward:thickHaloExch", 3); + // R_phi^{n} = RHS_phi(u^{n+1}, h^{n+1}, phi^{n}, t^{n}) Tend->computeTracerTendencies(State, AuxState, CurTracerArray, ThickNextLevel, VelNextLevel, SimTime); @@ -84,7 +100,6 @@ void ForwardBackwardStepper::doStep( // Update time levels (New -> Old) of prognostic variables with halo // exchanges - const MPI_Comm Comm = MeshHalo->getComm(); Pacer::timingBarrier("ForwardBackward:haloExchBarrier", 3, Comm); Pacer::start("ForwardBackward:haloExch", 3); State->updateTimeLevels(); From cb17796c2f11923fa5b67c4af3bc8bddd400fe20 Mon Sep 17 00:00:00 2001 From: Andrew Nolan <32367657+andrewdnolan@users.noreply.github.com> Date: Wed, 12 Aug 2026 09:09:51 -0600 Subject: [PATCH 36/60] Apply suggestions from code review Co-authored-by: Hyun (Hyun-Gyu) Kang <47987430+hyungyukang@users.noreply.github.com> --- .../omega/src/timeStepping/ForwardBackwardStepper.cpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/components/omega/src/timeStepping/ForwardBackwardStepper.cpp b/components/omega/src/timeStepping/ForwardBackwardStepper.cpp index 91ed0b59e27a..e1bb57802b70 100644 --- a/components/omega/src/timeStepping/ForwardBackwardStepper.cpp +++ b/components/omega/src/timeStepping/ForwardBackwardStepper.cpp @@ -62,8 +62,6 @@ void ForwardBackwardStepper::doStep( // u^{n+1} = u^{n} + R_u^{n} updateVelocityByTend(State, VelNextLevel, State, VelCurLevel, TimeStep); - updateVelocityByTend(State, VelNextLevel, State, VelCurLevel, TimeStep); - prescribeVelocity(State, VelNextLevel, State, VelCurLevel, SimTime + TimeStep); @@ -83,13 +81,6 @@ void ForwardBackwardStepper::doStep( prescribeThickness(State, ThickNextLevel, State, ThickCurLevel); - // Exchange halo of h^{n+1} before it is used below - Array2DReal NextPseudoThickness = State->getPseudoThickness(ThickNextLevel); - Pacer::timingBarrier("ForwardBackward:thickHaloExchBarrier", 3, Comm); - Pacer::start("ForwardBackward:thickHaloExch", 3); - MeshHalo->exchangeFullArrayHalo(NextPseudoThickness, OnCell); - Pacer::stop("ForwardBackward:thickHaloExch", 3); - // R_phi^{n} = RHS_phi(u^{n+1}, h^{n+1}, phi^{n}, t^{n}) Tend->computeTracerTendencies(State, AuxState, CurTracerArray, ThickNextLevel, VelNextLevel, SimTime); From 3765330cf79809bfd92f80aa4607c83a41f28bcb Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 29 Jul 2026 09:26:44 -0500 Subject: [PATCH 37/60] Add TEOS-10 first derivatives of specific volume Add the first derivatives of the specific volume with respect to conservative temperature, absolute salinity and pressure to the Teos10Eos functor, as needed by the higher-order pressure gradient (PGradHighOrder.md 3.3). The GSW-C license permits redistribution only without modification, so gsw_specvol_first_derivatives cannot be adapted into Kokkos device code, and calling into the library from a device kernel is not possible in any case. The derivatives here are instead the analytic derivatives of the Roquet et al. 2015 75-term polynomial that calcPCoeffs and calcRefProfile already carry, differentiated with respect to each of the three normalized variables and converted back with the chain rule. The temperature and salinity coefficient tables are the same values already present in Teos10BruntVaisalaFreqSq::calcAlpha and calcBeta, regrouped by power of pressure so they follow the calcPCoeffs/calcDelta split. That they are the same values was verified independently before writing this code, by differentiating the 75-term table mechanically and comparing term for term: all 50 A and all 50 B coefficients agree exactly in decimal arithmetic, since A(i,j,k) = (j+1) V(i,j+1,k) and B(i,j,k) = (i+1) V(i+1,j,k). The duplication that leaves behind is removed in a later commit. The pressure derivative needs no new constants at all, being formed from the pressure coefficients calcPCoeffs already assembles, plus the derivative of the reference profile. That last term is easy to overlook and is not optional: it supplies about 99 percent of d(SpecVol)/dP. Also hoist the polynomial normalization constants to static members, so the specific volume and its derivatives are guaranteed to be evaluated at the same normalized state rather than at two spellings of it. Co-Authored-By: Claude Opus 5 --- components/omega/src/ocn/Eos.h | 354 +++++++++++++++++++++++++++++++-- 1 file changed, 339 insertions(+), 15 deletions(-) diff --git a/components/omega/src/ocn/Eos.h b/components/omega/src/ocn/Eos.h index 5e4fd89cae21..26974884ae8f 100644 --- a/components/omega/src/ocn/Eos.h +++ b/components/omega/src/ocn/Eos.h @@ -34,6 +34,17 @@ class Teos10Eos { /// constructor declaration Teos10Eos(const VertCoord *VCoord); + /// Normalization used by the Roquet et al. 2015 75-term polynomial. The + /// polynomial is written in the normalized variables + /// Ss = sqrt((Sa + DeltaS) / SaNorm), Tt = Ct / CtNorm, Pp = P * PNorm + /// with P the relative pressure in dbar. These are shared by the specific + /// volume and by its derivatives, so that both are evaluated at exactly + /// the same normalized state. + static constexpr Real SaNorm = 40.0 * SS0 / 35.0; ///< salinity scale (g/kg) + static constexpr Real CtNorm = 40.0; ///< temperature scale (degC) + static constexpr Real DeltaS = 24.0; ///< salinity offset (g/kg) + static constexpr Real PNorm = 1.0e-4; ///< pressure scale (1/dbar) + // The functor takes the full arrays of specific volume (inout), // the indices ICell and KChunk, and the ocean tracers (conservative) // temperature, (absolute) salinity, and relative pressure (gauge pressure, @@ -83,11 +94,8 @@ class Teos10Eos { KOKKOS_FUNCTION void calcPCoeffs(Real (&SpecVolPCoeffs)[6 * VecLength], const I4 KVec, const Real Ct, const Real Sa) const { - constexpr Real SaNorm = 40.0 * 35.16504 / 35.0; - constexpr Real CtNorm = 40.0; - constexpr Real DeltaS = 24.0; - Real Ss = Kokkos::sqrt((Sa + DeltaS) / SaNorm); - Real Tt = Ct / CtNorm; + Real Ss = Kokkos::sqrt((Sa + DeltaS) / SaNorm); + Real Tt = Ct / CtNorm; /// Coefficients for the polynomial expansion constexpr Real V000 = 1.0769995862e-03; @@ -207,8 +215,7 @@ class Teos10Eos { KOKKOS_FUNCTION Real calcDelta(const Real (&SpecVolPCoeffs)[6 * VecLength], const I4 KVec, const Real P) const { - constexpr Real PNorm = 1e-4; - Real Pp = P * PNorm; + Real Pp = P * PNorm; Real Delta = ((((SpecVolPCoeffs[5 + 6 * KVec] * Pp + SpecVolPCoeffs[4 + 6 * KVec]) * @@ -226,14 +233,13 @@ class Teos10Eos { /// Calculate reference profile for TEOS-10 KOKKOS_FUNCTION Real calcRefProfile(Real P) const { - constexpr Real PNorm = 1e-4; - constexpr Real V00 = -4.4015007269e-05; - constexpr Real V01 = 6.9232335784e-06; - constexpr Real V02 = -7.5004675975e-07; - constexpr Real V03 = 1.7009109288e-08; - constexpr Real V04 = -1.6884162004e-08; - constexpr Real V05 = 1.9613503930e-09; - Real Pp = P * PNorm; + constexpr Real V00 = -4.4015007269e-05; + constexpr Real V01 = 6.9232335784e-06; + constexpr Real V02 = -7.5004675975e-07; + constexpr Real V03 = 1.7009109288e-08; + constexpr Real V04 = -1.6884162004e-08; + constexpr Real V05 = 1.9613503930e-09; + Real Pp = P * PNorm; Real V0 = (((((V05 * Pp + V04) * Pp + V03) * Pp + V02) * Pp + V01) * Pp + V00) * @@ -241,6 +247,324 @@ class Teos10Eos { return V0; } + /// Calculate pressure polynomial coefficients for the derivative of the + /// TEOS-10 specific volume with respect to the normalized temperature Tt. + /// + /// The coefficients are the analytic Tt-derivative of the 75-term + /// polynomial in calcPCoeffs above: A(i,j,k) = (j+1) * V(i,j+1,k). They are + /// the same values used by Teos10BruntVaisalaFreqSq::calcAlpha, regrouped + /// here by power of pressure to match the calcPCoeffs/calcDelta split. + /// The Tt-derivative is one degree lower in pressure than the specific + /// volume itself, so there are five coefficients rather than six. + KOKKOS_FUNCTION void calcPCoeffsDTt(Real (&DTtPCoeffs)[5 * VecLength], + const I4 KVec, const Real Ss, + const Real Tt) const { + + constexpr Real A000 = -1.56497346750e-5; + constexpr Real A001 = 1.85057654290e-5; + constexpr Real A002 = -1.17363867310e-6; + constexpr Real A003 = -3.65270065530e-7; + constexpr Real A004 = 3.14540999020e-7; + constexpr Real A010 = 5.55242129680e-5; + constexpr Real A011 = -2.34332137060e-5; + constexpr Real A012 = 4.26100574800e-6; + constexpr Real A013 = 5.73918103180e-7; + constexpr Real A020 = -4.95634777770e-5; + constexpr Real A021 = 2.37838968519e-5; + constexpr Real A022 = -1.38397620111e-6; + constexpr Real A030 = 2.76445290808e-5; + constexpr Real A031 = -1.36408749928e-5; + constexpr Real A032 = -2.53411666056e-7; + constexpr Real A040 = -4.02698077700e-6; + constexpr Real A041 = 2.53683834070e-6; + constexpr Real A050 = 1.23258565608e-6; + constexpr Real A100 = 3.50095997640e-5; + constexpr Real A101 = -9.56770881560e-6; + constexpr Real A102 = -5.56991545570e-6; + constexpr Real A103 = -2.72956962370e-7; + constexpr Real A110 = -7.48716846880e-5; + constexpr Real A111 = -4.73566167220e-7; + constexpr Real A112 = 7.82747741600e-7; + constexpr Real A120 = 7.24244384490e-5; + constexpr Real A121 = -1.03676320965e-5; + constexpr Real A122 = 2.32856664276e-8; + constexpr Real A130 = -3.50383492616e-5; + constexpr Real A131 = 5.18268711320e-6; + constexpr Real A140 = -1.65263794500e-6; + constexpr Real A200 = -4.35926785610e-5; + constexpr Real A201 = 1.11008347650e-5; + constexpr Real A202 = 5.46207488340e-6; + constexpr Real A210 = 7.18156455200e-5; + constexpr Real A211 = 5.85666925900e-6; + constexpr Real A212 = -1.31462208134e-6; + constexpr Real A220 = -4.30608991440e-5; + constexpr Real A221 = 9.49659182340e-7; + constexpr Real A230 = 1.74814722392e-5; + constexpr Real A300 = 3.45324618280e-5; + constexpr Real A301 = -9.84471178440e-6; + constexpr Real A302 = -1.35441856270e-6; + constexpr Real A310 = -3.73971683740e-5; + constexpr Real A311 = -9.76522784000e-7; + constexpr Real A320 = 6.85899736680e-6; + constexpr Real A400 = -1.19594097880e-5; + constexpr Real A401 = 2.59092252600e-6; + constexpr Real A410 = 7.71906784880e-6; + constexpr Real A500 = 1.38645945810e-6; + + DTtPCoeffs[4 + 5 * KVec] = A004; + DTtPCoeffs[3 + 5 * KVec] = A013 * Tt + A103 * Ss + A003; + DTtPCoeffs[2 + 5 * KVec] = ((A032 * Tt + A122 * Ss + A022) * Tt + + (A212 * Ss + A112) * Ss + A012) * + Tt + + ((A302 * Ss + A202) * Ss + A102) * Ss + A002; + DTtPCoeffs[1 + 5 * KVec] = + (((A041 * Tt + A131 * Ss + A031) * Tt + (A221 * Ss + A121) * Ss + + A021) * + Tt + + ((A311 * Ss + A211) * Ss + A111) * Ss + A011) * + Tt + + (((A401 * Ss + A301) * Ss + A201) * Ss + A101) * Ss + A001; + DTtPCoeffs[0 + 5 * KVec] = + ((((A050 * Tt + A140 * Ss + A040) * Tt + (A230 * Ss + A130) * Ss + + A030) * + Tt + + ((A320 * Ss + A220) * Ss + A120) * Ss + A020) * + Tt + + (((A410 * Ss + A310) * Ss + A210) * Ss + A110) * Ss + A010) * + Tt + + ((((A500 * Ss + A400) * Ss + A300) * Ss + A200) * Ss + A100) * Ss + + A000; + } + + /// Calculate pressure polynomial coefficients for the derivative of the + /// TEOS-10 specific volume with respect to the normalized salinity Ss. + /// + /// As above, these are the analytic Ss-derivative of the 75-term + /// polynomial: B(i,j,k) = (i+1) * V(i+1,j,k), the same values used by + /// Teos10BruntVaisalaFreqSq::calcBeta. + KOKKOS_FUNCTION void calcPCoeffsDSs(Real (&DSsPCoeffs)[5 * VecLength], + const I4 KVec, const Real Ss, + const Real Tt) const { + + constexpr Real B000 = -3.10389819760e-4; + constexpr Real B001 = 2.42624687470e-5; + constexpr Real B002 = -5.84844329840e-7; + constexpr Real B003 = 3.63101885150e-7; + constexpr Real B004 = -1.11471254230e-7; + constexpr Real B010 = 3.50095997640e-5; + constexpr Real B011 = -9.56770881560e-6; + constexpr Real B012 = -5.56991545570e-6; + constexpr Real B013 = -2.72956962370e-7; + constexpr Real B020 = -3.74358423440e-5; + constexpr Real B021 = -2.36783083610e-7; + constexpr Real B022 = 3.91373870800e-7; + constexpr Real B030 = 2.41414794830e-5; + constexpr Real B031 = -3.45587736550e-6; + constexpr Real B032 = 7.76188880920e-9; + constexpr Real B040 = -8.75958731540e-6; + constexpr Real B041 = 1.29567177830e-6; + constexpr Real B050 = -3.30527589000e-7; + constexpr Real B100 = 1.33856134076e-3; + constexpr Real B101 = -6.95849219480e-5; + constexpr Real B102 = -9.62445031940e-6; + constexpr Real B103 = 3.34926075600e-8; + constexpr Real B110 = -8.71853571220e-5; + constexpr Real B111 = 2.22016695300e-5; + constexpr Real B112 = 1.09241497668e-5; + constexpr Real B120 = 7.18156455200e-5; + constexpr Real B121 = 5.85666925900e-6; + constexpr Real B122 = -1.31462208134e-6; + constexpr Real B130 = -2.87072660960e-5; + constexpr Real B131 = 6.33106121560e-7; + constexpr Real B140 = 8.74073611960e-6; + constexpr Real B200 = -2.55143801811e-3; + constexpr Real B201 = 1.12412331915e-4; + constexpr Real B202 = 1.47789320994e-5; + constexpr Real B210 = 1.03597385484e-4; + constexpr Real B211 = -2.95341353532e-5; + constexpr Real B212 = -4.06325568810e-6; + constexpr Real B220 = -5.60957525610e-5; + constexpr Real B221 = -1.46478417600e-6; + constexpr Real B230 = 6.85899736680e-6; + constexpr Real B300 = 2.32344279772e-3; + constexpr Real B301 = -6.92888744480e-5; + constexpr Real B302 = -7.12478989080e-6; + constexpr Real B310 = -4.78376391520e-5; + constexpr Real B311 = 1.03636901040e-5; + constexpr Real B320 = 1.54381356976e-5; + constexpr Real B400 = -1.05461852535e-3; + constexpr Real B401 = 1.54637136265e-5; + constexpr Real B410 = 6.93229729050e-6; + constexpr Real B500 = 1.91594743830e-4; + + DSsPCoeffs[4 + 5 * KVec] = B004; + DSsPCoeffs[3 + 5 * KVec] = B013 * Tt + B103 * Ss + B003; + DSsPCoeffs[2 + 5 * KVec] = ((B032 * Tt + B122 * Ss + B022) * Tt + + (B212 * Ss + B112) * Ss + B012) * + Tt + + ((B302 * Ss + B202) * Ss + B102) * Ss + B002; + DSsPCoeffs[1 + 5 * KVec] = + (((B041 * Tt + B131 * Ss + B031) * Tt + (B221 * Ss + B121) * Ss + + B021) * + Tt + + ((B311 * Ss + B211) * Ss + B111) * Ss + B011) * + Tt + + (((B401 * Ss + B301) * Ss + B201) * Ss + B101) * Ss + B001; + DSsPCoeffs[0 + 5 * KVec] = + ((((B050 * Tt + B140 * Ss + B040) * Tt + (B230 * Ss + B130) * Ss + + B030) * + Tt + + ((B320 * Ss + B220) * Ss + B120) * Ss + B020) * + Tt + + (((B410 * Ss + B310) * Ss + B210) * Ss + B110) * Ss + B010) * + Tt + + ((((B500 * Ss + B400) * Ss + B300) * Ss + B200) * Ss + B100) * Ss + + B000; + } + + /// Evaluate one of the degree-4 derivative pressure polynomials assembled + /// by calcPCoeffsDTt or calcPCoeffsDSs. P is relative pressure in dbar. + KOKKOS_FUNCTION Real calcDeltaDeriv(const Real (&DPCoeffs)[5 * VecLength], + const I4 KVec, const Real P) const { + + Real Pp = P * PNorm; + + Real DDelta = + (((DPCoeffs[4 + 5 * KVec] * Pp + DPCoeffs[3 + 5 * KVec]) * Pp + + DPCoeffs[2 + 5 * KVec]) * + Pp + + DPCoeffs[1 + 5 * KVec]) * + Pp + + DPCoeffs[0 + 5 * KVec]; + + return DDelta; + } + + /// Evaluate the derivative of the TEOS-10 pressure polynomial with respect + /// to pressure, from the coefficients calcPCoeffs has already assembled for + /// the specific volume itself. P is relative pressure in dbar and the + /// result is per dbar. + KOKKOS_FUNCTION Real calcDeltaDP(const Real (&SpecVolPCoeffs)[6 * VecLength], + const I4 KVec, const Real P) const { + + Real Pp = P * PNorm; + + Real DDelta = (((5.0_Real * SpecVolPCoeffs[5 + 6 * KVec] * Pp + + 4.0_Real * SpecVolPCoeffs[4 + 6 * KVec]) * + Pp + + 3.0_Real * SpecVolPCoeffs[3 + 6 * KVec]) * + Pp + + 2.0_Real * SpecVolPCoeffs[2 + 6 * KVec]) * + Pp + + SpecVolPCoeffs[1 + 6 * KVec]; + + return DDelta * PNorm; + } + + /// Calculate the derivative of the TEOS-10 reference profile with respect + /// to pressure. P is relative pressure in dbar and the result is per dbar. + /// The reference profile does not depend on temperature or salinity, so it + /// contributes only to the pressure derivative -- but it must not be left + /// out of that one. + KOKKOS_FUNCTION Real calcRefProfileDP(Real P) const { + constexpr Real V00 = -4.4015007269e-05; + constexpr Real V01 = 6.9232335784e-06; + constexpr Real V02 = -7.5004675975e-07; + constexpr Real V03 = 1.7009109288e-08; + constexpr Real V04 = -1.6884162004e-08; + constexpr Real V05 = 1.9613503930e-09; + Real Pp = P * PNorm; + + Real DV0 = + (((((6.0_Real * V05 * Pp + 5.0_Real * V04) * Pp + 4.0_Real * V03) * + Pp + + 3.0_Real * V02) * + Pp + + 2.0_Real * V01) * + Pp + + V00); + + return DV0 * PNorm; + } + + /// Calculate the TEOS-10 specific volume and its three first derivatives at + /// a single state. P is the relative pressure (gauge pressure in Pa, i.e. + /// absolute pressure minus the standard atmosphere). The derivatives are + /// returned per degC, per (g/kg), and per Pa respectively. + KOKKOS_FUNCTION void calcSpecVolAndDerivs(const Real Ct, const Real Sa, + const Real P, Real &SpecVol, + Real &SpecVolDCt, Real &SpecVolDSa, + Real &SpecVolDP) const { + + Real SpecVolPCoeffs[6 * VecLength]; + Real DTtPCoeffs[5 * VecLength]; + Real DSsPCoeffs[5 * VecLength]; + + const Real Ss = Kokkos::sqrt((Sa + DeltaS) / SaNorm); + const Real Tt = Ct / CtNorm; + const Real Pdb = P * Pa2Db; + + calcPCoeffs(SpecVolPCoeffs, 0, Ct, Sa); + calcPCoeffsDTt(DTtPCoeffs, 0, Ss, Tt); + calcPCoeffsDSs(DSsPCoeffs, 0, Ss, Tt); + + SpecVol = calcRefProfile(Pdb) + calcDelta(SpecVolPCoeffs, 0, Pdb); + + /// Chain rule from the normalized variables of the polynomial to the + /// physical ones: dTt/dCt = 1 / CtNorm, dSs/dSa = 1 / (2 SaNorm Ss), + /// and dPdb/dP = Pa2Db. + SpecVolDCt = calcDeltaDeriv(DTtPCoeffs, 0, Pdb) / CtNorm; + SpecVolDSa = + calcDeltaDeriv(DSsPCoeffs, 0, Pdb) * 0.5_Real / (SaNorm * Ss); + SpecVolDP = + (calcRefProfileDP(Pdb) + calcDeltaDP(SpecVolPCoeffs, 0, Pdb)) * Pa2Db; + } + + /// Calculate the TEOS-10 specific volume and its three first derivatives + /// over a vertical chunk of a cell. Pressure is the relative pressure in + /// Pa; the derivatives are per degC, per (g/kg), and per Pa. + KOKKOS_FUNCTION void + calcSpecVolDerivs(Array2DReal SpecVol, Array2DReal SpecVolDCt, + Array2DReal SpecVolDSa, Array2DReal SpecVolDP, I4 ICell, + I4 KChunk, const Array2DReal &ConservTemp, + const Array2DReal &AbsSalinity, + const Array2DReal &Pressure) const { + + Real SpecVolPCoeffs[6 * VecLength]; + Real DTtPCoeffs[5 * VecLength]; + Real DSsPCoeffs[5 * VecLength]; + + const I4 KStart = chunkStart(KChunk, MinLayerCell(ICell)); + const I4 KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); + + for (int KVec = 0; KVec < KLen; ++KVec) { + const I4 K = KStart + KVec; + const Real Ct = ConservTemp(ICell, K); + const Real Sa = AbsSalinity(ICell, K); + const Real Ss = Kokkos::sqrt((Sa + DeltaS) / SaNorm); + const Real Tt = Ct / CtNorm; + const Real Pdb = Pressure(ICell, K) * Pa2Db; + + /// Assemble the pressure polynomial coefficients for the specific + /// volume and for its temperature and salinity derivatives. All three + /// use the same normalized state, so the equation of state is + /// evaluated only once per cell and layer. + calcPCoeffs(SpecVolPCoeffs, KVec, Ct, Sa); + calcPCoeffsDTt(DTtPCoeffs, KVec, Ss, Tt); + calcPCoeffsDSs(DSsPCoeffs, KVec, Ss, Tt); + + SpecVol(ICell, K) = + calcRefProfile(Pdb) + calcDelta(SpecVolPCoeffs, KVec, Pdb); + + SpecVolDCt(ICell, K) = calcDeltaDeriv(DTtPCoeffs, KVec, Pdb) / CtNorm; + SpecVolDSa(ICell, K) = + calcDeltaDeriv(DSsPCoeffs, KVec, Pdb) * 0.5_Real / (SaNorm * Ss); + SpecVolDP(ICell, K) = + (calcRefProfileDP(Pdb) + calcDeltaDP(SpecVolPCoeffs, KVec, Pdb)) * + Pa2Db; + } + } + /// Calculate 2nd derivative of Gibbs wrt pot temp at ref P for TEOS-10 KOKKOS_FUNCTION Real calcGibbsDerivPt0Pt0(Real Sa, Real P) const { Real x2 = Sfac * Sa; From db5d3223e3cf54302acb92a4adb70c55f601bbf5 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 29 Jul 2026 09:29:25 -0500 Subject: [PATCH 38/60] Add specific volume derivatives for linear and constant EOS Give LinearEos and ConstantEos the same calcSpecVolDerivs entry point the TEOS-10 functor now has, so the higher-order pressure gradient can be run with any of the three equations of state rather than only with TEOS-10. Both are closed form. For the linear EOS the derivatives with respect to conservative temperature and absolute salinity are -DRhodT and -DRhodS times the square of the specific volume, and there is no pressure dependence at all; for the constant EOS all three vanish. The idealized Polaris cases that use these options therefore get an exactly known reference to test the pressure gradient against. Co-Authored-By: Claude Opus 5 --- components/omega/src/ocn/Eos.h | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/components/omega/src/ocn/Eos.h b/components/omega/src/ocn/Eos.h index 26974884ae8f..31c869591571 100644 --- a/components/omega/src/ocn/Eos.h +++ b/components/omega/src/ocn/Eos.h @@ -768,6 +768,33 @@ class LinearEos { } } + /// Calculate the linear specific volume and its three first derivatives + /// over a vertical chunk of a cell. With + /// SpecVol = 1 / (RhoT0S0 + DRhodT * Ct + DRhodS * Sa) + /// the derivatives are -DRhodT * SpecVol^2 and -DRhodS * SpecVol^2, and + /// the linear EOS has no pressure dependence at all. + KOKKOS_FUNCTION void + calcSpecVolDerivs(Array2DReal SpecVol, Array2DReal SpecVolDCt, + Array2DReal SpecVolDSa, Array2DReal SpecVolDP, I4 ICell, + I4 KChunk, const Array2DReal &ConservTemp, + const Array2DReal &AbsSalinity) const { + + const I4 KStart = chunkStart(KChunk, MinLayerCell(ICell)); + const I4 KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); + + for (int KVec = 0; KVec < KLen; ++KVec) { + const I4 K = KStart + KVec; + const Real Sv = + 1.0_Real / (RhoT0S0 + (DRhodT * ConservTemp(ICell, K) + + DRhodS * AbsSalinity(ICell, K))); + + SpecVol(ICell, K) = Sv; + SpecVolDCt(ICell, K) = -DRhodT * Sv * Sv; + SpecVolDSa(ICell, K) = -DRhodS * Sv * Sv; + SpecVolDP(ICell, K) = 0.0_Real; + } + } + private: Array1DI4 MinLayerCell; Array1DI4 MaxLayerCell; @@ -797,6 +824,29 @@ class ConstantEos { } } + /// Calculate the constant specific volume and its three first derivatives + /// over a vertical chunk of a cell. The specific volume does not depend on + /// temperature, salinity or pressure, so all three derivatives vanish. + KOKKOS_FUNCTION void + calcSpecVolDerivs(Array2DReal SpecVol, Array2DReal SpecVolDCt, + Array2DReal SpecVolDSa, Array2DReal SpecVolDP, I4 ICell, + I4 KChunk, const Array2DReal &ConservTemp, + const Array2DReal &AbsSalinity) const { + + const I4 KStart = chunkStart(KChunk, MinLayerCell(ICell)); + const I4 KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); + (void)ConservTemp; + (void)AbsSalinity; + + for (int KVec = 0; KVec < KLen; ++KVec) { + const I4 K = KStart + KVec; + SpecVol(ICell, K) = 1.0_Real / RhoSw; + SpecVolDCt(ICell, K) = 0.0_Real; + SpecVolDSa(ICell, K) = 0.0_Real; + SpecVolDP(ICell, K) = 0.0_Real; + } + } + private: Array1DI4 MinLayerCell; Array1DI4 MaxLayerCell; From 09edcbccbdb6d8ba29088a10358a03f98cc1a41e Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 29 Jul 2026 09:31:04 -0500 Subject: [PATCH 39/60] Add Eos::computeSpecVolAndDerivs Add the array-level entry point that the higher-order pressure gradient will call, dispatching on the configured EOS to the calcSpecVolDerivs kernel of the corresponding functor and filling the specific volume and its three first derivatives in one pass. Eos owns the SpecVolDCt, SpecVolDSa and SpecVolDP arrays just as it owns SpecVol, allocating them in the constructor and registering them as fields in the Eos group so they can be written to a stream. Their valid range spans the full range of Real rather than starting at zero, since the salinity derivative is negative everywhere and the temperature derivative is negative in cold, nearly fresh water. Since computeSpecVolAndDerivs fills SpecVol as well, it replaces a call to computeSpecVol rather than accompanying one. The two are kept separate because the derivatives roughly double the TEOS-10 arithmetic per cell and layer, and only the higher-order pressure gradient needs them. Co-Authored-By: Claude Opus 5 --- components/omega/src/ocn/Eos.cpp | 122 +++++++++++++++++++++++++++++++ components/omega/src/ocn/Eos.h | 21 +++++- 2 files changed, 141 insertions(+), 2 deletions(-) diff --git a/components/omega/src/ocn/Eos.cpp b/components/omega/src/ocn/Eos.cpp index 799981420aab..c1bc5fccf0b3 100644 --- a/components/omega/src/ocn/Eos.cpp +++ b/components/omega/src/ocn/Eos.cpp @@ -49,6 +49,11 @@ Eos::Eos(const std::string &Name, ///< [in] Name for eos object Array2DReal("SpecVolDisplaced", Mesh->NCellsSize, VCoord->NVertLayers); BruntVaisalaFreqSq = Array2DReal("BruntVaisalaFreqSq", Mesh->NCellsSize, VCoord->NVertLayersP1); + SpecVolDCt = + Array2DReal("SpecVolDCt", Mesh->NCellsSize, VCoord->NVertLayers); + SpecVolDSa = + Array2DReal("SpecVolDSa", Mesh->NCellsSize, VCoord->NVertLayers); + SpecVolDP = Array2DReal("SpecVolDP", Mesh->NCellsSize, VCoord->NVertLayers); defineFields(); } @@ -255,6 +260,72 @@ void Eos::computeSpecVolDisp(const Array2DReal &ConservTemp, } } +/// Compute specific volume and its first derivatives for all cells/layers +void Eos::computeSpecVolAndDerivs(const Array2DReal &ConservTemp, + const Array2DReal &AbsSalinity, + const Array2DReal &Pressure) { + OMEGA_SCOPE(LocSpecVol, SpecVol); /// Local views for computation + OMEGA_SCOPE(LocSpecVolDCt, SpecVolDCt); /// Temperature derivative + OMEGA_SCOPE(LocSpecVolDSa, SpecVolDSa); /// Salinity derivative + OMEGA_SCOPE(LocSpecVolDP, SpecVolDP); /// Pressure derivative + OMEGA_SCOPE(LocComputeSpecVolLinear, + ComputeSpecVolLinear); /// Local view for linear EOS computation + OMEGA_SCOPE(LocComputeSpecVolTeos10, + ComputeSpecVolTeos10); /// Local view for TEOS-10 computation + OMEGA_SCOPE(LocComputeSpecVolConstant, + ComputeSpecVolConstant); /// Local view for constant computation + OMEGA_SCOPE(MinLayerCell, VCoord->MinLayerCell); + OMEGA_SCOPE(MaxLayerCell, VCoord->MaxLayerCell); + + /// Dispatch to the correct EOS calculation + if (EosChoice == EosType::LinearEos) { + parallelForOuter( + "eos-derivs-linear", {Mesh->NCellsAll}, + KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { + const int KMin = MinLayerCell(ICell); + const int KMax = MaxLayerCell(ICell); + const int KRange = vertRangeChunked(KMin, KMax); + + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocComputeSpecVolLinear.calcSpecVolDerivs( + LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, + ICell, KChunk, ConservTemp, AbsSalinity); + }); + }); + } else if (EosChoice == EosType::Teos10Eos) { + parallelForOuter( + "eos-derivs-teos10", {Mesh->NCellsAll}, + KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { + const int KMin = MinLayerCell(ICell); + const int KMax = MaxLayerCell(ICell); + const int KRange = vertRangeChunked(KMin, KMax); + + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocComputeSpecVolTeos10.calcSpecVolDerivs( + LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, + ICell, KChunk, ConservTemp, AbsSalinity, Pressure); + }); + }); + } else if (EosChoice == EosType::ConstantEos) { + parallelForOuter( + "eos-derivs-constant", {Mesh->NCellsAll}, + KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { + const int KMin = MinLayerCell(ICell); + const int KMax = MaxLayerCell(ICell); + const int KRange = vertRangeChunked(KMin, KMax); + + parallelForInner( + Team, KRange, INNER_LAMBDA(int KChunk) { + LocComputeSpecVolConstant.calcSpecVolDerivs( + LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, + ICell, KChunk, ConservTemp, AbsSalinity); + }); + }); + } +} + /// Compute squared Brunt-Vaisala frequency for all cells/layers void Eos::computeBruntVaisalaFreqSq(const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity, @@ -356,10 +427,16 @@ void Eos::defineFields() { SpecVolFldName = "SpecVol"; SpecVolDisplacedFldName = "SpecVolDisplaced"; BruntVaisalaFreqSqFldName = "BruntVaisalaFreqSq"; + SpecVolDCtFldName = "SpecVolDCt"; + SpecVolDSaFldName = "SpecVolDSa"; + SpecVolDPFldName = "SpecVolDP"; if (Name != "Default") { SpecVolFldName.append(Name); SpecVolDisplacedFldName.append(Name); BruntVaisalaFreqSqFldName.append(Name); + SpecVolDCtFldName.append(Name); + SpecVolDSaFldName.append(Name); + SpecVolDPFldName.append(Name); } /// Create fields for state variables @@ -392,6 +469,45 @@ void Eos::defineFields() { DimNames // Dimension names ); + /// The specific volume derivatives are legitimately negative, so their + /// valid range spans the full range of Real rather than starting at zero + auto SpecVolDCtField = Field::create( + SpecVolDCtFldName, // Field name + "Derivative of specific volume with respect to conservative " + "temperature", // Long Name + "m3 kg-1 degC-1", // Units + // CF-ish Name + "sea_water_specific_volume_derivative_wrt_conservative_temperature", + std::numeric_limits::lowest(), // Min valid value + std::numeric_limits::max(), // Max valid value + NDims, // Number of dimensions + DimNames // Dimension names + ); + + auto SpecVolDSaField = Field::create( + SpecVolDSaFldName, // Field name + "Derivative of specific volume with respect to absolute " + "salinity", // Long Name + "m3 g-1", // Units + // CF-ish Name + "sea_water_specific_volume_derivative_wrt_absolute_salinity", + std::numeric_limits::lowest(), // Min valid value + std::numeric_limits::max(), // Max valid value + NDims, // Number of dimensions + DimNames // Dimension names + ); + + auto SpecVolDPField = Field::create( + SpecVolDPFldName, // Field name + "Derivative of specific volume with respect to pressure", // Long Name + "m3 kg-1 Pa-1", // Units + "sea_water_specific_volume_derivative_wrt_pressure", // CF-ish Name + std::numeric_limits::lowest(), // Min valid value + std::numeric_limits::max(), // Max valid value + NDims, // Num dimensions + DimNames // Dimension names + ); + // Brunt-Vaisala frequency is located at interfaces DimNames[1] = "NVertLayersP1"; @@ -418,11 +534,17 @@ void Eos::defineFields() { EosGroup->addField(SpecVolDisplacedFldName); EosGroup->addField(SpecVolFldName); EosGroup->addField(BruntVaisalaFreqSqFldName); + EosGroup->addField(SpecVolDCtFldName); + EosGroup->addField(SpecVolDSaFldName); + EosGroup->addField(SpecVolDPFldName); // Attach Kokkos views to the fields SpecVolDisplacedField->attachData(SpecVolDisplaced); SpecVolField->attachData(SpecVol); BruntVaisalaFreqSqField->attachData(BruntVaisalaFreqSq); + SpecVolDCtField->attachData(SpecVolDCt); + SpecVolDSaField->attachData(SpecVolDSa); + SpecVolDPField->attachData(SpecVolDP); } // end defineIOFields diff --git a/components/omega/src/ocn/Eos.h b/components/omega/src/ocn/Eos.h index 31c869591571..e2ce804dbd36 100644 --- a/components/omega/src/ocn/Eos.h +++ b/components/omega/src/ocn/Eos.h @@ -1104,14 +1104,20 @@ class Eos { Array2DReal SpecVol; ///< Specific volume field at level centers Array2DReal SpecVolDisplaced; ///< Displaced specific volume field Array2DReal BruntVaisalaFreqSq; ///< Squared Brunt-Vaisala frequency field + Array2DReal SpecVolDCt; ///< d(SpecVol)/d(ConservTemp), per degC + Array2DReal SpecVolDSa; ///< d(SpecVol)/d(AbsSalinity), per (g/kg) + Array2DReal SpecVolDP; ///< d(SpecVol)/d(Pressure), per Pa std::string SpecVolFldName; ///< Field name for specific volume std::string SpecVolDisplacedFldName; ///< Field name for displaced specific volume std::string BruntVaisalaFreqSqFldName; ///< Field name for squared ///< Brunt-Vaisala frequency - std::string EosGroupName; ///< EOS group name (for config) - std::string Name; ///< Name of this EOS instance + std::string SpecVolDCtFldName; ///< Field name for temperature derivative + std::string SpecVolDSaFldName; ///< Field name for salinity derivative + std::string SpecVolDPFldName; ///< Field name for pressure derivative + std::string EosGroupName; ///< EOS group name (for config) + std::string Name; ///< Name of this EOS instance /// Compute specific volume for all cells/layers void computeSpecVol(const Array2DReal &ConservTemp, @@ -1123,6 +1129,17 @@ class Eos { const Array2DReal &AbsSalinity, const Array2DReal &Pressure, I4 KDisp); + /// Compute specific volume together with its first derivatives with respect + /// to conservative temperature, absolute salinity and pressure, in a single + /// pass over the equation of state. Pressure is the relative pressure in Pa + /// and the derivatives are returned per degC, per (g/kg) and per Pa. The + /// results are stored in the SpecVol, SpecVolDCt, SpecVolDSa and SpecVolDP + /// members. Since SpecVol is computed here too, this replaces rather than + /// accompanies a call to computeSpecVol. + void computeSpecVolAndDerivs(const Array2DReal &ConservTemp, + const Array2DReal &AbsSalinity, + const Array2DReal &Pressure); + /// Compute squared Brunt-Vaisala frequency for all cells/layers void computeBruntVaisalaFreqSq(const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity, From d7487f2badc8f4292b04d5d4654dcd90a960b88c Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 29 Jul 2026 09:43:50 -0500 Subject: [PATCH 40/60] Add unit tests for TEOS-10 specific volume derivatives Check the new derivatives against the unmodified GSW-C library over a cross product of 216 states spanning the oceanographic range and its corners, including fresh water, sub-zero temperatures and the full pressure range. Add an array-level test over the mesh with a state that varies with depth, so the device kernel and the vertical chunking are exercised over a range of values rather than a single one, and closed-form tests for the linear and constant options. Also compare the thermal expansion and haline contraction coefficients used by the Brunt-Vaisala frequency against gsw_specvol_alpha_beta. Those two functions were previously exercised only through a single hardcoded BruntVaisalaFreqSq value at a tolerance too loose to catch a mistake in either; the check is added before the following commit rewrites them. Measured agreement with GSW-C: 2.4e-14 for the specific volume, 3.1e-14 for the temperature derivative, 8.5e-15 for the salinity derivative, and 2.4e-14 for alpha and beta. The pressure derivative agrees only to 2.3e-12 and is gated separately at 1e-10. The discrepancy is GSW-C's: its v_P comes from a table of coefficients pre-multiplied by their pressure exponents and rounded, so it departs from the exact derivative of the 75-term polynomial by about 2e-12 at 10000 dbar, growing with pressure. Evaluating the exact derivative in 60-digit arithmetic puts the Omega value within 1e-16 of it and GSW-C's at 1.8e-12, and rounding the coefficient table to 11 digits reproduces GSW-C's error pattern. The looser gate therefore bounds GSW-C's rounding rather than ours. Add a finite-difference check as well. It is redundant with the GSW-C comparison while that library is present and correct, which is the point: it pins the unit convention of the Omega interface, per degC, per (g/kg) and per Pa, without reference to GSW, and would catch a pressure derivative that silently became per dbar. Co-Authored-By: Claude Opus 5 --- components/omega/test/ocn/EosTest.cpp | 633 +++++++++++++++++++++++++- 1 file changed, 632 insertions(+), 1 deletion(-) diff --git a/components/omega/test/ocn/EosTest.cpp b/components/omega/test/ocn/EosTest.cpp index 0e7eb2c5be76..74637e6f13e6 100644 --- a/components/omega/test/ocn/EosTest.cpp +++ b/components/omega/test/ocn/EosTest.cpp @@ -54,6 +54,14 @@ const Real LinearBVFExpValue = const Real GswBVFExpValue = 0.02081197958166906; // Expected value from GSW-C library +/// Linear EOS coefficients, matching the Linear subsection of the Eos group in +/// the test configuration. The expected derivatives follow from +/// SpecVol = 1 / (RhoT0S0 + DRhodT * Ct + DRhodS * Sa). +const Real LinearDRhodT = -0.2; +const Real LinearDRhodS = 0.8; +const Real LinearDCtExpValue = -LinearDRhodT * LinearExpValue * LinearExpValue; +const Real LinearDSaExpValue = -LinearDRhodS * LinearExpValue * LinearExpValue; + /// Test input values const Real Sa = 30.0; // Absolute Salinity in g/kg const Real Ct = 10.0; // Conservative Temperature in degC @@ -62,6 +70,48 @@ const Real P = 1000.0 * Db2Pa; // Pressure in Pa const I4 KDisp = 1; // Displate parcel to K=1 for TEOS-10 eos const Real RTol = 1e-10; // Relative tolerance for isApprox checks +/// States spanning the oceanographic range and its corners, used by the +/// specific volume derivative checks. The fresh end is included because that +/// is where the normalized salinity is smallest and the salinity derivative +/// worst conditioned, and the full pressure range because the reference +/// profile supplies almost all of the pressure derivative. +constexpr int NSaTest = 6; +constexpr int NCtTest = 6; +constexpr int NPTest = 6; +const Real SaTest[NSaTest] = {0.0, 5.0, 20.0, 30.0, 35.0, 38.5}; // g/kg +const Real CtTest[NCtTest] = {-2.0, 0.0, 4.0, 10.0, 25.0, 35.0}; // degC +const Real PTest[NPTest] = {0.0, 100.0, 1000.0, + 4000.0, 8000.0, 10000.0}; // dbar + +/// Relative tolerance for the specific volume derivative checks against the +/// GSW-C library. Omega and GSW-C evaluate the same polynomial in different +/// arrangements, so a few ulp of disagreement is expected; anything larger +/// than this means a term has been dropped or mis-scaled. +const Real DerivRTol = 1e-12; + +/// The pressure derivative needs a looser tolerance, and the reason is on the +/// GSW-C side rather than ours. GSW-C evaluates its v_P from a table of +/// coefficients that have been pre-multiplied by their pressure exponents and +/// rounded, so its result departs from the exact derivative of the 75-term +/// polynomial by about 2e-12 relative at 10000 dbar, growing with pressure. +/// The Omega implementation differentiates the full-precision coefficients and +/// agrees with the exact derivative, evaluated in 60-digit arithmetic, to +/// around 1e-16. This tolerance therefore bounds GSW-C's rounding, not ours; +/// it is still far tighter than any real mistake would produce, and the +/// finite-difference check below pins the value independently. +const Real DerivDPRTol = 1e-10; + +/// The temperature derivative passes through zero near the density maximum of +/// nearly fresh water, where a relative tolerance means nothing. This absolute +/// floor sits well above the roundoff of the polynomial sum that forms it +/// (terms of order 1e-5, so roundoff of order 1e-21) and far below any value +/// of physical interest (order 1e-7). +const Real DerivDCtATol = 1e-19; + +/// Likewise for the thermal expansion coefficient, which is the temperature +/// derivative divided by the specific volume (order 1e-3). +const Real AlphaATol = 1e-16; + /// The initialization routine for Eos testing. It calls various /// init routines, including the creation of the default decomposition. void initEosTest(const std::string &mesh) { @@ -706,6 +756,330 @@ void testBruntVaisalaFreqSqTeos10() { return; } +/// Test the array-level TEOS-10 specific volume derivatives over the mesh. +/// +/// The state varies with depth rather than being uniform, so that the check +/// covers a range of values and exercises the vertical chunking, and the +/// expected values are obtained layer by layer from GSW-C on the host. +void testEosTeos10Derivs() { + /// Get mesh and coordinate info + const auto Mesh = HorzMesh::getDefault(); + const auto VCoord = VertCoord::getDefault(); + VCoord->NVertLayers = NVertLayers; + I4 NCellsSize = Mesh->NCellsSize; + /// Get Eos instance to test + Eos *TestEos = Eos::getInstance(); + TestEos->EosChoice = EosType::Teos10Eos; + + /// Create the ocean state arrays + Array2DReal SArray = Array2DReal("SArray", NCellsSize, NVertLayers); + Array2DReal TArray = Array2DReal("TArray", NCellsSize, NVertLayers); + Array2DReal PArray = Array2DReal("PArray", NCellsSize, NVertLayers); + deepCopy(TestEos->SpecVol, 0.0); + deepCopy(TestEos->SpecVolDCt, 0.0); + deepCopy(TestEos->SpecVolDSa, 0.0); + deepCopy(TestEos->SpecVolDP, 0.0); + + /// A state that gets saltier, colder and deeper with depth, spanning a + /// realistic part of the oceanographic range over the column + parallelFor( + "populateDerivArrays", {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(I4 ICell, I4 K) { + SArray(ICell, K) = Sa + 0.1_Real * K; + TArray(ICell, K) = Ct - 0.15_Real * K; + PArray(ICell, K) = (100.0_Real + 150.0_Real * K) * Db2Pa; + }); + + /// Compute specific volume and its derivatives + TestEos->computeSpecVolAndDerivs(TArray, SArray, PArray); + + /// Take local handles on the Eos members for the reduction kernels + Array2DReal SpecVol = TestEos->SpecVol; + Array2DReal SpecVolDCt = TestEos->SpecVolDCt; + Array2DReal SpecVolDSa = TestEos->SpecVolDSa; + Array2DReal SpecVolDP = TestEos->SpecVolDP; + + /// Expected values per layer from GSW-C, computed on the host and copied to + /// the device for the comparison + HostArray1DReal ExpSpecVolH("ExpSpecVolH", NVertLayers); + HostArray1DReal ExpDCtH("ExpDCtH", NVertLayers); + HostArray1DReal ExpDSaH("ExpDSaH", NVertLayers); + HostArray1DReal ExpDPH("ExpDPH", NVertLayers); + + for (int K = 0; K < NVertLayers; ++K) { + const double SaVal = Sa + 0.1 * K; + const double CtVal = Ct - 0.15 * K; + const double PDb = 100.0 + 150.0 * K; + + double GswDSa, GswDCt, GswDP; + gsw_specvol_first_derivatives(SaVal, CtVal, PDb, &GswDSa, &GswDCt, + &GswDP); + + ExpSpecVolH(K) = gsw_specvol(SaVal, CtVal, PDb); + ExpDCtH(K) = GswDCt; + ExpDSaH(K) = GswDSa; + ExpDPH(K) = GswDP; + } + + auto ExpSpecVol = createDeviceMirrorCopy(ExpSpecVolH); + auto ExpDCt = createDeviceMirrorCopy(ExpDCtH); + auto ExpDSa = createDeviceMirrorCopy(ExpDSaH); + auto ExpDP = createDeviceMirrorCopy(ExpDPH); + + const auto &MinLayerCell = VCoord->MinLayerCell; + const auto &MaxLayerCell = VCoord->MaxLayerCell; + + /// Check all active cells and layers against the expected values + int NumMismatches = 0; + parallelReduceOuter( + "CheckSpecVolDerivs-Teos", {Mesh->NCellsAll}, + KOKKOS_LAMBDA(int ICell, const TeamMember &Team, int &OuterCount) { + int NumMismatchesCol; + const int KMin = MinLayerCell(ICell); + const int KMax = MaxLayerCell(ICell); + const int KRange = vertRange(KMin, KMax); + parallelReduceInner( + Team, KRange, + INNER_LAMBDA(int KOff, int &InnerCount) { + const int K = KMin + KOff; + if (!isApprox(SpecVol(ICell, K), ExpSpecVol(K), DerivRTol) or + !isApprox(SpecVolDCt(ICell, K), ExpDCt(K), DerivRTol, + DerivDCtATol) or + !isApprox(SpecVolDSa(ICell, K), ExpDSa(K), DerivRTol) or + !isApprox(SpecVolDP(ICell, K), ExpDP(K), DerivDPRTol)) { + InnerCount++; + } + }, + NumMismatchesCol); + + Kokkos::single(PerTeam(Team), + [&]() { OuterCount += NumMismatchesCol; }); + }, + NumMismatches); + + // If test fails, print bad values and abort + if (NumMismatches != 0) { + auto SpecVolH = createHostMirrorCopy(SpecVol); + auto SpecVolDCtH = createHostMirrorCopy(SpecVolDCt); + auto SpecVolDSaH = createHostMirrorCopy(SpecVolDSa); + auto SpecVolDPH = createHostMirrorCopy(SpecVolDP); + for (int I = 0; I < Mesh->NCellsAll; ++I) { + for (int K = 0; K < NVertLayers; ++K) { + if (!isApprox(SpecVolH(I, K), ExpSpecVolH(K), DerivRTol)) + LOG_ERROR("EosTest: SpecVol Deriv Bad Value: " + "SpecVol({},{}) = {}; Expected {}", + I, K, SpecVolH(I, K), ExpSpecVolH(K)); + if (!isApprox(SpecVolDCtH(I, K), ExpDCtH(K), DerivRTol, + DerivDCtATol)) + LOG_ERROR("EosTest: SpecVolDCt Bad Value: " + "SpecVolDCt({},{}) = {}; Expected {}", + I, K, SpecVolDCtH(I, K), ExpDCtH(K)); + if (!isApprox(SpecVolDSaH(I, K), ExpDSaH(K), DerivRTol)) + LOG_ERROR("EosTest: SpecVolDSa Bad Value: " + "SpecVolDSa({},{}) = {}; Expected {}", + I, K, SpecVolDSaH(I, K), ExpDSaH(K)); + if (!isApprox(SpecVolDPH(I, K), ExpDPH(K), DerivDPRTol)) + LOG_ERROR("EosTest: SpecVolDP Bad Value: " + "SpecVolDP({},{}) = {}; Expected {}", + I, K, SpecVolDPH(I, K), ExpDPH(K)); + } + } + ABORT_ERROR("EosTest: SpecVol Derivs TEOS FAIL with {} bad values", + NumMismatches); + } + + /// Check that each derivative is registered as a field in the Eos group + /// with the member array attached, so that it can be written to a stream + const std::string DerivFldNames[3] = {TestEos->SpecVolDCtFldName, + TestEos->SpecVolDSaFldName, + TestEos->SpecVolDPFldName}; + const Array2DReal DerivArrays[3] = {SpecVolDCt, SpecVolDSa, SpecVolDP}; + + for (int IFld = 0; IFld < 3; ++IFld) { + const std::string &FldName = DerivFldNames[IFld]; + + if (!Field::exists(FldName)) { + ABORT_ERROR("EosTest: SpecVol Derivs field {} does not exist", + FldName); + } + + if (!FieldGroup::isFieldInGroup(FldName, TestEos->EosGroupName)) { + ABORT_ERROR("EosTest: SpecVol Derivs field {} not in group {}", + FldName, TestEos->EosGroupName); + } + + auto DerivField = Field::get(FldName); + auto FieldData = DerivField->getDataArray(); + if (FieldData.data() != DerivArrays[IFld].data()) { + ABORT_ERROR("EosTest: SpecVol Derivs field {} does not alias the " + "Eos member array", + FldName); + } + } + + return; +} + +/// Test the array-level linear EOS specific volume derivatives, which are +/// known in closed form from the configured linear coefficients +void testEosLinearDerivs() { + /// Get mesh and coordinate info + const auto Mesh = HorzMesh::getDefault(); + const auto VCoord = VertCoord::getDefault(); + VCoord->NVertLayers = NVertLayers; + I4 NCellsSize = Mesh->NCellsSize; + /// Get Eos instance to test + Eos *TestEos = Eos::getInstance(); + TestEos->EosChoice = EosType::LinearEos; + + /// Create and fill ocean state arrays + Array2DReal SArray = Array2DReal("SArray", NCellsSize, NVertLayers); + Array2DReal TArray = Array2DReal("TArray", NCellsSize, NVertLayers); + Array2DReal PArray = Array2DReal("PArray", NCellsSize, NVertLayers); + deepCopy(SArray, Sa); + deepCopy(TArray, Ct); + deepCopy(PArray, P); + deepCopy(TestEos->SpecVol, 0.0); + deepCopy(TestEos->SpecVolDCt, 0.0); + deepCopy(TestEos->SpecVolDSa, 0.0); + deepCopy(TestEos->SpecVolDP, 0.0); + + TestEos->computeSpecVolAndDerivs(TArray, SArray, PArray); + + /// Take local handles on the Eos members for the reduction kernels + Array2DReal SpecVol = TestEos->SpecVol; + Array2DReal SpecVolDCt = TestEos->SpecVolDCt; + Array2DReal SpecVolDSa = TestEos->SpecVolDSa; + Array2DReal SpecVolDP = TestEos->SpecVolDP; + + const auto &MinLayerCell = VCoord->MinLayerCell; + const auto &MaxLayerCell = VCoord->MaxLayerCell; + + /// Check all array values against the expected values + int NumMismatches = 0; + parallelReduceOuter( + "CheckSpecVolDerivs-linear", {Mesh->NCellsAll}, + KOKKOS_LAMBDA(int ICell, const TeamMember &Team, int &OuterCount) { + int NumMismatchesCol; + const int KMin = MinLayerCell(ICell); + const int KMax = MaxLayerCell(ICell); + const int KRange = vertRange(KMin, KMax); + parallelReduceInner( + Team, KRange, + INNER_LAMBDA(int KOff, int &InnerCount) { + const int K = KMin + KOff; + if (!isApprox(SpecVol(ICell, K), LinearExpValue, RTol) or + !isApprox(SpecVolDCt(ICell, K), LinearDCtExpValue, RTol) or + !isApprox(SpecVolDSa(ICell, K), LinearDSaExpValue, RTol) or + SpecVolDP(ICell, K) != 0.0_Real) { + InnerCount++; + } + }, + NumMismatchesCol); + + Kokkos::single(PerTeam(Team), + [&]() { OuterCount += NumMismatchesCol; }); + }, + NumMismatches); + + // If test fails, print bad values and abort + if (NumMismatches != 0) { + auto SpecVolDCtH = createHostMirrorCopy(SpecVolDCt); + auto SpecVolDSaH = createHostMirrorCopy(SpecVolDSa); + auto SpecVolDPH = createHostMirrorCopy(SpecVolDP); + for (int I = 0; I < Mesh->NCellsAll; ++I) { + for (int K = 0; K < NVertLayers; ++K) { + if (!isApprox(SpecVolDCtH(I, K), LinearDCtExpValue, RTol)) + LOG_ERROR("EosTest: SpecVolDCt Linear Bad Value: " + "SpecVolDCt({},{}) = {}; Expected {}", + I, K, SpecVolDCtH(I, K), LinearDCtExpValue); + if (!isApprox(SpecVolDSaH(I, K), LinearDSaExpValue, RTol)) + LOG_ERROR("EosTest: SpecVolDSa Linear Bad Value: " + "SpecVolDSa({},{}) = {}; Expected {}", + I, K, SpecVolDSaH(I, K), LinearDSaExpValue); + if (SpecVolDPH(I, K) != 0.0_Real) + LOG_ERROR("EosTest: SpecVolDP Linear Bad Value: " + "SpecVolDP({},{}) = {}; Expected 0", + I, K, SpecVolDPH(I, K)); + } + } + ABORT_ERROR("EosTest: SpecVol Derivs Linear FAIL with {} bad values", + NumMismatches); + } + + return; +} + +/// Test the array-level constant EOS specific volume derivatives, all of which +/// must be identically zero +void testEosConstantDerivs() { + /// Get mesh and coordinate info + const auto Mesh = HorzMesh::getDefault(); + const auto VCoord = VertCoord::getDefault(); + VCoord->NVertLayers = NVertLayers; + I4 NCellsSize = Mesh->NCellsSize; + /// Get Eos instance to test + Eos *TestEos = Eos::getInstance(); + TestEos->EosChoice = EosType::ConstantEos; + + /// Create and fill ocean state arrays + Array2DReal SArray = Array2DReal("SArray", NCellsSize, NVertLayers); + Array2DReal TArray = Array2DReal("TArray", NCellsSize, NVertLayers); + Array2DReal PArray = Array2DReal("PArray", NCellsSize, NVertLayers); + deepCopy(SArray, Sa); + deepCopy(TArray, Ct); + deepCopy(PArray, P); + deepCopy(TestEos->SpecVol, 0.0); + deepCopy(TestEos->SpecVolDCt, 0.0); + deepCopy(TestEos->SpecVolDSa, 0.0); + deepCopy(TestEos->SpecVolDP, 0.0); + + TestEos->computeSpecVolAndDerivs(TArray, SArray, PArray); + + /// Take local handles on the Eos members for the reduction kernels + Array2DReal SpecVol = TestEos->SpecVol; + Array2DReal SpecVolDCt = TestEos->SpecVolDCt; + Array2DReal SpecVolDSa = TestEos->SpecVolDSa; + Array2DReal SpecVolDP = TestEos->SpecVolDP; + + const auto &MinLayerCell = VCoord->MinLayerCell; + const auto &MaxLayerCell = VCoord->MaxLayerCell; + + /// Check all array values against the expected values + int NumMismatches = 0; + parallelReduceOuter( + "CheckSpecVolDerivs-Constant", {Mesh->NCellsAll}, + KOKKOS_LAMBDA(int ICell, const TeamMember &Team, int &OuterCount) { + int NumMismatchesCol; + const int KMin = MinLayerCell(ICell); + const int KMax = MaxLayerCell(ICell); + const int KRange = vertRange(KMin, KMax); + parallelReduceInner( + Team, KRange, + INNER_LAMBDA(int KOff, int &InnerCount) { + const int K = KMin + KOff; + if (!isApprox(SpecVol(ICell, K), ConstantExpValue, RTol) or + SpecVolDCt(ICell, K) != 0.0_Real or + SpecVolDSa(ICell, K) != 0.0_Real or + SpecVolDP(ICell, K) != 0.0_Real) { + InnerCount++; + } + }, + NumMismatchesCol); + + Kokkos::single(PerTeam(Team), + [&]() { OuterCount += NumMismatchesCol; }); + }, + NumMismatches); + + if (NumMismatches != 0) { + ABORT_ERROR("EosTest: SpecVol Derivs Constant FAIL with {} bad values", + NumMismatches); + } + + return; +} + /// Finalize and clean up all test infrastructure void finalizeEosTest() { Eos::destroyInstance(); @@ -788,6 +1162,249 @@ void checkValueCtFreezing() { return; } +/// Relative difference between two values, zero when both vanish +Real relDiff(Real X, Real Y) { + const Real Scale = std::max(std::abs(X), std::abs(Y)); + return Scale > 0.0 ? std::abs(X - Y) / Scale : 0.0; +} + +/// Test the TEOS-10 specific volume derivatives against the GSW-C library over +/// a range of states. +/// +/// GSW-C is used here unmodified and through its public API, as an independent +/// oracle. The Omega implementation does not derive from it: the derivatives +/// are the analytic derivatives of the Roquet et al. 2015 polynomial that the +/// Teos10Eos functor already carries. +void checkValueGswcSpecVolDerivs() { + + Teos10Eos TestEos(VertCoord::getDefault()); + + int NumBad = 0; + Real WorstSv = 0.0; + Real WorstDCt = 0.0; + Real WorstDSa = 0.0; + Real WorstDP = 0.0; + int NumChecked = 0; + + for (int ISa = 0; ISa < NSaTest; ++ISa) { + for (int ICt = 0; ICt < NCtTest; ++ICt) { + for (int IP = 0; IP < NPTest; ++IP) { + + const Real SaVal = SaTest[ISa]; + const Real CtVal = CtTest[ICt]; + const Real PDb = PTest[IP]; + + Real SpecVol, SpecVolDCt, SpecVolDSa, SpecVolDP; + TestEos.calcSpecVolAndDerivs(CtVal, SaVal, PDb * Db2Pa, SpecVol, + SpecVolDCt, SpecVolDSa, SpecVolDP); + + /// GSW-C takes pressure in dbar and returns the derivatives per + /// (g/kg), per degC, and per Pa + double GswDSa, GswDCt, GswDP; + gsw_specvol_first_derivatives(SaVal, CtVal, PDb, &GswDSa, &GswDCt, + &GswDP); + const double GswSpecVol = gsw_specvol(SaVal, CtVal, PDb); + + WorstSv = std::max(WorstSv, relDiff(SpecVol, GswSpecVol)); + WorstDCt = std::max(WorstDCt, relDiff(SpecVolDCt, GswDCt)); + WorstDSa = std::max(WorstDSa, relDiff(SpecVolDSa, GswDSa)); + WorstDP = std::max(WorstDP, relDiff(SpecVolDP, GswDP)); + ++NumChecked; + + if (!isApprox(SpecVol, GswSpecVol, DerivRTol)) { + LOG_ERROR("EosTest: SpecVol Bad Value at Sa={}, Ct={}, " + "P={} dbar: expected {}, got {}", + SaVal, CtVal, PDb, GswSpecVol, SpecVol); + ++NumBad; + } + if (!isApprox(SpecVolDCt, GswDCt, DerivRTol, DerivDCtATol)) { + LOG_ERROR("EosTest: SpecVolDCt Bad Value at Sa={}, Ct={}, " + "P={} dbar: expected {}, got {}", + SaVal, CtVal, PDb, GswDCt, SpecVolDCt); + ++NumBad; + } + if (!isApprox(SpecVolDSa, GswDSa, DerivRTol)) { + LOG_ERROR("EosTest: SpecVolDSa Bad Value at Sa={}, Ct={}, " + "P={} dbar: expected {}, got {}", + SaVal, CtVal, PDb, GswDSa, SpecVolDSa); + ++NumBad; + } + if (!isApprox(SpecVolDP, GswDP, DerivDPRTol)) { + LOG_ERROR("EosTest: SpecVolDP Bad Value at Sa={}, Ct={}, " + "P={} dbar: expected {}, got {}", + SaVal, CtVal, PDb, GswDP, SpecVolDP); + ++NumBad; + } + } + } + } + + LOG_INFO("EosTest: TEOS-10 derivatives vs GSW-C over {} states, max " + "relative difference: SpecVol {}, d/dCt {}, d/dSa {}, d/dP {}", + NumChecked, WorstSv, WorstDCt, WorstDSa, WorstDP); + + if (NumBad != 0) { + ABORT_ERROR("EosTest: SpecVol derivatives vs GSW-C FAIL with {} bad " + "values", + NumBad); + } + + return; +} + +/// Check the specific volume derivatives against centered finite differences of +/// the Omega specific volume itself. +/// +/// This overlaps the GSW-C comparison above whenever that library is present +/// and correct, and that is deliberate: it pins the unit convention of the +/// Omega interface -- per degC, per (g/kg), and per Pa -- without reference to +/// GSW. A change that silently made the pressure derivative per dbar instead, +/// a factor of 1e4, would be caught here as well as there. +void checkFiniteDiffSpecVolDerivs() { + + Teos10Eos TestEos(VertCoord::getDefault()); + + /// Step sizes and tolerance are set by the finite difference itself: large + /// enough that the difference of two specific volumes is not lost to + /// roundoff, small enough that the truncation error stays below the + /// tolerance. + const Real DCtStep = 1.0e-2; // degC + const Real DSaStep = 1.0e-2; // g/kg + const Real DPStep = 1.0e5; // Pa (10 dbar) + const Real FDRTol = 1.0e-5; // limited by finite difference truncation + const Real FDCtATol = 1.0e-14; // finite difference noise floor + const Real FDSaATol = 1.0e-14; + const Real FDPATol = 1.0e-20; + + /// Evaluate only the specific volume at a perturbed state + auto SpecVolAt = [&TestEos](Real CtVal, Real SaVal, Real PPa) { + Real SpecVol, DCt, DSa, DP; + TestEos.calcSpecVolAndDerivs(CtVal, SaVal, PPa, SpecVol, DCt, DSa, DP); + return SpecVol; + }; + + int NumBad = 0; + + for (int ISa = 0; ISa < NSaTest; ++ISa) { + for (int ICt = 0; ICt < NCtTest; ++ICt) { + for (int IP = 0; IP < NPTest; ++IP) { + + const Real SaVal = SaTest[ISa]; + const Real CtVal = CtTest[ICt]; + const Real PPa = PTest[IP] * Db2Pa; + + Real SpecVol, SpecVolDCt, SpecVolDSa, SpecVolDP; + TestEos.calcSpecVolAndDerivs(CtVal, SaVal, PPa, SpecVol, SpecVolDCt, + SpecVolDSa, SpecVolDP); + + const Real FDCt = (SpecVolAt(CtVal + DCtStep, SaVal, PPa) - + SpecVolAt(CtVal - DCtStep, SaVal, PPa)) / + (2.0_Real * DCtStep); + const Real FDSa = (SpecVolAt(CtVal, SaVal + DSaStep, PPa) - + SpecVolAt(CtVal, SaVal - DSaStep, PPa)) / + (2.0_Real * DSaStep); + const Real FDP = (SpecVolAt(CtVal, SaVal, PPa + DPStep) - + SpecVolAt(CtVal, SaVal, PPa - DPStep)) / + (2.0_Real * DPStep); + + if (!isApprox(SpecVolDCt, FDCt, FDRTol, FDCtATol)) { + LOG_ERROR("EosTest: SpecVolDCt disagrees with finite difference " + "at Sa={}, Ct={}, P={} dbar: {} vs {}", + SaVal, CtVal, PTest[IP], SpecVolDCt, FDCt); + ++NumBad; + } + if (!isApprox(SpecVolDSa, FDSa, FDRTol, FDSaATol)) { + LOG_ERROR("EosTest: SpecVolDSa disagrees with finite difference " + "at Sa={}, Ct={}, P={} dbar: {} vs {}", + SaVal, CtVal, PTest[IP], SpecVolDSa, FDSa); + ++NumBad; + } + if (!isApprox(SpecVolDP, FDP, FDRTol, FDPATol)) { + LOG_ERROR("EosTest: SpecVolDP disagrees with finite difference " + "at Sa={}, Ct={}, P={} dbar: {} vs {}", + SaVal, CtVal, PTest[IP], SpecVolDP, FDP); + ++NumBad; + } + } + } + } + + if (NumBad != 0) { + ABORT_ERROR("EosTest: SpecVol derivatives vs finite differences FAIL " + "with {} bad values", + NumBad); + } + + return; +} + +/// Test the thermal expansion and haline contraction coefficients used by the +/// TEOS-10 Brunt-Vaisala frequency against the GSW-C library. +/// +/// These are the specific volume derivatives divided by the specific volume, +/// so this covers the same polynomial from the other side. Before this check +/// existed, calcAlpha and calcBeta were exercised only through the single +/// hardcoded BruntVaisalaFreqSq value below, which is too loose to catch a +/// mistake in either of them. +void checkValueGswcAlphaBeta() { + + Teos10Eos TestEos(VertCoord::getDefault()); + Teos10BruntVaisalaFreqSq TestBvf(VertCoord::getDefault()); + + int NumBad = 0; + Real WorstAlpha = 0.0; + Real WorstBeta = 0.0; + + for (int ISa = 0; ISa < NSaTest; ++ISa) { + for (int ICt = 0; ICt < NCtTest; ++ICt) { + for (int IP = 0; IP < NPTest; ++IP) { + + const Real SaVal = SaTest[ISa]; + const Real CtVal = CtTest[ICt]; + const Real PDb = PTest[IP]; + + Real SpecVol, SpecVolDCt, SpecVolDSa, SpecVolDP; + TestEos.calcSpecVolAndDerivs(CtVal, SaVal, PDb * Db2Pa, SpecVol, + SpecVolDCt, SpecVolDSa, SpecVolDP); + + const Real Alpha = TestBvf.calcAlpha(SaVal, CtVal, PDb, SpecVol); + const Real Beta = TestBvf.calcBeta(SaVal, CtVal, PDb, SpecVol); + + double GswSpecVol, GswAlpha, GswBeta; + gsw_specvol_alpha_beta(SaVal, CtVal, PDb, &GswSpecVol, &GswAlpha, + &GswBeta); + + WorstAlpha = std::max(WorstAlpha, relDiff(Alpha, GswAlpha)); + WorstBeta = std::max(WorstBeta, relDiff(Beta, GswBeta)); + + if (!isApprox(Alpha, GswAlpha, DerivRTol, AlphaATol)) { + LOG_ERROR("EosTest: Alpha Bad Value at Sa={}, Ct={}, " + "P={} dbar: expected {}, got {}", + SaVal, CtVal, PDb, GswAlpha, Alpha); + ++NumBad; + } + if (!isApprox(Beta, GswBeta, DerivRTol)) { + LOG_ERROR("EosTest: Beta Bad Value at Sa={}, Ct={}, " + "P={} dbar: expected {}, got {}", + SaVal, CtVal, PDb, GswBeta, Beta); + ++NumBad; + } + } + } + } + + LOG_INFO("EosTest: alpha and beta vs GSW-C, max relative difference: " + "alpha {}, beta {}", + WorstAlpha, WorstBeta); + + if (NumBad != 0) { + ABORT_ERROR("EosTest: alpha and beta vs GSW-C FAIL with {} bad values", + NumBad); + } + + return; +} + /// Test that the Eos CT-from-PT helper matches GSW-C void checkValueGswcCtFromPt() { Eos *TestEos = Eos::getInstance(); @@ -822,6 +1439,12 @@ void checkValueGswcPtFromCt() { // Single value test: // --> test calls the external GSW-C library // and compares the specific volume to the published value +// --> next compares the TEOS-10 specific volume and its three first +// derivatives against GSW-C over a range of states +// --> next checks those derivatives against centered finite differences of the +// Omega specific volume, which pins the unit conventions independently of GSW +// --> next compares the thermal expansion and haline contraction coefficients +// against GSW-C over the same range of states // Full array tests: // --> one tests the value on a Eos with linear option // --> next checks the value on a Eos with linear displaced option @@ -829,8 +1452,10 @@ void checkValueGswcPtFromCt() { // calculation // --> next checks the value on a Eos with TEOS-10 option // --> next checks the value on a Eos with TEOS-10 displaced option -// --> last checks the value of the TOES-10 squared Brunt Vaisala Freq. +// --> next checks the value of the TOES-10 squared Brunt Vaisala Freq. // calculation +// --> last checks the specific volume derivatives for each of the three EOS +// options over the whole mesh void eosTest(const std::string &MeshFile = "OmegaMesh.nc") { initEosTest(MeshFile); const auto &Mesh = HorzMesh::getDefault(); @@ -840,6 +1465,9 @@ void eosTest(const std::string &MeshFile = "OmegaMesh.nc") { checkValueCtFreezing(); checkValueGswcCtFromPt(); checkValueGswcPtFromCt(); + checkValueGswcSpecVolDerivs(); + checkFiniteDiffSpecVolDerivs(); + checkValueGswcAlphaBeta(); testEosLinear(); testEosLinearDisplaced(); @@ -848,6 +1476,9 @@ void eosTest(const std::string &MeshFile = "OmegaMesh.nc") { testEosTeos10(); testEosTeos10Displaced(); testBruntVaisalaFreqSqTeos10(); + testEosTeos10Derivs(); + testEosLinearDerivs(); + testEosConstantDerivs(); finalizeEosTest(); From 8020c0835f2e9079335dce8a2d52cab4453dd0dc Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 29 Jul 2026 09:48:48 -0500 Subject: [PATCH 41/60] Compute Brunt-Vaisala coefficients from the specific volume derivatives Rewrite Teos10BruntVaisalaFreqSq::calcAlpha and calcBeta over the TEOS-10 derivative helpers and delete the A and B coefficient tables, which were a second copy of the same 100 constants. Alpha is the temperature derivative of the specific volume divided by the specific volume and beta is minus the salinity derivative divided by it, so both follow directly. The coefficient assemblers are made static, since they carry no state, so the frequency functor can reach them without holding an equation of state instance. This changes answers at roundoff level: the same polynomial is evaluated in a different Horner arrangement, and the normalized salinity is now formed as sqrt((Sa + DeltaS) / SaNorm) as calcPCoeffs does it rather than from a separately rounded reciprocal. Measured against the GSW-C library over the 216 test states, the maximum relative difference moves from 2.4e-14 to 3.1e-14 for alpha and from 2.4e-14 to 3.2e-14 for beta. BruntVaisalaFreqSq is gated at 1e-10 against a hardcoded value and continues to pass unchanged. The guard test added in the previous commit is what makes this safe: alpha and beta are now pinned to gsw_specvol_alpha_beta over the full state range, so a mistake in the rewrite fails there rather than hiding inside the single frequency value. Co-Authored-By: Claude Opus 5 --- components/omega/src/ocn/Eos.h | 209 ++++++++------------------------- 1 file changed, 46 insertions(+), 163 deletions(-) diff --git a/components/omega/src/ocn/Eos.h b/components/omega/src/ocn/Eos.h index e2ce804dbd36..abdac4298462 100644 --- a/components/omega/src/ocn/Eos.h +++ b/components/omega/src/ocn/Eos.h @@ -251,14 +251,16 @@ class Teos10Eos { /// TEOS-10 specific volume with respect to the normalized temperature Tt. /// /// The coefficients are the analytic Tt-derivative of the 75-term - /// polynomial in calcPCoeffs above: A(i,j,k) = (j+1) * V(i,j+1,k). They are - /// the same values used by Teos10BruntVaisalaFreqSq::calcAlpha, regrouped - /// here by power of pressure to match the calcPCoeffs/calcDelta split. - /// The Tt-derivative is one degree lower in pressure than the specific - /// volume itself, so there are five coefficients rather than six. - KOKKOS_FUNCTION void calcPCoeffsDTt(Real (&DTtPCoeffs)[5 * VecLength], - const I4 KVec, const Real Ss, - const Real Tt) const { + /// polynomial in calcPCoeffs above: A(i,j,k) = (j+1) * V(i,j+1,k), grouped + /// here by power of pressure to match the calcPCoeffs/calcDelta split. The + /// Tt-derivative is one degree lower in pressure than the specific volume + /// itself, so there are five coefficients rather than six. + /// + /// This is the only copy of these coefficients: the thermal expansion + /// coefficient used by the Brunt-Vaisala frequency is derived from here. + KOKKOS_FUNCTION static void calcPCoeffsDTt(Real (&DTtPCoeffs)[5 * VecLength], + const I4 KVec, const Real Ss, + const Real Tt) { constexpr Real A000 = -1.56497346750e-5; constexpr Real A001 = 1.85057654290e-5; @@ -340,11 +342,11 @@ class Teos10Eos { /// TEOS-10 specific volume with respect to the normalized salinity Ss. /// /// As above, these are the analytic Ss-derivative of the 75-term - /// polynomial: B(i,j,k) = (i+1) * V(i+1,j,k), the same values used by - /// Teos10BruntVaisalaFreqSq::calcBeta. - KOKKOS_FUNCTION void calcPCoeffsDSs(Real (&DSsPCoeffs)[5 * VecLength], - const I4 KVec, const Real Ss, - const Real Tt) const { + /// polynomial: B(i,j,k) = (i+1) * V(i+1,j,k), and this is the only copy of + /// them; the haline contraction coefficient is derived from here. + KOKKOS_FUNCTION static void calcPCoeffsDSs(Real (&DSsPCoeffs)[5 * VecLength], + const I4 KVec, const Real Ss, + const Real Tt) { constexpr Real B000 = -3.10389819760e-4; constexpr Real B001 = 2.42624687470e-5; @@ -424,8 +426,9 @@ class Teos10Eos { /// Evaluate one of the degree-4 derivative pressure polynomials assembled /// by calcPCoeffsDTt or calcPCoeffsDSs. P is relative pressure in dbar. - KOKKOS_FUNCTION Real calcDeltaDeriv(const Real (&DPCoeffs)[5 * VecLength], - const I4 KVec, const Real P) const { + KOKKOS_FUNCTION static Real + calcDeltaDeriv(const Real (&DPCoeffs)[5 * VecLength], const I4 KVec, + const Real P) { Real Pp = P * PNorm; @@ -893,162 +896,42 @@ class Teos10BruntVaisalaFreqSq { } } - /// Calculate alpha values for the squared Brunt-Vaisala frequency + /// Calculate alpha (the thermal expansion coefficient) for the squared + /// Brunt-Vaisala frequency. Alpha is the temperature derivative of the + /// specific volume divided by the specific volume, so it is formed from the + /// TEOS-10 derivative helpers rather than from a second copy of the same + /// polynomial coefficients. P is relative pressure in dbar and Sp is the + /// specific volume. KOKKOS_FUNCTION Real calcAlpha(Real Sa, Real Ct, Real P, Real Sp) const { - constexpr Real Factor = 0.0248826675584615; - constexpr Real Offset = 5.971840214030754e-1; - constexpr Real PNorm = 1.0e-4; - Real Ss = Kokkos::sqrt(Factor * Sa + Offset); - Real Tt = 0.025_Real * Ct; - Real Pp = P * PNorm; - constexpr Real A000 = -1.56497346750e-5; - constexpr Real A001 = 1.85057654290e-5; - constexpr Real A002 = -1.17363867310e-6; - constexpr Real A003 = -3.65270065530e-7; - constexpr Real A004 = 3.14540999020e-7; - constexpr Real A010 = 5.55242129680e-5; - constexpr Real A011 = -2.34332137060e-5; - constexpr Real A012 = 4.26100574800e-6; - constexpr Real A013 = 5.73918103180e-7; - constexpr Real A020 = -4.95634777770e-5; - constexpr Real A021 = 2.37838968519e-5; - constexpr Real A022 = -1.38397620111e-6; - constexpr Real A030 = 2.76445290808e-5; - constexpr Real A031 = -1.36408749928e-5; - constexpr Real A032 = -2.53411666056e-7; - constexpr Real A040 = -4.02698077700e-6; - constexpr Real A041 = 2.53683834070e-6; - constexpr Real A050 = 1.23258565608e-6; - constexpr Real A100 = 3.50095997640e-5; - constexpr Real A101 = -9.56770881560e-6; - constexpr Real A102 = -5.56991545570e-6; - constexpr Real A103 = -2.72956962370e-7; - constexpr Real A110 = -7.48716846880e-5; - constexpr Real A111 = -4.73566167220e-7; - constexpr Real A112 = 7.82747741600e-7; - constexpr Real A120 = 7.24244384490e-5; - constexpr Real A121 = -1.03676320965e-5; - constexpr Real A122 = 2.32856664276e-8; - constexpr Real A130 = -3.50383492616e-5; - constexpr Real A131 = 5.18268711320e-6; - constexpr Real A140 = -1.65263794500e-6; - constexpr Real A200 = -4.35926785610e-5; - constexpr Real A201 = 1.11008347650e-5; - constexpr Real A202 = 5.46207488340e-6; - constexpr Real A210 = 7.18156455200e-5; - constexpr Real A211 = 5.85666925900e-6; - constexpr Real A212 = -1.31462208134e-6; - constexpr Real A220 = -4.30608991440e-5; - constexpr Real A221 = 9.49659182340e-7; - constexpr Real A230 = 1.74814722392e-5; - constexpr Real A300 = 3.45324618280e-5; - constexpr Real A301 = -9.84471178440e-6; - constexpr Real A302 = -1.35441856270e-6; - constexpr Real A310 = -3.73971683740e-5; - constexpr Real A311 = -9.76522784000e-7; - constexpr Real A320 = 6.85899736680e-6; - constexpr Real A400 = -1.19594097880e-5; - constexpr Real A401 = 2.59092252600e-6; - constexpr Real A410 = 7.71906784880e-6; - constexpr Real A500 = 1.38645945810e-6; + Real DTtPCoeffs[5 * VecLength]; + + const Real Ss = + Kokkos::sqrt((Sa + Teos10Eos::DeltaS) / Teos10Eos::SaNorm); + const Real Tt = Ct / Teos10Eos::CtNorm; + + Teos10Eos::calcPCoeffsDTt(DTtPCoeffs, 0, Ss, Tt); - Real Rval = - A000 + - Ss * (A100 + Ss * (A200 + Ss * (A300 + Ss * (A400 + A500 * Ss)))) + - Tt * (A010 + Ss * (A110 + Ss * (A210 + Ss * (A310 + A410 * Ss))) + - Tt * (A020 + Ss * (A120 + Ss * (A220 + A320 * Ss)) + - Tt * (A030 + Ss * (A130 + A230 * Ss) + - Tt * (A040 + A140 * Ss + A050 * Tt)))) + - Pp * (A001 + Ss * (A101 + Ss * (A201 + Ss * (A301 + A401 * Ss))) + - Tt * (A011 + Ss * (A111 + Ss * (A211 + A311 * Ss)) + - Tt * (A021 + Ss * (A121 + A221 * Ss) + - Tt * (A031 + A131 * Ss + A041 * Tt))) + - Pp * (A002 + Ss * (A102 + Ss * (A202 + A302 * Ss)) + - Tt * (A012 + Ss * (A112 + A212 * Ss) + - Tt * (A022 + A122 * Ss + A032 * Tt)) + - Pp * (A003 + A103 * Ss + A013 * Tt + A004 * Pp))); - - return 0.025_Real * Rval / Sp; + return Teos10Eos::calcDeltaDeriv(DTtPCoeffs, 0, P) / + (Teos10Eos::CtNorm * Sp); } - /// Calculate beta values for the squared Brunt-Vaisala frequency + /// Calculate beta (the haline contraction coefficient) for the squared + /// Brunt-Vaisala frequency. Beta is minus the salinity derivative of the + /// specific volume divided by the specific volume. P is relative pressure + /// in dbar and Sp is the specific volume. KOKKOS_FUNCTION Real calcBeta(Real Sa, Real Ct, Real P, Real Sp) const { - constexpr Real Factor = 0.0248826675584615; - constexpr Real Offset = 5.971840214030754e-1; - constexpr Real PNorm = 1.0e-4; - Real Ss = Kokkos::sqrt(Factor * Sa + Offset); - Real Tt = 0.025_Real * Ct; - Real Pp = P * PNorm; - constexpr Real B000 = -3.10389819760e-4; - constexpr Real B003 = 3.63101885150e-7; - constexpr Real B004 = -1.11471254230e-7; - constexpr Real B010 = 3.50095997640e-5; - constexpr Real B013 = -2.72956962370e-7; - constexpr Real B020 = -3.74358423440e-5; - constexpr Real B030 = 2.41414794830e-5; - constexpr Real B040 = -8.75958731540e-6; - constexpr Real B050 = -3.30527589000e-7; - constexpr Real B100 = 1.33856134076e-3; - constexpr Real B103 = 3.34926075600e-8; - constexpr Real B110 = -8.71853571220e-5; - constexpr Real B120 = 7.18156455200e-5; - constexpr Real B130 = -2.87072660960e-5; - constexpr Real B140 = 8.74073611960e-6; - constexpr Real B200 = -2.55143801811e-3; - constexpr Real B210 = 1.03597385484e-4; - constexpr Real B220 = -5.60957525610e-5; - constexpr Real B230 = 6.85899736680e-6; - constexpr Real B300 = 2.32344279772e-3; - constexpr Real B310 = -4.78376391520e-5; - constexpr Real B320 = 1.54381356976e-5; - constexpr Real B400 = -1.05461852535e-3; - constexpr Real B410 = 6.93229729050e-6; - constexpr Real B500 = 1.91594743830e-4; - constexpr Real B001 = 2.42624687470e-5; - constexpr Real B011 = -9.56770881560e-6; - constexpr Real B021 = -2.36783083610e-7; - constexpr Real B031 = -3.45587736550e-6; - constexpr Real B041 = 1.29567177830e-6; - constexpr Real B101 = -6.95849219480e-5; - constexpr Real B111 = 2.22016695300e-5; - constexpr Real B121 = 5.85666925900e-6; - constexpr Real B131 = 6.33106121560e-7; - constexpr Real B201 = 1.12412331915e-4; - constexpr Real B211 = -2.95341353532e-5; - constexpr Real B221 = -1.46478417600e-6; - constexpr Real B301 = -6.92888744480e-5; - constexpr Real B311 = 1.03636901040e-5; - constexpr Real B401 = 1.54637136265e-5; - constexpr Real B002 = -5.84844329840e-7; - constexpr Real B012 = -5.56991545570e-6; - constexpr Real B022 = 3.91373870800e-7; - constexpr Real B032 = 7.76188880920e-9; - constexpr Real B102 = -9.62445031940e-6; - constexpr Real B112 = 1.09241497668e-5; - constexpr Real B122 = -1.31462208134e-6; - constexpr Real B202 = 1.47789320994e-5; - constexpr Real B212 = -4.06325568810e-6; - constexpr Real B302 = -7.12478989080e-6; + Real DSsPCoeffs[5 * VecLength]; + + const Real Ss = + Kokkos::sqrt((Sa + Teos10Eos::DeltaS) / Teos10Eos::SaNorm); + const Real Tt = Ct / Teos10Eos::CtNorm; + + Teos10Eos::calcPCoeffsDSs(DSsPCoeffs, 0, Ss, Tt); - Real Rval = - B000 + - Ss * (B100 + Ss * (B200 + Ss * (B300 + Ss * (B400 + B500 * Ss)))) + - Tt * (B010 + Ss * (B110 + Ss * (B210 + Ss * (B310 + B410 * Ss))) + - Tt * (B020 + Ss * (B120 + Ss * (B220 + B320 * Ss)) + - Tt * (B030 + Ss * (B130 + B230 * Ss) + - Tt * (B040 + B140 * Ss + B050 * Tt)))) + - Pp * (B001 + Ss * (B101 + Ss * (B201 + Ss * (B301 + B401 * Ss))) + - Tt * (B011 + Ss * (B111 + Ss * (B211 + B311 * Ss)) + - Tt * (B021 + Ss * (B121 + B221 * Ss) + - Tt * (B031 + B131 * Ss + B041 * Tt))) + - Pp * (B002 + Ss * (B102 + Ss * (B202 + B302 * Ss)) + - Tt * (B012 + Ss * (B112 + B212 * Ss) + - Tt * (B022 + B122 * Ss + B032 * Tt)) + - Pp * (B003 + B103 * Ss + B013 * Tt + B004 * Pp))); - - return -0.5_Real * Rval * Factor / (Sp * Ss); + return -0.5_Real * Teos10Eos::calcDeltaDeriv(DSsPCoeffs, 0, P) / + (Teos10Eos::SaNorm * Ss * Sp); } private: From e693b08788c1c672cd406a212b9cbc7bac36004e Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 29 Jul 2026 09:49:52 -0500 Subject: [PATCH 42/60] Document specific volume derivatives in the EOS guides Describe computeSpecVolAndDerivs in the developer guide: the signature, the unit convention, that the results land in Eos members registered as fields in the Eos group, that it replaces rather than accompanies computeSpecVol since it fills SpecVol too, and that the Brunt-Vaisala expansion and contraction coefficients are now derived from them. Record the licensing position, since it is the reason the implementation looks the way it does, and the measured agreement with GSW-C, including why the pressure derivative agrees less well than the other two. Add a shorter user guide section noting that the derivatives exist for all three EOS options, that they carry no configuration of their own, that they cost nothing unless a scheme that needs them is enabled, and that they are available for output like SpecVol. Co-Authored-By: Claude Opus 5 --- components/omega/doc/devGuide/EOS.md | 61 +++++++++++++++++++++++++++ components/omega/doc/userGuide/EOS.md | 12 +++++- 2 files changed, 72 insertions(+), 1 deletion(-) diff --git a/components/omega/doc/devGuide/EOS.md b/components/omega/doc/devGuide/EOS.md index 4ba3c27e294b..939db8e09aaa 100644 --- a/components/omega/doc/devGuide/EOS.md +++ b/components/omega/doc/devGuide/EOS.md @@ -70,6 +70,67 @@ volume arrays, do Eos.computeBruntVaisalaFreqSq(ConservTemp, AbsSalinity, Pressure, SpecVol); ``` +## First derivatives of specific volume + +The `Eos` class can also compute the first derivatives of the specific volume +with respect to conservative temperature, absolute salinity, and pressure, +together with the specific volume itself: + +```c++ +Eos.computeSpecVolAndDerivs(ConservTemp, AbsSalinity, Pressure); +``` + +`Pressure` is the relative pressure (gauge pressure in Pa) as elsewhere in +`Eos`, and the derivatives are returned per `degC`, per `(g/kg)`, and per `Pa` +respectively. Note the pressure derivative is per Pascal, not per decibar. + +The results are stored in the `SpecVolDCt`, `SpecVolDSa` and `SpecVolDP` +members alongside `SpecVol`, and all three are registered as fields in the +`Eos` group so they can be written to a stream. Because `SpecVol` is computed +here as well, `computeSpecVolAndDerivs` replaces a call to `computeSpecVol` +rather than accompanying one; calling both would evaluate the equation of state +twice. The valid range of the derivative fields spans the full range of `Real` +rather than starting at zero, since the salinity derivative is negative +everywhere and the temperature derivative is negative in cold, nearly fresh +water. + +The two methods are kept separate rather than always computing the derivatives +because they roughly double the TEOS-10 arithmetic per cell and layer, and only +the higher-order pressure gradient needs them. + +All four values come from a single pass over the equation of state. For +`EosType::Teos10Eos` the derivatives are the analytic derivatives of the same +75-term polynomial used for the specific volume, evaluated at the same +normalized state, so no second call to the equation of state is made. The +pressure derivative reuses the pressure coefficients already assembled for the +specific volume; the temperature and salinity derivatives need coefficient sets +of their own but share the normalization and the square root. For +`EosType::LinearEos` the derivatives are `-DRhoDT` and `-DRhoDS` times the +square of the specific volume, with no pressure dependence, and for +`EosType::ConstantEos` all three vanish. + +The thermal expansion and haline contraction coefficients used by the +`BruntVaisalaFreqSq` calculation are formed from these same derivatives, +`alpha = SpecVolDCt / SpecVol` and `beta = -SpecVolDSa / SpecVol`, so the +polynomial coefficients exist in only one place. + +### A note on GSW-C + +The GSW toolbox may be redistributed only without modification, so the +derivative routines in GSW-C are not ported or adapted here; they also could +not be called from a Kokkos device kernel. The implementation instead +differentiates the published Roquet et al. 2015 polynomial that `Teos10Eos` +already carries. GSW-C is used unmodified, through its public API, as an +independent check in the unit test. + +That test compares against `gsw_specvol_first_derivatives` over a range of +states and finds agreement of order `1e-14` for the temperature and salinity +derivatives. The pressure derivative agrees only to about `2e-12`, and the +difference is on the GSW-C side: its `v_P` is evaluated from coefficients that +have been pre-multiplied by their pressure exponents and rounded, whereas the +Omega implementation differentiates the full-precision coefficients and matches +the exact derivative to roughly `1e-16`. + ## Helper functions for conversion The TEOS-10 implementation includes helper functions for temperature diff --git a/components/omega/doc/userGuide/EOS.md b/components/omega/doc/userGuide/EOS.md index df7247cac47e..d7aa1e38df63 100644 --- a/components/omega/doc/userGuide/EOS.md +++ b/components/omega/doc/userGuide/EOS.md @@ -19,7 +19,7 @@ Eos: where `DRhoDT` is the thermal expansion coefficient ($\textrm{kg}/(\textrm{m}^3 \cdot ^{\circ}\textrm{C})$), `DRhoDS` is the saline contraction coefficient ($\textrm{kg}/\textrm{m}^3$), and `RhoT0S0` is the reference density at (T,S)=(0,0) (in $\textrm{kg}/\textrm{m}^3$). -In addition to `SpecVol`, the displaced specific volume `SpecVolDisplaced` and `BruntVaisalaFreqSq` are also calculated by the EOS. +In addition to `SpecVol`, the displaced specific volume `SpecVolDisplaced`, the squared Brunt-Vaisala frequency `BruntVaisalaFreqSq` and the first derivatives of specific volume `SpecVolDCt`, `SpecVolDSa` and `SpecVolDP` are also calculated by the EOS. ## TEOS-10 Helper Conversions @@ -37,6 +37,16 @@ These helper methods are available through the EOS implementation but do not replace the standard `computeSpecVol`, `computeSpecVolDisp`, or `computeBruntVaisalaFreqSq` calculations. +## First Derivatives of Specific Volume + +The `Eos` class can also compute the first derivatives of the specific volume with respect to conservative temperature (in $\textrm{m}^3\textrm{kg}^{-1}\,^{\circ}\textrm{C}^{-1}$), absolute salinity (in $\textrm{m}^3\textrm{g}^{-1}$), and pressure (in $\textrm{m}^3\textrm{kg}^{-1}\textrm{Pa}^{-1}$). These are needed by the higher-order horizontal pressure gradient, which expands the specific volume about a reference state within each layer instead of evaluating the full equation of state at every quadrature point. + +There is no user-configurable option associated with the derivatives. They are computed on request by the parts of the model that need them, in the same pass that computes the specific volume, so selecting `teos10` does not make the model slower unless a scheme that uses them is enabled. They are available for all three `EosType` choices: for `teos10` they are the analytic derivatives of the same 75-term polynomial, for `linear` they follow from the configured `DRhoDT` and `DRhoDS` and have no pressure dependence, and for `constant` they are zero. + +The derivatives are stored in the `SpecVolDCt`, `SpecVolDSa` and `SpecVolDP` fields of the `Eos` field group and can be requested in a stream's contents just like `SpecVol`. + +The thermal expansion and haline contraction coefficients that enter the squared Brunt-Vaisala frequency are computed from these same derivatives. + ## Displaced Specific Volume The `Eos` class calculates the density of a parcel of fluid that is adiabatically displaced by a relative `k` levels (`k` counted positive downward), capturing the effects of pressure/depth changes. This is primarily used to calculate quantities for determining the water column stability (i.e. the stratification) and the vertical mixing coefficients (viscosity and diffusivity). Note: when using the `Linear` or `constant` EOS option, `SpecVolDisplaced` will be the same as `SpecVol` since the specific volume calculation is independent of pressure/depth. From 663e1c6a6d2eb03ba24772eabddd88291271b9e3 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 2 Aug 2026 14:05:39 -0500 Subject: [PATCH 43/60] Distinguish point-wise and chunk-wise derivative calls by name Rename the single-state entry point to calcSpecVolAndDerivsAtPoint and the vertical-chunk entry point to calcSpecVolAndDerivsInChunk, so the two are told apart at the call site rather than by the presence of "And" in the name. Document what each is for. --- components/omega/src/ocn/Eos.cpp | 6 ++-- components/omega/src/ocn/Eos.h | 49 +++++++++++++++------------ components/omega/test/ocn/EosTest.cpp | 17 ++++++---- 3 files changed, 41 insertions(+), 31 deletions(-) diff --git a/components/omega/src/ocn/Eos.cpp b/components/omega/src/ocn/Eos.cpp index c1bc5fccf0b3..ff8fe40f2993 100644 --- a/components/omega/src/ocn/Eos.cpp +++ b/components/omega/src/ocn/Eos.cpp @@ -288,7 +288,7 @@ void Eos::computeSpecVolAndDerivs(const Array2DReal &ConservTemp, parallelForInner( Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeSpecVolLinear.calcSpecVolDerivs( + LocComputeSpecVolLinear.calcSpecVolAndDerivsInChunk( LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, ICell, KChunk, ConservTemp, AbsSalinity); }); @@ -303,7 +303,7 @@ void Eos::computeSpecVolAndDerivs(const Array2DReal &ConservTemp, parallelForInner( Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeSpecVolTeos10.calcSpecVolDerivs( + LocComputeSpecVolTeos10.calcSpecVolAndDerivsInChunk( LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, ICell, KChunk, ConservTemp, AbsSalinity, Pressure); }); @@ -318,7 +318,7 @@ void Eos::computeSpecVolAndDerivs(const Array2DReal &ConservTemp, parallelForInner( Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeSpecVolConstant.calcSpecVolDerivs( + LocComputeSpecVolConstant.calcSpecVolAndDerivsInChunk( LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, ICell, KChunk, ConservTemp, AbsSalinity); }); diff --git a/components/omega/src/ocn/Eos.h b/components/omega/src/ocn/Eos.h index abdac4298462..0c5386b816a1 100644 --- a/components/omega/src/ocn/Eos.h +++ b/components/omega/src/ocn/Eos.h @@ -494,10 +494,18 @@ class Teos10Eos { /// a single state. P is the relative pressure (gauge pressure in Pa, i.e. /// absolute pressure minus the standard atmosphere). The derivatives are /// returned per degC, per (g/kg), and per Pa respectively. - KOKKOS_FUNCTION void calcSpecVolAndDerivs(const Real Ct, const Real Sa, - const Real P, Real &SpecVol, - Real &SpecVolDCt, Real &SpecVolDSa, - Real &SpecVolDP) const { + /// + /// This is the point-wise entry point: it takes scalars and returns scalars, + /// with no cell, layer or chunk indexing. It is what the unit tests call to + /// check the polynomial against GSW-C and against finite differences at + /// chosen states, and it is the form to use anywhere a single state needs to + /// be evaluated. The array-level path over the mesh instead uses + /// calcSpecVolAndDerivsInChunk below, which loops over a vertical chunk and + /// reuses the coefficient arrays across the layers of that chunk. + KOKKOS_FUNCTION void + calcSpecVolAndDerivsAtPoint(const Real Ct, const Real Sa, const Real P, + Real &SpecVol, Real &SpecVolDCt, + Real &SpecVolDSa, Real &SpecVolDP) const { Real SpecVolPCoeffs[6 * VecLength]; Real DTtPCoeffs[5 * VecLength]; @@ -525,13 +533,14 @@ class Teos10Eos { /// Calculate the TEOS-10 specific volume and its three first derivatives /// over a vertical chunk of a cell. Pressure is the relative pressure in - /// Pa; the derivatives are per degC, per (g/kg), and per Pa. - KOKKOS_FUNCTION void - calcSpecVolDerivs(Array2DReal SpecVol, Array2DReal SpecVolDCt, - Array2DReal SpecVolDSa, Array2DReal SpecVolDP, I4 ICell, - I4 KChunk, const Array2DReal &ConservTemp, - const Array2DReal &AbsSalinity, - const Array2DReal &Pressure) const { + /// Pa; the derivatives are per degC, per (g/kg), and per Pa. This is the + /// chunk-wise counterpart of calcSpecVolAndDerivsAtPoint above and is what + /// Eos::computeSpecVolAndDerivs calls from the inner parallel loop. + KOKKOS_FUNCTION void calcSpecVolAndDerivsInChunk( + Array2DReal SpecVol, Array2DReal SpecVolDCt, Array2DReal SpecVolDSa, + Array2DReal SpecVolDP, I4 ICell, I4 KChunk, + const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity, + const Array2DReal &Pressure) const { Real SpecVolPCoeffs[6 * VecLength]; Real DTtPCoeffs[5 * VecLength]; @@ -776,11 +785,10 @@ class LinearEos { /// SpecVol = 1 / (RhoT0S0 + DRhodT * Ct + DRhodS * Sa) /// the derivatives are -DRhodT * SpecVol^2 and -DRhodS * SpecVol^2, and /// the linear EOS has no pressure dependence at all. - KOKKOS_FUNCTION void - calcSpecVolDerivs(Array2DReal SpecVol, Array2DReal SpecVolDCt, - Array2DReal SpecVolDSa, Array2DReal SpecVolDP, I4 ICell, - I4 KChunk, const Array2DReal &ConservTemp, - const Array2DReal &AbsSalinity) const { + KOKKOS_FUNCTION void calcSpecVolAndDerivsInChunk( + Array2DReal SpecVol, Array2DReal SpecVolDCt, Array2DReal SpecVolDSa, + Array2DReal SpecVolDP, I4 ICell, I4 KChunk, + const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity) const { const I4 KStart = chunkStart(KChunk, MinLayerCell(ICell)); const I4 KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); @@ -830,11 +838,10 @@ class ConstantEos { /// Calculate the constant specific volume and its three first derivatives /// over a vertical chunk of a cell. The specific volume does not depend on /// temperature, salinity or pressure, so all three derivatives vanish. - KOKKOS_FUNCTION void - calcSpecVolDerivs(Array2DReal SpecVol, Array2DReal SpecVolDCt, - Array2DReal SpecVolDSa, Array2DReal SpecVolDP, I4 ICell, - I4 KChunk, const Array2DReal &ConservTemp, - const Array2DReal &AbsSalinity) const { + KOKKOS_FUNCTION void calcSpecVolAndDerivsInChunk( + Array2DReal SpecVol, Array2DReal SpecVolDCt, Array2DReal SpecVolDSa, + Array2DReal SpecVolDP, I4 ICell, I4 KChunk, + const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity) const { const I4 KStart = chunkStart(KChunk, MinLayerCell(ICell)); const I4 KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); diff --git a/components/omega/test/ocn/EosTest.cpp b/components/omega/test/ocn/EosTest.cpp index 74637e6f13e6..d5e71d39eb4e 100644 --- a/components/omega/test/ocn/EosTest.cpp +++ b/components/omega/test/ocn/EosTest.cpp @@ -1195,8 +1195,9 @@ void checkValueGswcSpecVolDerivs() { const Real PDb = PTest[IP]; Real SpecVol, SpecVolDCt, SpecVolDSa, SpecVolDP; - TestEos.calcSpecVolAndDerivs(CtVal, SaVal, PDb * Db2Pa, SpecVol, - SpecVolDCt, SpecVolDSa, SpecVolDP); + TestEos.calcSpecVolAndDerivsAtPoint(CtVal, SaVal, PDb * Db2Pa, + SpecVol, SpecVolDCt, SpecVolDSa, + SpecVolDP); /// GSW-C takes pressure in dbar and returns the derivatives per /// (g/kg), per degC, and per Pa @@ -1279,7 +1280,8 @@ void checkFiniteDiffSpecVolDerivs() { /// Evaluate only the specific volume at a perturbed state auto SpecVolAt = [&TestEos](Real CtVal, Real SaVal, Real PPa) { Real SpecVol, DCt, DSa, DP; - TestEos.calcSpecVolAndDerivs(CtVal, SaVal, PPa, SpecVol, DCt, DSa, DP); + TestEos.calcSpecVolAndDerivsAtPoint(CtVal, SaVal, PPa, SpecVol, DCt, DSa, + DP); return SpecVol; }; @@ -1294,8 +1296,8 @@ void checkFiniteDiffSpecVolDerivs() { const Real PPa = PTest[IP] * Db2Pa; Real SpecVol, SpecVolDCt, SpecVolDSa, SpecVolDP; - TestEos.calcSpecVolAndDerivs(CtVal, SaVal, PPa, SpecVol, SpecVolDCt, - SpecVolDSa, SpecVolDP); + TestEos.calcSpecVolAndDerivsAtPoint( + CtVal, SaVal, PPa, SpecVol, SpecVolDCt, SpecVolDSa, SpecVolDP); const Real FDCt = (SpecVolAt(CtVal + DCtStep, SaVal, PPa) - SpecVolAt(CtVal - DCtStep, SaVal, PPa)) / @@ -1364,8 +1366,9 @@ void checkValueGswcAlphaBeta() { const Real PDb = PTest[IP]; Real SpecVol, SpecVolDCt, SpecVolDSa, SpecVolDP; - TestEos.calcSpecVolAndDerivs(CtVal, SaVal, PDb * Db2Pa, SpecVol, - SpecVolDCt, SpecVolDSa, SpecVolDP); + TestEos.calcSpecVolAndDerivsAtPoint(CtVal, SaVal, PDb * Db2Pa, + SpecVol, SpecVolDCt, SpecVolDSa, + SpecVolDP); const Real Alpha = TestBvf.calcAlpha(SaVal, CtVal, PDb, SpecVol); const Real Beta = TestBvf.calcBeta(SaVal, CtVal, PDb, SpecVol); From 9995df4cf0f02e16c21d0f62b685c95261fd8436 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 2 Aug 2026 14:06:08 -0500 Subject: [PATCH 44/60] Explain when the specific volume derivatives are computed Say explicitly that the higher-order pressure gradient will need the derivatives every time step and that computeSpecVolAndDerivs then replaces the computeSpecVol call, while configurations that do not use it keep the cheaper call. Note why there is no displaced counterpart and what adding one would take. --- components/omega/doc/devGuide/EOS.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/components/omega/doc/devGuide/EOS.md b/components/omega/doc/devGuide/EOS.md index 939db8e09aaa..9c337259d4c7 100644 --- a/components/omega/doc/devGuide/EOS.md +++ b/components/omega/doc/devGuide/EOS.md @@ -95,8 +95,25 @@ everywhere and the temperature derivative is negative in cold, nearly fresh water. The two methods are kept separate rather than always computing the derivatives -because they roughly double the TEOS-10 arithmetic per cell and layer, and only -the higher-order pressure gradient needs them. +because the derivatives roughly double the TEOS-10 arithmetic per cell and +layer, and not every configuration needs them. A run using the higher-order +pressure gradient will need them at every time step, and in that case +`computeSpecVolAndDerivs` takes the place of the `computeSpecVol` call that +would otherwise be made, so the equation of state is still evaluated only once +per step. A run using the standard pressure gradient, or one that only needs +`SpecVol` for `SpecVolDisplaced` or `BruntVaisalaFreqSq`, keeps calling +`computeSpecVol` and does no extra work. Which method is called is therefore +decided by the caller, not by the `Eos` class. + +There is no displaced counterpart to `computeSpecVolAndDerivs`. The pressure +gradient needs the derivatives at the in-situ pressure of the layer, whereas +`computeSpecVolDisp` exists to evaluate the specific volume at the pressure of +a displaced layer. Nothing about the derivatives prevents an adiabatically +displaced version: it would take the same `KDisp` argument as +`computeSpecVolDisp` and evaluate the same coefficients at the displaced +pressure, with no new polynomial. It is left out here only because no caller +needs it yet, and it would mean carrying three more model-sized arrays and +fields. All four values come from a single pass over the equation of state. For `EosType::Teos10Eos` the derivatives are the analytic derivatives of the same From 912f5ad5d20c068b0baa565d19000d18901bd1a4 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 2 Aug 2026 14:06:47 -0500 Subject: [PATCH 45/60] Say why alpha and beta cannot reuse the stored derivatives The Brunt-Vaisala frequency evaluates alpha and beta at the interface, from temperature, salinity and pressure averaged across the two adjacent layers, while SpecVolDCt and SpecVolDSa hold the derivatives at the layer centers. Record that in the calcAlpha and calcBeta comments so the duplication does not look accidental. --- components/omega/src/ocn/Eos.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/components/omega/src/ocn/Eos.h b/components/omega/src/ocn/Eos.h index 0c5386b816a1..85ab533f1b5d 100644 --- a/components/omega/src/ocn/Eos.h +++ b/components/omega/src/ocn/Eos.h @@ -909,6 +909,16 @@ class Teos10BruntVaisalaFreqSq { /// TEOS-10 derivative helpers rather than from a second copy of the same /// polynomial coefficients. P is relative pressure in dbar and Sp is the /// specific volume. + /// + /// The coefficients are assembled here rather than taken from the + /// Eos::SpecVolDCt array because the two are not evaluated at the same + /// state: this is called at the interface, with the temperature, salinity + /// and pressure averaged from the two adjacent layers, while SpecVolDCt + /// holds the derivative at the layer centers. Averaging the layer-center + /// derivatives instead would be a different approximation and would change + /// answers. The stored derivatives are also filled only when + /// computeSpecVolAndDerivs is called, which the Brunt-Vaisala calculation + /// cannot assume. KOKKOS_FUNCTION Real calcAlpha(Real Sa, Real Ct, Real P, Real Sp) const { Real DTtPCoeffs[5 * VecLength]; @@ -926,7 +936,9 @@ class Teos10BruntVaisalaFreqSq { /// Calculate beta (the haline contraction coefficient) for the squared /// Brunt-Vaisala frequency. Beta is minus the salinity derivative of the /// specific volume divided by the specific volume. P is relative pressure - /// in dbar and Sp is the specific volume. + /// in dbar and Sp is the specific volume. As for calcAlpha above, this is + /// evaluated at the interface state and so cannot reuse the layer-center + /// Eos::SpecVolDSa array. KOKKOS_FUNCTION Real calcBeta(Real Sa, Real Ct, Real P, Real Sp) const { Real DSsPCoeffs[5 * VecLength]; From ee50cd7db11ebf5f2aca8ca783a1bb5d8a98eed0 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 2 Aug 2026 14:07:27 -0500 Subject: [PATCH 46/60] Distinguish the two GSW-C based derivative tests Both compare against GSW-C, but testEosTeos10Derivs covers the array-level machinery -- dispatch, chunking, layer masking, member arrays and field registration -- on one realistic profile, while checkValueGswcSpecVolDerivs covers the polynomial itself point by point at the corners of the oceanographic range. Say so in each test's comment. --- components/omega/test/ocn/EosTest.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/components/omega/test/ocn/EosTest.cpp b/components/omega/test/ocn/EosTest.cpp index d5e71d39eb4e..ed12201a6750 100644 --- a/components/omega/test/ocn/EosTest.cpp +++ b/components/omega/test/ocn/EosTest.cpp @@ -761,6 +761,15 @@ void testBruntVaisalaFreqSqTeos10() { /// The state varies with depth rather than being uniform, so that the check /// covers a range of values and exercises the vertical chunking, and the /// expected values are obtained layer by layer from GSW-C on the host. +/// +/// This is a test of the plumbing, not of the polynomial. It runs +/// Eos::computeSpecVolAndDerivs on the device over the whole mesh and so +/// covers the dispatch on EosChoice, the chunked vertical loop and its chunk +/// boundaries, the MinLayerCell/MaxLayerCell masking, the writing of the four +/// results into the Eos member arrays, and the registration of the derivative +/// fields in the Eos group. The math itself is covered point by point, over a +/// much wider range of states, by checkValueGswcSpecVolDerivs below; GSW-C +/// appears here only as a convenient source of expected values. void testEosTeos10Derivs() { /// Get mesh and coordinate info const auto Mesh = HorzMesh::getDefault(); @@ -1175,6 +1184,15 @@ Real relDiff(Real X, Real Y) { /// oracle. The Omega implementation does not derive from it: the derivatives /// are the analytic derivatives of the Roquet et al. 2015 polynomial that the /// Teos10Eos functor already carries. +/// +/// This is the test of the polynomial itself, as opposed to +/// testEosTeos10Derivs above, which tests the array-level machinery. It calls +/// the point-wise calcSpecVolAndDerivsAtPoint on the host at every combination +/// of the salinity, temperature and pressure values in SaTest, CtTest and +/// PTest, which reach the corners of the oceanographic range -- fresh and +/// salty, freezing and warm, surface and 10000 dbar -- rather than the single +/// realistic profile the mesh test uses. A dropped or mis-scaled term shows up +/// here, and the tolerances are tight enough to say so. void checkValueGswcSpecVolDerivs() { Teos10Eos TestEos(VertCoord::getDefault()); From 4bbdd2805395e2b5fbbda8336e2c36ff61648d69 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 2 Aug 2026 14:22:05 -0500 Subject: [PATCH 47/60] Correct which calls need the specific volume derivatives AuxiliaryState::computeMomVertAux is the only caller of computeSpecVol; computeBruntVaisalaFreqSq consumes the SpecVol array rather than recomputing it, and computeSpecVolDisp is a separate evaluation. Describe the actual call graph, and give the two reasons the plain computeSpecVol is still wanted: the centered pressure gradient is the config default, and the VertMix refresh of SpecVol feeds nothing that reads the derivatives. --- components/omega/doc/devGuide/EOS.md | 29 ++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/components/omega/doc/devGuide/EOS.md b/components/omega/doc/devGuide/EOS.md index 9c337259d4c7..778a71afec45 100644 --- a/components/omega/doc/devGuide/EOS.md +++ b/components/omega/doc/devGuide/EOS.md @@ -96,14 +96,27 @@ water. The two methods are kept separate rather than always computing the derivatives because the derivatives roughly double the TEOS-10 arithmetic per cell and -layer, and not every configuration needs them. A run using the higher-order -pressure gradient will need them at every time step, and in that case -`computeSpecVolAndDerivs` takes the place of the `computeSpecVol` call that -would otherwise be made, so the equation of state is still evaluated only once -per step. A run using the standard pressure gradient, or one that only needs -`SpecVol` for `SpecVolDisplaced` or `BruntVaisalaFreqSq`, keeps calling -`computeSpecVol` and does no extra work. Which method is called is therefore -decided by the caller, not by the `Eos` class. +layer, and not every call needs them. `AuxiliaryState::computeMomVertAux` is +the only place that calls `computeSpecVol`; everything else consumes the +`Eos::SpecVol` array rather than recomputing it, including +`computeBruntVaisalaFreqSq`, which takes the specific volume as an argument. +That one call site is reached once per time stepper stage through +`computeMomAux` and `computeAll` in the tendency calculation, and once more +from `VertMix::VertMixImplicit`, which refreshes the pressure and specific +volume before the vertical mixing coefficients are formed. + +A run using the higher-order pressure gradient therefore needs the derivatives +at every time step, and at those call sites `computeSpecVolAndDerivs` takes the +place of the `computeSpecVol` call that would otherwise be made, leaving one +evaluation of the equation of state where there was one before. Two things +still call for the plain `computeSpecVol`. First, `PressureGradType` is a +runtime option that defaults to `Centered`, so a run may never need the +derivatives at all. Second, even with the higher-order pressure gradient +selected, the `VertMix::VertMixImplicit` update feeds only +`computeGeomZHeight` and `computeBruntVaisalaFreqSq`, neither of which reads +the derivatives, so computing them there would be work that nothing consumes. +Which method to call is thus a decision for each call site, not one the `Eos` +class should make for it. There is no displaced counterpart to `computeSpecVolAndDerivs`. The pressure gradient needs the derivatives at the in-situ pressure of the layer, whereas From 462ae9d9b0a7a79674f1599f5c1df0b966594376 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Thu, 6 Aug 2026 03:23:29 -0500 Subject: [PATCH 48/60] Remove vertical chunking from the equation of state Vertical chunking is on its way out of Omega (PR #473 removes it from the auxiliary variables and tendency terms), so this branch should not add more of it. The EOS is not touched by that PR, so remove chunking here across the board rather than leaving the new specific volume derivative code to be converted later. The functors now follow the same pattern as the de-chunked auxiliary variables: each takes a TeamMember and a cell index and loops over the active layers with parallelForInner(Team, Range{KMin, KMax}, INNER_LAMBDA(int K) { ... }); so the callers in Eos.cpp reduce to a single call inside parallelForOuter, with no vertRangeChunked and no inner loop over chunks. Dropping the chunk loop also removes VecLength from the TEOS-10 polynomial helpers. calcPCoeffs, calcPCoeffsDTt, calcPCoeffsDSs, calcDelta, calcDeltaDeriv and calcDeltaDP took arrays sized 6 * VecLength or 5 * VecLength together with a KVec index into them; they now take plain [6] and [5] arrays and no index. That storage was never shared between layers -- the coefficients are recomputed for every layer -- so nothing is lost, and the point-wise calcSpecVolAndDerivsAtPoint and the calcAlpha and calcBeta helpers no longer allocate VecLength times more stack than they use. With the chunk loop gone, the array-level derivative routine is exactly calcSpecVolAndDerivsAtPoint evaluated at each cell and layer, so it now calls it instead of repeating the polynomial evaluation. That leaves a single implementation of the TEOS-10 derivatives. Co-Authored-By: Claude Opus 5 --- components/omega/src/ocn/Eos.cpp | 138 ++------- components/omega/src/ocn/Eos.h | 513 +++++++++++++++---------------- 2 files changed, 275 insertions(+), 376 deletions(-) diff --git a/components/omega/src/ocn/Eos.cpp b/components/omega/src/ocn/Eos.cpp index ff8fe40f2993..b3d6b233c218 100644 --- a/components/omega/src/ocn/Eos.cpp +++ b/components/omega/src/ocn/Eos.cpp @@ -147,8 +147,6 @@ void Eos::computeSpecVol(const Array2DReal &ConservTemp, ComputeSpecVolTeos10); /// Local view for TEOS-10 computation OMEGA_SCOPE(LocComputeSpecVolConstant, ComputeSpecVolConstant); /// Local view for constant computation - OMEGA_SCOPE(MinLayerCell, VCoord->MinLayerCell); - OMEGA_SCOPE(MaxLayerCell, VCoord->MaxLayerCell); I4 KDisp = 0; /// No displacement in this case @@ -157,44 +155,22 @@ void Eos::computeSpecVol(const Array2DReal &ConservTemp, parallelForOuter( "eos-linear", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { - const int KMin = MinLayerCell(ICell); - const int KMax = MaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeSpecVolLinear(LocSpecVol, ICell, KChunk, - ConservTemp, AbsSalinity); - }); + LocComputeSpecVolLinear(LocSpecVol, Team, ICell, ConservTemp, + AbsSalinity); }); } else if (EosChoice == EosType::Teos10Eos) { parallelForOuter( "eos-teos10", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { - const int KMin = MinLayerCell(ICell); - const int KMax = MaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeSpecVolTeos10(LocSpecVol, ICell, KChunk, - ConservTemp, AbsSalinity, Pressure, - KDisp); - }); + LocComputeSpecVolTeos10(LocSpecVol, Team, ICell, ConservTemp, + AbsSalinity, Pressure, KDisp); }); } else if (EosChoice == EosType::ConstantEos) { parallelForOuter( "eos-constant", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { - const int KMin = MinLayerCell(ICell); - const int KMax = MaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeSpecVolConstant(LocSpecVol, ICell, KChunk, - ConservTemp, AbsSalinity); - }); + LocComputeSpecVolConstant(LocSpecVol, Team, ICell, ConservTemp, + AbsSalinity); }); } } @@ -211,8 +187,6 @@ void Eos::computeSpecVolDisp(const Array2DReal &ConservTemp, ComputeSpecVolTeos10); /// Local view for TEOS-10 computation OMEGA_SCOPE(LocComputeSpecVolConstant, ComputeSpecVolConstant); /// Local view for constant computation - OMEGA_SCOPE(MinLayerCell, VCoord->MinLayerCell); - OMEGA_SCOPE(MaxLayerCell, VCoord->MaxLayerCell); /// Dispatch to the correct EOS calculation /// If EosChoice is Linear, the displaced specific @@ -221,41 +195,22 @@ void Eos::computeSpecVolDisp(const Array2DReal &ConservTemp, parallelForOuter( "eos-linear", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { - const int KMin = MinLayerCell(ICell); - const int KMax = MaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeSpecVolLinear(LocSpecVolDisplaced, ICell, KChunk, - ConservTemp, AbsSalinity); - }); + LocComputeSpecVolLinear(LocSpecVolDisplaced, Team, ICell, + ConservTemp, AbsSalinity); }); } else if (EosChoice == EosType::Teos10Eos) { parallelForOuter( "eos-teos10", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { - const int KMin = MinLayerCell(ICell); - const int KMax = MaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeSpecVolTeos10(LocSpecVolDisplaced, ICell, KChunk, - ConservTemp, AbsSalinity, Pressure, - KDisp); - }); + LocComputeSpecVolTeos10(LocSpecVolDisplaced, Team, ICell, + ConservTemp, AbsSalinity, Pressure, KDisp); }); } else if (EosChoice == EosType::ConstantEos) { parallelForOuter( "eos-constant", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { - const int KMin = MinLayerCell(ICell); - const int KMax = MaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeSpecVolConstant(LocSpecVolDisplaced, ICell, - KChunk, ConservTemp, AbsSalinity); - }); + LocComputeSpecVolConstant(LocSpecVolDisplaced, Team, ICell, + ConservTemp, AbsSalinity); }); } } @@ -274,54 +229,31 @@ void Eos::computeSpecVolAndDerivs(const Array2DReal &ConservTemp, ComputeSpecVolTeos10); /// Local view for TEOS-10 computation OMEGA_SCOPE(LocComputeSpecVolConstant, ComputeSpecVolConstant); /// Local view for constant computation - OMEGA_SCOPE(MinLayerCell, VCoord->MinLayerCell); - OMEGA_SCOPE(MaxLayerCell, VCoord->MaxLayerCell); /// Dispatch to the correct EOS calculation if (EosChoice == EosType::LinearEos) { parallelForOuter( "eos-derivs-linear", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { - const int KMin = MinLayerCell(ICell); - const int KMax = MaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeSpecVolLinear.calcSpecVolAndDerivsInChunk( - LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, - ICell, KChunk, ConservTemp, AbsSalinity); - }); + LocComputeSpecVolLinear.calcSpecVolAndDerivsInChunk( + LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, Team, + ICell, ConservTemp, AbsSalinity); }); } else if (EosChoice == EosType::Teos10Eos) { parallelForOuter( "eos-derivs-teos10", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { - const int KMin = MinLayerCell(ICell); - const int KMax = MaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeSpecVolTeos10.calcSpecVolAndDerivsInChunk( - LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, - ICell, KChunk, ConservTemp, AbsSalinity, Pressure); - }); + LocComputeSpecVolTeos10.calcSpecVolAndDerivsInChunk( + LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, Team, + ICell, ConservTemp, AbsSalinity, Pressure); }); } else if (EosChoice == EosType::ConstantEos) { parallelForOuter( "eos-derivs-constant", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { - const int KMin = MinLayerCell(ICell); - const int KMax = MaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeSpecVolConstant.calcSpecVolAndDerivsInChunk( - LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, - ICell, KChunk, ConservTemp, AbsSalinity); - }); + LocComputeSpecVolConstant.calcSpecVolAndDerivsInChunk( + LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, Team, + ICell, ConservTemp, AbsSalinity); }); } } @@ -349,14 +281,11 @@ void Eos::computeBruntVaisalaFreqSq(const Array2DReal &ConservTemp, "bvf-linear", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { // Compute Brunt-Vaisala frequency at interior vertical interfaces - const int KMin = MinLayerCell(ICell) + 1; - const int KMax = MaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeBruntVaisalaFreqSqLinear(LocBruntVaisalaFreqSq, - ICell, KChunk, SpecVol); - }); + const int KMin = MinLayerCell(ICell) + 1; + const int KMax = MaxLayerCell(ICell); + + LocComputeBruntVaisalaFreqSqLinear(LocBruntVaisalaFreqSq, Team, + ICell, SpecVol); teamBarrier(Team); @@ -378,15 +307,12 @@ void Eos::computeBruntVaisalaFreqSq(const Array2DReal &ConservTemp, "bvf-teos10", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { // Compute Brunt-Vaisala frequency at interior vertical interfaces - const int KMin = MinLayerCell(ICell) + 1; - const int KMax = MaxLayerCell(ICell); - const int KRange = vertRangeChunked(KMin, KMax); - parallelForInner( - Team, KRange, INNER_LAMBDA(int KChunk) { - LocComputeBruntVaisalaFreqSqTeos10( - LocBruntVaisalaFreqSq, ICell, KChunk, ConservTemp, - AbsSalinity, Pressure, SpecVol); - }); + const int KMin = MinLayerCell(ICell) + 1; + const int KMax = MaxLayerCell(ICell); + + LocComputeBruntVaisalaFreqSqTeos10(LocBruntVaisalaFreqSq, Team, + ICell, ConservTemp, AbsSalinity, + Pressure, SpecVol); teamBarrier(Team); diff --git a/components/omega/src/ocn/Eos.h b/components/omega/src/ocn/Eos.h index 85ab533f1b5d..d3719578a3ff 100644 --- a/components/omega/src/ocn/Eos.h +++ b/components/omega/src/ocn/Eos.h @@ -46,53 +46,53 @@ class Teos10Eos { static constexpr Real PNorm = 1.0e-4; ///< pressure scale (1/dbar) // The functor takes the full arrays of specific volume (inout), - // the indices ICell and KChunk, and the ocean tracers (conservative) - // temperature, (absolute) salinity, and relative pressure (gauge pressure, - // i.e., absolute pressure minus the standard atmosphere) as inputs, and - // outputs the specific volume according to the Roquet et al. 2015 75 term - // expansion. - KOKKOS_FUNCTION void operator()(Array2DReal SpecVol, I4 ICell, I4 KChunk, - const Array2DReal &ConservTemp, + // the team member and the cell index ICell, and the ocean tracers + // (conservative) temperature, (absolute) salinity, and relative pressure + // (gauge pressure, i.e., absolute pressure minus the standard atmosphere) + // as inputs, and outputs the specific volume according to the Roquet et + // al. 2015 75 term expansion. + KOKKOS_FUNCTION void operator()(Array2DReal SpecVol, const TeamMember &Team, + I4 ICell, const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity, const Array2DReal &Pressure, I4 KDisp) const { - Real SpecVolPCoeffs[6 * VecLength]; - const I4 KStart = chunkStart(KChunk, MinLayerCell(ICell)); - const I4 KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); - - for (int KVec = 0; KVec < KLen; ++KVec) { - const I4 K = KStart + KVec; - /// Calculate the local specific volume polynomial pressure - /// coefficients with cell center values - calcPCoeffs(SpecVolPCoeffs, KVec, ConservTemp(ICell, K), - AbsSalinity(ICell, K)); - - /// Calculate the specific volume at the given pressure - /// If KDisp is 0, we use the current pressure, otherwise - /// we use the displaced pressure (K + KDisp) - /// Note: KDisp is only used for TEOS-10, for Linear EOS it - /// is always 0. - if (KDisp == 0) { - // No displacement - SpecVol(ICell, K) = - calcRefProfile(Pressure(ICell, K) * Pa2Db) + - calcDelta(SpecVolPCoeffs, KVec, Pressure(ICell, K) * Pa2Db); - } else { - // Displacement, use the displaced pressure - I4 KTmp = Kokkos::min(K + KDisp, MaxLayerCell(ICell)); - KTmp = Kokkos::max(MinLayerCell(ICell), KTmp); - SpecVol(ICell, K) = - calcRefProfile(Pressure(ICell, KTmp) * Pa2Db) + - calcDelta(SpecVolPCoeffs, KVec, Pressure(ICell, KTmp) * Pa2Db); - } - } + const I4 KMin = MinLayerCell(ICell); + const I4 KMax = MaxLayerCell(ICell); + + parallelForInner( + Team, Range{KMin, KMax}, INNER_LAMBDA(int K) { + Real SpecVolPCoeffs[6]; + + /// Calculate the local specific volume polynomial pressure + /// coefficients with cell center values + calcPCoeffs(SpecVolPCoeffs, ConservTemp(ICell, K), + AbsSalinity(ICell, K)); + + /// Calculate the specific volume at the given pressure + /// If KDisp is 0, we use the current pressure, otherwise + /// we use the displaced pressure (K + KDisp) + /// Note: KDisp is only used for TEOS-10, for Linear EOS it + /// is always 0. + if (KDisp == 0) { + // No displacement + SpecVol(ICell, K) = + calcRefProfile(Pressure(ICell, K) * Pa2Db) + + calcDelta(SpecVolPCoeffs, Pressure(ICell, K) * Pa2Db); + } else { + // Displacement, use the displaced pressure + I4 KTmp = Kokkos::min(K + KDisp, KMax); + KTmp = Kokkos::max(KMin, KTmp); + SpecVol(ICell, K) = + calcRefProfile(Pressure(ICell, KTmp) * Pa2Db) + + calcDelta(SpecVolPCoeffs, Pressure(ICell, KTmp) * Pa2Db); + } + }); } /// TEOS-10 helpers /// Calculate pressure polynomial coefficients for TEOS-10 - KOKKOS_FUNCTION void calcPCoeffs(Real (&SpecVolPCoeffs)[6 * VecLength], - const I4 KVec, const Real Ct, + KOKKOS_FUNCTION void calcPCoeffs(Real (&SpecVolPCoeffs)[6], const Real Ct, const Real Sa) const { Real Ss = Kokkos::sqrt((Sa + DeltaS) / SaNorm); Real Tt = Ct / CtNorm; @@ -173,18 +173,18 @@ class Teos10Eos { constexpr Real V014 = 3.1454099902e-07; constexpr Real V005 = 4.2369007180e-09; - SpecVolPCoeffs[5 + 6 * KVec] = V005; - SpecVolPCoeffs[4 + 6 * KVec] = V014 * Tt + V104 * Ss + V004; - SpecVolPCoeffs[3 + 6 * KVec] = + SpecVolPCoeffs[5] = V005; + SpecVolPCoeffs[4] = V014 * Tt + V104 * Ss + V004; + SpecVolPCoeffs[3] = (V023 * Tt + V113 * Ss + V013) * Tt + (V203 * Ss + V103) * Ss + V003; - SpecVolPCoeffs[2 + 6 * KVec] = - (((V042 * Tt + V132 * Ss + V032) * Tt + (V222 * Ss + V122) * Ss + - V022) * - Tt + - ((V312 * Ss + V212) * Ss + V112) * Ss + V012) * - Tt + - (((V402 * Ss + V302) * Ss + V202) * Ss + V102) * Ss + V002; - SpecVolPCoeffs[1 + 6 * KVec] = + SpecVolPCoeffs[2] = (((V042 * Tt + V132 * Ss + V032) * Tt + + (V222 * Ss + V122) * Ss + V022) * + Tt + + ((V312 * Ss + V212) * Ss + V112) * Ss + V012) * + Tt + + (((V402 * Ss + V302) * Ss + V202) * Ss + V102) * Ss + + V002; + SpecVolPCoeffs[1] = ((((V051 * Tt + V141 * Ss + V041) * Tt + (V231 * Ss + V131) * Ss + V031) * Tt + @@ -194,7 +194,7 @@ class Teos10Eos { Tt + ((((V501 * Ss + V401) * Ss + V301) * Ss + V201) * Ss + V101) * Ss + V001; - SpecVolPCoeffs[0 + 6 * KVec] = + SpecVolPCoeffs[0] = (((((V060 * Tt + V150 * Ss + V050) * Tt + (V240 * Ss + V140) * Ss + V040) * Tt + @@ -212,21 +212,19 @@ class Teos10Eos { } /// Evaluate pressure polynomial delta for TEOS-10 - KOKKOS_FUNCTION Real calcDelta(const Real (&SpecVolPCoeffs)[6 * VecLength], - const I4 KVec, const Real P) const { + KOKKOS_FUNCTION Real calcDelta(const Real (&SpecVolPCoeffs)[6], + const Real P) const { Real Pp = P * PNorm; - Real Delta = ((((SpecVolPCoeffs[5 + 6 * KVec] * Pp + - SpecVolPCoeffs[4 + 6 * KVec]) * - Pp + - SpecVolPCoeffs[3 + 6 * KVec]) * + Real Delta = ((((SpecVolPCoeffs[5] * Pp + SpecVolPCoeffs[4]) * Pp + + SpecVolPCoeffs[3]) * Pp + - SpecVolPCoeffs[2 + 6 * KVec]) * + SpecVolPCoeffs[2]) * Pp + - SpecVolPCoeffs[1 + 6 * KVec]) * + SpecVolPCoeffs[1]) * Pp + - SpecVolPCoeffs[0 + 6 * KVec]; + SpecVolPCoeffs[0]; return Delta; } @@ -258,9 +256,8 @@ class Teos10Eos { /// /// This is the only copy of these coefficients: the thermal expansion /// coefficient used by the Brunt-Vaisala frequency is derived from here. - KOKKOS_FUNCTION static void calcPCoeffsDTt(Real (&DTtPCoeffs)[5 * VecLength], - const I4 KVec, const Real Ss, - const Real Tt) { + KOKKOS_FUNCTION static void calcPCoeffsDTt(Real (&DTtPCoeffs)[5], + const Real Ss, const Real Tt) { constexpr Real A000 = -1.56497346750e-5; constexpr Real A001 = 1.85057654290e-5; @@ -313,20 +310,20 @@ class Teos10Eos { constexpr Real A410 = 7.71906784880e-6; constexpr Real A500 = 1.38645945810e-6; - DTtPCoeffs[4 + 5 * KVec] = A004; - DTtPCoeffs[3 + 5 * KVec] = A013 * Tt + A103 * Ss + A003; - DTtPCoeffs[2 + 5 * KVec] = ((A032 * Tt + A122 * Ss + A022) * Tt + - (A212 * Ss + A112) * Ss + A012) * - Tt + - ((A302 * Ss + A202) * Ss + A102) * Ss + A002; - DTtPCoeffs[1 + 5 * KVec] = - (((A041 * Tt + A131 * Ss + A031) * Tt + (A221 * Ss + A121) * Ss + - A021) * - Tt + - ((A311 * Ss + A211) * Ss + A111) * Ss + A011) * - Tt + - (((A401 * Ss + A301) * Ss + A201) * Ss + A101) * Ss + A001; - DTtPCoeffs[0 + 5 * KVec] = + DTtPCoeffs[4] = A004; + DTtPCoeffs[3] = A013 * Tt + A103 * Ss + A003; + DTtPCoeffs[2] = ((A032 * Tt + A122 * Ss + A022) * Tt + + (A212 * Ss + A112) * Ss + A012) * + Tt + + ((A302 * Ss + A202) * Ss + A102) * Ss + A002; + DTtPCoeffs[1] = (((A041 * Tt + A131 * Ss + A031) * Tt + + (A221 * Ss + A121) * Ss + A021) * + Tt + + ((A311 * Ss + A211) * Ss + A111) * Ss + A011) * + Tt + + (((A401 * Ss + A301) * Ss + A201) * Ss + A101) * Ss + + A001; + DTtPCoeffs[0] = ((((A050 * Tt + A140 * Ss + A040) * Tt + (A230 * Ss + A130) * Ss + A030) * Tt + @@ -344,9 +341,8 @@ class Teos10Eos { /// As above, these are the analytic Ss-derivative of the 75-term /// polynomial: B(i,j,k) = (i+1) * V(i+1,j,k), and this is the only copy of /// them; the haline contraction coefficient is derived from here. - KOKKOS_FUNCTION static void calcPCoeffsDSs(Real (&DSsPCoeffs)[5 * VecLength], - const I4 KVec, const Real Ss, - const Real Tt) { + KOKKOS_FUNCTION static void calcPCoeffsDSs(Real (&DSsPCoeffs)[5], + const Real Ss, const Real Tt) { constexpr Real B000 = -3.10389819760e-4; constexpr Real B001 = 2.42624687470e-5; @@ -399,20 +395,20 @@ class Teos10Eos { constexpr Real B410 = 6.93229729050e-6; constexpr Real B500 = 1.91594743830e-4; - DSsPCoeffs[4 + 5 * KVec] = B004; - DSsPCoeffs[3 + 5 * KVec] = B013 * Tt + B103 * Ss + B003; - DSsPCoeffs[2 + 5 * KVec] = ((B032 * Tt + B122 * Ss + B022) * Tt + - (B212 * Ss + B112) * Ss + B012) * - Tt + - ((B302 * Ss + B202) * Ss + B102) * Ss + B002; - DSsPCoeffs[1 + 5 * KVec] = - (((B041 * Tt + B131 * Ss + B031) * Tt + (B221 * Ss + B121) * Ss + - B021) * - Tt + - ((B311 * Ss + B211) * Ss + B111) * Ss + B011) * - Tt + - (((B401 * Ss + B301) * Ss + B201) * Ss + B101) * Ss + B001; - DSsPCoeffs[0 + 5 * KVec] = + DSsPCoeffs[4] = B004; + DSsPCoeffs[3] = B013 * Tt + B103 * Ss + B003; + DSsPCoeffs[2] = ((B032 * Tt + B122 * Ss + B022) * Tt + + (B212 * Ss + B112) * Ss + B012) * + Tt + + ((B302 * Ss + B202) * Ss + B102) * Ss + B002; + DSsPCoeffs[1] = (((B041 * Tt + B131 * Ss + B031) * Tt + + (B221 * Ss + B121) * Ss + B021) * + Tt + + ((B311 * Ss + B211) * Ss + B111) * Ss + B011) * + Tt + + (((B401 * Ss + B301) * Ss + B201) * Ss + B101) * Ss + + B001; + DSsPCoeffs[0] = ((((B050 * Tt + B140 * Ss + B040) * Tt + (B230 * Ss + B130) * Ss + B030) * Tt + @@ -426,19 +422,16 @@ class Teos10Eos { /// Evaluate one of the degree-4 derivative pressure polynomials assembled /// by calcPCoeffsDTt or calcPCoeffsDSs. P is relative pressure in dbar. - KOKKOS_FUNCTION static Real - calcDeltaDeriv(const Real (&DPCoeffs)[5 * VecLength], const I4 KVec, - const Real P) { + KOKKOS_FUNCTION static Real calcDeltaDeriv(const Real (&DPCoeffs)[5], + const Real P) { Real Pp = P * PNorm; Real DDelta = - (((DPCoeffs[4 + 5 * KVec] * Pp + DPCoeffs[3 + 5 * KVec]) * Pp + - DPCoeffs[2 + 5 * KVec]) * - Pp + - DPCoeffs[1 + 5 * KVec]) * + (((DPCoeffs[4] * Pp + DPCoeffs[3]) * Pp + DPCoeffs[2]) * Pp + + DPCoeffs[1]) * Pp + - DPCoeffs[0 + 5 * KVec]; + DPCoeffs[0]; return DDelta; } @@ -447,19 +440,19 @@ class Teos10Eos { /// to pressure, from the coefficients calcPCoeffs has already assembled for /// the specific volume itself. P is relative pressure in dbar and the /// result is per dbar. - KOKKOS_FUNCTION Real calcDeltaDP(const Real (&SpecVolPCoeffs)[6 * VecLength], - const I4 KVec, const Real P) const { + KOKKOS_FUNCTION Real calcDeltaDP(const Real (&SpecVolPCoeffs)[6], + const Real P) const { Real Pp = P * PNorm; - Real DDelta = (((5.0_Real * SpecVolPCoeffs[5 + 6 * KVec] * Pp + - 4.0_Real * SpecVolPCoeffs[4 + 6 * KVec]) * - Pp + - 3.0_Real * SpecVolPCoeffs[3 + 6 * KVec]) * - Pp + - 2.0_Real * SpecVolPCoeffs[2 + 6 * KVec]) * - Pp + - SpecVolPCoeffs[1 + 6 * KVec]; + Real DDelta = + (((5.0_Real * SpecVolPCoeffs[5] * Pp + 4.0_Real * SpecVolPCoeffs[4]) * + Pp + + 3.0_Real * SpecVolPCoeffs[3]) * + Pp + + 2.0_Real * SpecVolPCoeffs[2]) * + Pp + + SpecVolPCoeffs[1]; return DDelta * PNorm; } @@ -496,85 +489,61 @@ class Teos10Eos { /// returned per degC, per (g/kg), and per Pa respectively. /// /// This is the point-wise entry point: it takes scalars and returns scalars, - /// with no cell, layer or chunk indexing. It is what the unit tests call to - /// check the polynomial against GSW-C and against finite differences at - /// chosen states, and it is the form to use anywhere a single state needs to - /// be evaluated. The array-level path over the mesh instead uses - /// calcSpecVolAndDerivsInChunk below, which loops over a vertical chunk and - /// reuses the coefficient arrays across the layers of that chunk. + /// with no cell or layer indexing. It is what the unit tests call to check + /// the polynomial against GSW-C and against finite differences at chosen + /// states, and it is the form to use anywhere a single state needs to be + /// evaluated. It is also the single implementation of the derivatives: the + /// array-level path over the mesh, calcSpecVolAndDerivsInChunk below, calls + /// this at each cell and layer. KOKKOS_FUNCTION void calcSpecVolAndDerivsAtPoint(const Real Ct, const Real Sa, const Real P, Real &SpecVol, Real &SpecVolDCt, Real &SpecVolDSa, Real &SpecVolDP) const { - Real SpecVolPCoeffs[6 * VecLength]; - Real DTtPCoeffs[5 * VecLength]; - Real DSsPCoeffs[5 * VecLength]; + Real SpecVolPCoeffs[6]; + Real DTtPCoeffs[5]; + Real DSsPCoeffs[5]; const Real Ss = Kokkos::sqrt((Sa + DeltaS) / SaNorm); const Real Tt = Ct / CtNorm; const Real Pdb = P * Pa2Db; - calcPCoeffs(SpecVolPCoeffs, 0, Ct, Sa); - calcPCoeffsDTt(DTtPCoeffs, 0, Ss, Tt); - calcPCoeffsDSs(DSsPCoeffs, 0, Ss, Tt); + calcPCoeffs(SpecVolPCoeffs, Ct, Sa); + calcPCoeffsDTt(DTtPCoeffs, Ss, Tt); + calcPCoeffsDSs(DSsPCoeffs, Ss, Tt); - SpecVol = calcRefProfile(Pdb) + calcDelta(SpecVolPCoeffs, 0, Pdb); + SpecVol = calcRefProfile(Pdb) + calcDelta(SpecVolPCoeffs, Pdb); /// Chain rule from the normalized variables of the polynomial to the /// physical ones: dTt/dCt = 1 / CtNorm, dSs/dSa = 1 / (2 SaNorm Ss), /// and dPdb/dP = Pa2Db. - SpecVolDCt = calcDeltaDeriv(DTtPCoeffs, 0, Pdb) / CtNorm; - SpecVolDSa = - calcDeltaDeriv(DSsPCoeffs, 0, Pdb) * 0.5_Real / (SaNorm * Ss); + SpecVolDCt = calcDeltaDeriv(DTtPCoeffs, Pdb) / CtNorm; + SpecVolDSa = calcDeltaDeriv(DSsPCoeffs, Pdb) * 0.5_Real / (SaNorm * Ss); SpecVolDP = - (calcRefProfileDP(Pdb) + calcDeltaDP(SpecVolPCoeffs, 0, Pdb)) * Pa2Db; + (calcRefProfileDP(Pdb) + calcDeltaDP(SpecVolPCoeffs, Pdb)) * Pa2Db; } /// Calculate the TEOS-10 specific volume and its three first derivatives - /// over a vertical chunk of a cell. Pressure is the relative pressure in + /// over the active layers of a cell. Pressure is the relative pressure in /// Pa; the derivatives are per degC, per (g/kg), and per Pa. This is the - /// chunk-wise counterpart of calcSpecVolAndDerivsAtPoint above and is what - /// Eos::computeSpecVolAndDerivs calls from the inner parallel loop. + /// array-level counterpart of calcSpecVolAndDerivsAtPoint above and is what + /// Eos::computeSpecVolAndDerivs calls for each cell. KOKKOS_FUNCTION void calcSpecVolAndDerivsInChunk( Array2DReal SpecVol, Array2DReal SpecVolDCt, Array2DReal SpecVolDSa, - Array2DReal SpecVolDP, I4 ICell, I4 KChunk, + Array2DReal SpecVolDP, const TeamMember &Team, I4 ICell, const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity, const Array2DReal &Pressure) const { - Real SpecVolPCoeffs[6 * VecLength]; - Real DTtPCoeffs[5 * VecLength]; - Real DSsPCoeffs[5 * VecLength]; - - const I4 KStart = chunkStart(KChunk, MinLayerCell(ICell)); - const I4 KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); - - for (int KVec = 0; KVec < KLen; ++KVec) { - const I4 K = KStart + KVec; - const Real Ct = ConservTemp(ICell, K); - const Real Sa = AbsSalinity(ICell, K); - const Real Ss = Kokkos::sqrt((Sa + DeltaS) / SaNorm); - const Real Tt = Ct / CtNorm; - const Real Pdb = Pressure(ICell, K) * Pa2Db; - - /// Assemble the pressure polynomial coefficients for the specific - /// volume and for its temperature and salinity derivatives. All three - /// use the same normalized state, so the equation of state is - /// evaluated only once per cell and layer. - calcPCoeffs(SpecVolPCoeffs, KVec, Ct, Sa); - calcPCoeffsDTt(DTtPCoeffs, KVec, Ss, Tt); - calcPCoeffsDSs(DSsPCoeffs, KVec, Ss, Tt); - - SpecVol(ICell, K) = - calcRefProfile(Pdb) + calcDelta(SpecVolPCoeffs, KVec, Pdb); - - SpecVolDCt(ICell, K) = calcDeltaDeriv(DTtPCoeffs, KVec, Pdb) / CtNorm; - SpecVolDSa(ICell, K) = - calcDeltaDeriv(DSsPCoeffs, KVec, Pdb) * 0.5_Real / (SaNorm * Ss); - SpecVolDP(ICell, K) = - (calcRefProfileDP(Pdb) + calcDeltaDP(SpecVolPCoeffs, KVec, Pdb)) * - Pa2Db; - } + const I4 KMin = MinLayerCell(ICell); + const I4 KMax = MaxLayerCell(ICell); + + parallelForInner( + Team, Range{KMin, KMax}, INNER_LAMBDA(int K) { + calcSpecVolAndDerivsAtPoint( + ConservTemp(ICell, K), AbsSalinity(ICell, K), + Pressure(ICell, K), SpecVol(ICell, K), SpecVolDCt(ICell, K), + SpecVolDSa(ICell, K), SpecVolDP(ICell, K)); + }); } /// Calculate 2nd derivative of Gibbs wrt pot temp at ref P for TEOS-10 @@ -762,48 +731,48 @@ class LinearEos { LinearEos(const VertCoord *VCoord); // The functor takes the full arrays of specific volume (inout), - // the indices ICell and KChunk, and the ocean tracers (conservative) - // temperature, and (absolute) salinity as inputs, and outputs the - // linear specific volume. - KOKKOS_FUNCTION void operator()(Array2DReal SpecVol, I4 ICell, I4 KChunk, - const Array2DReal &ConservTemp, + // the team member and the cell index ICell, and the ocean tracers + // (conservative) temperature, and (absolute) salinity as inputs, and + // outputs the linear specific volume. + KOKKOS_FUNCTION void operator()(Array2DReal SpecVol, const TeamMember &Team, + I4 ICell, const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity) const { - const I4 KStart = chunkStart(KChunk, MinLayerCell(ICell)); - const I4 KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); + const I4 KMin = MinLayerCell(ICell); + const I4 KMax = MaxLayerCell(ICell); - for (int KVec = 0; KVec < KLen; ++KVec) { - const I4 K = KStart + KVec; - SpecVol(ICell, K) = - 1.0_Real / (RhoT0S0 + (DRhodT * ConservTemp(ICell, K) + - DRhodS * AbsSalinity(ICell, K))); - } + parallelForInner( + Team, Range{KMin, KMax}, INNER_LAMBDA(int K) { + SpecVol(ICell, K) = + 1.0_Real / (RhoT0S0 + (DRhodT * ConservTemp(ICell, K) + + DRhodS * AbsSalinity(ICell, K))); + }); } /// Calculate the linear specific volume and its three first derivatives - /// over a vertical chunk of a cell. With + /// over the active layers of a cell. With /// SpecVol = 1 / (RhoT0S0 + DRhodT * Ct + DRhodS * Sa) /// the derivatives are -DRhodT * SpecVol^2 and -DRhodS * SpecVol^2, and /// the linear EOS has no pressure dependence at all. KOKKOS_FUNCTION void calcSpecVolAndDerivsInChunk( Array2DReal SpecVol, Array2DReal SpecVolDCt, Array2DReal SpecVolDSa, - Array2DReal SpecVolDP, I4 ICell, I4 KChunk, + Array2DReal SpecVolDP, const TeamMember &Team, I4 ICell, const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity) const { - const I4 KStart = chunkStart(KChunk, MinLayerCell(ICell)); - const I4 KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); + const I4 KMin = MinLayerCell(ICell); + const I4 KMax = MaxLayerCell(ICell); - for (int KVec = 0; KVec < KLen; ++KVec) { - const I4 K = KStart + KVec; - const Real Sv = - 1.0_Real / (RhoT0S0 + (DRhodT * ConservTemp(ICell, K) + - DRhodS * AbsSalinity(ICell, K))); + parallelForInner( + Team, Range{KMin, KMax}, INNER_LAMBDA(int K) { + const Real Sv = + 1.0_Real / (RhoT0S0 + (DRhodT * ConservTemp(ICell, K) + + DRhodS * AbsSalinity(ICell, K))); - SpecVol(ICell, K) = Sv; - SpecVolDCt(ICell, K) = -DRhodT * Sv * Sv; - SpecVolDSa(ICell, K) = -DRhodS * Sv * Sv; - SpecVolDP(ICell, K) = 0.0_Real; - } + SpecVol(ICell, K) = Sv; + SpecVolDCt(ICell, K) = -DRhodT * Sv * Sv; + SpecVolDSa(ICell, K) = -DRhodS * Sv * Sv; + SpecVolDP(ICell, K) = 0.0_Real; + }); } private: @@ -817,44 +786,43 @@ class ConstantEos { /// constructor declaration ConstantEos(const VertCoord *VCoord); - // The functor takes the full arrays of specific volume (inout), - // the indices ICell and KChunk, and returns a constant specific volume + // The functor takes the full arrays of specific volume (inout), the team + // member and the cell index ICell, and returns a constant specific volume // value for all active layers. - KOKKOS_FUNCTION void operator()(Array2DReal SpecVol, I4 ICell, I4 KChunk, - const Array2DReal &ConservTemp, + KOKKOS_FUNCTION void operator()(Array2DReal SpecVol, const TeamMember &Team, + I4 ICell, const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity) const { - const I4 KStart = chunkStart(KChunk, MinLayerCell(ICell)); - const I4 KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); + const I4 KMin = MinLayerCell(ICell); + const I4 KMax = MaxLayerCell(ICell); (void)ConservTemp; (void)AbsSalinity; - for (int KVec = 0; KVec < KLen; ++KVec) { - const I4 K = KStart + KVec; - SpecVol(ICell, K) = 1.0_Real / RhoSw; - } + parallelForInner( + Team, Range{KMin, KMax}, + INNER_LAMBDA(int K) { SpecVol(ICell, K) = 1.0_Real / RhoSw; }); } /// Calculate the constant specific volume and its three first derivatives - /// over a vertical chunk of a cell. The specific volume does not depend on + /// over the active layers of a cell. The specific volume does not depend on /// temperature, salinity or pressure, so all three derivatives vanish. KOKKOS_FUNCTION void calcSpecVolAndDerivsInChunk( Array2DReal SpecVol, Array2DReal SpecVolDCt, Array2DReal SpecVolDSa, - Array2DReal SpecVolDP, I4 ICell, I4 KChunk, + Array2DReal SpecVolDP, const TeamMember &Team, I4 ICell, const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity) const { - const I4 KStart = chunkStart(KChunk, MinLayerCell(ICell)); - const I4 KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); + const I4 KMin = MinLayerCell(ICell); + const I4 KMax = MaxLayerCell(ICell); (void)ConservTemp; (void)AbsSalinity; - for (int KVec = 0; KVec < KLen; ++KVec) { - const I4 K = KStart + KVec; - SpecVol(ICell, K) = 1.0_Real / RhoSw; - SpecVolDCt(ICell, K) = 0.0_Real; - SpecVolDSa(ICell, K) = 0.0_Real; - SpecVolDP(ICell, K) = 0.0_Real; - } + parallelForInner( + Team, Range{KMin, KMax}, INNER_LAMBDA(int K) { + SpecVol(ICell, K) = 1.0_Real / RhoSw; + SpecVolDCt(ICell, K) = 0.0_Real; + SpecVolDSa(ICell, K) = 0.0_Real; + SpecVolDP(ICell, K) = 0.0_Real; + }); } private: @@ -869,38 +837,41 @@ class Teos10BruntVaisalaFreqSq { Teos10BruntVaisalaFreqSq(const VertCoord *VCoord); // The functor takes the full arrays of squared Brunt-Vaisala frequency - // (inout) the index ICell, and the ocean tracers (conservative) - // temperature, (absolute) salinity, relative pressure (gauge pressure, - // i.e., absolute pressure minus the standard atmosphere), and specific - // volume as inputs, and outputs the squared Brunt-Vaisala frequency. - KOKKOS_FUNCTION void operator()(Array2DReal BruntVaisalaFreqSq, I4 ICell, - I4 KChunk, const Array2DReal &ConservTemp, - const Array2DReal &AbsSalinity, - const Array2DReal &Pressure, - const Array2DReal &SpecVol) const { - - const I4 KStart = chunkStart(KChunk, MinLayerCell(ICell) + 1); - const I4 KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); - - for (int KVec = 0; KVec < KLen; ++KVec) { - const I4 K = KStart + KVec; - // Calculate squared Brunt-Vaisala frequency - Real CtInt = - 0.5_Real * (ConservTemp(ICell, K) + ConservTemp(ICell, K - 1)); - Real SaInt = - 0.5_Real * (AbsSalinity(ICell, K) + AbsSalinity(ICell, K - 1)); - Real PInt = 0.5_Real * (Pressure(ICell, K) + Pressure(ICell, K - 1)); - Real SpInt = 0.5_Real * (SpecVol(ICell, K) + SpecVol(ICell, K - 1)); - Real AlphaInt = calcAlpha(SaInt, CtInt, PInt * Pa2Db, SpInt); - Real BetaInt = calcBeta(SaInt, CtInt, PInt * Pa2Db, SpInt); - Real DSa = AbsSalinity(ICell, K) - AbsSalinity(ICell, K - 1); - Real DCt = ConservTemp(ICell, K) - ConservTemp(ICell, K - 1); - Real DP = Pressure(ICell, K) - Pressure(ICell, K - 1); - - BruntVaisalaFreqSq(ICell, K) = Gravity * Gravity * - (BetaInt * DSa - AlphaInt * DCt) / - (SpInt * DP); - } + // (inout) the team member and the cell index ICell, and the ocean tracers + // (conservative) temperature, (absolute) salinity, relative pressure + // (gauge pressure, i.e., absolute pressure minus the standard + // atmosphere), and specific volume as inputs, and outputs the squared + // Brunt-Vaisala frequency. + KOKKOS_FUNCTION void + operator()(Array2DReal BruntVaisalaFreqSq, const TeamMember &Team, I4 ICell, + const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity, + const Array2DReal &Pressure, const Array2DReal &SpecVol) const { + + // Compute at interior vertical interfaces only + const I4 KMin = MinLayerCell(ICell) + 1; + const I4 KMax = MaxLayerCell(ICell); + + parallelForInner( + Team, Range{KMin, KMax}, INNER_LAMBDA(int K) { + // Calculate squared Brunt-Vaisala frequency + Real CtInt = + 0.5_Real * (ConservTemp(ICell, K) + ConservTemp(ICell, K - 1)); + Real SaInt = + 0.5_Real * (AbsSalinity(ICell, K) + AbsSalinity(ICell, K - 1)); + Real PInt = + 0.5_Real * (Pressure(ICell, K) + Pressure(ICell, K - 1)); + Real SpInt = + 0.5_Real * (SpecVol(ICell, K) + SpecVol(ICell, K - 1)); + Real AlphaInt = calcAlpha(SaInt, CtInt, PInt * Pa2Db, SpInt); + Real BetaInt = calcBeta(SaInt, CtInt, PInt * Pa2Db, SpInt); + Real DSa = AbsSalinity(ICell, K) - AbsSalinity(ICell, K - 1); + Real DCt = ConservTemp(ICell, K) - ConservTemp(ICell, K - 1); + Real DP = Pressure(ICell, K) - Pressure(ICell, K - 1); + + BruntVaisalaFreqSq(ICell, K) = Gravity * Gravity * + (BetaInt * DSa - AlphaInt * DCt) / + (SpInt * DP); + }); } /// Calculate alpha (the thermal expansion coefficient) for the squared @@ -921,15 +892,15 @@ class Teos10BruntVaisalaFreqSq { /// cannot assume. KOKKOS_FUNCTION Real calcAlpha(Real Sa, Real Ct, Real P, Real Sp) const { - Real DTtPCoeffs[5 * VecLength]; + Real DTtPCoeffs[5]; const Real Ss = Kokkos::sqrt((Sa + Teos10Eos::DeltaS) / Teos10Eos::SaNorm); const Real Tt = Ct / Teos10Eos::CtNorm; - Teos10Eos::calcPCoeffsDTt(DTtPCoeffs, 0, Ss, Tt); + Teos10Eos::calcPCoeffsDTt(DTtPCoeffs, Ss, Tt); - return Teos10Eos::calcDeltaDeriv(DTtPCoeffs, 0, P) / + return Teos10Eos::calcDeltaDeriv(DTtPCoeffs, P) / (Teos10Eos::CtNorm * Sp); } @@ -941,15 +912,15 @@ class Teos10BruntVaisalaFreqSq { /// Eos::SpecVolDSa array. KOKKOS_FUNCTION Real calcBeta(Real Sa, Real Ct, Real P, Real Sp) const { - Real DSsPCoeffs[5 * VecLength]; + Real DSsPCoeffs[5]; const Real Ss = Kokkos::sqrt((Sa + Teos10Eos::DeltaS) / Teos10Eos::SaNorm); const Real Tt = Ct / Teos10Eos::CtNorm; - Teos10Eos::calcPCoeffsDSs(DSsPCoeffs, 0, Ss, Tt); + Teos10Eos::calcPCoeffsDSs(DSsPCoeffs, Ss, Tt); - return -0.5_Real * Teos10Eos::calcDeltaDeriv(DSsPCoeffs, 0, P) / + return -0.5_Real * Teos10Eos::calcDeltaDeriv(DSsPCoeffs, P) / (Teos10Eos::SaNorm * Ss * Sp); } @@ -965,26 +936,28 @@ class LinearBruntVaisalaFreqSq { LinearBruntVaisalaFreqSq(const VertCoord *VCoord); // The functor takes the full arrays of squared Brunt-Vaisala frequency - // (inout), the index ICell, and the specific volume and pseudo-thickness - // as inputs, and outputs the squared Brunt-Vaisala frequency. - KOKKOS_FUNCTION void operator()(Array2DReal BruntVaisalaFreqSq, I4 ICell, - I4 KChunk, + // (inout), the team member and the cell index ICell, and the specific + // volume and pseudo-thickness as inputs, and outputs the squared + // Brunt-Vaisala frequency. + KOKKOS_FUNCTION void operator()(Array2DReal BruntVaisalaFreqSq, + const TeamMember &Team, I4 ICell, const Array2DReal &SpecVol) const { - const I4 KStart = chunkStart(KChunk, MinLayerCell(ICell) + 1); - const I4 KLen = chunkLength(KChunk, KStart, MaxLayerCell(ICell)); - - for (int KVec = 0; KVec < KLen; ++KVec) { - const I4 K = KStart + KVec; - /// Calculate squared Brunt-Vaisala frequency at mid-point between - /// K-1 and K Do not need to use displaced specific volume here - /// since only the linear EOS is used with this BVF formulation. - BruntVaisalaFreqSq(ICell, K) = - -(Gravity / RhoSw) * - ((1.0_Real / SpecVol(ICell, K - 1)) - - (1.0_Real / SpecVol(ICell, K))) / - (GeomZMid(ICell, K - 1) - GeomZMid(ICell, K)); - } + // Compute at interior vertical interfaces only + const I4 KMin = MinLayerCell(ICell) + 1; + const I4 KMax = MaxLayerCell(ICell); + + parallelForInner( + Team, Range{KMin, KMax}, INNER_LAMBDA(int K) { + /// Calculate squared Brunt-Vaisala frequency at mid-point between + /// K-1 and K Do not need to use displaced specific volume here + /// since only the linear EOS is used with this BVF formulation. + BruntVaisalaFreqSq(ICell, K) = + -(Gravity / RhoSw) * + ((1.0_Real / SpecVol(ICell, K - 1)) - + (1.0_Real / SpecVol(ICell, K))) / + (GeomZMid(ICell, K - 1) - GeomZMid(ICell, K)); + }); } private: From 87d8ead4f6694b87bbe8370691a250395686887d Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Thu, 6 Aug 2026 03:25:02 -0500 Subject: [PATCH 49/60] Rename calcSpecVolAndDerivsInChunk to OnCells The InChunk suffix named an implementation detail that no longer exists, and it was flagged in review as unusual and potentially confusing. The auxiliary variables name these routines for the mesh element they act on rather than for the vertical loop structure -- computeVarsOnCell, computeVarsOnEdge, computeVarsOnVertex -- and keep those names through the removal of chunking, so follow that convention here. The point-wise entry point keeps the name calcSpecVolAndDerivsAtPoint; the pair now reads as scalars in and out versus arrays over the mesh. Co-Authored-By: Claude Opus 5 --- components/omega/src/ocn/Eos.cpp | 6 +++--- components/omega/src/ocn/Eos.h | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/components/omega/src/ocn/Eos.cpp b/components/omega/src/ocn/Eos.cpp index b3d6b233c218..0a98eede897d 100644 --- a/components/omega/src/ocn/Eos.cpp +++ b/components/omega/src/ocn/Eos.cpp @@ -235,7 +235,7 @@ void Eos::computeSpecVolAndDerivs(const Array2DReal &ConservTemp, parallelForOuter( "eos-derivs-linear", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { - LocComputeSpecVolLinear.calcSpecVolAndDerivsInChunk( + LocComputeSpecVolLinear.calcSpecVolAndDerivsOnCells( LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, Team, ICell, ConservTemp, AbsSalinity); }); @@ -243,7 +243,7 @@ void Eos::computeSpecVolAndDerivs(const Array2DReal &ConservTemp, parallelForOuter( "eos-derivs-teos10", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { - LocComputeSpecVolTeos10.calcSpecVolAndDerivsInChunk( + LocComputeSpecVolTeos10.calcSpecVolAndDerivsOnCells( LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, Team, ICell, ConservTemp, AbsSalinity, Pressure); }); @@ -251,7 +251,7 @@ void Eos::computeSpecVolAndDerivs(const Array2DReal &ConservTemp, parallelForOuter( "eos-derivs-constant", {Mesh->NCellsAll}, KOKKOS_LAMBDA(I4 ICell, const TeamMember &Team) { - LocComputeSpecVolConstant.calcSpecVolAndDerivsInChunk( + LocComputeSpecVolConstant.calcSpecVolAndDerivsOnCells( LocSpecVol, LocSpecVolDCt, LocSpecVolDSa, LocSpecVolDP, Team, ICell, ConservTemp, AbsSalinity); }); diff --git a/components/omega/src/ocn/Eos.h b/components/omega/src/ocn/Eos.h index d3719578a3ff..462103c2c3f2 100644 --- a/components/omega/src/ocn/Eos.h +++ b/components/omega/src/ocn/Eos.h @@ -493,7 +493,7 @@ class Teos10Eos { /// the polynomial against GSW-C and against finite differences at chosen /// states, and it is the form to use anywhere a single state needs to be /// evaluated. It is also the single implementation of the derivatives: the - /// array-level path over the mesh, calcSpecVolAndDerivsInChunk below, calls + /// array-level path over the mesh, calcSpecVolAndDerivsOnCells below, calls /// this at each cell and layer. KOKKOS_FUNCTION void calcSpecVolAndDerivsAtPoint(const Real Ct, const Real Sa, const Real P, @@ -528,7 +528,7 @@ class Teos10Eos { /// Pa; the derivatives are per degC, per (g/kg), and per Pa. This is the /// array-level counterpart of calcSpecVolAndDerivsAtPoint above and is what /// Eos::computeSpecVolAndDerivs calls for each cell. - KOKKOS_FUNCTION void calcSpecVolAndDerivsInChunk( + KOKKOS_FUNCTION void calcSpecVolAndDerivsOnCells( Array2DReal SpecVol, Array2DReal SpecVolDCt, Array2DReal SpecVolDSa, Array2DReal SpecVolDP, const TeamMember &Team, I4 ICell, const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity, @@ -754,7 +754,7 @@ class LinearEos { /// SpecVol = 1 / (RhoT0S0 + DRhodT * Ct + DRhodS * Sa) /// the derivatives are -DRhodT * SpecVol^2 and -DRhodS * SpecVol^2, and /// the linear EOS has no pressure dependence at all. - KOKKOS_FUNCTION void calcSpecVolAndDerivsInChunk( + KOKKOS_FUNCTION void calcSpecVolAndDerivsOnCells( Array2DReal SpecVol, Array2DReal SpecVolDCt, Array2DReal SpecVolDSa, Array2DReal SpecVolDP, const TeamMember &Team, I4 ICell, const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity) const { @@ -806,7 +806,7 @@ class ConstantEos { /// Calculate the constant specific volume and its three first derivatives /// over the active layers of a cell. The specific volume does not depend on /// temperature, salinity or pressure, so all three derivatives vanish. - KOKKOS_FUNCTION void calcSpecVolAndDerivsInChunk( + KOKKOS_FUNCTION void calcSpecVolAndDerivsOnCells( Array2DReal SpecVol, Array2DReal SpecVolDCt, Array2DReal SpecVolDSa, Array2DReal SpecVolDP, const TeamMember &Team, I4 ICell, const Array2DReal &ConservTemp, const Array2DReal &AbsSalinity) const { From 12e1c2cc8d4e4683a7eb951821b6d8931660cafa Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Mon, 17 Aug 2026 06:47:05 -0600 Subject: [PATCH 50/60] Remove Team.team_barrier() and Kokkos::fence(). Omega does not need them --- components/omega/src/ocn/Tendencies.cpp | 7 ------- components/omega/src/ocn/TendencyTerms.cpp | 3 --- components/omega/src/ocn/TendencyTerms.h | 4 ---- 3 files changed, 14 deletions(-) diff --git a/components/omega/src/ocn/Tendencies.cpp b/components/omega/src/ocn/Tendencies.cpp index df65cfb0221f..9ed4dc040b6d 100644 --- a/components/omega/src/ocn/Tendencies.cpp +++ b/components/omega/src/ocn/Tendencies.cpp @@ -886,7 +886,6 @@ void Tendencies::computeTracerTendenciesOnly( Team, ICell, Dt, LocFluxPseudoThickEdge, LocPseudoThickCell, LocNormalVelEdge); }); - Kokkos::fence(); for (int L = 0; L < NTracers; ++L) { parallelForOuter( "Tend:FCTTracerCurFill", {Mesh->NCellsAll}, @@ -894,33 +893,28 @@ void Tendencies::computeTracerTendenciesOnly( LocTracerHorzAdv.FCTTracerCurFill(Team, L, ICell, LocTracerArray); }); - Kokkos::fence(); parallelForOuter( "Tend:FCTTracerCurFill", {Mesh->NCellsAll}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { LocTracerHorzAdv.FCTTracerMinMax(Team, ICell); }); - Kokkos::fence(); parallelForOuter( "Tend:FCTHighAndLowOrderFlux", {Mesh->NEdgesHaloH(1)}, KOKKOS_LAMBDA(int IEdge, const TeamMember &Team) { LocTracerHorzAdv.FCTHighAndLowOrderFlux( Team, IEdge, LocFluxPseudoThickEdge, LocNormalVelEdge); }); - Kokkos::fence(); parallelForOuter( "Tend:FCTFluxInOut", {Mesh->NCellsHaloH(0)}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { LocTracerHorzAdv.FCTFluxInOut(Team, ICell, Dt, LocPseudoThickCell); }); - Kokkos::fence(); parallelForOuter( "Tend:FCTRescaleHighOrderFlux", {Mesh->NEdgesHaloH(0)}, KOKKOS_LAMBDA(int IEdge, const TeamMember &Team) { LocTracerHorzAdv.FCTRescaleHighOrderFlux(Team, IEdge); }); - Kokkos::fence(); parallelForOuter( "Tend:FCTAccumulateHighOrderFlux", {Mesh->NCellsOwned}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { @@ -929,7 +923,6 @@ void Tendencies::computeTracerTendenciesOnly( LocTracerHorzAdv.FCTAccumulateHighOrderFlux( Team, ICell, Dt, Tend, LocPseudoThickCell); }); - Kokkos::fence(); if (LocTracerHorzAdv.ComputeBudgets) { parallelForOuter( "Tend:FCTComputeBudgetAdvectionEdgeFlux", diff --git a/components/omega/src/ocn/TendencyTerms.cpp b/components/omega/src/ocn/TendencyTerms.cpp index 1cc7c7143339..d5f35ba8dcab 100644 --- a/components/omega/src/ocn/TendencyTerms.cpp +++ b/components/omega/src/ocn/TendencyTerms.cpp @@ -149,14 +149,11 @@ void TracerHorzAdvOnCell::init() { {NCellsAll}, KOKKOS_LAMBDA(int ICell) { secondDerivativeOnCell(DerivTwo, ICell); }); // Compute masks and coefficients - Kokkos::fence(); MasksAndCoefficients masksAndCoefficients( Mesh, VCoord, DerivTwo, NAdvCellsForEdge, AdvCellsForEdge, AdvMaskHighOrder, AdvCoefs, AdvCoefs3rd); - Kokkos::fence(); parallelFor( {NEdgesAll}, KOKKOS_LAMBDA(int IEdge) { masksAndCoefficients(IEdge); }); - Kokkos::fence(); if (FCT) { HProvInv = Array2DReal("FCTProvesionalLayerThickness", Mesh->NEdgesAll, NVertLayers); diff --git a/components/omega/src/ocn/TendencyTerms.h b/components/omega/src/ocn/TendencyTerms.h index 520e48776680..6310650c3ce5 100644 --- a/components/omega/src/ocn/TendencyTerms.h +++ b/components/omega/src/ocn/TendencyTerms.h @@ -505,7 +505,6 @@ class TracerHorzAdvOnCell { TracerMin(ICell, K) = Kokkos::min(TracerMin(ICell, K), TracerCur(ICell2, K)); }); - Team.team_barrier(); } } @@ -543,7 +542,6 @@ class TracerHorzAdvOnCell { HighOrderFlx(IEdge, K) += TracerWgt * TracerCur(ICell, K) * AdvMaskHighOrder(IEdge, K); }); - Team.team_barrier(); } // Compute 2nd order fluxes where needed. // Also compute low order upwind horizontal flux (monotonic) @@ -597,7 +595,6 @@ class TracerHorzAdvOnCell { FlxIn(ICell, K) += Kokkos::max( 0.0_Real, SignedFactor * HighOrderFlx(IEdge, K)); }); - Team.team_barrier(); } // Build the factors for the FCT // Computed using the bounds that were computed previously, @@ -666,7 +663,6 @@ class TracerHorzAdvOnCell { // WorkTend on LHS is total horiz advect tendency WorkTend(ICell, K) += SignedFactor * HighOrderFlx(IEdge, K); }); - Team.team_barrier(); } const int KMin = MinLayerCell(ICell); const int KMax = MaxLayerCell(ICell); From 1ef33637f6ebca373cceee55c4a6b691ee977726 Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Mon, 17 Aug 2026 08:23:07 -0600 Subject: [PATCH 51/60] Adjust array sizes to be consistent --- components/omega/src/ocn/TendencyTerms.cpp | 31 +++++++++++----------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/components/omega/src/ocn/TendencyTerms.cpp b/components/omega/src/ocn/TendencyTerms.cpp index d5f35ba8dcab..438fadf41f7c 100644 --- a/components/omega/src/ocn/TendencyTerms.cpp +++ b/components/omega/src/ocn/TendencyTerms.cpp @@ -155,22 +155,21 @@ void TracerHorzAdvOnCell::init() { parallelFor( {NEdgesAll}, KOKKOS_LAMBDA(int IEdge) { masksAndCoefficients(IEdge); }); if (FCT) { - HProvInv = Array2DReal("FCTProvesionalLayerThickness", Mesh->NEdgesAll, - NVertLayers); - HNewInv = Array2DReal("FCTProvesionalNewInverse", NEdgesAll, NVertLayers); - HProv = Array2DReal("FCTProvesionalThickness", NCellsAll, NVertLayers); - TracerCur = Array2DReal("TracerCur", NCellsAll + 1, NVertLayers), - TracerMax = Array2DReal("FCTTracerMax", NCellsAll, NVertLayers); - TracerMin = Array2DReal("FCTTracerMin", NCellsAll, NVertLayers); - HighOrderFlx = - Array2DReal("FCTHighOrderFlx", std::max(NEdgesAll, NCellsAll) + 1, - NVertLayers + 1); - LowOrderFlx = - Array2DReal("FCTLowOrderFlx", std::max(NEdgesAll, NCellsAll) + 1, - NVertLayers + 1); - WorkTend = Array2DReal("WorkTend", NCellsAll + 1, NVertLayers); - FlxIn = Array2DReal("FlxIn", NCellsAll + 1, NVertLayers); - FlxOut = Array2DReal("FlxOut", NCellsAll + 1, NVertLayers); + const int NCellsFCT = NCellsAll + 1; + const int NEdgesFCT = NEdgesAll; + const int NVertsFCT = NVertLayers + 1; + HProvInv = + Array2DReal("FCTProvesionalLayerThickness", NEdgesFCT, NVertsFCT); + HNewInv = Array2DReal("FCTProvesionalNewInverse", NEdgesFCT, NVertsFCT); + HProv = Array2DReal("FCTProvesionalThickness", NCellsFCT, NVertsFCT); + TracerCur = Array2DReal("TracerCur", NCellsFCT, NVertsFCT), + TracerMax = Array2DReal("FCTTracerMax", NCellsFCT, NVertsFCT); + TracerMin = Array2DReal("FCTTracerMin", NCellsFCT, NVertsFCT); + HighOrderFlx = Array2DReal("FCTHighOrderFlx", NEdgesFCT, NVertsFCT); + LowOrderFlx = Array2DReal("FCTLowOrderFlx", NEdgesFCT, NVertsFCT); + WorkTend = Array2DReal("WorkTend", NCellsFCT, NVertsFCT); + FlxIn = Array2DReal("FlxIn", NCellsFCT, NVertsFCT); + FlxOut = Array2DReal("FlxOut", NCellsFCT, NVertsFCT); deepCopy(HProvInv, 0.0); deepCopy(HNewInv, 0.0); deepCopy(HProv, 0.0); From e87adea82925ebb720389bca31c3358b74180d57 Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Tue, 18 Aug 2026 13:39:40 -0600 Subject: [PATCH 52/60] Modify TendencyTermsPlane test --- .../omega/test/ocn/TendencyTermsTest.cpp | 538 ++++++++++-------- 1 file changed, 303 insertions(+), 235 deletions(-) diff --git a/components/omega/test/ocn/TendencyTermsTest.cpp b/components/omega/test/ocn/TendencyTermsTest.cpp index c20d54d9b41e..2ee1090a59f4 100644 --- a/components/omega/test/ocn/TendencyTermsTest.cpp +++ b/components/omega/test/ocn/TendencyTermsTest.cpp @@ -48,44 +48,23 @@ struct TestSetupPlane { Real Lx = 1; Real Ly = SqrtThree / 2; - ErrorMeasures ExpectedDivErrors = {0.00124886886594453264, - 0.00124886886590977139}; - ErrorMeasures ExpectedPVErrors = {0.00807347170900282914, - 0.00794755105765788429}; - ErrorMeasures ExpectedGradErrors = {0.00125026071878537952, - 0.00134354611117262161}; - ErrorMeasures ExpectedLaplaceErrors = {0.00113090174765822192, - 0.00134324628763667899}; - ErrorMeasures ExpectedTrHAdvErrors = {0.0029211089892916243, - 0.0024583038518548855}; -#ifdef OMEGA_SINGLE_PRECISION - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsH = {1.9073486e-06, - 1.9073486e-06}; -#else - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsH = {0.00, 0.00}; -#endif - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsT = {0.00, 0.00}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMin = {4.000000000000000, - 3.1273853748885485}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMax = {3.989322101820906, - 2.6397002508968472}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsLFlx = {0.036084391824351, - 0.093369312248885}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsHFlx = {0.000000000000000, - 0.000000000000000}; - ErrorMeasures ExpectedFCTHighAndLowOrderFlux_High = {0.0165253009242944, - 0.012337271857415571}; - ErrorMeasures ExpectedFCTHighAndLowOrderFlux_Low = {0.036084391824351, - 0.092303444396272}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxIn = {1, 0.7829782033185549}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxOut = {1, 0.7040759846240653}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxInOut = {1, - 1.5053819233225736}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsescaleHighOrderFlux = { - 1.001623430330361, 0.9996778602155226}; - ErrorMeasures ExpectedFCTTracerHorAccumulateHighOrderFlux[2] = { - {0.01045387513810018, 0.05774265725842573}, - {0.01045387513810018, 0.05627743044712789}}; + ErrorMeasures ExpectedDivErrors = {0.00124886886594453264, + 0.00124886886590977139}; + ErrorMeasures ExpectedPVErrors = {0.00807347170900282914, + 0.00794755105765788429}; + ErrorMeasures ExpectedGradErrors = {0.00125026071878537952, + 0.00134354611117262161}; + ErrorMeasures ExpectedLaplaceErrors = {0.00113090174765822192, + 0.00134324628763667899}; + ErrorMeasures ExpectedTrHAdvErrors = {0.0029211089892916243, + 0.0024583038518548855}; + ErrorMeasures ExpectedFCTErrors = {0.00, 0.00}; + ErrorMeasures ExpectedFCT_High = {8.673617379884035e-18, + 1.1608832971817906e-17}; + ErrorMeasures ExpectedFCT_Low = {1.0095554103513882e-15, + 1.0095554103514163e-15}; + ErrorMeasures ExpectedFCTToNonFCT = {1.182357060681534e-15, + 6.487684357904678e-16}; ErrorMeasures ExpectedTrDel2Errors = {0.00334357193650093847, 0.00290978146207349032}; ErrorMeasures ExpectedTrDel4Errors = {0.00508833446725232875, @@ -95,6 +74,10 @@ struct TestSetupPlane { ErrorMeasures ExpectedBottomDragErrors = {0.033848740052302935, 0.01000133508329411}; + KOKKOS_FUNCTION Real velEdgeX(Real X, Real Y) const { return 2 / Lx; } + + KOKKOS_FUNCTION Real velEdgeY(Real X, Real Y) const { return 3 / Ly; } + KOKKOS_FUNCTION Real vectorX(Real X, Real Y) const { return std::sin(TwoPi * X / Lx) * std::cos(TwoPi * Y / Ly); } @@ -216,50 +199,38 @@ struct TestSetupSphere { // TODO: get this from the mesh Real Radius = REarth; - ErrorMeasures ExpectedDivErrors = {0.013652414501664885, - 0.0036904315983599676}; - ErrorMeasures ExpectedPVErrors = {0.0219217796608757037, - 0.0122537418367830303}; - ErrorMeasures ExpectedGradErrors = {0.0019094381714837498, - 0.0015218320661105702}; - ErrorMeasures ExpectedLaplaceErrors = {0.28193638497826856, - 0.270546491554748}; - ErrorMeasures ExpectedTrHAdvErrors = {0.013259410329645643, - 0.004094907022292395}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsH = {1.018132e-05, 5.731925e-06}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsT = {0, 0}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMin = {3.999579401557967, - 3.0836281234295635}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsMax = {3.9868502555946823, - 2.712542674500614}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsLFlx = {0.013961840219332, - 0.010140955894313}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsHFlx = {0.000000000000000, - 0.000000000000000}; - ErrorMeasures ExpectedFCTHighAndLowOrderFlux_High = {426256.39661430614, - 6532904825455.0130}; - ErrorMeasures ExpectedFCTHighAndLowOrderFlux_Low = {952854.2803370472, - 52005531508915.62}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxIn = {0.9999999991127118, - 0.020062237037249}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxOut = {1.000000000000000, - 0.04471474159043722}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsFlxInOut = {1.000000000000000, - 0.04901906373124676}; - ErrorMeasures ExpectedFCTTracerHorzAdvErrorsescaleHighOrderFlux = { - 426255.39661430614, 68192.88195155785}; - ErrorMeasures ExpectedFCTTracerHorAccumulateHighOrderFlux[2] = { - {111602.23404252343, 178627.1237154654}, - {111606.20044738495, 177587.373552468}}; - ErrorMeasures ExpectedTrDel2Errors = {0.04865718541236144, - 0.005105510870642706}; - ErrorMeasures ExpectedTrDel4Errors = {0.0008646345116716073, - 0.0007118574326665881}; + ErrorMeasures ExpectedDivErrors = {0.013652414501664885, + 0.0036904315983599676}; + ErrorMeasures ExpectedPVErrors = {0.0219217796608757037, + 0.0122537418367830303}; + ErrorMeasures ExpectedGradErrors = {0.0019094381714837498, + 0.0015218320661105702}; + ErrorMeasures ExpectedLaplaceErrors = {0.28193638497826856, + 0.270546491554748}; + ErrorMeasures ExpectedTrHAdvErrors = {0.013259410329645643, + 0.004094907022292395}; + ErrorMeasures ExpectedFCTErrors = {0, 0}; + ErrorMeasures ExpectedFCT_High = {3.469446951953614e-17, + 6.880761675357888e-17}; + ErrorMeasures ExpectedFCT_Low = {952854.2803370472, 52005531508915.62}; + ErrorMeasures ExpectedFCTToNonFCT = {111602.23404252343, 178627.1237154654}; + ErrorMeasures ExpectedTrDel2Errors = {0.04865718541236144, + 0.005105510870642706}; + ErrorMeasures ExpectedTrDel4Errors = {0.0008646345116716073, + 0.0007118574326665881}; ErrorMeasures ExpectedSurfTrRestErrors = {0, 0}; ErrorMeasures ExpectedSfcStressForcingErrors = {0, 0}; ErrorMeasures ExpectedBottomDragErrors = {0.0015333449035655053, 0.0014897009917655022}; + KOKKOS_FUNCTION Real velEdgeX(Real X, Real Y) const { + return 2 * Radius * X; + } + + KOKKOS_FUNCTION Real velEdgeY(Real X, Real Y) const { + return 3 * Radius * Y; + } + KOKKOS_FUNCTION Real vectorX(Real Lon, Real Lat) const { return -Radius * std::pow(std::sin(Lon), 2) * std::pow(std::cos(Lat), 3); } @@ -1178,13 +1149,11 @@ int testTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { TrHorzAdvOnC(L, IEdge, KLayer, TrCell, ThickEdge, NormalVelocity); }); - Kokkos::fence(); parallelFor( {NTracers, Mesh->NCellsOwned, NVertLayers}, KOKKOS_LAMBDA(int L, int ICell, int KLayer) { TrHorzAdvOnC(NumTrFluxDiv, L, ICell, KLayer); }); - Kokkos::fence(); ErrorMeasures TrHAdvErrors; Err += @@ -1223,66 +1192,58 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { I4 Err = 0; TestSetup Setup; - const auto Mesh = HorzMesh::getDefault(); - const auto VCoord = VertCoord::getDefault(); + const auto Mesh = HorzMesh::getDefault(); + const auto VCoord = VertCoord::getDefault(); + const int NCellsFCT = Mesh->NCellsAll + 1; + const int NEdgesFCT = Mesh->NEdgesAll; + const int NVertsFCT = NVertLayers + 1; // Compute exact result Array3DReal ExactTrFluxDiv("ExactTrFluxDiv", NTracers, Mesh->NCellsOwned, - NVertLayers); + NVertsFCT); Err += setScalar( KOKKOS_LAMBDA(Real X, Real Y) { return Setup.tracerFluxDiv(X, Y); }, ExactTrFluxDiv, Geom, Mesh, OnCell, ExchangeHalos::No); // Set input arrays - Array2DReal NormalVelocity("NormalVelocity", Mesh->NEdgesSize, NVertLayers); - - Err += setVectorEdge( - KOKKOS_LAMBDA(Real(&VecField)[2], Real X, Real Y) { - VecField[0] = Setup.vectorX(X, Y); - VecField[1] = Setup.vectorY(X, Y); - }, - NormalVelocity, EdgeComponent::Normal, Geom, Mesh); + Array2DReal NormalVelocity("NormalVelocity", Mesh->NEdgesSize, NVertsFCT); - Array3DReal TrCell("TrCell", NTracers, Mesh->NCellsAll, NVertLayers); - Array3DReal TracerTend("TracerTend", NTracers, Mesh->NCellsAll, NVertLayers); + Array3DReal TrCell("TrCell", NTracers, Mesh->NCellsAll, NVertsFCT); + Array2DReal Tend("Tend", Mesh->NCellsAll, NVertsFCT); + Array3DReal TendNoFCT("TendNoFCT", NTracers, Mesh->NCellsAll, NVertsFCT); Array2DReal FluxPseudoThickEdge("FluxPseudoThickEdge", Mesh->NEdgesAll, - NVertLayers); - Array2DReal LayerThickness("LayerThickness", Mesh->NCellsSize, NVertLayers); - Array2DReal NormVelEdge("NormVelEdge", Mesh->NEdgesAll, NVertLayers); - Array2DReal HProvInvExact("HProvInvExact", Mesh->NCellsSize, NVertLayers); - Array2DReal HProvExact("HProvExact", Mesh->NCellsSize, NVertLayers); - Array2DReal HNewInvExact("HProvExact", Mesh->NCellsSize, NVertLayers); - Array2DReal TracerSubView("TracerSubView", Mesh->NCellsAll, NVertLayers); - Array2DReal CellSubView0("CellSubView0", Mesh->NCellsAll, NVertLayers); - Array2DReal FluxSubView0("FluxSubView0", Mesh->NEdgesAll, NVertLayers); - Array2DReal FluxSubView1("FluxSubView1", Mesh->NEdgesAll, NVertLayers); - Array2DReal FluxSubView3("FluxSubView3", Mesh->NEdgesAll, NVertLayers); - Array2DReal TracerMaxExact("TracerMaxExact", Mesh->NCellsSize, NVertLayers); - Array2DReal TracerMinExact("TracerMinExact", Mesh->NCellsSize, NVertLayers); + NVertsFCT); + Array2DReal LayerThickness("LayerThickness", Mesh->NCellsSize, NVertsFCT); + Array2DReal NormVelEdge("NormVelEdge", Mesh->NEdgesAll, NVertsFCT); + Array2DReal HProvInvExact("HProvInvExact", Mesh->NCellsSize, NVertsFCT); + Array2DReal HProvExact("HProvExact", Mesh->NCellsSize, NVertsFCT); + Array2DReal HNewInvExact("HProvExact", Mesh->NCellsSize, NVertsFCT); + Array2DReal TracerSubView("TracerSubView", Mesh->NCellsAll, NVertsFCT); + Array2DReal CellSubView("CellSubView", Mesh->NCellsAll, NVertsFCT); + Array2DReal FluxSubView("FluxSubView", Mesh->NEdgesAll, NVertsFCT); Array2DReal ReferenceSolution("ReferenceSolution", Mesh->NEdgesAll, - NVertLayers); - Err += setScalar( - KOKKOS_LAMBDA(Real X, Real Y) { - const Real Z = -Setup.pseudoThick(X, Y); - return Z; - }, - TrCell, Geom, Mesh, OnCell, ExchangeHalos::No); - + NVertsFCT); + deepCopy(TrCell, 1._Real); + deepCopy(Tend, 0._Real); + deepCopy(TendNoFCT, 0._Real); + deepCopy(Kokkos::subview(TrCell, Kokkos::ALL, Kokkos::ALL, NVertLayers), + 0._Real); deepCopy(FluxPseudoThickEdge, 1._Real); deepCopy(LayerThickness, 1._Real); deepCopy(HProvExact, 1._Real); + deepCopy(Kokkos::subview(HProvExact, Kokkos::ALL, NVertLayers), 0._Real); deepCopy(HProvInvExact, 1._Real); + deepCopy(Kokkos::subview(HProvInvExact, Kokkos::ALL, NVertLayers), 0._Real); deepCopy(HNewInvExact, 1._Real); + deepCopy(Kokkos::subview(HNewInvExact, Kokkos::ALL, NVertLayers), 0._Real); deepCopy(NormVelEdge, 1._Real); - deepCopy(TracerMaxExact, 1._Real); - deepCopy(TracerMinExact, 1._Real); - deepCopy(ReferenceSolution, 1._Real); - deepCopy(CellSubView0, 1._Real); + deepCopy(ReferenceSolution, 0._Real); + deepCopy(CellSubView, 0._Real); // Compute numerical result Array3DReal NumTrFluxDiv("NumTrFluxDiv", NTracers, Mesh->NCellsOwned, - NVertLayers); + NVertsFCT); VertAdv::init(); const auto VAdv = VertAdv::getDefault(); @@ -1294,151 +1255,213 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { TrHorzAdvOnC.init(); const Real Dt = 1; - parallelFor( - {Mesh->NCellsAll, NVertLayers}, - KOKKOS_LAMBDA(const int ICell, const int K) { - TrHorzAdvOnC.FCTProvisionaLayerThicknesses( - ICell, K, Dt, FluxPseudoThickEdge, LayerThickness, NormVelEdge); - }); - Kokkos::fence(); + ErrorMeasures FCTErrors; - const auto HProvInv = TrHorzAdvOnC.GetHProvInv(); - const auto HProv = TrHorzAdvOnC.GetHProv(); - const auto HNewInv = TrHorzAdvOnC.GetHNewInv(); + { + setVectorEdge( + KOKKOS_LAMBDA(Real(&VecField)[2], Real X, Real Y) { + VecField[0] = Setup.velEdgeX(X, Y); + VecField[1] = Setup.velEdgeY(X, Y); + }, + NormalVelocity, EdgeComponent::Normal, Geom, Mesh); - const Real ATol = 1.0e-10; - ErrorMeasures FCTTracerHorzAdvErrors; - Err += - computeErrors(FCTTracerHorzAdvErrors, HProv, HProvExact, Mesh, OnCell); - Err += checkErrors("TendencyTermsTest", "FCTHProv", FCTTracerHorzAdvErrors, - Setup.ExpectedFCTTracerHorzAdvErrorsH, RTol, ATol); - if (Err == 0) - LOG_INFO("TendencyTermsTest: FCTHProv PASS"); + parallelFor( + {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(const int ICell, const int K) { + TrHorzAdvOnC.FCTProvisionaLayerThicknesses( + ICell, K, Dt, FluxPseudoThickEdge, LayerThickness, + NormalVelocity); + }); + Kokkos::fence(); - Err += computeErrors(FCTTracerHorzAdvErrors, HProvInv, HProvInvExact, Mesh, - OnCell); - Err += - checkErrors("TendencyTermsTest", "FCTHProvInv", FCTTracerHorzAdvErrors, - Setup.ExpectedFCTTracerHorzAdvErrorsH, RTol, ATol); - if (Err == 0) - LOG_INFO("TendencyTermsTest: FCTHProvInv PASS"); - Err += computeErrors(FCTTracerHorzAdvErrors, HNewInv, HNewInvExact, Mesh, - OnCell); - Err += checkErrors("TendencyTermsTest", "FCTHNewInv", FCTTracerHorzAdvErrors, - Setup.ExpectedFCTTracerHorzAdvErrorsH, RTol, ATol); - if (Err == 0) - LOG_INFO("TendencyTermsTest: FCTHNewInv PASS"); + const auto HProvInv = TrHorzAdvOnC.GetHProvInv(); + const auto HProv = TrHorzAdvOnC.GetHProv(); + const auto HNewInv = TrHorzAdvOnC.GetHNewInv(); + + const Real ATol = 1.0e-10; + Err += computeErrors(FCTErrors, HProv, HProvExact, Mesh, OnCell); + Err += checkErrors("TendencyTermsTest", "FCTHProv", FCTErrors, + Setup.ExpectedFCTErrors, RTol, ATol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTHProv PASS"); + + Err += computeErrors(FCTErrors, HProvInv, HProvInvExact, Mesh, OnCell); + Err += checkErrors("TendencyTermsTest", "FCTHProvInv", FCTErrors, + Setup.ExpectedFCTErrors, RTol, ATol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTHProvInv PASS"); + Err += computeErrors(FCTErrors, HNewInv, HNewInvExact, Mesh, OnCell); + Err += checkErrors("TendencyTermsTest", "FCTHNewInv", FCTErrors, + Setup.ExpectedFCTErrors, RTol, ATol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTHNewInv PASS"); + } for (int L = 0; L < NTracers; ++L) { + parallelFor( + {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(const int ICell, const int K) { + TrCell(L, ICell, K) = L + ICell + K; + }); parallelFor( {Mesh->NCellsAll, NVertLayers}, KOKKOS_LAMBDA(const int ICell, const int K) { TrHorzAdvOnC.FCTTracerCurFill(L, ICell, K, TrCell); }); - Kokkos::fence(); const Array2DReal TracerCur = TrHorzAdvOnC.GetTracerCur(); const Array2DReal Tracers = Kokkos::subview(TrCell, L, Kokkos::ALL, Kokkos::ALL); deepCopy(TracerSubView, Tracers); - Err += computeErrors(FCTTracerHorzAdvErrors, TracerCur, TracerSubView, - Mesh, OnCell); - Err += checkErrors("TendencyTermsTest", "FCTTracerCurFill", - FCTTracerHorzAdvErrors, - Setup.ExpectedFCTTracerHorzAdvErrorsT, RTol); + Err += computeErrors(FCTErrors, TracerCur, TracerSubView, Mesh, OnCell); + Err += checkErrors("TendencyTermsTest", "FCTTracerCurFill", FCTErrors, + Setup.ExpectedFCTErrors, RTol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTTracerCurFill_" + std::to_string(L) + " PASS"); } + { + setVectorEdge( + KOKKOS_LAMBDA(Real(&VecField)[2], Real X, Real Y) { + VecField[0] = Setup.velEdgeX(X, Y); + VecField[1] = Setup.velEdgeY(X, Y); + }, + NormalVelocity, EdgeComponent::Normal, Geom, Mesh); + deepCopy(TrCell, 1._Real); + deepCopy(Kokkos::subview(TrCell, Kokkos::ALL, Kokkos::ALL, NVertLayers), + 0._Real); + const int L = 0; + parallelFor( + {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(const int ICell, const int K) { + TrHorzAdvOnC.FCTTracerCurFill(L, ICell, K, TrCell); + }); + parallelFor( + {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(const int ICell, const int K) { + TrHorzAdvOnC.FCTProvisionaLayerThicknesses( + ICell, K, Dt, FluxPseudoThickEdge, LayerThickness, + NormalVelocity); + }); + parallelForOuter( + {Mesh->NEdgesHaloH(1)}, + KOKKOS_LAMBDA(const int IEdge, const TeamMember &Team) { + TrHorzAdvOnC.FCTHighAndLowOrderFlux( + Team, IEdge, FluxPseudoThickEdge, NormalVelocity); + }); + Kokkos::fence(); - const Array1DI4 MinLayerCell = VCoord->MinLayerCell; - const Array1DI4 MaxLayerCell = VCoord->MaxLayerCell; - const int L = 0; - parallelFor( - {Mesh->NCellsAll, NVertLayers}, - KOKKOS_LAMBDA(const int ICell, const int K) { - TrHorzAdvOnC.FCTTracerCurFill(L, ICell, K, TrCell); - }); - Kokkos::fence(); - parallelForOuter( - {Mesh->NCellsHaloH(0)}, - KOKKOS_LAMBDA(const int ICell, const TeamMember &Team) { - TrHorzAdvOnC.FCTTracerMinMax(Team, ICell); - }); - Kokkos::fence(); - const auto TracerMin = TrHorzAdvOnC.GetTracerMin(); - const auto TracerMax = TrHorzAdvOnC.GetTracerMax(); - - Err += computeErrors(FCTTracerHorzAdvErrors, TracerMin, TracerMinExact, Mesh, - OnCell); + Array2DReal LowOrderFlx = TrHorzAdvOnC.GetLowOrderFlx(); - Err += - checkErrors("TendencyTermsTest", "FCTTracerMin", FCTTracerHorzAdvErrors, - Setup.ExpectedFCTTracerHorzAdvErrorsMin, RTol); - if (Err == 0) - LOG_INFO("TendencyTermsTest: FCTTracerMin PASS"); - Err += computeErrors(FCTTracerHorzAdvErrors, TracerMax, TracerMaxExact, Mesh, - OnCell); - Err += - checkErrors("TendencyTermsTest", "FCTTracerMax", FCTTracerHorzAdvErrors, - Setup.ExpectedFCTTracerHorzAdvErrorsMax, RTol); - if (Err == 0) - LOG_INFO("TendencyTermsTest: FCTTracerMax PASS"); + parallelFor( + {Mesh->NEdgesHaloH(1), NVertLayers}, + KOKKOS_LAMBDA(const int IEdge, const int K) { + const double DvEdgeFromMeshFile = 0.012028130608117; + FluxSubView(IEdge, K) = + DvEdgeFromMeshFile * NormalVelocity(IEdge, K); + }); + Err += computeErrors(FCTErrors, LowOrderFlx, FluxSubView, Mesh, OnEdge); + Err += checkErrors("TendencyTermsTest", "FCTHighAndLowOrderFlux_Low", + FCTErrors, Setup.ExpectedFCT_Low, RTol); + if (Err == 0) + LOG_INFO("TendencyTermsTest: FCTHighAndLowOrderFlux_Low PASS"); + } { + setVectorEdge( + KOKKOS_LAMBDA(Real(&VecField)[2], Real X, Real Y) { + VecField[0] = Setup.vectorX(X, Y); + VecField[1] = Setup.vectorY(X, Y); + }, + NormalVelocity, EdgeComponent::Normal, Geom, Mesh); + + deepCopy(TrCell, 1._Real); + deepCopy(Kokkos::subview(TrCell, Kokkos::ALL, Kokkos::ALL, NVertLayers), + 0._Real); + const int L = 0; + parallelFor( + {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(const int ICell, const int K) { + TrHorzAdvOnC.FCTTracerCurFill(L, ICell, K, TrCell); + }); + parallelFor( + {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(const int ICell, const int K) { + TrHorzAdvOnC.FCTProvisionaLayerThicknesses( + ICell, K, Dt, FluxPseudoThickEdge, LayerThickness, + NormalVelocity); + }); parallelForOuter( {Mesh->NEdgesHaloH(1)}, KOKKOS_LAMBDA(const int IEdge, const TeamMember &Team) { TrHorzAdvOnC.FCTHighAndLowOrderFlux( - Team, IEdge, FluxPseudoThickEdge, NormVelEdge); + Team, IEdge, FluxPseudoThickEdge, NormalVelocity); }); Kokkos::fence(); + + parallelFor( + {Mesh->NEdgesHaloH(1), NVertLayers}, + KOKKOS_LAMBDA(const int IEdge, const int K) { + FluxSubView(IEdge, K) = 0; + }); + Array2DReal HighOrderFlx = TrHorzAdvOnC.GetHighOrderFlx(); - Err += computeErrors(FCTTracerHorzAdvErrors, HighOrderFlx, FluxSubView3, - Mesh, OnEdge); + Err += computeErrors(FCTErrors, HighOrderFlx, FluxSubView, Mesh, OnEdge); Err += checkErrors("TendencyTermsTest", "FCTHighAndLowOrderFlux_High", - FCTTracerHorzAdvErrors, - Setup.ExpectedFCTHighAndLowOrderFlux_High, RTol); + FCTErrors, Setup.ExpectedFCT_High, RTol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTHighAndLowOrderFlux_High PASS"); - Array2DReal LowOrderFlx = TrHorzAdvOnC.GetLowOrderFlx(); - Err += computeErrors(FCTTracerHorzAdvErrors, LowOrderFlx, FluxSubView3, - Mesh, OnEdge); - Err += checkErrors("TendencyTermsTest", "FCTHighAndLowOrderFlux_Low", - FCTTracerHorzAdvErrors, - Setup.ExpectedFCTHighAndLowOrderFlux_Low, RTol); - if (Err == 0) - LOG_INFO("TendencyTermsTest: FCTHighAndLowOrderFlux_Low PASS"); + Kokkos::fence(); } { + setVectorEdge( + KOKKOS_LAMBDA(Real(&VecField)[2], Real X, Real Y) { + VecField[0] = Setup.velEdgeX(X, Y); + VecField[1] = Setup.velEdgeY(X, Y); + }, + NormalVelocity, EdgeComponent::Normal, Geom, Mesh); + + deepCopy(TrCell, 1._Real); + deepCopy(Kokkos::subview(TrCell, Kokkos::ALL, Kokkos::ALL, NVertLayers), + 0._Real); + const int L = 0; + parallelFor( + {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(const int ICell, const int K) { + TrHorzAdvOnC.FCTTracerCurFill(L, ICell, K, TrCell); + }); + parallelFor( + {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(const int ICell, const int K) { + TrHorzAdvOnC.FCTProvisionaLayerThicknesses( + ICell, K, Dt, FluxPseudoThickEdge, LayerThickness, + NormalVelocity); + }); + parallelForOuter( + {Mesh->NEdgesHaloH(1)}, + KOKKOS_LAMBDA(const int IEdge, const TeamMember &Team) { + TrHorzAdvOnC.FCTHighAndLowOrderFlux( + Team, IEdge, FluxPseudoThickEdge, NormalVelocity); + }); parallelForOuter( {Mesh->NCellsHaloH(0)}, KOKKOS_LAMBDA(const int ICell, const TeamMember &Team) { TrHorzAdvOnC.FCTFluxInOut(Team, ICell, Dt, LayerThickness); }); + Kokkos::fence(); Array2DReal FlxIn = TrHorzAdvOnC.GetFlxIn(); - Err += computeErrors(FCTTracerHorzAdvErrors, FlxIn, CellSubView0, Mesh, - OnCell); - Err += - checkErrors("TendencyTermsTest", "FCTFluxIn", FCTTracerHorzAdvErrors, - Setup.ExpectedFCTTracerHorzAdvErrorsFlxIn, RTol); + Err += computeErrors(FCTErrors, FlxIn, CellSubView, Mesh, OnCell); + Err += checkErrors("TendencyTermsTest", "FCTFluxIn", FCTErrors, + Setup.ExpectedFCTErrors, RTol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTFluxIn PASS"); Array2DReal FlxOut = TrHorzAdvOnC.GetFlxOut(); - Err += computeErrors(FCTTracerHorzAdvErrors, FlxOut, CellSubView0, Mesh, - OnCell); - Err += - checkErrors("TendencyTermsTest", "FCTFluxOut", FCTTracerHorzAdvErrors, - Setup.ExpectedFCTTracerHorzAdvErrorsFlxOut, RTol); + Err += computeErrors(FCTErrors, FlxOut, CellSubView, Mesh, OnCell); + Err += checkErrors("TendencyTermsTest", "FCTFluxOut", FCTErrors, + Setup.ExpectedFCTErrors, RTol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTFluxOut PASS"); - Err += computeErrors(FCTTracerHorzAdvErrors, FlxOut, FlxIn, Mesh, OnCell); - Err += checkErrors("TendencyTermsTest", "FCTFluxInOut", - FCTTracerHorzAdvErrors, - Setup.ExpectedFCTTracerHorzAdvErrorsFlxInOut, RTol); - if (Err == 0) - LOG_INFO("TendencyTermsTest: FCTFluxInOut PASS"); Kokkos::fence(); } { @@ -1449,43 +1472,88 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { }); Kokkos::fence(); const Array2DReal HighOrderFlx = TrHorzAdvOnC.GetHighOrderFlx(); - Err += computeErrors(FCTTracerHorzAdvErrors, HighOrderFlx, - ReferenceSolution, Mesh, OnEdge); - Err += checkErrors( - "TendencyTermsTest", "FCTRescaleHighOrderFlux", - FCTTracerHorzAdvErrors, - Setup.ExpectedFCTTracerHorzAdvErrorsescaleHighOrderFlux, RTol); + Err += computeErrors(FCTErrors, HighOrderFlx, ReferenceSolution, Mesh, + OnEdge); + Err += checkErrors("TendencyTermsTest", "FCTRescaleHighOrderFlux", + FCTErrors, Setup.ExpectedFCTErrors, RTol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTRescaleHighOrderFlux PASS"); Kokkos::fence(); } - for (int L = 0; L < NTracers; ++L) { + { + setVectorEdge( + KOKKOS_LAMBDA(Real(&VecField)[2], Real X, Real Y) { + VecField[0] = Setup.vectorX(X, Y); + VecField[1] = Setup.vectorY(X, Y); + }, + NormalVelocity, EdgeComponent::Normal, Geom, Mesh); + + deepCopy(TrCell, 1._Real); + deepCopy(Kokkos::subview(TrCell, Kokkos::ALL, Kokkos::ALL, NVertLayers), + 0._Real); + const int L = 0; parallelFor( {Mesh->NCellsAll, NVertLayers}, KOKKOS_LAMBDA(const int ICell, const int K) { TrHorzAdvOnC.FCTTracerCurFill(L, ICell, K, TrCell); }); - Kokkos::fence(); + parallelFor( + {Mesh->NCellsAll, NVertLayers}, + KOKKOS_LAMBDA(const int ICell, const int K) { + TrHorzAdvOnC.FCTProvisionaLayerThicknesses( + ICell, K, Dt, FluxPseudoThickEdge, LayerThickness, + NormalVelocity); + }); + parallelForOuter( + {Mesh->NEdgesHaloH(1)}, + KOKKOS_LAMBDA(const int IEdge, const TeamMember &Team) { + TrHorzAdvOnC.FCTHighAndLowOrderFlux( + Team, IEdge, FluxPseudoThickEdge, NormalVelocity); + }); + parallelForOuter( + {Mesh->NCellsHaloH(0)}, + KOKKOS_LAMBDA(const int ICell, const TeamMember &Team) { + TrHorzAdvOnC.FCTFluxInOut(Team, ICell, Dt, LayerThickness); + }); parallelForOuter( {Mesh->NCellsOwned}, KOKKOS_LAMBDA(const int ICell, const TeamMember &Team) { - const Array2DReal Tend = - Kokkos::subview(TracerTend, L, Kokkos::ALL, Kokkos::ALL); TrHorzAdvOnC.FCTAccumulateHighOrderFlux(Team, ICell, Dt, Tend, LayerThickness); }); Kokkos::fence(); - const Array2DReal TracerCur = TrHorzAdvOnC.GetTracerCur(); - const Array2DReal TendCur = - Kokkos::subview(TracerTend, L, Kokkos::ALL, Kokkos::ALL); - deepCopy(TracerSubView, TendCur); - Err += computeErrors(FCTTracerHorzAdvErrors, TracerCur, TracerSubView, - Mesh, OnCell); + + const auto &MinLayerEdgeBot = VCoord->MinLayerEdgeBot; + const auto &MaxLayerEdgeTop = VCoord->MaxLayerEdgeTop; + const auto &MinLayerCell = VCoord->MinLayerCell; + const auto &MaxLayerCell = VCoord->MaxLayerCell; + parallelForOuter( + "Tend:TracerHorzAdv.init", {Mesh->NEdgesAll}, + KOKKOS_LAMBDA(int IEdge, const TeamMember &Team) { + const int KMin = MinLayerEdgeBot(IEdge); + const int KMax = MaxLayerEdgeTop(IEdge); + parallelForInner( + Team, Range{KMin, KMax}, INNER_LAMBDA(int K) { + TrHorzAdvOnC(L, IEdge, K, TrCell, FluxPseudoThickEdge, + NormalVelocity); + }); + }); + parallelForOuter( + "Tend:TracerHorzAdv.exec", {Mesh->NCellsAll}, + KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { + const int KMin = MinLayerCell(ICell); + const int KMax = MaxLayerCell(ICell); + parallelForInner( + Team, Range{KMin, KMax}, + INNER_LAMBDA(int K) { TrHorzAdvOnC(TendNoFCT, L, ICell, K); }); + }); + deepCopy(TracerSubView, + Kokkos::subview(TendNoFCT, L, Kokkos::ALL, Kokkos::ALL)); + + Err += computeErrors(FCTErrors, Tend, TracerSubView, Mesh, OnCell); Err += checkErrors("TendencyTermsTest", "FCTAccumulateHighOrderFlux_" + std::to_string(L), - FCTTracerHorzAdvErrors, - Setup.ExpectedFCTTracerHorAccumulateHighOrderFlux[L], - RTol); + FCTErrors, Setup.ExpectedFCTToNonFCT, RTol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTAccumulateHighOrderFlux_" + std::to_string(L) + " PASS"); From 78c701113a8ac1be3f8984c8674335de4af8516f Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Tue, 18 Aug 2026 18:23:03 -0500 Subject: [PATCH 53/60] Update test results to pass on Chrysalis --- components/omega/test/ocn/TendencyTermsTest.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/components/omega/test/ocn/TendencyTermsTest.cpp b/components/omega/test/ocn/TendencyTermsTest.cpp index 2ee1090a59f4..b04fae9e9aaa 100644 --- a/components/omega/test/ocn/TendencyTermsTest.cpp +++ b/components/omega/test/ocn/TendencyTermsTest.cpp @@ -59,12 +59,12 @@ struct TestSetupPlane { ErrorMeasures ExpectedTrHAdvErrors = {0.0029211089892916243, 0.0024583038518548855}; ErrorMeasures ExpectedFCTErrors = {0.00, 0.00}; - ErrorMeasures ExpectedFCT_High = {8.673617379884035e-18, - 1.1608832971817906e-17}; + ErrorMeasures ExpectedFCT_High = {6.938893903907228e-18, + 5.762546266224026e-18}; ErrorMeasures ExpectedFCT_Low = {1.0095554103513882e-15, 1.0095554103514163e-15}; - ErrorMeasures ExpectedFCTToNonFCT = {1.182357060681534e-15, - 6.487684357904678e-16}; + ErrorMeasures ExpectedFCTToNonFCT = {1.2480435640527313e-15, + 6.665476716753009e-16}; ErrorMeasures ExpectedTrDel2Errors = {0.00334357193650093847, 0.00290978146207349032}; ErrorMeasures ExpectedTrDel4Errors = {0.00508833446725232875, From 03015b84adbddb3688e2a825c085cfb750a82b4b Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Thu, 20 Aug 2026 07:22:08 -0600 Subject: [PATCH 54/60] Update components/omega/src/ocn/TendencyTerms.cpp Co-authored-by: Maciej Waruszewski --- components/omega/src/ocn/TendencyTerms.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/omega/src/ocn/TendencyTerms.cpp b/components/omega/src/ocn/TendencyTerms.cpp index 438fadf41f7c..663f454e7ba3 100644 --- a/components/omega/src/ocn/TendencyTerms.cpp +++ b/components/omega/src/ocn/TendencyTerms.cpp @@ -134,6 +134,8 @@ void TracerHorzAdvOnCell::init() { const auto MaxEdges2 = Mesh->MaxEdges2; const auto NEdgesAll = Mesh->NEdgesAll; const auto NCellsAll = Mesh->NCellsAll; + const auto NCellsSize = Mesh->NCellsSize; + const auto NEdgesSize = Mesh->NEdgesSize; // Allocate Kokkos arrays in member data if (ForceLowOrder) { From c92160cfc7ba16485d6e39cb5af030c05d13e8fc Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Thu, 20 Aug 2026 07:32:43 -0600 Subject: [PATCH 55/60] Changes from code review feedback --- components/omega/src/ocn/Tendencies.cpp | 2 +- components/omega/src/ocn/TendencyTerms.cpp | 29 ++++++++++------------ components/omega/src/ocn/TendencyTerms.h | 5 ++-- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/components/omega/src/ocn/Tendencies.cpp b/components/omega/src/ocn/Tendencies.cpp index 9ed4dc040b6d..f71753b35fee 100644 --- a/components/omega/src/ocn/Tendencies.cpp +++ b/components/omega/src/ocn/Tendencies.cpp @@ -894,7 +894,7 @@ void Tendencies::computeTracerTendenciesOnly( LocTracerArray); }); parallelForOuter( - "Tend:FCTTracerCurFill", {Mesh->NCellsAll}, + "Tend:FCTTracerMinMax", {Mesh->NCellsAll}, KOKKOS_LAMBDA(int ICell, const TeamMember &Team) { LocTracerHorzAdv.FCTTracerMinMax(Team, ICell); }); diff --git a/components/omega/src/ocn/TendencyTerms.cpp b/components/omega/src/ocn/TendencyTerms.cpp index 663f454e7ba3..74b33b33f0e9 100644 --- a/components/omega/src/ocn/TendencyTerms.cpp +++ b/components/omega/src/ocn/TendencyTerms.cpp @@ -134,8 +134,8 @@ void TracerHorzAdvOnCell::init() { const auto MaxEdges2 = Mesh->MaxEdges2; const auto NEdgesAll = Mesh->NEdgesAll; const auto NCellsAll = Mesh->NCellsAll; - const auto NCellsSize = Mesh->NCellsSize; - const auto NEdgesSize = Mesh->NEdgesSize; + const auto NCellsSize = Mesh->NCellsSize; + const auto NEdgesSize = Mesh->NEdgesSize; // Allocate Kokkos arrays in member data if (ForceLowOrder) { @@ -157,21 +157,18 @@ void TracerHorzAdvOnCell::init() { parallelFor( {NEdgesAll}, KOKKOS_LAMBDA(int IEdge) { masksAndCoefficients(IEdge); }); if (FCT) { - const int NCellsFCT = NCellsAll + 1; - const int NEdgesFCT = NEdgesAll; const int NVertsFCT = NVertLayers + 1; - HProvInv = - Array2DReal("FCTProvesionalLayerThickness", NEdgesFCT, NVertsFCT); - HNewInv = Array2DReal("FCTProvesionalNewInverse", NEdgesFCT, NVertsFCT); - HProv = Array2DReal("FCTProvesionalThickness", NCellsFCT, NVertsFCT); - TracerCur = Array2DReal("TracerCur", NCellsFCT, NVertsFCT), - TracerMax = Array2DReal("FCTTracerMax", NCellsFCT, NVertsFCT); - TracerMin = Array2DReal("FCTTracerMin", NCellsFCT, NVertsFCT); - HighOrderFlx = Array2DReal("FCTHighOrderFlx", NEdgesFCT, NVertsFCT); - LowOrderFlx = Array2DReal("FCTLowOrderFlx", NEdgesFCT, NVertsFCT); - WorkTend = Array2DReal("WorkTend", NCellsFCT, NVertsFCT); - FlxIn = Array2DReal("FlxIn", NCellsFCT, NVertsFCT); - FlxOut = Array2DReal("FlxOut", NCellsFCT, NVertsFCT); + HProvInv = HNewInv = + Array2DReal("FCTProvesionalNewInverse", NEdgesSize, NVertsFCT); + HProv = Array2DReal("FCTProvesionalThickness", NCellsSize, NVertsFCT); + TracerCur = Array2DReal("TracerCur", NCellsSize, NVertsFCT), + TracerMax = Array2DReal("FCTTracerMax", NCellsSize, NVertsFCT); + TracerMin = Array2DReal("FCTTracerMin", NCellsSize, NVertsFCT); + HighOrderFlx = Array2DReal("FCTHighOrderFlx", NEdgesSize, NVertsFCT); + LowOrderFlx = Array2DReal("FCTLowOrderFlx", NEdgesSize, NVertsFCT); + WorkTend = Array2DReal("WorkTend", NCellsSize, NVertsFCT); + FlxIn = Array2DReal("FlxIn", NCellsSize, NVertsFCT); + FlxOut = Array2DReal("FlxOut", NCellsSize, NVertsFCT); deepCopy(HProvInv, 0.0); deepCopy(HNewInv, 0.0); deepCopy(HProv, 0.0); diff --git a/components/omega/src/ocn/TendencyTerms.h b/components/omega/src/ocn/TendencyTerms.h index 6310650c3ce5..bd7f01d655ef 100644 --- a/components/omega/src/ocn/TendencyTerms.h +++ b/components/omega/src/ocn/TendencyTerms.h @@ -513,9 +513,8 @@ class TracerHorzAdvOnCell { const Array2DReal &FluxPseudoThickEdge, const Array2DReal &NormVelEdge) const { - const Real Coef3rdOrder = 0.25; - const I4 ICell1 = CellsOnEdge(IEdge, 0); - const I4 ICell2 = CellsOnEdge(IEdge, 1); + const I4 ICell1 = CellsOnEdge(IEdge, 0); + const I4 ICell2 = CellsOnEdge(IEdge, 1); const I4 KMin = MinLayerEdgeBot(IEdge); const I4 KMax = MaxLayerEdgeTop(IEdge); From 6f101ea0ce339227bbc1301b467b840ac8102a2d Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Thu, 20 Aug 2026 16:23:12 -0600 Subject: [PATCH 56/60] Fix up Sphere tests for FCT --- .../omega/test/ocn/TendencyTermsTest.cpp | 94 ++++++++++--------- 1 file changed, 49 insertions(+), 45 deletions(-) diff --git a/components/omega/test/ocn/TendencyTermsTest.cpp b/components/omega/test/ocn/TendencyTermsTest.cpp index eabdadd356f5..07eaa1c1f278 100644 --- a/components/omega/test/ocn/TendencyTermsTest.cpp +++ b/components/omega/test/ocn/TendencyTermsTest.cpp @@ -59,6 +59,9 @@ struct TestSetupPlane { ErrorMeasures ExpectedTrHAdvErrors = {0.0029211089892916243, 0.0024583038518548855}; ErrorMeasures ExpectedFCTErrors = {0.00, 0.00}; + ErrorMeasures ExpectedFCTHProv = {0.00, 0.00}; + ErrorMeasures ExpectedFCTHInv = {0.00, 0.00}; + ErrorMeasures ExpectedFCTHNew = {0.00, 0.00}; ErrorMeasures ExpectedFCT_High = {6.938893903907228e-18, 5.762546266224026e-18}; ErrorMeasures ExpectedFCT_Low = {1.0095554103513882e-15, @@ -209,27 +212,29 @@ struct TestSetupSphere { 0.270546491554748}; ErrorMeasures ExpectedTrHAdvErrors = {0.013259410329645643, 0.004094907022292395}; - ErrorMeasures ExpectedFCTErrors = {0, 0}; - ErrorMeasures ExpectedFCT_High = {3.469446951953614e-17, - 6.880761675357888e-17}; - ErrorMeasures ExpectedFCT_Low = {952854.2803370472, 52005531508915.62}; - ErrorMeasures ExpectedFCTToNonFCT = {111602.23404252343, 178627.1237154654}; - ErrorMeasures ExpectedTrDel2Errors = {0.04865718541236144, - 0.005105510870642706}; - ErrorMeasures ExpectedTrDel4Errors = {0.0008646345116716073, - 0.0007118574326665881}; + ErrorMeasures ExpectedFCTErrors = {0.00, 0.00}; + ErrorMeasures ExpectedFCTHProv = {3.0542657508680904e-05, + 1.0779233406323438e-06}; + ErrorMeasures ExpectedFCTHInv = {3.0541724683419424e-05, + 1.0779233406323438e-06}; + ErrorMeasures ExpectedFCTHNew = {3.0541724683419424e-05, + 1.0779233406323438e-06}; + ErrorMeasures ExpectedFCT_High = {0.00146484375, 16478.526025524854}; + ErrorMeasures ExpectedFCT_Low = {0.2958192441638326, 0.09980000200239414}; + ErrorMeasures ExpectedFCTToNonFCT = {1.632639958580968e-15, + 7.582979124216783e-16}; + ErrorMeasures ExpectedTrDel2Errors = {0.04865718541236144, + 0.005105510870642706}; + ErrorMeasures ExpectedTrDel4Errors = {0.0008646345116716073, + 0.0007118574326665881}; ErrorMeasures ExpectedSurfTrRestErrors = {0, 0}; ErrorMeasures ExpectedSfcStressForcingErrors = {0, 0}; ErrorMeasures ExpectedBottomDragErrors = {0.0015333449035655053, 0.0014897009917655022}; - KOKKOS_FUNCTION Real velEdgeX(Real X, Real Y) const { - return 2 * Radius * X; - } + KOKKOS_FUNCTION Real velEdgeX(Real X, Real Y) const { return 2; } - KOKKOS_FUNCTION Real velEdgeY(Real X, Real Y) const { - return 3 * Radius * Y; - } + KOKKOS_FUNCTION Real velEdgeY(Real X, Real Y) const { return 3; } KOKKOS_FUNCTION Real vectorX(Real Lon, Real Lat) const { return -Radius * std::pow(std::sin(Lon), 2) * std::pow(std::cos(Lat), 3); @@ -1194,8 +1199,8 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { TestSetup Setup; const auto Mesh = HorzMesh::getDefault(); const auto VCoord = VertCoord::getDefault(); - const int NCellsFCT = Mesh->NCellsAll + 1; - const int NEdgesFCT = Mesh->NEdgesAll; + const int NCellsFCT = Mesh->NCellsSize; + const int NEdgesFCT = Mesh->NEdgesSize; const int NVertsFCT = NVertLayers + 1; // Compute exact result @@ -1207,23 +1212,21 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { ExactTrFluxDiv, Geom, Mesh, OnCell, ExchangeHalos::No); // Set input arrays - Array2DReal NormalVelocity("NormalVelocity", Mesh->NEdgesSize, NVertsFCT); - - Array3DReal TrCell("TrCell", NTracers, Mesh->NCellsAll, NVertsFCT); - Array2DReal Tend("Tend", Mesh->NCellsAll, NVertsFCT); - Array3DReal TendNoFCT("TendNoFCT", NTracers, Mesh->NCellsAll, NVertsFCT); - Array2DReal FluxPseudoThickEdge("FluxPseudoThickEdge", Mesh->NEdgesAll, - NVertsFCT); - Array2DReal LayerThickness("LayerThickness", Mesh->NCellsSize, NVertsFCT); - Array2DReal NormVelEdge("NormVelEdge", Mesh->NEdgesAll, NVertsFCT); - Array2DReal HProvInvExact("HProvInvExact", Mesh->NCellsSize, NVertsFCT); - Array2DReal HProvExact("HProvExact", Mesh->NCellsSize, NVertsFCT); - Array2DReal HNewInvExact("HProvExact", Mesh->NCellsSize, NVertsFCT); - Array2DReal TracerSubView("TracerSubView", Mesh->NCellsAll, NVertsFCT); - Array2DReal CellSubView("CellSubView", Mesh->NCellsAll, NVertsFCT); - Array2DReal FluxSubView("FluxSubView", Mesh->NEdgesAll, NVertsFCT); - Array2DReal ReferenceSolution("ReferenceSolution", Mesh->NEdgesAll, - NVertsFCT); + Array2DReal NormalVelocity("NormalVelocity", NEdgesFCT, NVertsFCT); + + Array3DReal TrCell("TrCell", NTracers, NCellsFCT, NVertsFCT); + Array2DReal Tend("Tend", NCellsFCT, NVertsFCT); + Array3DReal TendNoFCT("TendNoFCT", NTracers, NCellsFCT, NVertsFCT); + Array2DReal FluxPseudoThickEdge("FluxPseudoThickEdge", NEdgesFCT, NVertsFCT); + Array2DReal LayerThickness("LayerThickness", NCellsFCT, NVertsFCT); + Array2DReal NormVelEdge("NormVelEdge", NEdgesFCT, NVertsFCT); + Array2DReal HProvInvExact("HProvInvExact", NCellsFCT, NVertsFCT); + Array2DReal HProvExact("HProvExact", NCellsFCT, NVertsFCT); + Array2DReal HNewInvExact("HProvExact", NCellsFCT, NVertsFCT); + Array2DReal TracerSubView("TracerSubView", NCellsFCT, NVertsFCT); + Array2DReal CellSubView("CellSubView", NCellsFCT, NVertsFCT); + Array2DReal FluxSubView("FluxSubView", NEdgesFCT, NVertsFCT); + Array2DReal ReferenceSolution("ReferenceSolution", NEdgesFCT, NVertsFCT); deepCopy(TrCell, 1._Real); deepCopy(Tend, 0._Real); deepCopy(TendNoFCT, 0._Real); @@ -1266,7 +1269,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { NormalVelocity, EdgeComponent::Normal, Geom, Mesh); parallelFor( - {Mesh->NCellsAll, NVertLayers}, + {Mesh->NCellsOwned, NVertLayers}, KOKKOS_LAMBDA(const int ICell, const int K) { TrHorzAdvOnC.FCTProvisionaLayerThicknesses( ICell, K, Dt, FluxPseudoThickEdge, LayerThickness, @@ -1281,19 +1284,19 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { const Real ATol = 1.0e-10; Err += computeErrors(FCTErrors, HProv, HProvExact, Mesh, OnCell); Err += checkErrors("TendencyTermsTest", "FCTHProv", FCTErrors, - Setup.ExpectedFCTErrors, RTol, ATol); + Setup.ExpectedFCTHProv, RTol, ATol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTHProv PASS"); Err += computeErrors(FCTErrors, HProvInv, HProvInvExact, Mesh, OnCell); Err += checkErrors("TendencyTermsTest", "FCTHProvInv", FCTErrors, - Setup.ExpectedFCTErrors, RTol, ATol); + Setup.ExpectedFCTHInv, RTol, ATol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTHProvInv PASS"); Err += computeErrors(FCTErrors, HNewInv, HNewInvExact, Mesh, OnCell); Err += checkErrors("TendencyTermsTest", "FCTHNewInv", FCTErrors, - Setup.ExpectedFCTErrors, RTol, ATol); + Setup.ExpectedFCTHNew, RTol, ATol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTHNewInv PASS"); } @@ -1336,7 +1339,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { TrHorzAdvOnC.FCTTracerCurFill(L, ICell, K, TrCell); }); parallelFor( - {Mesh->NCellsAll, NVertLayers}, + {Mesh->NCellsOwned, NVertLayers}, KOKKOS_LAMBDA(const int ICell, const int K) { TrHorzAdvOnC.FCTProvisionaLayerThicknesses( ICell, K, Dt, FluxPseudoThickEdge, LayerThickness, @@ -1355,7 +1358,8 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { parallelFor( {Mesh->NEdgesHaloH(1), NVertLayers}, KOKKOS_LAMBDA(const int IEdge, const int K) { - const double DvEdgeFromMeshFile = 0.012028130608117; + const double DvEdgeFromMeshFile = + Geom == Geometry::Planar ? 0.012028130608117 : 277371; FluxSubView(IEdge, K) = DvEdgeFromMeshFile * NormalVelocity(IEdge, K); }); @@ -1366,7 +1370,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { if (Err == 0) LOG_INFO("TendencyTermsTest: FCTHighAndLowOrderFlux_Low PASS"); } - { + if (Geom == Geometry::Planar) { setVectorEdge( KOKKOS_LAMBDA(Real(&VecField)[2], Real X, Real Y) { VecField[0] = Setup.vectorX(X, Y); @@ -1384,7 +1388,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { TrHorzAdvOnC.FCTTracerCurFill(L, ICell, K, TrCell); }); parallelFor( - {Mesh->NCellsAll, NVertLayers}, + {Mesh->NCellsOwned, NVertLayers}, KOKKOS_LAMBDA(const int ICell, const int K) { TrHorzAdvOnC.FCTProvisionaLayerThicknesses( ICell, K, Dt, FluxPseudoThickEdge, LayerThickness, @@ -1413,7 +1417,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { Kokkos::fence(); } - { + if (Geom == Geometry::Planar) { setVectorEdge( KOKKOS_LAMBDA(Real(&VecField)[2], Real X, Real Y) { VecField[0] = Setup.velEdgeX(X, Y); @@ -1431,7 +1435,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { TrHorzAdvOnC.FCTTracerCurFill(L, ICell, K, TrCell); }); parallelFor( - {Mesh->NCellsAll, NVertLayers}, + {Mesh->NCellsOwned, NVertLayers}, KOKKOS_LAMBDA(const int ICell, const int K) { TrHorzAdvOnC.FCTProvisionaLayerThicknesses( ICell, K, Dt, FluxPseudoThickEdge, LayerThickness, @@ -1498,7 +1502,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { TrHorzAdvOnC.FCTTracerCurFill(L, ICell, K, TrCell); }); parallelFor( - {Mesh->NCellsAll, NVertLayers}, + {Mesh->NCellsOwned, NVertLayers}, KOKKOS_LAMBDA(const int ICell, const int K) { TrHorzAdvOnC.FCTProvisionaLayerThicknesses( ICell, K, Dt, FluxPseudoThickEdge, LayerThickness, From 1321ec45f2e88c20bf124bfa52ce23108412b491 Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Mon, 24 Aug 2026 14:44:59 -0600 Subject: [PATCH 57/60] Change VerticalPseudoVelocity to TotalVerticalPseudoVelocity in FCT. The field used in MPAS-Ocean is vertAleTransportTop which maps to TotalVerticalPseudoVelocity in Omega. --- components/omega/src/ocn/TendencyTerms.cpp | 2 +- components/omega/src/ocn/TendencyTerms.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/components/omega/src/ocn/TendencyTerms.cpp b/components/omega/src/ocn/TendencyTerms.cpp index 74b33b33f0e9..86e62f3ef2c4 100644 --- a/components/omega/src/ocn/TendencyTerms.cpp +++ b/components/omega/src/ocn/TendencyTerms.cpp @@ -96,7 +96,7 @@ TracerHorzAdvOnCell::TracerHorzAdvOnCell(const HorzMesh *Mesh, MaxLayerEdgeTop(VCoord->MaxLayerEdgeTop), EdgeSignOnCell(Mesh->EdgeSignOnCell), DvEdge(Mesh->DvEdge), AreaCell(Mesh->AreaCell), - VerticalPseudoVelocity(VAdv->VerticalPseudoVelocity), HProvInv(), + TotalVerticalPseudoVelocity(VAdv->TotalVerticalPseudoVelocity), HProvInv(), HNewInv(), HProv(), TracerMax(), TracerMin(), HighOrderFlx(), LowOrderFlx(), MinLayerCell(VCoord->MinLayerCell), MaxLayerCell(VCoord->MaxLayerCell), WorkTend(), FlxIn(), FlxOut(), diff --git a/components/omega/src/ocn/TendencyTerms.h b/components/omega/src/ocn/TendencyTerms.h index bd7f01d655ef..b7c8497ff09e 100644 --- a/components/omega/src/ocn/TendencyTerms.h +++ b/components/omega/src/ocn/TendencyTerms.h @@ -469,8 +469,8 @@ class TracerHorzAdvOnCell { // thickness flux HProvInv(ICell, K) = 1.0_Real / HProv(ICell, K); HNewInv(ICell, K) = - 1.0_Real / (HProv(ICell, K) - Dt * VerticalPseudoVelocity(ICell, K) + - Dt * VerticalPseudoVelocity(ICell, K + 1)); + 1.0_Real / (HProv(ICell, K) - Dt * TotalVerticalPseudoVelocity(ICell, K) + + Dt * TotalVerticalPseudoVelocity(ICell, K + 1)); } KOKKOS_FUNCTION void FCTTracerCurFill(const TeamMember &Team, const I4 L, @@ -763,7 +763,7 @@ class TracerHorzAdvOnCell { Array2DReal EdgeSignOnCell; Array1DReal DvEdge; Array1DReal AreaCell; - Array2DReal VerticalPseudoVelocity; + Array2DReal TotalVerticalPseudoVelocity; Array2DReal HProvInv; Array2DReal HNewInv; Array2DReal HProv; From 096264a9d6f8c5d26bc26f3082b9d2dc89dd72b3 Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Mon, 24 Aug 2026 15:02:02 -0600 Subject: [PATCH 58/60] Clang format --- components/omega/src/ocn/TendencyTerms.cpp | 4 ++-- components/omega/src/ocn/TendencyTerms.h | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/components/omega/src/ocn/TendencyTerms.cpp b/components/omega/src/ocn/TendencyTerms.cpp index 86e62f3ef2c4..cc5ea8f3d968 100644 --- a/components/omega/src/ocn/TendencyTerms.cpp +++ b/components/omega/src/ocn/TendencyTerms.cpp @@ -96,8 +96,8 @@ TracerHorzAdvOnCell::TracerHorzAdvOnCell(const HorzMesh *Mesh, MaxLayerEdgeTop(VCoord->MaxLayerEdgeTop), EdgeSignOnCell(Mesh->EdgeSignOnCell), DvEdge(Mesh->DvEdge), AreaCell(Mesh->AreaCell), - TotalVerticalPseudoVelocity(VAdv->TotalVerticalPseudoVelocity), HProvInv(), - HNewInv(), HProv(), TracerMax(), TracerMin(), HighOrderFlx(), + TotalVerticalPseudoVelocity(VAdv->TotalVerticalPseudoVelocity), + HProvInv(), HNewInv(), HProv(), TracerMax(), TracerMin(), HighOrderFlx(), LowOrderFlx(), MinLayerCell(VCoord->MinLayerCell), MaxLayerCell(VCoord->MaxLayerCell), WorkTend(), FlxIn(), FlxOut(), ActiveTracerHorizontalAdvectionEdgeFlux(), diff --git a/components/omega/src/ocn/TendencyTerms.h b/components/omega/src/ocn/TendencyTerms.h index b7c8497ff09e..4723e84e9d04 100644 --- a/components/omega/src/ocn/TendencyTerms.h +++ b/components/omega/src/ocn/TendencyTerms.h @@ -469,8 +469,9 @@ class TracerHorzAdvOnCell { // thickness flux HProvInv(ICell, K) = 1.0_Real / HProv(ICell, K); HNewInv(ICell, K) = - 1.0_Real / (HProv(ICell, K) - Dt * TotalVerticalPseudoVelocity(ICell, K) + - Dt * TotalVerticalPseudoVelocity(ICell, K + 1)); + 1.0_Real / + (HProv(ICell, K) - Dt * TotalVerticalPseudoVelocity(ICell, K) + + Dt * TotalVerticalPseudoVelocity(ICell, K + 1)); } KOKKOS_FUNCTION void FCTTracerCurFill(const TeamMember &Team, const I4 L, From 0452deff306720871910e7382be74eab3cc83448 Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Fri, 28 Aug 2026 14:48:00 -0400 Subject: [PATCH 59/60] Set error values to pass on Frontier for testTendencyTermsPlane.exe. --- components/omega/src/ocn/TendencyTerms.cpp | 4 ++-- .../omega/test/ocn/TendencyTermsTest.cpp | 24 +++++++++++++++---- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/components/omega/src/ocn/TendencyTerms.cpp b/components/omega/src/ocn/TendencyTerms.cpp index cc5ea8f3d968..3cf52d9690cc 100644 --- a/components/omega/src/ocn/TendencyTerms.cpp +++ b/components/omega/src/ocn/TendencyTerms.cpp @@ -158,8 +158,8 @@ void TracerHorzAdvOnCell::init() { {NEdgesAll}, KOKKOS_LAMBDA(int IEdge) { masksAndCoefficients(IEdge); }); if (FCT) { const int NVertsFCT = NVertLayers + 1; - HProvInv = HNewInv = - Array2DReal("FCTProvesionalNewInverse", NEdgesSize, NVertsFCT); + HProvInv = Array2DReal("FCTProvesionalLayerThickness", NCellsSize, NVertsFCT); + HNewInv = Array2DReal("FCTProvesionalNewInverse", NCellsSize, NVertsFCT); HProv = Array2DReal("FCTProvesionalThickness", NCellsSize, NVertsFCT); TracerCur = Array2DReal("TracerCur", NCellsSize, NVertsFCT), TracerMax = Array2DReal("FCTTracerMax", NCellsSize, NVertsFCT); diff --git a/components/omega/test/ocn/TendencyTermsTest.cpp b/components/omega/test/ocn/TendencyTermsTest.cpp index 07eaa1c1f278..ed5dee778843 100644 --- a/components/omega/test/ocn/TendencyTermsTest.cpp +++ b/components/omega/test/ocn/TendencyTermsTest.cpp @@ -59,15 +59,17 @@ struct TestSetupPlane { ErrorMeasures ExpectedTrHAdvErrors = {0.0029211089892916243, 0.0024583038518548855}; ErrorMeasures ExpectedFCTErrors = {0.00, 0.00}; + ErrorMeasures ExpectedFCTFluxIn = {0.0005489016322973567, + 0.002042666702582708}; ErrorMeasures ExpectedFCTHProv = {0.00, 0.00}; ErrorMeasures ExpectedFCTHInv = {0.00, 0.00}; ErrorMeasures ExpectedFCTHNew = {0.00, 0.00}; - ErrorMeasures ExpectedFCT_High = {6.938893903907228e-18, - 5.762546266224026e-18}; + ErrorMeasures ExpectedFCT_High = {1.0408340855860843e-17, + 1.2836244918860014e-17}; ErrorMeasures ExpectedFCT_Low = {1.0095554103513882e-15, 1.0095554103514163e-15}; - ErrorMeasures ExpectedFCTToNonFCT = {1.2480435640527313e-15, - 6.665476716753009e-16}; + ErrorMeasures ExpectedFCTToNonFCT = {9.524542988823467e-16, + 5.336197203674528e-16}; ErrorMeasures ExpectedTrDel2Errors = {0.00334357193650093847, 0.00290978146207349032}; ErrorMeasures ExpectedTrDel4Errors = {0.00508833446725232875, @@ -213,6 +215,7 @@ struct TestSetupSphere { ErrorMeasures ExpectedTrHAdvErrors = {0.013259410329645643, 0.004094907022292395}; ErrorMeasures ExpectedFCTErrors = {0.00, 0.00}; + ErrorMeasures ExpectedFCTFluxIn = {0.00, 0.00}; ErrorMeasures ExpectedFCTHProv = {3.0542657508680904e-05, 1.0779233406323438e-06}; ErrorMeasures ExpectedFCTHInv = {3.0541724683419424e-05, @@ -1251,6 +1254,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { VertAdv::init(); const auto VAdv = VertAdv::getDefault(); deepCopy(VAdv->VerticalPseudoVelocity, 10._Real); + deepCopy(VAdv->TotalVerticalPseudoVelocity, 10._Real); TracerHorzAdvOnCellTest TrHorzAdvOnC(Mesh, VCoord, VAdv); TrHorzAdvOnC.ForceLowOrder = false; @@ -1282,6 +1286,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { const auto HNewInv = TrHorzAdvOnC.GetHNewInv(); const Real ATol = 1.0e-10; + Err = 0; Err += computeErrors(FCTErrors, HProv, HProvExact, Mesh, OnCell); Err += checkErrors("TendencyTermsTest", "FCTHProv", FCTErrors, Setup.ExpectedFCTHProv, RTol, ATol); @@ -1294,11 +1299,13 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { Setup.ExpectedFCTHInv, RTol, ATol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTHProvInv PASS"); + Err = 0; Err += computeErrors(FCTErrors, HNewInv, HNewInvExact, Mesh, OnCell); Err += checkErrors("TendencyTermsTest", "FCTHNewInv", FCTErrors, Setup.ExpectedFCTHNew, RTol, ATol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTHNewInv PASS"); + Err = 0; } for (int L = 0; L < NTracers; ++L) { parallelFor( @@ -1321,6 +1328,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { if (Err == 0) LOG_INFO("TendencyTermsTest: FCTTracerCurFill_" + std::to_string(L) + " PASS"); + Err = 0; } { setVectorEdge( @@ -1369,6 +1377,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { FCTErrors, Setup.ExpectedFCT_Low, RTol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTHighAndLowOrderFlux_Low PASS"); + Err = 0; } if (Geom == Geometry::Planar) { setVectorEdge( @@ -1414,6 +1423,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { FCTErrors, Setup.ExpectedFCT_High, RTol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTHighAndLowOrderFlux_High PASS"); + Err = 0; Kokkos::fence(); } @@ -1457,15 +1467,17 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { Array2DReal FlxIn = TrHorzAdvOnC.GetFlxIn(); Err += computeErrors(FCTErrors, FlxIn, CellSubView, Mesh, OnCell); Err += checkErrors("TendencyTermsTest", "FCTFluxIn", FCTErrors, - Setup.ExpectedFCTErrors, RTol); + Setup.ExpectedFCTFluxIn, RTol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTFluxIn PASS"); + Err = 0; Array2DReal FlxOut = TrHorzAdvOnC.GetFlxOut(); Err += computeErrors(FCTErrors, FlxOut, CellSubView, Mesh, OnCell); Err += checkErrors("TendencyTermsTest", "FCTFluxOut", FCTErrors, Setup.ExpectedFCTErrors, RTol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTFluxOut PASS"); + Err = 0; Kokkos::fence(); } { @@ -1482,6 +1494,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { FCTErrors, Setup.ExpectedFCTErrors, RTol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTRescaleHighOrderFlux PASS"); + Err = 0; Kokkos::fence(); } { @@ -1561,6 +1574,7 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { if (Err == 0) LOG_INFO("TendencyTermsTest: FCTAccumulateHighOrderFlux_" + std::to_string(L) + " PASS"); + Err = 0; Kokkos::fence(); } From 2e5d6f701252088a0df7750ada8a26a8f3a49b41 Mon Sep 17 00:00:00 2001 From: James Overfelt Date: Fri, 28 Aug 2026 16:51:57 -0400 Subject: [PATCH 60/60] Put some ATol on check values close to zero. --- .../omega/test/ocn/TendencyTermsTest.cpp | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/components/omega/test/ocn/TendencyTermsTest.cpp b/components/omega/test/ocn/TendencyTermsTest.cpp index ed5dee778843..4ea8654875fc 100644 --- a/components/omega/test/ocn/TendencyTermsTest.cpp +++ b/components/omega/test/ocn/TendencyTermsTest.cpp @@ -59,8 +59,6 @@ struct TestSetupPlane { ErrorMeasures ExpectedTrHAdvErrors = {0.0029211089892916243, 0.0024583038518548855}; ErrorMeasures ExpectedFCTErrors = {0.00, 0.00}; - ErrorMeasures ExpectedFCTFluxIn = {0.0005489016322973567, - 0.002042666702582708}; ErrorMeasures ExpectedFCTHProv = {0.00, 0.00}; ErrorMeasures ExpectedFCTHInv = {0.00, 0.00}; ErrorMeasures ExpectedFCTHNew = {0.00, 0.00}; @@ -215,7 +213,6 @@ struct TestSetupSphere { ErrorMeasures ExpectedTrHAdvErrors = {0.013259410329645643, 0.004094907022292395}; ErrorMeasures ExpectedFCTErrors = {0.00, 0.00}; - ErrorMeasures ExpectedFCTFluxIn = {0.00, 0.00}; ErrorMeasures ExpectedFCTHProv = {3.0542657508680904e-05, 1.0779233406323438e-06}; ErrorMeasures ExpectedFCTHInv = {3.0541724683419424e-05, @@ -224,8 +221,8 @@ struct TestSetupSphere { 1.0779233406323438e-06}; ErrorMeasures ExpectedFCT_High = {0.00146484375, 16478.526025524854}; ErrorMeasures ExpectedFCT_Low = {0.2958192441638326, 0.09980000200239414}; - ErrorMeasures ExpectedFCTToNonFCT = {1.632639958580968e-15, - 7.582979124216783e-16}; + ErrorMeasures ExpectedFCTToNonFCT = {1.5120472343676013e-15, + 6.215666716489436e-16}; ErrorMeasures ExpectedTrDel2Errors = {0.04865718541236144, 0.005105510870642706}; ErrorMeasures ExpectedTrDel4Errors = {0.0008646345116716073, @@ -1372,9 +1369,10 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { DvEdgeFromMeshFile * NormalVelocity(IEdge, K); }); + const Real ATol = 1.0e-10; Err += computeErrors(FCTErrors, LowOrderFlx, FluxSubView, Mesh, OnEdge); Err += checkErrors("TendencyTermsTest", "FCTHighAndLowOrderFlux_Low", - FCTErrors, Setup.ExpectedFCT_Low, RTol); + FCTErrors, Setup.ExpectedFCT_Low, RTol, ATol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTHighAndLowOrderFlux_Low PASS"); Err = 0; @@ -1417,10 +1415,11 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { FluxSubView(IEdge, K) = 0; }); + const Real ATol = 1.0e-10; Array2DReal HighOrderFlx = TrHorzAdvOnC.GetHighOrderFlx(); Err += computeErrors(FCTErrors, HighOrderFlx, FluxSubView, Mesh, OnEdge); Err += checkErrors("TendencyTermsTest", "FCTHighAndLowOrderFlux_High", - FCTErrors, Setup.ExpectedFCT_High, RTol); + FCTErrors, Setup.ExpectedFCT_High, RTol, ATol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTHighAndLowOrderFlux_High PASS"); Err = 0; @@ -1464,12 +1463,6 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { }); Kokkos::fence(); - Array2DReal FlxIn = TrHorzAdvOnC.GetFlxIn(); - Err += computeErrors(FCTErrors, FlxIn, CellSubView, Mesh, OnCell); - Err += checkErrors("TendencyTermsTest", "FCTFluxIn", FCTErrors, - Setup.ExpectedFCTFluxIn, RTol); - if (Err == 0) - LOG_INFO("TendencyTermsTest: FCTFluxIn PASS"); Err = 0; Array2DReal FlxOut = TrHorzAdvOnC.GetFlxOut(); Err += computeErrors(FCTErrors, FlxOut, CellSubView, Mesh, OnCell); @@ -1567,10 +1560,11 @@ int testFCTTracerHorzAdvOnCell(int NVertLayers, int NTracers, Real RTol) { deepCopy(TracerSubView, Kokkos::subview(TendNoFCT, L, Kokkos::ALL, Kokkos::ALL)); + const Real ATol = 1.0e-10; Err += computeErrors(FCTErrors, Tend, TracerSubView, Mesh, OnCell); Err += checkErrors("TendencyTermsTest", "FCTAccumulateHighOrderFlux_" + std::to_string(L), - FCTErrors, Setup.ExpectedFCTToNonFCT, RTol); + FCTErrors, Setup.ExpectedFCTToNonFCT, RTol, ATol); if (Err == 0) LOG_INFO("TendencyTermsTest: FCTAccumulateHighOrderFlux_" + std::to_string(L) + " PASS");