Framework Development

The articles attached to this page are useful if you intend on contributing to the MOOSE repository. 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

Contributing

Reviewing

How a patch becomes code

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

Git - The revision control system we use

Development Tools - Tools that can be helpful for development, like IDEs with MOOSE support

Documentation

MOOSE Doxygen

Modules Doxygen

libMesh Doxygen

TIMPI Doxygen

Source Code Documentation

Syntax Documentation

Build Status and Automatic Metrics

Build Status (external)

Build Status (internal)

Code Coverage

Test Timing

Software Quality Assurance Documents

MOOSE Software Quality - Landing page for the MOOSE (and MOOSE Modules) software quality assurance (SQA) pages

Utilities

PerfGraph - How to time sections of code in MOOSE

MooseUtils Namespace - Basic utilities used throughout the framework

Utils - Basic utilities used throughout the framework

System Integrity Checking - Parsing and system integrity checks

MOOSE Internal Systems

Actions - Objects used to execute various tasks

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

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.)

Tagging

RelationshipManagers - Telling MOOSE about extra geometric or algebraic information needed in parallel

Build System

Working with MOOSE build system

Third Party Libraries

Third Party Library List