This repo will include documentation, checklist, and validation of the RANS ABL boundary condition for AMR-Wind. Initial implementation will be for the k-omega RANS model.
Check out the docs section for notes and literature.
Branch with complete contributions (RANS ABL + mesh stretching):
https://github.com/lawrenceccheung/amr-wind/tree/ransabl_kitchensink
Note: additional changes may still be needed to improve stability/fix bugs.
RANS ABL k-omega model merged branch for PR review: https://github.com/lawrenceccheung/amr-wind/tree/mesh_map_k_omega_merge
Branches to merge in:
- https://github.com/lawrenceccheung/amr-wind/tree/mesh_map_k_omega
- https://github.com/ashesh2512/amr-wind/commits/mesh_map_turb
- https://github.com/lawrenceccheung/amr-wind/tree/mesh_map_subsetsampling
Do not merge this one (yet):
-
Implement ABL stretching function
- Blended stretching function defined in ABLScaling_function_blended.ipynb
- Implement in ABLScaling.cpp
-
Make a copy of KOmegaSST called KOmegaSSTABL
-
Implement ABL initial condition
- Edit
ABL::initialize_fields
to account for mesh mapping, sdr/tke init - Edit
ABLFieldInit::operator()
-- include mesh mapping - Edit
ABLFieldInit::perturb_temperature
for temperature - Edit
ABLFieldInit::operator()
-- initialize with M.O. profile? - Fill in
ABLFieldInit::init_tke()
-- use a profile? - Fill in
ABLFieldInit::init_sdr()
-- use a profile?
- Edit
-
Make changes to wall function BC
- Add ABLTKEWallFunc/ABLSDRWallFunc infrastructure in ABLWallFunction.cpp
- Edit ABL constructor to include RANS ABL inputs/capability
- Cmu is now linked to
beta_star
in RANS variables
- Cmu is now linked to
- Register TKE/SDR wall functions in ABL::post_init_actions()
- Edit ABLWallFunction::init_log_lawHeight()
- Add phi calculations in
MOData.H
,MOData.cpp
. - Add mu, epsilon, tke calculations in
ShearStress.H
. - Fill in ABLTKEWallFunc::wall_model()
- Fill in ABLSDRWallFunc::wall_model()
-
Make changes for k-epsilon model
- Fill in
ABLFieldInit::init_eps()
-- use a profile? - call init_eps() in ABL::initialize_fields()
- Register EPS wall functions in ABL::post_init_actions()
- Create ABLEPSWallFunc() in ABLWallFunction.H & fill in wall model
- Fill in
Basic testing
-
Create test harness for KOmegaSSTABL+wall model (proper inputs for 1 iteration test case, no mesh mapping)
- see abl_komegasst.i
-
Create test harness for KOmegaSSTABL+wall model+mesh mapping (proper inputs for 1 iteration test case, with mesh mapping)
SWIFT test cases
Neutral ABL case set up to match measured conditions from SWIFT test facility.