Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Developing MOOSE Applications with ICE"

(Building MOOSE)
(Building MOOSE)
Line 92: Line 92:
 
[[file:Moose build libmesh stc-2.png]]
 
[[file:Moose build libmesh stc-2.png]]
  
Once this step completes, the user can create another 'Build Target' in the same manner, this time setting the target as all, but setting the build command (assuming CMake is  installed on the user's system) as 'cmake -E chdir framework make' (feel free to add -j N to this command, where N is the number of make threads).
+
====With CMake====
  
If CMake is not installed on the user's system, right click on the MOOSE project in the 'Project Explorer' and select ''Properties''.
+
Once this step completes, the user can create another 'Build Target' in the same manner, this time setting the 'Build target' field as ''all'' and setting the Build command  as ''cmake -E chdir framework make'' (feel free to add -j N to this command, where N is the number of make threads).
  
In this Properties dialog, select ''C/C++ Build'' and append to the Build directory entry 'framework.'
+
[[file:Cmake_build_target_stc.png]]
  
Double clicking this make target will execute the MOOSE build, and the output should stream in the 'Console' view pane.
+
If CMake is not installed on the user's machine, they can find the necessary files and instructions on [//https://cmake.org/install/ CMake's website] or use the alternative method below.
 +
 
 +
====Without CMake====
 +
 
 +
Alternatively, if CMake is not available or not preferred, the user can still build with a couple of extra steps.
 +
 
 +
First, right click on the MOOSE project in the 'Project Explorer' and select ''Properties''.
 +
 
 +
[[file:Moose_build_properties_stc.png]]
 +
 
 +
In this 'Properties' dialog, select ''C/C++ Build'' and append to the 'Build directory' field with ''framework'' as shown below.
 +
 
 +
[[file:Moose_build_properties_dialog_stc.png]]
 +
 
 +
Double clicking this Build target will execute the MOOSE build, and the output should stream in the 'Console' view pane.
  
 
== Forking the Stork ==
 
== Forking the Stork ==

Revision as of 11:54, 10 November 2016

Introduction

This article is designed to guide users through a typical workflow for developing MOOSE-based applications in ICE. Since ICE is built on top of the Eclipse platform, a large variety of sophisticated tools and technologies for developing scientific software can be leveraged for developing MOOSE applications.

Version control, code editing, code completion, code building, and code generation are just a few of the technologies available to MOOSE-based application developers using ICE. Additionally, after the user develops a custom MOOSE application, the usual MOOSELauncher and MOOSEModel items—along with the ICE Visualization perspective—are still at their disposal for constructing input files, launching jobs, and visualizing results.

Cloning MOOSE

The latest version of ICE makes cloning MOOSE very simple.

In the main ICE window, click Developer > Framework > MOOSE > Clone Moose.

Clone moose dev menu stc.png

This step will automatically connect to the MOOSE Github repository, create a local clone on the user's disk, and import the MOOSE into the 'Project Explorer.'

Moose project explorer stc.png


Building MOOSE

To build MOOSE/Libmesh within ICE, open the 'Make Target' view pane by going to Window > Show View > Other.

Open make target view stc.png

This will prompt the 'Show View' dialog box. From there select Build Target and click OK.

Select build target stc.png

The MOOSE project is now visible in the 'Build Target' pane. Right click on MOOSE and select New.

Moose select new build target stc.png

This will prompt the 'Create Build Target' dialog, shown below.

Set the 'Target name' as Build Libmesh.
For Build Target: uncheck 'Same as Target name' and leave the 'Build target' field blank.
For Build Command: uncheck 'Use builder settings' and set the command as sh scripts/update_and_rebuild_libmesh.sh.
Click OK.

Moose create build target stc.png

'Build Libmesh' should now appear as a target, which upon double-clicking will execute the update_and_rebuild_libmesh.sh script with the output streaming in the 'Console' view pane.

Moose build libmesh stc 1.png

Moose build libmesh stc-2.png

With CMake

Once this step completes, the user can create another 'Build Target' in the same manner, this time setting the 'Build target' field as all and setting the Build command as cmake -E chdir framework make (feel free to add -j N to this command, where N is the number of make threads).

Cmake build target stc.png

If CMake is not installed on the user's machine, they can find the necessary files and instructions on CMake's website or use the alternative method below.

Without CMake

Alternatively, if CMake is not available or not preferred, the user can still build with a couple of extra steps.

First, right click on the MOOSE project in the 'Project Explorer' and select Properties.

Moose build properties stc.png

In this 'Properties' dialog, select C/C++ Build and append to the 'Build directory' field with framework as shown below.

Moose build properties dialog stc.png

Double clicking this Build target will execute the MOOSE build, and the output should stream in the 'Console' view pane.

Forking the Stork

The internal MOOSE development team provides another GitHub repository called stork at https://github.com/idaholab/stork that represents the base structure needed to create a new MOOSE application. So 'Forking the Stork' implies forking this repository, changing its name to whatever you've decided to call your MOOSE application, and cloning that locally to begin work. The MOOSE team calls this 'Forking the Stork' and provides a link to the repository at mooseframework.org/create-an-app.

ICE now provides this functionality by going to Developer > Framework > MOOSE > Fork the Stork.

Fork Path.png Fork dialog.png

This will present a new dialog asking for the name of your new MOOSE application, as well as your GitHub username and password. Upon providing this information and clicking 'Ok', ICE will fork the https://github.com/idaholab/stork repository for you, rename it to your provided application name, clone it to ~/ICEFiles, and import it into ICE as a new C++ project in the C/C++ perspective's Project Explorer view.

Additionally, the import generates a fully configured Make Target in the Make Target view, and sets up the C++ Indexer to point to your ICE MOOSE project's include files. This is essential for providing code completion and MOOSE code search while your developing your MOOSE application. To look at a MOOSE class that you've referenced in one of your application's source files, simply click the class name or the header file and click F3. ICE will take you directly to the declaration for that MOOSE class so that you can peruse and look up its method definitions.

New app.png Make target.png

Adding a New Kernel

Once you've cloned and built MOOSE, and Forked the Stork to produce a new MOOSE application ready for development, you can easily create custom Kernels with ICE. To create a new Kernel, right click on your new MOOSE-based application project and select New > MOOSE Object > Kernel.

New kernel.png

This action will display an input prompt asking for the name of your new Kernel subclass. Simply enter the name and push 'Ok'. Then ICE will automatically generate a new include and source file in include/kernel and source/kernel, respectively. The new files are the stubbed out, base implementation of a subclassed Kernel that you can then add to and modify.

Kernel source.png

Building your MOOSE App

Building your MOOSE application is simple because the 'Fork the Stork' action produced a Make Target for you. Simply double-click that make target and you application will build, producing the application executable.

Pushing Changes Back to GitHub

To push changes to the remote GitHub repository at https://github.com/username/animal, switch back to the Git perspective and click your applications git repository in the Git Repositories view. On the bottom right of the screen, you should see another set of tabbed views, one of them being the Git Staging view.

Git commit.png

Click the Git Staging View and drag any Unstaged Changes to the Staged Changes section. Now provide a brief commit message and click 'Commit and Push', enter your GitHub credentials, and watch as your files are committed to the remote repository!

Executing Built MOOSE Application

Now that you've developed a new MOOSE application you need to develop input files for it and execute it to see your desired results. This is simple with ICE: just use the built in MOOSE Model Builder and MOOSE Launcher Items. Detailed instructions can be found at Using MOOSE with ICE.

Back to the top