Framework Development

The articles attached to this page are useful if you intend on contributing to the MOOSE reposistory. Information about the repository structure, code standards, testing, and software quality are all available here. If you are new to Git, we've created some information about how to get up and running here as well.

For development of MOOSE-based applications see Application Development.

Overview on contributing


How a patch becomes code

Code Standards - How to format any code that goes into the framework

Git Tips

Git - The revision control system we use



Source Code Documentation

Syntax Documentation

Build Status and Automatic Metrics

Build Status (external)

Build Status (internal)

Code Coverage

Test Timing

Moose Interfaces

Interfaces - Base-classes that allow cross-cutting data retrieval


PerfGraph - How to time sections of code in MOOSE

MooseUtils Namespace - Basic utilities used throughout the framework

Utils - Basic utilities used throughout the framework

Internal Systems

MooseVariables - The set of objects that compute and hold variable/field values

Warehouses - Objects that store all of the dynamically built MOOSE objects (Kernels, BCs, etc.)

Code Standards