MISO is a C++ library for multi-physics finite-element simulations based on LLNL's MFEM.
CMake is used to configure and build. An example config file located in the build/
directory looks like:
cmake .. \
-DADEPT_DIR="/path/to/adept/installation/" \
-DMFEM_DIR="/path/to/mfem/installation/" \
-DPUMI_DIR="/path/to/pumi/installation/" \ # if MFEM built with PUMI
Source this config file from the build directory to let CMake configure the build. If MFEM was built with MPI, CMake will find the MPI compilers on your system. If MFEM was built with PUMI, the PUMI_DIR
must be specified. You can use a front-end like ccmake
to see a full list of options.
To configure the library to build in release
mode (with optimizations turned on and warnings silenced) add -DCMAKE_BUILD_TYPE=Release
to the config file. To build in debug
mode (no optimizations, debug symbols, and warnings enabled) add -DCMAKE_BUILD_TYPE=Debug
instead.
Once configured, execute make
from the build directory to build MISO. As usual, you can also use the -j
argument to build in parallel.
If using a build system other than GNU make
, you can let CMake pick the computer's default build system with a command like cmake --build . -j 4 --target install
. This tells CMake to build
the project in the .
(build) directory, in parallel using 4 processes, with the install
target.
The test/ subdirectory has unit and regression tests. These are not included in the default make
target, but can be built and run by executing make tests
.
To run the tests with verbose output, use ctest
directly. From the build directory, run ctest --verbose
instead of make tests
to see the output from all of the individual test cases.
TODO: make make tests
an alias to ctest --verbose
to always see verbose output?
To install MISO in a specific location, add -DCMAKE_INSTALL_PREFIX="/path/to/miso/install"
to the configuration file. If not specified, the install directory will be the root directory, and the library will be installed to lib/
, and the header files will be copied to include/
. Use make install
to install the library.
TODO: Install pkg-config files so it is easier to use MISO in other CMake projects.
Use the build target doc
to build the doxygen documentaion for MISO.
TODO: make building the documentaion work
Use the build target sandbox
to build the sandbox. The executables are built in the /build/sandbox
directory, and the options files are copied over.