running nimrod with omfit€¦ · • ipscore • ipsmonitor • ipsworkflow • itmactor •...

25
Running NIMROD with OMFIT V.A. Izzo, O. Meneghini NIMROD Summer Meeting 15 August 2015

Upload: others

Post on 19-Oct-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

  • Running NIMROD with OMFIT

    V.A. Izzo, O. Meneghini

    NIMROD Summer Meeting

    15 August 2015

  • OMFIT incorporates modules for a large number of codes

    and has fairly broad adoption

  • •List of public physics modules

    • 2POINTSOL

    • BOUT++

    • BOUT++interface

    • CALTRANS

    • CURRAY

    • EFIT

    • ELITE

    • ELMprofiles

    • ELMremoval

    • EPED

    • ESC

    • FASTRAN

    • FIDASIM

    • GAprofiles

    • GATO

    • GCNMP

    • GENRAY

    • GKS

    • IPScore

    • IPSmonitor

    • IPSworkflow

    • ITMactor

    • kineticEFIT

    • kineticEFITmulti

    • M3DC1

    • MagneticFlutter

    • NIMROD

    • NUBEAM

    • ONETWO

    • Osborne_profiles

    • PEST3

    • profiles

    • PROFILES_GEN_GACODE

    • raffi_test

    • SCOPE

    • SOLPS

    • SURFMN

    • TGLF_GACODE

    • TGLF_scan

    • TGYRO_GACODE

    • TIMINGS

    • TORAY

    • TORBEAM

    • TRANSP

    • TRIP3DGPU

    • UEDGE

    • VARYPED

    • ZIPFITprofiles

    OMFIT modules allow you to execute code, parse and

    plot inputs and outputs, and interact with other modules

    http://gafusion.github.io/OMFIT-source/modules.htmlhttp://gafusion.github.io/OMFIT-source/modules.html#pointsolhttp://gafusion.github.io/OMFIT-source/modules.html#bouthttp://gafusion.github.io/OMFIT-source/modules.html#bout-interfacehttp://gafusion.github.io/OMFIT-source/modules.html#caltranshttp://gafusion.github.io/OMFIT-source/modules.html#currayhttp://gafusion.github.io/OMFIT-source/modules.html#efithttp://gafusion.github.io/OMFIT-source/modules.html#elitehttp://gafusion.github.io/OMFIT-source/modules.html#elmprofileshttp://gafusion.github.io/OMFIT-source/modules.html#elmremovalhttp://gafusion.github.io/OMFIT-source/modules.html#epedhttp://gafusion.github.io/OMFIT-source/modules.html#eschttp://gafusion.github.io/OMFIT-source/modules.html#fastranhttp://gafusion.github.io/OMFIT-source/modules.html#fidasimhttp://gafusion.github.io/OMFIT-source/modules.html#gaprofileshttp://gafusion.github.io/OMFIT-source/modules.html#gatohttp://gafusion.github.io/OMFIT-source/modules.html#gcnmphttp://gafusion.github.io/OMFIT-source/modules.html#genrayhttp://gafusion.github.io/OMFIT-source/modules.html#gkshttp://gafusion.github.io/OMFIT-source/modules.html#ipscorehttp://gafusion.github.io/OMFIT-source/modules.html#ipsmonitorhttp://gafusion.github.io/OMFIT-source/modules.html#ipsworkflowhttp://gafusion.github.io/OMFIT-source/modules.html#itmactorhttp://gafusion.github.io/OMFIT-source/modules.html#kineticefithttp://gafusion.github.io/OMFIT-source/modules.html#kineticefitmultihttp://gafusion.github.io/OMFIT-source/modules.html#m3dc1http://gafusion.github.io/OMFIT-source/modules.html#magneticflutterhttp://gafusion.github.io/OMFIT-source/modules.html#nimrodhttp://gafusion.github.io/OMFIT-source/modules.html#nubeamhttp://gafusion.github.io/OMFIT-source/modules.html#onetwohttp://gafusion.github.io/OMFIT-source/modules.html#osborne-profileshttp://gafusion.github.io/OMFIT-source/modules.html#pest3http://gafusion.github.io/OMFIT-source/modules.html#profileshttp://gafusion.github.io/OMFIT-source/modules.html#profiles-gen-gacodehttp://gafusion.github.io/OMFIT-source/modules.html#raffi-testhttp://gafusion.github.io/OMFIT-source/modules.html#scopehttp://gafusion.github.io/OMFIT-source/modules.html#solpshttp://gafusion.github.io/OMFIT-source/modules.html#surfmnhttp://gafusion.github.io/OMFIT-source/modules.html#tglf-gacodehttp://gafusion.github.io/OMFIT-source/modules.html#tglf-scanhttp://gafusion.github.io/OMFIT-source/modules.html#tgyro-gacodehttp://gafusion.github.io/OMFIT-source/modules.html#timingshttp://gafusion.github.io/OMFIT-source/modules.html#torayhttp://gafusion.github.io/OMFIT-source/modules.html#torbeamhttp://gafusion.github.io/OMFIT-source/modules.html#transphttp://gafusion.github.io/OMFIT-source/modules.html#trip3dgpuhttp://gafusion.github.io/OMFIT-source/modules.html#uedgehttp://gafusion.github.io/OMFIT-source/modules.html#varypedhttp://gafusion.github.io/OMFIT-source/modules.html#zipfitprofiles

  • See OMFIT documentation site for basic info on getting

    started with OMFIT:

    http://gafusion.github.io/OMFIT-source/

    As NIMROD module is still being developed, best to run the unstable version of OMFIT

  • Load the NIMROD module into your OMFIT project

    File…

    Import module…

    NIMROD…

    Load

    (1) (2)

  • Start by opening the nimrod GUI

    At the top of the ‘Run’ tab, set what server

    you want to run NIMROD on, the path of

    the installation, and executable name

    (assumes path/bin/executable-name, and

    is not used for batch jobs)

    Then set a top level

    directory on the sever for

    your NIMROD runs, and a

    Run ID for this particular

    case

    Since NIMROD dump files

    are generally large, you

    probably don’t want to pull

    them into the tree. By

    default they will be kept in

    a permanent storage

    directory on the server.

  • As you load your files, the GUI

    will automatically update to

    prompt you for additional files

    you need, such as fluxgrid.in

    or EFIT file

    Load your NIMROD input files into the tree

    If you want to begin from a

    template, you can also load all

    files from one of the NIMROD

    regression test cases, using

    the Regression cases tab

    Note: loading of regression

    case will only work if you are

    pointed to the AToM NIMROD

    installation on NERSC (the

    default)

  • Add any additional input files you need for your case

    This is a ‘catch-all’ in case your simulation needs special input files that you are not

    specifically prompted for by the GUI.

    Specify the number of additional files next to “Additional input files? # =’

    Load in each additional input file, then explicitly specify the full file name you want this

    file to have when it is deployed into the run directory (obviously, can be the same as the

    name of the file you loaded in).

    Specify for each additional file whether it is needed to run nimset, nimrod or both.

  • All of your inputs are now in the tree, you can view and

    modify the contents of your namelists, then run nimset

    Modify your

    input namelists

    parameters in

    the tree

    Click the ‘Run

    NIMSET’

    button. The

    standard

    output will be

    displayed in

    the upper right

    window

  • Preprocessor output files are found under outputs_nimset.

    Create automatic or custom plots:

    Automatic plot

    created by

    highlighting

    ‘grid’ file and

    hitting

    Custom plot using python

    command window (hint: full

    paths to variable tree

    locations are copied and

    pasted from the tree)

  • Run nimrod in serial, parallel, or as a batch job

    Select how you want to run the code

    (1) (2)

    When you choose ‘with batch script

    using qsub’ a batch file will auto-

    generate and open in your default

    browser. Modify as needed.

  • Example 1: Run in serial- Uploads input files, executes

    code, downloads outputs (usually excluding dump files)

    Click ‘Run NIMROD’ to start

    Output files are parsed and

    can be automatically plotted

    Follows the standard output

  • Example 2: Run batch job- Uploads input files,

    submits/monitors job, downloads outputs

    Tracks queue status until job begins,

    then follows standard out

    If you kill the local process, batch job is still

    in queue. Click ‘Submit NIMROD job +

    monitor + fetch’ to resume following job

  • To continue a run from where it left off, just hit that ‘run

    nimrod’ button again.

    Output files are renamed

    according to initial time

    step both locally and on

    the server

    Restart dump file is

    automatically updated to

    last available dump file

    Very simple script to

    string together multiple

    batch jobs

  • You can store the results of multiple jobs in on OMFIT

    project using the Store/Restore tab

    Store: Copy all inputs and

    move all outputs to

    STORED_RUNS subtree.

    [‘FILES’][‘outputs_*’] trees

    are now empty

    (1) (2)

    Restore: Select from a list of

    stored runs to repopulate

    [‘FILES’] to continue run or

    further post-process

  • You can automatically generate a scan over any

    parameter in nimrod.in or fluxgrid.in

    Set up initial case in ‘Run’ tab, then switch to

    ‘Run a scan’. Specify any variable name and a

    list of values for the scan. Specify if nimset

    needs to be rerun for each instance.

    All instances of scan are automatically placed in

    the STORED_RUNS tree.

  • Simple comparison plots from the results of your scan

    Script to loop over the

    cases in my scan and plot

    some variable is quickly

    generated by copying and

    pasting tree locations

  • Other GUI tabs can be used for post-processing

    GUIs for nimplot and nimfl. Output files

    from nimplot are parsed, Log files with

    inputs automatically generated.

  • Example of simple integrated task: Gaprofiles for density

    Script to extract density profile information

    from Gaprofiles module, map onto density

    vs flux using my EFIT file, and include as

    nimset input

  • You can also run post-processing tasks with other codes

    (on other machines)

  • Another possibility: modules to create “easy” versions of

    NIMROD for very specific tasks

    reOrbit module uses ONLY the RE orbit

    following routines in NIMROD to calculate

    orbits on fixed 3D fields. Use of NIMROD

    is transparent to user.

  • Summary

    I find OMFIT very useful for running NIMROD– suggest giving it a try.

    More users will help work out bugs.

    Some features are lacking because I don’t use them, but I can

    develop them as needed.

    Send questions, suggestions, problems, bugs to me at

    [email protected]

    mailto:[email protected]