Exawind / amr-wind

AMReX-based structured wind solver
https://exawind.github.io/amr-wind
Other
103 stars 78 forks source link

Terrain-Aware Immersed Forcing Method #1115

Open hgopalan opened 5 days ago

hgopalan commented 5 days ago

Summary

This draft PR introduces an immersed forcing method for representing terrain within AMR-Wind. The terrain is generated outside amr-wind and this method does not rely on the existing immersed boundary method. The terrain runs are performed in steps:

  1. Run precursor
  2. Generate the terrain using the included utility from the mmctools project and SRTM data
  3. Generate roughness using NLCD database (under development and not fully integrated)
  4. Run the terrain simulation with the terrain-related forcing terms included in the amp-wind input file and a terrain file created using the utilities.

The method can also be used to run cases without terrain such as an array of bluff bodies. The user has to create a XYZ file with the relevant information to do perform these simulations. The user can also use the stl2XYZ.py in tools/terrain folder to convert a STL file to XYZ file for AMR-Wind. It is recommended to have a smooth boundary near the inflow and outflow to reduce the number of iterations of the nodal and Mac projections.

The terrain modules have been designed to run with the Kosovic turbulence model. To use other turbulence models, the terrainBlanking information should be used to set the turbulent viscosity to zero in the solid region.

Pull request type

This is a draft PR and will be updated over the next weeks.

Please check the type of change introduced:

Checklist

The following is included:

This PR was tested by running:

Additional background

Issue Number:

hgopalan commented 2 days ago

This PR adds the complex terrain capability within AMR-Wind. I will create a separate PR with additional documentations and multiple terrain examples and on using the python tools to setup the cases.