Skip to content

Extend SurfaceLayer for all boundary sides - #3860

Open
ckendrick wants to merge 1396 commits into
erf-model:developmentfrom
llnl:most_walls_cloudchamber
Open

Extend SurfaceLayer for all boundary sides#3860
ckendrick wants to merge 1396 commits into
erf-model:developmentfrom
llnl:most_walls_cloudchamber

Conversation

@ckendrick

Copy link
Copy Markdown
Contributor

This allows the MOST/Surface Layer boundary condition to be specified on all 6 faces instead of only zlo.

Main changes to SurfaceLayer/MOSTAverage classes:

  • This adds a orientation parameter to the SurfaceLayer and MOSTAverage classes to determine behavior on different faces.
  • MOST configuration options are prefixed with the face name if the SurfaceLayer BC type is specified on more than the zlo face (e.g, erf.most.surf_temp, can now be erf.xlo.most.surf_temp).
  • MOST Averages and SurfaceLayer MultiFabs are constructed on planes corresponding to the face rather than at k=0.
  • MOSTAverage is extended to compute averages of W and other planar velocities (XZ, YZ)
  • MOSTAverage field ptrs are re-ordered from U/V/T/Qv/Qr/W to U/V/W/T/Qv/Qr.
  • Local and regional averaging are supported, but not terrain interpolation, time windowing, EB, etc.
  • SurfaceLayer writes to Tau and heat/moisture flux arrays for each face. Directional velocity averages and orientation is passed to MOSTStress.
  • Only the Surface Temperature and Moeng flux pathway are updated for now to handle different faces.

Main changes to ERF:

  • ERF now constructs a SurfaceLayer instance all 6 faces where the BC type is set to surface_layer (otherwise nullptr)
  • Existing coupling dependent on reading surface layer values (SHOC, PBL, etc) should default to checking and reading on the zlo face only. Existing behavior on the zlo face should not be modified by these changes.
  • X and Y hfx and qfx are read in the diffusion routines (N/S/T versions) from the surface layer on the face (if set).
  • Each face writes its variables to checkpoint with a face index prefix ("UStar_0, UStar_1", etc). Existing checkpoints without a face prefix should be supported.

A follow-up PR will be made to adapt this for the new cloudchamber interface and problem configuration.

debog and others added 30 commits April 22, 2026 12:08
# Conflicts:
#	Source/Microphysics/ERF_LagrangianMicrophysics.H
#	Source/Microphysics/SuperDropletsMoist/ERF_SuperDropletsMoistInit.cpp
#	Source/Microphysics/SuperDropletsMoist/ERF_SuperDropletsMoistPhaseChange.cpp
#	Source/Microphysics/SuperDropletsMoist/ERF_SuperDropletsMoistUtils.cpp
#	Source/Particles/ERF_SuperDropletPC.H
#	Source/Particles/ERF_SuperDropletPCUtils.cpp
debog and others added 30 commits August 12, 2026 19:13
…ming heat balance, call snowAccumulation and emit the accumulation fields in canonical order
…_processes

# Conflicts:
#	Source/Particles/ERFPC.H
#	Source/Particles/ERF_SuperDropletPC.H
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants