Skip to content

lawrenceccheung/AMRWind_RANSBC

Repository files navigation

Development & Validation of the RANS ABL BC in AMR-Wind

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.

Documentation

Check out the docs section for notes and literature.

Branch merging

For bleeding-edge testing

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.

For PR review

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:

Do not merge this one (yet):

Things to do

Things to do for implemention

  • 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?
  • 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
    • 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

Things to do for testing

Basic testing

  • Create test harness for KOmegaSSTABL+wall model (proper inputs for 1 iteration test case, no mesh mapping)

  • 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published