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 "Developing MOOSE Applications with ICE"

Line 20: Line 20:
  
 
[[File:fork_button.png]]
 
[[File:fork_button.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.
  
 
[[File:fork_dialog.png]]
 
[[File: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.  
+
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.  
  
 
== Adding a New Kernel ==  
 
== Adding a New Kernel ==  

Revision as of 17:38, 23 April 2015

Introduction

This article is designed to work MOOSE developers 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 software development tools and technologies for developing scientific software can be integrated into the ICE platform. Version control, code editing, code completion, code building, and code generation are just a few of the various technologies now available to MOOSE-based application developers using ICE. Additionally, after developing your custom MOOSE application, the usual MOOSELauncher and MOOSEModel Items and the ICE Visualization perspective are still at your disposal for constructing input files, launching jobs, and visualizing results.

Cloning MOOSE

To clone MOOSE, simply switch to the Git Perspective in the top right corner of ICE. You will be presented with the following view [PICTURE].

Now click the 'Clone a Git Repository' button in the toolbar of the 'Git Repository' view [PICTURE]. You will be presented with the following wizard. Enter https://github.com/idaholab/moose into the URI entry and select next. This will present you with the branch selection wizard page. Select which branches you'd like to import in this clone and click Next. The last page will let you specify the clone location on your local filesystem. If you'd like this to be in your local ICE workspace entry /home/username/ICEFiles in the entry and click Finish.

To import MOOSE into your ICE Project Explorer, simply right click the created moose repository in the Git Repository view and select 'Import Projects'. On the first wizard page, select 'Import as New Project' and click finish. This will present you with the ICE New Project wizard. In this wizard, open the C/C++ tree node and select 'Makefile project with Existing Code'. Provide a valid project name and toolchain and click finish. You should see MOOSE in your Project Explorer.

Building MOOSE

To build MOOSE/Libmesh within ICE, open the Make Target view by going to Window > Show View > Other and search and select Make Target. With MOOSE imported into your Project Explorer, you should see the MOOSE project in the Make Target view. Right click on that project and select New. A dialog will pop up prompting you for the Make Target name, target name, and build command. Set the name as 'Build Libmesh', uncheck 'Same as target name' and leave the Make target blank, uncheck 'Use builder settings' and set the command as 'sh scripts/update_and_rebuild_libmesh.sh', then click 'Ok'. Now you should see a 'Build Libmesh' target, which upon double-clicking will execute the update_and_rebuild_libmesh.sh script with the output streaming in the Console view.

Once that is done, you can create another Make Target in the same manner, this time setting the target as all, but setting the build command (assuming you have CMake installed on your system) as 'cmake -E chdir framework make' (feel free to add -j N to this command, where N is the number of make threads). If you do not have CMake installed, you can right click on the MOOSE project in the Project Explorer and select Properties. In this Properties dialog, select C/C++ Build and append to the Build directory entry 'framework'. Now, double-clicking this make target will execute the MOOSE build, and you should see the output streaming in the Console.

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 in an easy-to-use toolbar button using the tools provided by the Eclipse EGit plugins. To 'Fork the Stork' in ICE, simply click the 'MOOSE Fork the Stork' button in the toolbar.

Fork button.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.

Fork dialog.png

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.

Adding a New Kernel

COMING SOON

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