MAIA bb96820c
Multiphysics at AIA
Loading...
Searching...
No Matches
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