Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Terrain-Aware Immersed Forcing Method #1115

Merged
merged 101 commits into from
Oct 8, 2024
Merged

Conversation

hgopalan
Copy link
Contributor

@hgopalan hgopalan commented Jul 2, 2024

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. It is also possible to specify a roughness file to include non-uniform roughness in the simulations.

The method is first-order accurate.

Reference Paper: https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2020MS002141
Implemented Code: FastEddy for urban microclimate without log-law. handling

Not included in the current PR:

  1. Support for stratification with terrain
  2. RANS model support for terrain
  3. General turbulence model support (works only with the Kosovic model in non-hybrid mode).

Pull request type

PR is almost ready to be reviewed.

Please check the type of change introduced:

  • Bugfix
  • Feature
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • Documentation content changes
  • Other (please describe):

Checklist

The following is included:

  • new unit-test(s)
  • new regression test(s)
  • documentation for new capability

This PR was tested by running:

  • the unit tests
    • on GPU
    • on CPU (Kestrel and MacOS)
  • the regression tests
    • on GPU
    • on CPU (Kestrel and MacOS)

IB_error_Poiseulle
IB_verification

@marchdf
Copy link
Contributor

marchdf commented Oct 8, 2024

Can you update the branch please? Looks like there are conflicts.

@mbkuhn mbkuhn merged commit ea6129b into Exawind:main Oct 8, 2024
15 checks passed
@marchdf marchdf mentioned this pull request Oct 22, 2024
14 tasks
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.

7 participants