Getting Started
First you need to install the MOOSE framework. To do this, click the link below corresponding to your operating system/platform and follow the instructions:
MacOS:
Linux:
Advanced Instructions:
When installation is complete, return to this page to continue.
Create an Application
MOOSE is designed for building custom applications, therefore if you plan on working with MOOSE then you should create an application.
Your application is where code and input files should be created for your particular problem.
To create an application, run the stork.sh script while sitting outside the MOOSE repository with a single argument providing the name you wish to use to name your application:
cd ~/projects
./moose/scripts/stork.sh YourAppName
Running this script will create a folder named "YourAppName" in the projects directory, this application will automatically link against MOOSE. Obviously, the "YourAppName" should be the name you want to give to your application; consider the use of an acronym. We prefer animal names for applications, but you are free to choose whatever name suits your needs.
You should not attempt to run this script while sitting inside the MOOSE repository. Doing so will result in an error.
Compile and Test Your Application
cd ~/projects/YourAppName
make -j4
./run_tests -j4
If your application is working correctly, you should see one passing test. This indicates that your application is ready to be further developed.
Update MOOSE
MOOSE does not use traditional versioning, is under heavy development, and is being updated continuously. Therefore, it is important that you continue to update MOOSE as you use it to develop your application(s), we recommend weekly updates.
To update MOOSE use the following commands.
cd ~/projects/moose
git fetch origin
git rebase origin/master
Then return to your application, re-compile, and test.
cd ~/projects/YourAppName
make -j4
./run_tests -j4
Learn More
Now that you have a working MOOSE Framework stack, consider checking out the examples for a beginning tour of how to use input files and implement your own custom behavior for MOOSE.
Join the Community
Join one of our mailing lists:
[email protected] - Technical Q&A (moderate traffic)
[email protected] - Announcements (very light traffic)
GMail users can just click the "Join group" button. Everyone else can join by sending an email to:
You may also want to follow MOOSE developers on Twitter:
Derek Gaston: @friedmud
Cody Permann: @permcody
John Peterson: @peterson512
Jason Miller: @mjmiller96
Andrew Slaughter: @aeslaughter98
Troubleshooting
Please see our FAQ page for common issues. If your issue is not listed among our FAQs, this would be an excellent time to join us on our mailing list and ask for help!
Customizing MOOSE configuration
MOOSE can be customized by running a configure
script in $MOOSE_DIR/framework
. Below we summarize the configuration options available:
Automatic differentiation
--with-derivative-type
: Specify the derivative storage type to use for MOOSE'sDualReal
object. Options aresparse
andnonsparse
.sparse
selectsSemiDynamicSparseNumberArray
as the derivative storage type;nonsparse
selectsNumberArray
. A more detailed overview of these storage types can be found in theDualReal
documentation.--with-derivative-size=<n>
: Specify the length of the underlying derivative storage array. The default is 50. A smaller number may be chosen for increased speed; a larger number may be required for 3D problems or problems with coupling between many variables.