diff --git a/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/AMRSedimentSettling.cpp b/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/AMRSedimentSettling.cpp
index 73e19a030e91a85a4dda5549d9a19c8078674886..2b7cdc8a7f397f91def27220f188039dec07666c 100644
--- a/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/AMRSedimentSettling.cpp
+++ b/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/AMRSedimentSettling.cpp
@@ -1452,7 +1452,7 @@ int main( int argc, char **argv )
 
          WALBERLA_LOG_INFO_ON_ROOT("Refreshing blockforest...")
 
-         // check refinement criterions and refine/coarsen if necessary
+         // check refinement criteria and refine/coarsen if necessary
          uint_t stampBefore = blocks->getBlockForest().getModificationStamp();
          blocks->refresh();
          uint_t stampAfter = blocks->getBlockForest().getModificationStamp();
@@ -2090,7 +2090,7 @@ int main( int argc, char **argv )
 
             WALBERLA_LOG_INFO_ON_ROOT("Refreshing blockforest...")
 
-            // check refinement criterions and refine/coarsen if necessary
+            // check refinement criteria and refine/coarsen if necessary
             uint_t stampBefore = blocks->getBlockForest().getModificationStamp();
             blocks->refresh();
             uint_t stampAfter = blocks->getBlockForest().getModificationStamp();
diff --git a/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/AMRSettlingSphere.cpp b/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/AMRSettlingSphere.cpp
index c13a7c93db4905f2f50342a79667613ec748771b..d803a2f8579728b248892c7474f31fa43476bac1 100644
--- a/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/AMRSettlingSphere.cpp
+++ b/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/AMRSettlingSphere.cpp
@@ -929,7 +929,7 @@ int main( int argc, char **argv )
 
    if( !useStaticRefinement && refinementCheckFrequency == 0 && numberOfLevels != 1 )
    {
-      // determine check frequency automatically based on maximum admissable velocity and block sizes
+      // determine check frequency automatically based on maximum admissible velocity and block sizes
       real_t uMax = real_t(0.1);
       real_t refinementCheckFrequencyFinestLevel = ( overlap + real_c(blockSize) - real_t(2) * real_t(FieldGhostLayers) * dx) / uMax;
       refinementCheckFrequency = uint_c( refinementCheckFrequencyFinestLevel / real_t(lbmTimeStepsPerTimeLoopIteration));
@@ -1252,7 +1252,7 @@ int main( int argc, char **argv )
             (*velocityCommunicationScheme)();
          }
 
-         // check refinement criterions and refine/coarsen if necessary
+         // check refinement criteria and refine/coarsen if necessary
          uint_t stampBefore = blocks->getBlockForest().getModificationStamp();
          blocks->refresh();
          uint_t stampAfter = blocks->getBlockForest().getModificationStamp();
diff --git a/apps/benchmarks/CNT/FilmSpecimenGenerator.py b/apps/benchmarks/CNT/FilmSpecimenGenerator.py
index 4b91cd1f3a7c3b930285e7ca16c3c1d3dd174238..9bb4c35c6cda370ffb8c2d06d228b2448bde1213 100644
--- a/apps/benchmarks/CNT/FilmSpecimenGenerator.py
+++ b/apps/benchmarks/CNT/FilmSpecimenGenerator.py
@@ -6,7 +6,7 @@ import os
 
 class Parameter:
     def __init__(self, name, type, defValue="", comment=""):
-        """Propery of a data strcuture
+        """Property of a data structure
 
         Parameters
         ----------
diff --git a/apps/benchmarks/FluidParticleCoupling/SphereMovingWithPrescribedVelocity.cpp b/apps/benchmarks/FluidParticleCoupling/SphereMovingWithPrescribedVelocity.cpp
index 0b9e6ec68b214d220b93ba75c56be6c8e35af7ed..f7cb9670207a31bc052c0036d8b8aa037a64bb13 100644
--- a/apps/benchmarks/FluidParticleCoupling/SphereMovingWithPrescribedVelocity.cpp
+++ b/apps/benchmarks/FluidParticleCoupling/SphereMovingWithPrescribedVelocity.cpp
@@ -878,7 +878,7 @@ int main( int argc, char **argv )
       real_t defaultOmegaBulk = lbm_mesapd_coupling::omegaBulkFromOmega(omega, real_t(1));
       shared_ptr<OmegaBulkAdapter_T> omegaBulkAdapter = make_shared<OmegaBulkAdapter_T>(blocks, omegaBulkFieldID, accessor, defaultOmegaBulk, omegaBulk, adaptionLayerSize, sphereSelector);
       timeloopAfterParticles.add() << Sweep( makeSharedSweep(omegaBulkAdapter), "Omega Bulk Adapter");
-      // initally adapt
+      // initially adapt
       for (auto blockIt = blocks->begin(); blockIt != blocks->end(); ++blockIt) {
          (*omegaBulkAdapter)(blockIt.get());
       }
diff --git a/apps/benchmarks/FluidParticleCouplingWithLoadBalancing/FluidParticleWorkloadDistribution.cpp b/apps/benchmarks/FluidParticleCouplingWithLoadBalancing/FluidParticleWorkloadDistribution.cpp
index 78a8570bcc36678bf30654eb32ac829c3b6469fe..943d6ee9d1db24faf6403ba47c24a69956692a8e 100644
--- a/apps/benchmarks/FluidParticleCouplingWithLoadBalancing/FluidParticleWorkloadDistribution.cpp
+++ b/apps/benchmarks/FluidParticleCouplingWithLoadBalancing/FluidParticleWorkloadDistribution.cpp
@@ -843,7 +843,7 @@ int main( int argc, char **argv )
    auto sphereShape = ss->create<mesa_pd::data::Sphere>( diameter * real_t(0.5) );
    ss->shapes[sphereShape]->updateMassAndInertia(densityRatio);
 
-   std::mt19937 randomGenerator (static_cast<unsigned int>(2610)); // fixed seed: quasi-random and reproducable
+   std::mt19937 randomGenerator (static_cast<unsigned int>(2610)); // fixed seed: quasi-random and reproducible
 
    for( uint_t nSed = 0; nSed < numberOfSediments; ++nSed )
    {
@@ -962,7 +962,7 @@ int main( int argc, char **argv )
 
       if(currentPhase == 1)
       {
-         // damp velocites to avoid too large ones
+         // damp velocities to avoid too large ones
          ps->forEachParticle( useOpenMP, mesa_pd::kernel::SelectLocal(), *accessor,
                               [](const size_t idx, ParticleAccessor_T& ac){
                                  ac.setLinearVelocity(idx, ac.getLinearVelocity(idx) * real_t(0.5));
diff --git a/apps/benchmarks/FluidParticleCouplingWithLoadBalancing/FluidParticleWorkloadEvaluation.cpp b/apps/benchmarks/FluidParticleCouplingWithLoadBalancing/FluidParticleWorkloadEvaluation.cpp
index a78736fff7996ee079d6bc2534a0e6bd2722347f..423af69ce7fdbca2aef2bc7f9e5663ef2051901e 100644
--- a/apps/benchmarks/FluidParticleCouplingWithLoadBalancing/FluidParticleWorkloadEvaluation.cpp
+++ b/apps/benchmarks/FluidParticleCouplingWithLoadBalancing/FluidParticleWorkloadEvaluation.cpp
@@ -573,7 +573,7 @@ int main( int argc, char **argv )
 
       if(maxPenetrationDepth < overlapLimit) break;
 
-      // reset velocites to avoid too large ones
+      // reset velocities to avoid too large ones
 
       ps->forEachParticle( useOpenMP, mesa_pd::kernel::SelectLocal(), *accessor,
             [](const size_t idx, ParticleAccessor_T& ac){
diff --git a/apps/benchmarks/GranularGas/ConfigGenerator.py b/apps/benchmarks/GranularGas/ConfigGenerator.py
index 6d84f643439e4efacf50bc4d5a19ab2b12939149..344ef90b61f24ac1d8a8ed24bc9999c3d4e70ca4 100644
--- a/apps/benchmarks/GranularGas/ConfigGenerator.py
+++ b/apps/benchmarks/GranularGas/ConfigGenerator.py
@@ -6,7 +6,7 @@ import os
 
 class Parameter:
     def __init__(self, name, type, defValue=""):
-        """Propery of a data strcuture
+        """Property of a data structure
 
         Parameters
         ----------
diff --git a/apps/benchmarks/SchaeferTurek/SchaeferTurek.cpp b/apps/benchmarks/SchaeferTurek/SchaeferTurek.cpp
index cdbd64fbe079aea41ae4a75927230b77324431c0..c5ffadeb9fe3cd9e4d2ab14da1fe2abc34521ac7 100644
--- a/apps/benchmarks/SchaeferTurek/SchaeferTurek.cpp
+++ b/apps/benchmarks/SchaeferTurek/SchaeferTurek.cpp
@@ -1064,7 +1064,7 @@ void keepInflowOutflowAtTheSameLevel( std::vector< std::pair< const Block *, uin
    uint_t maxInflowLevel( uint_t(0) );
    uint_t maxOutflowLevel( uint_t(0) );
 
-   // In addtion to keeping in- and outflow blocks at the same level, this callback also
+   // In addition to keeping in- and outflow blocks at the same level, this callback also
    // prevents these blocks from coarsening.
 
    for( auto it = minTargetLevels.begin(); it != minTargetLevels.end(); ++it )
@@ -1472,7 +1472,7 @@ void Evaluation< LatticeModel_T >::operator()()
       {
          WALBERLA_LOG_RESULT_ON_ROOT( "force acting on cylinder (in dimensionless lattice units of the coarsest grid - evaluated in time step "
                                       << forceEvaluationExecutionCount_ << "):\n   " << force_ << oss.str() <<
-                                      "\ndrag and lift coefficients (including extremas of last " << ( coefficients_[0].size() * checkFrequency_ ) << " time steps):"
+                                      "\ndrag and lift coefficients (including extrema of last " << ( coefficients_[0].size() * checkFrequency_ ) << " time steps):"
                                       "\n   \"real\" area:"
                                       "\n      c_D: " << cDRealArea << " (min = " << coefficientExtremas_[0].first << ", max = " << coefficientExtremas_[0].second << ")" <<
                                       "\n      c_L: " << cLRealArea << " (min = " << coefficientExtremas_[1].first << ", max = " << coefficientExtremas_[1].second << ")" <<
@@ -2569,14 +2569,14 @@ void run( const shared_ptr< Config > & config, const LatticeModel_T & latticeMod
                      blockforest::DynamicDiffusionBalance< blockforest::NoPhantomData >( maxIterations, flowIterations ) );
       }
 
-      // add callback functions which are executed after all block data was unpakced after the dynamic load balancing
+      // add callback functions which are executed after all block data was unpacked after the dynamic load balancing
 
       // for blocks that have *not* migrated: store current flag field state (required for lbm::PostProcessing)
       blockforest.addRefreshCallbackFunctionAfterBlockDataIsUnpacked( lbm::MarkerFieldGenerator< LatticeModel_T, field::FlagFieldEvaluationFilter<FlagField_T> >(
                pdfFieldId, markerDataId, flagFieldFilter ) );
       // (re)set boundaries = (re)initialize flag field for every block with respect to the new block structure (the size of neighbor blocks might have changed)
       blockforest.addRefreshCallbackFunctionAfterBlockDataIsUnpacked( blockforest::BlockForest::RefreshCallbackWrappper( boundarySetter ) );
-      // treat boundary-fluid cell convertions
+      // treat boundary-fluid cell conversions
       blockforest.addRefreshCallbackFunctionAfterBlockDataIsUnpacked( lbm::PostProcessing< LatticeModel_T, field::FlagFieldEvaluationFilter<FlagField_T> >(
                pdfFieldId, markerDataId, flagFieldFilter ) );
       // (re)set velocity field (velocity field data is not migrated!)
@@ -2920,10 +2920,10 @@ int main( int argc, char **argv )
                               "//                                                                                                                      //\n"
                               "//                                               Schaefer Turek Benchmark                                               //\n"
                               "//                                                                                                                      //\n"
-                              "// Reference: Schaefer, M. and Turek, S. (1996) 'Benchmark computations of laminar flow around a cylinder (with support //\n"
+                              "// Reference: Schaefer, M. and Turek, S. (1996) Benchmark computations of laminar flow around a cylinder (with support  //\n"
                               "//            by F. Durst, E. Krause and R. Rannacher), in E. Hirschel (Ed.): Flow Simulation with High-Performance     //\n"
-                              "//            Computers II. DFG Priority Research Program Results 1993-1995, No. 52 in Notes Numer, Fluid Mech.,        //\n"
-                              "//            pp.547-566, Vieweg, Weisbaden.                                                                            //\n"
+                              "//            Computers II. DFG Priority Research Program Results 1993-1995, No. 48 in Notes on Numerical Fluid         //\n"
+                              "//            Mechanics, pp.547-566, Vieweg, Weisbaden.                                                                 //\n"
                               "//                                                                                                                      //\n"
                               "//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" );
 
diff --git a/apps/showcases/CombinedResolvedUnresolved/CombinedResolvedUnresolved.cpp b/apps/showcases/CombinedResolvedUnresolved/CombinedResolvedUnresolved.cpp
index 5e1074ad008cd0a14f82fd6d3defd133063d4456..026171328e9f7141679421e05c05b43e7556d2ac 100644
--- a/apps/showcases/CombinedResolvedUnresolved/CombinedResolvedUnresolved.cpp
+++ b/apps/showcases/CombinedResolvedUnresolved/CombinedResolvedUnresolved.cpp
@@ -295,7 +295,7 @@ class DummySweep
 void emptyFunction() {}
 
 //*******************************************************************************************************************
-/*!\brief Simualtion of a strongly heterogeneous sized particulate flow system using combined resolved and unresolved
+/*!\brief Simulation of a strongly heterogeneous sized particulate flow system using combined resolved and unresolved
  * methods.
  *
  * For the coupling of resolved particles the Momentum Exchange Method (MEM) is used, whereas for the
diff --git a/apps/showcases/LightRisingParticleInFluidAMR/LightRisingParticleInFluidAMR.cpp b/apps/showcases/LightRisingParticleInFluidAMR/LightRisingParticleInFluidAMR.cpp
index 6dcafd5527495f669b46ab94c2f208bd7e0d2f20..f15b333c99f0c4b0513c369c4ce0c3e95288b865 100644
--- a/apps/showcases/LightRisingParticleInFluidAMR/LightRisingParticleInFluidAMR.cpp
+++ b/apps/showcases/LightRisingParticleInFluidAMR/LightRisingParticleInFluidAMR.cpp
@@ -599,7 +599,7 @@ int main(int argc, char** argv) {
    WALBERLA_CHECK(!(useCurlCriterion && useVorticityCriterion),
          "Using curl and vorticity criterion together makes no sense.");
 
-   // create base dir if it doesnt already exist
+   // create base dir if it doesn't already exist
    filesystem::path bpath(baseFolder);
    if (!filesystem::exists(bpath)) {
       filesystem::create_directory(bpath);
diff --git a/apps/tutorials/basics/02_Sweeps.dox b/apps/tutorials/basics/02_Sweeps.dox
index 2080d217ae9fdae45486c8cde417c5db90c92f80..138ed0e448aa00434e3e70dfd3febcb7ac5c0724 100644
--- a/apps/tutorials/basics/02_Sweeps.dox
+++ b/apps/tutorials/basics/02_Sweeps.dox
@@ -236,7 +236,7 @@ There is a third sweep concept called "Sweep on Block" where the members of the
 are in fact block local data.\n
 This is described in more detail here: \ref sweepTimeloop_onBlock
 
-The next tutorial covers writing a real algorithm, which also requires communication among blocks: \ref tutorial03
+The next tutorial covers writing a real algorithm, which also requires communication among blocks: \ref tutorial_basics_03
 
 \tableofcontents
 
diff --git a/apps/tutorials/codegen/01_CodegenHeatEquation.dox b/apps/tutorials/codegen/01_CodegenHeatEquation.dox
index 14fc2fa6e0ae7c0db6f57a8cd8a8fcb4c37dd5bc..ad521e0668e40d438fb7d21723be84bdf26a733e 100644
--- a/apps/tutorials/codegen/01_CodegenHeatEquation.dox
+++ b/apps/tutorials/codegen/01_CodegenHeatEquation.dox
@@ -22,7 +22,7 @@ For interactive devolvement, the next section can be written in a <a target="_bl
 
 First, we introduce the variables contained in the PDE and its discretization as symbols. For the two-grid algorithm, we require one source field `u` and one destination field `u_tmp`.  Both are set as generic 2-dimensional fields. We explicitly set their memory layout to `fzyx`. Both waLBerla and pystencils support two kinds of memory layouts. The short `fzyx` lists the four domain dimensions (three spatial, one for values per cell) in the order of arrangement in memory. `fzyx` describes a Struct of Arrays (SOA) layout where the domain is split along `f` and then linearized. When iterating, the outermost loop runs over `f`, and the innermost loop runs over `x`. The alternative is an %Array of Structs layout (AOS) which is designated `zyxf`, iterating over `f` in the innermost loop. In our case, where we only have one value per cell, it does not matter which layout is selected. In contrast, for simulating an Advection-Diffusion-Process with multiple, independent particle distributions, `fzyx` performs better in most cases as it improves data locality and enables vectorization (SIMD, SIMT). For more information on SOA and AOS, consider <a target="_blank" href="https://software.intel.com/content/www/us/en/develop/articles/memory-layout-transformations.html">this</a> article.
 
-\code
+\code{.py}
 u, u_tmp = ps.fields("u, u_tmp: [2D]", layout='fzyx')
 kappa = sp.Symbol("kappa")
 dx = sp.Symbol("dx")
@@ -31,7 +31,7 @@ dt = sp.Symbol("dt")
 
 With the pystencils buildings blocks, we can directly define the time and spatial derivative of the PDE.
 
-\code
+\code{.py}
 heat_pde = ps.fd.transient(u) - kappa * ( ps.fd.diff( u, 0, 0 ) + ps.fd.diff( u, 1, 1 ) )
 \endcode
 
@@ -42,7 +42,7 @@ Printing `heat_pde` inside a Jupyter notebook shows the equation as:
 
 Next, the PDE will be discretized. We use the `Discretization2ndOrder` class to apply finite differences discretization to the spatial components, and explicit Euler discretization for the time step.
 
-\code
+\code{.py}
 discretize = ps.fd.Discretization2ndOrder(dx=dx, dt=dt)
 heat_pde_discretized = discretize(heat_pde)
 \endcode
@@ -55,7 +55,7 @@ Printing `heat_pde_discretized` reveals
 
 This equation can be simplified by combining the two fractions on the right-hand side. Furthermore, we would like to pre-calculate the division outside the loop of the compute kernel. To achieve this, we will first apply the simplification functionality of sympy, and then replace the division by introducing a subexpression.
 
-\code
+\code{.py}
 heat_pde_discretized = heat_pde_discretized.args[1] + heat_pde_discretized.args[0].simplify()
 
 @ps.kernel
@@ -85,7 +85,7 @@ We will now use the waLBerla build system to generate a sweep from this symbolic
 
 We create a python file called *HeatEquationKernel.py* in our application folder. This file contains the python code we have developed above. Additionally, to `sympy` and `pystencils`, we add the import directive `from pystencils_walberla import CodeGeneration, generate_sweep`. At the end of the file, we add these two lines:
 
-\code
+\code{.py}
 with CodeGeneration() as ctx:
     generate_sweep(ctx, 'HeatEquationKernel', ac)
 \endcode
@@ -94,7 +94,7 @@ The `CodeGeneration` context and the function `generate_sweep` are provided by w
 
 The code generation script will later be called by the build system while compiling the application. The complete script looks like this:
 
-\code
+\code{.py}
 import sympy as sp
 import pystencils as ps
 from pystencils_walberla import CodeGeneration, generate_sweep
@@ -124,7 +124,7 @@ with CodeGeneration() as ctx:
 \endcode
 
 As a next step, we register the script with the CMake build system. Outside of our application folder, open *CMakeLists.txt* and add these lines (replace `codegen` by the name of your folder):
-\code
+\code{.unparsed}
 if( WALBERLA_BUILD_WITH_CODEGEN )
     add_subdirectory(codegen)
 endif()
@@ -132,7 +132,7 @@ endif()
 
 The `if` block makes sure our application is only built if the CMake flag `WALBERLA_BUILD_WITH_CODEGEN` is set. In the application folder, create another *CMakeLists.txt* file. For registering a code generation target, the build system provides the `walberla_generate_target_from_python` macro. Apart from the target name, we need to pass it the name of our python script and the names of the generated C++ header and source files. Their names need to match the class name passed to `generate_sweep` in the script. Add the following lines to your *CMakeLists.txt*.
 
-\code
+\code{.unparsed}
 if( WALBERLA_BUILD_WITH_CODEGEN )
     walberla_generate_target_from_python( NAME CodegenHeatEquationKernel
         FILE HeatEquationKernel.py
@@ -148,7 +148,7 @@ When running `make` again at a later time, the code will only be regenerated if
 
 Finally, we can use the generated sweep in an actual waLBerla application. In the application folder, create the source file *01_CodegenHeatEquation.cpp*. Open *CMakeLists.txt* and register the source file as an executable using the macro `walberla_add_executable`. Add all required waLBerla modules as dependencies, as well as the generated target.
 
-\code
+\code{.unparsed}
 walberla_add_executable (   NAME 01_CodegenHeatEquation
                             FILES 01_CodegenHeatEquation.cpp
                             DEPENDS blockforest core field stencil timeloop vtk pde CodegenHeatEquationKernel )
diff --git a/apps/tutorials/codegen/02_LBMLatticeModelGeneration.dox b/apps/tutorials/codegen/02_LBMLatticeModelGeneration.dox
index 51e697cd20af8d49ca7a557cd8ee8df14a44f977..95f27cda46a056e83e80f20b03a86190998fd24c 100644
--- a/apps/tutorials/codegen/02_LBMLatticeModelGeneration.dox
+++ b/apps/tutorials/codegen/02_LBMLatticeModelGeneration.dox
@@ -22,7 +22,7 @@ In the code generation python script, we first require a few imports from lbmpy
 
 From the `lbmpy.creationfunctions` we require the functions to create collision and update rules. For the actual code generation, `generate_lattice_model` from `lbmpy_walberla` is required. Since we will define symbols, `SymPy` is also needed.
 
-\code
+\code{.py}
 import sympy as sp
 
 from lbmpy.creationfunctions import create_lb_collision_rule, create_lb_update_rule
@@ -32,7 +32,7 @@ from lbmpy_walberla import generate_lattice_model
 \endcode
 
 First, we define a few general parameters. These include the stencil (D2Q9) and the memory layout (`fzyx`, see \ref tutorial_codegen01 ). We define a SymPy symbol for the relaxation rate \f$ \omega \f$. This means we can later set it to a specific value from the waLBerla code. A dictionary with optimization parameters is also set up. Here, we enable global common subexpression elimination (`cse_global`) and set the PDF field's memory layout.
-\code
+\code{.py}
 stencil = 'D2Q9'
 omega = sp.Symbol('omega')
 layout = 'fzyx'
@@ -45,7 +45,7 @@ Next, we set the parameters for the SRT method in a dictionary and create both t
 
 The update rule is still needed in the code generation process; namely for the pack info generation. The collision step only acts within one cell. Thus, the collision rule's equations contain no neighbour accesses. Calling `create_lb_update_rule` inserts the two-fields pull scheme as `generate_lattice_model`, and resulting update rule contains exactly those neighbour accesses which are required for `generate_pack_info_from_kernel` to build the optimized pack info.
 
-\code
+\code{.py}
 srt_params = {'stencil': stencil,
               'method': 'srt',
               'relaxation_rate': omega}
@@ -56,7 +56,7 @@ srt_update_rule = create_lb_update_rule(collision_rule=srt_collision_rule, optim
 
 Finally, we create the code generation context and call the respective functions for generating the lattice model and the pack info. Both require the context and a class name as parameters. To  `generate_lattice_model`, we also pass the collision rule and the field layout; `generate_pack_info_from_kernel` receives the update rule.
 
-\code
+\code{.py}
 with CodeGeneration() as ctx:
     generate_lattice_model(ctx, "SRTLatticeModel", srt_collision_rule, field_layout=layout)
     generate_pack_info_from_kernel(ctx, "SRTPackInfo", srt_update_rule)
@@ -68,7 +68,7 @@ Furthermore, if we optimise the waLBerla for the machine, it is compiled on with
 
 As a final touch, we still need to set up the CMake build target for the code generation script. This time, two distinct classes (the lattice model and the pack information) will be generated. Therefore, we need to list the header and source file names for both classes separately.
 
-\code
+\code{.unparsed}
 walberla_generate_target_from_python( NAME 02_LBMLatticeModelGenerationPython
                                       FILE 02_LBMLatticeModelGeneration.py
                                       OUT_FILES SRTLatticeModel.cpp SRTLatticeModel.h
diff --git a/apps/tutorials/codegen/03_AdvancedLBMCodegen.dox b/apps/tutorials/codegen/03_AdvancedLBMCodegen.dox
index 9eae32554b8a306b8e5a1defdff4b95c0e363fa0..f5a74030f87f38d6368ffbe48cf891ad04cb9385 100644
--- a/apps/tutorials/codegen/03_AdvancedLBMCodegen.dox
+++ b/apps/tutorials/codegen/03_AdvancedLBMCodegen.dox
@@ -3,7 +3,7 @@ namespace walberla{
 /**
 \page tutorial_codegen03 Tutorial - Code Generation 3: Advanced LBM Code Generation
 
-\section overview Overview
+\section advancedlbmcodegen_overview Overview
 
 This tutorial demonstrates how to use [pystencils](https://pycodegen.pages.i10git.cs.fau.de/pystencils) and [lbmpy](https://pycodegen.pages.i10git.cs.fau.de/lbmpy) to generate highly optimised and hardware-specific Lattice Boltzmann simulation code within the waLBerla framework. Other than in \ref tutorial_codegen02, we will be generating a full LBM sweep instead of a lattice model class. Furthermore, we will generate a communication pack info class and a sweep to initialise the PDF field. A hardware-specific implementation of a NoSlip boundary handler will also be generated. Those components will then be combined in a waLBerla application for simulating the same shear flow scenario as in the previous tutorial.
 
@@ -19,7 +19,7 @@ For the stream-pull-collide type kernel, we need two PDF fields which we set up
 
 For VTK output and the initial velocity setup, we define a velocity vector field as an output field for the LB method.
 
-\code
+\code{.py}
 stencil = 'D2Q9'
 omega = sp.Symbol('omega')
 layout = 'fzyx'
@@ -40,7 +40,7 @@ optimization = {'cse_global': True,
 
 We set up the cumulant-based MRT method with relaxation rates as described above. We use `generate_lb_update_rule` from lbmpy to derive the set of equations describing the collision operator together with the *pull* streaming pattern. These equations define the entire LBM sweep.
 
-\code
+\code{.py}
 lbm_params = {'stencil': stencil,
               'method': 'mrt_raw',
               'relaxation_rates': [0, 0, 0, omega, omega, omega, 1, 1, 1],
@@ -56,7 +56,7 @@ lbm_method = lbm_update_rule.method
 
 In \ref tutorial_codegen02, we were able to use the framework built around the waLBerla lattice model template API for setting up the shear flow's initial velocity profile. Since we are not using a lattice model class this time, this API is not available to us. With lbmpy, though, we can generate a kernel which takes in scalar values or fields for the initial density and velocity and sets the initial PDF values to the corresponding equilibrium. The function `macroscopic_values_setter` from `lbmpy.macroscopic_value_kernels` returns a set of assignments for this initialization procedure. It takes the LB method definition as an argument, as well as either symbols or pystencils field accesses for the initial density `rho` and the initial velocity. Lastly, it takes the PDF field's centre vector as the destination for the PDF values. We define a separate symbol for the density and use the velocity field defined above.
 
-\code
+\code{.py}
 initial_rho = sp.Symbol('rho_0')
 
 pdfs_setter = macroscopic_values_setter(lbm_method,
@@ -74,7 +74,7 @@ Several functions from `pystencils_walberla` and `lbmpy_walberla` are called to
 - The PDF initialization kernel is generated from the `pdfs_setter` assignment collection using `generate_sweep`.
 - Using `generate_boundary`, we generate an optimised implementation of a NoSlip boundary handler for the domain's walls.
 
-\code
+\code{.py}
 with CodeGeneration() as ctx:
     if ctx.cuda:
         target = 'gpu'
@@ -104,7 +104,7 @@ We will now integrate the generated classes into a waLBerla application. After a
 #include "CumulantMRTNoSlip.h"
 #include "CumulantMRTPackInfo.h"
 #include "CumulantMRTSweep.h"
-#include "DensityAndVelocityFieldSetter.h"
+#include "InitialPDFsSetter.h"
 \endcode
 
 We set up typedef aliases for the generated pack info and the D2Q9 stencil. For the PDF and velocity fields, we use instances of the field::GhostLayerField template. The number of entries of the PDF field is specified by the `Stencil_T::Size` parameter. As our domain is two-dimensional, the velocity at each lattice node is a two-dimensional vector. Thus, we set up the velocity field to have two index dimensions passing the stencil's dimension as a template parameter. Finally, we also define a typedef alias for our generated NoSlip boundary.
diff --git a/apps/tutorials/codegen/Heat Equation Kernel.ipynb b/apps/tutorials/codegen/Heat Equation Kernel.ipynb
index 486e7c24830389813ebad8571ea48f6fef1e85fc..e5ccffbb761fc98c722e28d2fdc81ba6b2e82641 100644
--- a/apps/tutorials/codegen/Heat Equation Kernel.ipynb	
+++ b/apps/tutorials/codegen/Heat Equation Kernel.ipynb	
@@ -206,7 +206,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "Our numeric solver's symbolic representation is now complete! Next, we use pystencils to generate and compile a C implementation of our kernel. The code is generated as shown below, compiled into a shared libary and then bound to `kernel_func`. All unbound sympy symbols (`dx`, `dt` and `kappa`) as well as the fields `u` and `u_tmp` are arguments to the generated kernel function. "
+    "Our numeric solver's symbolic representation is now complete! Next, we use pystencils to generate and compile a C implementation of our kernel. The code is generated as shown below, compiled into a shared library and then bound to `kernel_func`. All unbound sympy symbols (`dx`, `dt` and `kappa`) as well as the fields `u` and `u_tmp` are arguments to the generated kernel function. "
    ]
   },
   {
@@ -355,7 +355,7 @@
    "source": [
     "### Prototype Simulation\n",
     "\n",
-    "We can set up and run a simple simulation wich the generated kernel right here. The first step is to set up the fields and simulation parameters."
+    "We can set up and run a simple simulation with the generated kernel right here. The first step is to set up the fields and simulation parameters."
    ]
   },
   {
diff --git a/apps/tutorials/cuda/01_GameOfLife_cuda.dox b/apps/tutorials/cuda/01_GameOfLife_cuda.dox
index 4e654d4c09e7fbb1f8b38f63662e02ad360e2ae2..7bbb50fe412080853588d0b1e0be0c8ed1a5e9a5 100644
--- a/apps/tutorials/cuda/01_GameOfLife_cuda.dox
+++ b/apps/tutorials/cuda/01_GameOfLife_cuda.dox
@@ -130,7 +130,7 @@ CommScheme communication( blocks );
 communication.addDataToCommunicate( make_shared<field::communication::UniformMPIDatatypeInfo<GPUField> > (gpuFieldSrcID) );
 \endcode
 
-This scheme also supports heterogenous simulations, i.e. using a CPU field on
+This scheme also supports heterogeneous simulations, i.e. using a CPU field on
 some processes and a GPU field on other processes.
 
 */
diff --git a/apps/tutorials/lbm/01_BasicLBM.dox b/apps/tutorials/lbm/01_BasicLBM.dox
index c18192170515f34ba7ea9591118d4cd048b244ea..733b6e51f4ae2d2e190b90cff68d2f257737f907 100644
--- a/apps/tutorials/lbm/01_BasicLBM.dox
+++ b/apps/tutorials/lbm/01_BasicLBM.dox
@@ -5,7 +5,7 @@ namespace walberla {
 
 \brief A configurable application for simple LBM simulations
 
-\section tutorial04_overview Overview
+\section tutorial01_overview Overview
 
 In this tutorial, we finally built a fully functional lattice Boltzmann application with the following features:
 
@@ -19,7 +19,7 @@ there is not much code that we actually have to implement ourselves.
 
 \image html tutorial_lbm01_channel.png "airfoil (loaded from a grayscale image) in a 2D channel"
 
-\section tutorial04_paramfile Parameter File
+\section tutorial01_paramfile Parameter File
 
 This application will be fully configurable by a parameter file so that no recompilation is necessary if 
 some parameters or the geometry has to be changed.
@@ -69,9 +69,9 @@ auto blocks = blockforest::createUniformBlockGridFromConfig( walberlaEnv.config(
 This function assumes that a "DomainSetup" block exists. For a detailed description of possible configuration parameters,
 see blockforest::createUniformBlockGridFromConfig().
 
-\section tutorial04_lbmdatastructures Lattice Boltzmann Data Structures
+\section tutorial01_lbmdatastructures Lattice Boltzmann Data Structures
 
-\subsection tutorial04_latticemodel Lattice Model
+\subsection tutorial01_latticemodel Lattice Model
 
 \code
 typedef lbm::D2Q9< lbm::collision_model::SRT >  LatticeModel_T;
@@ -90,12 +90,12 @@ A lattice model defines the basic ingredients needed for an LBM simulation:
 - **collision model**: The first template parameter for a lattice model is a collision model.
   The collision or relaxation model defines which method to use in the collide step. Here, we use the single relaxation time
   model (SRT) also called BGK model: lbm::collision_model::SRT. For other options, see the file lbm/lattice_model/CollisionModel.h
-- There are further template parameters specifing compressibility, force model, etc.
+- There are further template parameters specifying compressibility, force model, etc.
   These arguments have default parameters which we use here.
 
 For a more detailed description of lattice models, see lbm::LatticeModelBase
 
-\subsection tutorial04_fields Fields
+\subsection tutorial01_fields Fields
 
 \code
 typedef lbm::PdfField< LatticeModel_T >  PdfField_T;
@@ -129,7 +129,7 @@ BlockDataID  pdfFieldId = lbm::addPdfFieldToStorage( blocks, "pdf field", lattic
 BlockDataID flagFieldId = field::addFlagFieldToStorage< FlagField_T >( blocks, "flag field" );
 \endcode
 
-\subsection tutorial04_boundary Boundary Handling
+\subsection tutorial01_boundary Boundary Handling
 
 waLBerla comes with a set of lattice Boltzmann boundary conditions. They can be found in folder
 lbm/boundary. All implement a common concept.
@@ -151,7 +151,7 @@ boundary::BoundaryHandling. Otherwise the `near boundary` and `domain` flags are
 
 The boundary handling is a heavily templated part of waLBerla since it contains performance critical code
 and at the same time has to be very flexible, i.e., it should be easy to write new boundary conditions.
-By using template concepts (compile-time polymorphism) instead of inheritence (runtime polymorphism) the compiler is able to
+By using template concepts (compile-time polymorphism) instead of inheritance (runtime polymorphism) the compiler is able to
 resolve all function calls at compile time and can do optimizations like function inlining.
 To make setting up a boundary handling easier, a convenience factory class lbm::DefaultBoundaryHandlingFactory exists
 that creates a boundary::BoundaryHandling with six often used boundary conditions. Together with the `near boundary` and
@@ -186,7 +186,7 @@ BlockDataID boundaryHandlingId = BHFactory::addBoundaryHandlingToStorage(
                  boundariesConfig.getParameter< real_t > ( "pressure1", real_c( 1.0 ) ) );
 \endcode
 
-\subsection tutorial04_geometry Geometry
+\subsection tutorial01_geometry Geometry
 
 To specify where boundaries are located, we could now iterate all blocks, retrieve the boundary handler which
 was added as block data, and use its member functions like boundary::BoundaryHandling::forceFlag() to setup the domain.
@@ -210,7 +210,7 @@ have a look at the documentation of walberla::geometry::initBoundaryHandling().
 marked, the remaining cells are tagged with the "domain" flag, i.e. as cells that should be updated by the LBM kernel.
 
 
-\subsection tutorial04_timeloop Sweep and Time Loop Setup
+\subsection tutorial01_timeloop Sweep and Time Loop Setup
 
 Having completed the domain setup, the next step is to add all the necessary steps/algorithms to the time loop:
 - communication to synchronize the ghost layer of the PdfField
@@ -268,7 +268,7 @@ timeloop.addFuncAfterTimeStep( makeSharedFunctor( field::makeStabilityChecker< P
                                "LBM stability check" );
 \endcode
 
-Additionally, a small functor is scheduled that periodically prints the estimated remaining time of the simultion:
+Additionally, a small functor is scheduled that periodically prints the estimated remaining time of the simulation:
 
 \code
 timeloop.addFuncAfterTimeStep( timing::RemainingTimeLogger( timeloop.getNrOfTimeSteps(), remainingTimeLoggerFrequency ),
diff --git a/apps/tutorials/lbm/02_BasicLBM_ExemplaryExtensions.cpp b/apps/tutorials/lbm/02_BasicLBM_ExemplaryExtensions.cpp
index 1c491b90cd3266361401b3a33795985c4336d536..120e964545d5007dffc9b5d0c937584025ac3309 100644
--- a/apps/tutorials/lbm/02_BasicLBM_ExemplaryExtensions.cpp
+++ b/apps/tutorials/lbm/02_BasicLBM_ExemplaryExtensions.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file 04_BasicLBM_ExemplaryExtensions.cpp
+//! \file 02_BasicLBM_ExemplaryExtensions.cpp
 //! \author Florian Schornbaum <florian.schornbaum@fau.de>
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/apps/tutorials/lbm/03_LBLidDrivenCavity.cpp b/apps/tutorials/lbm/03_LBLidDrivenCavity.cpp
index 95f9ef95e8dc4551bcfe508fea5a8bffea6f7371..e5cfc74376e9d6c3f3cd2aa3e02d865d96a88923 100644
--- a/apps/tutorials/lbm/03_LBLidDrivenCavity.cpp
+++ b/apps/tutorials/lbm/03_LBLidDrivenCavity.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file LBLidDrivenCavity.cpp
+//! \file 03_LBLidDrivenCavity.cpp
 //! \author Florian Schornbaum <florian.schornbaum@fau.de>
 //
 //======================================================================================================================
diff --git a/apps/tutorials/lbm/05_BackwardFacingStep.cpp b/apps/tutorials/lbm/05_BackwardFacingStep.cpp
index e939f2ee2202d663d158b2ef1b2202da37f2c8ae..1fdc44a7524ad79071c7c58ff39ed306ee1245a0 100644
--- a/apps/tutorials/lbm/05_BackwardFacingStep.cpp
+++ b/apps/tutorials/lbm/05_BackwardFacingStep.cpp
@@ -62,7 +62,7 @@ public:
       WALBERLA_ROOT_SECTION()
       {
          std::ofstream fileLocBottom( filename_.c_str());
-         fileLocBottom << "Time,[Locations on the BOTTOM Wall that Reattachment Occures (Normalized with Step Height) ]" << std::endl;
+         fileLocBottom << "Time,[Locations on the BOTTOM Wall that Reattachment Occurs (Normalized with Step Height) ]" << std::endl;
          fileLocBottom.close();
       }
    }
diff --git a/apps/tutorials/lbm/05_BackwardFacingStep.dox b/apps/tutorials/lbm/05_BackwardFacingStep.dox
index 52f7160d5bc6d80f128c81f3f5762151625e5dab..aaafc2d48c135812bef3c3271183c446236d99d5 100644
--- a/apps/tutorials/lbm/05_BackwardFacingStep.dox
+++ b/apps/tutorials/lbm/05_BackwardFacingStep.dox
@@ -7,7 +7,7 @@ namespace walberla {
 
 \section tutorial05_overview Overview
 
-The aim of this tutorial is to show how to build and solve the backward-facing step model using lattice Boltzman method in waLBerla.
+The aim of this tutorial is to show how to build and solve the backward-facing step model using lattice Boltzmann method in waLBerla.
 The "01_BasicLBM" case is used as the foundation of the current work. Therefore, most of the functionalities have already been introduced and discussed in LBM 1 tutorial.
 Here the main focus is on the following areas:
 
@@ -54,13 +54,13 @@ Finally, viscosity consequently **omega** are calculated with the Reynolds numbe
 \section tutorial05_geometry Geometry
 
 Since the step geometry is a plain rectangular area, the simplest approach is to create it by geometry module in walberla.
-This module offers capability to read boundaries of a random geometry from images, voxel files, coordinates of verticies, etc.
+This module offers capability to read boundaries of a random geometry from images, voxel files, coordinates of vertices, etc.
 Using this module, obstacles of basic shapes could be conveniently positioned inside the domain.
 It is also easier to have the program to read the geometry specifications from the Boundaries section of the configuration file.
 This is implemented by reading and storing the Boundaries block of the configuration file in 'boundariesConfig' object and passing it to a convenience function provided in the geometry class to initialize the boundaries.
 
 \snippet 05_BackwardFacingStep.cpp geomboundary
-Here a subblock 'Body' is created inside 'Boundaries' section in the configuration file in order to create a box (rectangle in 2D) using two diagonal verticies.
+Here a subblock 'Body' is created inside 'Boundaries' section in the configuration file in order to create a box (rectangle in 2D) using two diagonal vertices.
 
 \snippet 05_BackwardFacingStep.prm geometry
 
@@ -77,7 +77,7 @@ This mechanism is implemented by a functor named `ReattachmentLengthFinder` and
 
 After running the program, the locations of reattachment against timestep are written to 'ReattachmentLengthLogging_Re_[Re].txt' in the working directory.
 Note that there might be more than one reattachment location before the flow fully develops along the channel, and all are given in the file.
-This simply means that it is expected to have multiple occurances of seperation and reattachment at the same time along the bottom boundary of the channel following the step in the early stages.
+This simply means that it is expected to have multiple occurences of seperation and reattachment at the same time along the bottom boundary of the channel following the step in the early stages.
 However, most of them are smeared later as the flow starts to develop.
 The logging frequency can also be adjusted by 'checkFrequency' which is passed to the `ReattachmentLengthFinder` functor.
 
diff --git a/apps/tutorials/lbm/06_LBBoundaryCondition.cpp b/apps/tutorials/lbm/06_LBBoundaryCondition.cpp
index d4714ba3b3590e41b7ac5988a18e85b81b9c796e..ea41c7251223453cf4b52e8702b0ef10f33a233b 100644
--- a/apps/tutorials/lbm/06_LBBoundaryCondition.cpp
+++ b/apps/tutorials/lbm/06_LBBoundaryCondition.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file 06_LBBoundaryConditions.cpp
+//! \file 06_LBBoundaryCondition.cpp
 //! \author Helen Schottenhamml <helen.schottenhamml@fau.de>
 //
 //======================================================================================================================
diff --git a/apps/tutorials/lbm/06_LBBoundaryCondition.dox b/apps/tutorials/lbm/06_LBBoundaryCondition.dox
index 82130ebb657911729b62571ff01fca7cd86688cd..9042ef2590da58e025042efc7a02e7e8e54ecf68 100644
--- a/apps/tutorials/lbm/06_LBBoundaryCondition.dox
+++ b/apps/tutorials/lbm/06_LBBoundaryCondition.dox
@@ -13,7 +13,7 @@ The physical systems of interest are usually described by a set of partial diffe
 These boundary conditions are imposed by the physical system through, e.g., walls, inflows, outflows, etc. \n
 For discrete numerical schemes, the situation is slightly different. Here, boundary conditions are part of the solution routine, and different implementations of the same physical boundary condition may alter the result.
 Especially in lattice Boltzmann methods, there is a whole zoo of boundary conditions. This can be easily explained by the fact that boundaries are usually prescribed in terms of macroscopic variables.
-lattice Boltzmann methods, however, are determined by a set of mesoscopic variables \$f_i(\mathbf{x}, t)$. Different sets of distribution functions may lead to the same hydrodynamic behavior. Eventually, this leads to the question of how to prescribe the mesoscopic variables.\n
+lattice Boltzmann methods, however, are determined by a set of mesoscopic variables \f$f_i(\mathbf{x}, t)\f$. Different sets of distribution functions may lead to the same hydrodynamic behavior. Eventually, this leads to the question of how to prescribe the mesoscopic variables.\n
 In the following, we will discuss different approaches for wall, inflow and outflow boundary conditions and their realization in `waLBerla`. You will learn about the differences between them, their limitations, and how to use them.\n
 Note that we will not discuss the generation of boundary conditions with `lbmpy`. For this, please refer to \ref tutorial_codegen03.
 
@@ -271,7 +271,7 @@ As this scheme has some deficiencies (accuracy, need for explicitly enforcing th
 
 \section tutorial06_pressureBC Pressure Boundary Conditions
 Now that we have discussed inflows and walls in great detail, only the pressure boundary conditions for the outflows are left.\n
-As for the velocity boundary conditions, there are multiple ways to enforce a certain pressure at an outlet. In lattice Boltzmann solvers, however, it is usually the density that is prescribed, as it is more directly related to the pdfs. As density and pressure, in turn, are linked via \$p = c_s^2 \rho$, this is perfectly legitimate.
+As for the velocity boundary conditions, there are multiple ways to enforce a certain pressure at an outlet. In lattice Boltzmann solvers, however, it is usually the density that is prescribed, as it is more directly related to the pdfs. As density and pressure, in turn, are linked via \f$p = c_s^2 \rho\f$, this is perfectly legitimate.
 
 \subsection tutorial06_simplePressure SimplePressure
 Our first boundary condition to be discussed is the `SimplePressure` that is based on the anti-bounce-back method. Here, the pdfs are calculated by the fixed boundary density and an approximated boundary velocity. \n
diff --git a/apps/tutorials/pde/01_SolvingPDE.cpp b/apps/tutorials/pde/01_SolvingPDE.cpp
index 3091c7597b6d8ef1ba8618eea6350f759d1f5a55..766f4f7c3e4b4f13f1b47db440dded2f5eaec429 100644
--- a/apps/tutorials/pde/01_SolvingPDE.cpp
+++ b/apps/tutorials/pde/01_SolvingPDE.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file 05_SolvingPDE.cpp
+//! \file 01_SolvingPDE.cpp
 //! \author Christoph Rettinger <christoph.rettinger@fau.de>
 //
 //======================================================================================================================
@@ -57,7 +57,7 @@ void initBC( const shared_ptr< StructuredBlockStorage > & blocks, const BlockDat
          auto src = block->getData< ScalarField >( srcID );
          auto dst = block->getData< ScalarField >( dstID );
 
-         // obtain a CellInterval object that holds information about the number of cells in x,y,z direction of the field inlcuding ghost layers
+         // obtain a CellInterval object that holds information about the number of cells in x,y,z direction of the field including ghost layers
          // Since src and dst have the same size, one object is enough.
          CellInterval xyz = src->xyzSizeWithGhostLayer();
 
diff --git a/apps/tutorials/pde/01_SolvingPDE.dox b/apps/tutorials/pde/01_SolvingPDE.dox
index 47d377db67db2d619b56b0e643d7cb7e412ccdcf..7fecad56d109b8d5c64a5844ad5f7184d4d51db2 100644
--- a/apps/tutorials/pde/01_SolvingPDE.dox
+++ b/apps/tutorials/pde/01_SolvingPDE.dox
@@ -7,7 +7,7 @@ namespace walberla {
 \brief Implementing an iterative solver, initializing fields, and setting Dirichlet boundary conditions by functions, 
 domain setup with an axis-aligned bounding box. File 05_SolvingPDE.cpp.
 
-\section problemdescription Problem Description
+\section problemdescription01 Problem Description
 
 After learning the basic concepts and data structures of waLBerla, we can now already implement our own solver
 for an elliptic partial differential equation, discretized by finite differences. The regarded equation, describing the behavior of the unknown \f$u\f$, is:
@@ -47,7 +47,7 @@ Coming back to the concepts of waLBerla, this is a perfectly suitable example fo
 It requires summing up weighted values of the neighboring cells together with the function value of the right-hand side, 
 which is then divided by the weight of the center cell. 
 To avoid data dependencies, i.e., reading neighboring data that has already been updated in a previous step, 
-two fields (source and destination) are used like in \ref tutorial03. 
+two fields (source and destination) are used like in \ref tutorial_basics_03. 
 After the sweep, the data pointers are swapped. A possible, but not optimal, implementation of this procedure is shown below. 
 The class has private members `srcID_, dstID_, rhsID_, dx_, dy_` that store the BlockDataIDs of the source, destination, and right-hand side field, 
 and the grid spacings \f$\Delta x\f$ and \f$ \Delta y\f$.
@@ -295,7 +295,7 @@ Using the GUI, the converged profile looks like:
 
 \image html tutorial_pde01_solution.png
 
-In the next tutorial of the PDE section, \ref pde02, the Jacobi method is used to solve the linear system of equations arising from an implicit time-stepping method
+In the next tutorial of the PDE section, \ref tutorial_pde02, the Jacobi method is used to solve the linear system of equations arising from an implicit time-stepping method
 for the solution of the famous heat equation. 
 It is also shown how to include the functionality to stop the simulation based on the norm of the residual, 
 which is very often used to terminate the iterative solver.
diff --git a/apps/tutorials/pde/02_HeatEquation.cpp b/apps/tutorials/pde/02_HeatEquation.cpp
index 54a13fd9dd7151908183c81e1bcc21b573769d1f..1ff9d3632fc7d9ff880994109d38c094256b470e 100644
--- a/apps/tutorials/pde/02_HeatEquation.cpp
+++ b/apps/tutorials/pde/02_HeatEquation.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file 06_HeatEquation.cpp
+//! \file 02_HeatEquation.cpp
 //! \author Christoph Rettinger <christoph.rettinger@fau.de>
 //
 //======================================================================================================================
diff --git a/apps/tutorials/pde/02_HeatEquation.dox b/apps/tutorials/pde/02_HeatEquation.dox
index 353ad06eeb6f37dbeee4c346a7da5f933074e7e1..bdecf8bea6178db801e8f7d853c4149a20617d23 100644
--- a/apps/tutorials/pde/02_HeatEquation.dox
+++ b/apps/tutorials/pde/02_HeatEquation.dox
@@ -6,12 +6,12 @@ namespace walberla {
 
 \brief Unsteady heat equation, implicit time stepping, VTK output and ParaView, parallelization with MPI, residual based termination. File 06_HeatEquation.cpp.
 
-In this tutorial, we will make use of the Jacobi method implemented in \ref pde01 to solve the linear system of equations 
+In this tutorial, we will make use of the Jacobi method implemented in \ref tutorial_pde01 to solve the linear system of equations 
 that arises by the implicit time discretization of the unsteady heat equation.
 The implementation is further improved by using VTK output, parallelization with MPI, and a residual based termination of the Jacobi iteration.
 
 
-\section problemdescription Problem Description
+\section problemdescription02 Problem Description
 
 The <a target="_blank" href="http://en.wikipedia.org/wiki/Heat_equation">heat equation</a> is a classical example for a parabolic partial differential equation, given by:
 \f[
diff --git a/apps/tutorials/pde/03_HeatEquation_Extensions.cpp b/apps/tutorials/pde/03_HeatEquation_Extensions.cpp
index 6db0cb09153978008bb158dd70d2080771774d6a..037b3351bac4ffef07898ef21cb78525156067d1 100644
--- a/apps/tutorials/pde/03_HeatEquation_Extensions.cpp
+++ b/apps/tutorials/pde/03_HeatEquation_Extensions.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file 06_HeatEquation_Extensions.cpp
+//! \file 03_HeatEquation_Extensions.cpp
 //! \author Christoph Rettinger <christoph.rettinger@fau.de>
 //
 //======================================================================================================================
diff --git a/doc/Mainpage.dox b/doc/Mainpage.dox
index cf8989f490b44a08fe78935e6cff77d1ff457b05..8ba191634cf8a090b6d053db0a449cf50b41189f 100644
--- a/doc/Mainpage.dox
+++ b/doc/Mainpage.dox
@@ -64,19 +64,19 @@ Not all features of the framework are covered in the tutorials.
 To get further information have a look at the modules pages.
 
 Also, the test cases provided in the tests directory are a good starting point for your own developments.
-Additionally, there is a folder for full-fledged application codes to be found under \ref apps/benchmarks where also codes of walBerla publications are found.
+Additionally, there is a folder for full-fledged application codes to be found under <tt>apps/benchmarks</tt> where also codes of walBerla publications are found.
 
 \section cite Please cite us
 
 If you use waLBerla in the preparation of a publication, please cite
-\cite godenschwager2013framework and \cite bauer2020walberla. There are separate publications for some modules,
+\cite godenschwager2013framework and \cite bauer2021walberla. There are separate publications for some modules,
 which you should cite in addition if you use them.
 
 - Grid refinement: \cite schornbaum2016massively
 - PE coupling: \cite rettinger2017comparative
-- Python interface: \cite bauer2015python
+- Python interface: \cite bauer2016python
 - pystencils code generation: \cite bauer2019code
-- lbmpy LB model generation: \cite bauer2020lbmpy
+- lbmpy LB model generation: \cite bauer2021lbmpy
 
 \htmlonly
 <!--
diff --git a/doc/walberla.bib b/doc/walberla.bib
index 2d6f55e4a2e2ceb36690984db8f9b35343ecc5e2..9dc2a2a88171c1bf2b94cf4eea25e43364968b08 100644
--- a/doc/walberla.bib
+++ b/doc/walberla.bib
@@ -1,11 +1,16 @@
 % Encoding: US-ASCII
 
-@Article{bauer2015python,
+@Article{bauer2016python,
   author    = {Bauer, Martin and Schornbaum, Florian and Godenschwager, Christian and Markl, Matthias and Anderl, Daniela and K{\"o}stler, Harald and R{\"u}de, Ulrich},
-  title     = {A Python extension for the massively parallel multiphysics simulation framework waLBerla},
+  title     = {A {Python} extension for the massively parallel multiphysics simulation framework {waLBerla}},
   journal   = {International Journal of Parallel, Emergent and Distributed Systems},
-  year      = {2015},
+  year      = {2016},
   publisher = {Taylor and Francis},
+  volume    = {31},
+  number    = {6},
+  pages     = {529--542},
+  url       = {https://dx.doi.org/10.1080/17445760.2015.1118478},
+  doi       = {10.1080/17445760.2015.1118478},
 }
 
 @InProceedings{godenschwager2013framework,
@@ -15,37 +20,45 @@
   year         = {2013},
   pages        = {35},
   organization = {ACM},
+  publisher    = {Association for Computing Machinery},
+  url          = {https://dx.doi.org/10.1145/2503210.2503273},
+  doi          = {10.1145/2503210.2503273},
+  isbn         = {9781450323789},
 }
 
 @Article{schornbaum2016massively,
   author  = {Florian Schornbaum and Ulrich R{\"u}de},
-  title   = {Massively Parallel Algorithms for the Lattice Boltzmann Method on NonUniform Grids},
+  title   = {Massively Parallel Algorithms for the Lattice {Boltzmann} Method on NonUniform Grids},
   journal = {SIAM Journal on Scientific Computing},
   year    = {2016},
   volume  = {38},
   number  = {2},
   pages   = {C96-C126},
+  url     = {https://dx.doi.org/10.1137/15M1035240},
   doi     = {10.1137/15M1035240},
 }
 
 @Article{rettinger2016simulations,
   author    = {Rettinger, Christoph and R{\"u}de, Ulrich},
-  title     = {Simulations of Particle-laden Flows with the Lattice Boltzmann Method},
-  journal   = {PAMM},
+  title     = {Simulations of Particle-laden Flows with the Lattice {Boltzmann} Method},
+  journal   = {Proceedings in Applied Mathematics and Mechanics},
   year      = {2016},
   volume    = {16},
   number    = {1},
   pages     = {607--608},
+  url       = {https://dx.doi.org/10.1002/pamm.201610292},
+  doi       = {10.1002/pamm.201610292},
   publisher = {Wiley Online Library},
 }
 
 @Article{rettinger2017comparative,
   author    = {Rettinger, Christoph and R{\"u}de, Ulrich},
-  title     = {A comparative study of fluid-particle coupling methods for fully resolved lattice Boltzmann simulations},
+  title     = {A comparative study of fluid-particle coupling methods for fully resolved lattice {Boltzmann} simulations},
   journal   = {Computers \& Fluids},
   volume    = {154},
   pages     = {74--89},
   year      = {2017},
+  url       = {https://dx.doi.org/10.1016/j.compfluid.2017.05.033},
   doi       = {10.1016/j.compfluid.2017.05.033}
 }
 
@@ -57,15 +70,17 @@
   year      = {2017},
   publisher = {Springer International Publishing},
   pages     = {3--21},
+  url       = {https://dx.doi.org/10.1007/978-3-319-58667-0_1},
   doi       = {10.1007/978-3-319-58667-0_1}
 }
 
 @Article{rettinger2018dps,
-  title     = {A coupled lattice Boltzmann method and discrete element method for discrete particle simulations of particulate flows},
+  title     = {A coupled lattice {Boltzmann} method and discrete element method for discrete particle simulations of particulate flows},
   journal   = {Computers \& Fluids},
   volume    = {172},
-  pages     = {706 - 719},
+  pages     = {706--719},
   year      = {2018},
+  url       = {https://dx.doi.org/10.1016/j.compfluid.2018.01.023},
   doi       = {10.1016/j.compfluid.2018.01.023},
   author    = {Rettinger, Christoph and R{\"u}de, Ulrich}
 }
@@ -75,119 +90,138 @@
   title     = {Dynamic Load Balancing Techniques for Particulate Flow Simulations},
   journal   = {Computation},
   volume    = {7},
+  number    = {1},
   year      = {2019},
+  url       = {https://dx.doi.org/10.3390/computation7010009},
   doi       = {10.3390/computation7010009}
 }
 
 @Article{ginzburg2008two,
   author    = {Ginzburg, Irina and Verhaeghe, Frederik and d'Humi{\`e}res, Dominique},
-  title     = {Two-relaxation-time lattice Boltzmann scheme: About parametrization, velocity, pressure and mixed boundary conditions},
-  journal   = {Communications in computational physics},
+  title     = {Two-relaxation-time lattice {Boltzmann} scheme: About parametrization, velocity, pressure and mixed boundary conditions},
+  journal   = {Communications in Computational Physics},
   year      = {2008},
   volume    = {3},
   number    = {2},
   pages     = {427--478},
+  url       = {https://www.global-sci.com/intro/article_detail/cicp/7862.html},
 }
 
 @Article{bhatnagar1954model,
   author    = {Bhatnagar, Prabhu Lal and Gross, Eugene P and Krook, Max},
-  title     = {A model for collision processes in gases. I. Small amplitude processes in charged and neutral one-component systems},
-  journal   = {Physical review},
+  title     = {A model for collision processes in gases. {I.} {Small} amplitude processes in charged and neutral one-component systems},
+  journal   = {Physical Review},
   year      = {1954},
   volume    = {94},
   number    = {3},
-  pages     = {511},
+  pages     = {511--525},
   publisher = {APS},
+  url       = {https://dx.doi.org/10.1103/PhysRev.94.511},
+  doi       = {10.1103/PhysRev.94.511},
 }
 
 @Article{dhumieres2002multiple,
   author    = {d'Humi{\`e}res, Dominique},
-  title     = {Multiple--relaxation--time lattice Boltzmann models in three dimensions},
+  title     = {Multiple--relaxation--time lattice {Boltzmann} models in three dimensions},
   journal   = {Philosophical Transactions of the Royal Society of London A: Mathematical, Physical and Engineering Sciences},
   year      = {2002},
   volume    = {360},
   number    = {1792},
   pages     = {437--451},
   publisher = {The Royal Society},
+  url       = {https://dx.doi.org/10.1098/rsta.2001.0955},
+  doi       = {10.1098/rsta.2001.0955},
 }
 
 @Article{pan2006evaluation,
   author    = {Pan, Chongxun and Luo, Li-Shi and Miller, Cass T},
-  title     = {An evaluation of lattice Boltzmann schemes for porous medium flow simulation},
+  title     = {An evaluation of lattice {Boltzmann} schemes for porous medium flow simulation},
   journal   = {Computers \& fluids},
   year      = {2006},
   volume    = {35},
   number    = {8},
   pages     = {898--909},
   publisher = {Elsevier},
+  url       = {https://dx.doi.org/10.1016/j.compfluid.2005.03.008},
+  doi       = {10.1016/j.compfluid.2005.03.008},
 }
 
 @Article{geier2015cumulant,
   author    = {Geier, Martin and Sch{\"o}nherr, Martin and Pasquali, Andrea and Krafczyk, Manfred},
-  title     = {The cumulant lattice Boltzmann equation in three dimensions: Theory and validation},
+  title     = {The cumulant lattice {Boltzmann} equation in three dimensions: {Theory} and validation},
   journal   = {Computers \& Mathematics with Applications},
   year      = {2015},
   volume    = {70},
   number    = {4},
   pages     = {507--547},
   publisher = {Elsevier},
+  url       = {https://dx.doi.org/10.1016/j.camwa.2015.05.001},
+  doi       = {10.1016/j.camwa.2015.05.001},
 }
 
 @Article{guo2002discrete,
   author    = {Guo, Zhaoli and Zheng, Chuguang and Shi, Baochang},
-  title     = {Discrete lattice effects on the forcing term in the lattice Boltzmann method},
+  title     = {Discrete lattice effects on the forcing term in the lattice {Boltzmann} method},
   journal   = {Physical Review E},
   year      = {2002},
   volume    = {65},
   number    = {4},
   pages     = {046308},
   publisher = {APS},
+  url       = {https://dx.doi.org/10.1103/PhysRevE.65.046308},
+  doi       = {10.1103/PhysRevE.65.046308},
 }
 
-@Article{luo1993lattice,
+@PhdThesis{luo1993lattice,
   author    = {Luo, Li-Shi},
-  title     = {Lattice-gas automata and lattice Boltzmann equations for two-dimensional hydrodynamics},
+  title     = {Lattice-gas automata and lattice {Boltzmann} equations for two-dimensional hydrodynamics},
+  school    = {Georgia Institute of Technology},
   year      = {1993},
+  url       = {https://www.proquest.com/openview/324e5020a496c85ca81178b0c97f35d7/},
 }
 
 @Article{shan1994simulation,
   author    = {Shan, Xiaowen and Chen, Hudong},
-  title     = {Simulation of nonideal gases and liquid-gas phase transitions by the lattice Boltzmann equation},
+  title     = {Simulation of nonideal gases and liquid-gas phase transitions by the lattice {Boltzmann} equation},
   journal   = {Physical Review E},
   year      = {1994},
   volume    = {49},
   number    = {4},
-  pages     = {2941},
+  pages     = {2941--2948},
   publisher = {APS},
+  url       = {https://dx.doi.org/10.1103/PhysRevE.49.2941},
+  doi       = {10.1103/PhysRevE.49.2941},
 }
 
 @PhdThesis{schiller2008thermal,
   author    = {Schiller, Ulf D},
-  title     = {Thermal fluctuations and boundary conditions in the lattice Boltzmann method},
+  title     = {Thermal fluctuations and boundary conditions in the lattice {Boltzmann} method},
   school    = {Johannes Gutenberg-Universit{\"a}t, Mainz},
   year      = {2008},
+  url       = {https://dx.doi.org/10.25358/openscience-3231},
+  doi       = {10.25358/openscience-3231},
 }
 
 @PhdThesis{latt2007hydrodynamic,
   author    = {Latt, Jonas},
-  title     = {Hydrodynamic limit of lattice Boltzmann equations},
+  title     = {Hydrodynamic limit of lattice {Boltzmann} equations},
   school    = {University of Geneva},
   year      = {2007},
+  url       = {https://dx.doi.org/10.13097/archive-ouverte/unige:464},
+  doi       = {10.13097/archive-ouverte/unige:464},
 }
 
 @InProceedings{kupershtokh2003calculations,
   author       = {Kupershtokh, AL},
-  title        = {Calculations of the action of electric forces in the lattice Boltzmann equation method using the difference of equilibrium distribution functions},
+  title        = {Calculations of the action of electric forces in the lattice {Boltzmann} equation method using the difference of equilibrium distribution functions},
   booktitle    = {Proc. 7th Int. Conf. on Modern Problems of Electrophysics and Electrohydrodynamics of Liquids, St. Petersburg State University, St. Petersburg, Russia},
   year         = {2003},
-  volume       = {152},
-  pages        = {155},
-  organization = {152 155},
+  pages        = {152--155},
 }
 
 @Article{kupershtokh2004incorporating,
   author        = {Kupershtokh, AL},
-  title         = {Incorporating a body force term into the lattice Boltzmann equation},
+  title         = {Incorporating a body force term into the lattice {Boltzmann} equation},
   journal       = {Bulletin of Novosibirsk State University: Series of Mathematics, Mechanics and Informatics},
   year          = {2004},
   volume        = {4},
@@ -197,13 +231,13 @@
 
 @Article{ginzburg2008study,
   author        = {Ginzburg, Irina and Verhaeghe, Frederik and d'Humi{\`e}res, Dominique},
-  title         = {Study of simple hydrodynamic solutions with the two-relaxation-times lattice Boltzmann scheme},
+  title         = {Study of simple hydrodynamic solutions with the two-relaxation-times lattice {Boltzmann} scheme},
   journal       = {Communications in computational physics},
   year          = {2008},
   volume        = {3},
   number        = {3},
   pages         = {519--581},
-  owner         = {mkuron},
+  url           = {https://www.global-sci.com/intro/article_detail/cicp/7865.html},
 }
 
 @Article{Baerentzen2005,
@@ -215,14 +249,14 @@
   number   = {3},
   pages    = {243-253},
   month    = {May},
+  url      = {https://dx.doi.org/10.1109/TVCG.2005.49},
   doi      = {10.1109/TVCG.2005.49},
   issn     = {1077-2626},
-  keywords = {computational geometry;mesh generation;angle weighted pseudonormal;polyhedron;signed distance computation;smooth surfaces;triangle mesh;Geometry;Robustness;Index Terms- Mesh;normal;polyhedron.;pseudonormal;signed distance field;Algorithms;Computer Graphics;Computer Simulation;Image Enhancement;Image Interpretation, Computer-Assisted;Imaging, Three-Dimensional;Information Storage and Retrieval;Numerical Analysis, Computer-Assisted;Pattern Recognition, Automated;Signal Processing, Computer-Assisted},
 }
 
 @Article{Jones1995,
   author  = {Jones, Mark W},
-  title   = {3D distance from a point to a triangle},
+  title   = {{3D} distance from a point to a triangle},
   journal = {Department of Computer Science, University of Wales Swansea Technical Report CSR-5},
   year    = {1995},
 }
@@ -234,6 +268,7 @@
   author = {Ladd, Anthony JC},
   year = {1994},
   pages = {285--309},
+  url = {https://dx.doi.org/10.1017/S0022112094001771},
   doi = {10.1017/S0022112094001771}
 }
 
@@ -244,13 +279,15 @@
   author = {Aidun, Cyrus K. and Lu, Yannan and Ding, E.-Jiang},
   year = {1998},
   pages = {287--311},
+  url = {https://dx.doi.org/10.1017/S0022112098002493},
   doi = {10.1017/S0022112098002493}
 }
 
 @Article{noble1998psm,
-  title = {A {Lattice}-{Boltzmann} {Method} for {Partially} {Saturated} {Computational} {Cells}},
+  title = {A Lattice-{Boltzmann} Method for Partially Saturated Computational Cells},
   volume = {09},
   issn = {0129-1831},
+  url = {https://dx.doi.org/10.1142/S0129183198001084},
   doi = {10.1142/S0129183198001084},
   number = {08},
   journal = {International Journal of Modern Physics C},
@@ -266,6 +303,7 @@
   pages = {105 - 127},
   year = {2017},
   issn = {0021-9991},
+  url = {https://dx.doi.org/10.1016/j.jcp.2017.03.035},
   doi = {10.1016/j.jcp.2017.03.035},
   author = {Edward Biegert and Bernhard Vowinckel and Eckart Meiburg}
 }
@@ -273,13 +311,14 @@
 @Article{nguyen2002lubrication,
   title = {Lubrication corrections for lattice-Boltzmann simulations of particle suspensions},
   author = {Nguyen, N.-Q. and Ladd, A. J. C.},
-  journal = {Phys. Rev. E},
+  journal = {Physical Review E},
   volume = {66},
   issue = {4},
   pages = {046708},
   numpages = {12},
   year = {2002},
   publisher = {American Physical Society},
+  url = {https://dx.doi.org/10.1103/PhysRevE.66.046708},
   doi = {10.1103/PhysRevE.66.046708}
 }
 
@@ -287,9 +326,10 @@
   title = {A Local Parallel Communication Algorithm for Polydisperse Rigid Body Dynamics},
   journal = {Parallel Computing},
   volume = {80},
-  pages = {36 - 48},
+  pages = {36--48},
   year = {2018},
   issn = {0167-8191},
+  url = {https://dx.doi.org/10.1016/j.parco.2018.10.002},
   doi = {10.1016/j.parco.2018.10.002},
   author = {Eibl, Sebastian and R{\"u}de, Ulrich}
 }
@@ -298,36 +338,45 @@
   title = {A temporal discretization scheme to compute the motion of light particles in viscous flows by an immersed boundary method},
   journal = {Journal of Computational Physics},
   volume = {281},
-  pages = {591 - 613},
+  pages = {591--613},
   year = {2015},
   issn = {0021-9991},
+  url = {https://dx.doi.org/10.1016/j.jcp.2014.10.039},
   doi = {10.1016/j.jcp.2014.10.039},
   author = {S. Schwarz and T. Kempe and J. Fr{\"o}hlich},
 }
 
 @inproceedings{bauer2019code,
   title = {Code generation for massively parallel phase-field simulations},
-  author = {Bauer, Martin and H{\"o}tzer, Johannes and Ernst, Dominik and Hammer, Julian and Seiz, Marco and Hierl, Henrik and H{\"o}nig, Jan and K{\"o}stler, Harald and Wellein, Gerhard and Nestler, Britta and others},
+  author = {Bauer, Martin and H{\"o}tzer, Johannes and Ernst, Dominik and Hammer, Julian and Seiz, Marco and Hierl, Henrik and H{\"o}nig, Jan and K{\"o}stler, Harald and Wellein, Gerhard and Nestler, Britta and R{\"u}de, Ulrich},
   booktitle = {Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis},
   pages = {1--32},
   year = {2019},
+  url = {https://dx.doi.org/10.1145/3295500.3356186},
   doi = {10.1145/3295500.3356186}
 }
 
-@article{bauer2020walberla,
-  title = {waLBerla: A block-structured high-performance framework for multiphysics simulations},
-  author = {Bauer, Martin and Eibl, Sebastian and Godenschwager, Christian and Kohl, Nils and Kuron, Michael and Rettinger, Christoph and Schornbaum, Florian and Schwarzmeier, Christoph and Th{\"o}nnes, Dominik and K{\"o}stler, Harald and others},
+@article{bauer2021walberla,
+  title = {{waLBerla}: A block-structured high-performance framework for multiphysics simulations},
+  author = {Bauer, Martin and Eibl, Sebastian and Godenschwager, Christian and Kohl, Nils and Kuron, Michael and Rettinger, Christoph and Schornbaum, Florian and Schwarzmeier, Christoph and Th{\"o}nnes, Dominik and K{\"o}stler, Harald and R{\"u}de, Ulrich},
   journal = {Computers \& Mathematics with Applications},
-  year = {2020},
+  year = {2021},
   publisher = {Elsevier},
+  volume = {81},
+  pages = {478-501},
+  url = {https://dx.doi.org/10.1016/j.camwa.2020.01.007},
   doi = {10.1016/j.camwa.2020.01.007}
 }
 
-@article{bauer2020lbmpy,
-  title = {lbmpy: A flexible code generation toolkit for highly efficient lattice Boltzmann simulations},
+@article{bauer2021lbmpy,
+  title = {{lbmpy}: Automatic code generation for efficient parallel lattice {Boltzmann} methods},
   author = {Bauer, Martin and K{\"o}stler, Harald and R{\"u}de, Ulrich},
-  journal = {arXiv preprint arXiv:2001.11806},
-  year = {2020}
+  journal = {Journal of Computational Science},
+  volume = {49},
+  pages = {101269},
+  year = {2021},
+  url = {https://dx.doi.org/10.1016/j.jocs.2020.101269},
+  doi = {10.1016/j.jocs.2020.101269},
 }
 
 @Comment{jabref-meta: databaseType:bibtex;}
diff --git a/src/blockforest/BlockForestFile.h b/src/blockforest/BlockForestFile.h
index af8619b711a876b0ef7c6e316b177f846d95d800..ae1ba02adc138317ef12a8b6b56a95e9f31fb902 100644
--- a/src/blockforest/BlockForestFile.h
+++ b/src/blockforest/BlockForestFile.h
@@ -50,7 +50,7 @@ namespace internal {
  *
  *   \subsection SUID SUID MAPPING:
  *
- *   1 | number of SUIDs (= #SUIDs)
+ *   1 | number of SUIDs (= \#SUIDs)
  *
  *   \code{.unparsed}
  *   for each SUID:
@@ -58,7 +58,7 @@ namespace internal {
  *      length-of-string | UID identifier string
  *   \endcode
  *
- *   --> 1 + #SUIDs + number-of-characters-of-all-identifiers-combined BYTES
+ *   --> 1 + \#SUIDs + number-of-characters-of-all-identifiers-combined BYTES
  *
  *   How the mapping works:\n
  *   SUID #1 is assigned bit #1 ( -> [...]0 0000 0001 )\n
diff --git a/src/blockforest/CMakeDefs.in.h b/src/blockforest/CMakeDefs.in.h
index f61a93f54a6e691036418b8ec26cf3835eefebc7..bcb23cdc07edb1cf0b3f946c44680c8a5e3d9071 100644
--- a/src/blockforest/CMakeDefs.in.h
+++ b/src/blockforest/CMakeDefs.in.h
@@ -1,6 +1,6 @@
 //======================================================================================================================
 /*!
- *  \file   CMakeDefs.h
+ *  \file   CMakeDefs.in.h
  *  \brief  Definitions for blockforest module configured by cmake
  */
 //======================================================================================================================
diff --git a/src/blockforest/Initialization.cpp b/src/blockforest/Initialization.cpp
index 75a1d81c96b02cec912e2aaea73361f9a59e2ffa..288a04a499575ff5d35417a0c77ff2aebdf91f59 100644
--- a/src/blockforest/Initialization.cpp
+++ b/src/blockforest/Initialization.cpp
@@ -87,7 +87,7 @@ shared_ptr< StructuredBlockForest > createUniformBlockGridFromConfig( const shar
 *          assigned to each process. Setting it to false allows multiple blocks to be assigned to each process.
 *          If the number of blocks is not divisible by the number of processes, the loadbalancer tries to assign
 *          the blocks to processes as evenly as possible.
-*    2) Using the number of global cells, #blocks = #processes, if this does not fit, extend the domain
+*    2) Using the number of global cells, \#blocks = \#processes, if this does not fit, extend the domain
 \verbatim
           {
              cells <    10,40,90>;    // required
@@ -751,12 +751,12 @@ createUniformBlockGrid( const std::string& filename,
 * in this case the number of cells is chosen bigger than requested
 *
 *
-* \param cells:              total number of cells requested
-* \param nrOfBlocks:         total number of blocks to distribute the cells to
-* \param[out] blocks:        calculated number of blocks in x/y/z
-* \param[out] cellsPerBlock: how many cells to put on each block
-  it may happen that divisibility of the number of cells requested prevents a distribution
-*                            in this case the number of cells is chosen (slightly) bigger than requested
+* \param cells              total number of cells requested
+* \param nrOfBlocks         total number of blocks to distribute the cells to
+* \param[out] blocksOut     calculated number of blocks in x/y/z
+* \param[out] cellsPerBlock how many cells to put on each block
+*                           it may happen that divisibility of the number of cells requested prevents a distribution
+*                           in this case the number of cells is chosen (slightly) bigger than requested
 *
 * Example: in:  cells = (10,15,16)
 *          in:  blocks = 8
diff --git a/src/blockforest/Types.h b/src/blockforest/Types.h
index dc61b3551056bdb8e44ec15aa722494c5c81746c..68beb9ebcb1b8050f51e764a3d006d46db3690dd 100644
--- a/src/blockforest/Types.h
+++ b/src/blockforest/Types.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file types.h
+//! \file Types.h
 //! \ingroup blockforest
 //! \author Florian Schornbaum <florian.schornbaum@fau.de>
 //
diff --git a/src/blockforest/Utility.cpp b/src/blockforest/Utility.cpp
index cba91fa60cd00908f067dd610029340a94391820..b31f4147532ecd719773fde8c343348f3f3fd9ec 100644
--- a/src/blockforest/Utility.cpp
+++ b/src/blockforest/Utility.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file utility.cpp
+//! \file Utility.cpp
 //! \ingroup blockforest
 //! \author Florian Schornbaum <florian.schornbaum@fau.de>
 //
diff --git a/src/blockforest/Utility.h b/src/blockforest/Utility.h
index bf3c2150cefb21520c9fa958df294878a5b35668..8a6f304619e83a1f3cfad138b81e8124f60f50ab 100644
--- a/src/blockforest/Utility.h
+++ b/src/blockforest/Utility.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file utility.h
+//! \file Utility.h
 //! \ingroup blockforest
 //! \author Florian Schornbaum <florian.schornbaum@fau.de>
 //
@@ -45,7 +45,7 @@ using math::uintMSBPosition;
 /*!
 *   \brief Returns a string that stores the bitwise representation of 'value' (must be an unsigned integer)
 *
-*   \code
+*   \code{.unparsed}
 *      8bit display: 0101_1101
 *     16bit display: 1110_0101.1100_0001
 *     32bit display: 1000_0011.0110_1101.0000_0001.1010_0110
diff --git a/src/blockforest/communication/UniformDirectScheme.impl.h b/src/blockforest/communication/UniformDirectScheme.impl.h
index 6919227be15df8bf5d80ac9fac94e21d9b74c12f..7f61c164aad3bbc23d0bcfd11b4f45dfa209ab1b 100644
--- a/src/blockforest/communication/UniformDirectScheme.impl.h
+++ b/src/blockforest/communication/UniformDirectScheme.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file BufferlessScheme.cpp
+//! \file UniformDirectScheme.impl.h
 //! \ingroup blockforest
 //! \author MartinBauer <martin.bauer@fau.de>
 //
diff --git a/src/boundary/Boundary.h b/src/boundary/Boundary.h
index d7b3679f8aa9278751989182f6827b2a5fbfbcc4..24b74f64383c24f5386a0b45935dd87f25169ec1 100644
--- a/src/boundary/Boundary.h
+++ b/src/boundary/Boundary.h
@@ -52,7 +52,7 @@ private:
 *   Every boundary class must be derived from this class and implement the following concept/member functions (for some
 *   exemplary implementations look at classes NoSlip, FreeSlip, UBB, or SimpleUBB in module lbm/boundary):
 *
-*   1. "static shared_ptr<BoundaryConfiguration> createConfiguration( const Config::BlockHandle & config )"
+*  1.  "static shared_ptr<BoundaryConfiguration> createConfiguration( const Config::BlockHandle & config )"
 *      This function is used to extract parameters from a configuration file and pass them to the boundary condition.
 *      Meaning: This function defines how the parameter specification for this boundary condition must look like in the
 *      configuration file.
@@ -60,35 +60,35 @@ private:
 *         "{ return make_shared<BoundaryConfiguration>(); }"
 *      If you do need to pass parameters, these parameters must be implemented in terms of a derived class of
 *      "BoundaryConfiguration" (as an example, see class "UBB").
-*   2. "void pushFlags( std::vector< FlagUID >& uids )"
+*  2.  "void pushFlags( std::vector< FlagUID >& uids )"
 *      This function receives (by reference) a vector and must insert (using push_back!) all FlagUIDs into this vector
 *      that mark cells as boundary cells that must be treated by this boundary condition.
-*   3. "void beforeBoundaryTreatment()"
+*  3.  "void beforeBoundaryTreatment()"
 *      This function is called once before the boundary handler starts the boundary treatment. Of course, this function
 *      is called every time the boundary treatment of the boundary handler is triggered (normally once per time step).
-*   4. "void afterBoundaryTreatment()"
+*  4.  "void afterBoundaryTreatment()"
 *      Just like "beforeBoundaryTreatment", this function is called once after the boundary handler has finished the
 *      boundary treatment.
-*   5. "template< typename Buffer_T >
+*  5.  "template< typename Buffer_T >
 *       void packCell( Buffer_T & buffer, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z )"
 *      This function is called every time a boundary cell that is handled by this boundary class is serialized. If
 *      the boundary condition stores additional parameters for the boundary cell (x,y,z) these parameters must be
 *      serialized and stored in the buffer "buffer". [5) serializes and 6) deserializes, both functions must match]
-*   6. "template< typename Buffer_T >
+*  6.  "template< typename Buffer_T >
 *       void registerCell( Buffer_T & buffer,
 *                          const flag_t flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z )"
 *      This function is called every time a boundary cell that is handled by this boundary class is deserialized. The
 *      flag which was set (must be part of this->mask_!), the cell (x,y,z), and a buffer that potentially stores
 *      parameters are passed. [5) serializes and 6) deserializes, both functions must match]
-*   7. "void registerCell( const flag_t flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z,
+*  7.  "void registerCell( const flag_t flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z,
 *                          const BoundaryConfiguration & parameter )"
 *      This function is called every time a boundary that is handled by this boundary class is set at the boundary
 *      handler. The flag which was set (must be part of this->mask_!), the cell (x,y,z), and a corresponding parameter
 *      are passed.
-*   8. "void registerCells( const flag_t flag, const CellInterval & cells, const BoundaryConfiguration & parameter )"
+*  8.  "void registerCells( const flag_t flag, const CellInterval & cells, const BoundaryConfiguration & parameter )"
 *      Just like "registerCell", only this function is called if a boundary that is handled by this boundary class is
 *      set for each cell in a specific cell interval (-> "cells").
-*   9. "template< typename CellIterator >
+*  9.  "template< typename CellIterator >
 *       void registerCells( const flag_t flag, const CellIterator & begin, const CellIterator & end,
 *       const BoundaryConfiguration & parameter )"
 *      Just like the previous two functions, only this function is called if multiple boundary cells that are handled
diff --git a/src/core/Format.hpp b/src/core/Format.hpp
index 078acd14346a7875d2afd43c6b82b7fef3f707b5..c535b43348e0b870f24ca17d825e6645213c80ea 100644
--- a/src/core/Format.hpp
+++ b/src/core/Format.hpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file Format.h
+//! \file Format.hpp
 //! \ingroup core
 //! \author Dominik Thoennes <dominik.thoennes@fau.de>
 //
diff --git a/src/core/config/Config.h b/src/core/config/Config.h
index 51d16fdeee366dcbe69ebce182e217fa9113e8ce..00e56397d306f4f41860aafdbde65e1c97203fdb 100644
--- a/src/core/config/Config.h
+++ b/src/core/config/Config.h
@@ -197,7 +197,7 @@ public:
       inline Parameter<T> getParameter( std::string key ) const;
 
       template< typename T >
-      inline Parameter<T> getParameter( const std::string & key, const T & defaultValue ) const;
+      inline Parameter<T> getParameter( const std::string & key, const T & def ) const;
 
       inline bool setParameter( const std::string & key, const std::string & value );
       
@@ -278,7 +278,7 @@ public:
       inline Parameter<T> getParameter( const std::string & key ) const;
 
       template< typename T >
-      inline Parameter<T> getParameter( const std::string & key, const T& defaultValue ) const;
+      inline Parameter<T> getParameter( const std::string & key, const T& def ) const;
 
       bool isValid() const { return block_ != nullptr; }
       operator bool() const { return isValid(); }
@@ -346,7 +346,7 @@ public:
    inline Parameter<T> getParameter( const std::string& key ) const;
 
    template< typename T >
-   inline Parameter<T> getParameter( const std::string& key, const T & defaultValue ) const;
+   inline Parameter<T> getParameter( const std::string& key, const T & def ) const;
 
 
    inline iterator       begin();
@@ -514,7 +514,7 @@ inline Config::Parameter<Type> Config::getParameter( const std::string & key ) c
 
 
 //**********************************************************************************************************************
-/*!\fn Config::Parameter<T> Config::getParameter( const std::string& key, const T& ) const
+/*!\fn Config::Parameter<T> Config::getParameter( const std::string& key, const T& def ) const
 // \brief Returns an extracted parameter.
 //
 // \param key The key of the extracted parameter.
@@ -1093,6 +1093,7 @@ inline const std::string& Config::BlockHandle::getKey() const
 /*!\fn bool Config::BlockHandle::isDefined( std::string key ) const
 // \brief Checks if a parameter was defined in the parameter file.
 //
+// \param key The parameter key to be checked.
 // \return \a true if the parameter was defined, \a false if the parameter wasn't defined.
  */
 inline bool Config::BlockHandle::isDefined( std::string key ) const
@@ -1118,7 +1119,7 @@ inline Config::Parameter<Type> Config::BlockHandle::getParameter( const std::str
 //**********************************************************************************************************************
 
 //**********************************************************************************************************************
-/*!\fn Config::Parameter<T> Config::BlockHandle::getParameter( const std::string& key, const T & ) const
+/*!\fn Config::Parameter<T> Config::BlockHandle::getParameter( const std::string& key, const T & def ) const
 // \brief Returns an extracted parameter.
 //
 // \param key The key of the extracted parameter.
diff --git a/src/core/grid_generator/SCIterator.h b/src/core/grid_generator/SCIterator.h
index 7068bd3de13504a745b3f24ca7ccc58ec3be2ad5..19edc06dbdce96fc527df66950af847ab8dc46a7 100644
--- a/src/core/grid_generator/SCIterator.h
+++ b/src/core/grid_generator/SCIterator.h
@@ -31,7 +31,7 @@ namespace grid_generator {
 
 /// Helper class to generate points in a simple cubic structure within a certain domain.
 /// The lattice is fixed by a point of reference (x).
-/// \code
+/// \code{.unparsed}
 /// . . . . . . . .
 ///        +-----+
 /// . . . .|. . .|.
diff --git a/src/core/logging/CMakeDefs.in.h b/src/core/logging/CMakeDefs.in.h
index 1ee97f43fdd630249ab29812b01ce90fb3d9cd96..05abf9750a6219235a69fc76549cdf2139f8dcb9 100644
--- a/src/core/logging/CMakeDefs.in.h
+++ b/src/core/logging/CMakeDefs.in.h
@@ -1,6 +1,6 @@
 //======================================================================================================================
 /*!
- *  \file   CMakeDefs.h
+ *  \file   CMakeDefs.in.h
  *  \brief  Definitions for core/logging configured by cmake
  */
 //======================================================================================================================
diff --git a/src/core/logging/Initialization.cpp b/src/core/logging/Initialization.cpp
index ca442e71288cf914a47de70b05e42e68468baa1b..d1dfe609934f920b39a90c32fbecb053d5439206 100644
--- a/src/core/logging/Initialization.cpp
+++ b/src/core/logging/Initialization.cpp
@@ -73,7 +73,7 @@ static void parseIgnoreBlocks( const Config::Blocks & ignoreBlocks, std::vector<
 *   This initialization function reads data stored in a configuration file and uses thi data to configure the logging
 *   singleton.
 *   The structure of the configuration file which is recognized by this function must look like as follows:
-*   \code
+*   \code{.unparsed}
 *   Logging { // the whole 'Logging' block is optional
 *
 *      logLevel       warning|info|progress|detail|tracing; // optional, default=info
@@ -102,7 +102,7 @@ static void parseIgnoreBlocks( const Config::Blocks & ignoreBlocks, std::vector<
 *
 *   Log messages can be ignored by specifying a regular expression on the filename and line number of the source
 *   file the log message originates from. The regex has to be specified in an ignore block as the parameter
-*   callerPathPattern. If the regular expression is found somewhere in the string <filename>:<line number>,
+*   callerPathPattern. If the regular expression is found somewhere in the string `<filename>:<line number>`,
 *   the log message is ignored. To divide components of your path always uses slashes!
 *   They will automatically be converted to the regex (/|\\), matching slashes and back-slashes. For fancy regexes
 *   you can use perl regex syntax.
@@ -110,11 +110,13 @@ static void parseIgnoreBlocks( const Config::Blocks & ignoreBlocks, std::vector<
 *   Note that you cannot ignore Errors since they abort your program!
 *
 *   Examples:
+*   \code{.unparsed}
 *   ignore { callerPathPattern /src/core/; } // ignores log messages from core
 *   ignore { callerPathPattern /src/vtk/; } // ignores log messages from vtk
 *   ignore { callerPathPattern (/src/core/|/src/vtk/); } // ignores log messages from core & vtk
 *   ignore { callerPathPattern /src/core/FILENAME.h:416; } // ignores a specific log message
 *   ignoreWarning { callerPathPattern /src/core/FILENAME.h:212; } // ignores a specific warning
+*   \endcode{.unparsed}
 *
 *   \param config The configuration
 */
diff --git a/src/core/math/CMakeDefs.in.h b/src/core/math/CMakeDefs.in.h
index 3ee631f55b03c9125caabe1df726290fe9b33519..66ad0396ff6ff28cb24a1c2017db1dc26d7d3cb4 100644
--- a/src/core/math/CMakeDefs.in.h
+++ b/src/core/math/CMakeDefs.in.h
@@ -1,6 +1,6 @@
 //======================================================================================================================
 /*!
- *  \file   CMakeDefs.h
+ *  \file   CMakeDefs.in.h
  *  \brief  Definitions for core/math configured by cmake
  */
 //======================================================================================================================
diff --git a/src/core/math/GenericAABB.h b/src/core/math/GenericAABB.h
index 5d326b5af973b66db1c7628650cfa77e6c5d9433..6ca2ce1764841485d97efe714eb6456d1b4119d4 100644
--- a/src/core/math/GenericAABB.h
+++ b/src/core/math/GenericAABB.h
@@ -132,9 +132,9 @@ public:
    inline value_type intersectionVolume( const GenericAABB & other ) const;
    inline GenericAABB getIntersection( const GenericAABB & other ) const;
 
-   inline bool isIdentical( const GenericAABB & rhs ) const;
+   inline bool isIdentical( const GenericAABB & other ) const;
 
-   inline bool isEqual( const GenericAABB & rhs ) const;
+   inline bool isEqual( const GenericAABB & other ) const;
 
    inline value_type sqDistance( const vector_type & point ) const;
    inline value_type sqSignedDistance( const vector_type & point ) const;
diff --git a/src/core/math/GenericAABB.impl.h b/src/core/math/GenericAABB.impl.h
index 254c0d00e3ae3feb19baaf50e2fcc10e6ba689b2..e62757bfa1add43d24632ca56366f212f3b50166 100644
--- a/src/core/math/GenericAABB.impl.h
+++ b/src/core/math/GenericAABB.impl.h
@@ -230,8 +230,8 @@ GenericAABB< T >::GenericAABB( const value_type minX, const value_type minY, con
 /**
  * \brief Builds a GenericAABB from a min- and a maxCorner
  *
- * \param minCorner corner with minimal values
- * \param maxCorner corner with maximal values
+ * \param theMinCorner corner with minimal values
+ * \param theMaxCorner corner with maximal values
  *
  * \pre minCorner.x <= maxCorner.x && minCorner.y <= maxCorner.y && minCorner.z <= maxCorner.z
  */
@@ -751,8 +751,8 @@ GenericAABB< T > GenericAABB< T >::getScaled( const value_type factor ) const
 /**
  * \brief Creates a new GenericAABB by scaling this one
  *
- * \param factor Vector of scaling factors by which the bounding box gets scaled on the
- *               respective axises.
+ * \param factors Vector of scaling factors by which the bounding box gets scaled on the
+ *                respective axises.
  *
  * \returns The scaled GenericAABB
  */
@@ -1450,10 +1450,14 @@ void GenericAABB< T >::init( InputIterator first, InputIterator last )
 /**
  * \brief Reinitializes this GenericAABB from a min- and a maxCorner
  *
- * \param minCorner corner with minimal values
- * \param maxCorner corner with maximal values
+ * \param minX  x-coordinate of the minCorner
+ * \param minY  y-coordinate of the minCorner
+ * \param minZ  z-coordinate of the minCorner
+ * \param maxX  x-coordinate of the maxCorner
+ * \param maxY  y-coordinate of the maxCorner
+ * \param maxZ  z-coordinate of the maxCorner
  *
- * \pre minCorner.x <= maxCorner.x && minCorner.y <= maxCorner.y && minCorner.z <= maxCorner.z
+ * \pre minX <= maxX && minY <= maxY && minZ <= maxZ
  */
 template< typename T >
 void GenericAABB< T >::initMinMaxCorner( const value_type minX, const value_type minY, const value_type minZ,
@@ -1475,14 +1479,10 @@ void GenericAABB< T >::initMinMaxCorner( const value_type minX, const value_type
 /**
  * \brief Reinitializes this GenericAABB from a min- and a maxCorner
  *
- * \param minX  x-coordinate of the minCorner
- * \param minY  y-coordinate of the minCorner
- * \param minZ  z-coordinate of the minCorner
- * \param maxX  x-coordinate of the maxCorner
- * \param maxY  y-coordinate of the maxCorner
- * \param maxZ  z-coordinate of the maxCorner
+ * \param theMinCorner corner with minimal values
+ * \param theMaxCorner corner with maximal values
  *
- * \pre x0 <= x1 && y0 <= y1 && z0 <= z1
+ * \pre theMinCorner.x <= theMaxCorner.x && theMinCorner.y <= theMaxCorner.y && theMinCorner.z <= theMaxCorner.z
  */
 template< typename T >
 void GenericAABB< T >::initMinMaxCorner( const vector_type & theMinCorner, const vector_type & theMaxCorner )
@@ -1498,7 +1498,7 @@ void GenericAABB< T >::initMinMaxCorner( const vector_type & theMinCorner, const
  * \brief Sets the minimum and maximum for one axis
  *
  * \param index   0 for x, 1 for y, 2 for z axis
- * \param value*  the smaller of the two values is taken as minimum, the other as maximum
+ * \param value1,value2  the smaller of the two values is taken as minimum, the other as maximum
  */
 template< typename T >
 void GenericAABB< T >::setAxisBounds( const uint_t index, const value_type value1, const value_type value2 )
@@ -1567,7 +1567,7 @@ void GenericAABB< T >::extend( const vector_type & eps )
  *
  * AABB gets translated such that its center matches the given center.
  *
- * \param new center location
+ * \param center new center location
  */
 template< typename T >
 void GenericAABB< T >::setCenter( const vector_type & center )
@@ -1616,8 +1616,8 @@ void GenericAABB< T >::scale( const value_type factor )
 /**
  * \brief Scales this GenericAABB
  *
- * \param factor Vector of scaling factors by which the bounding box gets scaled on the
- *               respective axises.
+ * \param factors Vector of scaling factors by which the bounding box gets scaled on the
+ *                respective axises.
  */
 template< typename T >
 void GenericAABB< T >::scale( const vector_type & factors )
diff --git a/src/core/math/Sample.cpp b/src/core/math/Sample.cpp
index a85954e2aaf9e45d18af57d76989be7da23a6665..303656736e90548418641993606f8838661d23af 100644
--- a/src/core/math/Sample.cpp
+++ b/src/core/math/Sample.cpp
@@ -115,7 +115,7 @@ real_t Sample::median() const
  * The variance calculated here is the _uncorrected_ variance.
  * See: http://en.wikipedia.org/w/index.php?title=Bessel%27s_correction&oldid=526066331
  *
- * \param    mean   the mean()
+ * \param    theMean   the mean()
  *
  * \returns  The uncorrected variance.
  **********************************************************************************************************************/
diff --git a/src/core/mpi/BufferSystem.impl.h b/src/core/mpi/BufferSystem.impl.h
index f3d7539865e2d8894cda86492f67463006fe0513..4cbd884ba791bb4d07e3591dc9a6a0101ad657ff 100644
--- a/src/core/mpi/BufferSystem.impl.h
+++ b/src/core/mpi/BufferSystem.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file GenericBufferSystem.cpp
+//! \file BufferSystem.impl.h
 //! \ingroup core
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/core/mpi/BufferSystemHelper.h b/src/core/mpi/BufferSystemHelper.h
index 78b77c5ed6b3aec418c4057671f683f6c816c8e1..5603db56005c53eff6c7a5c5f2cbd369969b0c90 100644
--- a/src/core/mpi/BufferSystemHelper.h
+++ b/src/core/mpi/BufferSystemHelper.h
@@ -83,7 +83,7 @@ namespace internal {
       /*************************************************************************************************************//**
       * Waits for the next receive to complete and returns.
       *
-      * \param recvInfo  the same receive info that was passed to scheduleReceives()
+      * \param recvInfos  the same receive info that was passed to scheduleReceives()
       *
       * \return The rank where the data was received -> recvInfos[rank] is now valid
       *         INVALID_RANK if all messages were received.
diff --git a/src/core/mpi/BufferSystemHelper.impl.h b/src/core/mpi/BufferSystemHelper.impl.h
index fc2c6a5ae5a2623de6469eb3c6b2c54128927379..e6236f100ca3d8f58817824c16ac5844e41f4af6 100644
--- a/src/core/mpi/BufferSystemHelper.impl.h
+++ b/src/core/mpi/BufferSystemHelper.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file BufferSystemHelper.cpp
+//! \file BufferSystemHelper.impl.h
 //! \ingroup core
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/core/mpi/Gatherv.h b/src/core/mpi/Gatherv.h
index 7a9de2652e45d552f59f5834c2f0b75fdea77232..0a26b136774607c6586dde0fb63ee39ef5fa51e0 100644
--- a/src/core/mpi/Gatherv.h
+++ b/src/core/mpi/Gatherv.h
@@ -198,11 +198,11 @@ std::vector< std::string > allGatherv( const std::vector< std::string > & values
 * - the buffer contents are gathered on process with targetRank
 * - buffer contents are sorted by rank and stored consecutively in a mpi::RecvBuffer
 *
-* \param sendBuffer [in]  sendBuffer with (possibly) different size on each process
-* \param recvBuffer [out] recvBuffer which is left unchanged on all processes but targetRank
+* \param[in]  sendBuffer  sendBuffer with (possibly) different size on each process
+* \param[out] recvBuffer  recvBuffer which is left unchanged on all processes but targetRank
 *                         on targetRank  recvBuffer holds the gathered result
-* \param targetRank [in]  rank of the process where data is gathered
-* \param comm       [in]  mpi communicator to use
+* \param[in]  targetRank  rank of the process where data is gathered
+* \param[in]  comm        mpi communicator to use
 */
 //*******************************************************************************************************************
 void gathervBuffer( const mpi::SendBuffer & sendBuffer, mpi::RecvBuffer & recvBuffer, int targetRank = 0, MPI_Comm comm = MPI_COMM_WORLD );
diff --git a/src/core/mpi/MPIIO.cpp b/src/core/mpi/MPIIO.cpp
index b8eb53a7b761ceeba39a8270686ba654b2caf60f..13b90c7a20139ce4eb5dd8e3b02ea1b0ab2e1fdc 100644
--- a/src/core/mpi/MPIIO.cpp
+++ b/src/core/mpi/MPIIO.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file MPIIO.cppp
+//! \file MPIIO.cpp
 //! \ingroup core
 //! \author Florian Schornbaum <florian.schornbaum@fau.de>
 //! \author Martin Bauer <martin.bauer@fau.de>
diff --git a/src/core/mpi/MPITextFile.cpp b/src/core/mpi/MPITextFile.cpp
index 2d78b1acd8e812f02f76e5341105d04f6fcda483..5d9592d135c655bdb7dfed8d7da62805b58e4000 100644
--- a/src/core/mpi/MPITextFile.cpp
+++ b/src/core/mpi/MPITextFile.cpp
@@ -40,6 +40,7 @@ namespace mpi
  *
  *  \param filename          The name of the file to be written
  *  \param processLocalPart  The part of the file belonging to the calling process (size may differ among processes)
+ *  \param comm              The MPI communicator used for communication
  */
 //======================================================================================================================
 void writeMPITextFile(const std::string& filename, const std::string& processLocalPart,
diff --git a/src/core/mpi/OpenMPBufferSystem.impl.h b/src/core/mpi/OpenMPBufferSystem.impl.h
index dd0efe661cc0598d802627ebfda64952dbd4e640..5230d5b9de74a93ba98db6081e53ee752cc86bf7 100644
--- a/src/core/mpi/OpenMPBufferSystem.impl.h
+++ b/src/core/mpi/OpenMPBufferSystem.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file OpenMPBufferSystem.cpp
+//! \file OpenMPBufferSystem.impl.h
 //! \ingroup core
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/core/mpi/Reduce.h b/src/core/mpi/Reduce.h
index c93e9443fa92c4f23e4975d59fbdf6fd78c36d58..8f1b8e0f1e7b3a7d4b881d97654766f14981c3e5 100644
--- a/src/core/mpi/Reduce.h
+++ b/src/core/mpi/Reduce.h
@@ -434,10 +434,10 @@ void allReduceInplace( std::vector<T> & values, Operation operation, MPI_Comm co
 //======================================================================================================================
 /*!
  *  \brief Reduces values in a std::vector<bool> over all processes in-place
- *  		  
+ *
  *  Specialization of allReduceInplace<T>
- *  		  
- *  \param values     The boolean values to be reduced
+ *
+ *  \param bools      The boolean values to be reduced
  *  \param operation  The operation to be performed (one of BITWISE_AND, BITWISE_OR or BITWISE_XOR)
  *  \param comm       The MPI communicator used for communication
  */
diff --git a/src/core/selectable/AllSetSelectableObject.h b/src/core/selectable/AllSetSelectableObject.h
index 996f1166a187048e4b501378388b83eec073ce42..683f02833114f60244278a146d59c26f399b54a8 100644
--- a/src/core/selectable/AllSetSelectableObject.h
+++ b/src/core/selectable/AllSetSelectableObject.h
@@ -37,7 +37,7 @@ namespace selectable {
 *   \brief Implementation of SelectableObject using sets (see "AllSet.h") as selection attributes
 *
 *   AllSetSelectableObject is an implementation of SelectableObject that stores objects of type T which are attached
-*   with selection attributes of type AllSet<U>. For information on which objects are selected given a certain set as
+*   with selection attributes of type `AllSet<U>`. For information on which objects are selected given a certain set as
 *   selection request see the documentation of the function "select".
 */
 //**********************************************************************************************************************
diff --git a/src/core/selectable/SetSelectableObject.h b/src/core/selectable/SetSelectableObject.h
index e43740aef98f12da597710a7e5911c05dbc1b32c..cd4ae982be86f686a2761bdadd9bf184f52e19b4 100644
--- a/src/core/selectable/SetSelectableObject.h
+++ b/src/core/selectable/SetSelectableObject.h
@@ -38,8 +38,8 @@ namespace selectable {
 *          selection attributes, and objects of type Set (see "Set.h") as selector
 *
 *   SetSelectableObject is an implementation of SelectableObject that stores objects of type T which are attached with
-*   selection attributes of type SetSelectionPair<U>. Every object of type SetSelectionPair<U> contains two sets of
-*   type Set<U> - one "include" and one "exclude" set. For information on which objects are selected given a certain
+*   selection attributes of type `SetSelectionPair<U>`. Every object of type `SetSelectionPair<U>` contains two sets of
+*   type `Set<U>` - one "include" and one "exclude" set. For information on which objects are selected given a certain
 *   selection request see the documentation of the function "select".
 */
 //**********************************************************************************************************************
diff --git a/src/core/timing/Timer.h b/src/core/timing/Timer.h
index 15a9632656e55798888d0da9c6ed0a94651391c4..89568b4f5ca8c509168c2d24ff99984fe42babee 100644
--- a/src/core/timing/Timer.h
+++ b/src/core/timing/Timer.h
@@ -204,11 +204,11 @@ inline Timer<TP>::Timer()
 //**********************************************************************************************************************
 /*!\brief Constructor of the Timer class.
 // Initializes the timer with
-// \param counter      number of timing measurements already done
-// \param min          the minimum time of the measurements
-// \param max          the maximum time of the measurements
-// \param total        the total time of all measurements
-// \param sumOfSquares each measurement time squared, then summed
+// \param _counter      number of timing measurements already done
+// \param _min          the minimum time of the measurements
+// \param _max          the maximum time of the measurements
+// \param _total        the total time of all measurements
+// \param _sumOfSquares each measurement time squared, then summed
 */
 template< typename TP>
 inline Timer<TP>::Timer( uint_t _counter, double _min, double _max,
diff --git a/src/core/waLBerlaBuildInfo.in.cpp b/src/core/waLBerlaBuildInfo.in.cpp
index 737aff558a4e025a54ab4e22f3096c1214fb7d8b..65fa8887d9c2dec1d6f6e81a3c3a4295f0c687af 100644
--- a/src/core/waLBerlaBuildInfo.in.cpp
+++ b/src/core/waLBerlaBuildInfo.in.cpp
@@ -1,6 +1,6 @@
 //======================================================================================================================
 /*!
- *  \file   waLBerlaBuildInfo.cpp
+ *  \file   waLBerlaBuildInfo.in.cpp
  *  \brief  Configured by CMake, contains information about the current build
  */
 //======================================================================================================================
diff --git a/src/cuda/ExecutionTreeGPU.h b/src/cuda/ExecutionTreeGPU.h
index 0b4e565d56d5fd15a4985d0962eea300d99eea4b..9c865378cda0ce1125883ad1970dbda11d286f61 100644
--- a/src/cuda/ExecutionTreeGPU.h
+++ b/src/cuda/ExecutionTreeGPU.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file TaskTree.h
+//! \file ExecutionTreeGPU.h
 //! \ingroup cuda
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/cuda/FieldAccessor.h b/src/cuda/FieldAccessor.h
index b4650ea577bb462879298528158ddb43019f6356..c2c676d1d00a709cda8428d903914c5718999832 100644
--- a/src/cuda/FieldAccessor.h
+++ b/src/cuda/FieldAccessor.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file SimpleFieldAccessor.h
+//! \file FieldAccessor.h
 //! \ingroup cuda
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/cuda/FieldIndexing.h b/src/cuda/FieldIndexing.h
index 7ed089f4b7c136ed06e6755bd657d7007cbe9d6b..229d3b36b752d86826699430bf6734f8de8a8c4c 100644
--- a/src/cuda/FieldIndexing.h
+++ b/src/cuda/FieldIndexing.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file SimpleFieldIndexing.h
+//! \file FieldIndexing.h
 //! \ingroup cuda
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \brief Indexing Scheme that executes all elements of inner coordinate within on thread block
diff --git a/src/cuda/FieldIndexing.impl.h b/src/cuda/FieldIndexing.impl.h
index 3c579cd4b4333a25196cf5a9da5bf7482bed506a..7acafcdbbb9e21bf81d9bd13511d2f348f56fc4d 100644
--- a/src/cuda/FieldIndexing.impl.h
+++ b/src/cuda/FieldIndexing.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file SimpleFieldIndexing.cpp
+//! \file FieldIndexing.impl.h
 //! \ingroup cuda
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/cuda/FieldIndexing3D.impl.h b/src/cuda/FieldIndexing3D.impl.h
index bfb7b0edd99199fe9149935547f5035ea64cbd10..8a3a0f230388f41fcef091af4b4eef9013de2f39 100644
--- a/src/cuda/FieldIndexing3D.impl.h
+++ b/src/cuda/FieldIndexing3D.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file FieldIndexing3D.cpp
+//! \file FieldIndexing3D.impl.h
 //! \ingroup cuda
 //! \author Paulo Carvalho <prcjunior@inf.ufpr.br>
 //
diff --git a/src/cuda/FieldIndexingXYZ.impl.h b/src/cuda/FieldIndexingXYZ.impl.h
index c8ec561f9babf7fb643323e3dc74a0c5b721a032..6053e4ee8577e0687b4443f60a9bcfd1c4c1bf9c 100644
--- a/src/cuda/FieldIndexingXYZ.impl.h
+++ b/src/cuda/FieldIndexingXYZ.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file FieldIndexingXYZ.cpp
+//! \file FieldIndexingXYZ.impl.h
 //! \ingroup cuda
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/cuda/GPUCopy.h b/src/cuda/GPUCopy.h
index a854068cdc67fe5c4f9d202ecd7cc9559e9661f7..775d705b384520bbecfae4f0a347f2e541731902 100644
--- a/src/cuda/GPUCopy.h
+++ b/src/cuda/GPUCopy.h
@@ -40,9 +40,10 @@ namespace cuda {
  * \param src           source buffer
  * \param dstOffset     (x, y, z, f)-tuple containing the coordinate of the interval start point in the destination buffer
  * \param srcOffset     (x, y, z, f)-tuple containing the coordinate of the interval start point in the source buffer
- * \param dstAllocSizeY allocation size in y direction of the destination buffer
- * \param srcAllocSizeY allocation size in y direction of the source buffer
+ * \param dstAllocSizeZ allocation size in z direction of the destination buffer
+ * \param srcAllocSizeZ allocation size in z direction of the source buffer
  * \param typeSize      size of an f element
+ * \param intervalSize  interval size
  * \param copyStream    CUDA stream, if not NULL copy operations will be performed asynchronously
  *****************************************************************************************************************************/
 void copyDevToDevFZYX( const cudaPitchedPtr& dst, const cudaPitchedPtr& src,
@@ -62,6 +63,7 @@ void copyDevToDevFZYX( const cudaPitchedPtr& dst, const cudaPitchedPtr& src,
  * \param dstAllocSizeY allocation size in y direction of the destination buffer
  * \param srcAllocSizeY allocation size in y direction of the source buffer
  * \param typeSize      size of an f element
+ * \param intervalSize  interval size
  * \param copyStream    CUDA stream, if not NULL copy operations will be performed asynchronously
  *****************************************************************************************************************************/
 void copyDevToDevZYXF( const cudaPitchedPtr& dst, const cudaPitchedPtr& src,
@@ -72,7 +74,7 @@ void copyDevToDevZYXF( const cudaPitchedPtr& dst, const cudaPitchedPtr& src,
                        cudaStream_t copyStream );
 
 //*******************************************************************************************************************
-/*! Copy a 4D interval of a host buffer to a device buffer with fzyx memory layout. See copyDevToDevFZYX() for
+/*! Copy a 4D interval of a host buffer to a device buffer with fzyx memory layout. See \ref copyDevToDevFZYX() for
  * parameter information.
  *******************************************************************************************************************/
 void copyHostToDevFZYX( const cudaPitchedPtr& dst, unsigned char* src,
@@ -83,7 +85,7 @@ void copyHostToDevFZYX( const cudaPitchedPtr& dst, unsigned char* src,
                         cudaStream_t copyStream );
 
 //*******************************************************************************************************************
-/*! Copy a 4D interval of a host buffer to a device buffer with zyxf memory layout. See copyDevToDevZYXF() for
+/*! Copy a 4D interval of a host buffer to a device buffer with zyxf memory layout. See \ref copyDevToDevZYXF() for
  * parameter information.
  *******************************************************************************************************************/
 void copyHostToDevZYXF( const cudaPitchedPtr& dst, unsigned char* src,
@@ -94,7 +96,7 @@ void copyHostToDevZYXF( const cudaPitchedPtr& dst, unsigned char* src,
                         cudaStream_t copyStream );
 
 //*******************************************************************************************************************
-/*! Copy a 4D interval of a device buffer to a host buffer with fzyx memory layout. See copyDevToDevFZYX() for
+/*! Copy a 4D interval of a device buffer to a host buffer with fzyx memory layout. See \ref copyDevToDevFZYX() for
  * parameter information.
  *******************************************************************************************************************/
 void copyDevToHostFZYX( unsigned char* dst, const cudaPitchedPtr& src,
@@ -105,7 +107,7 @@ void copyDevToHostFZYX( unsigned char* dst, const cudaPitchedPtr& src,
                         cudaStream_t copyStream );
 
 //*******************************************************************************************************************
-/*! Copy a 4D interval of a device buffer to a host buffer with zyxf memory layout. See copyDevToDevZYXF() for
+/*! Copy a 4D interval of a device buffer to a host buffer with zyxf memory layout. See \ref copyDevToDevZYXF() for
  * parameter information.
  *******************************************************************************************************************/
 void copyDevToHostZYXF( unsigned char* dst, const cudaPitchedPtr& src,
diff --git a/src/cuda/GPUField.impl.h b/src/cuda/GPUField.impl.h
index 54c3b40cc808543a296d2151e03aeb6d1a5485a3..5dd3e58409c95e4163e0b086832f69ab11cac136 100644
--- a/src/cuda/GPUField.impl.h
+++ b/src/cuda/GPUField.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file GPUField.cpp
+//! \file GPUField.impl.h
 //! \ingroup cuda
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/cuda/HostFieldAllocator.h b/src/cuda/HostFieldAllocator.h
index 0c08bfadbbc0629dccd307477ddc932590a1e751..7276c495db75933112a1af697c3181274fd7b450 100644
--- a/src/cuda/HostFieldAllocator.h
+++ b/src/cuda/HostFieldAllocator.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file CudaHostFieldAllocator.h
+//! \file HostFieldAllocator.h
 //! \ingroup cuda
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \brief Allocator that allocates a CPU! field using cudaHostAlloc
diff --git a/src/cuda/communication/CustomMemoryBuffer.h b/src/cuda/communication/CustomMemoryBuffer.h
index ddf475b1a1a2dece4ab39e908cc04dc12e2ee7fc..d0e8bdff930757010db67d5aa96c90ff35c34c9c 100644
--- a/src/cuda/communication/CustomMemoryBuffer.h
+++ b/src/cuda/communication/CustomMemoryBuffer.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file BasicBuffer.h
+//! \file CustomMemoryBuffer.h
 //! \ingroup cuda
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \brief Basic Buffer supporting different memory spaces
diff --git a/src/cuda/communication/CustomMemoryBuffer.impl.h b/src/cuda/communication/CustomMemoryBuffer.impl.h
index cfc5d8283a00664585405af82d3b4056c6d2fa77..3d7715f89f3776e712011365491e96473ec1418a 100644
--- a/src/cuda/communication/CustomMemoryBuffer.impl.h
+++ b/src/cuda/communication/CustomMemoryBuffer.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file BasicBuffer.h
+//! \file CustomMemoryBuffer.impl.h
 //! \ingroup cuda
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/executiontree/ExecutionTree.cpp b/src/executiontree/ExecutionTree.cpp
index 346b089ecd22d2072bd7ca47fa2054ca684767f2..3ceca45b9332ab3829e406830e3e6ae081dbeec2 100644
--- a/src/executiontree/ExecutionTree.cpp
+++ b/src/executiontree/ExecutionTree.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file TaskTree.cpp
+//! \file ExecutionTree.cpp
 //! \ingroup executiontree
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/executiontree/ExecutionTree.h b/src/executiontree/ExecutionTree.h
index b9d39d79835894d7d959135c8b8d7a2e1a1d397a..131afc34c93bb45366d5f67cf12ac34291326b27 100644
--- a/src/executiontree/ExecutionTree.h
+++ b/src/executiontree/ExecutionTree.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file TaskTree.h
+//! \file ExecutionTree.h
 //! \ingroup executiontree
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
@@ -57,7 +57,7 @@ template< typename FunctorType > class SharedSweep;
 
 /*! Creates a functor node around any callable object. The wrapped functor is copied.
  *
- * \param any callable object. The object is copied - if its state has to be modified later, pass a shared_ptr to a functor instead
+ * \param t callable object. The object is copied - if its state has to be modified later, pass a shared_ptr to a functor instead
  * \param name optional name of the functor node
  * \param timingTree optional timing tree object to time all executions of this functor
  */
@@ -86,7 +86,7 @@ shared_ptr< Sequence > parallelSequence( std::initializer_list< IFunctionNodePtr
 /*! Note that runs its contents only every n'th call
  *
  * \param node task that is only run every n'th call
- * \param name the interval i.e. "n"
+ * \param interval the interval i.e. "n"
  * \param onFirst if false the task is not run at the first call
  * \param startValue initial call counter
  */
diff --git a/src/executiontree/ExecutionTree.impl.h b/src/executiontree/ExecutionTree.impl.h
index 8bdfb2bed07f57cd05ce7361cd4b9c4917770039..6ddb7c28230085e7c2349937bd7531809e6cfb62 100644
--- a/src/executiontree/ExecutionTree.impl.h
+++ b/src/executiontree/ExecutionTree.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file TaskTree.impl.h
+//! \file ExecutionTree.impl.h
 //! \ingroup executiontree
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/executiontree/ExecutionTreeSweep.h b/src/executiontree/ExecutionTreeSweep.h
index e450d98438f7222ac63da9a0a3ae48e7f5b99523..d1c6e05de10dd0295e178d6de6787b64ab48fd03 100644
--- a/src/executiontree/ExecutionTreeSweep.h
+++ b/src/executiontree/ExecutionTreeSweep.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file TaskTree.h
+//! \file ExecutionTreeSweep.h
 //! \ingroup executiontree
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/field/AddToStorage.h b/src/field/AddToStorage.h
index 4999b174639176547a878c3b15eadab44d688d2d..c60484babbe8d55e8c35c212779c22580e2d9c5e 100644
--- a/src/field/AddToStorage.h
+++ b/src/field/AddToStorage.h
@@ -223,11 +223,9 @@ BlockDataID addToStorage( const shared_ptr< BlockStorage_T > & blocks,
 //**********************************************************************************************************************
 /*! Adds a copy of an existing field to BlockStorage
 *
-* Template parameters:
-*   Field_T         the type of the field that should be cloned ( and the type that is created )
-*   BlockStorage_T  the type of the BlockStorage ( will be deduced automatically )
+*   \tparam Field_T         the type of the field that should be cloned ( and the type that is created )
+*   \tparam BlockStorage_T  the type of the BlockStorage ( will be deduced automatically )
 *
-* Parameters:
 *   \param blocks        BlockStorage where the original field is stored and the new one is created
 *   \param fieldToClone  BlockDataID of the Field that is cloned
 *   \param identifier    name for new the field ( displayed in GUI and debugging functions )
@@ -253,11 +251,9 @@ BlockDataID addCloneToStorage( const shared_ptr< BlockStorage_T > & blocks,
 //**********************************************************************************************************************
 /*! Adds a flattened shallow copy of an existing field to BlockStorage
 *
-* Template parameters:
-*   Field_T         the type of the field that should be cloned and flattened
-*   BlockStorage_T  the type of the BlockStorage ( will be deduced automatically )
+*   \tparam Field_T         the type of the field that should be cloned and flattened
+*   \tparam BlockStorage_T  the type of the BlockStorage ( will be deduced automatically )
 *
-* Parameters:
 *   \param blocks        BlockStorage where the original field is stored and the new one is created
 *   \param fieldToClone  BlockDataID of the Field that is cloned
 *   \param identifier    name for new the field ( displayed in GUI and debugging functions )
diff --git a/src/field/CMakeDefs.in.h b/src/field/CMakeDefs.in.h
index 2844dc4da6a907aec2eedb4168320e137a39eb52..9a65511c5e39eebe18fd267a3158afbf9a453a57 100644
--- a/src/field/CMakeDefs.in.h
+++ b/src/field/CMakeDefs.in.h
@@ -1,6 +1,6 @@
 //======================================================================================================================
 /*!
- *  \file   CMakeDefs.h
+ *  \file   CMakeDefs.in.h
  *  \brief  Definitions for field module configured by cmake
  */
 //======================================================================================================================
diff --git a/src/field/Field.impl.h b/src/field/Field.impl.h
index c5fec45c77194c58cf10f2e0ba633740d54d89eb..fc679c6893f1cbfd95961b32fb90ceec90a63d04 100644
--- a/src/field/Field.impl.h
+++ b/src/field/Field.impl.h
@@ -54,10 +54,10 @@ namespace field {
    //*******************************************************************************************************************
    /*!Creates an uninitialized field of given size
     *
-    * \param xSize  size of x dimension
-    * \param ySize  size of y dimension
-    * \param zSize  size of z dimension
-    * \param layout memory layout of the field (see Field::Layout)
+    * \param _xSize  size of x dimension
+    * \param _ySize  size of y dimension
+    * \param _zSize  size of z dimension
+    * \param l       memory layout of the field (see Field::Layout)
     * \param alloc  class that describes how to allocate memory for the field, see FieldAllocator
     *******************************************************************************************************************/
    template<typename T, uint_t fSize_>
@@ -72,11 +72,11 @@ namespace field {
    //*******************************************************************************************************************
    /*! Creates a field and initializes it with constant
     *
-    * \param xSize   size of x dimension
-    * \param ySize   size of y dimension
-    * \param zSize   size of z dimension
+    * \param _xSize  size of x dimension
+    * \param _ySize  size of y dimension
+    * \param _zSize  size of z dimension
     * \param initVal every element of the field is set to initVal
-    * \param layout  memory layout of the field (see Field::Layout)
+    * \param l       memory layout of the field (see Field::Layout)
     * \param alloc  class that describes how to allocate memory for the field, see FieldAllocator
     *******************************************************************************************************************/
    template<typename T, uint_t fSize_>
@@ -92,11 +92,11 @@ namespace field {
    //*******************************************************************************************************************
    /*! Creates a field and initializes f coordinate with vector values
     *
-    * \param xSize   size of x dimension
-    * \param ySize   size of y dimension
-    * \param zSize   size of z dimension
+    * \param _xSize  size of x dimension
+    * \param _ySize  size of y dimension
+    * \param _zSize  size of z dimension
     * \param fValues initializes f coordinate with values from vector (see set(std::vector&) )
-    * \param layout  memory layout of the field (see Field::Layout)
+    * \param l       memory layout of the field (see Field::Layout)
     * \param alloc  class that describes how to allocate memory for the field, see FieldAllocator
     *******************************************************************************************************************/
    template<typename T, uint_t fSize_>
@@ -114,6 +114,9 @@ namespace field {
    /*! Deletes all stored data, and resizes the field
     *
     *  The resized field is uninitialized.
+    * \param _xSize  size of x dimension
+    * \param _ySize  size of y dimension
+    * \param _zSize  size of z dimension
     *******************************************************************************************************************/
    template<typename T, uint_t fSize_>
    void Field<T,fSize_>::resize( uint_t _xSize, uint_t _ySize, uint_t _zSize )
@@ -294,10 +297,10 @@ namespace field {
     * Must be called exactly once!  This is automatically called by all constructors
     * that take at least one argument
     *
-    * \param xSize   size of x dimension
-    * \param ySize   size of y dimension
-    * \param zSize   size of z dimension
-    * \param layout  memory layout of the field (see Field::Layout)
+    * \param _xSize  size of x dimension
+    * \param _ySize  size of y dimension
+    * \param _zSize  size of z dimension
+    * \param l       memory layout of the field (see Field::Layout)
     * \param alloc   the allocator to use. If a NULL shared pointer is given, a sensible default is selected,
     *                depending on layout
     * \param innerGhostLayerSizeForAlignedAlloc
@@ -1082,8 +1085,12 @@ namespace field {
     * This is used for example in the constructor of the GhostLayerField
     *
     * Internally this is implementing by adding an offset to the values_ pointer, and by adapting the size_ members.
-    * \param xOff The x coordinate that is afterwards mapped to zero
-    * \param xs   The new size of the x coordinate. Has to be smaller than (old xSize())-xOff
+    * \param xOffset The x coordinate that is afterwards mapped to zero
+    * \param xs      The new size of the x coordinate. Has to be smaller than (old xSize())-xOffset
+    * \param yOffset The y coordinate that is afterwards mapped to zero
+    * \param ys      The new size of the y coordinate. Has to be smaller than (old ySize())-yOffset
+    * \param zOffset The z coordinate that is afterwards mapped to zero
+    * \param zs      The new size of the z coordinate. Has to be smaller than (old zSize())-zOffset
     *******************************************************************************************************************/
    template<typename T, uint_t fSize_>
    void Field<T,fSize_>::setOffsets(uint_t xOffset, uint_t xs,
diff --git a/src/field/FlagField.impl.h b/src/field/FlagField.impl.h
index 4e32e312cae0e4d23c697ec1f785ff34b4abff29..b765323a9d89c430fc226e78e556d5dfdad68668 100644
--- a/src/field/FlagField.impl.h
+++ b/src/field/FlagField.impl.h
@@ -48,9 +48,9 @@ namespace field {
    //*******************************************************************************************************************
    /*!\brief Constructor. Initializes field with 0 (no flags set).
     *
-    * \param xSize  size of x dimension without ghost layers
-    * \param ySize  size of y dimension without ghost layers
-    * \param zSize  size of z dimension without ghost layers
+    * \param xs     size of x dimension without ghost layers
+    * \param ys     size of y dimension without ghost layers
+    * \param zs     size of z dimension without ghost layers
     * \param gl     number of ghost layers
     * \param alloc  class that describes how to allocate memory for the field, see FieldAllocator
     *******************************************************************************************************************/
@@ -139,8 +139,8 @@ namespace field {
    //*******************************************************************************************************************
    /*!\brief Adds every (inner) cell where at least all bits of mask are set to the CellVector (in inner coordinates)
     *
-    * \param mask [in]  bit mask. Test if a cell is added: (content & mask) == true
-    * \param cv   [out] cell vector where the cells are added to, in inner coordinates
+    * \param[in]  mask  bit mask. Test if a cell is added: (content & mask) == true
+    * \param[out] cv    cell vector where the cells are added to, in inner coordinates
     *******************************************************************************************************************/
    template<typename T>
    void  FlagField<T>::getCellsWhereMaskIsSet(T mask, CellVector & cv) const
@@ -195,7 +195,7 @@ namespace field {
    //*******************************************************************************************************************
    /*!\brief Registers a flag. Uses the next free bit in the field.
     *
-    * \param uid    uid of the flag
+    * \param uid    UID for the flag
     * \return       Mask, that has exactly one bit set to one.
     *******************************************************************************************************************/
    template<typename T>
@@ -230,7 +230,7 @@ namespace field {
     *
     * If bitNr is not important use registerFlag(name) which assigns the next free bit to the flag.
     *
-    * \param name   string identifier for the flag
+    * \param uid    UID for the flag
     * \param bitNr  The bit nr associated with the flag (NOT the mask!). Has to be smaller than sizeof(flag_type)*8
     *               There exists also a function where this information is not needed, and the next free bit is used.
     * \return       Mask, that has the given bit set to one i.e. 1 << bitNr
@@ -484,7 +484,8 @@ namespace field {
     //******************************************************************************************************************
     /*!\brief Ores the neighborhood of the specified stencil and checks whether the bits of mask are set
      *
-     * \param mask [in]  bit mask. Test if a cell is added: (content & mask) == true
+     * \param[in] i     field pointer.
+     * \param[in] mask  bit mask. Test if a cell is added: (content & mask) == true
      ******************************************************************************************************************/
     template<class Sten, typename FieldPtrOrIterator>
     inline bool isFlagInNeighborhood(const FieldPtrOrIterator & i, typename FieldPtrOrIterator::value_type mask)
@@ -507,6 +508,7 @@ namespace field {
 
     //******************************************************************************************************************
     /*!\brief Ores the neighborhood of the specified stencil and returns mask
+     * \param[in] i     field pointer.
      ******************************************************************************************************************/
     template<class Sten, typename FieldPtrOrIterator>
     inline typename std::remove_const<typename FieldPtrOrIterator::value_type>::type
diff --git a/src/field/GhostLayerField.impl.h b/src/field/GhostLayerField.impl.h
index 8e122c36a2e9665c4c3b3b93e78cd066625bdac6..d594274e78e27034b7a3d495e02a49dcaf8da28c 100644
--- a/src/field/GhostLayerField.impl.h
+++ b/src/field/GhostLayerField.impl.h
@@ -53,11 +53,11 @@ namespace field {
    //*******************************************************************************************************************
    /*!\brief Creates an uninitialized field of given size
     *
-    * \param xSize  size of x dimension without ghost layers
-    * \param ySize  size of y dimension without ghost layers
-    * \param zSize  size of z dimension without ghost layers
+    * \param _xSize size of x dimension without ghost layers
+    * \param _ySize size of y dimension without ghost layers
+    * \param _zSize size of z dimension without ghost layers
     * \param gl     number of ghost layers
-    * \param layout memory layout of the field (see Layout)
+    * \param l      memory layout of the field (see Layout)
     * \param alloc  class that describes how to allocate memory for the field, see FieldAllocator
     *******************************************************************************************************************/
    template<typename T, uint_t fSize_>
@@ -71,12 +71,12 @@ namespace field {
    //*******************************************************************************************************************
    /*!\brief Creates a field and initializes it with constant value
     *
-    * \param xSize   size of x dimension without ghost layers
-    * \param ySize   size of y dimension without ghost layers
-    * \param zSize   size of z dimension without ghost layers
+    * \param _xSize  size of x dimension without ghost layers
+    * \param _ySize  size of y dimension without ghost layers
+    * \param _zSize  size of z dimension without ghost layers
     * \param gl      number of ghost layers
     * \param initVal every element of the field is set to initVal (also ghost layers)
-    * \param layout  memory layout of the field (see Layout)
+    * \param l       memory layout of the field (see Layout)
     * \param alloc  class that describes how to allocate memory for the field, see FieldAllocator
     *******************************************************************************************************************/
    template<typename T, uint_t fSize_>
@@ -92,12 +92,12 @@ namespace field {
    //*******************************************************************************************************************
    /*!\brief Creates a field and initializes f coordinate with vector values
     *
-    * \param xSize   size of x dimension
-    * \param ySize   size of y dimension
-    * \param zSize   size of z dimension
+    * \param _xSize  size of x dimension
+    * \param _ySize  size of y dimension
+    * \param _zSize  size of z dimension
     * \param gl      number of ghost layers
     * \param fValues initializes f coordinate with values from vector (see set(std::vector&) ) also ghost layers
-    * \param layout  memory layout of the field (see Layout)
+    * \param l       memory layout of the field (see Layout)
     * \param alloc   class that describes how to allocate memory for the field, see FieldAllocator
     *******************************************************************************************************************/
    template<typename T, uint_t fSize_>
@@ -116,11 +116,11 @@ namespace field {
     *
     * Is automatically called by constructors that take at least one argument
     *
-    * \param xSize  size of x dimension without ghost layers
-    * \param ySize  size of y dimension without ghost layers
-    * \param zSize  size of z dimension without ghost layers
+    * \param _xSize size of x dimension without ghost layers
+    * \param _ySize size of y dimension without ghost layers
+    * \param _zSize size of z dimension without ghost layers
     * \param gl     number of ghost layers
-    * \param layout memory layout of the field (see Layout)
+    * \param l      memory layout of the field (see Layout)
     * \param alloc  class that describes how to allocate memory for the field, see FieldAllocator
     *******************************************************************************************************************/
     template<typename T, uint_t fSize_>
diff --git a/src/field/GhostRegions.h b/src/field/GhostRegions.h
index 359163aedd81b24e03bddbabb35453b006926146..7745968acb073ebca98d8cf107212ad2692cadfb 100644
--- a/src/field/GhostRegions.h
+++ b/src/field/GhostRegions.h
@@ -31,6 +31,7 @@ namespace field {
 //*******************************************************************************************************************
 /*!\brief Constructs CellInterval containing the ghost region in the specified direction
  *
+ * \param f   field
  * \param d   direction of the ghost layer  For W,E,N,S,T,B   a slice is returned
  *                                          for NW, NE, ..    an edge is returned
  *                                          for TBE, TNW, ... a corner ( single cell ) is returned
@@ -72,6 +73,7 @@ CellInterval getGhostRegion( const GhostLayerField_T & f, stencil::Direction d,
 /*!\brief Constructs CellInterval containing the last slice before the ghost layer begins
  *        for a given direction.
  *
+ * \param f   field
  * \param d   direction of the border .     For W,E,N,S,T,B   a slice is returned
  *                                          for NW, NE, ..    an edge is returned
  *                                          for TBE, TNW, ... a corner ( single cell ) is returned
diff --git a/src/field/StabilityChecker.h b/src/field/StabilityChecker.h
index fbbc530e74564421f2053c3404a6c6352a99938c..dde22f11302c4a9e0ddf05fc53e9c050f48eec7e 100644
--- a/src/field/StabilityChecker.h
+++ b/src/field/StabilityChecker.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file StabilityCheckerer.h
+//! \file StabilityChecker.h
 //! \ingroup field
 //! \author Florian Schornbaum <florian.schornbaum@fau.de>
 //
diff --git a/src/field/allocation/FieldAllocator.h b/src/field/allocation/FieldAllocator.h
index 781cda4bc2b8f8547f94473b561d475576f1bb2d..7a3164edee1dacc3dafb8675bdb15740b33a5322 100644
--- a/src/field/allocation/FieldAllocator.h
+++ b/src/field/allocation/FieldAllocator.h
@@ -62,12 +62,14 @@ namespace field {
          /**
           * \brief Allocate memory for a field of given sizes and initializes reference counter with one
           *
-          * \param size*       The size of the field. size0*size1*size2*size*3 is the minimum amount of
+          * \param size0,size1,size2,size3
+          *                    The size of the field. size0*size1*size2*size3 is the minimum amount of
           *                    memory that has to be allocated. size0 is the size of the outermost (slowest)
           *                    coordinate, size3 the size of the fastest.
           *
-          * \param allocSize*  Output parameters. The actual size of the allocation may be bigger. Here
-          *                    allocSize can be bigger than size if alignment >0. There is no allocSize0,
+          * \param allocSize1,allocSize2,allocSize3
+          *                    Output parameters. The actual size of the allocation may be bigger. Here
+          *                    allocSize* can be bigger than size* if alignment >0. There is no allocSize0,
           *                    since extra allocations (padding) for the outer coordinate do not make sense.
           */
          T * allocate (  uint_t size0, uint_t size1, uint_t size2, uint_t size3,
@@ -116,7 +118,7 @@ namespace field {
          /**
           * \brief Increments the reference count for the given pointer
           *
-          * \param allocatedPointer a pointer that was returned by the allocate function
+          * \param mem a pointer that was returned by the allocate function
           *
           * The reference counter is the number of field objects that currently use the allocated
           * memory region
@@ -141,11 +143,11 @@ namespace field {
          /**
           * \brief Decrements the reference count for the given pointer
           *
-          * \param allocatedPointer a pointer that was returned by the allocate function
+          * \param mem a pointer that was returned by the allocate function
           *
           * A memory region is freed only when the reference count is zero.
-          * \return true if memory was freed,
-          *         false if some other field still uses the memory
+          * \return \a true if memory was freed,
+          *         \a false if some other field still uses the memory
           */
          bool decrementReferenceCount( T * mem )
          {
diff --git a/src/field/communication/ReducePackInfo.h b/src/field/communication/ReducePackInfo.h
index 532b437246bedb88e2ba13f80605432888f08d44..71bd939fd0c8b4ee0783f056b5a2a9ba6f51a690 100644
--- a/src/field/communication/ReducePackInfo.h
+++ b/src/field/communication/ReducePackInfo.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file ReduceFieldPackInfo.h
+//! \file ReducePackInfo.h
 //! \ingroup field
 //! \author Matthias Markl <matthias.markl@fau.de>
 //! \brief Stores/reduces ghost layers to/from a communication buffer
diff --git a/src/field/communication/StencilRestrictedPackInfo.h b/src/field/communication/StencilRestrictedPackInfo.h
index 45527cadf5e11b66f0a70b7c88127af11cd6498a..b82050340a359f0d8c91bb96343a4f0198116c7d 100644
--- a/src/field/communication/StencilRestrictedPackInfo.h
+++ b/src/field/communication/StencilRestrictedPackInfo.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file PdfFieldPackInfo.h
+//! \file StencilRestrictedPackInfo.h
 //! \ingroup lbm
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Florian Schornbaum <florian.schornbaum@fau.de>
diff --git a/src/field/iterators/FieldIterator.impl.h b/src/field/iterators/FieldIterator.impl.h
index d2184e9a8201fbd12a6ca90e6aac9e016ec8ec83..dad6841f9b1e4599431332d32208db9acdee79ed 100644
--- a/src/field/iterators/FieldIterator.impl.h
+++ b/src/field/iterators/FieldIterator.impl.h
@@ -304,6 +304,7 @@ inline bool FieldIterator<T,fs>::operator!=( const FieldIterator<T,fs>& it ) con
 //**********************************************************************************************************************
 /*!\brief Neighbor access relative to current position
  * \param d Direction enumeration which defines deltas for x,y,z
+ * \param cf Delta for f
  **********************************************************************************************************************/
 template <typename T, uint_t fs>
 inline T & FieldIterator<T,fs>::neighbor( stencil::Direction d, cell_idx_t cf ) const
@@ -315,6 +316,8 @@ inline T & FieldIterator<T,fs>::neighbor( stencil::Direction d, cell_idx_t cf )
 
 //**********************************************************************************************************************
 /*!\brief uint_t variant of above function
+ * \param d Direction enumeration which defines deltas for x,y,z
+ * \param cf Delta for f
  **********************************************************************************************************************/
 template <typename T, uint_t fs>
 inline T & FieldIterator<T,fs>::neighbor( stencil::Direction d, uint_t cf ) const
@@ -325,7 +328,10 @@ inline T & FieldIterator<T,fs>::neighbor( stencil::Direction d, uint_t cf ) cons
 
 //**********************************************************************************************************************
 /*!\brief Neighbor access relative to current position
- * \param d Direction enumeration which defines deltas for x,y,z,f
+ * \param cx Delta for x
+ * \param cy Delta for y
+ * \param cz Delta for z
+ * \param cf Delta for f
  **********************************************************************************************************************/
 template <typename T, uint_t fs>
 inline T & FieldIterator<T,fs>::neighbor( cell_idx_t cx, cell_idx_t cy, cell_idx_t cz, cell_idx_t cf ) const
@@ -346,6 +352,10 @@ inline T & FieldIterator<T,fs>::neighbor( cell_idx_t cx, cell_idx_t cy, cell_idx
 //**********************************************************************************************************************
 /*!\brief Neighbor variant that takes unsigned int as f parameter,
  *        needed since the stencil toIdx() is an unsigned int
+ * \param cx Delta for x
+ * \param cy Delta for y
+ * \param cz Delta for z
+ * \param cf Delta for f
  **********************************************************************************************************************/
 template <typename T, uint_t fs>
 inline T & FieldIterator<T,fs>::neighbor( cell_idx_t cx, cell_idx_t cy, cell_idx_t cz, uint_t cf ) const
@@ -358,6 +368,7 @@ inline T & FieldIterator<T,fs>::neighbor( cell_idx_t cx, cell_idx_t cy, cell_idx
 //**********************************************************************************************************************
 /*!\brief For beginXYZ iterators, one often needs a specific f
  * Assumes that iterator stands at f==0
+ * \param cf Delta for f
  **********************************************************************************************************************/
 template <typename T, uint_t fs>
 inline  T & FieldIterator<T,fs>::getF( cell_idx_t cf ) const
@@ -373,6 +384,7 @@ inline  T & FieldIterator<T,fs>::getF( cell_idx_t cf ) const
 //**********************************************************************************************************************
 /*!\brief Equivalent to neighbor(cell_idx_t) see above.
  *        Takes an uint_t instead a cell_idx_t, since stencil::toIndex() returns uint_t
+ * \param cf Delta for f
  **********************************************************************************************************************/
 template <typename T, uint_t fs>
 inline  T & FieldIterator<T,fs>::getF( uint_t cf ) const
diff --git a/src/field/vtk/VTKWriter.h b/src/field/vtk/VTKWriter.h
index 513b920e1b1334cf19c3816cba394496b750e2d1..9b2232908b09766e9296c5529ff5dc205ae3a1d9 100644
--- a/src/field/vtk/VTKWriter.h
+++ b/src/field/vtk/VTKWriter.h
@@ -60,8 +60,8 @@ namespace field {
 * \param continuousNumbering  important when writeFrequency > 1,  if true the simulation steps are numbered continuously
 *                             otherwise they are numbered after the timestep
 * \param binary               switch for binary output
-* \param litteEndian          byte order
-* \param simultaneousIOOps    number of simultaneous IO operations, 0 means all processes write concurrently
+* \param littleEndian         byte order
+* \param simultaneousIOOperations    number of simultaneous IO operations, 0 means all processes write concurrently
 *                             limiting the number of simultaneous IO operations makes sense for huge number of processes
 *                             in order to not overload the file system
 * \param requiredStates       see selectable concept
diff --git a/src/gather/CellGatherPackInfo.h b/src/gather/CellGatherPackInfo.h
index e12e5ab6f205f5ca11f3762da6a471366185e144..81d2f0018eeb4b104bde2f146c6fefe7e333def6 100644
--- a/src/gather/CellGatherPackInfo.h
+++ b/src/gather/CellGatherPackInfo.h
@@ -64,7 +64,7 @@ public:
    *
    * \param bs          StructuredBlockStorage containing the field
    * \param fieldID     BlockDataID of the field that should be collected
-   * \param container   Container of cells in global coordinates, order of cells is important for output
+   * \param containerOfGlobalCells   Container of cells in global coordinates, order of cells is important for output
    * \param dp          data processor where gathered data is delivered to
    */
    //*******************************************************************************************************************
diff --git a/src/geometry/bodies/Ellipsoid.h b/src/geometry/bodies/Ellipsoid.h
index 0dbaf4b0ab158615fc52e95f4fad14e0a6fd991f..12b48ca32905137deb88dc5af59cd34941b441ca 100644
--- a/src/geometry/bodies/Ellipsoid.h
+++ b/src/geometry/bodies/Ellipsoid.h
@@ -50,7 +50,7 @@ namespace geometry {
       /*************************************************************************************************************//**
       *  Ellipsoid constructor
       *
-      *  \param midpoin t   midpoint of the ellipsoid
+      *  \param midpoint    midpoint of the ellipsoid
       *  \param axis1       the first semi-axis of the ellipsoid ( associated with radius1 )
       *                     not required to be normalized, is normalized internally
       *  \param axis2       second semi-axis (must not be parallel to axis1 ) should ideally be perpendicular to axis1
diff --git a/src/geometry/initializer/BoundaryFromImage.impl.h b/src/geometry/initializer/BoundaryFromImage.impl.h
index 7b75bdf5c2cbfe1511cd55e6c777e175eedf88b0..0284887aa6bc36bd258869aa22bdcbe5b4ca41e3 100644
--- a/src/geometry/initializer/BoundaryFromImage.impl.h
+++ b/src/geometry/initializer/BoundaryFromImage.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file BoundaryFromImage.impl
+//! \file BoundaryFromImage.impl.h
 //! \ingroup geometry
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/geometry/initializer/BoundarySetter.h b/src/geometry/initializer/BoundarySetter.h
index efbc38c314edf501dd19483e864e79271705b834..e793b505ef2c530d5856799d57753e5fc699181d 100644
--- a/src/geometry/initializer/BoundarySetter.h
+++ b/src/geometry/initializer/BoundarySetter.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file Helper.h
+//! \file BoundarySetter.h
 //! \ingroup geometry
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/geometry/initializer/BoundarySetterFlagFieldSpecialization.h b/src/geometry/initializer/BoundarySetterFlagFieldSpecialization.h
index f731a37f02fd8b68bf9836c35a50e2079617319b..8e3ee37ee0f2b342a12e7a11e3c5f123be50f4c6 100644
--- a/src/geometry/initializer/BoundarySetterFlagFieldSpecialization.h
+++ b/src/geometry/initializer/BoundarySetterFlagFieldSpecialization.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file Helper.h
+//! \file BoundarySetterFlagFieldSpecialization.h
 //! \ingroup geometry
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/geometry/initializer/ScalarFieldFromBody.h b/src/geometry/initializer/ScalarFieldFromBody.h
index 617097ad85d1e79b5c98046101a4c7f59425b0e7..49f4bf1172f4a6593027865e552896812645bec4 100644
--- a/src/geometry/initializer/ScalarFieldFromBody.h
+++ b/src/geometry/initializer/ScalarFieldFromBody.h
@@ -107,11 +107,10 @@ namespace initializer {
       * \param body       The body object - has to implement either overlapFraction(...), or contains(...)
       *                   see BodyOverlapFunctions for detailed body concept
       * \param value      The value to set on the matched cells in the field.
-      * \param parser     A function parser which will have the variables x,y,z bound before it is evaluated
       * \param addOrSet   If true, the value is added to scalar field
       *                   If false, the value is set on the scalar field.
       * \param id         If operating on a vector of fields, which field to treat. Zero otherwise.
-
+      *
       *  Supported bodies are Sphere, Ellipsoid, AABB.
       *  To add a new supported body implement concept defined in BodyOverlapFunctions.h, and
       *  add an explicit template instantiation in ScalarFieldFromBody.cpp for the new body.
@@ -119,6 +118,21 @@ namespace initializer {
       *****************************************************************************************************************/
       template<typename Body>
       void init( const Body & body, Value_T value, bool addOrSet, std::vector<BlockDataID>::size_type id = 0 );
+      /*************************************************************************************************************//**
+      * Sets a body on the scalar field
+      *
+      * \param body       The body object - has to implement either overlapFraction(...), or contains(...)
+      *                   see BodyOverlapFunctions for detailed body concept
+      * \param parser     A function parser which will have the variables x,y,z bound before it is evaluated
+      * \param addOrSet   If true, the value is added to scalar field
+      *                   If false, the value is set on the scalar field.
+      * \param id         If operating on a vector of fields, which field to treat. Zero otherwise.
+      *
+      *  Supported bodies are Sphere, Ellipsoid, AABB.
+      *  To add a new supported body implement concept defined in BodyOverlapFunctions.h, and
+      *  add an explicit template instantiation in ScalarFieldFromBody.cpp for the new body.
+      *
+      *****************************************************************************************************************/
       template<typename Body>
       void init( const Body & body, math::FunctionParser & parser, bool addOrSet, std::vector<BlockDataID>::size_type id = 0 );
 
diff --git a/src/geometry/initializer/ScalarFieldFromBody.impl.h b/src/geometry/initializer/ScalarFieldFromBody.impl.h
index fc40429549525a7d6a52af2abbc2433cbf8b7106..7c96eea77189949df6c8e6b3c3f92491406eab27 100644
--- a/src/geometry/initializer/ScalarFieldFromBody.impl.h
+++ b/src/geometry/initializer/ScalarFieldFromBody.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file ScalarFieldFromBody.cpp
+//! \file ScalarFieldFromBody.impl.h
 //! \ingroup geometry
 //! \author Michael Kuron <mkuron@icp.uni-stuttgart.de>
 //
diff --git a/src/geometry/initializer/ScalarFieldFromCellInterval.h b/src/geometry/initializer/ScalarFieldFromCellInterval.h
index 4011a9c36337476b3aaa8aff2a1fcffa4067f869..9832b0989c6c7d8a6b233862a15a21b3ff684e89 100644
--- a/src/geometry/initializer/ScalarFieldFromCellInterval.h
+++ b/src/geometry/initializer/ScalarFieldFromCellInterval.h
@@ -65,7 +65,7 @@ class ScalarFieldFromCellInterval : public Initializer
 public:
 
    typedef typename Field_T::value_type Value_T;
-	
+
    ScalarFieldFromCellInterval( StructuredBlockStorage & blocks, BlockDataID fieldId )
       : ScalarFieldFromCellInterval(blocks, std::vector<BlockDataID>(1, fieldId))
    {}
@@ -86,10 +86,16 @@ public:
    *
    * \param interval             the cell interval
    * \param value                which value to set in the field for all cells in the interval
-   * \param parser               a function parser which will have the variables x,y,z bound before it is evaluated
    * \param id                   which field to operate on (if operating on a vector of fields), defaults to 0
    *****************************************************************************************************************/
    void init( const CellInterval & interval, Value_T value, std::vector<BlockDataID>::size_type id = 0 );
+   /*************************************************************************************************************//**
+   * Function for manually setting a scalar field on a CellInterval
+   *
+   * \param interval             the cell interval
+   * \param parser               a function parser which will have the variables x,y,z bound before it is evaluated
+   * \param id                   which field to operate on (if operating on a vector of fields), defaults to 0
+   *****************************************************************************************************************/
    void init( const CellInterval & interval, math::FunctionParser & parser, std::vector<BlockDataID>::size_type id = 0 );
 
 
diff --git a/src/geometry/mesh/TriangleMeshIO.h b/src/geometry/mesh/TriangleMeshIO.h
index ff64209e856cf8e74efe77489f57ca95f30f6476..b6ba35ad37954e2b1a85548530e730fd95bdaeb2 100644
--- a/src/geometry/mesh/TriangleMeshIO.h
+++ b/src/geometry/mesh/TriangleMeshIO.h
@@ -35,7 +35,7 @@ namespace geometry {
     *
     * Mesh format is detected by file ending.
     *
-    * \param fileName  Filename of mesh. Supported formats are obj, pov and off. Format is detected
+    * \param meshFilename  Filename of mesh. Supported formats are obj, pov and off. Format is detected
     *                  by file ending
     * \param mesh      object where the mesh is stored, if the given mesh is not
     *                  empty, all contents are cleared
@@ -47,7 +47,7 @@ namespace geometry {
     *
     * Mesh format is detected by file ending.
     *
-    * \param fileName  Filename of mesh. Supported formats are obj, pov and off. Format is detected
+    * \param meshFilename  Filename of mesh. Supported formats are obj, pov and off. Format is detected
     *                  by file ending
     * \param mesh      object where the mesh is read from
     */
@@ -58,7 +58,7 @@ namespace geometry {
     *
     * Mesh format is detected by file ending.
     *
-    * \param fileName  Filename of mesh. Supported formats are obj, pov and off. Format is detected
+    * \param meshFilename  Filename of mesh. Supported formats are obj, pov and off. Format is detected
     *                  by file ending
     * \param mesh      object where the mesh is stored, if the given mesh is not
     *                  empty, all contents are cleared
@@ -72,7 +72,7 @@ namespace geometry {
     *
     * Mesh format is detected by file ending.
     *
-    * \param fileName  Filename of mesh. Supported formats are obj, pov and off. Format is detected
+    * \param meshFilename  Filename of mesh. Supported formats are obj, pov and off. Format is detected
     *                  by file ending
     * \param mesh      object where the mesh is read from
     */
diff --git a/src/geometry/structured/BasicVoxelFileReader.impl.h b/src/geometry/structured/BasicVoxelFileReader.impl.h
index a387c92fa9886701c2f7feec5cf6b537c08336d7..7c02ed1f8717400273c34bde8f4fb54137e20628 100644
--- a/src/geometry/structured/BasicVoxelFileReader.impl.h
+++ b/src/geometry/structured/BasicVoxelFileReader.impl.h
@@ -49,7 +49,7 @@ BasicVoxelFileReader<T>::BasicVoxelFileReader() : xSize_(0), ySize_(0), zSize_(0
 /*******************************************************************************************************************//**
  * \brief Opens an existing geometry file.
  *
- * \param filename Name (path) of the file.
+ * \param _filename Name (path) of the file.
  *
  * \throws std::runtime_error on I/O errors.
  *
@@ -73,11 +73,11 @@ BasicVoxelFileReader<T>::BasicVoxelFileReader( const std::string & _filename)
 /*******************************************************************************************************************//**
  * \brief Creates a new geometry file with extends xSize x ySize x zSize.
  *
- * \param filename Name (path) of the file.
- * \param xSize    Extend of the geometry file in x direction.
- * \param ySize    Extend of the geometry file in y direction.
- * \param zSize    Extend of the geometry file in z direction.
- * \param value    The value the cells are initialized with. Defaults to T().
+ * \param _filename Name (path) of the file.
+ * \param _xSize    Extend of the geometry file in x direction.
+ * \param _ySize    Extend of the geometry file in y direction.
+ * \param _zSize    Extend of the geometry file in z direction.
+ * \param value     The value the cells are initialized with. Defaults to T().
  *
  * \throws std::runtime_error on I/O errors.
  *
@@ -101,12 +101,12 @@ BasicVoxelFileReader<T>::BasicVoxelFileReader( const std::string & _filename, st
 /*******************************************************************************************************************//**
  * \brief Creates a new geometry file with extends xSize x ySize x zSize.
  *
- * \param filename Name (path) of the file.
- * \param xSize    Extend of the geometry file in x direction.
- * \param ySize    Extend of the geometry file in y direction.
- * \param zSize    Extend of the geometry file in z direction.
- * \param values   An array of size xSize * ySize * zSize with the values to initialize the
- * 					 geometry file with.
+ * \param _filename Name (path) of the file.
+ * \param _xSize    Extend of the geometry file in x direction.
+ * \param _ySize    Extend of the geometry file in y direction.
+ * \param _zSize    Extend of the geometry file in z direction.
+ * \param values    An array of size xSize * ySize * zSize with the values to initialize the
+ *                  geometry file with.
  *
  * \throws std::runtime_error on I/O errors.
  *
@@ -145,9 +145,9 @@ BasicVoxelFileReader<T>::~BasicVoxelFileReader()
 /*******************************************************************************************************************//**
 * \brief Opens an existing geometry file.
 *
-* 	An already opened file gets closed beforehand.
+* An already opened file gets closed beforehand.
 *
-* \param filename Name (path) of the file.
+* \param _filename Name (path) of the file.
 *
 * \throws std::runtime_error on I/O errors.
 * \throws std::runtime_error if the loaded geometry file's format is corrupt
@@ -223,11 +223,11 @@ void BasicVoxelFileReader<T>::open( const std::string & _filename )
  *
  * An already opened file gets closed beforehand.
  *
- * \param filename Name (path) of the file.
- * \param xSize    Extend of the geometry file in x direction.
- * \param ySize    Extend of the geometry file in y direction.
- * \param zSize    Extend of the geometry file in z direction.
- * \param value    The value the cells are initialized with. Defaults to T().
+ * \param _filename Name (path) of the file.
+ * \param _xSize    Extend of the geometry file in x direction.
+ * \param _ySize    Extend of the geometry file in y direction.
+ * \param _zSize    Extend of the geometry file in z direction.
+ * \param value     The value the cells are initialized with. Defaults to T().
  *
  * \throws std::runtime_error on I/O errors.
  *
@@ -296,12 +296,12 @@ void BasicVoxelFileReader<T>::create( const std::string & _filename, std::size_t
  *
  * An already opened file gets closed beforehand.
  *
- * \param filename Name (path) of the file.
- * \param xSize    Extend of the geometry file in x direction.
- * \param ySize    Extend of the geometry file in y direction.
- * \param zSize    Extend of the geometry file in z direction.
- * \param values   An array of size xSize * ySize * zSize with the values to initialize the
- * 					 geometry file with.
+ * \param _filename Name (path) of the file.
+ * \param _xSize    Extend of the geometry file in x direction.
+ * \param _ySize    Extend of the geometry file in y direction.
+ * \param _zSize    Extend of the geometry file in z direction.
+ * \param values    An array of size xSize * ySize * zSize with the values to initialize the
+ *                  geometry file with.
  *
  * \throws std::runtime_error on I/O errors.
  *
@@ -465,7 +465,7 @@ std::size_t BasicVoxelFileReader<T>::numCells() const
  *
  * \param cellAABB   The axis-aligned bounding box of the block of data to be read.
  * \param [out] data The vector the read data is stored to. The Storage order is zyx. (Meaning
- * 				      your innermost loop should iterate over x)
+ *                   your innermost loop should iterate over x)
  *
  * \throws std::runtime_error on I/O errors.
  *
@@ -522,7 +522,7 @@ void BasicVoxelFileReader<T>::read( const CellAABB & cellAABB, std::vector<T> &
  *
  * \param cellAABB The axis-aligned bounding box of the block of data to be written.
  * \param data     The vector holding the data to bw written to the geometry file. The Storage
- * 					 order is zyx. (Meaning your innermost loop should iterate over x)
+ *                 order is zyx. (Meaning your innermost loop should iterate over x)
  *
  * \throws std::runtime_error on I/O errors.
  *
diff --git a/src/geometry/structured/BinaryRawFile.cpp b/src/geometry/structured/BinaryRawFile.cpp
index 5b4c81256db3041cc6617fd245720f421da70915..efc472b4c7b13b460e71313e841d80802f9b1995 100644
--- a/src/geometry/structured/BinaryRawFile.cpp
+++ b/src/geometry/structured/BinaryRawFile.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file BinaryRawFileReader.cpp
+//! \file BinaryRawFile.cpp
 //! \ingroup geometry
 //! \author Christian Godenschwager <christian.godenschwager@fau.de>
 //
diff --git a/src/geometry/structured/BinaryRawFile.h b/src/geometry/structured/BinaryRawFile.h
index 8a9e69346fbc801860146c493ed5e7451d35d809..2c0421783788400c09a9e322d763214ceadff088 100644
--- a/src/geometry/structured/BinaryRawFile.h
+++ b/src/geometry/structured/BinaryRawFile.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file BinaryRawFileReader.h
+//! \file BinaryRawFile.h
 //! \ingroup geometry
 //! \author Christian Godenschwager <christian.godenschwager@fau.de>
 //
diff --git a/src/geometry/structured/VoxelFileReader.impl.h b/src/geometry/structured/VoxelFileReader.impl.h
index e91b75357f37943cdf24bf24bfaf0fbd6b0d1a7d..8f64c77caff2b58724179f58d47ccec89519689e 100644
--- a/src/geometry/structured/VoxelFileReader.impl.h
+++ b/src/geometry/structured/VoxelFileReader.impl.h
@@ -41,7 +41,7 @@ catch( std::exception & e) { WALBERLA_ABORT( e.what() ); }
 /*******************************************************************************************************************//**
  * \brief Opens an existing geometry file.
  *
- * \param filename Name (path) of the file.
+ * \param _filename Name (path) of the file.
  *
  * \post isOpen() == true
  **********************************************************************************************************************/
@@ -53,11 +53,11 @@ catch( std::exception & e) { WALBERLA_ABORT( e.what() ); }
 /*******************************************************************************************************************//**
  * \brief Creates a new geometry file with extends xSize x ySize x zSize.
  *
- * \param filename Name (path) of the file.
- * \param xSize    Extend of the geometry file in x direction.
- * \param ySize    Extend of the geometry file in y direction.
- * \param zSize    Extend of the geometry file in z direction.
- * \param value    The value the cells are initialized with. Defaults to T().
+ * \param _filename Name (path) of the file.
+ * \param _xSize    Extend of the geometry file in x direction.
+ * \param _ySize    Extend of the geometry file in y direction.
+ * \param _zSize    Extend of the geometry file in z direction.
+ * \param value     The value the cells are initialized with. Defaults to T().
  *
  * \post isOpen() == true
  **********************************************************************************************************************/
@@ -73,12 +73,12 @@ catch( std::exception & e) { WALBERLA_ABORT( e.what() ); }
 /*******************************************************************************************************************//**
 * \brief Creates a new geometry file with extends xSize x ySize x zSize.
 *
-* \param filename Name (path) of the file.
-* \param xSize    Extend of the geometry file in x direction.
-* \param ySize    Extend of the geometry file in y direction.
-* \param zSize    Extend of the geometry file in z direction.
-* \param values   An array of size xSize * ySize * zSize with the values to initialize the
-* 					 geometry file with.
+* \param _filename Name (path) of the file.
+* \param _xSize    Extend of the geometry file in x direction.
+* \param _ySize    Extend of the geometry file in y direction.
+* \param _zSize    Extend of the geometry file in z direction.
+* \param values    An array of size xSize * ySize * zSize with the values to initialize the
+*                  geometry file with.
 *
 * \pre values != nullptr
 *
@@ -96,9 +96,9 @@ catch( std::exception & e) { WALBERLA_ABORT( e.what() ); }
 /*******************************************************************************************************************//**
 * \brief Opens an existing geometry file.
 *
-* 	An already opened file gets closed beforehand.
+* An already opened file gets closed beforehand.
 *
-* \param filename Name (path) of the file.
+* \param _filename Name (path) of the file.
 *
 * \post isOpen() == true
  **********************************************************************************************************************/
@@ -117,11 +117,11 @@ void VoxelFileReader<T>::open( const std::string & _filename )
  *
  * An already opened file gets closed beforehand.
  *
- * \param filename Name (path) of the file.
- * \param xSize    Extend of the geometry file in x direction.
- * \param ySize    Extend of the geometry file in y direction.
- * \param zSize    Extend of the geometry file in z direction.
- * \param value    The value the cells are initialized with. Defaults to T().
+ * \param _filename Name (path) of the file.
+ * \param _xSize    Extend of the geometry file in x direction.
+ * \param _ySize    Extend of the geometry file in y direction.
+ * \param _zSize    Extend of the geometry file in z direction.
+ * \param value     The value the cells are initialized with. Defaults to T().
  *
  * \post isOpen() == true
  **********************************************************************************************************************/
@@ -140,12 +140,12 @@ void VoxelFileReader<T>::create( const std::string & _filename, uint_t _xSize, u
  *
  * An already opened file gets closed beforehand.
  *
- * \param filename Name (path) of the file.
- * \param xSize    Extend of the geometry file in x direction.
- * \param ySize    Extend of the geometry file in y direction.
- * \param zSize    Extend of the geometry file in z direction.
- * \param values   An array of size xSize * ySize * zSize with the values to initialize the
- * 					 geometry file with.
+ * \param _filename Name (path) of the file.
+ * \param _xSize    Extend of the geometry file in x direction.
+ * \param _ySize    Extend of the geometry file in y direction.
+ * \param _zSize    Extend of the geometry file in z direction.
+ * \param values    An array of size xSize * ySize * zSize with the values to initialize the
+ *                  geometry file with.
  *
  * \pre values != nullptr
  *
@@ -259,7 +259,7 @@ uint_t VoxelFileReader<T>::zSize() const
  *
  * \param cellInterval The axis-aligned bounding box of the block of data to be read.
  * \param [out] data The vector the read data is stored to. The Storage order is zyx. (Meaning
- * 				      your innermost loop should iterate over x)
+ *              your innermost loop should iterate over x)
  *
  * \pre isOpen() == true
  *
@@ -279,7 +279,7 @@ void VoxelFileReader<T>::read( const CellInterval & cellInterval, std::vector<T>
  *
  * \param cellInterval The axis-aligned bounding box of the block of data to be written.
  * \param data     The vector holding the data to bw written to the geometry file. The Storage
- * 					 order is zyx. (Meaning your innermost loop should iterate over x)
+ *                 order is zyx. (Meaning your innermost loop should iterate over x)
  *
  * \pre isOpen() == true
  * \pre !cellInterval.empty()
diff --git a/src/gui/BlockSliceView/DisplayAdaptor.h b/src/gui/BlockSliceView/DisplayAdaptor.h
index c2723fa79d35a16fe764f68bae4199db84d3b659..0f5d0592e54c4558291e840c0f71256a0c4476a5 100644
--- a/src/gui/BlockSliceView/DisplayAdaptor.h
+++ b/src/gui/BlockSliceView/DisplayAdaptor.h
@@ -80,7 +80,7 @@ namespace gui {
        * Draws data structure represented by this Adaptor to a grid of cells
        * Block has to be set first!
        *
-       * @param [inout] grid           Grid of cells. Use functions of CellView to draw
+       * @param [in,out] grid          Grid of cells. Use functions of CellView to draw
        *                               The Grid has dimension of innerSize + ghostLayers
        * @param [in] nrOfGhostLayers   the number of ghost layers in each direction. This value may be bigger
        *                               than the returned value of configure() since other fields might have more ghost layers.
@@ -92,8 +92,6 @@ namespace gui {
 
       /**
        * Optionally adds a QTreeWidgetItem to a tree, containing configuration options
-       *
-       * @param parentItem the item where own items can be added
        */
       virtual void addConfigurationItem( QTreeWidgetItem *   ) {}
 
diff --git a/src/gui/CMakeDefs.in.h b/src/gui/CMakeDefs.in.h
index 79f7db72ac48014289c5fac1d5caf6c7923cf1a2..6d603fbe72d855cc1b35af23cc7ce0395a83e39a 100644
--- a/src/gui/CMakeDefs.in.h
+++ b/src/gui/CMakeDefs.in.h
@@ -1,6 +1,6 @@
 //======================================================================================================================
 /*!
- *  \file   CMakeDefs.h
+ *  \file   CMakeDefs.in.h
  *  \brief  Definitions for blockforest module configured by cmake
  */
 //======================================================================================================================
diff --git a/src/lbm/PerformanceLogger.h b/src/lbm/PerformanceLogger.h
index 7e7f183b7b28d8d511ff18936ad25ff8c178cc55..337cf6832e13ab68adb17697ffa1a9f17ab0f7de 100644
--- a/src/lbm/PerformanceLogger.h
+++ b/src/lbm/PerformanceLogger.h
@@ -44,7 +44,7 @@ namespace lbm {
 /*!
 *   \brief Class for using the PerformanceEvaluation in a timeloop
 *
-*   Providing a measurement interval, this class will regularly (every <interval> time steps) measure and report the
+*   Providing a measurement interval, this class will regularly (every \a interval time steps) measure and report the
 *   LBM performance. At the end of the simulation logOverallResults() may be called to output minimum, maximum and
 *   average performance during the simulation run.   
 */
diff --git a/src/lbm/boundary/factories/DefaultBoundaryHandlingCollection.h b/src/lbm/boundary/factories/DefaultBoundaryHandlingCollection.h
index 49e77691a8781bbd980faadca3a0fd422bb497b5..cdb4edb2d14249209b5e1dbc2738d09c30f13d0b 100644
--- a/src/lbm/boundary/factories/DefaultBoundaryHandlingCollection.h
+++ b/src/lbm/boundary/factories/DefaultBoundaryHandlingCollection.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file DefaultBoundaryHandlingCollectionFactory.h
+//! \file DefaultBoundaryHandlingCollection.h
 //! \ingroup lbm
 //! \author Matthias Markl <matthias.markl@fau.de>
 //
diff --git a/src/lbm/boundary/factories/DefaultDiffusionBoundaryHandling.h b/src/lbm/boundary/factories/DefaultDiffusionBoundaryHandling.h
index 99754f88f35bdee443837684147be01822dced28..89fb33500f56417bbee3eb083f9a8ce44909daa0 100644
--- a/src/lbm/boundary/factories/DefaultDiffusionBoundaryHandling.h
+++ b/src/lbm/boundary/factories/DefaultDiffusionBoundaryHandling.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file DefaultDiffusionBoundaryHandlingFactory.h
+//! \file DefaultDiffusionBoundaryHandling.h
 //! \ingroup lbm
 //! \author Matthias Markl <matthias.markl@fau.de>
 //
diff --git a/src/lbm/evaluations/Permeability.h b/src/lbm/evaluations/Permeability.h
index 94e146f24b63d806fa90e2cc916608a91e0a9501..789969a469a8c8d68b5990105ff974d78ee1c0af 100644
--- a/src/lbm/evaluations/Permeability.h
+++ b/src/lbm/evaluations/Permeability.h
@@ -53,11 +53,12 @@ public:
    Permeability( real_t viscosity, const BlockDataID & pdfFieldId, const BlockDataID & boundaryHandlingId, const FlagUID & fluid,
                  const shared_ptr<blockforest::StructuredBlockForest> blocks );
 
-	/*!
+   /*!
     *  \brief Initializes the permeability evaluation with the parameters given in the config file.
     *
     *  Configuration block:
     *
+    *  \code{.unparsed}
     *  <some_name>
     *  {
     *     sampleVolume  [<0, 0, 0> , <100, 100, 100>]; [optional, default = domain]
@@ -65,6 +66,7 @@ public:
     *     calcFrequency 100;                           [required, unsigned int]
     *     convCrit      1E-20;                         [optional, default = 1E-20]
     *  }
+    *  \endcode
     *
     *
     *  \param config The config block handle containing the parameters.
diff --git a/src/lbm/geometry/IntersectionRatio.h b/src/lbm/geometry/IntersectionRatio.h
index 7ff17e71f8554b429a927c7a3d515917eec7cea7..e877c385b1589b7dc345392ceab088e32329404c 100644
--- a/src/lbm/geometry/IntersectionRatio.h
+++ b/src/lbm/geometry/IntersectionRatio.h
@@ -53,9 +53,9 @@ real_t intersectionRatioSphere( const geometry::Sphere & sphere,
 *
 * Let P_i be the intersection point
 *
+* \param body       surface
 * \param fluidPoint (P_f), start point of ray
 * \param direction  (d) of ray (length of d is the length of the ray segment)
-* \param policy     defines behavior in erroneous cases
 * \param epsilon    abortion criterion for iterative methods. Epsilon relates to the distance of P_i to the surface
 * \return Intersection ratio: | P_i - P_f | / | d |
 */
diff --git a/src/lbm/geometry/initializer/PoiseuilleInitializer.h b/src/lbm/geometry/initializer/PoiseuilleInitializer.h
index fa6677a447ce3e5a6a253a6e93ce167bd02ab36b..a44cfcd2be344ef9337096cb149973b585f518b2 100644
--- a/src/lbm/geometry/initializer/PoiseuilleInitializer.h
+++ b/src/lbm/geometry/initializer/PoiseuilleInitializer.h
@@ -36,6 +36,7 @@ namespace initializer {
    * \ingroup geometry
    *
    * Configuration file syntax:
+   * \code{.unparsed}
    *    <blockName>
    *     {
    *       scenario          rect2D|pipe;
@@ -49,6 +50,7 @@ namespace initializer {
    *                         // the remaining third axis has to be periodic. By default chosen as a non-periodic axis
    *                         // that is not the flowAxis
    *     }
+   * \endcode
    *
    *  scenario:
    *     - rect2D: rectangular channel where boundary in direction of periodicAxis are set periodic
diff --git a/src/lbm/lattice_model/ForceModel.h b/src/lbm/lattice_model/ForceModel.h
index 365b64db1c56a16d1059e24749f839838267da3b..c733281ac17544a39e4fac182ee4c67faf280788 100644
--- a/src/lbm/lattice_model/ForceModel.h
+++ b/src/lbm/lattice_model/ForceModel.h
@@ -49,44 +49,44 @@ namespace force_model {
 *
 *   Every force model must implement the following concept:
 *
-*    1. Every force model must have a "tag". See force_model::None_tag and class force_model::None. If you write your
+*   1.  Every force model must have a "tag". See force_model::None_tag and class force_model::None. If you write your
 *       own force model and none of the existing tags fit, just define your own empty struct and use it as tag.
-*    2. Every force model must define a type "DirectionIndependentTerms_T" which must be returned by function
+*   2.  Every force model must define a type "DirectionIndependentTerms_T" which must be returned by function
 *       "directionIndependentTerms" (see 9) and which is passed to function "forceTerm" (see 10) during the collision
 *       step. [If your force model does not have or does not need to calculate any common, direction-independent terms,
 *       you can use the empty struct force_model::NoDirectionIndependentTerms - see class force_model::None as an example]
-*    3. static const bool shiftMacVel: specifies whether or not during the evaluation of the macroscopic velocity there
+*   3.  static const bool shiftMacVel: specifies whether or not during the evaluation of the macroscopic velocity there
 *                                      is a shift by F/2
-*    4. static const bool shiftEquVel: specifies whether or not during the evaluation of the equilibrium velocity there
+*   4.  static const bool shiftEquVel: specifies whether or not during the evaluation of the equilibrium velocity there
 *                                      is a shift by F/2
-*    5. static const bool constant: true, if the body force is constant for all cells throughout the entire simulation
+*   5.  static const bool constant: true, if the body force is constant for all cells throughout the entire simulation
 *                                   (false otherwise)
-*    6. void configure( IBlock & block, StructuredBlockStorage & sbs ): this function is called when a force model
+*   6.  void configure( IBlock & block, StructuredBlockStorage & sbs ): this function is called when a force model
 *                                                                       instance is assigned to a block - can be used to
 *                                                                       scale stored values to a different grid level
-*    7. const Vector3<real_t> force() const: must return the body force (this function must only exist if constant == true)
-*    8. const Vector3<real_t> force( const cell_idx_t x, const cell_idx_t y, const cell_idx_t z ) const:
+*   7.  const Vector3<real_t> force() const: must return the body force (this function must only exist if constant == true)
+*   8.  const Vector3<real_t> force( const cell_idx_t x, const cell_idx_t y, const cell_idx_t z ) const:
 *        -> must return the force for block local cell (x,y,z) - this function must also exist for constant forces!
-*    9. template< typename LatticeModel_T >
+*   9.  "template< typename LatticeModel_T >
 *       DirectionIndependentTerms_T directionIndependentTerms( const cell_idx_t x, const cell_idx_t y, const cell_idx_t z,
 *                                                              const Vector3<real_t> & velocity, const real_t rho,
-*                                                              const real_t omega ) const:
+*                                                              const real_t omega ) const":
 *        -> can be used to pre-calculate common, direction-independent terms that are needed for every lattice direction
 *           of cell (x,y,z)
 *           Parameters: (x,y,z) = the cell that is currently processed, velocity/rho = the velocity and density of the
 *                       equilibrium distribution, omega = relaxation parameter that corresponds to the lattice viscosity
-*   10. template< typename LatticeModel_T >
+*   10. "template< typename LatticeModel_T >
 *       real_t forceTerm( const cell_idx_t x, const cell_idx_t y, const cell_idx_t z,
 *                         const Vector3<real_t> & velocity, const real_t rho,
 *                         const DirectionIndependentTerms_T & commonTerms,
-*                         const real_t w, const real_t cx, const real_t cy, const real_t cz, const real_t omega ) const:
+*                         const real_t w, const real_t cx, const real_t cy, const real_t cz, const real_t omega ) const":
 *        -> must evaluate the force term of the LBM collision step - called from the LB compute kernel for every lattice
 *           direction of cell (x,y,z)
 *           Parameters: (x,y,z) = the cell that is currently processed, velocity/rho = the velocity and density of the
 *                       equilibrium distribution, commonTerms = direction-independent terms calculated by function
 *                       "directionIndependentTerms" (see 9), w = lattice model weighting factor, (cx,cy,cz) = lattice
 *                       direction, omega = relaxation parameter that corresponds to the lattice viscosity
-*   11. bool setConstantBodyForceIfPossible( const Vector3<real_t> & force, const uint_t level = uint_t(0) ):
+*   11. "bool setConstantBodyForceIfPossible( const Vector3<real_t> & force, const uint_t level = uint_t(0) )":
 *        -> Must return true if a constant force can be set. In that case, the force passed in must be set.
 *           'level' is the grid level 'force' corresponds to.
 *
diff --git a/src/lbm/vtk/QCriterionCellFilter.h b/src/lbm/vtk/QCriterionCellFilter.h
index 5310bc172849bde6168fe63e3b30383d2d4e7b10..26b45464c9ec5575201521788862dc076dc5e09e 100644
--- a/src/lbm/vtk/QCriterionCellFilter.h
+++ b/src/lbm/vtk/QCriterionCellFilter.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file QValueCellFilter.h
+//! \file QCriterionCellFilter.h
 //! \ingroup field
 //! \author Lukas Werner <lks.werner@fau.de>
 //
diff --git a/src/lbm/vtk/VelocityCellFilter.h b/src/lbm/vtk/VelocityCellFilter.h
index 0e290db21633a047d7232cbc266ce8ff514cd0ff..50a5760108b85048ee9d90c46e22a409e3f10155 100644
--- a/src/lbm/vtk/VelocityCellFilter.h
+++ b/src/lbm/vtk/VelocityCellFilter.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file VectorFieldCellFilter.h
+//! \file VelocityCellFilter.h
 //! \ingroup field
 //! \author Lukas Werner <lks.werner@fau.de>
 //
diff --git a/src/lbm_mesapd_coupling/utility/virtualmass/InitializeVirtualMassKernel.h b/src/lbm_mesapd_coupling/utility/virtualmass/InitializeVirtualMassKernel.h
index f03cf4274d5b0d8869b326521601c4347b3d862d..461dcafb0dfcacc4d2e2b6ec782bb90d09d063f5 100644
--- a/src/lbm_mesapd_coupling/utility/virtualmass/InitializeVirtualMassKernel.h
+++ b/src/lbm_mesapd_coupling/utility/virtualmass/InitializeVirtualMassKernel.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file VirtualMass.h
+//! \file InitializeVirtualMassKernel.h
 //! \author Lukas Werner <lks.werner@fau.de>
 //
 //======================================================================================================================
diff --git a/src/lbm_mesapd_coupling/utility/virtualmass/ParticleAccessorWithShapeVirtualMassWrapper.h b/src/lbm_mesapd_coupling/utility/virtualmass/ParticleAccessorWithShapeVirtualMassWrapper.h
index 744a614fbc9a664e5d47f7e8d55a015bd6aa236e..d162b5a556fb8d14f79b96982648f2fb4562f1c3 100644
--- a/src/lbm_mesapd_coupling/utility/virtualmass/ParticleAccessorWithShapeVirtualMassWrapper.h
+++ b/src/lbm_mesapd_coupling/utility/virtualmass/ParticleAccessorWithShapeVirtualMassWrapper.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file ParticleAccessorWithShapeAndVirtualMassWrapper.h
+//! \file ParticleAccessorWithShapeVirtualMassWrapper.h
 //! \author Lukas Werner <lks.werner@fau.de>
 //
 //======================================================================================================================
diff --git a/src/mesa_pd/collision_detection/EPA.h b/src/mesa_pd/collision_detection/EPA.h
index a83cc1f5b6d35c441740ddc8a93f7c8a2cbf2dce..b61b53e36af22cd8b2f864a3ff77ee9235df82e2 100644
--- a/src/mesa_pd/collision_detection/EPA.h
+++ b/src/mesa_pd/collision_detection/EPA.h
@@ -393,8 +393,9 @@ inline bool EPA::EPA_Triangle::isClosestInternal() const
 
 //*************************************************************************************************
 /*! \brief Calculates a support point of a body extended by threshold.
- * Adds this support and the base points at bodies a and b to the vector.
- * \param geom The body.
+ * Adds this support and the base points at bodies A and B to the vector.
+ * \param geom1 The body A.
+ * \param geom2 The body B.
  * \param dir The support point direction.
  * \param margin Extension of the Body.
  */
@@ -425,8 +426,9 @@ inline void EPA::pushSupportMargin(const Support &geom1,
 
 //*************************************************************************************************
 /*! \brief Calculates a support point of a body extended by threshold.
- * Replaces the old value in the vectors at "IndexToReplace" with this support and the base points at bodies a and b .
- * \param geom The body.
+ * Replaces the old value in the vectors at "IndexToReplace" with this support and the base points at bodies A and B.
+ * \param geom1 The body A.
+ * \param geom2 The body B.
  * \param dir The support point direction.
  * \param margin Extension of the Body.
  */
diff --git a/src/mesa_pd/collision_detection/GJK.cpp b/src/mesa_pd/collision_detection/GJK.cpp
index 757c065b17446468f89d6e7c1a0e1e69388b0e2b..d608841eaf0b16ba088aef2f9db9367fcf8c339f 100644
--- a/src/mesa_pd/collision_detection/GJK.cpp
+++ b/src/mesa_pd/collision_detection/GJK.cpp
@@ -42,10 +42,11 @@ GJK::GJK()
 }
 
 /**
- * \brief Calculate a support point of a particle extended by threshold.
- * \param geom support functions for particle 1 and 2.
+ * \brief Calculate a support point of a particle extended by a threshold.
+ * \param geom1 The body A.
+ * \param geom2 The body B.
  * \param dir The support point direction.
- * \param threshold Extension of the particle.
+ * \param margin The margin by which the objects will be enlarged.
  */
 Vec3 GJK::putSupport(const Support &geom1,
                            const Support &geom2,
diff --git a/src/mesa_pd/kernel/InitParticlesForHCSITS.h b/src/mesa_pd/kernel/InitParticlesForHCSITS.h
index 2022a0b804b4911442e3d8a7ba7f54966e8dad48..a4b62e657f0b564e0e105bbca0b5813e07cc67b2 100644
--- a/src/mesa_pd/kernel/InitParticlesForHCSITS.h
+++ b/src/mesa_pd/kernel/InitParticlesForHCSITS.h
@@ -94,7 +94,7 @@ inline void InitParticlesForHCSITS::operator()(size_t j, Accessor& ac, real_t dt
  * \param ac The particle accessor
  * \param body The body whose velocities to time integrate
  * \param dv On return the initial linear velocity correction.
- * \param w On return the initial angular velocity correction.
+ * \param dw On return the initial angular velocity correction.
  * \param dt The time step size.
  * \return void
  *
diff --git a/src/mesa_pd/kernel/IntegrateParticlesHCSITS.h b/src/mesa_pd/kernel/IntegrateParticlesHCSITS.h
index 0f00fc9a027c8c280c16ef87ee29b607caea1a01..d598e312a74df10f6957833cdfc7b589fee77ab3 100644
--- a/src/mesa_pd/kernel/IntegrateParticlesHCSITS.h
+++ b/src/mesa_pd/kernel/IntegrateParticlesHCSITS.h
@@ -102,6 +102,7 @@ inline void IntegrateParticlesHCSITS::operator()(size_t j, PAccessor& ac, real_t
 //*************************************************************************************************
 /*!\brief Time integration of the position and orientation of a given body.
  *
+ * \param ac The particle accessor
  * \param body The body whose position and orientation to time integrate
  * \param v The linear velocity to use for time integration of the position.
  * \param w The angular velocity to use for time integration of the orientation.
diff --git a/src/mesh/blockforest/BlockExclusion.h b/src/mesh/blockforest/BlockExclusion.h
index 497424b898099474c7a1d8cc9703c20fdf58794c..05c397739ccac78cff728cc4cc939a87472a714d 100644
--- a/src/mesh/blockforest/BlockExclusion.h
+++ b/src/mesh/blockforest/BlockExclusion.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file PrepareDistanceComputations.h
+//! \file BlockExclusion.h
 //! \ingroup mesh
 //! \author Christian Godenschwager <christian.godenschwager@fau.de>
 //
diff --git a/src/mesh/blockforest/BlockForestInitialization.h b/src/mesh/blockforest/BlockForestInitialization.h
index 12e9a2e23b48a694d5d8bc4e650c89e7b943a790..d196f4fba13d31a38e0787c516ec73022cfb89c4 100644
--- a/src/mesh/blockforest/BlockForestInitialization.h
+++ b/src/mesh/blockforest/BlockForestInitialization.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file Initialization.h
+//! \file BlockForestInitialization.h
 //! \ingroup mesh
 //! \author Christian Godenschwager <christian.godenschwager@fau.de>
 //
diff --git a/src/mesh/blockforest/BlockWorkloadMemory.h b/src/mesh/blockforest/BlockWorkloadMemory.h
index f2148ab3944520920e63fc39138d7bd1a4e9a039..3e623b79ef594478ac548b68c597e2b8942da55a 100644
--- a/src/mesh/blockforest/BlockWorkloadMemory.h
+++ b/src/mesh/blockforest/BlockWorkloadMemory.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file BlockWOrkloadMemory.h
+//! \file BlockWorkloadMemory.h
 //! \ingroup mesh
 //! \author Christian Godenschwager <christian.godenschwager@fau.de>
 //
diff --git a/src/mesh/pe/communication/ConvexPolyhedron.cpp b/src/mesh/pe/communication/ConvexPolyhedron.cpp
index e7b81879b6f0f09192febdd7ce3a171296ed2710..6789d37e79eef27e0bb6fbde87aaa02a374af71a 100644
--- a/src/mesh/pe/communication/ConvexPolyhedron.cpp
+++ b/src/mesh/pe/communication/ConvexPolyhedron.cpp
@@ -31,13 +31,6 @@ namespace walberla {
 namespace mesh {
 namespace pe {
 
-//*************************************************************************************************
-/*!\brief Marshalling a polyhedron primitive.
- *
- * \param buffer The buffer to be filled.
- * \param obj The object to be marshalled.
- * \return void
- */
 void marshal( mpi::SendBuffer& buffer, const ConvexPolyhedron& obj ) {
    walberla::pe::communication::marshal( buffer, static_cast<const GeomPrimitive&>( obj ) );
    
@@ -76,14 +69,6 @@ void marshal( mpi::SendBuffer& buffer, const ConvexPolyhedron& obj ) {
 //*************************************************************************************************
 
 
-//*************************************************************************************************
-/*!\brief Unmarshalling a polyhedron primitive.
- *
- * \param buffer The buffer from where to read.
- * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Passed on to rigid body unmarshalling.
- * \return void
- */
 void unmarshal( mpi::RecvBuffer& buffer, ConvexPolyhedronParameters& objparam ) {
    walberla::pe::communication::unmarshal( buffer, static_cast<GeomPrimitiveParameters&>( objparam ) );
    
diff --git a/src/mesh/pe/communication/ConvexPolyhedron.h b/src/mesh/pe/communication/ConvexPolyhedron.h
index 1527530b48531e74ee848e221d8143207d0298f4..888e3c16f50ed6fa1c86c4551405fc172727d8b4 100644
--- a/src/mesh/pe/communication/ConvexPolyhedron.h
+++ b/src/mesh/pe/communication/ConvexPolyhedron.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file Polyhedron.h
+//! \file ConvexPolyhedron.h
 //! \author Christian Godenschwager <christian.godenschwager@fau.de>
 //! \brief Marshalling of objects for data transmission or storage.
 //
@@ -55,7 +55,6 @@ void marshal( mpi::SendBuffer& buffer, const ConvexPolyhedron& obj );
  *
  * \param buffer The buffer from where to read.
  * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Passed on to rigid body unmarshalling.
  * \return void
  */
 void unmarshal( mpi::RecvBuffer& buffer, ConvexPolyhedronParameters& objparam );
diff --git a/src/mesh/pe/rigid_body/ConvexPolyhedron.cpp b/src/mesh/pe/rigid_body/ConvexPolyhedron.cpp
index 933a6d28f6ea58a12c4e5ceec92c937586c39b0a..f8c1efee0549b2c2e89e41752f9413c98239a8d8 100644
--- a/src/mesh/pe/rigid_body/ConvexPolyhedron.cpp
+++ b/src/mesh/pe/rigid_body/ConvexPolyhedron.cpp
@@ -54,9 +54,7 @@ namespace pe {
 * \param sid Unique system-specific ID for the ConvexPolyhedron.
 * \param uid User-specific ID for the ConvexPolyhedron.
 * \param gpos Global geometric center of the ConvexPolyhedron.
-* \param rpos The relative position within the body frame of a superordinate body.
 * \param q The orientation of the ConvexPolyhedron's body frame in the global world frame.
-* \param radius The radius of the ConvexPolyhedron \f$ (0..\infty) \f$.
 * \param material The material of the ConvexPolyhedron.
 * \param global specifies if the ConvexPolyhedron should be created in the global storage
 * \param communicating specifies if the ConvexPolyhedron should take part in synchronization (syncNextNeighbour, syncShadowOwner)
diff --git a/src/mesh_common/DistanceComputations.h b/src/mesh_common/DistanceComputations.h
index 9155aa1d12aa0ec05f6d3abc7f00d2acf123723b..ec244cf0f20834f57c565ba40dd3157adbb74668 100644
--- a/src/mesh_common/DistanceComputations.h
+++ b/src/mesh_common/DistanceComputations.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file PrepareDistanceComputations.h
+//! \file DistanceComputations.h
 //! \ingroup mesh
 //! \author Christian Godenschwager <christian.godenschwager@fau.de>
 //
diff --git a/src/pde/iterations/VCycles.impl.h b/src/pde/iterations/VCycles.impl.h
index fea9a4031534af18fd812000f657f65c8e41033c..8cf132a140c9f55b080b795d9135590a99e25a41 100644
--- a/src/pde/iterations/VCycles.impl.h
+++ b/src/pde/iterations/VCycles.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file VCycles.h.impl
+//! \file VCycles.impl.h
 //! \ingroup pde
 //! \author Dominik Bartuschat <dominik.bartuschat@fau.de>
 //! \author Michael Kuron <mkuron@icp.uni-stuttgart.de>
diff --git a/src/pe/Types.h b/src/pe/Types.h
index 645f167807a17bdc2862590ba739fc8eb83d5c1e..463aab78893043c1503bc491b6df181a81fab251 100644
--- a/src/pe/Types.h
+++ b/src/pe/Types.h
@@ -144,7 +144,7 @@ using Materials = std::vector<Material>;          //!< Vector for materials.
 /*!\brief Unique material ID.
  *
  * Every registered material has a unique MaterialID that can be used wherever the material is
- * required. The \b pe engine provides a couple of predefined materials (see the \ref materials
+ * required. The \b pe engine provides a couple of predefined materials (see the \ref Materials
  * module). However, it is possible to define a custom material via the createMaterial() function:
 
    \code
diff --git a/src/pe/ccd/HashGrids.cpp b/src/pe/ccd/HashGrids.cpp
index 5c2f691edc76df566c984677f8586a0d9fe1ae77..6855622a41ef147fd509d7d9a74c4e351bb90fa5 100644
--- a/src/pe/ccd/HashGrids.cpp
+++ b/src/pe/ccd/HashGrids.cpp
@@ -326,7 +326,7 @@ size_t HashGrids::HashGrid::hash( BodyID body ) const
  *
  * \param x X value of the point.
  * \param y Y value of the point.
- * \param y Z value of the point.
+ * \param z Z value of the point.
  * \return The hash value (=cell association) of the point.
  *
  * The hash calculation uses modulo operations in order to spatially map entire blocks of connected
@@ -569,12 +569,12 @@ void HashGrids::HashGrid::enlarge()
 //=================================================================================================
 
 //*************************************************************************************************
-/*!\brief Constructor for the HashGrids class.
- *
- * \param bodystorage Reference to the general body storage.
- *
- * Note that all (local, global and remote) must be contained in the body storage.
- */
+//\brief Constructor for the HashGrids class.
+//*
+//* \param bodystorage Reference to the general body storage.
+//*
+//* Note that all (local, global and remote) must be contained in the body storage.
+//
 //HashGrids::HashGrids( BodyStorage& bodystorage )
 //   : bodystorage_( bodystorage )
 //   , bodystorageShadowCopies_( bodystorage )
diff --git a/src/pe/ccd/HashGrids.h b/src/pe/ccd/HashGrids.h
index 395201c0960ed03cf875846987783e9acd5a436e..6528f19107d87ee2aa8822fcea7b4c58df90d98a 100644
--- a/src/pe/ccd/HashGrids.h
+++ b/src/pe/ccd/HashGrids.h
@@ -502,7 +502,6 @@ void HashGrids::HashGrid::processBodies( BodyID* bodies, size_t bodyCount, Conta
 /*!\brief Computes closest ray-body intersection of cell with center at point x,y,z and neighboring ones.
  *
  * \param blockCell index of cell within block grid.
- * \param blockAABB AABB of the block this grid corresponds to.
  * \param ray Ray being casted trough grid.
  * \param t_closest Distance of closest object from ray origin. Will be updated if closer body found.
  * \param n_closest Normal of intersection point.
@@ -604,8 +603,8 @@ BodyID HashGrids::HashGrid::getBodyIntersectionForBlockCell(const Vector3<int32_
  *
  * \param ray Ray getting shot through this grid.
  * \param blockAABB AABB of the block this grid corresponds to.
- * \param t Reference for the distance.
- * \param n Reference for the intersection normal.
+ * \param t_closest Reference for the distance.
+ * \param n_closest Reference for the intersection normal.
  * \return BodyID of closest body, NULL if none found.
  *
  * This function calculates ray-cell intersections and the closest body in those cells. Also, neighboring
diff --git a/src/pe/collision/EPA.h b/src/pe/collision/EPA.h
index 6c5d762650b0d269fd2a340d89073651b499cee8..e78a67710283d964345f39cd3158de591735e21b 100644
--- a/src/pe/collision/EPA.h
+++ b/src/pe/collision/EPA.h
@@ -402,7 +402,7 @@ inline const Vec3& EPA::EPA_Triangle::getNormal() const
  */
 inline Vec3 EPA::EPA_Triangle::getClosestPoint(const std::vector<Vec3>& points) const
 {
-   return   bar_[0] * points[indices_[0]]
+   return  bar_[0] * points[indices_[0]]
          + bar_[1] * points[indices_[1]]
          + bar_[2] * points[indices_[2]];
 
@@ -469,8 +469,9 @@ inline bool EPA::EPA_TriangleComp::operator()( const EPA_Triangle *tria1,
 
 //*************************************************************************************************
 /*! \brief Calculates a support point of a body extended by threshold.
- * Adds this support and the base points at bodies a and b to the vector.
- * \param geom The body.
+ * Adds this support and the base points at bodies A and B to the vector.
+ * \param geom1 The body A.
+ * \param geom2 The body B.
  * \param dir The support point direction.
  * \param margin Extension of the Body.
  */
@@ -496,8 +497,9 @@ inline void EPA::pushSupportMargin(const GeomPrimitive &geom1, const GeomPrimiti
 
 //*************************************************************************************************
 /*! \brief Calculates a support point of a body extended by threshold.
- * Replaces the old value in the vectors at "IndexToReplace" with this support and the base points at bodies a and b .
- * \param geom The body.
+ * Replaces the old value in the vectors at "IndexToReplace" with this support and the base points at bodies A and B.
+ * \param geom1 The body A.
+ * \param geom2 The body B.
  * \param dir The support point direction.
  * \param margin Extension of the Body.
  */
diff --git a/src/pe/collision/GJK.h b/src/pe/collision/GJK.h
index 15680d93fad68bb054344659c2b22c557d751a39..c5ef0417a6793136e61f1843e585efbaf6e3e0dd 100644
--- a/src/pe/collision/GJK.h
+++ b/src/pe/collision/GJK.h
@@ -185,10 +185,11 @@ inline bool GJK::zeroLengthVector(const Vec3& vec) const
 
 
 //*************************************************************************************************
-/*!\brief Calculate a support point of a body extended by threshold.
- * \param geom The body.
+/*!\brief Calculate a support point of a body extended by a threshold.
+ * \param geom1 The body A.
+ * \param geom2 The body B.
  * \param dir The support point direction.
- * \param threshold Extension of the Body.
+ * \param margin Extension of the Body.
  */
 inline const Vec3 GJK::putSupport(const GeomPrimitive &geom1, const GeomPrimitive &geom2, const Vec3& dir, const real_t margin, 
                                   std::vector<Vec3> &simplex, std::vector<Vec3> &supportA, std::vector<Vec3> &supportB, size_t index){
diff --git a/src/pe/communication/DynamicMarshalling.h b/src/pe/communication/DynamicMarshalling.h
index 8e996c3c617d15e5eca3788e5811684a8f43e177..941d6344c09e83adea72ac349b29bae3d7839fe2 100644
--- a/src/pe/communication/DynamicMarshalling.h
+++ b/src/pe/communication/DynamicMarshalling.h
@@ -61,7 +61,7 @@ public:
    /*!\brief Marshalling rigid body parameters dynamically.
     *
     * \param buffer The buffer to be filled.
-    * \param obj The object to be marshalled dynamically.
+    * \param b The object to be marshalled dynamically.
     * \return void
     *
     * The rigid body is casted dynamically to its original type and then marshalled. For recognition
@@ -97,7 +97,6 @@ public:
    /*!\brief Marshalling rigid body parameters dynamically.
     *
     * \param buffer The buffer to be filled.
-    * \param obj The object to be marshalled dynamically.
     * \return void
     *
     * The rigid body is casted dynamically to its original type and then marshalled. For recognition
diff --git a/src/pe/communication/Marshalling.cpp b/src/pe/communication/Marshalling.cpp
index 9a8e930f663c6e98d9098afea371fc22baf68faa..4ec35b4ff4de5272466f1c4cfa429da990188bb8 100644
--- a/src/pe/communication/Marshalling.cpp
+++ b/src/pe/communication/Marshalling.cpp
@@ -27,36 +27,17 @@ namespace pe {
 namespace communication {
 
 //*************************************************************************************************
-/*!\brief Marshalling rigid body parameters.
- *
- * \param buffer The buffer to be filled.
- * \param obj The object to be marshalled.
- * \return void
- */
 void marshal( mpi::SendBuffer& buffer, const MPIRigidBodyTrait& obj ) {
    buffer << obj.getOwner();
 }
 //*************************************************************************************************
 
 //*************************************************************************************************
-/*!\brief Unmarshalling rigid body parameters.
- *
- * \param buffer The buffer from where to read.
- * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Subordinate bodies in unions do not encode velocities but encode relative positions.
- * \return void
- */
 void unmarshal( mpi::RecvBuffer& buffer, MPIRigidBodyTraitParameter& objparam ) {
    buffer >> objparam.owner_;
 }
 
 //*************************************************************************************************
-/*!\brief Marshalling rigid body parameters.
- *
- * \param buffer The buffer to be filled.
- * \param obj The object to be marshalled.
- * \return void
- */
 void marshal( mpi::SendBuffer& buffer, const RigidBody& obj ) {
    marshal( buffer, obj.MPITrait );
 
@@ -76,13 +57,6 @@ void marshal( mpi::SendBuffer& buffer, const RigidBody& obj ) {
 //*************************************************************************************************
 
 //*************************************************************************************************
-/*!\brief Unmarshalling rigid body parameters.
- *
- * \param buffer The buffer from where to read.
- * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Subordinate bodies in unions do not encode velocities but encode relative positions.
- * \return void
- */
 void unmarshal( mpi::RecvBuffer& buffer, RigidBodyParameters& objparam ) {
    unmarshal( buffer, objparam.mpiTrait_ );
 
@@ -109,12 +83,6 @@ void unmarshal( mpi::RecvBuffer& buffer, RigidBodyParameters& objparam ) {
 //*************************************************************************************************
 
 //*************************************************************************************************
-/*!\brief Marshalling parameters of a geometric primitive.
- *
- * \param buffer The buffer to be filled.
- * \param obj The object to be marshalled.
- * \return void
- */
 void marshal( mpi::SendBuffer& buffer, const GeomPrimitive& obj ) {
    marshal( buffer, static_cast<const RigidBody&>( obj ) );
    buffer << obj.getMaterial();
@@ -123,13 +91,6 @@ void marshal( mpi::SendBuffer& buffer, const GeomPrimitive& obj ) {
 
 
 //*************************************************************************************************
-/*!\brief Unmarshalling parameters of a geometric primitive.
- *
- * \param buffer The buffer to be filled.
- * \param obj The object to be marshalled.
- * \param hasSuperBody False if body is not part of a union. Passed on to rigid body unmarshalling.
- * \return void
- */
 void unmarshal( mpi::RecvBuffer& buffer, GeomPrimitiveParameters& objparam ) {
    unmarshal( buffer, static_cast<RigidBodyParameters&>( objparam ) );
    buffer >> objparam.material_;
diff --git a/src/pe/communication/Marshalling.h b/src/pe/communication/Marshalling.h
index 4136362744b9eaaeaa4ddd4eb444bedddf0f2e84..759e7640c61721c014b5aaf00e37ee2efa34ff4f 100644
--- a/src/pe/communication/Marshalling.h
+++ b/src/pe/communication/Marshalling.h
@@ -59,7 +59,6 @@ void marshal( mpi::SendBuffer& buffer, const MPIRigidBodyTrait& obj );
  *
  * \param buffer The buffer from where to read.
  * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Subordinate bodies in unions do not encode velocities but encode relative positions.
  * \return void
  */
 void unmarshal( mpi::RecvBuffer& buffer, MPIRigidBodyTraitParameter& objparam );
@@ -95,7 +94,6 @@ void marshal( mpi::SendBuffer& buffer, const RigidBody& obj );
  *
  * \param buffer The buffer from where to read.
  * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Subordinate bodies in unions do not encode velocities but encode relative positions.
  * \return void
  */
 void unmarshal( mpi::RecvBuffer& buffer, RigidBodyParameters& objparam );
@@ -126,8 +124,7 @@ void marshal( mpi::SendBuffer& buffer, const GeomPrimitive& obj );
 /*!\brief Unmarshalling parameters of a geometric primitive.
  *
  * \param buffer The buffer to be filled.
- * \param obj The object to be marshalled.
- * \param hasSuperBody False if body is not part of a union. Passed on to rigid body unmarshalling.
+ * \param objparam The object to be marshalled.
  * \return void
  */
 void unmarshal( mpi::RecvBuffer& buffer, GeomPrimitiveParameters& objparam );
diff --git a/src/pe/communication/rigidbody/Box.cpp b/src/pe/communication/rigidbody/Box.cpp
index 1b5bb4aac5b28621b4f22b77392e2463f8ce3488..f44f8aa87b6bf1db056958fc421789b84e52797e 100644
--- a/src/pe/communication/rigidbody/Box.cpp
+++ b/src/pe/communication/rigidbody/Box.cpp
@@ -27,12 +27,6 @@ namespace pe {
 namespace communication {
 
 //*************************************************************************************************
-/*!\brief Marshalling a sphere primitive.
- *
- * \param buffer The buffer to be filled.
- * \param obj The object to be marshalled.
- * \return void
- */
 void marshal( mpi::SendBuffer& buffer, const Box& obj ) {
    marshal( buffer, static_cast<const GeomPrimitive&>( obj ) );
    buffer << obj.getLengths();
@@ -41,13 +35,6 @@ void marshal( mpi::SendBuffer& buffer, const Box& obj ) {
 
 
 //*************************************************************************************************
-/*!\brief Unmarshalling a sphere primitive.
- *
- * \param buffer The buffer from where to read.
- * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Passed on to rigid body unmarshalling.
- * \return void
- */
 void unmarshal( mpi::RecvBuffer& buffer, BoxParameters& objparam ) {
    unmarshal( buffer, static_cast<GeomPrimitiveParameters&>( objparam ) );
    buffer >> objparam.lengths_;
diff --git a/src/pe/communication/rigidbody/Box.h b/src/pe/communication/rigidbody/Box.h
index 78d698f484dd7fac694c7111c9a9e9a6c5efe32f..775da39cf081531d951e590f631b877b37577534 100644
--- a/src/pe/communication/rigidbody/Box.h
+++ b/src/pe/communication/rigidbody/Box.h
@@ -54,7 +54,6 @@ void marshal( mpi::SendBuffer& buffer, const Box& obj );
  *
  * \param buffer The buffer from where to read.
  * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Passed on to rigid body unmarshalling.
  * \return void
  */
 void unmarshal( mpi::RecvBuffer& buffer, BoxParameters& objparam );
diff --git a/src/pe/communication/rigidbody/Capsule.cpp b/src/pe/communication/rigidbody/Capsule.cpp
index 8499459199b54a655bf9ea78a5e5743bc8aa72fc..58b198955acf001d48f51a0526d73b43f7d6c2d1 100644
--- a/src/pe/communication/rigidbody/Capsule.cpp
+++ b/src/pe/communication/rigidbody/Capsule.cpp
@@ -27,12 +27,6 @@ namespace pe {
 namespace communication {
 
 //*************************************************************************************************
-/*!\brief Marshalling a capsule primitive.
- *
- * \param buffer The buffer to be filled.
- * \param obj The object to be marshalled.
- * \return void
- */
 void marshal( mpi::SendBuffer& buffer, const Capsule& obj )
 {
    marshal( buffer, static_cast<const GeomPrimitive&>( obj ) );
@@ -43,13 +37,6 @@ void marshal( mpi::SendBuffer& buffer, const Capsule& obj )
 
 
 //*************************************************************************************************
-/*!\brief Unmarshalling a capsule primitive.
- *
- * \param buffer The buffer from where to read.
- * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Passed on to rigid body unmarshalling.
- * \return void
- */
 void unmarshal( mpi::RecvBuffer& buffer, CapsuleParameters& objparam )
 {
    unmarshal( buffer, static_cast<GeomPrimitiveParameters&>( objparam ) );
diff --git a/src/pe/communication/rigidbody/Capsule.h b/src/pe/communication/rigidbody/Capsule.h
index e319d579a5865829f4b57f798bd6c68e7b72ee20..0ab8a4cf7509e180c57838ee2ba8d645b6125c55 100644
--- a/src/pe/communication/rigidbody/Capsule.h
+++ b/src/pe/communication/rigidbody/Capsule.h
@@ -54,7 +54,6 @@ void marshal( mpi::SendBuffer& buffer, const Capsule& obj );
  *
  * \param buffer The buffer from where to read.
  * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Passed on to rigid body unmarshalling.
  * \return void
  */
 void unmarshal( mpi::RecvBuffer& buffer, CapsuleParameters& objparam );
diff --git a/src/pe/communication/rigidbody/Ellipsoid.cpp b/src/pe/communication/rigidbody/Ellipsoid.cpp
index d7e7199a4e4186b467734ac36b778f276eb223bb..db9ef8e4c0c0b87c16adc111b8f3497a71bae6ac 100644
--- a/src/pe/communication/rigidbody/Ellipsoid.cpp
+++ b/src/pe/communication/rigidbody/Ellipsoid.cpp
@@ -27,12 +27,6 @@ namespace pe {
 namespace communication {
 
 //*************************************************************************************************
-/*!\brief Marshalling a Ellipsoid primitive.
- *
- * \param buffer The buffer to be filled.
- * \param obj The object to be marshalled.
- * \return void
- */
 void marshal( mpi::SendBuffer& buffer, const Ellipsoid& obj ) {
    marshal( buffer, static_cast<const GeomPrimitive&>( obj ) );
    buffer << obj.getSemiAxes();
@@ -41,13 +35,6 @@ void marshal( mpi::SendBuffer& buffer, const Ellipsoid& obj ) {
 
 
 //*************************************************************************************************
-/*!\brief Unmarshalling a Ellipsoid primitive.
- *
- * \param buffer The buffer from where to read.
- * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Passed on to rigid body unmarshalling.
- * \return void
- */
 void unmarshal( mpi::RecvBuffer& buffer, EllipsoidParameters& objparam ) {
    unmarshal( buffer, static_cast<GeomPrimitiveParameters&>( objparam ) );
    buffer >> objparam.semiAxes_;
diff --git a/src/pe/communication/rigidbody/Ellipsoid.h b/src/pe/communication/rigidbody/Ellipsoid.h
index de8787b458879475fa2c5f5b445b827198b6c97e..bd6e03d82876cdaf80c7126644e41ac5203a535a 100644
--- a/src/pe/communication/rigidbody/Ellipsoid.h
+++ b/src/pe/communication/rigidbody/Ellipsoid.h
@@ -54,7 +54,6 @@ void marshal( mpi::SendBuffer& buffer, const Ellipsoid& obj );
  *
  * \param buffer The buffer from where to read.
  * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Passed on to rigid body unmarshalling.
  * \return void
  */
 void unmarshal( mpi::RecvBuffer& buffer, EllipsoidParameters& objparam );
diff --git a/src/pe/communication/rigidbody/Sphere.cpp b/src/pe/communication/rigidbody/Sphere.cpp
index dedd8367ff870eec0a81e0cfefc9c7707fe2a947..cb0dd3c0763c242aa5abbb894a90f9b4a62a28b8 100644
--- a/src/pe/communication/rigidbody/Sphere.cpp
+++ b/src/pe/communication/rigidbody/Sphere.cpp
@@ -27,12 +27,6 @@ namespace pe {
 namespace communication {
 
 //*************************************************************************************************
-/*!\brief Marshalling a sphere primitive.
- *
- * \param buffer The buffer to be filled.
- * \param obj The object to be marshalled.
- * \return void
- */
 void marshal( mpi::SendBuffer& buffer, const Sphere& obj ) {
    marshal( buffer, static_cast<const GeomPrimitive&>( obj ) );
    buffer << obj.getRadius();
@@ -41,13 +35,6 @@ void marshal( mpi::SendBuffer& buffer, const Sphere& obj ) {
 
 
 //*************************************************************************************************
-/*!\brief Unmarshalling a sphere primitive.
- *
- * \param buffer The buffer from where to read.
- * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Passed on to rigid body unmarshalling.
- * \return void
- */
 void unmarshal( mpi::RecvBuffer& buffer, SphereParameters& objparam ) {
    unmarshal( buffer, static_cast<GeomPrimitiveParameters&>( objparam ) );
    buffer >> objparam.radius_;
diff --git a/src/pe/communication/rigidbody/Sphere.h b/src/pe/communication/rigidbody/Sphere.h
index 846a621e57e83d721bb09b8087d1fcf34b88e6b7..26816341b23f70a3ace5af2d083cee4424bea88f 100644
--- a/src/pe/communication/rigidbody/Sphere.h
+++ b/src/pe/communication/rigidbody/Sphere.h
@@ -54,7 +54,6 @@ void marshal( mpi::SendBuffer& buffer, const Sphere& obj );
  *
  * \param buffer The buffer from where to read.
  * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Passed on to rigid body unmarshalling.
  * \return void
  */
 void unmarshal( mpi::RecvBuffer& buffer, SphereParameters& objparam );
diff --git a/src/pe/communication/rigidbody/Union.h b/src/pe/communication/rigidbody/Union.h
index cb10cd0e04deb39fcd34a200ca428670b007ba2e..130acc6e2cfcd7dcb86a5a5cb314ff7ff42f5979 100644
--- a/src/pe/communication/rigidbody/Union.h
+++ b/src/pe/communication/rigidbody/Union.h
@@ -90,7 +90,6 @@ void marshal( mpi::SendBuffer& buffer, const Union<BodyTypes...>& obj )
  *
  * \param buffer The buffer from where to read.
  * \param objparam The object to be reconstructed.
- * \param hasSuperBody False if body is not part of a union. Passed on to rigid body unmarshalling.
  * \return void
  */
 inline
diff --git a/src/pe/cr/HCSITS.h b/src/pe/cr/HCSITS.h
index 24b3d7d59f2659ca43c56389837a1ac388a6520d..497905967fc0f5bbb8c5c032d1db9301f1f8aa13 100644
--- a/src/pe/cr/HCSITS.h
+++ b/src/pe/cr/HCSITS.h
@@ -328,7 +328,7 @@ inline real_t HardContactSemiImplicitTimesteppingSolvers::getSpeedLimitFactor()
 //*************************************************************************************************
 /*!\brief Sets the relaxation parameter for boundary bodies.
  *
- * \param f The overrelaxation parameter.
+ * \param omega The overrelaxation parameter.
  * \return void
  *
  * The overrelaxation parameter \a omega is only used when the relaxation model is one of
diff --git a/src/pe/cr/HCSITS.impl.h b/src/pe/cr/HCSITS.impl.h
index b46362df2e1a7fa09294461c6ce0e3e301533995..6d7751cb49e20338ef3c5fc2b79ec68b2c49f8f1 100644
--- a/src/pe/cr/HCSITS.impl.h
+++ b/src/pe/cr/HCSITS.impl.h
@@ -1759,7 +1759,7 @@ inline void HardContactSemiImplicitTimesteppingSolvers::synchronizeVelocities( )
  *
  * \param body The body whose velocities to time integrate
  * \param dv On return the initial linear velocity correction.
- * \param w On return the initial angular velocity correction.
+ * \param dw On return the initial angular velocity correction.
  * \param dt The time step size.
  * \return void
  *
diff --git a/src/pe/fcd/AnalyticCollisionDetection.h b/src/pe/fcd/AnalyticCollisionDetection.h
index 65737205c2be080e82bb0ed533d18cf017b133d4..4bc5bf6463d313b809b917910845daf6580920b2 100644
--- a/src/pe/fcd/AnalyticCollisionDetection.h
+++ b/src/pe/fcd/AnalyticCollisionDetection.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file Collide.h
+//! \file AnalyticCollisionDetection.h
 //! \author Klaus Iglberger
 //! \author Tobias Scharpff
 //! \author Sebastian Eibl <sebastian.eibl@fau.de>
@@ -149,9 +149,6 @@ namespace analytic {
 //*************************************************************************************************
 /*!\brief Contact generation between two colliding rigid bodies.
  *
- * \param s1 The first colliding rigid body.
- * \param s2 The second colliding rigid body.
- * \param contacts Contact container for the generated contacts.
  * \return true if contact is detected, false otherwise
  *
  * \attention If no contact was detected the value of penetrationDepth, contactPoint, contactNormal is undefined!
@@ -364,7 +361,7 @@ bool collide( BoxID b, SphereID s, Container& container )
  *
  * \param b1 The first colliding box.
  * \param b2 The second colliding box.
- * \param contacts Contact container for the generated contacts.
+ * \param container Contact container for the generated contacts.
  * \return void
  */
 template <typename Container>
@@ -1828,7 +1825,7 @@ bool collide( PlaneID p, BoxID b, Container& container )
  *
  * \param c1 The first colliding capsule.
  * \param c2 The second colliding capsule.
- * \param contacts Contact container for the generated contacts.
+ * \param container Contact container for the generated contacts.
  * \return void
  *
  * In case of two colliding capsules one or two contact points may be generated. In order to
diff --git a/src/pe/raytracing/Color.h b/src/pe/raytracing/Color.h
index cf599930460172403014367436679d9304d194f3..c9b2ad2251448288c141849760a74f4725c23c60 100644
--- a/src/pe/raytracing/Color.h
+++ b/src/pe/raytracing/Color.h
@@ -48,9 +48,7 @@ public:
    }
    
    /*!\brief Instantiation constructor for the Color class.
-    * \param r Red component
-    * \param g Green component
-    * \param b Blue component
+    * \param vector RGB vector
     * Instantiation constructor for the Color class with RGB components. Each value should be between 0 and 1 (soft limits)
     */
    Color (const Vec3& vector) : Color(vector[0], vector[1], vector[2]) {
diff --git a/src/pe/raytracing/Lighting.h b/src/pe/raytracing/Lighting.h
index 1d64cbc87aba6b71032b807a92d586ab0b277214..5957dc59bfa2a3396d1c87e6bc6b1fa9ea8b221c 100644
--- a/src/pe/raytracing/Lighting.h
+++ b/src/pe/raytracing/Lighting.h
@@ -42,10 +42,10 @@ struct Lighting {
    Lighting () = default;
    
    /*!\brief Instantiation constructor for the Lighting struct.
-    * \param pointLightOrigin Origin of the point light.
-    * \param diffuseColor Diffuse color (base color of the light).
-    * \param specularColor Specular color (color of light refractions on an objects surface).
-    * \param ambientColor Color of the ambient light in the scene.
+    * \param _pointLightOrigin Origin of the point light.
+    * \param _diffuseColor Diffuse color (base color of the light).
+    * \param _specularColor Specular color (color of light refractions on an objects surface).
+    * \param _ambientColor Color of the ambient light in the scene.
     */
    Lighting (const Vec3& _pointLightOrigin,
              const Color& _diffuseColor, const Color& _specularColor, const Color& _ambientColor)
diff --git a/src/pe/raytracing/Raytracer.cpp b/src/pe/raytracing/Raytracer.cpp
index d4770039da1e2c447e3d9bf04f448e2b27c3834d..daff4eb3e499e79761d4d960f5f496e631c5dc29 100644
--- a/src/pe/raytracing/Raytracer.cpp
+++ b/src/pe/raytracing/Raytracer.cpp
@@ -366,6 +366,7 @@ void Raytracer::syncImageUsingMPIReduce(std::vector<BodyIntersectionInfo>& inter
 }
   
 /*!\brief Conflate the intersectionsBuffer of each process onto the root process using MPI_Gather.
+ * \param intersections Intersections to conflate.
  * \param intersectionsBuffer Buffer containing intersections.
  * \param tt Optional TimingTree.
  *
diff --git a/src/pe/raytracing/Raytracer.h b/src/pe/raytracing/Raytracer.h
index f531527608950ec9a43ccac11a930e55bd6007b3..ed4c6c864bdb3f8fc2d80170dd113bafa3c9d681 100644
--- a/src/pe/raytracing/Raytracer.h
+++ b/src/pe/raytracing/Raytracer.h
@@ -344,8 +344,8 @@ inline void Raytracer::setLocalImageOutputEnabled(const bool enabled) {
    localImageOutputEnabled_ = enabled;
 }
    
-/*!\brief Enable / disable outputting images in the specified directory.
- * \param enabled Set to true / false to enable / disable image output.
+/*!\brief Enable outputting images in the specified directory.
+ * \param path Directory for image output.
  */
 inline void Raytracer::setImageOutputDirectory(const std::string& path) {
    filesystem::path dir (path);
@@ -376,7 +376,7 @@ inline void Raytracer::setReductionMethod(ReductionMethod reductionMethod) {
 }
 
 /*!\brief Set if the rendering of planes should get confined to the simulation domain.
- * \param confinePlanesToOrigin True if the rendering of planes should get confined to the simulation domain.
+ * \param confinePlanesToDomain True if the rendering of planes should get confined to the simulation domain.
  */
 inline void Raytracer::setConfinePlanesToDomain(bool confinePlanesToDomain) {
    confinePlanesToDomain_ = confinePlanesToDomain;
@@ -513,6 +513,7 @@ inline void Raytracer::traceRayInHashGrids(const Ray& ray, BodyID& body_closest,
 /*!\brief Does one raytracing step.
  *
  * \param timestep The timestep after which the raytracing starts.
+ * \param tt Optional TimingTree.
  *
  * \attention Planes will not get rendered if their normal and the rays direction point in the approximately
  * same direction. See Raytracer::isPlaneVisible() for further information.
@@ -668,7 +669,7 @@ void Raytracer::generateImage(const size_t timestep, WcTimingTree* tt) {
 /*!\brief Computes the color for a certain intersection.
  *
  * \param body Intersected body.
- * \param Ray Ray which intersected the body.
+ * \param ray Ray which intersected the body.
  * \param t Distance from eye to intersection point.
  * \param n Intersection normal at the intersection point.
  *
diff --git a/src/pe/raytracing/ShadingFunctions.h b/src/pe/raytracing/ShadingFunctions.h
index 65675bb21aaee1f85688341e064457c5bdfb6954..de5f0c43f33e7a56bd074e75eb8f53358534eedf 100644
--- a/src/pe/raytracing/ShadingFunctions.h
+++ b/src/pe/raytracing/ShadingFunctions.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file Shading.h
+//! \file ShadingFunctions.h
 //! \author Lukas Werner
 //
 //======================================================================================================================
diff --git a/src/pe/raytracing/ShadingParameters.h b/src/pe/raytracing/ShadingParameters.h
index c6a7eb16c23930a40292684ab6f8654699b8f214..c3d443a71e0ee0b8b1accd28b4fd2658c90aac1d 100644
--- a/src/pe/raytracing/ShadingParameters.h
+++ b/src/pe/raytracing/ShadingParameters.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file Shading.h
+//! \file ShadingParameters.h
 //! \author Lukas Werner
 //
 //======================================================================================================================
@@ -39,10 +39,10 @@ struct ShadingParameters {
    ShadingParameters () = default;
    
    /*!\brief Instantiation constructor for the Shading struct.
-    * \param diffuseColor Primary color of the material.
-    * \param ambientColor Color the material has even when its not directly lit.
-    * \param specularColor Color this material contributes to on its specular highlights.
-    * \param shininess Shininess of the material.
+    * \param _diffuseColor Primary color of the material.
+    * \param _ambientColor Color the material has even when its not directly lit.
+    * \param _specularColor Color this material contributes to on its specular highlights.
+    * \param _shininess Shininess of the material.
     */
    ShadingParameters (const Color& _diffuseColor, const Color& _ambientColor, const Color& _specularColor, real_t _shininess)
    : diffuseColor(_diffuseColor), ambientColor(_ambientColor), specularColor(_specularColor), shininess(_shininess) {
diff --git a/src/pe/rigidbody/Box.cpp b/src/pe/rigidbody/Box.cpp
index 0705a4ca1f5463cd0a4a078353cb7e872b6f4db5..e7a65f7e950d4794086cd4b2aa99d3ee1bfd8525 100644
--- a/src/pe/rigidbody/Box.cpp
+++ b/src/pe/rigidbody/Box.cpp
@@ -48,12 +48,12 @@ namespace pe {
  * \param sid Unique system-specific ID for the box.
  * \param uid User-specific ID for the box.
  * \param gpos Global geometric center of the box.
- * \param rpos The relative position within the body frame of a superordinate body.
  * \param q The orientation of the box's body frame in the global world frame.
  * \param lengths Side lengths of the box \f$ (0..\infty) \f$.
  * \param material The material of the box.
- * \param visible Specifies if the box is visible in a visualization.
- * \param fixed \a true to fix the box, \a false to unfix it.
+ * \param global specifies if the box should be created in the global storage
+ * \param communicating specifies if the box should take part in synchronization (syncNextNeighbour, syncShadowOwner)
+ * \param infiniteMass specifies if the box has infinite mass and will be treated as an obstacle
  */
 Box::Box( id_t sid, id_t uid, const Vec3& gpos, const Quat& q,
           const Vec3& lengths, MaterialID material,
diff --git a/src/pe/rigidbody/Capsule.cpp b/src/pe/rigidbody/Capsule.cpp
index b544f08518b9dfe6ca6f66064e63dcc20b553445..b51436114cb580b90e01246b53ee065851f5ecdf 100644
--- a/src/pe/rigidbody/Capsule.cpp
+++ b/src/pe/rigidbody/Capsule.cpp
@@ -48,10 +48,13 @@ namespace pe {
  * \param sid Unique system-specific ID for the capsule.
  * \param uid User-specific ID for the capsule.
  * \param gpos Global geometric center of the capsule.
+ * \param q The orientation of the capsule's body frame in the global world frame.
  * \param radius The radius of the cylinder part and the end caps \f$ (0..\infty) \f$.
  * \param length The length of the cylinder part \f$ (0..\infty) \f$.
  * \param material The material of the capsule.
- * \param visible Specifies if the capsule is visible in a visualization.
+ * \param global specifies if the capsule should be created in the global storage
+ * \param communicating specifies if the capsule should take part in synchronization (syncNextNeighbour, syncShadowOwner)
+ * \param infiniteMass specifies if the capsule has infinite mass and will be treated as an obstacle
  *
  * The capsule is created lying along the x-axis.
  */
diff --git a/src/pe/rigidbody/CapsuleFactory.h b/src/pe/rigidbody/CapsuleFactory.h
index 012522b6005222f40cf92033a48804da0f28596e..19a2b89d26256e6352a284362bdf0634df9ca1c7 100644
--- a/src/pe/rigidbody/CapsuleFactory.h
+++ b/src/pe/rigidbody/CapsuleFactory.h
@@ -47,7 +47,6 @@ namespace pe {
  * \param storageID BlockDataID of the BlockStorage block datum
  * \param uid The user-specific ID of the capsule.
  * \param gpos The global position of the center of the capsule.
- * \param q The orientation of the capsule's body frame in the global world frame.
  * \param radius The radius of the cylinder part and the end caps \f$ (0..\infty) \f$.
  * \param length The length of the cylinder part of the capsule \f$ (0..\infty) \f$.
  * \param material The material of the capsule.
diff --git a/src/pe/rigidbody/Ellipsoid.cpp b/src/pe/rigidbody/Ellipsoid.cpp
index d47b400d543a33be82c97eda8a49c78fc1603ab7..59d396338f0f5f37f4f04a2cfe0497665abe2de2 100644
--- a/src/pe/rigidbody/Ellipsoid.cpp
+++ b/src/pe/rigidbody/Ellipsoid.cpp
@@ -50,9 +50,8 @@ namespace pe {
  * \param sid Unique system-specific ID for the Ellipsoid.
  * \param uid User-specific ID for the Ellipsoid.
  * \param gpos Global geometric center of the Ellipsoid.
- * \param rpos The relative position within the body frame of a superordinate body.
  * \param q The orientation of the Ellipsoid's body frame in the global world frame.
- * \param radius The radius of the Ellipsoid \f$ (0..\infty) \f$.
+ * \param semiAxes The semi-axes of the Ellipsoid.
  * \param material The material of the Ellipsoid.
  * \param global specifies if the Ellipsoid should be created in the global storage
  * \param communicating specifies if the Ellipsoid should take part in synchronization (syncNextNeighbour, syncShadowOwner)
diff --git a/src/pe/rigidbody/GeomPrimitive.cpp b/src/pe/rigidbody/GeomPrimitive.cpp
index 0594e19a3a6b91331d424a5d414b78fbdc7c7712..97dbcef5663b9dc6eac92fe5cba45992da48d491 100644
--- a/src/pe/rigidbody/GeomPrimitive.cpp
+++ b/src/pe/rigidbody/GeomPrimitive.cpp
@@ -40,7 +40,7 @@ namespace pe {
 //*************************************************************************************************
 /*!\brief Constructor for the GeomPrimitive class.
  *
- * \param type The geometry type of the geometric primitive.
+ * \param typeID The geometry type of the geometric primitive.
  * \param sid The unique system-specific ID of the geometric primitive.
  * \param uid The user-specific ID of the geometric primitive.
  * \param material The material of the geometric primitive.
diff --git a/src/pe/rigidbody/MPIRigidBodyTrait.h b/src/pe/rigidbody/MPIRigidBodyTrait.h
index 5e24baa2947156c93904054ae12d8bbc0b33a13b..050181c06bb7f59e8d52a6d6407459ceff3b0d4a 100644
--- a/src/pe/rigidbody/MPIRigidBodyTrait.h
+++ b/src/pe/rigidbody/MPIRigidBodyTrait.h
@@ -136,7 +136,7 @@ inline MPIRigidBodyTrait::MPIRigidBodyTrait( )
 //*************************************************************************************************
 /*!\brief Registering a new remote process the rigid body is contained in.
  *
- * \param process The remote process to be registered with the rigid body.
+ * \param owner The remote process to be registered with the rigid body.
  * \return void
  *
  * This function registers the given remote process with the rigid body. In case the process is
@@ -153,7 +153,7 @@ inline void MPIRigidBodyTrait::registerShadowOwner( const Owner& owner )
 //*************************************************************************************************
 /*!\brief Deregistering a remote process from the rigid body.
  *
- * \param process The remote process to be deregistered from the rigid body.
+ * \param owner The remote process to be deregistered from the rigid body.
  * \return void
  *
  * This function deregisters the given remote process from the rigid body. This call has linear
@@ -171,7 +171,7 @@ inline void MPIRigidBodyTrait::deregisterShadowOwner( const Owner& owner )
 //*************************************************************************************************
 /*!\brief Checks whether the given remote process is registered with the rigid body.
  *
- * \param process The remote process that possibly registered with the rigid body.
+ * \param owner The remote process that possibly registered with the rigid body.
  * \return \a true if the given process is registered with the rigid body, \a false if not.
  *
  * This call has linear complexity.
diff --git a/src/pe/rigidbody/Plane.cpp b/src/pe/rigidbody/Plane.cpp
index 0d501c60d912bb9cdc6cdd46979af2efa5307ddf..bf2a7908a987da136b0a5d84881b7fff80021a12 100644
--- a/src/pe/rigidbody/Plane.cpp
+++ b/src/pe/rigidbody/Plane.cpp
@@ -189,7 +189,8 @@ void Plane::setPositionImpl( real_t px, real_t py, real_t pz )
 //*************************************************************************************************
 /*!\brief Setting the global orientation of the plane.
  *
- * \param q The global orientation.
+ * \param r The quaternion scalar part.
+ * \param i,j,k The quaternion vector part.
  * \return void
  * \exception std::logic_error Invalid rotation of a plane inside an exclusive section.
  *
@@ -319,13 +320,12 @@ void Plane::rotateImpl( const Quat& dq )
 //*************************************************************************************************
 /*!\brief Rotation of the plane around the origin of the global world frame.
  *
- * \param axis The global rotation axis.
- * \param angle The rotation angle (radian measure).
+ * \param dq The quaternion for the rotation.
  * \return void
  * \exception std::logic_error Invalid rotation of a plane inside an exclusive section.
  *
  * Changing the orientation/rotation of the plane. The plane is rotated around the origin of
- * the global frame around the given axis \a (x,y,z) by \a angle degrees (radian measure).
+ * the global frame around by the quaternion \a dq.
  * Therefore the anchor point (global position) and the normal of the plane are changed, not
  * its distance (displacement) to the origin.\n
  *
diff --git a/src/pe/rigidbody/RigidBody.cpp b/src/pe/rigidbody/RigidBody.cpp
index b58bcad567315b4a725ca65722e13df91f9912e4..467a36e29f8f69bdd4f0b0d91c9db139a0f74ae0 100644
--- a/src/pe/rigidbody/RigidBody.cpp
+++ b/src/pe/rigidbody/RigidBody.cpp
@@ -27,8 +27,7 @@ namespace pe{
 //*************************************************************************************************
 /*!\brief Constructor for the RigidBody class.
  *
- * \param finite Specifies if the rigid body is finite or not.
- * \param visible Specifies if the rigid body is visible or not.
+ * \param typeID The geometry type of the rigid body.
  * \param sid The unique system-specific ID of the rigid body.
  * \param uid The user-specific ID of the rigid body.
  */
diff --git a/src/pe/rigidbody/RigidBody.h b/src/pe/rigidbody/RigidBody.h
index f6d3cfb03977119f60fb5ebda8cde1402cb9f042..33f23bdee803b44829b5191df0371ca33fa6e144 100644
--- a/src/pe/rigidbody/RigidBody.h
+++ b/src/pe/rigidbody/RigidBody.h
@@ -2753,13 +2753,12 @@ inline void RigidBody::rotateAroundOriginImpl( const Quat& dq )
 /*!\brief Rotation of the rigid body around a specific global coordinate.
  *
  * \param point The global center of the rotation.
- * \param axis The global rotation axis.
- * \param angle The rotation angle (radian measure).
+ * \param dq The quaternion for the rotation.
  * \return void
  *
  * This function rotates the rigid body around the given global coordinate \a point and changes
  * both the global position and the orientation/rotation of the rigid body. The rigid body is rotated
- * around the given axis \a axis by \a angle degrees (radian measure).\n
+ * by the quaternion \a dq.\n
  *
  * \b Note:
  * - Rotating a rigid body contained in a union changes the mass distribution and geometry of the
diff --git a/src/pe/rigidbody/Squirmer.cpp b/src/pe/rigidbody/Squirmer.cpp
index 4a9f714b5108d37aab16ddef18463cb7445da380..bc25bb5eae2d245a22e9ce6bf5a70b468798c364 100644
--- a/src/pe/rigidbody/Squirmer.cpp
+++ b/src/pe/rigidbody/Squirmer.cpp
@@ -38,7 +38,6 @@ namespace pe {
  * \param sid Unique system-specific ID for the sphere.
  * \param uid User-specific ID for the sphere.
  * \param gpos Global geometric center of the sphere.
- * \param rpos The relative position within the body frame of a superordinate body.
  * \param q The orientation of the sphere's body frame in the global world frame.
  * \param radius The radius of the sphere \f$ (0..\infty) \f$.
  * \param squirmerVelocity The velocity of the squirmer.
diff --git a/src/pe/rigidbody/StorageDataHandling.h b/src/pe/rigidbody/StorageDataHandling.h
index 4260f5278572206dddb39b36ce25148d28ad9446..e2e2b729457b6940735859874a9a8a6d386ac2e0 100644
--- a/src/pe/rigidbody/StorageDataHandling.h
+++ b/src/pe/rigidbody/StorageDataHandling.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file BodyStorageDataHandling.h
+//! \file StorageDataHandling.h
 //! \author Sebastian Eibl <sebastian.eibl@fau.de>
 //
 //======================================================================================================================
diff --git a/src/pe/rigidbody/Union.h b/src/pe/rigidbody/Union.h
index b682f159ab3f6bf7870291e917fe228352ee2888..ff1f009d9d8bde8eebb7105077c89c775a9467eb 100644
--- a/src/pe/rigidbody/Union.h
+++ b/src/pe/rigidbody/Union.h
@@ -484,7 +484,9 @@ void Union<BodyTypes...>::calcInertia()
 //*************************************************************************************************
 /*!\brief Setting the global position of the union.
  *
- * \param gpos The global position.
+ * \param px The x-component of the global coordinate.
+ * \param py The y-component of the global coordinate.
+ * \param pz The z-component of the global coordinate.
  * \return void
  * \exception std::logic_error Invalid translation of a global union inside an exclusive section.
  *
@@ -650,7 +652,9 @@ RigidBody& Union<BodyTypes...>::add( std::unique_ptr<RigidBody>&& body )
 //*************************************************************************************************
 /*!\brief Translation of the center of mass of the union by the displacement vector \a dp.
  *
- * \param dp The displacement vector.
+ * \param dx The displacement on the x-axis.
+ * \param dy The displacement on the y-axis.
+ * \param dz The displacement on the z-axis.
  * \return void
  * \exception std::logic_error Invalid translation of a global union inside an exclusive section.
  *
@@ -710,16 +714,14 @@ void Union<BodyTypes...>::rotateImpl( const Quat& dq )
 //*************************************************************************************************
 /*!\brief Rotation of the union around the origin of the global world frame.
  *
- * \param xangle Rotation around the x-axis (radian measure).
- * \param yangle Rotation around the y-axis (radian measure).
- * \param zangle Rotation around the z-axis (radian measure).
+ * \param dq The quaternion for the rotation.
  * \return void
  * \exception std::logic_error Invalid rotation of a global union inside an exclusive section.
  *
  * This function rotates the entire union around the origin of the global world frame and
  * changes both the global position and the orientation/rotation of the union. Additionally,
- * all contained rigid bodies change their position and orientation accordingly. The rotations
- * are applied in the order x, y, z. The orientation of the bodies within the union in
+ * all contained rigid bodies change their position and orientation accordingly.
+ * The orientation of the bodies within the union in
  * reference to the body frame of the union is not changed.
  */
 template <typename... BodyTypes>
@@ -739,8 +741,7 @@ void Union<BodyTypes...>::rotateAroundOriginImpl( const Quat& dq )
 /*!\brief Rotation of the union around a specific global coordinate.
  *
  * \param point The global center of the rotation.
- * \param axis The global rotation axis.
- * \param angle The rotation angle (radian measure).
+ * \param dq The quaternion for the rotation.
  * \return void
  * \exception std::logic_error Invalid rotation of a global union inside an exclusive section.
  *
diff --git a/src/pe/synchronization/ClearSynchronization.h b/src/pe/synchronization/ClearSynchronization.h
index 2d14c324915b2e444a0be4b7c6b72d1a7e258e15..4968bdaa71baef8356ea31fdb7cbfedcbf9c3d58 100644
--- a/src/pe/synchronization/ClearSynchronization.h
+++ b/src/pe/synchronization/ClearSynchronization.h
@@ -35,7 +35,7 @@ namespace pe {
 /*!\brief Removes all synchronization information.
  *
  * \param blocks BlockStorage of the simulation.
- * \param BlockDataID BlockDataID of the pe storage.
+ * \param storageID BlockDataID of the pe storage.
  */
 inline
 void clearSynchronization( BlockStorage& blocks, BlockDataID storageID )
diff --git a/src/pe/synchronization/SyncForces.h b/src/pe/synchronization/SyncForces.h
index a990719436cf811c15d6074534c7437bb0b4b805..d896b1cd67d8080b2eb4beed229a61e5d3c3e460 100644
--- a/src/pe/synchronization/SyncForces.h
+++ b/src/pe/synchronization/SyncForces.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file SynchronizeForces.h
+//! \file SyncForces.h
 //! \author Sebastian Eibl <sebastian.eibl@fau.de>
 //
 //======================================================================================================================
diff --git a/src/pe/synchronization/SyncNextNeighbors.h b/src/pe/synchronization/SyncNextNeighbors.h
index 4fd166011d6756241972612723d7f074a0c8d7db..594d0a9ed55fd6e711c879741f0d3a2d193ab114 100644
--- a/src/pe/synchronization/SyncNextNeighbors.h
+++ b/src/pe/synchronization/SyncNextNeighbors.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file Synchronization.h
+//! \file SyncNextNeighbors.h
 //! \author Sebastian Eibl <sebastian.eibl@fau.de>
 //
 //======================================================================================================================
diff --git a/src/pe/utility/Distance.h b/src/pe/utility/Distance.h
index 182932591f79a60f66345ee4b1cbda80f77f8561..7fa0981e01533fb29fe54d78f8d118603587ac27 100644
--- a/src/pe/utility/Distance.h
+++ b/src/pe/utility/Distance.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file SurfaceDistance.h
+//! \file Distance.h
 //! \author Klaus Iglberger
 //! \author Sebastian Eibl <sebastian.eibl@fau.de>
 //
diff --git a/src/pe_coupling/geometry/PeOverlapFraction.h b/src/pe_coupling/geometry/PeOverlapFraction.h
index f8bae664e9762df51ca602bdfe9398b2c18c6433..f6a5e209dbd209e5dea3f92499b404b89197e580 100644
--- a/src/pe_coupling/geometry/PeOverlapFraction.h
+++ b/src/pe_coupling/geometry/PeOverlapFraction.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file PeOverlapFractions.h
+//! \file PeOverlapFraction.h
 //! \ingroup pe_coupling
 //! \author Christoph Rettinger <christoph.rettinger@fau.de>
 //
diff --git a/src/pe_coupling/momentum_exchange_method/restoration/PDFReconstruction.h b/src/pe_coupling/momentum_exchange_method/restoration/PDFReconstruction.h
index 6de45fbca37be5c7315311469438c4df5b65c9e9..bb92f6332ae246224b437ee4fc945bf162f1adf9 100644
--- a/src/pe_coupling/momentum_exchange_method/restoration/PDFReconstruction.h
+++ b/src/pe_coupling/momentum_exchange_method/restoration/PDFReconstruction.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file PDFRestoration.h
+//! \file PDFReconstruction.h
 //! \ingroup pe_coupling
 //! \author Christoph Rettinger <christoph.rettinger@fau.de>
 //
diff --git a/src/pe_coupling/utility/TimeStep.h b/src/pe_coupling/utility/TimeStep.h
index 283282b6893e9b6307b7dcb77b2ddc734dee9523..6ff119df672ab55d8757986f7f0d8931f09a7614 100644
--- a/src/pe_coupling/utility/TimeStep.h
+++ b/src/pe_coupling/utility/TimeStep.h
@@ -34,13 +34,13 @@ namespace pe_coupling {
 
 /*!\brief Carries out the the PE time steps, including sub iteration functionality.
  *
- * It executes 'numberOfSubIterations' PE steps within one timestep of size 'timeStepSize'.
+ * It executes \a numberOfSubIterations PE steps within one timestep of size \a timeStepSize.
  *
- * These PE sub iterations require, that the current external (e.g. hydrodynamic, gravitational,..) forces and torques
+ * These PE sub iterations require, that the current external (e.g. hydrodynamic, gravitational, ...) forces and torques
  * acting on each particle remains unchanged. Thus, a map is set up internally that stores and re-sets these forces
- * and torques in each PE sub iteration
- * .
- * Additionally, a function 'forceEvaluationFunc' can be given that allows to evaluate different forces before the PE
+ * and torques in each PE sub iteration.
+ *
+ * Additionally, a function \a forceEvaluationFunc can be given that allows to evaluate different forces before the PE
  * step is carried out. An example are particle-particle lubrication forces that have to be updated in each sub iteration.
  *
  */
diff --git a/src/postprocessing/MarchingCubes.impl.h b/src/postprocessing/MarchingCubes.impl.h
index 29f22544f82f2a01eb6196aad0b1c215405b85ff..2ac3bfd2500f6779d5a60d66ce819b455e0456ce 100644
--- a/src/postprocessing/MarchingCubes.impl.h
+++ b/src/postprocessing/MarchingCubes.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file MarchingCubes.cpp
+//! \file MarchingCubes.impl.h
 //! \ingroup postprocessing
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Simon Bogner <simon.bogner@fau.de>
diff --git a/src/python_coupling/CreateConfig.cpp b/src/python_coupling/CreateConfig.cpp
index 5f8f9615c2f346096b567826974d20904ad2b9af..98b61f6654cd65b5a949a15568f05fb798e2f3ea 100644
--- a/src/python_coupling/CreateConfig.cpp
+++ b/src/python_coupling/CreateConfig.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file CreateConfigFromPythonScript.cpp
+//! \file CreateConfig.cpp
 //! \ingroup python
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/CreateConfig.h b/src/python_coupling/CreateConfig.h
index f95d3586e33841976ccaf7f2510372f84a95a951..36fbc21153031b3cd6a2a348f24766da2e68a03f 100644
--- a/src/python_coupling/CreateConfig.h
+++ b/src/python_coupling/CreateConfig.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file CreateConfigFromPythonScript.h
+//! \file CreateConfig.h
 //! \ingroup python
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/PythonWrapper.h b/src/python_coupling/PythonWrapper.h
index 3909af0521faa0673fe7ada7b6c19c2acbe0df9f..9e1bfe173502d86b86d5b0fb696bf5eff4855f71 100644
--- a/src/python_coupling/PythonWrapper.h
+++ b/src/python_coupling/PythonWrapper.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file python/Python.h
+//! \file PythonWrapper.h
 //! \ingroup core
 //! \author Matthias Markl <matthias.markl@fau.de>
 //! \author Martin Bauer <martin.bauer@fau.de>
diff --git a/src/python_coupling/export/BasicExport.cpp b/src/python_coupling/export/BasicExport.cpp
index 29dd8a4934c309287e2abdaf2db566919b0ad538..767a6fd0c0ef18344a0f947e2114e78ab211428a 100644
--- a/src/python_coupling/export/BasicExport.cpp
+++ b/src/python_coupling/export/BasicExport.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file BasicExports.cpp
+//! \file BasicExport.cpp
 //! \ingroup python_coupling
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/export/BasicExport.h b/src/python_coupling/export/BasicExport.h
index ba9bb2b07633e82e0eb27244b515abb33b22fae2..a786cf12fc47e9077157d3d92d5751e1c01119ff 100644
--- a/src/python_coupling/export/BasicExport.h
+++ b/src/python_coupling/export/BasicExport.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file BasicExports.h
+//! \file BasicExport.h
 //! \ingroup python_coupling
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/export/BlockForestCommunicationExport.h b/src/python_coupling/export/BlockForestCommunicationExport.h
index f74ff2fa307f76e54443a8dfeb1b03549b7d9a0f..88b6765c57caa691bfb0a307523f0500c1173b41 100644
--- a/src/python_coupling/export/BlockForestCommunicationExport.h
+++ b/src/python_coupling/export/BlockForestCommunicationExport.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file CommunicationExport.h
+//! \file BlockForestCommunicationExport.h
 //! \ingroup blockforest
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/export/BlockForestCommunicationExport.impl.h b/src/python_coupling/export/BlockForestCommunicationExport.impl.h
index a45abe4ff97b9875ea9754500bcf361d020de193..3b3c8ed518d36cb6a92d980ffefa90de29162a1a 100644
--- a/src/python_coupling/export/BlockForestCommunicationExport.impl.h
+++ b/src/python_coupling/export/BlockForestCommunicationExport.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file CommunicationExport.impl.h
+//! \file BlockForestCommunicationExport.impl.h
 //! \ingroup blockforest
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/export/BlockForestExport.cpp b/src/python_coupling/export/BlockForestExport.cpp
index e4aae6226c92ee24cad6f4d1db07fcfce6c80a66..a57834b66edbf51de8d5c41958f779cb6b93d67e 100644
--- a/src/python_coupling/export/BlockForestExport.cpp
+++ b/src/python_coupling/export/BlockForestExport.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file Exports.cpp
+//! \file BlockForestExport.cpp
 //! \ingroup blockforest
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/export/BlockForestExport.h b/src/python_coupling/export/BlockForestExport.h
index 1c5ddaae4a53ae91ceb57a488351c782e16cc736..641e26ef7a70e43438a5f7a71e292001bc7ca80c 100644
--- a/src/python_coupling/export/BlockForestExport.h
+++ b/src/python_coupling/export/BlockForestExport.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file Exports.h
+//! \file BlockForestExport.h
 //! \ingroup blockforest
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/export/FieldCommunicationExport.h b/src/python_coupling/export/FieldCommunicationExport.h
index ccbe61496b8cedcda9ca502355defe890e6c13da..718e325a53dfda535921393b87d30377ee2fd861 100644
--- a/src/python_coupling/export/FieldCommunicationExport.h
+++ b/src/python_coupling/export/FieldCommunicationExport.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file CommunicationExport.h
+//! \file FieldCommunicationExport.h
 //! \ingroup field
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/export/FieldCommunicationExport.impl.h b/src/python_coupling/export/FieldCommunicationExport.impl.h
index 57289631d981822f5ba10c5111279c5da1d79337..33a0ac0eec2d92f17abb9a238845542ddbbad792 100644
--- a/src/python_coupling/export/FieldCommunicationExport.impl.h
+++ b/src/python_coupling/export/FieldCommunicationExport.impl.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file CommunicationExport.impl.h
+//! \file FieldCommunicationExport.impl.h
 //! \ingroup field
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/export/MPIExport.cpp b/src/python_coupling/export/MPIExport.cpp
index 00e13dfdf54f7b10268646337825a2ea266b53fb..ddb3ea025854fb6f1f542d2216be7c7fb418de7b 100644
--- a/src/python_coupling/export/MPIExport.cpp
+++ b/src/python_coupling/export/MPIExport.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file MPIExports.cpp
+//! \file MPIExport.cpp
 //! \ingroup python_coupling
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/export/MPIExport.h b/src/python_coupling/export/MPIExport.h
index d1653a734e3c3e7df87892579478735a28ab5438..146f39e9a406cd4a7a7762834e3049707730c3ad 100644
--- a/src/python_coupling/export/MPIExport.h
+++ b/src/python_coupling/export/MPIExport.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file MPIExports.h
+//! \file MPIExport.h
 //! \ingroup python_coupling
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/export/VTKExport.cpp b/src/python_coupling/export/VTKExport.cpp
index a8ab00e577e39fbf1ad53747f23ec76582a8edf0..95b699959b4fe9db2751633bb8d960261e0359de 100644
--- a/src/python_coupling/export/VTKExport.cpp
+++ b/src/python_coupling/export/VTKExport.cpp
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file Exports.cpp
+//! \file VTKExport.cpp
 //! \ingroup vtk
 //! \author Martin Bauer <martin.bauer@fau.de>
 //
diff --git a/src/python_coupling/export/VTKExport.h b/src/python_coupling/export/VTKExport.h
index d2f955cd722334ea1f37aa72202a7d41f987879b..edfacf58f6ad5faa0799084fcd593afae22f5be2 100644
--- a/src/python_coupling/export/VTKExport.h
+++ b/src/python_coupling/export/VTKExport.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file Exports.h
+//! \file VTKExport.h
 //! \ingroup vtk
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/helper/BlockStorageExportHelpers.h b/src/python_coupling/helper/BlockStorageExportHelpers.h
index 0b41dd498276838270d8546bfdcab2406abb641e..6a8e79885f75a276586ae947c1d418c3a96d6888 100644
--- a/src/python_coupling/helper/BlockStorageExportHelpers.h
+++ b/src/python_coupling/helper/BlockStorageExportHelpers.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file ExportHelpers.h
+//! \file BlockStorageExportHelpers.h
 //! \ingroup python_coupling
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/helper/PybindHelper.h b/src/python_coupling/helper/PybindHelper.h
index d43c560ccf38643aeb4a6f562c9a9097e3eb9b33..c305eafd55d5a81841969178f7bbafd750085c35 100644
--- a/src/python_coupling/helper/PybindHelper.h
+++ b/src/python_coupling/helper/PybindHelper.h
@@ -14,7 +14,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file CppPythonTypeEquality.h
+//! \file PybindHelper.h
 //! \ingroup python_coupling
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/python_coupling/helper/PythonIterableToStdVector.h b/src/python_coupling/helper/PythonIterableToStdVector.h
index 71583ec21cbb91d93a7986c466d24abfe48e5bd4..8289aaf0dabf40c5cd3621562708c4e7d10158e8 100644
--- a/src/python_coupling/helper/PythonIterableToStdVector.h
+++ b/src/python_coupling/helper/PythonIterableToStdVector.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file PythonIterableToStdVector.h.h
+//! \file PythonIterableToStdVector.h
 //! \ingroup python_coupling
 //! \author Martin Bauer <martin.bauer@fau.de>
 //! \author Markus Holzer <markus.holzer@fau.de>
diff --git a/src/sqlite/SQLite.cpp b/src/sqlite/SQLite.cpp
index a62fb09afb5dc06b231b7f5708e9170871bcca57..2670a5c483e52573e0b300312084589b8bb5127c 100644
--- a/src/sqlite/SQLite.cpp
+++ b/src/sqlite/SQLite.cpp
@@ -76,7 +76,9 @@ SQLiteDB::~SQLiteDB ()
    *  are set to default value ( zero or empty string ).
    *  Additionally a column is created for each activated global state, and its value is set to 1
    *
-   *  \param *Properties  Map of column names to value
+   *  \param dbHandle     Database cursor
+   *  \param filename     Database path
+   *  \param integerProperties,stringProperties,realProperties  Map of column names to value
    *  \returns            The primary key of the inserted data set.
    */
 //*******************************************************************************************************************
@@ -158,10 +160,11 @@ uint_t storeRunImpl( sqlite3 * dbHandle, std::string & filename,
 //*******************************************************************************************************************
 /*! Stores information in another table, referencing the "run" table
    *
+   * \param dbHandle    database cursor
    * \param runId       result of storeRun() member function, primary key of the run to store information for
    * \param tableName   name of the table where the information is stored in
    *                    is created if it does not yet exist
-   * \param *Properties Map of column names to value
+   * \param integerProperties,stringProperties,realProperties Map of column names to value
    */
 //*******************************************************************************************************************
 template<typename IntType>
@@ -231,7 +234,7 @@ void storeAdditionalRunInfoImpl( sqlite3 * dbHandle,
    *  are set to default value ( zero or empty string ).
    *  Additionally a column is created for each activated global state, and its value is set to 1
    *
-   *  \param *Properties  Map of column names to value
+   *  \param integerProperties,stringProperties,realProperties  Map of column names to value
    *  \returns            The primary key of the inserted data set.
    */
 //*******************************************************************************************************************
@@ -257,7 +260,7 @@ uint_t SQLiteDB::storeRun( const map<string, int64_t> & integerProperties,
    * \param runId       result of storeRun() member function, primary key of the run to store information for
    * \param tableName   name of the table where the information is stored in
    *                    is created if it does not yet exist
-   * \param *Properties Map of column names to value
+   * \param integerProperties,stringProperties,realProperties Map of column names to value
    */
 //*******************************************************************************************************************
 void SQLiteDB::storeAdditionalRunInfo( uint_t runId, const std::string & tableName,
@@ -285,7 +288,7 @@ void SQLiteDB::storeAdditionalRunInfo( uint_t runId, const std::string & tableNa
    *
    * \param runId   primary key of the run, as returned by storeRun()
    * \param tp      the TimingPool to store
-   * \param name    name of the timing pool ( as written to database column )
+   * \param timingPoolName  name of the timing pool ( as written to database column )
    */
 //*******************************************************************************************************************
 void SQLiteDB::storeTimingPool ( uint_t runId,
@@ -357,7 +360,7 @@ void SQLiteDB::storeTimingPool ( uint_t runId,
    *
    * \param runId   primary key of the run, as returned by storeRun()
    * \param tt      the TimingTree to store
-   * \param name    name of the timing tree ( as written to database column )
+   * \param timingTreeName  name of the timing tree ( as written to database column )
    */
 //*******************************************************************************************************************
 void SQLiteDB::storeTimingTree ( uint_t runId,
@@ -403,7 +406,7 @@ void SQLiteDB::storeTimingTree ( uint_t runId,
    * \param runId   primary key of the run, as returned by storeRun()
    * \param parentId   parent key of the node
    * \param tn      the TimingNode to store
-   * \param name    name of the timing tree ( as written to database column )
+   * \param timingTreeName  name of the timing tree ( as written to database column )
    */
 //*******************************************************************************************************************
 void SQLiteDB::storeTimingNode ( const uint_t runId,
diff --git a/src/stencil/Directions.h b/src/stencil/Directions.h
index c13d95466406f8d63dff04a1021c9779fb310c57..d3a75b812131878c4222d4cf4fa5ec5953e1f087 100644
--- a/src/stencil/Directions.h
+++ b/src/stencil/Directions.h
@@ -1,6 +1,6 @@
 //=====================================================================================================================
 /*!
- *  \file   Stencil.h
+ *  \file   Directions.h
  *  \brief  Defines all stencil directions and their properties, and a general DxQy stencil class
  *  \author Martin Bauer <martin.bauer@fau.de>
  */
diff --git a/src/timeloop/ITimeloop.h b/src/timeloop/ITimeloop.h
index 3a77ca9951fe543cbf21247f73e37fe346cca45d..a2a59470288efa66c76ee7292230f9070bf23431 100644
--- a/src/timeloop/ITimeloop.h
+++ b/src/timeloop/ITimeloop.h
@@ -13,7 +13,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file AbstractTimeloop.h
+//! \file ITimeloop.h
 //! \ingroup timeloop
 //! \author bauer
 //
diff --git a/src/waLBerlaDefinitions.in.h b/src/waLBerlaDefinitions.in.h
index 452d6d8bad7fac8a8efa699f1f4d9b94d7bb8161..a9622b1e620aa2a98a91b9d9563b9bf4b89c63a5 100644
--- a/src/waLBerlaDefinitions.in.h
+++ b/src/waLBerlaDefinitions.in.h
@@ -1,6 +1,6 @@
 //======================================================================================================================
 /*!
- *  \file   waLBerlaDefinitions.h
+ *  \file   waLBerlaDefinitions.in.h
  *  \author Martin Bauer <martin.bauer@fau.de>
  *  \brief  Global Definitions configured by cmake ( edit only the *.in.h file! )
  */
diff --git a/utilities/gdbPrettyPrinter/qt4/printers.py b/utilities/gdbPrettyPrinter/qt4/printers.py
index 169f283d14e4527e12c7b67984660fe8a308e802..07a930384e585eacd069fa7617212702e88f6e17 100644
--- a/utilities/gdbPrettyPrinter/qt4/printers.py
+++ b/utilities/gdbPrettyPrinter/qt4/printers.py
@@ -243,7 +243,7 @@ class QMapPrinter:
             ret += gdb.lookup_type('void').pointer().sizeof
 
             # but because of data alignment the value can be higher
-            # so guess it's aliged by sizeof(void*)
+            # so guess it's aligned by sizeof(void*)
             # TODO: find a real solution for this problem
             ret += ret % gdb.lookup_type('void').pointer().sizeof
 
@@ -494,7 +494,7 @@ class QUrlPrinter:
             return self.val['d']['encodedOriginal']
         except RuntimeError as error:
             print(error)
-            # if no debug information is avaliable for Qt, try guessing the correct address for encodedOriginal
+            # if no debug information is available for Qt, try guessing the correct address for encodedOriginal
             # problem with this is that if QUrlPrivate members get changed, this fails
             offset = gdb.lookup_type('int').sizeof
             offset += offset % gdb.lookup_type('void').pointer().sizeof  # alignment
diff --git a/utilities/valgrind-supression/supression.sh b/utilities/valgrind-supression/supression.sh
index 2388ec28b76a09336fec5f0d0eb717837335a490..3f6b11434e68b2c137805949ecb7babb305d64a0 100644
--- a/utilities/valgrind-supression/supression.sh
+++ b/utilities/valgrind-supression/supression.sh
@@ -11,7 +11,7 @@
 # The checksum is used as an index in a different array. If an item with that index already exists the suppression must be a duplicate and is discarded.
  
 BEGIN { suppression=0; md5sum = "md5sum" }
-  # If the line begins with '{', it's the start of a supression; so set the var and initialise things
+  # If the line begins with '{', it's the start of a suppression; so set the var and initialise things
   /^{/  {
            suppression=1;  i=0; next 
         }
@@ -24,7 +24,7 @@ BEGIN { suppression=0; md5sum = "md5sum" }
              delete supparray     # We don't want subsequent suppressions to append to it!
            }
      }
-  # Otherwise, it's a normal line. If we're inside a supression, store it, and pipe it to md5sum. Otherwise it's cruft, so ignore it
+  # Otherwise, it's a normal line. If we're inside a suppression, store it, and pipe it to md5sum. Otherwise it's cruft, so ignore it
      { if (suppression)
          { 
             supparray[++i] = $0