Skip to content

Conversation

@ewquon
Copy link
Contributor

@ewquon ewquon commented Nov 4, 2025

Implicit diffusion options:

erf.vert_implicit_fac  = 1.0 1.0 0.0  # fully implicit in first two stages, fully explicit in third RK stage(recommended)
erf.implicit_before_substep = 1       # do implicit solve before fast steps (default)
erf.implicit_divtau_terms = 1         # include implicit solve for velocities (default)

At this point, implicit vertical velocity appears to have marginal benefit and remains an experimental feature that hasn't been tested for terrain. This is enabled by the -DERF_IMPLICIT_W compiler flag or the ERF_ENABLE_IMPLICIT_W cmake option.

Verification problem for N and S paths: Exec/ABL/column_diffusion_test/inputs_sfclay_pbl

ewquon added 30 commits October 27, 2025 21:49
Multiply implicit soln by rho
Use correct src/dst comp index after implicit solve
**BUGS FIXED** in ComputeStrain_S affecting tau13, tau23
compare with code before explicit_fac mods (e.g., commit 7c69e4c PR2643)

* tau13 on z-lo w/o z-dirichlet: factor of 0.5 not multiplied through
* tau23 on z-lo w/o z-dirichlet: factor of 0.5 not multiplied through
* tau13 in interior: factor of mfx, mfy incorrectly multiplied through
* tau23 in interior: factor of 0.5 not multiplied through
@ewquon
Copy link
Contributor Author

ewquon commented Nov 5, 2025

Added some verification notes (https://github.com/erf-model/ERF/blob/ab1590d292908a0f6ee473abe73891ffc68f8d50/Exec/ABL/column_diffusion_test/README.md#findings)

In summary, for small dt (diffusive CFL < 0.5) the error between the fully explicit and mixed implicit-explicit paths is negligible. The solution is numerically stable with implicit diffusion for CFL > 5 but the velocity profile begins to drift.

AMLattanzi and others added 9 commits November 5, 2025 13:59
ImplicitDiffForMom_T now more closely resembles _S

detJ is only used for removing implicit_fac times the contribution to
u,v from the d/dz components of the stress tensor
Note: in ComputeStrain, this is third-order at the boundaries; we can only
do first-order for the tridiagonal solve.
@ewquon ewquon force-pushed the implicit_diff_vel branch from 202d031 to cba52df Compare November 7, 2025 18:42
ewquon and others added 19 commits November 7, 2025 12:57
* NetCDF/RRTGMP/Particles CI

* Remove commented out Spack commands

Removed commented-out lines for spack view commands.

* windows with ms-mpi attempt 1

* windows with ms-mpi attempt 1

* windows with ms-mpi attempt 2

* add option for MPI in cmake

* fix test path

* fix indentation

* fix paths

* Ctest with powershell?

* Ctest with powershell 2

* Simplifying installing MS-MPI + more

* Change shell and MPI executable path

* MPI wrapper script

* More MPI test changes (hopeful)

* MS-MPI test

* MS-MPI from correct source

* MS-MPI from correct source 2

* MSI vs EXE

* Exe nonewwindow

* Remove exe

* Remove exe 2

* Compile only, not run

* Binary artifact

* Binary artifact 2

* Whole build directory

Updated artifact upload paths to include the entire build directory.

* Modify Windows MPI workflow and enhance README

Updated job configuration for Windows MPI workflow to support both OFF and ON variants for MPI. Added detailed installation instructions and troubleshooting steps in the README.

* Style fixes

* Remove non-MPI builds

* Put regular windows.yml back to prior state

---------

Co-authored-by: Aaron M. Lattanzi <[email protected]>
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.

4 participants