Processing math: 100%
MAIA bb96820c
Multiphysics at AIA
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Getting Started (Quickstart)

The goal of this quickstart tutorial is to get you started with m-AIA as fast as possible, so that you as a user can start applying the solver to testcases or tutorials and then to your specific problem without going into much detail about how m-AIA actually works under the hood.

Quickstart

You can quickly start installing and using m-AIA by first cloning the repository (repo) of m-AIA, second configuring m-AIA, third compiling m-AIA and fourth running your first simulation, e.g. a testcase or tutorial.

Note
As a general note for the following steps to quickstart, if you need more details about requirements, like software packages and compilers, please have a look at the installation guide.
  1. Clone the repo of m-AIA: For this step git is used.

    Open the terminal on the machine where you want to install and use m-AIA.

    If you want to isolate your m-AIA simulation project(s), create a folder (yourFolder) where you want to clone the repository (yourRepoDirectory) and change the directory to this folder:

    cd yourRepoDirectory
    mkdir yourFolder
    cd yourFolder

    Clone the m-AIA repo:

    git clone git@git.rwth-aachen.de:aia/MAIA/Solver.git

    Change the directory to the downloaded Solver folder and switch to the desired branch you want to work with:

    cd Solver
    git checkout yourBranch


  2. Configure m-AIA: For this step Python 3.X is required.

    Run the configure.py file in the top directory (Solver folder) using the default settings indicated as ? ?:

    ./configure.py ? ?

    The print message on the console should look like this:

    configure.py: current host: AIA
    configure.py: selected compiler: GNU
    configure.py: selected build type: production
    configure.py: selected parallelism type: MPI+OpenMP
    configure.py: compile with HDF5 support in BigData: enabled
    configure.py: update git submodules (skip this step with --disable-updateGitSubmodules)
    Submodule 'include/Eigen' (https://gitlab.com/libeigen/eigen.git) registered for path 'include/Eigen'
    Submodule 'include/cantera' (https://github.com/Cantera/cantera.git) registered for path 'include/cantera'
    Cloning into '... /Solver/include/Eigen'...
    Cloning into '... /Solver/include/cantera'...
    Submodule path 'include/Eigen': checked out 'cd80e04ab77bec92c63a4cce1e089262334d23a9'
    Submodule path 'include/cantera': checked out '9cee0525d26b6030cc30c469c9c75332d836eb8e'
    configure.py: configuring @maia
    configure.py: @maia is ready for make!


  3. Compile m-AIA: For this step CMake is used.

    Run the Makefile in the top directory (Solver folder) to compile m-AIA:

    make

    Tip: You can use the following command to compile m-AIA in parallel using noCores processors:

    make -j noCores

    This process can take some minutes even when using multiple cores. The print message on the console should look like this:

    Scanning dependencies of target maia
    [ 0%] Building CXX object src/CMakeFiles/maia.dir/GRID/cartesiangridgenpar_inst_2d.cpp.o
    [ 2%] Building CXX object src/CMakeFiles/maia.dir/GRID/cartesiangrid_inst_2d.cpp.o
    [ 3%] Building CXX object src/CMakeFiles/maia.dir/GRID/cartesiangridgenpar_inst_3d.cpp.o
    [ 3%] Building CXX object src/CMakeFiles/maia.dir/GRID/cartesiangrid_inst_3d.cpp.o
    [ 3%] Building CXX object src/CMakeFiles/maia.dir/GRID/cartesiangridgencell.cpp.o
    [ 4%] Building CXX object src/CMakeFiles/maia.dir/FV/fvcartesiansolverxd_inst_2d_rans_fs.cpp.o
    [ 4%] Building CXX object src/CMakeFiles/maia.dir/FV/fvcartesiansolverxd_inst_2d_rans_sa.cpp.o
    [ 4%] Building CXX object src/CMakeFiles/maia.dir/FV/fvcartesiansolverxd_inst_3d_ns.cpp.o
    [ 5%] Building CXX object src/CMakeFiles/maia.dir/FV/fvcartesiansolverxd_inst_2d_ns.cpp.o
    [ 5%] Building CXX object src/CMakeFiles/maia.dir/FV/fvcartesiansolverxd_inst_2d_detchem.cpp.o
    [ 7%] Building CXX object src/CMakeFiles/maia.dir/FV/fvcartesiansolverxd_inst_2d_rans_komega.cpp.o
    [ 7%] Building CXX object src/CMakeFiles/maia.dir/FV/fvcartesiansolverxd_inst_3d_rans_sa.cpp.o
    [ 7%] Building CXX object src/CMakeFiles/maia.dir/FV/fvcartesiansolverxd_inst_3d_rans_fs.cpp.o
    [ 8%] Building CXX object src/CMakeFiles/maia.dir/FV/fvcartesiansolverxd_inst_3d_rans_komega.cpp.o
    [ 9%] Building CXX object src/CMakeFiles/maia.dir/FV/fvcartesiansolverxd_inst_3d_eegas.cpp.o
    [ 9%] Building CXX object src/CMakeFiles/maia.dir/FV/fvcartesiansolverxd_inst_3d_detchem.cpp.o
    [ 10%] Building CXX object src/CMakeFiles/maia.dir/FV/fvcartesiansyseqnns.cpp.o
    ...
    [ 90%] Building CXX object src/CMakeFiles/maia.dir/DG/dgcartesiansolver.cpp.o
    [ 90%] Building CXX object src/CMakeFiles/maia.dir/COUPLER/couplerfvmultilevel.cpp.o
    [ 91%] Building CXX object src/CMakeFiles/maia.dir/GEOM/geometryroot.cpp.o
    [ 92%] Building CXX object src/CMakeFiles/maia.dir/FV/fvstg.cpp.o
    [ 92%] Building CXX object src/CMakeFiles/maia.dir/COUPLER/lslb.cpp.o
    [ 93%] Building CXX object src/CMakeFiles/maia.dir/COUPLER/couplerlbfv.cpp.o
    [ 93%] Building CXX object src/CMakeFiles/maia.dir/COUPLER/couplerlbfveemultiphase.cpp.o
    [ 94%] Building CXX object src/CMakeFiles/maia.dir/COUPLER/couplerlblb.cpp.o
    [ 95%] Building CXX object src/CMakeFiles/maia.dir/COUPLER/lbrb.cpp.o
    [ 95%] Building CXX object src/CMakeFiles/maia.dir/ACA/acasolver.cpp.o
    [ 96%] Building CXX object src/CMakeFiles/maia.dir/RB/rigidbodies.cpp.o
    [ 96%] Building CXX object src/CMakeFiles/maia.dir/COUPLER/lslbsurface.cpp.o
    [ 97%] Building CXX object src/CMakeFiles/maia.dir/COUPLER/lblpt.cpp.o
    [ 98%] Building CXX object src/CMakeFiles/maia.dir/COUPLER/lbdgape.cpp.o
    [ 98%] Building CXX object src/CMakeFiles/maia.dir/COUPLER/couplingdgape.cpp.o
    [ 99%] Building CXX object src/CMakeFiles/maia.dir/maia.cpp.o
    [100%] Linking CXX executable maia
    [100%] Built target maia

    As a test, if m-AIA is compiled open m-AIA's help:

    cd src
    maia -h


  4. Run your first simulation with m-AIA: For this step a testcase or tutorials can be used as your first simulation project.

    Go to your simulation project and create a link to the compiled m-AIA executable of step 3:

    cd simulationProject
    ln -s yourRepoDirectory/yourFolder/Solver/src/maia maia

    As a test, check if the link is successfully created by opening m-AIA's help:

    ll
    maia -h

    Run the simulation:

    maia properties.toml

    By utilizing OpenMPI you can run the simulation in parallel using noCores processors:

    mpirun -np noCores maia properties.toml


Note
For further information how to use certain solver parts of m-AIA and performing your first pre- and postprocessing, please refer to the tutorials.

m-AIA testcases

Test cases need reference data, which are relatively large compared to the source code. Therefore, we do not keep the test cases in the git for m-AIA. Consequently, testcases only are available only upon request or for AIA users at the moment.

m-AIA tools

Get m-AIA tools useful for preprocessing and postprocessing: https://git.rwth-aachen.de/aia/MAIA/tools

List of abbreviations

Todo:
Maybe we should add a glossary of common abbreviations as a separate page that is automatically updated.
  • NSE = Navier-Stokes equations
  • PDE = Partial Differential Equation(s)
  • ODE = Ordinary Differential Equation(s)
  • CFD = Computational Fluid Dynamics
  • IC = Initial Condition
  • BC = Boundary Condition(s)
  • DNS = Direct Numerical Simulation
  • LES = Large Eddy Simulation
  • RANS = Reynolds averaged Navier-Stokes simulation
  • LBM = Lattice Boltzmann Method
  • BL = boundary layer
  • BLT = boundary layer thickness
  • TBL = turbulent boundary layer
  • d0 = boundary layer thickness \delta_{99} , wall normal distance with 99% flow velocity of the far field velocity
  • d1 = displacement thickness \delta_1
  • d2 = momentum thickness \delta_2 = \Theta
    • Tip: d0 \geq d1 \geq d2
  • RST = Reynolds Shear stress Tensor

Overview of m-AIA

The following graphic has to be updated: unstructured vs. structured

  • DG = Discontinuous Galerkin
  • FV = Finite Volume
  • LB = Lattice Boltzmann