Table of Contents
This page concerns the ongoing development of the Nek5000 plugins for NiCE.
Disclaimer: This is a rough draft page for development of the plugins with Nek5000 for NiCE. The number of items, the item's descriptions, parameters, and profiling may change.
Currently there are 3 types of "Items" planned for:
There is one fundamental difference between using this code rather than any other. The nek5000 piece must be built (makenek) before it can be executed in the launcher. In essence, there will be several system calls (or a shell script created) to handle this process correctly. Nevertheless, the model builder will have to take an intricate approach to grab all associated file types and include the parameters for running genmap prior to building.
The REA, USR, and SIZE files are very intricate and require a lot of manipulation on the user's side. From an initial standpoint, it would become extremely complicated to break down the REA file in NiCE. It might be better for files like REA to be openable with a file editor within NiCE instead of trying to parameterize it within a Form. This may seem tacky at first, but it will help solve some of the dependency issues within NiCE for the model and provide more flexibility to the end user of NiCE. Even so, if the parameters need to be added into NiCE, a separate Form might be beneficial for generating the REA file. However, brainstorming into a page segment for KV pairs might be a good tactic as well (A dedicated page in NiCE where Keys and blanks are provided).
Nevertheless, REA, USR, and RE2 need to be the same name. Therefore, it will probably be best if the following pieces are in the model builder:
The SESSION.NAME will be generated AFTER the item has been processed (in the model). This may need to be moved to the nek5_svn directory.
This launcher will differ slightly from the normal launcher configuration because it requires much better dependency handling, file movement, and several operations to run (genmap, make) before the launcher will execute the code. There should probably be 4 types of Item. Process operations on the Nek5000 Launcher.
1.) Genmap, build, execute.
2.) Genmap
3.) Build
4.) Execute
I suspect this will create a two-way dynamic approach for executing the simulation and providing a way to diagnose issues with the execution order for nek5000 when an error occurs.
Also, there are a few dependencies that have to be taken care of prior to executing the process operations.
Many of these dependencies should be streamlined within the nek5_svn directory. Although the nek5_svn can be in different directories if configured correctly, for temporary purposes this should be the norm until we get a better grasp of the nek5_svn product. Nevertheless, this should be taken into consideration when designing the appropriate absolute path locations.
Also, we will need to remember that this can be run locally or remotely!
Breakdown of Item Operations:
The genmap operation will execute via command line. It will require two sets of input. The first one is the name of the project, the second one being the mesh threshold. This generates a map file. A discovered quirk is that genmap must be run in the local directory.
The build operation will run make on the makefile in the build directory. This generates a file that needs to be put in the build directory.
The execution will run the generated nek5000 executable. This will be located in the build directory. This execution (if successful) will create a list of visIT files which should be viewable via the analyzer piece.
After a successful nek5000 job run (some can take a few hours), there are a few generated files that can be used to process the job. These files can be viewed by visIT. It might also be beneficial to link the generated.map file to the output analyzer as well for comparisons.
These visit files need to be edited with some metadata in order to be viewed in visIT!
The items listed below are uncategorized notes. These should be put in their proper place eventually. For now, these will be visible.
Nek5000 is a non-compressible fluid flow solver written by Argonne Labs. It is an open-source code that handles both C and fortran77 codes.
For NiCE to utilize this code, there are several vital components to the execution of the program. Nek5000 default directory is /home/user/nek5_svn/....
This directory is vital for the building and execution of the nek5000 code. There are also many different types of files that need to be in their own folder (separate from the source directory (rea, re2, usr, SIZE, SESSION.NAME) to handle the build and execution. Thankfully, Nek5000 utilizes OUT OF SOURCE builds. Nevertheless, in order to execute specific jobs, each job must be built from source along with the various input files. Also, there are several tools required to fully utilize the mapping methods in nek5000. These can be found in Tools (especially for genmap). Make sure to make all tools.
Here is a list of required input files and their basic descriptions. <file> is interchangeable, but they should MATCH:
Once all these files are in the directory and everything is installed correctly (see nek5000 home page for details), then the following steps must be undertaken in order to get a working execution of nek5000:
And that's it. Once the process finishes, it will list fld or fl0? files. FLD files can be used by VisIT (with the appropriate metadata file).
More to come!