Mass-Consistent AMR Wind Solver Documentation
Welcome to the documentation for the Mass-Consistent AMR Wind Solver — a terrain-following, mass-consistent 3-D wind diagnostic tool built on AMReX.
Overview
massconsistent_amr implements the QUIC-URB style Lagrange multiplier
mass-consistent wind adjustment method (Sherman 1978). Given a terrain
elevation file and a reference wind speed, the solver:
Constructs a log-law initial wind field over complex terrain, evaluating the von Kármán profile at the height above local terrain (AGL) for every grid cell.
Enforces mass consistency (∇·u = 0) by solving an anisotropic Poisson equation via the AMReX MLMG linear solver (
MLABecLaplacian).Writes the corrected, divergence-free wind field as an AMReX plotfile and optionally a terrain-aligned CSV slice.
Key Features
Terrain-aware initialisation — IDW interpolation of arbitrary-density terrain point clouds onto the computational grid.
Log-law profile — von Kármán constant, aerodynamic roughness length, and reference height all configurable.
Mass-consistent correction — anisotropic Poisson equation with independent horizontal (α_h) and vertical (α_v) penalty coefficients.
AMReX MLMG solver — robust multi-level multigrid; configurable tolerances and verbosity.
GPU-ready — AMReX GPU kernels (CUDA, HIP, SYCL) for all field operations.
Terrain-aligned CSV output — sample the corrected field at any AGL height.
Quick Start
Clone with submodules:
git clone --recurse-submodules https://github.com/hgopalan/massconsistent_amr.git
cd massconsistent_amr
Build and run:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
./build/wind_solver regtest/gaussian_hill/inputs.i