Running NIMROD with OMFIT€¦ · • IPScore • IPSmonitor • IPSworkflow • ITMactor •...
Transcript of Running NIMROD with OMFIT€¦ · • IPScore • IPSmonitor • IPSworkflow • ITMactor •...
-
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
mailto:[email protected]