Git Product home page Git Product logo

amrwind-frontend's Introduction

AMR-Wind front end tool

A tool to help setup, visualize, and postprocess AMR-Wind simulations.

Built using the TK yaml library

What can it do?

  • Load an AMR-Wind input file and change parameters interactively
  • Plot the simulation domain, including refinement zones and sampling probes/planes
  • Help visualize the sampling outputs (probes, lines, and planes)
  • Help postprocess ABL statistics files.
  • Use it in Jupyter notebooks or python scripts to automate processing.

Downloading

You can obtain amrwind-frontend by downloading it from github directly:

$ git clone --recursive [email protected]:Exawind/amr-wind-frontend.git

Dependencies

amrwind-frontend should work on both Python versions 2.7 and 3+, but it may require some additional libraries to be installed, like netCDF4. For more information, see the installation documentation

Running

Once you've downloaded it, you can launch the interactive GUI using the command:

$ ./amrwind_frontend.py

This is what it should look like:

screenshot

Documentation

See the documentation for details on how to install, configure, and use amrwind-frontend. There are also tutorial and example cases to explain how to set up and run AMR-Wind cases.

amrwind-frontend's People

Contributors

lawrenceccheung avatar gyalla avatar moprak-nrel avatar

Watchers

Lucian avatar  avatar

amrwind-frontend's Issues

Tutorial 2 documentation improvements/suggestions

Things to work on:

  • The portion on godunov parameters happens after setting the dynamic viscosity, but as you scroll down the gui, they appear in the opposite order. Might be good to have it in the same order the user sees it. But if you like the format of bundling it with the turbulence parameters, that's fine, looks nice too.
  • What happens to TKE on z_hi if nothing is specified? Is one of the drop-down options the default? If so, it might be good to have that autoselected.
  • In the gui, if you hit [?] under Boundary conditions on Z faces (or any of the others), it still says [WRITE SOMETHING IN HERE. *********
  • In the gui, in the "domain and mesh" box, it might look nicer if the "Note on the domain orientation" was left justified. Just an opinion.
  • Nice ascii drawings in the help boxes!
  • In the ABL physics box in the gui, it might be nice to have an ascii drawing in a help button showing which direction zero degrees points and which way the rotation is assumed.
  • In the ABL properties table in the tutorial, it might be good to have a comment for "ABL Normal Direction" that it is using C-style zero-based indexing, so 2 corresponds to z.
  • For output frequency in the tutorial, maybe a comment that "1" means outputting every timestep.
  • Stylistic observation: in the sampling probes box in the gui, "probes:" has a colon, and the others don't.
  • In the IO settings part of the tutorial, the pic shows the probes already entered, but the instructions below the pic explain how to enter them. Might be better to put the pic after. For a moment I thought I missed a step.
  • If you had the time, in the sampling probe popup in the gui, it would be ideal if the specifications for each of the three types only showed up when the user selected that type, rather than have several show/hide boxes, and only one of them actually being used at a time. Works fine as is, just saying what would probably be ideal.
  • Could the "plane offsets" box be made longer, to better see a large number of entries? For aesthetics, it would look pretty good if it occupied all three columns from the rows above (plane origin, plane axis1, etc.).
  • In the pic for the sampling probes, I see both a "save" and a "save and close" button, but in the actual gui, only the "save and close" button showed up. However, upon using "save and close", and then hitting "edit", the "save" button showed up as well. Not sure if this is the intended behavior.
  • For the ybc sampler in the tutorial, the two pics are actually the xbc ones. (I actually mistakenly entered the data from the pic instead of the table, and I think most users of the tutorial will probably look at the pic rather than the table, just because it's easier. However, I caught this when I looked at the plot in the later steps. So the plot feature is indeed super useful. ๐Ÿ™‚ ) **********
  • Just an idea: maybe the tutorial could include telling the user to diff the input against the "gold" one stored in the tutorial files? That way, they'd know if they missed a step.
  • The Readme.md calls it "Tutorial 2: Convectively unstable ABL", but the tutorial2guisetup.md calls it "Tutorial 2: Setting up an LES ABL calculation". Maybe the name for the latter could be more specific.
  • If you had the time, some discussion of running the case and the results would be good.
    Overall, very nice. If you had the time, more discussion of what the variables we are setting actually do and what the options are would be ideal. But aside from one or two important items in the above list (marked with stars), I think it's probably ready to ship as is.

amr_wind error w/ tutorial1 input

Cannot run the input file generated from amrwind-frontend. I am getting this error message at the end of AMR-Wind run. I tried this run using the AMR-Wind w/o installing OpenFAST. Do you think does this affect the error below?

bash-4.2$ amr_wind ./tutorial1.inp 
==============================================================================
                AMR-Wind (https://github.com/exawind/amr-wind)

  AMR-Wind version :: 210375e
  AMR-Wind Git SHA :: 210375e5afa96793f7a79b2114b6a8ab2aa8ca89
  AMReX version    :: 21.10-61-g08a068a638a1

  Exec. time       :: Wed Jan 12 13:17:12 2022
  Build time       :: Jan 11 2022 16:18:42
  C++ compiler     :: GNU 7.4.0

  MPI              :: OFF 
  GPU              :: OFF
  OpenMP           :: OFF

  No additional third-party libraries enabled

           This software is released under the BSD 3-clause license.           
 See https://github.com/Exawind/amr-wind/blob/development/LICENSE for details. 
------------------------------------------------------------------------------

AMReX (21.10-61-g08a068a638a1) initialized
Initializing AMR-Wind ...
Initializing boundary conditions for velocity_mueff
Initializing boundary conditions for velocity
Initializing boundary conditions for density
Initializing boundary conditions for p
Initializing boundary conditions for velocity_src_term
Initializing boundary conditions for gp
Creating PDESystem instance: ICNS-Godunov
Creating Physics instance: FreeStream
Creating Physics instance: Actuator
Creating TurbulenceModel instance: Laminar-ConstTransport
Creating RefinementCriteria instance: GeometryRefinement
(-200 -200 -200)
(200 -200 -200)
(200 200 -200)
(-200 200 -200)
(-200 -200 200)
(200 -200 200)
(200 200 200)
(-200 200 200)
Creating GeometryType instance: box
Creating PostProcessBase instance: Sampling
Initializing I/O manager
Creating UDF instance: ConstValue
Creating UDF instance: ConstValue
ActuatorModel 3
 - UniformCtDisk
 - FlatPlateLine
 - FixedWingLine
terminate called after throwing an instance of 'std::runtime_error'
  what():  In ActuatorModel cannot find instance: TurbineFastDisk
Aborted (core dumped)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.