Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Using Nek5000 with ICE"

(Prerequisites)
(Creating a Nek5000 *.rea Input File)
Line 41: Line 41:
 
== Creating a Nek5000 <tt>*.rea</tt> Input File ==
 
== Creating a Nek5000 <tt>*.rea</tt> Input File ==
  
Once ICE is properly installed and you have placed the <tt>conj_ht.rea</tt> file in your <code>/ICEFiles/default/Nek5000_Model_Builder</code> directory, you can begin creating input for Nek5000.  
+
Once ICE is properly installed and you have placed the <tt>*.rea</tt> file (<tt>conj_ht.rea</tt> in this example) in your <code>/ICEFiles/default/Nek5000_Model_Builder</code> directory, you can begin creating input for Nek5000.  
  
 
To begin, launch ICE (if it isn't already running), and you should be presented with an empty workbench.  
 
To begin, launch ICE (if it isn't already running), and you should be presented with an empty workbench.  

Revision as of 16:10, 26 May 2015

This document is designed to outline the basic steps of setting up and using the Nek5000 plugins in ICE. There are two different tasks for the input generation and launching of Nek5000 within ICE:

  • Nek5000 Model Builder - Using selected parameters, generates a set of input files necessary to launch the Nek5000 neutronics codes.
  • Nek5000 Launcher - Initiates the Nek5000 codes to run on a local or remote system using the files generated from the Nek5000 Model Builder.

Background

Part of our work in the 2013 fiscal year included a detailed analysis of Nek5000's existing graphical input generator, PreNek. We worked closely with the Nek5000 team to determine how it works and discover any painful points related to its use. The ICE and Nek5000 teams decided that the best course of action was to slowly reproduce the capabilities that exist in PreNek in ICE during the 2014 fiscal year, focusing on usability first, and inclusion of advanced features second. The goal is to produce a tool that will allow users to work with all of Nek5000's examples and, eventually, allow users to create entirely new Nek5000 problems from scratch.

We started by creating a new set of tools in ICE that can read and write Nek5000's .rea files. The first example that we targeted was Nek's conjugate heat transfer example, conj_ht, which includes a number of different options, a mesh, and some boundary conditions. ICE will support more examples in the very near future.

Getting Started

Installation & Configuration

Follow the instructions in the Getting ICE article to download and install the latest version of ICE on your system.

Prerequisites

You should have Nek5000 installed on a machine, either your local machine or a remote machine.

Additionally, ICE's support for input creation is limited to loading and modifying existing two-dimensional problems. This means that ICE requires a *.rea example file from Nek5000 to get the information it needs to generate input. Below is a list of *.rea files that have been tested with ICE:

  • conj_ht.rea
  • eddy_uv.rea
  • kov.rea
  • ray_dd.rea
  • ray_dn.rea
  • ray_nn.rea
  • shear4.rea
  • v2d.rea

These files can be found in the /nek5/examples directory of a Nek5000 installation, or downloaded individually from the Nek5000 SVN repository. Once you've obtained a *.rea file, create a directory named Nek5000_Model_Builder in your local file system in one of the following directories:

On Linux: /home/{user}/ICEFiles/default/
On Mac: /Users/{user}/ICEFiles/default/
On Windows: C:\Users\{user}\ICEFiles\default\

Place the *.rea file here before launching ICE. If you have never launched ICE on your system before, you will also have to create the /ICEFiles/default directory. In the following tutorial, we'll be modifying the conj_ht.rea problem.

Creating a Nek5000 *.rea Input File

Once ICE is properly installed and you have placed the *.rea file (conj_ht.rea in this example) in your /ICEFiles/default/Nek5000_Model_Builder directory, you can begin creating input for Nek5000.

To begin, launch ICE (if it isn't already running), and you should be presented with an empty workbench.

ICE EmptyWorkbench.png

The first step to generate Nek5000 input is to create a Nek5000 Model Builder Item; click on the green plus icon (+) located at the top of the left-hand column.

ICE CreateItem.png

This will launch a dialog prompting you to select a task (or Item) to create. Find Nek5000 Model Builder in the Item Selector list (you may need to scroll down) and select OK.

ICE NekModelBuilderItem.png

Defining Input Parameters

A Nek5000 Model Builder form containing a number of tabs (near the bottom) with parameter input boxes will appear in the ICE workbench. These parameters are specific to the input required by Nek5000 and have a number of restrictions associated to them. The specifics of Nek5000 input is beyond the scope of this tutorial. However, the list below provides links to more detailed information about each parameter. Since we prepared and placed the conj_ht.rea file in the /ICEFiles/default/Nek5000_Model_Builder directory ahead of time, you will find the parameters are already filled out with appropriate values. For some parameters, hovering over the name will display additional information about it.

Input specification by section:

ICE NekModelBuilderForm.png

Once you have entered all the required parameters (or have made any changes to the existing ones), save the Nek5000 Model Builder project by clicking the floppy disk icon located in the top left-hand corner of ICE (or Ctrl+S/+S).

ICE SaveButton.png

Clicking on the last tab in the Nek5000 Model Builder form will open the Mesh Editor with the current mesh for this problem displayed. More information on editing the mesh is available in Editing Meshes.

Generating Nek5000 Input Files

The last step in creating input is to actually generate the *.rea file that will be used to launch Nek5000 in the next section. To do this, select the Process drop-down menu located in the upper right corner of your Nek5000 Model Builder window, select Write Nek5000 input, and click Go!. This will convert the parameters entered on your Nek5000 Model Builder form into a text-based format that is compatible with Nek5000; this process should only take a few seconds at most. The phrase "Done!" should appear next to the title of your Nek5000 Model Builder workspace.

ICE WriteNekInput.png

This file will be created in your /home/user/ICEFiles/default directory and will have the file name Nek5000_Model_Builder_{num}.rea, where {num} is your model builder Item number (i.e. Nek5000 Model Builder 1, Nek5000 Model Builder 2, etc.). It's important to note, that if you have a previously generated Nek5000 input file in your default directory, generating another input file with the same Item number will overwrite your existing file without warning.

This concludes the Nek5000 input file generation; the *.rea input file created here will be used to launch Nek5000 in the next section. If you would like to review the generated input file before moving onto the next step, you can do so by selecting the File > Open File... menu in ICE, and navigating to your Nek5000_Model_Builder_{num}.rea file. This will display the input file in your ICE workbench. You may make modifications and save changes to the *.rea file from within ICE, however, this is not recommended for users unfamiliar with Nek5000.

ICE NekReaInputFile.png

Launching a Nek5000 Problem

The process for launching Nek5000 from within ICE is not entirely different from creating an input file. ICE abstracts activities in such a way that they are not so different mechanically, even if the information exchanged is significantly different.

Creating the Launcher

Assuming you just generated a Nek5000-specific input file, you already have ICE running. If not, launch ICE and wait until an empty workspace appears.

File:ICE EmptyWorkspace.png

You can create a ICE launch job by clicking on the green plus icon (+) at the top of the Item Viewer list.

ICE CreateItem.png

In the list that appears, select Nek5000 Launcher. Note that because of all of the different Items supported, you may need to scroll down to the bottom of the list to find the Nek5000 Launcher.

ICE NekLauncherSelection.png

The central editor area of the workbench will change once you click OK on the Item Selection menu. It will display a form that requires some information about the job that you would like to run.

ICE NekLauncher.png

Setting the Input File and Hostname

The first thing that you need to do is select the input file for Nek5000, which is the input file that you created in the previous section. Start by clicking the box labelled Input File and select your Nek5000 neutronics *.rea file. Remember that the file you created in the previous section will be named Nek5000_Model_Builder_{num}.rea.

where {num} is the number of your model Item. In the case below, the model was number 4 and the input file is Nek5000_Model_Builder_4.rea.

File:ICE Nek5000InputSelection.png

Next, select a problem from the list of Available Executables upon which your input file is based. In this example, we would chose conj_ht. Currently, the list of Nek5000 examples supported in ICE for launching is limited to the following:

  • 2d_eigtest
  • 3dbox
  • axi
  • blasius
  • conj_ht
  • cyl_restart
  • eddy
  • eddy_psi_omega
  • expansions
  • ext_cyl
  • fs_2
  • fs_hydro
  • hemi
  • kov_st_state
  • kovasznay
  • lowMach_test
  • mhd
  • moab
  • moab_conjht
  • os7000
  • peris
  • pipe
  • rayleigh
  • robin
  • shear4
  • solid
  • strat
  • taylor
  • thermal_io
  • timing
  • turbChannel
  • turbJet
  • var_vis
  • vortex
  • vortex2

File:ICE Nek5000AvailableExecutables.png

Lastly, select the machine on which ICE will launch Nek5000; this can be either local or remote. You can add or remove hosts from the table to suit your needs.

File:ICE Nek5000HostSelection.png

Launching the Job

After selecting both the input file and the host machine, save the project by clicking the floppy disk icon in the upper left-hand corner (or Ctrl+S / +S). Next, use the drop-down menu in the upper right-hand corner to tell ICE to launch the Nek5000 job. Select the Launch the Job task from the drop-down menu and click the Go! button. ICE will then launch Nek5000 on your host machine when you click the OK button. If you are launching on a remote machine, ICE will ask for your credentials on that machine.

Viewing Results

You can view the results of the Nek5000 run by clicking on the Output Files and Data tab at the bottom of the Nek5000 Job Launcher form (and just above the streaming text console). If Nek5000 ran successfully, you should see the information that it writes to standard out in a text editor.

File:ICE NekResults.png

Known Issues

  • ICE only supports 2 dimensional examples for input creation currently. We plan to increase the pool of available examples to choose from, and eventually allow the user to define their own custom problems.
  • When using a predefined example like conj_ht, any sections of the original *.rea file with a predefined number of lines in a particular section will remain that length for now, i.e. conj_ht has 6 lines of Output Field Specification data, and thus the user is not able to add or remove any more than that. This also extends to sections with 0 lines initially defined, meaning they will remain empty.
  • Similar to the previous bullet point, if the number of passive scalars (NPSCAL, p23) is initially set to 0 in a particular example, even if the user changes this value in the Parameters section, the problem will launch with no Passive Scalar Data defined.
  • The conj_ht example initializes with 96 elements (64 thermal, 32 fluid), and allows a maximum of 4100 total elements. It's very unlikely a user will create more than 4100 elements by hand for this example, however if they do, they will likely encounter errors when running Nek5000 because ICE does not yet rewrite the Nek's SIZE file.

Back to the top