These instructions guide you through the initial steps of using MOOSE to solve the phase field method. It references other content on mooseframework.org, but is specific to the general way that fits best to phase field model development.
Follow the instructions on the Getting Started page, however we recommend you don't follow the step 2 instructions. We feel that most phase field developers will wish to contribute to the MOOSE phase field module, therefore the instructions are somewhat different:
$ cd ~/projects
$ git clone firstname.lastname@example.org:username/moose.git
$ cd moose
$ git config user.name "Your Name"
$ git config user.email your email@example.com
$ git remote add upstream firstname.lastname@example.org:idaholab/moose.git
Now, continue on with step 3 from the Getting Started page.
The phase field module is not a black box. You need to have some familiarity with the phase field method. We have some information at the Developing Phase Field Models page. In addition, we recommend the follow papers as a good place to start
There are many other excellent phase field papers that have been published, and they are all excellent ways to learn about various models and approaches to phase field.
Many basic phase field models can be developed using the phase field module without any experience with writing code in MOOSE. More complicated models, initial conditions, etc. will always require coding. This is made possible using function parsing from the input file and automatic differentiation. More information about this, is given on the Function Parsing.
The best way to get familiar with developing models using function parsing is with this tutorial:
Also, you should become familiar with all of the documentation on the phase field module wiki page
Various example problems have been created to demonstrate different capabilities of the phase field module. These are found in
moose/modules/phase_field/examples. The example problems are made to demonstrate real models on 2D problems. They are designed to run to completion on four processors in less than 5 minutes. They currently fall into six categories
As you do more modeling in MOOSE, you will want to write code to implement new capability. Such capability could be new initial conditions, new post processors for characterizing your simulations, or even new kernels to implement complicated models. MOOSE has been developed to greatly simplify the code writing process. There are various ways to become familiar with writing code in MOOSE, and they are summarized in the
Developing Code section of the MOOSE wiki.