From 941791c7517dc145834b52227f558cb8915b1bf9 Mon Sep 17 00:00:00 2001
From: Giuseppe Orlando <giuseppe1.orlando@mail.polimi.it>
Date: Sun, 1 May 2022 20:24:59 +0200
Subject: [PATCH] Solver for incompressible NS based on Discontinuous Galerkin
 TR-BDF2 implemented with MatrixFree

---
 NavierStokes_TRBDF2_DG/CMakeLists.txt         |   54 +
 NavierStokes_TRBDF2_DG/README.md              |  104 +
 NavierStokes_TRBDF2_DG/doc/adaptive_mesh.png  |  Bin 0 -> 39096 bytes
 NavierStokes_TRBDF2_DG/doc/author             |    1 +
 NavierStokes_TRBDF2_DG/doc/builds-on          |    3 +
 NavierStokes_TRBDF2_DG/doc/dependencies       |    2 +
 NavierStokes_TRBDF2_DG/doc/drag.png           |  Bin 0 -> 67566 bytes
 NavierStokes_TRBDF2_DG/doc/entry-name         |    1 +
 NavierStokes_TRBDF2_DG/doc/lift.png           |  Bin 0 -> 41456 bytes
 NavierStokes_TRBDF2_DG/doc/tooltip            |    1 +
 .../doc/velocity_magnitude.png                |  Bin 0 -> 92506 bytes
 NavierStokes_TRBDF2_DG/equation_data.h        |   83 +
 .../navier_stokes_TRBDF2_DG.cc                | 3045 +++++++++++++++++
 NavierStokes_TRBDF2_DG/parameter-file.prm     |   39 +
 NavierStokes_TRBDF2_DG/runtime_parameters.h   |  182 +
 15 files changed, 3515 insertions(+)
 create mode 100644 NavierStokes_TRBDF2_DG/CMakeLists.txt
 create mode 100644 NavierStokes_TRBDF2_DG/README.md
 create mode 100644 NavierStokes_TRBDF2_DG/doc/adaptive_mesh.png
 create mode 100644 NavierStokes_TRBDF2_DG/doc/author
 create mode 100644 NavierStokes_TRBDF2_DG/doc/builds-on
 create mode 100644 NavierStokes_TRBDF2_DG/doc/dependencies
 create mode 100644 NavierStokes_TRBDF2_DG/doc/drag.png
 create mode 100644 NavierStokes_TRBDF2_DG/doc/entry-name
 create mode 100644 NavierStokes_TRBDF2_DG/doc/lift.png
 create mode 100644 NavierStokes_TRBDF2_DG/doc/tooltip
 create mode 100644 NavierStokes_TRBDF2_DG/doc/velocity_magnitude.png
 create mode 100644 NavierStokes_TRBDF2_DG/equation_data.h
 create mode 100644 NavierStokes_TRBDF2_DG/navier_stokes_TRBDF2_DG.cc
 create mode 100644 NavierStokes_TRBDF2_DG/parameter-file.prm
 create mode 100644 NavierStokes_TRBDF2_DG/runtime_parameters.h

diff --git a/NavierStokes_TRBDF2_DG/CMakeLists.txt b/NavierStokes_TRBDF2_DG/CMakeLists.txt
new file mode 100644
index 0000000..fcb74dd
--- /dev/null
+++ b/NavierStokes_TRBDF2_DG/CMakeLists.txt
@@ -0,0 +1,54 @@
+##
+#  CMake script for the NavierStokes_TRBDF2_DG program:
+##
+
+# Set the name of the project and target:
+SET(TARGET "NS_TRBDF2_DG")
+
+# Declare all source files the target consists of. Here, this is only
+# the one .cc file, but as you expand your project you may wish
+# to add other source files as well. If your project becomes much larger,
+# you may want to either replace the following statement by something like
+#  FILE(GLOB_RECURSE TARGET_SRC  "source/*.cc")
+#  FILE(GLOB_RECURSE TARGET_INC  "include/*.h")
+#  SET(TARGET_SRC ${TARGET_SRC}  ${TARGET_INC})
+# or switch altogether to the large project CMakeLists.txt file discussed
+# in the "CMake in user projects" page accessible from the "User info"
+# page of the documentation.
+SET(TARGET_SRC
+  navier_stokes_TRBDF2_DG.cc
+  )
+
+# Usually, you will not need to modify anything beyond this point...
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
+
+FIND_PACKAGE(deal.II 9.2.0
+  HINTS ${deal.II_DIR} ${DEAL_II_DIR} ../ ../../ $ENV{DEAL_II_DIR}
+  )
+IF(NOT ${deal.II_FOUND})
+  MESSAGE(FATAL_ERROR "\n"
+    "*** Could not locate a (sufficiently recent) version of deal.II. ***\n\n"
+    "You may want to either pass a flag -DDEAL_II_DIR=/path/to/deal.II to cmake\n"
+    "or set an environment variable \"DEAL_II_DIR\" that contains this path."
+    )
+ENDIF()
+
+#
+# Are all dependencies fulfilled?
+#
+IF(NOT DEAL_II_WITH_MPI OR NOT DEAL_II_WITH_P4EST) # keep in one line
+  MESSAGE(FATAL_ERROR "
+Error! This tutorial requires a deal.II library that was configured with the following options:
+    DEAL_II_WITH_MPI = ON
+    DEAL_II_WITH_P4EST = ON
+However, the deal.II library found at ${DEAL_II_PATH} was configured with these options
+    DEAL_II_WITH_MPI = ${DEAL_II_WITH_MPI}
+    DEAL_II_WITH_P4EST = ${DEAL_II_WITH_P4EST}
+which conflict with the requirements."
+    )
+ENDIF()
+
+DEAL_II_INITIALIZE_CACHED_VARIABLES()
+PROJECT(${TARGET})
+DEAL_II_INVOKE_AUTOPILOT()
diff --git a/NavierStokes_TRBDF2_DG/README.md b/NavierStokes_TRBDF2_DG/README.md
new file mode 100644
index 0000000..e490b57
--- /dev/null
+++ b/NavierStokes_TRBDF2_DG/README.md
@@ -0,0 +1,104 @@
+# TRBDF2-DG projection solver for the incompressible Navier-Stokes equations
+
+## Compiling and Running
+To generate a makefile for this code using CMake, type the following command into the terminal from the main directory:
+
+	cmake . -DDEAL_II_DIR=/path/to/deal.II
+
+To compile the code in release mode use:
+
+	make release
+
+This command will create the executable, <code>NS_TRBDF2_DG</code>.
+
+To run the code on <code>N</code> processors type the following command into the terminal from the main directory,
+
+	mpirun -np N ./NS_TRBDF2_DG
+
+The output of the code will be in <code>.vtu</code> format and be written to disk in parallel. The results can be viewed using <a href="http://www.paraview.org/">ParaView</a>. A parameter file called <code>parameter-file.prm</code> has to be present in
+the same folder of the executable, following the same structure employed in <a href="https://www.dealii.org/current/doxygen/deal.II/step_35.html">step-35</a>. Two extra fields are present: <code>saving_directory</code> with the name of the folder where the results should be saved (which has therefore to be created before launching the program) and <code>refinement_iterations</code> that specifies how often the remeshing procedure has to be performed.
+
+
+### The Navier-Stokes equations and the time discretization strategy ###
+
+In this section, we briefly describe the problem and the approach employed. A detailed explanation of the numerical scheme is reported in [1]. We consider the classical unsteady incompressible Navier-Stokes equations, written in non-dimensional form as:
+
+$$
+\begin{align*}
+\frac{\partial \mathbf{u}}{\partial t} + \nabla\cdot\left(\mathbf{u} \otimes\mathbf{u}\right) + \nabla p &= \frac{1}{Re}\Delta\mathbf{u} + \mathbf{f} \\
+\nabla\cdot\mathbf{u} &= 0,   
+\end{align*}
+$$
+
+where $Re$ denotes the Reynolds number. In the case of projection methods, difficulties arise in choosing the boundary conditions to be imposed for the Poisson equation which is to be solved at each time step to compute the pressure. An alternative that allows to avoid or reduce some of these problems is the so-called artificial compressibility formulation. In this formulation, the incompressibility constraint is relaxed and a time evolution equation for the pressure is introduced, which is characterized by an artificial sound speed $ c, $ so as to obtain:
+
+$$
+\begin{align*}
+\frac{\partial\mathbf{u}}{\partial t} + \nabla\cdot\left(\mathbf{u}\otimes\mathbf{u}\right) + \nabla p &= \frac{1}{Re}\Delta\mathbf{u} + \mathbf{f} \\
+\frac{1}{c^2}\frac{\partial p}{\partial t} + \nabla\cdot\mathbf{u} &= 0.   
+\end{align*}
+$$
+
+For the sake of simplicity, we shall only consider $\mathbf{f} = \mathbf{0}$. The numerical scheme is an extension of the projection method introduced in [2] based on the TR-BDF2 method. For a generic time-dependent problem $\bm{u}^{'} = \mathcal{N}(\bm{u})$, the TR-BDF2 method can be described in terms of two stages as follows:
+
+$$
+\begin{align*}
+\frac{\bm{u}^{n+\gamma} - \bm{u}^{n}}{\gamma\Delta t} &= \frac{1}{2}\mathcal{N}\left(\bm{u}^{n+\gamma}\right) + \frac{1}{2}\mathcal{N}\left(\bm{u}^{n}\right) \\
+\frac{\bm{u}^{n+1} - \bm{u}^{n + \gamma}}{\left(1 - \gamma\right)\Delta t} &= \frac{1}{2 - \gamma}\mathcal{N}\left(\bm{u}^{n+1}\right) + \frac{1 - \gamma}{2\left(2 - \gamma\right)}\mathcal{N}\left(\bm{u}^{n+\gamma}\right) + \frac{1 - \gamma}{2\left(2 - \gamma\right)}\mathcal{N}\left(\bm{u}^{n}\right).
+\end{align*}
+$$
+
+Following then the projection approach described in [2], the momentum predictor equation for the first stage reads:
+
+$$
+\begin{eqnarray}
+&&\frac{\mathbf{u}^{n+\gamma,\*} - \mathbf{u}^{n}}{\gamma\Delta t} - \frac{1}{2Re}\Delta\mathbf{u}^{n+\gamma,\*} + \frac{1}{2}\nabla\cdot\left(\mathbf{u}^{n+\gamma,\*}\otimes\mathbf{u}^{n+\frac{\gamma}{2}}\right) = \nonumber \\
+&&\frac{1}{2Re}\Delta\mathbf{u}^{n} - \frac{1}{2}\nabla\cdot\left(\mathbf{u}^{n}\otimes\mathbf{u}^{n+\frac{\gamma}{2}}\right) - \nabla p^n \nonumber \\
+&&\mathbf{u}^{n+\gamma,\*}\rvert_{\partial\Omega} = \mathbf{u}_D^{n+\gamma}. \nonumber
+\end{eqnarray}
+$$
+
+Notice that, in order to avoid solving a nonlinear system at each time step, an approximation is introduced in the nonlinear momentum advection term, so that $\mathbf{u}^{n + \frac{\gamma}{2}}$ is defined by extrapolation as
+
+$$
+\mathbf{u}^{n + \frac{\gamma}{2}} = \left(1 + \frac{\gamma}{2\left(1-\gamma\right)}\right)\mathbf{u}^{n} - \frac{\gamma}{2\left(1-\gamma\right)}\mathbf{u}^{n-1}.
+$$
+
+For what concerns the pressure, we introduce the intermediate update
+$\mathbf{u}^{n+\gamma,\*\*} = \mathbf{u}^{n+\gamma,\*} + \gamma\Delta t\nabla  p^{n}$, and we solve the following Helmholtz equation
+
+$$
+\frac{1}{c^2}\frac{p^{n+\gamma}}{\gamma^2\Delta t^2} -\Delta p^{n+\gamma} =
+- \frac{1}{\gamma\Delta t} \nabla\cdot\mathbf{u}^{n+\gamma,\*\*}  + \frac{1}{c^2}\frac{p^{n }}{\gamma^2\Delta t^2}
+$$
+
+and, finally, we set $\mathbf{u}^{n+\gamma} = \mathbf{u}^{n+\gamma,\*\*} - \gamma\Delta t\nabla  p^{n+\gamma}$.
+The second stage of the TR-BDF2 scheme is performed in a similar manner (see [1] for all the details).
+
+### Some implementation details ###
+
+A matrix-free approach was employed like for <a href="https://www.dealii.org/current/doxygen/deal.II/step_37.html">step-37</a> or <a href="https://www.dealii.org/current/doxygen/deal.II/step_50.html">step-50</a>. Another feature of the library which it is possible to employ during the numerical simulations is the mesh adaptation capability. On each element $K$ we define the quantity
+
+$$
+\eta_K = \text{diam}(K)^2\left\|\nabla \times \mathbf{u}\right\|^2_K
+$$
+
+that acts as local refinement indicator. The preconditioned conjugate gradient method implemented in the function <code>SolverCG</code> was employed to solve the Helmholtz equations, whereas, for the momentum equations, the GMRES solver
+implemented in the function <code>SolverGMRES</code> was used.
+A Jacobi preconditioner is used for the two momentum predictors, whereas a Geometric Multigrid preconditioner is employed for the Helmholtz equations (see <a href="https://www.dealii.org/current/doxygen/deal.II/step_37.html">step-37</a>).
+
+#### Test case ####
+
+We test the code with a classical benchmark case, namely the flow past a cylinder in 2D at $Re = 100$ (see [1] for all the details). The image shows the contour plot of the velocity magnitude at $ t = T_{f} = 400 $. The evolution of the lift and drag coefficients from $ t = 385 $ to $ t = T_{f} $ are also reported and the expected periodic behaviour is retrieved.
+
+![contour](./doc/velocity_magnitude.png)
+
+![drag](./doc/drag.png) ![lift](./doc/lift.png)
+![adaptive grid](./doc/adaptive_mesh.png)
+
+## References ##
+
+[1] G. Orlando, A. Della Rocca, P.F. Barbante, L. Bonaventura, and
+N. Parolini. An efficient and accurate implicit DG solver for the incompressible Navier-Stokes equations. International Journal for Numerical Methods in Fluids, 2022. DOI: 10.1002/FLD.5098
+
+[2] A. Della Rocca. Large-Eddy Simulations of Turbulent Reacting Flows with Industrial Applications. PhD thesis. Politecnico di Milano, 2018. http://hdl.handle.net/10589/137775
diff --git a/NavierStokes_TRBDF2_DG/doc/adaptive_mesh.png b/NavierStokes_TRBDF2_DG/doc/adaptive_mesh.png
new file mode 100644
index 0000000000000000000000000000000000000000..3cda6b8f9538ca28d11c95247a2cb65d3a5fe432
GIT binary patch
literal 39096
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
MboFyt=akR{04=KP5C8xG

literal 0
HcmV?d00001

diff --git a/NavierStokes_TRBDF2_DG/doc/author b/NavierStokes_TRBDF2_DG/doc/author
new file mode 100644
index 0000000..bab3a79
--- /dev/null
+++ b/NavierStokes_TRBDF2_DG/doc/author
@@ -0,0 +1 @@
+Giuseppe Orlando <giuseppe.orlando@polimi.it>
diff --git a/NavierStokes_TRBDF2_DG/doc/builds-on b/NavierStokes_TRBDF2_DG/doc/builds-on
new file mode 100644
index 0000000..948860e
--- /dev/null
+++ b/NavierStokes_TRBDF2_DG/doc/builds-on
@@ -0,0 +1,3 @@
+step-35
+step-37
+step-50
diff --git a/NavierStokes_TRBDF2_DG/doc/dependencies b/NavierStokes_TRBDF2_DG/doc/dependencies
new file mode 100644
index 0000000..961aea8
--- /dev/null
+++ b/NavierStokes_TRBDF2_DG/doc/dependencies
@@ -0,0 +1,2 @@
+DEAL_II_WITH_MPI
+DEAL_II_WITH_P4EST
diff --git a/NavierStokes_TRBDF2_DG/doc/drag.png b/NavierStokes_TRBDF2_DG/doc/drag.png
new file mode 100644
index 0000000000000000000000000000000000000000..db913dbfe20f80f00e7cae4a02ec39b8f01d60a0
GIT binary patch
literal 67566
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

literal 0
HcmV?d00001

diff --git a/NavierStokes_TRBDF2_DG/doc/entry-name b/NavierStokes_TRBDF2_DG/doc/entry-name
new file mode 100644
index 0000000..6d92c7f
--- /dev/null
+++ b/NavierStokes_TRBDF2_DG/doc/entry-name
@@ -0,0 +1 @@
+TRBDF2-DG projection solver for the incompressible Navier-Stokes equations
diff --git a/NavierStokes_TRBDF2_DG/doc/lift.png b/NavierStokes_TRBDF2_DG/doc/lift.png
new file mode 100644
index 0000000000000000000000000000000000000000..36cd168df35c146ecbef67a72a21539709fa0044
GIT binary patch
literal 41456
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

literal 0
HcmV?d00001

diff --git a/NavierStokes_TRBDF2_DG/doc/tooltip b/NavierStokes_TRBDF2_DG/doc/tooltip
new file mode 100644
index 0000000..2ee7e11
--- /dev/null
+++ b/NavierStokes_TRBDF2_DG/doc/tooltip
@@ -0,0 +1 @@
+Projection solver for the incompressible Navier-Stokes equations based on a DG spatial discretization and on the TR-BDF2 method for time discretization
diff --git a/NavierStokes_TRBDF2_DG/doc/velocity_magnitude.png b/NavierStokes_TRBDF2_DG/doc/velocity_magnitude.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5de311cd643e26a1bc9da56d33955cf3fa7e0e4
GIT binary patch
literal 92506
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
Q_W=0FN-0T}NSJ*3AAd|oqW}N^

literal 0
HcmV?d00001

diff --git a/NavierStokes_TRBDF2_DG/equation_data.h b/NavierStokes_TRBDF2_DG/equation_data.h
new file mode 100644
index 0000000..24a1762
--- /dev/null
+++ b/NavierStokes_TRBDF2_DG/equation_data.h
@@ -0,0 +1,83 @@
+// We start by including all the necessary deal.II header files.
+//
+#include <deal.II/base/point.h>
+#include <deal.II/base/function.h>
+
+// @sect{Equation data}
+
+// In the next namespace, we declare and implement suitable functions that may be used for the initial and boundary conditions
+//
+namespace EquationData {
+  using namespace dealii;
+
+  static const unsigned int degree_p = 1; /*--- Polynomial degree for the pressure. The one for the velocity
+                                                will be equal to degree_p + 1, but its value can be easily changed
+                                                in the template parameter list of the classes with weak form ---*/
+
+  // We declare class that describes the boundary conditions and initial one for velocity:
+  //
+  template<int dim>
+  class Velocity: public Function<dim> {
+  public:
+    Velocity(const double initial_time = 0.0);
+
+    virtual double value(const Point<dim>&  p,
+                         const unsigned int component = 0) const override;
+
+    virtual void vector_value(const Point<dim>& p,
+                              Vector<double>&   values) const override;
+  };
+
+
+  template<int dim>
+  Velocity<dim>::Velocity(const double initial_time): Function<dim>(dim, initial_time) {}
+
+
+  template<int dim>
+  double Velocity<dim>::value(const Point<dim>& p, const unsigned int component) const {
+    AssertIndexRange(component, 3);
+    if(component == 0) {
+      const double Um = 1.5;
+      const double H  = 4.1;
+
+      return 4.0*Um*p(1)*(H - p(1))/(H*H);
+    }
+    else
+      return 0.0;
+  }
+
+
+  template<int dim>
+  void Velocity<dim>::vector_value(const Point<dim>& p, Vector<double>& values) const {
+    Assert(values.size() == dim, ExcDimensionMismatch(values.size(), dim));
+
+    for(unsigned int i = 0; i < dim; ++i)
+      values[i] = value(p, i);
+  }
+
+
+  // We do the same for the pressure
+  //
+  template<int dim>
+  class Pressure: public Function<dim> {
+  public:
+    Pressure(const double initial_time = 0.0);
+
+    virtual double value(const Point<dim>&  p,
+                         const unsigned int component = 0) const override;
+  };
+
+
+  template<int dim>
+  Pressure<dim>::Pressure(const double initial_time): Function<dim>(1, initial_time) {}
+
+
+  template<int dim>
+  double Pressure<dim>::value(const Point<dim>&  p, const unsigned int component) const {
+    (void)component;
+    AssertIndexRange(component, 1);
+
+    return 22.0 - p(0);
+  }
+
+} // namespace EquationData
diff --git a/NavierStokes_TRBDF2_DG/navier_stokes_TRBDF2_DG.cc b/NavierStokes_TRBDF2_DG/navier_stokes_TRBDF2_DG.cc
new file mode 100644
index 0000000..434a65e
--- /dev/null
+++ b/NavierStokes_TRBDF2_DG/navier_stokes_TRBDF2_DG.cc
@@ -0,0 +1,3045 @@
+/* Author: Giuseppe Orlando, 2022. */
+
+// We start by including all the necessary deal.II header files and some C++
+// related ones.
+//
+#include <deal.II/base/quadrature_lib.h>
+#include <deal.II/base/multithread_info.h>
+#include <deal.II/base/thread_management.h>
+#include <deal.II/base/work_stream.h>
+#include <deal.II/base/parallel.h>
+#include <deal.II/base/utilities.h>
+#include <deal.II/base/conditional_ostream.h>
+
+#include <deal.II/lac/vector.h>
+#include <deal.II/lac/solver_cg.h>
+#include <deal.II/lac/precondition.h>
+#include <deal.II/lac/solver_gmres.h>
+#include <deal.II/lac/affine_constraints.h>
+
+#include <deal.II/grid/tria.h>
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/grid_refinement.h>
+#include <deal.II/grid/tria_accessor.h>
+#include <deal.II/grid/tria_iterator.h>
+#include <deal.II/distributed/grid_refinement.h>
+
+#include <deal.II/dofs/dof_handler.h>
+#include <deal.II/dofs/dof_accessor.h>
+#include <deal.II/dofs/dof_tools.h>
+
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_dgq.h>
+#include <deal.II/fe/fe_values.h>
+#include <deal.II/fe/fe_tools.h>
+#include <deal.II/fe/fe_system.h>
+
+#include <deal.II/numerics/matrix_tools.h>
+#include <deal.II/numerics/vector_tools.h>
+#include <deal.II/numerics/data_out.h>
+
+#include <fstream>
+#include <cmath>
+#include <iostream>
+
+#include <deal.II/matrix_free/matrix_free.h>
+#include <deal.II/matrix_free/operators.h>
+#include <deal.II/matrix_free/fe_evaluation.h>
+#include <deal.II/fe/component_mask.h>
+
+#include <deal.II/base/timer.h>
+#include <deal.II/distributed/solution_transfer.h>
+#include <deal.II/numerics/error_estimator.h>
+
+#include <deal.II/multigrid/multigrid.h>
+#include <deal.II/multigrid/mg_transfer_matrix_free.h>
+#include <deal.II/multigrid/mg_tools.h>
+#include <deal.II/multigrid/mg_coarse.h>
+#include <deal.II/multigrid/mg_smoother.h>
+#include <deal.II/multigrid/mg_matrix.h>
+
+#include <deal.II/meshworker/mesh_loop.h>
+
+#include "runtime_parameters.h"
+#include "equation_data.h"
+
+// We include the code in a suitable namespace:
+//
+namespace NS_TRBDF2 {
+  using namespace dealii;
+
+  // The following class is an auxiliary one for post-processing of the vorticity
+  //
+  template<int dim>
+  class PostprocessorVorticity: public DataPostprocessor<dim> {
+  public:
+    virtual void evaluate_vector_field(const DataPostprocessorInputs::Vector<dim>& inputs,
+                                       std::vector<Vector<double>>&                computed_quantities) const override;
+
+    virtual std::vector<std::string> get_names() const override;
+
+    virtual std::vector<DataComponentInterpretation::DataComponentInterpretation>
+    get_data_component_interpretation() const override;
+
+    virtual UpdateFlags get_needed_update_flags() const override;
+  };
+
+  // This function evaluates the vorticty in both 2D and 3D cases
+  //
+  template <int dim>
+  void PostprocessorVorticity<dim>::evaluate_vector_field(const DataPostprocessorInputs::Vector<dim>& inputs,
+                                                          std::vector<Vector<double>>&                computed_quantities) const {
+    const unsigned int n_quadrature_points = inputs.solution_values.size();
+
+    /*--- Check the correctness of all data structres ---*/
+    Assert(inputs.solution_gradients.size() == n_quadrature_points, ExcInternalError());
+    Assert(computed_quantities.size() == n_quadrature_points, ExcInternalError());
+
+    Assert(inputs.solution_values[0].size() == dim, ExcInternalError());
+
+    if(dim == 2) {
+      Assert(computed_quantities[0].size() == 1, ExcInternalError());
+    }
+    else {
+      Assert(computed_quantities[0].size() == dim, ExcInternalError());
+    }
+
+    /*--- Compute the vorticty ---*/
+    if(dim == 2) {
+      for(unsigned int q = 0; q < n_quadrature_points; ++q)
+        computed_quantities[q](0) = inputs.solution_gradients[q][1][0] - inputs.solution_gradients[q][0][1];
+    }
+    else {
+      for(unsigned int q = 0; q < n_quadrature_points; ++q) {
+        computed_quantities[q](0) = inputs.solution_gradients[q][2][1] - inputs.solution_gradients[q][1][2];
+        computed_quantities[q](1) = inputs.solution_gradients[q][0][2] - inputs.solution_gradients[q][2][0];
+        computed_quantities[q](2) = inputs.solution_gradients[q][1][0] - inputs.solution_gradients[q][0][1];
+      }
+    }
+  }
+
+  // This auxiliary function is required by the base class DataProcessor and simply
+  // sets the name for the output file
+  //
+  template<int dim>
+  std::vector<std::string> PostprocessorVorticity<dim>::get_names() const {
+    std::vector<std::string> names;
+    names.emplace_back("vorticity");
+    if(dim == 3) {
+      names.emplace_back("vorticity");
+      names.emplace_back("vorticity");
+    }
+
+    return names;
+  }
+
+  // This auxiliary function is required by the base class DataProcessor and simply
+  // specifies if the vorticity is a scalar (2D) or a vector (3D)
+  //
+  template<int dim>
+  std::vector<DataComponentInterpretation::DataComponentInterpretation>
+  PostprocessorVorticity<dim>::get_data_component_interpretation() const {
+    std::vector<DataComponentInterpretation::DataComponentInterpretation> interpretation;
+    if(dim == 2)
+      interpretation.push_back(DataComponentInterpretation::component_is_scalar);
+    else {
+      interpretation.push_back(DataComponentInterpretation::component_is_part_of_vector);
+      interpretation.push_back(DataComponentInterpretation::component_is_part_of_vector);
+      interpretation.push_back(DataComponentInterpretation::component_is_part_of_vector);
+    }
+
+    return interpretation;
+  }
+
+  // This auxiliary function is required by the base class DataProcessor and simply
+  // sets which variables have to updated (only the gradients)
+  //
+  template<int dim>
+  UpdateFlags PostprocessorVorticity<dim>::get_needed_update_flags() const {
+    return update_gradients;
+  }
+
+
+  // The following structs are auxiliary objects for mesh refinement. ScratchData simply sets
+  // the FEValues object
+  //
+  template <int dim>
+  struct ScratchData {
+    ScratchData(const FiniteElement<dim>& fe,
+                const unsigned int        quadrature_degree,
+                const UpdateFlags         update_flags): fe_values(fe, QGauss<dim>(quadrature_degree), update_flags) {}
+
+    ScratchData(const ScratchData<dim>& scratch_data): fe_values(scratch_data.fe_values.get_fe(),
+                                                                 scratch_data.fe_values.get_quadrature(),
+                                                                 scratch_data.fe_values.get_update_flags()) {}
+    FEValues<dim> fe_values;
+  };
+
+
+  // CopyData simply sets the cell index
+  //
+  struct CopyData {
+    CopyData() : cell_index(numbers::invalid_unsigned_int), value(0.0) {}
+
+    CopyData(const CopyData &) = default;
+
+    unsigned int cell_index;
+    double       value;
+  };
+
+
+  // @sect{ <code>NavierStokesProjectionOperator::NavierStokesProjectionOperator</code> }
+
+  // The following class sets effecively the weak formulation of the problems for the different stages
+  // and for both velocity and pressure.
+  // The template parameters are the dimnesion of the problem, the polynomial degree for the pressure,
+  // the polynomial degree for the velocity, the number of quadrature points for integrals for the pressure step,
+  // the number of quadrature points for integrals for the velocity step, the type of vector for storage and the type
+  // of floating point data (in general double or float for preconditioners structures if desired).
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  class NavierStokesProjectionOperator: public MatrixFreeOperators::Base<dim, Vec> {
+  public:
+    NavierStokesProjectionOperator();
+
+    NavierStokesProjectionOperator(RunTimeParameters::Data_Storage& data);
+
+    void set_dt(const double time_step);
+
+    void set_TR_BDF2_stage(const unsigned int stage);
+
+    void set_NS_stage(const unsigned int stage);
+
+    void set_u_extr(const Vec& src);
+
+    void vmult_rhs_velocity(Vec& dst, const std::vector<Vec>& src) const;
+
+    void vmult_rhs_pressure(Vec& dst, const std::vector<Vec>& src) const;
+
+    void vmult_grad_p_projection(Vec& dst, const Vec& src) const;
+
+    virtual void compute_diagonal() override;
+
+  protected:
+    double       Re;
+    double       dt;
+
+    /*--- Parameters of time-marching scheme ---*/
+    double       gamma;
+    double       a31;
+    double       a32;
+    double       a33;
+
+    unsigned int TR_BDF2_stage; /*--- Flag to denote at which stage of the TR-BDF2 are ---*/
+    unsigned int NS_stage;      /*--- Flag to denote at which stage of NS solution inside each TR-BDF2 stage we are
+                                      (solution of the velocity or of the pressure)---*/
+
+    virtual void apply_add(Vec& dst, const Vec& src) const override;
+
+  private:
+    /*--- Auxiliary variable for the TR stage
+          (just to avoid to report a lot of 0.5 and for my personal choice to be coherent with the article) ---*/
+    const double a21 = 0.5;
+    const double a22 = 0.5;
+
+    /*--- Penalty method parameters, theta = 1 means SIP, while C_p and C_u are the penalization coefficients ---*/
+    const double theta_v = 1.0;
+    const double theta_p = 1.0;
+    const double C_p = 1.0*(fe_degree_p + 1)*(fe_degree_p + 1);
+    const double C_u = 1.0*(fe_degree_v + 1)*(fe_degree_v + 1);
+
+    Vec                          u_extr; /*--- Auxiliary variable to update the extrapolated velocity ---*/
+
+    EquationData::Velocity<dim>  vel_boundary_inflow; /*--- Auxiliary variable to impose velocity boundary conditions ---*/
+
+    /*--- The following functions basically assemble the linear and bilinear forms. Their syntax is due to
+          the base class MatrixFreeOperators::Base ---*/
+    void assemble_rhs_cell_term_velocity(const MatrixFree<dim, Number>&               data,
+                                         Vec&                                         dst,
+                                         const std::vector<Vec>&                      src,
+                                         const std::pair<unsigned int, unsigned int>& cell_range) const;
+    void assemble_rhs_face_term_velocity(const MatrixFree<dim, Number>&               data,
+                                         Vec&                                         dst,
+                                         const std::vector<Vec>&                      src,
+                                         const std::pair<unsigned int, unsigned int>& face_range) const;
+    void assemble_rhs_boundary_term_velocity(const MatrixFree<dim, Number>&               data,
+                                             Vec&                                         dst,
+                                             const std::vector<Vec>&                      src,
+                                             const std::pair<unsigned int, unsigned int>& face_range) const;
+
+    void assemble_rhs_cell_term_pressure(const MatrixFree<dim, Number>&               data,
+                                         Vec&                                         dst,
+                                         const std::vector<Vec>&                      src,
+                                         const std::pair<unsigned int, unsigned int>& cell_range) const;
+    void assemble_rhs_face_term_pressure(const MatrixFree<dim, Number>&               data,
+                                         Vec&                                         dst,
+                                         const std::vector<Vec>&                      src,
+                                         const std::pair<unsigned int, unsigned int>& face_range) const;
+    void assemble_rhs_boundary_term_pressure(const MatrixFree<dim, Number>&               data,
+                                             Vec&                                         dst,
+                                             const std::vector<Vec>&                      src,
+                                             const std::pair<unsigned int, unsigned int>& face_range) const;
+
+    void assemble_cell_term_velocity(const MatrixFree<dim, Number>&               data,
+                                     Vec&                                         dst,
+                                     const Vec&                                   src,
+                                     const std::pair<unsigned int, unsigned int>& cell_range) const;
+    void assemble_face_term_velocity(const MatrixFree<dim, Number>&               data,
+                                     Vec&                                         dst,
+                                     const Vec&                                   src,
+                                     const std::pair<unsigned int, unsigned int>& face_range) const;
+    void assemble_boundary_term_velocity(const MatrixFree<dim, Number>&               data,
+                                         Vec&                                         dst,
+                                         const Vec&                                   src,
+                                         const std::pair<unsigned int, unsigned int>& face_range) const;
+
+    void assemble_cell_term_pressure(const MatrixFree<dim, Number>&               data,
+                                     Vec&                                         dst,
+                                     const Vec&                                   src,
+                                     const std::pair<unsigned int, unsigned int>& cell_range) const;
+    void assemble_face_term_pressure(const MatrixFree<dim, Number>&               data,
+                                     Vec&                                         dst,
+                                     const Vec&                                   src,
+                                     const std::pair<unsigned int, unsigned int>& face_range) const;
+    void assemble_boundary_term_pressure(const MatrixFree<dim, Number>&               data,
+                                         Vec&                                         dst,
+                                         const Vec&                                   src,
+                                         const std::pair<unsigned int, unsigned int>& face_range) const;
+
+    void assemble_cell_term_projection_grad_p(const MatrixFree<dim, Number>&               data,
+                                              Vec&                                         dst,
+                                              const Vec&                                   src,
+                                              const std::pair<unsigned int, unsigned int>& cell_range) const;
+    void assemble_rhs_cell_term_projection_grad_p(const MatrixFree<dim, Number>&               data,
+                                                  Vec&                                         dst,
+                                                  const Vec&                                   src,
+                                                  const std::pair<unsigned int, unsigned int>& cell_range) const;
+
+    void assemble_diagonal_cell_term_velocity(const MatrixFree<dim, Number>&               data,
+                                              Vec&                                         dst,
+                                              const unsigned int&                          src,
+                                              const std::pair<unsigned int, unsigned int>& cell_range) const;
+    void assemble_diagonal_face_term_velocity(const MatrixFree<dim, Number>&               data,
+                                              Vec&                                         dst,
+                                              const unsigned int&                          src,
+                                              const std::pair<unsigned int, unsigned int>& face_range) const;
+    void assemble_diagonal_boundary_term_velocity(const MatrixFree<dim, Number>&               data,
+                                                  Vec&                                         dst,
+                                                  const unsigned int&                          src,
+                                                  const std::pair<unsigned int, unsigned int>& face_range) const;
+
+    void assemble_diagonal_cell_term_pressure(const MatrixFree<dim, Number>&               data,
+                                              Vec&                                         dst,
+                                              const unsigned int&                          src,
+                                              const std::pair<unsigned int, unsigned int>& cell_range) const;
+    void assemble_diagonal_face_term_pressure(const MatrixFree<dim, Number>&               data,
+                                              Vec&                                         dst,
+                                              const unsigned int&                          src,
+                                              const std::pair<unsigned int, unsigned int>& face_range) const;
+    void assemble_diagonal_boundary_term_pressure(const MatrixFree<dim, Number>&               data,
+                                                  Vec&                                         dst,
+                                                  const unsigned int&                          src,
+                                                  const std::pair<unsigned int, unsigned int>& face_range) const;
+  };
+
+
+  // We start with the default constructor. It is important for MultiGrid, so it is fundamental
+  // to properly set the parameters of the time scheme.
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  NavierStokesProjectionOperator():
+    MatrixFreeOperators::Base<dim, Vec>(), Re(), dt(), gamma(2.0 - std::sqrt(2.0)), a31((1.0 - gamma)/(2.0*(2.0 - gamma))),
+                                           a32(a31), a33(1.0/(2.0 - gamma)), TR_BDF2_stage(1), NS_stage(1), u_extr() {}
+
+
+  // We focus now on the constructor with runtime parameters storage
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  NavierStokesProjectionOperator(RunTimeParameters::Data_Storage& data):
+    MatrixFreeOperators::Base<dim, Vec>(), Re(data.Reynolds), dt(data.dt),
+                                           gamma(2.0 - std::sqrt(2.0)), a31((1.0 - gamma)/(2.0*(2.0 - gamma))),
+                                           a32(a31), a33(1.0/(2.0 - gamma)), TR_BDF2_stage(1), NS_stage(1), u_extr(),
+                                           vel_boundary_inflow(data.initial_time) {}
+
+
+  // Setter of time-step (called by Multigrid and in case a smaller time-step towards the end is needed)
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  set_dt(const double time_step) {
+    dt = time_step;
+  }
+
+
+  // Setter of TR-BDF2 stage (this can be known only during the effective execution
+  // and so it has to be demanded to the class that really solves the problem)
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  set_TR_BDF2_stage(const unsigned int stage) {
+    AssertIndexRange(stage, 3);
+    Assert(stage > 0, ExcInternalError());
+
+    TR_BDF2_stage = stage;
+  }
+
+
+  // Setter of NS stage (this can be known only during the effective execution
+  // and so it has to be demanded to the class that really solves the problem)
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  set_NS_stage(const unsigned int stage) {
+    AssertIndexRange(stage, 4);
+    Assert(stage > 0, ExcInternalError());
+
+    NS_stage = stage;
+  }
+
+
+  // Setter of extrapolated velocity for different stages
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  set_u_extr(const Vec& src) {
+    u_extr = src;
+    u_extr.update_ghost_values();
+  }
+
+
+  // We are in a DG-MatrixFree framework, so it is convenient to compute separately cell contribution,
+  // internal faces contributions and boundary faces contributions. We start by
+  // assembling the rhs cell term for the velocity.
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_rhs_cell_term_velocity(const MatrixFree<dim, Number>&               data,
+                                  Vec&                                         dst,
+                                  const std::vector<Vec>&                      src,
+                                  const std::pair<unsigned int, unsigned int>& cell_range) const {
+    if(TR_BDF2_stage == 1) {
+      /*--- We first start by declaring the suitable instances to read the old velocity, the
+      extrapolated velocity and the old pressure. 'phi' will be used only to submit the result.
+      The second argument specifies which dof handler has to be used (in this implementation 0 stands for
+      velocity and 1 for pressure). ---*/
+      FEEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, 0),
+                                                                   phi_old(data, 0),
+                                                                   phi_old_extr(data, 0);
+      FEEvaluation<dim, fe_degree_p, n_q_points_1d_v, 1, Number>   phi_old_press(data, 1);
+
+      /*--- We loop over the cells in the range ---*/
+      for(unsigned int cell = cell_range.first; cell < cell_range.second; ++cell) {
+        /*--- Now we need to assign the current cell to each FEEvaluation object and then to specify which src vector
+        it has to read (the proper order is clearly delegated to the user, which has to pay attention in the function
+        call to be coherent). ---*/
+        phi_old.reinit(cell);
+        phi_old.gather_evaluate(src[0], true, true); /*--- The 'gather_evaluate' function reads data from the vector.
+                                                           The second and third parameter specifies if you want to read
+                                                           values and/or derivative related quantities ---*/
+        phi_old_extr.reinit(cell);
+        phi_old_extr.gather_evaluate(src[1], true, false);
+        phi_old_press.reinit(cell);
+        phi_old_press.gather_evaluate(src[2], true, false);
+        phi.reinit(cell);
+
+        /*--- Now we loop over all the quadrature points to compute the integrals ---*/
+        for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+          const auto& u_n                = phi_old.get_value(q);
+          const auto& grad_u_n           = phi_old.get_gradient(q);
+          const auto& u_n_gamma_ov_2     = phi_old_extr.get_value(q);
+          const auto& tensor_product_u_n = outer_product(u_n, u_n_gamma_ov_2);
+          const auto& p_n                = phi_old_press.get_value(q);
+          auto p_n_times_identity        = tensor_product_u_n;
+          p_n_times_identity = 0;
+          for(unsigned int d = 0; d < dim; ++d)
+            p_n_times_identity[d][d] = p_n;
+
+          phi.submit_value(1.0/(gamma*dt)*u_n, q); /*--- 'submit_value' contains quantites that we want to test against the
+                                                          test function ---*/
+          phi.submit_gradient(-a21/Re*grad_u_n + a21*tensor_product_u_n + p_n_times_identity, q);
+          /*--- 'submit_gradient' contains quantites that we want to test against the gradient of test function ---*/
+        }
+        phi.integrate_scatter(true, true, dst); /*--- 'integrate_scatter' is the responsible of distributing into dst.
+                                                The first two boolean parameters specify if we are testing against
+                                                the test function and/or its gradient ---*/
+      }
+    }
+    else {
+      /*--- We first start by declaring the suitable instances to read already available quantities. ---*/
+      FEEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, 0),
+                                                                   phi_old(data, 0),
+                                                                   phi_int(data, 0);
+      FEEvaluation<dim, fe_degree_p, n_q_points_1d_v, 1, Number>   phi_old_press(data, 1);
+
+      /*--- We loop over the cells in the range ---*/
+      for(unsigned int cell = cell_range.first; cell < cell_range.second; ++cell) {
+        phi_old.reinit(cell);
+        phi_old.gather_evaluate(src[0], true, true);
+        phi_int.reinit(cell);
+        phi_int.gather_evaluate(src[1], true, true);
+        phi_old_press.reinit(cell);
+        phi_old_press.gather_evaluate(src[2], true, false);
+        phi.reinit(cell);
+
+        /*--- Now we loop over all the quadrature points to compute the integrals ---*/
+        for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+          const auto& u_n                      = phi_old.get_value(q);
+          const auto& grad_u_n                 = phi_old.get_gradient(q);
+          const auto& u_n_gamma                = phi_int.get_value(q);
+          const auto& grad_u_n_gamma           = phi_int.get_gradient(q);
+          const auto& tensor_product_u_n       = outer_product(u_n, u_n);
+          const auto& tensor_product_u_n_gamma = outer_product(u_n_gamma, u_n_gamma);
+          const auto& p_n                      = phi_old_press.get_value(q);
+          auto p_n_times_identity              = tensor_product_u_n;
+          p_n_times_identity = 0;
+          for(unsigned int d = 0; d < dim; ++d)
+            p_n_times_identity[d][d] = p_n;
+
+          phi.submit_value(1.0/((1.0 - gamma)*dt)*u_n_gamma, q);
+          phi.submit_gradient(a32*tensor_product_u_n_gamma + a31*tensor_product_u_n -
+                              a32/Re*grad_u_n_gamma - a31/Re*grad_u_n + p_n_times_identity, q);
+        }
+        phi.integrate_scatter(true, true, dst);
+      }
+    }
+  }
+
+
+  // The followinf function assembles rhs face term for the velocity
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_rhs_face_term_velocity(const MatrixFree<dim, Number>&               data,
+                                  Vec&                                         dst,
+                                  const std::vector<Vec>&                      src,
+                                  const std::pair<unsigned int, unsigned int>& face_range) const {
+    if(TR_BDF2_stage == 1) {
+      /*--- We first start by declaring the suitable instances to read already available quantities. In this case
+      we are at the face between two elements and this is the reason of 'FEFaceEvaluation'. It contains an extra
+      input argument, the second one, that specifies if it is from 'interior' or not---*/
+      FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi_p(data, true, 0),
+                                                                       phi_m(data, false, 0),
+                                                                       phi_old_p(data, true, 0),
+                                                                       phi_old_m(data, false, 0),
+                                                                       phi_old_extr_p(data, true, 0),
+                                                                       phi_old_extr_m(data, false, 0);
+      FEFaceEvaluation<dim, fe_degree_p, n_q_points_1d_v, 1, Number>   phi_old_press_p(data, true, 1),
+                                                                       phi_old_press_m(data, false, 1);
+
+      /*--- We loop over the faces in the range ---*/
+      for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+        phi_old_p.reinit(face);
+        phi_old_p.gather_evaluate(src[0], true, true);
+        phi_old_m.reinit(face);
+        phi_old_m.gather_evaluate(src[0], true, true);
+        phi_old_extr_p.reinit(face);
+        phi_old_extr_p.gather_evaluate(src[1], true, false);
+        phi_old_extr_m.reinit(face);
+        phi_old_extr_m.gather_evaluate(src[1], true, false);
+        phi_old_press_p.reinit(face);
+        phi_old_press_p.gather_evaluate(src[2], true, false);
+        phi_old_press_m.reinit(face);
+        phi_old_press_m.gather_evaluate(src[2], true, false);
+        phi_p.reinit(face);
+        phi_m.reinit(face);
+
+        /*--- Now we loop over all the quadrature points to compute the integrals ---*/
+        for(unsigned int q = 0; q < phi_p.n_q_points; ++q) {
+          const auto& n_plus                 = phi_p.get_normal_vector(q); /*--- The normal vector is the same
+                                                                                 for both phi_p and phi_m. If the face is interior,
+                                                                                 it correspond to the outer normal ---*/
+
+          const auto& avg_grad_u_old         = 0.5*(phi_old_p.get_gradient(q) + phi_old_m.get_gradient(q));
+          const auto& avg_tensor_product_u_n = 0.5*(outer_product(phi_old_p.get_value(q), phi_old_extr_p.get_value(q)) +
+                                                    outer_product(phi_old_m.get_value(q), phi_old_extr_m.get_value(q)));
+          const auto& avg_p_old              = 0.5*(phi_old_press_p.get_value(q) + phi_old_press_m.get_value(q));
+
+          phi_p.submit_value((a21/Re*avg_grad_u_old - a21*avg_tensor_product_u_n)*n_plus - avg_p_old*n_plus, q);
+          phi_m.submit_value(-(a21/Re*avg_grad_u_old - a21*avg_tensor_product_u_n)*n_plus + avg_p_old*n_plus, q);
+        }
+        phi_p.integrate_scatter(true, false, dst);
+        phi_m.integrate_scatter(true, false, dst);
+      }
+    }
+    else {
+      /*--- We first start by declaring the suitable instances to read already available quantities. ---*/
+      FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi_p(data, true, 0),
+                                                                       phi_m(data, false, 0),
+                                                                       phi_old_p(data, true, 0),
+                                                                       phi_old_m(data, false, 0),
+                                                                       phi_int_p(data, true, 0),
+                                                                       phi_int_m(data, false, 0);
+      FEFaceEvaluation<dim, fe_degree_p, n_q_points_1d_v, 1, Number>   phi_old_press_p(data, true, 1),
+                                                                       phi_old_press_m(data, false, 1);
+
+      /*--- We loop over the faces in the range ---*/
+      for(unsigned int face = face_range.first; face < face_range.second; ++ face) {
+        phi_old_p.reinit(face);
+        phi_old_p.gather_evaluate(src[0], true, true);
+        phi_old_m.reinit(face);
+        phi_old_m.gather_evaluate(src[0], true, true);
+        phi_int_p.reinit(face);
+        phi_int_p.gather_evaluate(src[1], true, true);
+        phi_int_m.reinit(face);
+        phi_int_m.gather_evaluate(src[1], true, true);
+        phi_old_press_p.reinit(face);
+        phi_old_press_p.gather_evaluate(src[2], true, false);
+        phi_old_press_m.reinit(face);
+        phi_old_press_m.gather_evaluate(src[2], true, false);
+        phi_p.reinit(face);
+        phi_m.reinit(face);
+
+        /*--- Now we loop over all the quadrature points to compute the integrals ---*/
+        for(unsigned int q = 0; q < phi_p.n_q_points; ++q) {
+          const auto& n_plus                       = phi_p.get_normal_vector(q);
+
+          const auto& avg_grad_u_old               = 0.5*(phi_old_p.get_gradient(q) + phi_old_m.get_gradient(q));
+          const auto& avg_grad_u_int               = 0.5*(phi_int_p.get_gradient(q) + phi_int_m.get_gradient(q));
+          const auto& avg_tensor_product_u_n       = 0.5*(outer_product(phi_old_p.get_value(q), phi_old_p.get_value(q)) +
+                                                          outer_product(phi_old_m.get_value(q), phi_old_m.get_value(q)));
+          const auto& avg_tensor_product_u_n_gamma = 0.5*(outer_product(phi_int_p.get_value(q), phi_int_p.get_value(q)) +
+                                                          outer_product(phi_int_m.get_value(q), phi_int_m.get_value(q)));
+          const auto& avg_p_old                    = 0.5*(phi_old_press_p.get_value(q) + phi_old_press_m.get_value(q));
+
+          phi_p.submit_value((a31/Re*avg_grad_u_old + a32/Re*avg_grad_u_int -
+                              a31*avg_tensor_product_u_n - a32*avg_tensor_product_u_n_gamma)*n_plus - avg_p_old*n_plus, q);
+          phi_m.submit_value(-(a31/Re*avg_grad_u_old + a32/Re*avg_grad_u_int -
+                               a31*avg_tensor_product_u_n - a32*avg_tensor_product_u_n_gamma)*n_plus + avg_p_old*n_plus, q);
+        }
+        phi_p.integrate_scatter(true, false, dst);
+        phi_m.integrate_scatter(true, false, dst);
+      }
+    }
+  }
+
+
+  // The followinf function assembles rhs boundary term for the velocity
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_rhs_boundary_term_velocity(const MatrixFree<dim, Number>&               data,
+                                      Vec&                                         dst,
+                                      const std::vector<Vec>&                      src,
+                                      const std::pair<unsigned int, unsigned int>& face_range) const {
+    if(TR_BDF2_stage == 1) {
+      /*--- We first start by declaring the suitable instances to read already available quantities. Clearly on the boundary
+      the second argument has to be true. ---*/
+      FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, true, 0),
+                                                                       phi_old(data, true, 0),
+                                                                       phi_old_extr(data, true, 0);
+      FEFaceEvaluation<dim, fe_degree_p, n_q_points_1d_v, 1, Number>   phi_old_press(data, true, 1);
+
+      /*--- We loop over the faces in the range ---*/
+      for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+        phi_old.reinit(face);
+        phi_old.gather_evaluate(src[0], true, true);
+        phi_old_extr.reinit(face);
+        phi_old_extr.gather_evaluate(src[1], true, false);
+        phi_old_press.reinit(face);
+        phi_old_press.gather_evaluate(src[2], true, false);
+        phi.reinit(face);
+
+        const auto boundary_id = data.get_boundary_id(face); /*--- Get the id in order to impose the proper boundary condition ---*/
+        const auto coef_jump   = (boundary_id == 1) ? 0.0 : C_u*std::abs((phi.get_normal_vector(0) * phi.inverse_jacobian(0))[dim - 1]);
+        const double aux_coeff = (boundary_id == 1) ? 0.0 : 1.0;
+
+        /*--- Now we loop over all the quadrature points to compute the integrals ---*/
+        for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+          const auto& n_plus             = phi.get_normal_vector(q);
+
+          const auto& grad_u_old         = phi_old.get_gradient(q);
+          const auto& tensor_product_u_n = outer_product(phi_old.get_value(q), phi_old_extr.get_value(q));
+          const auto& p_old              = phi_old_press.get_value(q);
+          const auto& point_vectorized   = phi.quadrature_point(q);
+          auto u_int_m                   = Tensor<1, dim, VectorizedArray<Number>>();
+          if(boundary_id == 0) {
+            for(unsigned int v = 0; v < VectorizedArray<Number>::size(); ++v) {
+              Point<dim> point; /*--- The point returned by the 'quadrature_point' function is not an instance of Point
+                                      and so it is not ready to be directly used. We need to pay attention to the
+                                      vectorization ---*/
+              for(unsigned int d = 0; d < dim; ++d)
+                point[d] = point_vectorized[d][v];
+              for(unsigned int d = 0; d < dim; ++d)
+                u_int_m[d][v] = vel_boundary_inflow.value(point, d);
+            }
+          }
+          const auto tensor_product_u_int_m = outer_product(u_int_m, phi_old_extr.get_value(q));
+          const auto lambda                 = (boundary_id == 1) ? 0.0 : std::abs(scalar_product(phi_old_extr.get_value(q), n_plus));
+
+          phi.submit_value((a21/Re*grad_u_old - a21*tensor_product_u_n)*n_plus - p_old*n_plus +
+                           a22/Re*2.0*coef_jump*u_int_m -
+                           aux_coeff*a22*tensor_product_u_int_m*n_plus + a22*lambda*u_int_m, q);
+          phi.submit_normal_derivative(-aux_coeff*theta_v*a22/Re*u_int_m, q); /*--- This is equivalent to multiply to the gradient
+                                                                                    with outer product and use 'submit_gradient' ---*/
+        }
+        phi.integrate_scatter(true, true, dst);
+      }
+    }
+    else {
+      /*--- We first start by declaring the suitable instances to read already available quantities. ---*/
+      FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, true, 0),
+                                                                       phi_old(data, true, 0),
+                                                                       phi_int(data, true, 0),
+                                                                       phi_int_extr(data, true, 0);
+      FEFaceEvaluation<dim, fe_degree_p, n_q_points_1d_v, 1, Number>   phi_old_press(data, true, 1);
+
+      /*--- We loop over the faces in the range ---*/
+      for(unsigned int face = face_range.first; face < face_range.second; ++ face) {
+        phi_old.reinit(face);
+        phi_old.gather_evaluate(src[0], true, true);
+        phi_int.reinit(face);
+        phi_int.gather_evaluate(src[1], true, true);
+        phi_old_press.reinit(face);
+        phi_old_press.gather_evaluate(src[2], true, false);
+        phi_int_extr.reinit(face);
+        phi_int_extr.gather_evaluate(src[3], true, false);
+        phi.reinit(face);
+
+        const auto boundary_id = data.get_boundary_id(face);
+        const auto coef_jump   = (boundary_id == 1) ? 0.0 : C_u*std::abs((phi.get_normal_vector(0) * phi.inverse_jacobian(0))[dim - 1]);
+        const double aux_coeff = (boundary_id == 1) ? 0.0 : 1.0;
+
+        /*--- Now we loop over all the quadrature points to compute the integrals ---*/
+        for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+          const auto& n_plus                   = phi.get_normal_vector(q);
+
+          const auto& grad_u_old               = phi_old.get_gradient(q);
+          const auto& grad_u_int               = phi_int.get_gradient(q);
+          const auto& tensor_product_u_n       = outer_product(phi_old.get_value(q), phi_old.get_value(q));
+          const auto& tensor_product_u_n_gamma = outer_product(phi_int.get_value(q), phi_int.get_value(q));
+          const auto& p_old                    = phi_old_press.get_value(q);
+          const auto& point_vectorized         = phi.quadrature_point(q);
+          auto u_m                             = Tensor<1, dim, VectorizedArray<Number>>();
+          if(boundary_id == 0) {
+            for(unsigned int v = 0; v < VectorizedArray<Number>::size(); ++v) {
+              Point<dim> point;
+              for(unsigned int d = 0; d < dim; ++d)
+                point[d] = point_vectorized[d][v];
+              for(unsigned int d = 0; d < dim; ++d)
+                u_m[d][v] = vel_boundary_inflow.value(point, d);
+            }
+          }
+          const auto tensor_product_u_m = outer_product(u_m, phi_int_extr.get_value(q));
+          const auto lambda             = (boundary_id == 1) ? 0.0 : std::abs(scalar_product(phi_int_extr.get_value(q), n_plus));
+
+          phi.submit_value((a31/Re*grad_u_old + a32/Re*grad_u_int -
+                           a31*tensor_product_u_n - a32*tensor_product_u_n_gamma)*n_plus - p_old*n_plus +
+                           a33/Re*2.0*coef_jump*u_m -
+                           aux_coeff*a33*tensor_product_u_m*n_plus + a33*lambda*u_m, q);
+          phi.submit_normal_derivative(-aux_coeff*theta_v*a33/Re*u_m, q);
+        }
+        phi.integrate_scatter(true, true, dst);
+      }
+    }
+  }
+
+
+  // Put together all the previous steps for velocity. This is done automatically by the loop function of 'MatrixFree' class
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  vmult_rhs_velocity(Vec& dst, const std::vector<Vec>& src) const {
+    for(unsigned int d = 0; d < src.size(); ++d)
+      src[d].update_ghost_values();
+
+    this->data->loop(&NavierStokesProjectionOperator::assemble_rhs_cell_term_velocity,
+                     &NavierStokesProjectionOperator::assemble_rhs_face_term_velocity,
+                     &NavierStokesProjectionOperator::assemble_rhs_boundary_term_velocity,
+                     this, dst, src, true,
+                     MatrixFree<dim, Number>::DataAccessOnFaces::unspecified,
+                     MatrixFree<dim, Number>::DataAccessOnFaces::unspecified);
+  }
+
+
+  // Now we focus on computing the rhs for the projection step for the pressure with the same ratio.
+  // The following function assembles rhs cell term for the pressure
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_rhs_cell_term_pressure(const MatrixFree<dim, Number>&               data,
+                                  Vec&                                         dst,
+                                  const std::vector<Vec>&                      src,
+                                  const std::pair<unsigned int, unsigned int>& cell_range) const {
+    /*--- We first start by declaring the suitable instances to read already available quantities.
+          The third parameter specifies that we want to use the second quadrature formula stored. ---*/
+    FEEvaluation<dim, fe_degree_p, n_q_points_1d_p, 1, Number>   phi(data, 1, 1),
+                                                                 phi_old(data, 1, 1);
+    FEEvaluation<dim, fe_degree_v, n_q_points_1d_p, dim, Number> phi_proj(data, 0, 1);
+
+    const double coeff   = (TR_BDF2_stage == 1) ? 1.0e6*gamma*dt*gamma*dt : 1.0e6*(1.0 - gamma)*dt*(1.0 - gamma)*dt;
+
+    const double coeff_2 = (TR_BDF2_stage == 1) ? gamma*dt : (1.0 - gamma)*dt;
+
+    /*--- We loop over cells in the range ---*/
+    for(unsigned int cell = cell_range.first; cell < cell_range.second; ++cell) {
+      phi_proj.reinit(cell);
+      phi_proj.gather_evaluate(src[0], true, false);
+      phi_old.reinit(cell);
+      phi_old.gather_evaluate(src[1], true, false);
+      phi.reinit(cell);
+
+      /*--- Now we loop over all the quadrature points to compute the integrals ---*/
+      for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+        const auto& u_star_star = phi_proj.get_value(q);
+        const auto& p_old       = phi_old.get_value(q);
+
+        phi.submit_value(1.0/coeff*p_old, q);
+        phi.submit_gradient(1.0/coeff_2*u_star_star, q);
+      }
+      phi.integrate_scatter(true, true, dst);
+    }
+  }
+
+
+  // The following function assembles rhs face term for the pressure
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_rhs_face_term_pressure(const MatrixFree<dim, Number>&               data,
+                                  Vec&                                         dst,
+                                  const std::vector<Vec>&                      src,
+                                  const std::pair<unsigned int, unsigned int>& face_range) const {
+    /*--- We first start by declaring the suitable instances to read already available quantities. ---*/
+    FEFaceEvaluation<dim, fe_degree_p, n_q_points_1d_p, 1, Number>   phi_p(data, true, 1, 1),
+                                                                     phi_m(data, false, 1, 1);
+    FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_p, dim, Number> phi_proj_p(data, true, 0, 1),
+                                                                     phi_proj_m(data, false, 0, 1);
+
+    const double coeff = (TR_BDF2_stage == 1) ? 1.0/(gamma*dt) : 1.0/((1.0 - gamma)*dt);
+
+    /*--- We loop over faces in the range ---*/
+    for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+      phi_proj_p.reinit(face);
+      phi_proj_p.gather_evaluate(src[0], true, false);
+      phi_proj_m.reinit(face);
+      phi_proj_m.gather_evaluate(src[0], true, false);
+      phi_p.reinit(face);
+      phi_m.reinit(face);
+
+      /*--- Now we loop over all the quadrature points to compute the integrals ---*/
+      for(unsigned int q = 0; q < phi_p.n_q_points; ++q) {
+        const auto& n_plus           = phi_p.get_normal_vector(q);
+        const auto& avg_u_star_star  = 0.5*(phi_proj_p.get_value(q) + phi_proj_m.get_value(q));
+
+        phi_p.submit_value(-coeff*scalar_product(avg_u_star_star, n_plus), q);
+        phi_m.submit_value(coeff*scalar_product(avg_u_star_star, n_plus), q);
+      }
+      phi_p.integrate_scatter(true, false, dst);
+      phi_m.integrate_scatter(true, false, dst);
+    }
+  }
+
+
+  // The following function assembles rhs boundary term for the pressure
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_rhs_boundary_term_pressure(const MatrixFree<dim, Number>&               data,
+                                      Vec&                                         dst,
+                                      const std::vector<Vec>&                      src,
+                                      const std::pair<unsigned int, unsigned int>& face_range) const {
+    /*--- We first start by declaring the suitable instances to read already available quantities. ---*/
+    FEFaceEvaluation<dim, fe_degree_p, n_q_points_1d_p, 1, Number>   phi(data, true, 1, 1);
+    FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_p, dim, Number> phi_proj(data, true, 0, 1);
+
+    const double coeff = (TR_BDF2_stage == 1) ? 1.0/(gamma*dt) : 1.0/((1.0 - gamma)*dt);
+
+    /*--- We loop over faces in the range ---*/
+    for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+      phi_proj.reinit(face);
+      phi_proj.gather_evaluate(src[0], true, false);
+      phi.reinit(face);
+
+      /*--- Now we loop over all the quadrature points to compute the integrals ---*/
+      for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+        const auto& n_plus = phi.get_normal_vector(q);
+
+        phi.submit_value(-coeff*scalar_product(phi_proj.get_value(q), n_plus), q);
+      }
+      phi.integrate_scatter(true, false, dst);
+    }
+  }
+
+
+  // Put together all the previous steps for pressure
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  vmult_rhs_pressure(Vec& dst, const std::vector<Vec>& src) const {
+    for(unsigned int d = 0; d < src.size(); ++d)
+      src[d].update_ghost_values();
+
+    this->data->loop(&NavierStokesProjectionOperator::assemble_rhs_cell_term_pressure,
+                     &NavierStokesProjectionOperator::assemble_rhs_face_term_pressure,
+                     &NavierStokesProjectionOperator::assemble_rhs_boundary_term_pressure,
+                     this, dst, src, true,
+                     MatrixFree<dim, Number>::DataAccessOnFaces::unspecified,
+                     MatrixFree<dim, Number>::DataAccessOnFaces::unspecified);
+  }
+
+
+  // Now we need to build the 'matrices', i.e. the bilinear forms. We start by
+  // assembling the cell term for the velocity
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_cell_term_velocity(const MatrixFree<dim, Number>&               data,
+                              Vec&                                         dst,
+                              const Vec&                                   src,
+                              const std::pair<unsigned int, unsigned int>& cell_range) const {
+    if(TR_BDF2_stage == 1) {
+      /*--- We first start by declaring the suitable instances to read already available quantities. Moreover 'phi' in
+      this case serves for a bilinear form and so it will not used only to submit but also to read the src ---*/
+      FEEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, 0),
+                                                                   phi_old_extr(data, 0);
+
+      /*--- We loop over all cells in the range ---*/
+      for(unsigned int cell = cell_range.first; cell < cell_range.second; ++cell) {
+        phi.reinit(cell);
+        phi.gather_evaluate(src, true, true);
+        phi_old_extr.reinit(cell);
+        phi_old_extr.gather_evaluate(u_extr, true, false);
+
+        /*--- Now we loop over all quadrature points ---*/
+        for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+          const auto& u_int                = phi.get_value(q);
+          const auto& grad_u_int           = phi.get_gradient(q);
+          const auto& u_n_gamma_ov_2       = phi_old_extr.get_value(q);
+          const auto& tensor_product_u_int = outer_product(u_int, u_n_gamma_ov_2);
+
+          phi.submit_value(1.0/(gamma*dt)*u_int, q);
+          phi.submit_gradient(-a22*tensor_product_u_int + a22/Re*grad_u_int, q);
+        }
+        phi.integrate_scatter(true, true, dst);
+      }
+    }
+    else {
+      /*--- We first start by declaring the suitable instances to read already available quantities. ---*/
+      FEEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, 0),
+                                                                   phi_int_extr(data, 0);
+
+      /*--- We loop over all cells in the range ---*/
+      for(unsigned int cell = cell_range.first; cell < cell_range.second; ++cell) {
+        phi.reinit(cell);
+        phi.gather_evaluate(src, true, true);
+        phi_int_extr.reinit(cell);
+        phi_int_extr.gather_evaluate(u_extr, true, false);
+
+        /*--- Now we loop over all quadrature points ---*/
+        for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+          const auto& u_curr                   = phi.get_value(q);
+          const auto& grad_u_curr              = phi.get_gradient(q);
+          const auto& u_n1_int                 = phi_int_extr.get_value(q);
+          const auto& tensor_product_u_curr    = outer_product(u_curr, u_n1_int);
+
+          phi.submit_value(1.0/((1.0 - gamma)*dt)*u_curr, q);
+          phi.submit_gradient(-a33*tensor_product_u_curr + a33/Re*grad_u_curr, q);
+        }
+        phi.integrate_scatter(true, true, dst);
+      }
+    }
+  }
+
+
+  // The following function assembles face term for the velocity
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_face_term_velocity(const MatrixFree<dim, Number>&               data,
+                              Vec&                                         dst,
+                              const Vec&                                   src,
+                              const std::pair<unsigned int, unsigned int>& face_range) const {
+    if(TR_BDF2_stage == 1) {
+      /*--- We first start by declaring the suitable instances to read already available quantities. ---*/
+      FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi_p(data, true, 0),
+                                                                       phi_m(data, false, 0),
+                                                                       phi_old_extr_p(data, true, 0),
+                                                                       phi_old_extr_m(data, false, 0);
+
+      /*--- We loop over all faces in the range ---*/
+      for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+        phi_p.reinit(face);
+        phi_p.gather_evaluate(src, true, true);
+        phi_m.reinit(face);
+        phi_m.gather_evaluate(src, true, true);
+        phi_old_extr_p.reinit(face);
+        phi_old_extr_p.gather_evaluate(u_extr, true, false);
+        phi_old_extr_m.reinit(face);
+        phi_old_extr_m.gather_evaluate(u_extr, true, false);
+
+        const auto coef_jump = C_u*0.5*(std::abs((phi_p.get_normal_vector(0)*phi_p.inverse_jacobian(0))[dim - 1]) +
+                                        std::abs((phi_m.get_normal_vector(0)*phi_m.inverse_jacobian(0))[dim - 1]));
+
+        /*--- Now we loop over all quadrature points ---*/
+        for(unsigned int q = 0; q < phi_p.n_q_points; ++q) {
+          const auto& n_plus                   = phi_p.get_normal_vector(q);
+
+          const auto& avg_grad_u_int           = 0.5*(phi_p.get_gradient(q) + phi_m.get_gradient(q));
+          const auto& jump_u_int               = phi_p.get_value(q) - phi_m.get_value(q);
+          const auto& avg_tensor_product_u_int = 0.5*(outer_product(phi_p.get_value(q), phi_old_extr_p.get_value(q)) +
+                                                      outer_product(phi_m.get_value(q), phi_old_extr_m.get_value(q)));
+          const auto  lambda                   = std::max(std::abs(scalar_product(phi_old_extr_p.get_value(q), n_plus)),
+                                                          std::abs(scalar_product(phi_old_extr_m.get_value(q), n_plus)));
+
+          phi_p.submit_value(a22/Re*(-avg_grad_u_int*n_plus + coef_jump*jump_u_int) +
+                             a22*avg_tensor_product_u_int*n_plus + 0.5*a22*lambda*jump_u_int, q);
+          phi_m.submit_value(-a22/Re*(-avg_grad_u_int*n_plus + coef_jump*jump_u_int) -
+                              a22*avg_tensor_product_u_int*n_plus - 0.5*a22*lambda*jump_u_int, q);
+          phi_p.submit_normal_derivative(-theta_v*a22/Re*0.5*jump_u_int, q);
+          phi_m.submit_normal_derivative(-theta_v*a22/Re*0.5*jump_u_int, q);
+        }
+        phi_p.integrate_scatter(true, true, dst);
+        phi_m.integrate_scatter(true, true, dst);
+      }
+    }
+    else {
+      /*--- We first start by declaring the suitable instances to read already available quantities. ---*/
+      FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi_p(data, true, 0),
+                                                                       phi_m(data, false, 0),
+                                                                       phi_extr_p(data, true, 0),
+                                                                       phi_extr_m(data, false, 0);
+
+      /*--- We loop over all faces in the range ---*/
+      for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+        phi_p.reinit(face);
+        phi_p.gather_evaluate(src, true, true);
+        phi_m.reinit(face);
+        phi_m.gather_evaluate(src, true, true);
+        phi_extr_p.reinit(face);
+        phi_extr_p.gather_evaluate(u_extr, true, false);
+        phi_extr_m.reinit(face);
+        phi_extr_m.gather_evaluate(u_extr, true, false);
+
+        const auto coef_jump = C_u*0.5*(std::abs((phi_p.get_normal_vector(0)*phi_p.inverse_jacobian(0))[dim - 1]) +
+                                        std::abs((phi_m.get_normal_vector(0)*phi_m.inverse_jacobian(0))[dim - 1]));
+
+        /*--- Now we loop over all quadrature points ---*/
+        for(unsigned int q = 0; q < phi_p.n_q_points; ++q) {
+          const auto& n_plus               = phi_p.get_normal_vector(q);
+
+          const auto& avg_grad_u           = 0.5*(phi_p.get_gradient(q) + phi_m.get_gradient(q));
+          const auto& jump_u               = phi_p.get_value(q) - phi_m.get_value(q);
+          const auto& avg_tensor_product_u = 0.5*(outer_product(phi_p.get_value(q), phi_extr_p.get_value(q)) +
+                                                  outer_product(phi_m.get_value(q), phi_extr_m.get_value(q)));
+          const auto  lambda               = std::max(std::abs(scalar_product(phi_extr_p.get_value(q), n_plus)),
+                                                      std::abs(scalar_product(phi_extr_m.get_value(q), n_plus)));
+
+          phi_p.submit_value(a33/Re*(-avg_grad_u*n_plus + coef_jump*jump_u) +
+                             a33*avg_tensor_product_u*n_plus + 0.5*a33*lambda*jump_u, q);
+          phi_m.submit_value(-a33/Re*(-avg_grad_u*n_plus + coef_jump*jump_u) -
+                              a33*avg_tensor_product_u*n_plus - 0.5*a33*lambda*jump_u, q);
+          phi_p.submit_normal_derivative(-theta_v*a33/Re*0.5*jump_u, q);
+          phi_m.submit_normal_derivative(-theta_v*a33/Re*0.5*jump_u, q);
+        }
+        phi_p.integrate_scatter(true, true, dst);
+        phi_m.integrate_scatter(true, true, dst);
+      }
+    }
+  }
+
+
+  // The following function assembles boundary term for the velocity
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_boundary_term_velocity(const MatrixFree<dim, Number>&               data,
+                                  Vec&                                         dst,
+                                  const Vec&                                   src,
+                                  const std::pair<unsigned int, unsigned int>& face_range) const {
+    if(TR_BDF2_stage == 1) {
+      /*--- We first start by declaring the suitable instances to read already available quantities. ---*/
+      FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, true, 0),
+                                                                       phi_old_extr(data, true, 0);
+
+      /*--- We loop over all faces in the range ---*/
+      for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+        phi.reinit(face);
+        phi.gather_evaluate(src, true, true);
+        phi_old_extr.reinit(face);
+        phi_old_extr.gather_evaluate(u_extr, true, false);
+
+        const auto boundary_id = data.get_boundary_id(face);
+        const auto coef_jump   = C_u*std::abs((phi.get_normal_vector(0) * phi.inverse_jacobian(0))[dim - 1]);
+
+        /*--- The application of the mirror principle is not so trivial because we have a Dirichlet condition
+              on a single component for the outflow; so we distinguish the two cases ---*/
+        if(boundary_id != 1) {
+          const double coef_trasp = 0.0;
+
+          /*--- Now we loop over all quadrature points ---*/
+          for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+            const auto& n_plus               = phi.get_normal_vector(q);
+            const auto& grad_u_int           = phi.get_gradient(q);
+            const auto& u_int                = phi.get_value(q);
+            const auto& tensor_product_u_int = outer_product(phi.get_value(q), phi_old_extr.get_value(q));
+            const auto& lambda               = std::abs(scalar_product(phi_old_extr.get_value(q), n_plus));
+
+            phi.submit_value(a22/Re*(-grad_u_int*n_plus + 2.0*coef_jump*u_int) +
+                             a22*coef_trasp*tensor_product_u_int*n_plus + a22*lambda*u_int, q);
+            phi.submit_normal_derivative(-theta_v*a22/Re*u_int, q);
+          }
+          phi.integrate_scatter(true, true, dst);
+        }
+        else {
+          /*--- Now we loop over all quadrature points ---*/
+          for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+            const auto& n_plus               = phi.get_normal_vector(q);
+            const auto& grad_u_int           = phi.get_gradient(q);
+            const auto& u_int                = phi.get_value(q);
+            const auto& lambda               = std::abs(scalar_product(phi_old_extr.get_value(q), n_plus));
+
+            const auto& point_vectorized     = phi.quadrature_point(q);
+            auto u_int_m                     = u_int;
+            auto grad_u_int_m                = grad_u_int;
+            for(unsigned int v = 0; v < VectorizedArray<Number>::size(); ++v) {
+              Point<dim> point;
+              for(unsigned int d = 0; d < dim; ++d)
+                point[d] = point_vectorized[d][v];
+
+              u_int_m[1][v] = -u_int_m[1][v];
+
+              grad_u_int_m[0][0][v] = -grad_u_int_m[0][0][v];
+              grad_u_int_m[0][1][v] = -grad_u_int_m[0][1][v];
+            }
+
+            phi.submit_value(a22/Re*(-(0.5*(grad_u_int + grad_u_int_m))*n_plus + coef_jump*(u_int - u_int_m)) +
+                             a22*outer_product(0.5*(u_int + u_int_m), phi_old_extr.get_value(q))*n_plus +
+                             a22*0.5*lambda*(u_int - u_int_m), q);
+            phi.submit_normal_derivative(-theta_v*a22/Re*(u_int - u_int_m), q);
+          }
+          phi.integrate_scatter(true, true, dst);
+        }
+      }
+    }
+    else {
+      /*--- We first start by declaring the suitable instances to read already available quantities. ---*/
+      FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, true, 0),
+                                                                       phi_extr(data, true, 0);
+
+      /*--- We loop over all faces in the range ---*/
+      for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+        phi.reinit(face);
+        phi.gather_evaluate(src, true, true);
+        phi_extr.reinit(face);
+        phi_extr.gather_evaluate(u_extr, true, false);
+
+        const auto boundary_id = data.get_boundary_id(face);
+        const auto coef_jump   = C_u*std::abs((phi.get_normal_vector(0) * phi.inverse_jacobian(0))[dim - 1]);
+
+        if(boundary_id != 1) {
+          const double coef_trasp = 0.0;
+
+          /*--- Now we loop over all quadrature points ---*/
+          for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+            const auto& n_plus           = phi.get_normal_vector(q);
+            const auto& grad_u           = phi.get_gradient(q);
+            const auto& u                = phi.get_value(q);
+            const auto& tensor_product_u = outer_product(phi.get_value(q), phi_extr.get_value(q));
+            const auto& lambda           = std::abs(scalar_product(phi_extr.get_value(q), n_plus));
+
+            phi.submit_value(a33/Re*(-grad_u*n_plus + 2.0*coef_jump*u) +
+                             a33*coef_trasp*tensor_product_u*n_plus + a33*lambda*u, q);
+            phi.submit_normal_derivative(-theta_v*a33/Re*u, q);
+          }
+          phi.integrate_scatter(true, true, dst);
+        }
+        else {
+          /*--- Now we loop over all quadrature points ---*/
+          for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+            const auto& n_plus           = phi.get_normal_vector(q);
+            const auto& grad_u           = phi.get_gradient(q);
+            const auto& u                = phi.get_value(q);
+            const auto& lambda           = std::abs(scalar_product(phi_extr.get_value(q), n_plus));
+
+            const auto& point_vectorized = phi.quadrature_point(q);
+            auto u_m                     = u;
+            auto grad_u_m                = grad_u;
+            for(unsigned int v = 0; v < VectorizedArray<Number>::size(); ++v) {
+              Point<dim> point;
+              for(unsigned int d = 0; d < dim; ++d)
+                point[d] = point_vectorized[d][v];
+
+              u_m[1][v] = -u_m[1][v];
+
+              grad_u_m[0][0][v] = -grad_u_m[0][0][v];
+              grad_u_m[0][1][v] = -grad_u_m[0][1][v];
+            }
+
+            phi.submit_value(a33/Re*(-(0.5*(grad_u + grad_u_m))*n_plus + coef_jump*(u - u_m)) +
+                             a33*outer_product(0.5*(u + u_m), phi_extr.get_value(q))*n_plus + a33*0.5*lambda*(u - u_m), q);
+            phi.submit_normal_derivative(-theta_v*a33/Re*(u - u_m), q);
+          }
+          phi.integrate_scatter(true, true, dst);
+        }
+      }
+    }
+  }
+
+
+  // Next, we focus on 'matrices' to compute the pressure. We first assemble cell term for the pressure
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_cell_term_pressure(const MatrixFree<dim, Number>&               data,
+                              Vec&                                         dst,
+                              const Vec&                                   src,
+                              const std::pair<unsigned int, unsigned int>& cell_range) const {
+    /*--- We first start by declaring the suitable instances to read already available quantities. ---*/
+    FEEvaluation<dim, fe_degree_p, n_q_points_1d_p, 1, Number> phi(data, 1, 1);
+
+    const double coeff = (TR_BDF2_stage == 1) ? 1.0e6*gamma*dt*gamma*dt : 1.0e6*(1.0 - gamma)*dt*(1.0 - gamma)*dt;
+
+    /*--- Loop over all cells in the range ---*/
+    for(unsigned int cell = cell_range.first; cell < cell_range.second; ++cell) {
+      phi.reinit(cell);
+      phi.gather_evaluate(src, true, true);
+
+      /*--- Now we loop over all quadrature points ---*/
+      for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+        phi.submit_gradient(phi.get_gradient(q), q);
+        phi.submit_value(1.0/coeff*phi.get_value(q), q);
+      }
+
+      phi.integrate_scatter(true, true, dst);
+    }
+  }
+
+
+  // The following function assembles face term for the pressure
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_face_term_pressure(const MatrixFree<dim, Number>&               data,
+                              Vec&                                         dst,
+                              const Vec&                                   src,
+                              const std::pair<unsigned int, unsigned int>& face_range) const {
+    /*--- We first start by declaring the suitable instances to read already available quantities. ---*/
+    FEFaceEvaluation<dim, fe_degree_p, n_q_points_1d_p, 1, Number> phi_p(data, true, 1, 1),
+                                                                   phi_m(data, false, 1, 1);
+
+    /*--- Loop over all faces in the range ---*/
+    for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+      phi_p.reinit(face);
+      phi_p.gather_evaluate(src, true, true);
+      phi_m.reinit(face);
+      phi_m.gather_evaluate(src, true, true);
+
+      const auto coef_jump = C_p*0.5*(std::abs((phi_p.get_normal_vector(0)*phi_p.inverse_jacobian(0))[dim - 1]) +
+                                      std::abs((phi_m.get_normal_vector(0)*phi_m.inverse_jacobian(0))[dim - 1]));
+
+      /*--- Loop over quadrature points ---*/
+      for(unsigned int q = 0; q < phi_p.n_q_points; ++q) {
+        const auto& n_plus        = phi_p.get_normal_vector(q);
+
+        const auto& avg_grad_pres = 0.5*(phi_p.get_gradient(q) + phi_m.get_gradient(q));
+        const auto& jump_pres     = phi_p.get_value(q) - phi_m.get_value(q);
+
+        phi_p.submit_value(-scalar_product(avg_grad_pres, n_plus) + coef_jump*jump_pres, q);
+        phi_m.submit_value(scalar_product(avg_grad_pres, n_plus) - coef_jump*jump_pres, q);
+        phi_p.submit_gradient(-theta_p*0.5*jump_pres*n_plus, q);
+        phi_m.submit_gradient(-theta_p*0.5*jump_pres*n_plus, q);
+      }
+      phi_p.integrate_scatter(true, true, dst);
+      phi_m.integrate_scatter(true, true, dst);
+    }
+  }
+
+
+  // The following function assembles boundary term for the pressure
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_boundary_term_pressure(const MatrixFree<dim, Number>&               data,
+                                  Vec&                                         dst,
+                                  const Vec&                                   src,
+                                  const std::pair<unsigned int, unsigned int>& face_range) const {
+    FEFaceEvaluation<dim, fe_degree_p, n_q_points_1d_p, 1, Number> phi(data, true, 1, 1);
+
+    for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+      phi.reinit(face);
+      phi.gather_evaluate(src, true, true);
+
+      const auto coef_jump = C_p*std::abs((phi.get_normal_vector(0)*phi.inverse_jacobian(0))[dim - 1]);
+
+      const auto boundary_id = data.get_boundary_id(face);
+
+      if(boundary_id == 1) {
+        for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+          const auto& n_plus    = phi.get_normal_vector(q);
+
+          const auto& grad_pres = phi.get_gradient(q);
+          const auto& pres      = phi.get_value(q);
+
+          phi.submit_value(-scalar_product(grad_pres, n_plus) + coef_jump*pres , q);
+          phi.submit_normal_derivative(-theta_p*pres, q);
+        }
+        phi.integrate_scatter(true, true, dst);
+      }
+    }
+  }
+
+
+  // Before coding the 'apply_add' function, which is the one that will perform the loop, we focus on
+  // the linear system that arises to project the gradient of the pressure into the velocity space.
+  // The following function assembles rhs cell term for the projection of gradient of pressure. Since no
+  // integration by parts is performed, only a cell term contribution is present.
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_rhs_cell_term_projection_grad_p(const MatrixFree<dim, Number>&               data,
+                                           Vec&                                         dst,
+                                           const Vec&                                   src,
+                                           const std::pair<unsigned int, unsigned int>& cell_range) const {
+    /*--- We first start by declaring the suitable instances to read already available quantities. ---*/
+    FEEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, 0);
+    FEEvaluation<dim, fe_degree_p, n_q_points_1d_v, 1, Number>   phi_pres(data, 1);
+
+    /*--- Loop over all cells in the range ---*/
+    for(unsigned int cell = cell_range.first; cell < cell_range.second; ++cell) {
+      phi_pres.reinit(cell);
+      phi_pres.gather_evaluate(src, false, true);
+      phi.reinit(cell);
+
+      /*--- Loop over quadrature points ---*/
+      for(unsigned int q = 0; q < phi.n_q_points; ++q)
+        phi.submit_value(phi_pres.get_gradient(q), q);
+
+      phi.integrate_scatter(true, false, dst);
+    }
+  }
+
+
+  // Put together all the previous steps for porjection of pressure gradient. Here we loop only over cells
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  vmult_grad_p_projection(Vec& dst, const Vec& src) const {
+    this->data->cell_loop(&NavierStokesProjectionOperator::assemble_rhs_cell_term_projection_grad_p,
+                          this, dst, src, true);
+  }
+
+
+  // Assemble now cell term for the projection of gradient of pressure. This is nothing but a mass matrix
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_cell_term_projection_grad_p(const MatrixFree<dim, Number>&               data,
+                                       Vec&                                         dst,
+                                       const Vec&                                   src,
+                                       const std::pair<unsigned int, unsigned int>& cell_range) const {
+    FEEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, 0);
+
+    /*--- Loop over all cells in the range ---*/
+    for(unsigned int cell = cell_range.first; cell < cell_range.second; ++cell) {
+      phi.reinit(cell);
+      phi.gather_evaluate(src, true, false);
+
+      /*--- Loop over quadrature points ---*/
+      for(unsigned int q = 0; q < phi.n_q_points; ++q)
+        phi.submit_value(phi.get_value(q), q);
+
+      phi.integrate_scatter(true, false, dst);
+    }
+  }
+
+
+  // Put together all previous steps. This is the overriden function that effectively performs the
+  // matrix-vector multiplication.
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  apply_add(Vec& dst, const Vec& src) const {
+    if(NS_stage == 1) {
+      this->data->loop(&NavierStokesProjectionOperator::assemble_cell_term_velocity,
+                       &NavierStokesProjectionOperator::assemble_face_term_velocity,
+                       &NavierStokesProjectionOperator::assemble_boundary_term_velocity,
+                       this, dst, src, false,
+                       MatrixFree<dim, Number>::DataAccessOnFaces::unspecified,
+                       MatrixFree<dim, Number>::DataAccessOnFaces::unspecified);
+    }
+    else if(NS_stage == 2) {
+      this->data->loop(&NavierStokesProjectionOperator::assemble_cell_term_pressure,
+                       &NavierStokesProjectionOperator::assemble_face_term_pressure,
+                       &NavierStokesProjectionOperator::assemble_boundary_term_pressure,
+                       this, dst, src, false,
+                       MatrixFree<dim, Number>::DataAccessOnFaces::unspecified,
+                       MatrixFree<dim, Number>::DataAccessOnFaces::unspecified);
+    }
+    else if(NS_stage == 3) {
+      this->data->cell_loop(&NavierStokesProjectionOperator::assemble_cell_term_projection_grad_p,
+                            this, dst, src, false); /*--- Since we have only a cell term contribution, we use cell_loop ---*/
+    }
+    else
+      Assert(false, ExcNotImplemented());
+  }
+
+
+  // Finally, we focus on computing the diagonal for preconditioners and we start by assembling
+  // the diagonal cell term for the velocity. Since we do not have access to the entries of the matrix,
+  // in order to compute the element i, we test the matrix against a vector which is equal to 1 in position i and 0 elsewhere.
+  // This is why 'src' will result as unused.
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_diagonal_cell_term_velocity(const MatrixFree<dim, Number>&               data,
+                                       Vec&                                         dst,
+                                       const unsigned int&                          src,
+                                       const std::pair<unsigned int, unsigned int>& cell_range) const {
+    if(TR_BDF2_stage == 1) {
+      FEEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, 0),
+                                                                   phi_old_extr(data, 0);
+
+      AlignedVector<Tensor<1, dim, VectorizedArray<Number>>> diagonal(phi.dofs_per_component);
+      /*--- Build a vector of ones to be tested (here we will see the velocity as a whole vector, since
+                                                 dof_handler_velocity is vectorial and so the dof values are vectors). ---*/
+      Tensor<1, dim, VectorizedArray<Number>> tmp;
+      for(unsigned int d = 0; d < dim; ++d)
+        tmp[d] = make_vectorized_array<Number>(1.0);
+
+      /*--- Loop over cells in the range ---*/
+      for(unsigned int cell = cell_range.first; cell < cell_range.second; ++cell) {
+        phi_old_extr.reinit(cell);
+        phi_old_extr.gather_evaluate(u_extr, true, false);
+        phi.reinit(cell);
+
+        /*--- Loop over dofs ---*/
+        for(unsigned int i = 0; i < phi.dofs_per_component; ++i) {
+          for(unsigned int j = 0; j < phi.dofs_per_component; ++j)
+            phi.submit_dof_value(Tensor<1, dim, VectorizedArray<Number>>(), j); /*--- Set all dofs to zero ---*/
+          phi.submit_dof_value(tmp, i); /*--- Set dof i equal to one ---*/
+          phi.evaluate(true, true);
+
+          /*--- Loop over quadrature points ---*/
+          for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+            const auto& u_int                = phi.get_value(q);
+            const auto& grad_u_int           = phi.get_gradient(q);
+            const auto& u_n_gamma_ov_2       = phi_old_extr.get_value(q);
+            const auto& tensor_product_u_int = outer_product(u_int, u_n_gamma_ov_2);
+
+            phi.submit_value(1.0/(gamma*dt)*u_int, q);
+            phi.submit_gradient(-a22*tensor_product_u_int + a22/Re*grad_u_int, q);
+          }
+          phi.integrate(true, true);
+          diagonal[i] = phi.get_dof_value(i);
+        }
+        for(unsigned int i = 0; i < phi.dofs_per_component; ++i)
+          phi.submit_dof_value(diagonal[i], i);
+        phi.distribute_local_to_global(dst);
+      }
+    }
+    else {
+      FEEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, 0),
+                                                                   phi_int_extr(data, 0);
+
+      AlignedVector<Tensor<1, dim, VectorizedArray<Number>>> diagonal(phi.dofs_per_component);
+      Tensor<1, dim, VectorizedArray<Number>> tmp;
+      for(unsigned int d = 0; d < dim; ++d)
+        tmp[d] = make_vectorized_array<Number>(1.0);
+
+      /*--- Loop over cells in the range ---*/
+      for(unsigned int cell = cell_range.first; cell < cell_range.second; ++cell) {
+        phi_int_extr.reinit(cell);
+        phi_int_extr.gather_evaluate(u_extr, true, false);
+        phi.reinit(cell);
+
+        /*--- Loop over dofs ---*/
+        for(unsigned int i = 0; i < phi.dofs_per_component; ++i) {
+          for(unsigned int j = 0; j < phi.dofs_per_component; ++j)
+            phi.submit_dof_value(Tensor<1, dim, VectorizedArray<Number>>(), j);
+          phi.submit_dof_value(tmp, i);
+          phi.evaluate(true, true);
+
+          /*--- Loop over quadrature points ---*/
+          for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+            const auto& u_curr                   = phi.get_value(q);
+            const auto& grad_u_curr              = phi.get_gradient(q);
+            const auto& u_n1_int                 = phi_int_extr.get_value(q);
+            const auto& tensor_product_u_curr    = outer_product(u_curr, u_n1_int);
+
+            phi.submit_value(1.0/((1.0 - gamma)*dt)*u_curr, q);
+            phi.submit_gradient(-a33*tensor_product_u_curr + a33/Re*grad_u_curr, q);
+          }
+          phi.integrate(true, true);
+          diagonal[i] = phi.get_dof_value(i);
+        }
+        for(unsigned int i = 0; i < phi.dofs_per_component; ++i)
+          phi.submit_dof_value(diagonal[i], i);
+        phi.distribute_local_to_global(dst);
+      }
+    }
+  }
+
+
+  // The following function assembles diagonal face term for the velocity
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_diagonal_face_term_velocity(const MatrixFree<dim, Number>&               data,
+                                       Vec&                                         dst,
+                                       const unsigned int&                          src,
+                                       const std::pair<unsigned int, unsigned int>& face_range) const {
+    if(TR_BDF2_stage == 1) {
+      FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi_p(data, true, 0),
+                                                                       phi_m(data, false, 0),
+                                                                       phi_old_extr_p(data, true, 0),
+                                                                       phi_old_extr_m(data, false, 0);
+
+      AssertDimension(phi_p.dofs_per_component, phi_m.dofs_per_component); /*--- We just assert for safety that dimension match,
+                                                                                in the sense that we have selected the proper
+                                                                                space ---*/
+      AlignedVector<Tensor<1, dim, VectorizedArray<Number>>> diagonal_p(phi_p.dofs_per_component),
+                                                             diagonal_m(phi_m.dofs_per_component);
+      Tensor<1, dim, VectorizedArray<Number>> tmp;
+      for(unsigned int d = 0; d < dim; ++d)
+        tmp[d] = make_vectorized_array<Number>(1.0); /*--- We build the usal vector of ones that we will use as dof value ---*/
+
+      /*--- Now we loop over faces ---*/
+      for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+        phi_old_extr_p.reinit(face);
+        phi_old_extr_p.gather_evaluate(u_extr, true, false);
+        phi_old_extr_m.reinit(face);
+        phi_old_extr_m.gather_evaluate(u_extr, true, false);
+        phi_p.reinit(face);
+        phi_m.reinit(face);
+
+        const auto coef_jump = C_u*0.5*(std::abs((phi_p.get_normal_vector(0)*phi_p.inverse_jacobian(0))[dim - 1]) +
+                                        std::abs((phi_m.get_normal_vector(0)*phi_m.inverse_jacobian(0))[dim - 1]));
+
+        /*--- Loop over dofs. We will set all equal to zero apart from the current one ---*/
+        for(unsigned int i = 0; i < phi_p.dofs_per_component; ++i) {
+          for(unsigned int j = 0; j < phi_p.dofs_per_component; ++j) {
+            phi_p.submit_dof_value(Tensor<1, dim, VectorizedArray<Number>>(), j);
+            phi_m.submit_dof_value(Tensor<1, dim, VectorizedArray<Number>>(), j);
+          }
+          phi_p.submit_dof_value(tmp, i);
+          phi_p.evaluate(true, true);
+          phi_m.submit_dof_value(tmp, i);
+          phi_m.evaluate(true, true);
+
+          /*--- Loop over quadrature points to compute the integral ---*/
+          for(unsigned int q = 0; q < phi_p.n_q_points; ++q) {
+            const auto& n_plus                   = phi_p.get_normal_vector(q);
+            const auto& avg_grad_u_int           = 0.5*(phi_p.get_gradient(q) + phi_m.get_gradient(q));
+            const auto& jump_u_int               = phi_p.get_value(q) - phi_m.get_value(q);
+            const auto& avg_tensor_product_u_int = 0.5*(outer_product(phi_p.get_value(q), phi_old_extr_p.get_value(q)) +
+                                                        outer_product(phi_m.get_value(q), phi_old_extr_m.get_value(q)));
+            const auto  lambda                   = std::max(std::abs(scalar_product(phi_old_extr_p.get_value(q), n_plus)),
+                                                            std::abs(scalar_product(phi_old_extr_m.get_value(q), n_plus)));
+
+            phi_p.submit_value(a22/Re*(-avg_grad_u_int*n_plus + coef_jump*jump_u_int) +
+                               a22*avg_tensor_product_u_int*n_plus + 0.5*a22*lambda*jump_u_int , q);
+            phi_m.submit_value(-a22/Re*(-avg_grad_u_int*n_plus + coef_jump*jump_u_int) -
+                               a22*avg_tensor_product_u_int*n_plus - 0.5*a22*lambda*jump_u_int, q);
+            phi_p.submit_normal_derivative(-theta_v*0.5*a22/Re*jump_u_int, q);
+            phi_m.submit_normal_derivative(-theta_v*0.5*a22/Re*jump_u_int, q);
+          }
+          phi_p.integrate(true, true);
+          diagonal_p[i] = phi_p.get_dof_value(i);
+          phi_m.integrate(true, true);
+          diagonal_m[i] = phi_m.get_dof_value(i);
+        }
+        for(unsigned int i = 0; i < phi_p.dofs_per_component; ++i) {
+          phi_p.submit_dof_value(diagonal_p[i], i);
+          phi_m.submit_dof_value(diagonal_m[i], i);
+        }
+        phi_p.distribute_local_to_global(dst);
+        phi_m.distribute_local_to_global(dst);
+      }
+    }
+    else {
+      FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi_p(data, true, 0),
+                                                                       phi_m(data, false, 0),
+                                                                       phi_extr_p(data, true, 0),
+                                                                       phi_extr_m(data, false, 0);
+
+      AssertDimension(phi_p.dofs_per_component, phi_m.dofs_per_component);
+      AlignedVector<Tensor<1, dim, VectorizedArray<Number>>> diagonal_p(phi_p.dofs_per_component),
+                                                             diagonal_m(phi_m.dofs_per_component);
+      Tensor<1, dim, VectorizedArray<Number>> tmp;
+      for(unsigned int d = 0; d < dim; ++d)
+        tmp[d] = make_vectorized_array<Number>(1.0);
+
+      /*--- Now we loop over faces ---*/
+      for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+        phi_extr_p.reinit(face);
+        phi_extr_p.gather_evaluate(u_extr, true, false);
+        phi_extr_m.reinit(face);
+        phi_extr_m.gather_evaluate(u_extr, true, false);
+        phi_p.reinit(face);
+        phi_m.reinit(face);
+
+        const auto coef_jump = C_u*0.5*(std::abs((phi_p.get_normal_vector(0)*phi_p.inverse_jacobian(0))[dim - 1]) +
+                                        std::abs((phi_m.get_normal_vector(0)*phi_m.inverse_jacobian(0))[dim - 1]));
+
+        /*--- Loop over dofs. We will set all equal to zero apart from the current one ---*/
+        for(unsigned int i = 0; i < phi_p.dofs_per_component; ++i) {
+          for(unsigned int j = 0; j < phi_p.dofs_per_component; ++j) {
+            phi_p.submit_dof_value(Tensor<1, dim, VectorizedArray<Number>>(), j);
+            phi_m.submit_dof_value(Tensor<1, dim, VectorizedArray<Number>>(), j);
+          }
+          phi_p.submit_dof_value(tmp, i);
+          phi_p.evaluate(true, true);
+          phi_m.submit_dof_value(tmp, i);
+          phi_m.evaluate(true, true);
+
+          /*--- Loop over quadrature points to compute the integral ---*/
+          for(unsigned int q = 0; q < phi_p.n_q_points; ++q) {
+            const auto& n_plus               = phi_p.get_normal_vector(q);
+            const auto& avg_grad_u           = 0.5*(phi_p.get_gradient(q) + phi_m.get_gradient(q));
+            const auto& jump_u               = phi_p.get_value(q) - phi_m.get_value(q);
+            const auto& avg_tensor_product_u = 0.5*(outer_product(phi_p.get_value(q), phi_extr_p.get_value(q)) +
+                                                    outer_product(phi_m.get_value(q), phi_extr_m.get_value(q)));
+            const auto  lambda               = std::max(std::abs(scalar_product(phi_extr_p.get_value(q), n_plus)),
+                                                        std::abs(scalar_product(phi_extr_m.get_value(q), n_plus)));
+
+            phi_p.submit_value(a33/Re*(-avg_grad_u*n_plus + coef_jump*jump_u) +
+                               a33*avg_tensor_product_u*n_plus + 0.5*a33*lambda*jump_u, q);
+            phi_m.submit_value(-a33/Re*(-avg_grad_u*n_plus + coef_jump*jump_u) -
+                               a33*avg_tensor_product_u*n_plus - 0.5*a33*lambda*jump_u, q);
+            phi_p.submit_normal_derivative(-theta_v*0.5*a33/Re*jump_u, q);
+            phi_m.submit_normal_derivative(-theta_v*0.5*a33/Re*jump_u, q);
+          }
+          phi_p.integrate(true, true);
+          diagonal_p[i] = phi_p.get_dof_value(i);
+          phi_m.integrate(true, true);
+          diagonal_m[i] = phi_m.get_dof_value(i);
+        }
+        for(unsigned int i = 0; i < phi_p.dofs_per_component; ++i) {
+          phi_p.submit_dof_value(diagonal_p[i], i);
+          phi_m.submit_dof_value(diagonal_m[i], i);
+        }
+        phi_p.distribute_local_to_global(dst);
+        phi_m.distribute_local_to_global(dst);
+      }
+    }
+  }
+
+
+  // The following function assembles boundary term for the velocity
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_diagonal_boundary_term_velocity(const MatrixFree<dim, Number>&               data,
+                                           Vec&                                         dst,
+                                           const unsigned int&                          src,
+                                           const std::pair<unsigned int, unsigned int>& face_range) const {
+    if(TR_BDF2_stage == 1) {
+      FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, true, 0),
+                                                                       phi_old_extr(data, true, 0);
+
+      AlignedVector<Tensor<1, dim, VectorizedArray<Number>>> diagonal(phi.dofs_per_component);
+      Tensor<1, dim, VectorizedArray<Number>> tmp;
+      for(unsigned int d = 0; d < dim; ++d)
+        tmp[d] = make_vectorized_array<Number>(1.0);
+
+      /*--- Loop over all faces in the range ---*/
+      for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+        phi_old_extr.reinit(face);
+        phi_old_extr.gather_evaluate(u_extr, true, false);
+        phi.reinit(face);
+
+        const auto boundary_id = data.get_boundary_id(face);
+        const auto coef_jump   = C_u*std::abs((phi.get_normal_vector(0) * phi.inverse_jacobian(0))[dim - 1]);
+
+        if(boundary_id != 1) {
+          const double coef_trasp = 0.0;
+
+          /*--- Loop over all dofs ---*/
+          for(unsigned int i = 0; i < phi.dofs_per_component; ++i) {
+            for(unsigned int j = 0; j < phi.dofs_per_component; ++j)
+              phi.submit_dof_value(Tensor<1, dim, VectorizedArray<Number>>(), j);
+            phi.submit_dof_value(tmp, i);
+            phi.evaluate(true, true);
+
+            /*--- Loop over quadrature points to compute the integral ---*/
+            for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+              const auto& n_plus               = phi.get_normal_vector(q);
+              const auto& grad_u_int           = phi.get_gradient(q);
+              const auto& u_int                = phi.get_value(q);
+              const auto& tensor_product_u_int = outer_product(phi.get_value(q), phi_old_extr.get_value(q));
+              const auto& lambda               = std::abs(scalar_product(phi_old_extr.get_value(q), n_plus));
+
+              phi.submit_value(a22/Re*(-grad_u_int*n_plus + 2.0*coef_jump*u_int) +
+                               a22*coef_trasp*tensor_product_u_int*n_plus + a22*lambda*u_int, q);
+              phi.submit_normal_derivative(-theta_v*a22/Re*u_int, q);
+            }
+            phi.integrate(true, true);
+            diagonal[i] = phi.get_dof_value(i);
+          }
+          for(unsigned int i = 0; i < phi.dofs_per_component; ++i)
+            phi.submit_dof_value(diagonal[i], i);
+          phi.distribute_local_to_global(dst);
+        }
+        else {
+          /*--- Loop over all dofs ---*/
+          for(unsigned int i = 0; i < phi.dofs_per_component; ++i) {
+            for(unsigned int j = 0; j < phi.dofs_per_component; ++j)
+              phi.submit_dof_value(Tensor<1, dim, VectorizedArray<Number>>(), j);
+            phi.submit_dof_value(tmp, i);
+            phi.evaluate(true, true);
+
+            /*--- Loop over quadrature points to compute the integral ---*/
+            for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+              const auto& n_plus               = phi.get_normal_vector(q);
+              const auto& grad_u_int           = phi.get_gradient(q);
+              const auto& u_int                = phi.get_value(q);
+              const auto& lambda               = std::abs(scalar_product(phi_old_extr.get_value(q), n_plus));
+
+              const auto& point_vectorized     = phi.quadrature_point(q);
+              auto u_int_m                     = u_int;
+              auto grad_u_int_m                = grad_u_int;
+              for(unsigned int v = 0; v < VectorizedArray<Number>::size(); ++v) {
+                Point<dim> point;
+                for(unsigned int d = 0; d < dim; ++d)
+                  point[d] = point_vectorized[d][v];
+
+                u_int_m[1][v] = -u_int_m[1][v];
+
+                grad_u_int_m[0][0][v] = -grad_u_int_m[0][0][v];
+                grad_u_int_m[0][1][v] = -grad_u_int_m[0][1][v];
+              }
+
+              phi.submit_value(a22/Re*(-(0.5*(grad_u_int + grad_u_int_m))*n_plus + coef_jump*(u_int - u_int_m)) +
+                               a22*outer_product(0.5*(u_int + u_int_m), phi_old_extr.get_value(q))*n_plus +
+                               a22*0.5*lambda*(u_int - u_int_m), q);
+              phi.submit_normal_derivative(-theta_v*a22/Re*(u_int - u_int_m), q);
+            }
+            phi.integrate(true, true);
+            diagonal[i] = phi.get_dof_value(i);
+          }
+          for(unsigned int i = 0; i < phi.dofs_per_component; ++i)
+            phi.submit_dof_value(diagonal[i], i);
+          phi.distribute_local_to_global(dst);
+        }
+      }
+    }
+    else {
+      FEFaceEvaluation<dim, fe_degree_v, n_q_points_1d_v, dim, Number> phi(data, true, 0),
+                                                                       phi_extr(data, true, 0);
+
+      AlignedVector<Tensor<1, dim, VectorizedArray<Number>>> diagonal(phi.dofs_per_component);
+      Tensor<1, dim, VectorizedArray<Number>> tmp;
+      for(unsigned int d = 0; d < dim; ++d)
+        tmp[d] = make_vectorized_array<Number>(1.0);
+
+      /*--- Loop over all faces in the range ---*/
+      for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+        phi_extr.reinit(face);
+        phi_extr.gather_evaluate(u_extr, true, false);
+        phi.reinit(face);
+
+        const auto boundary_id = data.get_boundary_id(face);
+        const auto coef_jump   = C_u*std::abs((phi.get_normal_vector(0) * phi.inverse_jacobian(0))[dim - 1]);
+
+        if(boundary_id != 1) {
+          const double coef_trasp = 0.0;
+
+          /*--- Loop over all dofs ---*/
+          for(unsigned int i = 0; i < phi.dofs_per_component; ++i) {
+            for(unsigned int j = 0; j < phi.dofs_per_component; ++j)
+              phi.submit_dof_value(Tensor<1, dim, VectorizedArray<Number>>(), j);
+            phi.submit_dof_value(tmp, i);
+            phi.evaluate(true, true);
+
+            /*--- Loop over quadrature points to compute the integral ---*/
+            for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+              const auto& n_plus           = phi.get_normal_vector(q);
+              const auto& grad_u           = phi.get_gradient(q);
+              const auto& u                = phi.get_value(q);
+              const auto& tensor_product_u = outer_product(phi.get_value(q), phi_extr.get_value(q));
+              const auto& lambda           = std::abs(scalar_product(phi_extr.get_value(q), n_plus));
+
+              phi.submit_value(a33/Re*(-grad_u*n_plus + 2.0*coef_jump*u) +
+                               a33*coef_trasp*tensor_product_u*n_plus + a33*lambda*u, q);
+              phi.submit_normal_derivative(-theta_v*a33/Re*u, q);
+            }
+            phi.integrate(true, true);
+            diagonal[i] = phi.get_dof_value(i);
+          }
+          for(unsigned int i = 0; i < phi.dofs_per_component; ++i)
+            phi.submit_dof_value(diagonal[i], i);
+          phi.distribute_local_to_global(dst);
+        }
+        else {
+          /*--- Loop over all dofs ---*/
+          for(unsigned int i = 0; i < phi.dofs_per_component; ++i) {
+            for(unsigned int j = 0; j < phi.dofs_per_component; ++j)
+              phi.submit_dof_value(Tensor<1, dim, VectorizedArray<Number>>(), j);
+            phi.submit_dof_value(tmp, i);
+            phi.evaluate(true, true);
+
+            /*--- Loop over quadrature points to compute the integral ---*/
+            for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+              const auto& n_plus           = phi.get_normal_vector(q);
+              const auto& grad_u           = phi.get_gradient(q);
+              const auto& u                = phi.get_value(q);
+              const auto& lambda           = std::abs(scalar_product(phi_extr.get_value(q), n_plus));
+
+              const auto& point_vectorized = phi.quadrature_point(q);
+              auto u_m                     = u;
+              auto grad_u_m                = grad_u;
+              for(unsigned int v = 0; v < VectorizedArray<Number>::size(); ++v) {
+                Point<dim> point;
+                for(unsigned int d = 0; d < dim; ++d)
+                  point[d] = point_vectorized[d][v];
+
+                u_m[1][v] = -u_m[1][v];
+
+                grad_u_m[0][0][v] = -grad_u_m[0][0][v];
+                grad_u_m[0][1][v] = -grad_u_m[0][1][v];
+              }
+
+              phi.submit_value(a33/Re*(-(0.5*(grad_u + grad_u_m))*n_plus + coef_jump*(u - u_m)) +
+                               a33*outer_product(0.5*(u + u_m), phi_extr.get_value(q))*n_plus +
+                               a33*0.5*lambda*(u - u_m), q);
+              phi.submit_normal_derivative(-theta_v*a33/Re*(u - u_m), q);
+            }
+            phi.integrate(true, true);
+            diagonal[i] = phi.get_dof_value(i);
+          }
+          for(unsigned int i = 0; i < phi.dofs_per_component; ++i)
+            phi.submit_dof_value(diagonal[i], i);
+          phi.distribute_local_to_global(dst);
+        }
+      }
+    }
+  }
+
+
+  // Now we consider the pressure related bilinear forms. We first assemble diagonal cell term for the pressure
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_diagonal_cell_term_pressure(const MatrixFree<dim, Number>&               data,
+                                       Vec&                                         dst,
+                                       const unsigned int&                          src,
+                                       const std::pair<unsigned int, unsigned int>& cell_range) const {
+    FEEvaluation<dim, fe_degree_p, n_q_points_1d_p, 1, Number> phi(data, 1, 1);
+
+    AlignedVector<VectorizedArray<Number>> diagonal(phi.dofs_per_component); /*--- Here we are using dofs_per_component but
+                                                                                   it coincides with dofs_per_cell since it is
+                                                                                   scalar finite element space ---*/
+
+    const double coeff = (TR_BDF2_stage == 1) ? 1e6*gamma*dt*gamma*dt : 1e6*(1.0 - gamma)*dt*(1.0 - gamma)*dt;
+
+    /*--- Loop over all cells in the range ---*/
+    for(unsigned int cell = cell_range.first; cell < cell_range.second; ++cell) {
+      phi.reinit(cell);
+
+      /*--- Loop over all dofs ---*/
+      for(unsigned int i = 0; i < phi.dofs_per_component; ++i) {
+        for(unsigned int j = 0; j < phi.dofs_per_component; ++j)
+          phi.submit_dof_value(VectorizedArray<Number>(), j); /*--- We set all dofs to zero ---*/
+        phi.submit_dof_value(make_vectorized_array<Number>(1.0), i); /*--- Now we set the current one to 1; since it is scalar,
+                                                                           we can directly use 'make_vectorized_array' without
+                                                                           relying on 'Tensor' ---*/
+        phi.evaluate(true, true);
+
+        /*--- Loop over quadrature points ---*/
+        for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+          phi.submit_value(1.0/coeff*phi.get_value(q), q);
+          phi.submit_gradient(phi.get_gradient(q), q);
+        }
+        phi.integrate(true, true);
+        diagonal[i] = phi.get_dof_value(i);
+      }
+      for(unsigned int i = 0; i < phi.dofs_per_component; ++i)
+        phi.submit_dof_value(diagonal[i], i);
+
+      phi.distribute_local_to_global(dst);
+    }
+  }
+
+
+  // The following function assembles diagonal face term for the pressure
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_diagonal_face_term_pressure(const MatrixFree<dim, Number>&               data,
+                                       Vec&                                         dst,
+                                       const unsigned int&                          src,
+                                       const std::pair<unsigned int, unsigned int>& face_range) const {
+    FEFaceEvaluation<dim, fe_degree_p, n_q_points_1d_p, 1, Number> phi_p(data, true, 1, 1),
+                                                                   phi_m(data, false, 1, 1);
+
+    AssertDimension(phi_p.dofs_per_component, phi_m.dofs_per_component);
+    AlignedVector<VectorizedArray<Number>> diagonal_p(phi_p.dofs_per_component),
+                                           diagonal_m(phi_m.dofs_per_component); /*--- Again, we just assert for safety that dimension
+                                                                                       match, in the sense that we have selected
+                                                                                       the proper space ---*/
+
+    /*--- Loop over all faces ---*/
+    for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+      phi_p.reinit(face);
+      phi_m.reinit(face);
+
+      const auto coef_jump = C_p*0.5*(std::abs((phi_p.get_normal_vector(0)*phi_p.inverse_jacobian(0))[dim - 1]) +
+                                      std::abs((phi_m.get_normal_vector(0)*phi_m.inverse_jacobian(0))[dim - 1]));
+
+      /*--- Loop over all dofs ---*/
+      for(unsigned int i = 0; i < phi_p.dofs_per_component; ++i) {
+        for(unsigned int j = 0; j < phi_p.dofs_per_component; ++j) {
+          phi_p.submit_dof_value(VectorizedArray<Number>(), j);
+          phi_m.submit_dof_value(VectorizedArray<Number>(), j);
+        }
+        phi_p.submit_dof_value(make_vectorized_array<Number>(1.0), i);
+        phi_m.submit_dof_value(make_vectorized_array<Number>(1.0), i);
+        phi_p.evaluate(true, true);
+        phi_m.evaluate(true, true);
+
+        /*--- Loop over all quadrature points to compute the integral ---*/
+        for(unsigned int q = 0; q < phi_p.n_q_points; ++q) {
+          const auto& n_plus        = phi_p.get_normal_vector(q);
+
+          const auto& avg_grad_pres = 0.5*(phi_p.get_gradient(q) + phi_m.get_gradient(q));
+          const auto& jump_pres     = phi_p.get_value(q) - phi_m.get_value(q);
+
+          phi_p.submit_value(-scalar_product(avg_grad_pres, n_plus) + coef_jump*jump_pres, q);
+          phi_m.submit_value(scalar_product(avg_grad_pres, n_plus) - coef_jump*jump_pres, q);
+          phi_p.submit_gradient(-theta_p*0.5*jump_pres*n_plus, q);
+          phi_m.submit_gradient(-theta_p*0.5*jump_pres*n_plus, q);
+        }
+        phi_p.integrate(true, true);
+        diagonal_p[i] = phi_p.get_dof_value(i);
+        phi_m.integrate(true, true);
+        diagonal_m[i] = phi_m.get_dof_value(i);
+      }
+      for(unsigned int i = 0; i < phi_p.dofs_per_component; ++i) {
+        phi_p.submit_dof_value(diagonal_p[i], i);
+        phi_m.submit_dof_value(diagonal_m[i], i);
+      }
+      phi_p.distribute_local_to_global(dst);
+      phi_m.distribute_local_to_global(dst);
+    }
+  }
+
+
+  // Eventually, we assemble diagonal boundary term for the pressure
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  assemble_diagonal_boundary_term_pressure(const MatrixFree<dim, Number>&               data,
+                                           Vec&                                         dst,
+                                           const unsigned int&                          src,
+                                           const std::pair<unsigned int, unsigned int>& face_range) const {
+    FEFaceEvaluation<dim, fe_degree_p, n_q_points_1d_p, 1, Number> phi(data, true, 1, 1);
+
+    AlignedVector<VectorizedArray<Number>> diagonal(phi.dofs_per_component);
+
+    for(unsigned int face = face_range.first; face < face_range.second; ++face) {
+      phi.reinit(face);
+
+      const auto coef_jump = C_p*std::abs((phi.get_normal_vector(0)*phi.inverse_jacobian(0))[dim - 1]);
+
+      const auto boundary_id = data.get_boundary_id(face);
+
+      if(boundary_id == 1) {
+        for(unsigned int i = 0; i < phi.dofs_per_component; ++i) {
+          for(unsigned int j = 0; j < phi.dofs_per_component; ++j)
+            phi.submit_dof_value(VectorizedArray<Number>(), j);
+          phi.submit_dof_value(make_vectorized_array<Number>(1.0), i);
+          phi.evaluate(true, true);
+
+          for(unsigned int q = 0; q < phi.n_q_points; ++q) {
+            const auto& n_plus    = phi.get_normal_vector(q);
+
+            const auto& grad_pres = phi.get_gradient(q);
+            const auto& pres      = phi.get_value(q);
+
+            phi.submit_value(-scalar_product(grad_pres, n_plus) + 2.0*coef_jump*pres , q);
+            phi.submit_normal_derivative(-theta_p*pres, q);
+          }
+          phi.integrate(true, true);
+          diagonal[i] = phi.get_dof_value(i);
+        }
+        for(unsigned int i = 0; i < phi.dofs_per_component; ++i)
+          phi.submit_dof_value(diagonal[i], i);
+        phi.distribute_local_to_global(dst);
+      }
+    }
+  }
+
+
+  // Put together all previous steps. We create a dummy auxliary vector that serves for the src input argument in
+  // the previous functions that as we have seen before is unused. Then everything is done by the 'loop' function
+  // and it is saved in the field 'inverse_diagonal_entries' already present in the base class. Anyway since there is
+  // only one field, we need to resize properly depending on whether we are considering the velocity or the pressure.
+  //
+  template<int dim, int fe_degree_p, int fe_degree_v, int n_q_points_1d_p, int n_q_points_1d_v, typename Vec, typename Number>
+  void NavierStokesProjectionOperator<dim, fe_degree_p, fe_degree_v, n_q_points_1d_p, n_q_points_1d_v, Vec, Number>::
+  compute_diagonal() {
+    Assert(NS_stage == 1 || NS_stage == 2, ExcInternalError());
+    if(NS_stage == 1) {
+      this->inverse_diagonal_entries.reset(new DiagonalMatrix<Vec>());
+      auto& inverse_diagonal = this->inverse_diagonal_entries->get_vector();
+      this->data->initialize_dof_vector(inverse_diagonal, 0);
+      const unsigned int dummy = 0;
+
+      this->data->loop(&NavierStokesProjectionOperator::assemble_diagonal_cell_term_velocity,
+                       &NavierStokesProjectionOperator::assemble_diagonal_face_term_velocity,
+                       &NavierStokesProjectionOperator::assemble_diagonal_boundary_term_velocity,
+                       this, inverse_diagonal, dummy, false,
+                       MatrixFree<dim, Number>::DataAccessOnFaces::unspecified,
+                       MatrixFree<dim, Number>::DataAccessOnFaces::unspecified);
+
+      for(unsigned int i = 0; i < inverse_diagonal.local_size(); ++i) {
+        Assert(inverse_diagonal.local_element(i) != 0.0,
+               ExcMessage("No diagonal entry in a definite operator should be zero"));
+        inverse_diagonal.local_element(i) = 1.0/inverse_diagonal.local_element(i);
+      }
+    }
+    else if(NS_stage == 2) {
+      this->inverse_diagonal_entries.reset(new DiagonalMatrix<Vec>());
+      auto& inverse_diagonal = this->inverse_diagonal_entries->get_vector();
+      this->data->initialize_dof_vector(inverse_diagonal, 1);
+      const unsigned int dummy = 0;
+
+      this->data->loop(&NavierStokesProjectionOperator::assemble_diagonal_cell_term_pressure,
+                       &NavierStokesProjectionOperator::assemble_diagonal_face_term_pressure,
+                       &NavierStokesProjectionOperator::assemble_diagonal_boundary_term_pressure,
+                       this, inverse_diagonal, dummy, false,
+                       MatrixFree<dim, Number>::DataAccessOnFaces::unspecified,
+                       MatrixFree<dim, Number>::DataAccessOnFaces::unspecified);
+
+      for(unsigned int i = 0; i < inverse_diagonal.local_size(); ++i) {
+        Assert(inverse_diagonal.local_element(i) != 0.0,
+               ExcMessage("No diagonal entry in a definite operator should be zero"));
+        inverse_diagonal.local_element(i) = 1.0/inverse_diagonal.local_element(i);
+      }
+    }
+  }
+
+
+  // @sect{The <code>NavierStokesProjection</code> class}
+
+  // Now we are ready for the main class of the program. It implements the calls to the various steps
+  // of the projection method for Navier-Stokes equations.
+  //
+  template<int dim>
+  class NavierStokesProjection {
+  public:
+    NavierStokesProjection(RunTimeParameters::Data_Storage& data);
+
+    void run(const bool verbose = false, const unsigned int output_interval = 10);
+
+  protected:
+    const double t_0;
+    const double T;
+    const double gamma;         //--- TR-BDF2 parameter
+    unsigned int TR_BDF2_stage; //--- Flag to check at which current stage of TR-BDF2 are
+    const double Re;
+    double       dt;
+
+    EquationData::Velocity<dim> vel_init;
+    EquationData::Pressure<dim> pres_init; /*--- Instance of 'Velocity' and 'Pressure' classes to initialize. ---*/
+
+    parallel::distributed::Triangulation<dim> triangulation;
+
+    /*--- Finite Element spaces ---*/
+    FESystem<dim> fe_velocity;
+    FESystem<dim> fe_pressure;
+
+    /*--- Handler for dofs ---*/
+    DoFHandler<dim> dof_handler_velocity;
+    DoFHandler<dim> dof_handler_pressure;
+
+    /*--- Quadrature formulas for velocity and pressure, respectively ---*/
+    QGauss<dim> quadrature_pressure;
+    QGauss<dim> quadrature_velocity;
+
+    /*--- Now we define all the vectors for the solution. We start from the pressure
+          with p^n, p^(n+gamma) and a vector for rhs ---*/
+    LinearAlgebra::distributed::Vector<double> pres_n;
+    LinearAlgebra::distributed::Vector<double> pres_int;
+    LinearAlgebra::distributed::Vector<double> rhs_p;
+
+    /*--- Next, we move to the velocity, with u^n, u^(n-1), u^(n+gamma/2),
+          u^(n+gamma) and other two auxiliary vectors as well as the rhs ---*/
+    LinearAlgebra::distributed::Vector<double> u_n;
+    LinearAlgebra::distributed::Vector<double> u_n_minus_1;
+    LinearAlgebra::distributed::Vector<double> u_extr;
+    LinearAlgebra::distributed::Vector<double> u_n_gamma;
+    LinearAlgebra::distributed::Vector<double> u_star;
+    LinearAlgebra::distributed::Vector<double> u_tmp;
+    LinearAlgebra::distributed::Vector<double> rhs_u;
+    LinearAlgebra::distributed::Vector<double> grad_pres_int;
+
+    Vector<double> Linfty_error_per_cell_vel;
+
+    DeclException2(ExcInvalidTimeStep,
+                   double,
+                   double,
+                   << " The time step " << arg1 << " is out of range."
+                   << std::endl
+                   << " The permitted range is (0," << arg2 << "]");
+
+    void create_triangulation(const unsigned int n_refines);
+
+    void setup_dofs();
+
+    void initialize();
+
+    void interpolate_velocity();
+
+    void diffusion_step();
+
+    void projection_step();
+
+    void project_grad(const unsigned int flag);
+
+    double get_maximal_velocity();
+
+    double get_maximal_difference();
+
+    void output_results(const unsigned int step);
+
+    void refine_mesh();
+
+    void interpolate_max_res(const unsigned int level);
+
+    void save_max_res();
+
+  private:
+    void compute_lift_and_drag();
+
+    /*--- Technical member to handle the various steps ---*/
+    std::shared_ptr<MatrixFree<dim, double>> matrix_free_storage;
+
+    /*--- Now we need an instance of the class implemented before with the weak form ---*/
+    NavierStokesProjectionOperator<dim, EquationData::degree_p, EquationData::degree_p + 1,
+                                   EquationData::degree_p + 1, EquationData::degree_p + 2,
+                                   LinearAlgebra::distributed::Vector<double>, double> navier_stokes_matrix;
+
+    /*--- This is an instance for geometric multigrid preconditioner ---*/
+    MGLevelObject<NavierStokesProjectionOperator<dim, EquationData::degree_p, EquationData::degree_p + 1,
+                                                 EquationData::degree_p + 1, EquationData::degree_p + 2,
+                                                 LinearAlgebra::distributed::Vector<float>, float>> mg_matrices;
+
+    /*--- Here we define two 'AffineConstraints' instance, one for each finite element space.
+          This is just a technical issue, due to MatrixFree requirements. In general
+          this class is used to impose boundary conditions (or any kind of constraints), but in this case, since
+          we are using a weak imposition of bcs, everything is already in the weak forms and so these instances
+          will be default constructed ---*/
+    AffineConstraints<double> constraints_velocity,
+                              constraints_pressure;
+
+    /*--- Now a bunch of variables handled by 'ParamHandler' introduced at the beginning of the code ---*/
+    unsigned int max_its;
+    double       eps;
+
+    unsigned int max_loc_refinements;
+    unsigned int min_loc_refinements;
+    unsigned int refinement_iterations;
+
+    std::string saving_dir;
+
+    /*--- Finally, some output related streams ---*/
+    ConditionalOStream pcout;
+
+    std::ofstream      time_out;
+    ConditionalOStream ptime_out;
+    TimerOutput        time_table;
+
+    std::ofstream output_n_dofs_velocity;
+    std::ofstream output_n_dofs_pressure;
+
+    std::ofstream output_lift;
+    std::ofstream output_drag;
+  };
+
+
+  // In the constructor, we just read all the data from the
+  // <code>Data_Storage</code> object that is passed as an argument, verify that
+  // the data we read are reasonable and, finally, create the triangulation and
+  // load the initial data.
+  //
+  template<int dim>
+  NavierStokesProjection<dim>::NavierStokesProjection(RunTimeParameters::Data_Storage& data):
+    t_0(data.initial_time),
+    T(data.final_time),
+    gamma(2.0 - std::sqrt(2.0)),  //--- Save also in the NavierStokes class the TR-BDF2 parameter value
+    TR_BDF2_stage(1),             //--- Initialize the flag for the TR_BDF2 stage
+    Re(data.Reynolds),
+    dt(data.dt),
+    vel_init(data.initial_time),
+    pres_init(data.initial_time),
+    triangulation(MPI_COMM_WORLD, parallel::distributed::Triangulation<dim>::limit_level_difference_at_vertices,
+                  parallel::distributed::Triangulation<dim>::construct_multigrid_hierarchy),
+    fe_velocity(FE_DGQ<dim>(EquationData::degree_p + 1), dim),
+    fe_pressure(FE_DGQ<dim>(EquationData::degree_p), 1),
+    dof_handler_velocity(triangulation),
+    dof_handler_pressure(triangulation),
+    quadrature_pressure(EquationData::degree_p + 1),
+    quadrature_velocity(EquationData::degree_p + 2),
+    navier_stokes_matrix(data),
+    max_its(data.max_iterations),
+    eps(data.eps),
+    max_loc_refinements(data.max_loc_refinements),
+    min_loc_refinements(data.min_loc_refinements),
+    refinement_iterations(data.refinement_iterations),
+    saving_dir(data.dir),
+    pcout(std::cout, Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0),
+    time_out("./" + data.dir + "/time_analysis_" +
+             Utilities::int_to_string(Utilities::MPI::n_mpi_processes(MPI_COMM_WORLD)) + "proc.dat"),
+    ptime_out(time_out, Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0),
+    time_table(ptime_out, TimerOutput::summary, TimerOutput::cpu_and_wall_times),
+    output_n_dofs_velocity("./" + data.dir + "/n_dofs_velocity.dat", std::ofstream::out),
+    output_n_dofs_pressure("./" + data.dir + "/n_dofs_pressure.dat", std::ofstream::out),
+    output_lift("./" + data.dir + "/lift.dat", std::ofstream::out),
+    output_drag("./" + data.dir + "/drag.dat", std::ofstream::out) {
+      if(EquationData::degree_p < 1) {
+        pcout
+        << " WARNING: The chosen pair of finite element spaces is not stable."
+        << std::endl
+        << " The obtained results will be nonsense" << std::endl;
+      }
+
+      AssertThrow(!((dt <= 0.0) || (dt > 0.5*T)), ExcInvalidTimeStep(dt, 0.5*T));
+
+      matrix_free_storage = std::make_shared<MatrixFree<dim, double>>();
+
+      create_triangulation(data.n_refines);
+      setup_dofs();
+      initialize();
+  }
+
+
+  // The method that creates the triangulation and refines it the needed number
+  // of times.
+  //
+  template<int dim>
+  void NavierStokesProjection<dim>::create_triangulation(const unsigned int n_refines) {
+    TimerOutput::Scope t(time_table, "Create triangulation");
+
+    GridGenerator::plate_with_a_hole(triangulation, 0.5, 1.0, 1.0, 1.1, 1.0, 19.0, Point<2>(2.0, 2.0), 0, 1, 1.0, 2, true);
+    /*--- We strongly advice to check the documentation to verify the meaning of all input parameters. ---*/
+
+    pcout << "Number of refines = " << n_refines << std::endl;
+    triangulation.refine_global(n_refines);
+  }
+
+
+  // After creating the triangulation, it creates the mesh dependent
+  // data, i.e. it distributes degrees of freedom, and
+  // initializes the vectors that we will use.
+  //
+  template<int dim>
+  void NavierStokesProjection<dim>::setup_dofs() {
+    pcout << "Number of active cells: " << triangulation.n_global_active_cells() << std::endl;
+    pcout << "Number of levels: "       << triangulation.n_global_levels()       << std::endl;
+
+    /*--- Distribute dofs and prepare for multigrid ---*/
+    dof_handler_velocity.distribute_dofs(fe_velocity);
+    dof_handler_pressure.distribute_dofs(fe_pressure);
+
+    pcout << "dim (X_h) = " << dof_handler_velocity.n_dofs()
+          << std::endl
+          << "dim (M_h) = " << dof_handler_pressure.n_dofs()
+          << std::endl
+          << "Re        = " << Re << std::endl
+          << std::endl;
+
+    if(Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0) {
+      output_n_dofs_velocity << dof_handler_velocity.n_dofs() << std::endl;
+      output_n_dofs_pressure << dof_handler_pressure.n_dofs() << std::endl;
+    }
+
+    typename MatrixFree<dim, double>::AdditionalData additional_data;
+    additional_data.mapping_update_flags                = (update_gradients | update_JxW_values |
+                                                           update_quadrature_points | update_values);
+    additional_data.mapping_update_flags_inner_faces    = (update_gradients | update_JxW_values | update_quadrature_points |
+                                                           update_normal_vectors | update_values);
+    additional_data.mapping_update_flags_boundary_faces = (update_gradients | update_JxW_values | update_quadrature_points |
+                                                           update_normal_vectors | update_values);
+    additional_data.tasks_parallel_scheme               = MatrixFree<dim, double>::AdditionalData::none;
+
+    std::vector<const DoFHandler<dim>*> dof_handlers; /*--- Vector of dof_handlers to feed the 'MatrixFree'. Here the order
+                                                            counts and enters into the game as parameter of FEEvaluation and
+                                                            FEFaceEvaluation in the previous class ---*/
+    dof_handlers.push_back(&dof_handler_velocity);
+    dof_handlers.push_back(&dof_handler_pressure);
+
+    constraints_velocity.clear();
+    constraints_velocity.close();
+    constraints_pressure.clear();
+    constraints_pressure.close();
+    std::vector<const AffineConstraints<double>*> constraints;
+    constraints.push_back(&constraints_velocity);
+    constraints.push_back(&constraints_pressure);
+
+    std::vector<QGauss<1>> quadratures; /*--- We cannot directly use 'quadrature_velocity' and 'quadrature_pressure',
+                                              because the 'MatrixFree' structure wants a quadrature formula for 1D
+                                              (this is way the template parameter of the previous class was called 'n_q_points_1d_p'
+                                               and 'n_q_points_1d_v' and the reason of '1' as QGauss template parameter). ---*/
+    quadratures.push_back(QGauss<1>(EquationData::degree_p + 2));
+    quadratures.push_back(QGauss<1>(EquationData::degree_p + 1));
+
+    /*--- Initialize the matrix-free structure and size properly the vectors. Here again the
+          second input argument of the 'initialize_dof_vector' method depends on the order of 'dof_handlers' ---*/
+    matrix_free_storage->reinit(dof_handlers, constraints, quadratures, additional_data);
+    matrix_free_storage->initialize_dof_vector(u_star, 0);
+    matrix_free_storage->initialize_dof_vector(rhs_u, 0);
+    matrix_free_storage->initialize_dof_vector(u_n, 0);
+    matrix_free_storage->initialize_dof_vector(u_extr, 0);
+    matrix_free_storage->initialize_dof_vector(u_n_minus_1, 0);
+    matrix_free_storage->initialize_dof_vector(u_n_gamma, 0);
+    matrix_free_storage->initialize_dof_vector(u_tmp, 0);
+    matrix_free_storage->initialize_dof_vector(grad_pres_int, 0);
+
+    matrix_free_storage->initialize_dof_vector(pres_int, 1);
+    matrix_free_storage->initialize_dof_vector(pres_n, 1);
+    matrix_free_storage->initialize_dof_vector(rhs_p, 1);
+
+    /*--- Initialize the multigrid structure. We dedicate ad hoc 'dof_handlers_mg' and 'constraints_mg' because
+          we use float as type. Moreover we can initialize already with the index of the finite element of the pressure;
+          anyway we need by requirement to declare also structures for the velocity for coherence (basically because
+          the index of finite element space has to be the same, so the pressure has to be the second).---*/
+    mg_matrices.clear_elements();
+    dof_handler_velocity.distribute_mg_dofs();
+    dof_handler_pressure.distribute_mg_dofs();
+
+    const unsigned int nlevels = triangulation.n_global_levels();
+    mg_matrices.resize(0, nlevels - 1);
+    for(unsigned int level = 0; level < nlevels; ++level) {
+      typename MatrixFree<dim, float>::AdditionalData additional_data_mg;
+      additional_data_mg.tasks_parallel_scheme               = MatrixFree<dim, float>::AdditionalData::none;
+      additional_data_mg.mapping_update_flags                = (update_gradients | update_JxW_values);
+      additional_data_mg.mapping_update_flags_inner_faces    = (update_gradients | update_JxW_values);
+      additional_data_mg.mapping_update_flags_boundary_faces = (update_gradients | update_JxW_values);
+      additional_data_mg.mg_level = level;
+
+      std::vector<const DoFHandler<dim>*> dof_handlers_mg;
+      dof_handlers_mg.push_back(&dof_handler_velocity);
+      dof_handlers_mg.push_back(&dof_handler_pressure);
+      std::vector<const AffineConstraints<float>*> constraints_mg;
+      AffineConstraints<float> constraints_velocity_mg;
+      constraints_velocity_mg.clear();
+      constraints_velocity_mg.close();
+      constraints_mg.push_back(&constraints_velocity_mg);
+      AffineConstraints<float> constraints_pressure_mg;
+      constraints_pressure_mg.clear();
+      constraints_pressure_mg.close();
+      constraints_mg.push_back(&constraints_pressure_mg);
+
+      std::shared_ptr<MatrixFree<dim, float>> mg_mf_storage_level(new MatrixFree<dim, float>());
+      mg_mf_storage_level->reinit(dof_handlers_mg, constraints_mg, quadratures, additional_data_mg);
+      const std::vector<unsigned int> tmp = {1};
+      mg_matrices[level].initialize(mg_mf_storage_level, tmp, tmp);
+      mg_matrices[level].set_dt(dt);
+      mg_matrices[level].set_NS_stage(2);
+    }
+
+    Linfty_error_per_cell_vel.reinit(triangulation.n_active_cells());
+  }
+
+
+  // This method loads the initial data. It simply uses the class <code>Pressure</code> instance for the pressure
+  // and the class <code>Velocity</code> instance for the velocity.
+  //
+  template<int dim>
+  void NavierStokesProjection<dim>::initialize() {
+    TimerOutput::Scope t(time_table, "Initialize pressure and velocity");
+
+    VectorTools::interpolate(dof_handler_pressure, pres_init, pres_n);
+
+    VectorTools::interpolate(dof_handler_velocity, vel_init, u_n_minus_1);
+    VectorTools::interpolate(dof_handler_velocity, vel_init, u_n);
+  }
+
+
+  // This function computes the extrapolated velocity to be used in the momentum predictor
+  //
+  template<int dim>
+  void NavierStokesProjection<dim>::interpolate_velocity() {
+    TimerOutput::Scope t(time_table, "Interpolate velocity");
+
+    //--- TR-BDF2 first step
+    if(TR_BDF2_stage == 1) {
+      u_extr.equ(1.0 + gamma/(2.0*(1.0 - gamma)), u_n);
+      u_tmp.equ(gamma/(2.0*(1.0 - gamma)), u_n_minus_1);
+      u_extr -= u_tmp;
+    }
+    //--- TR-BDF2 second step
+    else {
+      u_extr.equ(1.0 + (1.0 - gamma)/gamma, u_n_gamma);
+      u_tmp.equ((1.0 - gamma)/gamma, u_n);
+      u_extr -= u_tmp;
+    }
+  }
+
+
+  // We are finally ready to solve the diffusion step.
+  //
+  template<int dim>
+  void NavierStokesProjection<dim>::diffusion_step() {
+    TimerOutput::Scope t(time_table, "Diffusion step");
+
+    /*--- We first speicify that we want to deal with velocity dof_handler (index 0, since it is the first one
+          in the 'dof_handlers' vector) ---*/
+    const std::vector<unsigned int> tmp = {0};
+    navier_stokes_matrix.initialize(matrix_free_storage, tmp, tmp);
+
+    /*--- Next, we specify at we are at stage 1, namely the diffusion step ---*/
+    navier_stokes_matrix.set_NS_stage(1);
+
+    /*--- Now, we compute the right-hand side and we set the convective velocity. The necessity of 'set_u_extr' is
+          that this quantity is required in the bilinear forms and we can't use a vector of src like on the right-hand side,
+          so it has to be available ---*/
+    if(TR_BDF2_stage == 1) {
+      navier_stokes_matrix.vmult_rhs_velocity(rhs_u, {u_n, u_extr, pres_n});
+      navier_stokes_matrix.set_u_extr(u_extr);
+      u_star = u_extr;
+    }
+    else {
+      navier_stokes_matrix.vmult_rhs_velocity(rhs_u, {u_n, u_n_gamma, pres_int, u_extr});
+      navier_stokes_matrix.set_u_extr(u_extr);
+      u_star = u_extr;
+    }
+
+    /*--- Build the linear solver; in this case we specifiy the maximum number of iterations and residual ---*/
+    SolverControl solver_control(max_its, eps*rhs_u.l2_norm());
+    SolverGMRES<LinearAlgebra::distributed::Vector<double>> gmres(solver_control);
+
+    /*--- Build a Jacobi preconditioner and solve ---*/
+    PreconditionJacobi<NavierStokesProjectionOperator<dim,
+                                                      EquationData::degree_p,
+                                                      EquationData::degree_p + 1,
+                                                      EquationData::degree_p + 1,
+                                                      EquationData::degree_p + 2,
+                                                      LinearAlgebra::distributed::Vector<double>,
+                                                      double>> preconditioner;
+    navier_stokes_matrix.compute_diagonal();
+    preconditioner.initialize(navier_stokes_matrix);
+
+    gmres.solve(navier_stokes_matrix, u_star, rhs_u, preconditioner);
+  }
+
+
+  // Next, we solve the projection step.
+  //
+  template<int dim>
+  void NavierStokesProjection<dim>::projection_step() {
+    TimerOutput::Scope t(time_table, "Projection step pressure");
+
+    /*--- We start in the same way of 'diffusion_step': we first reinitialize with the index of FE space,
+          we specify that this is the second stage and we compute the right-hand side ---*/
+    const std::vector<unsigned int> tmp = {1};
+    navier_stokes_matrix.initialize(matrix_free_storage, tmp, tmp);
+
+    navier_stokes_matrix.set_NS_stage(2);
+
+    if(TR_BDF2_stage == 1)
+      navier_stokes_matrix.vmult_rhs_pressure(rhs_p, {u_star, pres_n});
+    else
+      navier_stokes_matrix.vmult_rhs_pressure(rhs_p, {u_star, pres_int});
+
+    /*--- Build the linear solver (Conjugate Gradient in this case) ---*/
+    SolverControl solver_control(max_its, eps*rhs_p.l2_norm());
+    SolverCG<LinearAlgebra::distributed::Vector<double>> cg(solver_control);
+
+    /*--- Build the preconditioner (as in step-37) ---*/
+    MGTransferMatrixFree<dim, float> mg_transfer;
+    mg_transfer.build(dof_handler_pressure);
+
+    using SmootherType = PreconditionChebyshev<NavierStokesProjectionOperator<dim,
+                                                                              EquationData::degree_p,
+                                                                              EquationData::degree_p + 1,
+                                                                              EquationData::degree_p + 1,
+                                                                              EquationData::degree_p + 2,
+                                                                              LinearAlgebra::distributed::Vector<float>,
+                                                                              float>,
+                                               LinearAlgebra::distributed::Vector<float>>;
+    mg::SmootherRelaxation<SmootherType, LinearAlgebra::distributed::Vector<float>> mg_smoother;
+    MGLevelObject<typename SmootherType::AdditionalData> smoother_data;
+    smoother_data.resize(0, triangulation.n_global_levels() - 1);
+    for(unsigned int level = 0; level < triangulation.n_global_levels(); ++level) {
+      if(level > 0) {
+        smoother_data[level].smoothing_range     = 15.0;
+        smoother_data[level].degree              = 3;
+        smoother_data[level].eig_cg_n_iterations = 10;
+      }
+      else {
+        smoother_data[0].smoothing_range     = 2e-2;
+        smoother_data[0].degree              = numbers::invalid_unsigned_int;
+        smoother_data[0].eig_cg_n_iterations = mg_matrices[0].m();
+      }
+      mg_matrices[level].compute_diagonal();
+      smoother_data[level].preconditioner = mg_matrices[level].get_matrix_diagonal_inverse();
+    }
+    mg_smoother.initialize(mg_matrices, smoother_data);
+
+    PreconditionIdentity                                identity;
+    SolverCG<LinearAlgebra::distributed::Vector<float>> cg_mg(solver_control);
+    MGCoarseGridIterativeSolver<LinearAlgebra::distributed::Vector<float>,
+                                SolverCG<LinearAlgebra::distributed::Vector<float>>,
+                                NavierStokesProjectionOperator<dim,
+                                                               EquationData::degree_p,
+                                                               EquationData::degree_p + 1,
+                                                               EquationData::degree_p + 1,
+                                                               EquationData::degree_p + 2,
+                                                               LinearAlgebra::distributed::Vector<float>,
+                                                               float>,
+                                PreconditionIdentity> mg_coarse(cg_mg, mg_matrices[0], identity);
+
+    mg::Matrix<LinearAlgebra::distributed::Vector<float>> mg_matrix(mg_matrices);
+
+    Multigrid<LinearAlgebra::distributed::Vector<float>> mg(mg_matrix, mg_coarse, mg_transfer, mg_smoother, mg_smoother);
+
+    PreconditionMG<dim,
+                   LinearAlgebra::distributed::Vector<float>,
+                   MGTransferMatrixFree<dim, float>> preconditioner(dof_handler_pressure, mg, mg_transfer);
+
+    /*--- Solve the linear system ---*/
+    if(TR_BDF2_stage == 1) {
+      pres_int = pres_n;
+      cg.solve(navier_stokes_matrix, pres_int, rhs_p, preconditioner);
+    }
+    else {
+      pres_n = pres_int;
+      cg.solve(navier_stokes_matrix, pres_n, rhs_p, preconditioner);
+    }
+  }
+
+
+  // This implements the projection step for the gradient of pressure
+  //
+  template<int dim>
+  void NavierStokesProjection<dim>::project_grad(const unsigned int flag) {
+    TimerOutput::Scope t(time_table, "Gradient of pressure projection");
+
+    /*--- The input parameter flag is used just to specify where we want to save the result ---*/
+    AssertIndexRange(flag, 3);
+    Assert(flag > 0, ExcInternalError());
+
+    /*--- We need to select the dof handler related to the velocity since the result lives there ---*/
+    const std::vector<unsigned int> tmp = {0};
+    navier_stokes_matrix.initialize(matrix_free_storage, tmp, tmp);
+
+    if(flag == 1)
+      navier_stokes_matrix.vmult_grad_p_projection(rhs_u, pres_n);
+    else if(flag == 2)
+      navier_stokes_matrix.vmult_grad_p_projection(rhs_u, pres_int);
+
+    /*--- We conventionally decide that the this corresponds to third stage ---*/
+    navier_stokes_matrix.set_NS_stage(3);
+
+    /*--- Solve the system ---*/
+    SolverControl solver_control(max_its, 1e-12*rhs_u.l2_norm());
+    SolverCG<LinearAlgebra::distributed::Vector<double>> cg(solver_control);
+    cg.solve(navier_stokes_matrix, u_tmp, rhs_u, PreconditionIdentity());
+  }
+
+
+  // The following function is used in determining the maximal velocity
+  // in order to compute the Courant number.
+  //
+  template<int dim>
+  double NavierStokesProjection<dim>::get_maximal_velocity() {
+    VectorTools::integrate_difference(dof_handler_velocity, u_n, ZeroFunction<dim>(dim),
+                                      Linfty_error_per_cell_vel, quadrature_velocity, VectorTools::Linfty_norm);
+    const double res = VectorTools::compute_global_error(triangulation, Linfty_error_per_cell_vel, VectorTools::Linfty_norm);
+
+    return res;
+  }
+
+
+  // The following function is used in determining the maximal nodal difference
+  // in order to see if we have reched steady-state. We simply use integrate_difference testing
+  // u_n - u_n_minus_1 against the zero function.
+  //
+  template<int dim>
+  double NavierStokesProjection<dim>::get_maximal_difference() {
+    u_tmp = u_n;
+    u_tmp -= u_n_minus_1;
+
+    VectorTools::integrate_difference(dof_handler_velocity, u_tmp, ZeroFunction<dim>(dim),
+                                      Linfty_error_per_cell_vel, quadrature_velocity, VectorTools::Linfty_norm);
+    const double res = VectorTools::compute_global_error(triangulation, Linfty_error_per_cell_vel, VectorTools::Linfty_norm);
+    pcout << "Maximum nodal difference = " << res <<std::endl;
+
+    return res;
+  }
+
+
+  // This method plots the current solution. The main difficulty is that we want
+  // to create a single output file that contains the data for all velocity
+  // components and the pressure. On the other hand, velocities and the pressure
+  // live on separate DoFHandler objects, so we need to pay attention when we use
+  // 'add_data_vector' to select the proper space.
+  //
+  template<int dim>
+  void NavierStokesProjection<dim>::output_results(const unsigned int step) {
+    TimerOutput::Scope t(time_table, "Output results");
+
+    DataOut<dim> data_out;
+
+    std::vector<std::string> velocity_names(dim, "v");
+    std::vector<DataComponentInterpretation::DataComponentInterpretation>
+    component_interpretation_velocity(dim, DataComponentInterpretation::component_is_part_of_vector);
+    u_n.update_ghost_values();
+    data_out.add_data_vector(dof_handler_velocity, u_n, velocity_names, component_interpretation_velocity);
+    pres_n.update_ghost_values();
+    data_out.add_data_vector(dof_handler_pressure, pres_n, "p", {DataComponentInterpretation::component_is_scalar});
+
+    std::vector<std::string> velocity_names_old(dim, "v_old");
+    u_n_minus_1.update_ghost_values();
+    data_out.add_data_vector(dof_handler_velocity, u_n_minus_1, velocity_names_old, component_interpretation_velocity);
+
+    /*--- Here we rely on the postprocessor we have built ---*/
+    PostprocessorVorticity<dim> postprocessor;
+    data_out.add_data_vector(dof_handler_velocity, u_n, postprocessor);
+
+    data_out.build_patches(MappingQ1<dim>(), 1, DataOut<dim>::curved_inner_cells);
+
+    const std::string output = "./" + saving_dir + "/solution-" + Utilities::int_to_string(step, 5) + ".vtu";
+    data_out.write_vtu_in_parallel(output, MPI_COMM_WORLD);
+  }
+
+
+  // @sect{<code>NavierStokesProjection::compute_lift_and_drag</code>}
+
+  // This routine computes the lift and the drag forces in a non-dimensional framework
+  // (so basically for the classical coefficients, it is necessary to multiply by a factor 2).
+  //
+  template<int dim>
+  void NavierStokesProjection<dim>::compute_lift_and_drag() {
+    QGauss<dim - 1> face_quadrature_formula(EquationData::degree_p + 2);
+    const int n_q_points = face_quadrature_formula.size();
+
+    std::vector<double>                      pressure_values(n_q_points);
+    std::vector<std::vector<Tensor<1, dim>>> velocity_gradients(n_q_points, std::vector<Tensor<1, dim>>(dim));
+
+    Tensor<1, dim> normal_vector;
+    Tensor<2, dim> fluid_stress;
+    Tensor<2, dim> fluid_pressure;
+    Tensor<1, dim> forces;
+
+    /*--- We need to compute the integral over the cylinder boundary, so we need to use 'FEFaceValues' instances.
+          For the velocity we need the gradients, for the pressure the values. ---*/
+    FEFaceValues<dim> fe_face_values_velocity(fe_velocity, face_quadrature_formula,
+                                              update_quadrature_points | update_gradients |
+                                              update_JxW_values | update_normal_vectors);
+    FEFaceValues<dim> fe_face_values_pressure(fe_pressure, face_quadrature_formula, update_values);
+
+    double local_drag = 0.0;
+    double local_lift = 0.0;
+
+    /*--- We need to perform a unique loop because the whole stress tensor takes into account contributions of
+          velocity and pressure obviously. However, the two dof_handlers are different, so we neede to create an ad-hoc
+          iterator for the pressure that we update manually. It is guaranteed that the cells are visited in the same order
+          (see the documentation) ---*/
+    auto tmp_cell = dof_handler_pressure.begin_active();
+    for(const auto& cell : dof_handler_velocity.active_cell_iterators()) {
+      if(cell->is_locally_owned()) {
+        for(int face = 0; face < GeometryInfo<dim>::faces_per_cell; ++face) {
+          if(cell->face(face)->at_boundary() && cell->face(face)->boundary_id() == 4) {
+            fe_face_values_velocity.reinit(cell, face);
+            fe_face_values_pressure.reinit(tmp_cell, face);
+
+            fe_face_values_velocity.get_function_gradients(u_n, velocity_gradients); /*--- velocity gradients ---*/
+            fe_face_values_pressure.get_function_values(pres_n, pressure_values); /*--- pressure values ---*/
+
+            for(int q = 0; q < n_q_points; q++) {
+              normal_vector = -fe_face_values_velocity.normal_vector(q);
+
+              for(unsigned int d = 0; d < dim; ++ d) {
+                fluid_pressure[d][d] = pressure_values[q];
+                for(unsigned int k = 0; k < dim; ++k)
+                  fluid_stress[d][k] = 1.0/Re*velocity_gradients[q][d][k];
+              }
+              fluid_stress = fluid_stress - fluid_pressure;
+
+              forces = fluid_stress*normal_vector*fe_face_values_velocity.JxW(q);
+
+              local_drag += forces[0];
+              local_lift += forces[1];
+            }
+          }
+        }
+      }
+      ++tmp_cell;
+    }
+
+    /*--- At the end, each processor has computed the contribution to the boundary cells it owns and, therefore,
+          we need to sum up all the contributions. ---*/
+    double lift = Utilities::MPI::sum(local_lift, MPI_COMM_WORLD);
+    double drag = Utilities::MPI::sum(local_drag, MPI_COMM_WORLD);
+    if(Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0) {
+      output_lift << lift << std::endl;
+      output_drag << drag << std::endl;
+    }
+  }
+
+
+  // @sect{ <code>NavierStokesProjection::refine_mesh</code>}
+
+  // After finding a good initial guess on the coarse mesh, we hope to
+  // decrease the error through refining the mesh. We also need to transfer the current solution to the
+  // next mesh using the SolutionTransfer class.
+  //
+  template <int dim>
+  void NavierStokesProjection<dim>::refine_mesh() {
+    TimerOutput::Scope t(time_table, "Refine mesh");
+
+    /*--- We first create a proper vector for computing estimator ---*/
+    IndexSet locally_relevant_dofs;
+    DoFTools::extract_locally_relevant_dofs(dof_handler_velocity, locally_relevant_dofs);
+    LinearAlgebra::distributed::Vector<double> tmp_velocity;
+    tmp_velocity.reinit(dof_handler_velocity.locally_owned_dofs(), locally_relevant_dofs, MPI_COMM_WORLD);
+    tmp_velocity = u_n;
+    tmp_velocity.update_ghost_values();
+
+    using Iterator = typename DoFHandler<dim>::active_cell_iterator;
+    Vector<float> estimated_error_per_cell(triangulation.n_active_cells());
+
+    /*--- This is basically the indicator per cell computation (see step-50). Since it is not so complciated
+          we implement it through a lambda expression ---*/
+    auto cell_worker = [&](const Iterator&   cell,
+                           ScratchData<dim>& scratch_data,
+                           CopyData&         copy_data) {
+      FEValues<dim>& fe_values = scratch_data.fe_values; /*--- Here we finally use the 'FEValues' inside ScratchData ---*/
+      fe_values.reinit(cell);
+
+      /*--- Compute the gradients for all quadrature points ---*/
+      std::vector<std::vector<Tensor<1, dim>>> gradients(fe_values.n_quadrature_points, std::vector<Tensor<1, dim>>(dim));
+      fe_values.get_function_gradients(tmp_velocity, gradients);
+      copy_data.cell_index = cell->active_cell_index();
+      double vorticity_norm_square = 0.0;
+      /*--- Loop over quadrature points and evaluate the integral multiplying the vorticty
+            by the weights and the determinant of the Jacobian (which are included in 'JxW') ---*/
+      for(unsigned k = 0; k < fe_values.n_quadrature_points; ++k) {
+        const double vorticity = gradients[k][1][0] - gradients[k][0][1];
+        vorticity_norm_square += vorticity*vorticity*fe_values.JxW(k);
+      }
+      copy_data.value = cell->diameter()*cell->diameter()*vorticity_norm_square;
+    };
+
+    const UpdateFlags cell_flags = update_gradients | update_quadrature_points | update_JxW_values;
+
+    auto copier = [&](const CopyData &copy_data) {
+      if(copy_data.cell_index != numbers::invalid_unsigned_int)
+        estimated_error_per_cell[copy_data.cell_index] += copy_data.value;
+    };
+
+    /*--- Now everything is 'automagically' handled by 'mesh_loop' ---*/
+    ScratchData scratch_data(fe_velocity, EquationData::degree_p + 2, cell_flags);
+    CopyData copy_data;
+    MeshWorker::mesh_loop(dof_handler_velocity.begin_active(),
+                          dof_handler_velocity.end(),
+                          cell_worker,
+                          copier,
+                          scratch_data,
+                          copy_data,
+                          MeshWorker::assemble_own_cells);
+
+    /*--- Refine grid. In case the refinement level is above a certain value (or the coarsening level is below)
+          we clear the flags. ---*/
+    parallel::distributed::GridRefinement::refine_and_coarsen_fixed_number(triangulation, estimated_error_per_cell, 0.01, 0.3);
+    for(const auto& cell: triangulation.active_cell_iterators()) {
+      if(cell->refine_flag_set() && cell->level() == max_loc_refinements)
+        cell->clear_refine_flag();
+      if(cell->coarsen_flag_set() && cell->level() == min_loc_refinements)
+        cell->clear_coarsen_flag();
+    }
+    triangulation.prepare_coarsening_and_refinement();
+
+    /*--- Now we prepare the object for transfering, basically saving the old quantities using SolutionTransfer.
+          Since the 'prepare_for_coarsening_and_refinement' method can be called only once, but we have two vectors
+          for dof_handler_velocity, we need to put them in an auxiliary vector. ---*/
+    std::vector<const LinearAlgebra::distributed::Vector<double>*> velocities;
+    velocities.push_back(&u_n);
+    velocities.push_back(&u_n_minus_1);
+    parallel::distributed::SolutionTransfer<dim, LinearAlgebra::distributed::Vector<double>>
+    solution_transfer_velocity(dof_handler_velocity);
+    solution_transfer_velocity.prepare_for_coarsening_and_refinement(velocities);
+    parallel::distributed::SolutionTransfer<dim, LinearAlgebra::distributed::Vector<double>>
+    solution_transfer_pressure(dof_handler_pressure);
+    solution_transfer_pressure.prepare_for_coarsening_and_refinement(pres_n);
+
+    triangulation.execute_coarsening_and_refinement(); /*--- Effectively perform the remeshing ---*/
+
+    /*--- First DoFHandler objects are set up within the new grid ----*/
+    setup_dofs();
+
+    /*--- Interpolate current solutions to new mesh. This is done using auxliary vectors just for safety,
+          but the new u_n or pres_n could be used. Again, the only point is that the function 'interpolate'
+          can be called once and so the vectors related to 'dof_handler_velocity' have to collected in an auxiliary vector. ---*/
+    LinearAlgebra::distributed::Vector<double> transfer_velocity,
+                                               transfer_velocity_minus_1,
+                                               transfer_pressure;
+    transfer_velocity.reinit(u_n);
+    transfer_velocity.zero_out_ghosts();
+    transfer_velocity_minus_1.reinit(u_n_minus_1);
+    transfer_velocity_minus_1.zero_out_ghosts();
+    transfer_pressure.reinit(pres_n);
+    transfer_pressure.zero_out_ghosts();
+
+    std::vector<LinearAlgebra::distributed::Vector<double>*> transfer_velocities;
+    transfer_velocities.push_back(&transfer_velocity);
+    transfer_velocities.push_back(&transfer_velocity_minus_1);
+    solution_transfer_velocity.interpolate(transfer_velocities);
+    transfer_velocity.update_ghost_values();
+    transfer_velocity_minus_1.update_ghost_values();
+    solution_transfer_pressure.interpolate(transfer_pressure);
+    transfer_pressure.update_ghost_values();
+
+    u_n         = transfer_velocity;
+    u_n_minus_1 = transfer_velocity_minus_1;
+    pres_n      = transfer_pressure;
+  }
+
+
+  // Interpolate the locally refined solution to a mesh with maximal resolution
+  // and transfer velocity and pressure.
+  //
+  template<int dim>
+  void NavierStokesProjection<dim>::interpolate_max_res(const unsigned int level) {
+    parallel::distributed::SolutionTransfer<dim, LinearAlgebra::distributed::Vector<double>>
+    solution_transfer_velocity(dof_handler_velocity);
+    std::vector<const LinearAlgebra::distributed::Vector<double>*> velocities;
+    velocities.push_back(&u_n);
+    velocities.push_back(&u_n_minus_1);
+    solution_transfer_velocity.prepare_for_coarsening_and_refinement(velocities);
+
+    parallel::distributed::SolutionTransfer<dim, LinearAlgebra::distributed::Vector<double>>
+    solution_transfer_pressure(dof_handler_pressure);
+    solution_transfer_pressure.prepare_for_coarsening_and_refinement(pres_n);
+
+    for(const auto& cell: triangulation.active_cell_iterators_on_level(level)) {
+      if(cell->is_locally_owned())
+        cell->set_refine_flag();
+    }
+    triangulation.execute_coarsening_and_refinement();
+
+    setup_dofs();
+
+    LinearAlgebra::distributed::Vector<double> transfer_velocity, transfer_velocity_minus_1,
+                                               transfer_pressure;
+
+    transfer_velocity.reinit(u_n);
+    transfer_velocity.zero_out_ghosts();
+    transfer_velocity_minus_1.reinit(u_n_minus_1);
+    transfer_velocity_minus_1.zero_out_ghosts();
+
+    transfer_pressure.reinit(pres_n);
+    transfer_pressure.zero_out_ghosts();
+
+    std::vector<LinearAlgebra::distributed::Vector<double>*> transfer_velocities;
+
+    transfer_velocities.push_back(&transfer_velocity);
+    transfer_velocities.push_back(&transfer_velocity_minus_1);
+    solution_transfer_velocity.interpolate(transfer_velocities);
+    transfer_velocity.update_ghost_values();
+    transfer_velocity_minus_1.update_ghost_values();
+
+    solution_transfer_pressure.interpolate(transfer_pressure);
+    transfer_pressure.update_ghost_values();
+
+    u_n         = transfer_velocity;
+    u_n_minus_1 = transfer_velocity_minus_1;
+    pres_n      = transfer_pressure;
+  }
+
+
+  // Save maximum resolution to a mesh adapted.
+  //
+  template<int dim>
+  void NavierStokesProjection<dim>::save_max_res() {
+    parallel::distributed::Triangulation<dim> triangulation_tmp(MPI_COMM_WORLD);
+    GridGenerator::plate_with_a_hole(triangulation_tmp, 0.5, 1.0, 1.0, 1.1, 1.0, 19.0, Point<2>(2.0, 2.0), 0, 1, 1.0, 2, true);
+    triangulation_tmp.refine_global(triangulation.n_global_levels() - 1);
+
+    DoFHandler<dim> dof_handler_velocity_tmp(triangulation_tmp);
+    DoFHandler<dim> dof_handler_pressure_tmp(triangulation_tmp);
+    dof_handler_velocity_tmp.distribute_dofs(fe_velocity);
+    dof_handler_pressure_tmp.distribute_dofs(fe_pressure);
+
+    LinearAlgebra::distributed::Vector<double> u_n_tmp,
+                                               pres_n_tmp;
+    u_n_tmp.reinit(dof_handler_velocity_tmp.n_dofs());
+    pres_n_tmp.reinit(dof_handler_pressure_tmp.n_dofs());
+
+    DataOut<dim> data_out;
+    std::vector<std::string> velocity_names(dim, "v");
+    std::vector<DataComponentInterpretation::DataComponentInterpretation>
+    component_interpretation_velocity(dim, DataComponentInterpretation::component_is_part_of_vector);
+    VectorTools::interpolate_to_different_mesh(dof_handler_velocity, u_n, dof_handler_velocity_tmp, u_n_tmp);
+    u_n_tmp.update_ghost_values();
+    data_out.add_data_vector(dof_handler_velocity_tmp, u_n_tmp, velocity_names, component_interpretation_velocity);
+    VectorTools::interpolate_to_different_mesh(dof_handler_pressure, pres_n, dof_handler_pressure_tmp, pres_n_tmp);
+    pres_n_tmp.update_ghost_values();
+    data_out.add_data_vector(dof_handler_pressure_tmp, pres_n_tmp, "p", {DataComponentInterpretation::component_is_scalar});
+    PostprocessorVorticity<dim> postprocessor;
+    data_out.add_data_vector(dof_handler_velocity_tmp, u_n_tmp, postprocessor);
+
+    data_out.build_patches(MappingQ1<dim>(), 1, DataOut<dim>::curved_inner_cells);
+    const std::string output = "./" + saving_dir + "/solution_max_res_end.vtu";
+    data_out.write_vtu_in_parallel(output, MPI_COMM_WORLD);
+  }
+
+
+  // @sect{ <code>NavierStokesProjection::run</code> }
+
+  // This is the time marching function, which starting at <code>t_0</code>
+  // advances in time using the projection method with time step <code>dt</code>
+  // until <code>T</code>.
+  //
+  // Its second parameter, <code>verbose</code> indicates whether the function
+  // should output information what it is doing at any given moment:
+  // we use the ConditionalOStream class to do that for us.
+  //
+  template<int dim>
+  void NavierStokesProjection<dim>::run(const bool verbose, const unsigned int output_interval) {
+    ConditionalOStream verbose_cout(std::cout, verbose && Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0);
+
+    output_results(1);
+    double time = t_0 + dt;
+    unsigned int n = 1;
+    while(std::abs(T - time) > 1e-10) {
+      time += dt;
+      n++;
+      pcout << "Step = " << n << " Time = " << time << std::endl;
+
+      /*--- First stage of TR-BDF2 and we start by setting the proper flag ---*/
+      TR_BDF2_stage = 1;
+      navier_stokes_matrix.set_TR_BDF2_stage(TR_BDF2_stage);
+      for(unsigned int level = 0; level < triangulation.n_global_levels(); ++level)
+        mg_matrices[level].set_TR_BDF2_stage(TR_BDF2_stage);
+
+      verbose_cout << "  Interpolating the velocity stage 1" << std::endl;
+      interpolate_velocity();
+
+      verbose_cout << "  Diffusion Step stage 1 " << std::endl;
+      diffusion_step();
+
+      verbose_cout << "  Projection Step stage 1" << std::endl;
+      project_grad(1);
+      u_tmp.equ(gamma*dt, u_tmp);
+      u_star += u_tmp; /*--- In the rhs of the projection step we need u_star + gamma*dt*grad(pres_n) and we save it into u_star ---*/
+      projection_step();
+
+      verbose_cout << "  Updating the Velocity stage 1" << std::endl;
+      u_n_gamma.equ(1.0, u_star);
+      project_grad(2);
+      grad_pres_int.equ(1.0, u_tmp); /*--- We save grad(pres_int), because we will need it soon ---*/
+      u_tmp.equ(-gamma*dt, u_tmp);
+      u_n_gamma += u_tmp; /*--- u_n_gamma = u_star - gamma*dt*grad(pres_int) ---*/
+      u_n_minus_1 = u_n;
+
+      /*--- Second stage of TR-BDF2 ---*/
+      TR_BDF2_stage = 2;
+      for(unsigned int level = 0; level < triangulation.n_global_levels(); ++level)
+        mg_matrices[level].set_TR_BDF2_stage(TR_BDF2_stage);
+      navier_stokes_matrix.set_TR_BDF2_stage(TR_BDF2_stage);
+
+      verbose_cout << "  Interpolating the velocity stage 2" << std::endl;
+      interpolate_velocity();
+
+      verbose_cout << "  Diffusion Step stage 2 " << std::endl;
+      diffusion_step();
+
+      verbose_cout << "  Projection Step stage 2" << std::endl;
+      u_tmp.equ((1.0 - gamma)*dt, grad_pres_int);
+      u_star += u_tmp;  /*--- In the rhs of the projection step we need u_star + (1 - gamma)*dt*grad(pres_int) ---*/
+      projection_step();
+
+      verbose_cout << "  Updating the Velocity stage 2" << std::endl;
+      u_n.equ(1.0, u_star);
+      project_grad(1);
+      u_tmp.equ((gamma - 1.0)*dt, u_tmp);
+      u_n += u_tmp;  /*--- u_n = u_star - (1 - gamma)*dt*grad(pres_n) ---*/
+
+      const double max_vel = get_maximal_velocity();
+      pcout<< "Maximal velocity = " << max_vel << std::endl;
+      /*--- The Courant number is computed taking into account the polynomial degree for the velocity ---*/
+      pcout << "CFL = " << dt*max_vel*(EquationData::degree_p + 1)*
+                           std::sqrt(dim)/GridTools::minimal_cell_diameter(triangulation) << std::endl;
+      compute_lift_and_drag();
+      if(n % output_interval == 0) {
+        verbose_cout << "Plotting Solution final" << std::endl;
+        output_results(n);
+      }
+      /*--- In case dt is not a multiple of T, we reduce dt in order to end up at T ---*/
+      if(T - time < dt && T - time > 1e-10) {
+        dt = T - time;
+        navier_stokes_matrix.set_dt(dt);
+        for(unsigned int level = 0; level < triangulation.n_global_levels(); ++level)
+          mg_matrices[level].set_dt(dt);
+      }
+      /*--- Perform the refinement if desired ---*/
+      if(refinement_iterations > 0 && n % refinement_iterations == 0) {
+        verbose_cout << "Refining mesh" << std::endl;
+        refine_mesh();
+      }
+    }
+    if(n % output_interval != 0) {
+      verbose_cout << "Plotting Solution final" << std::endl;
+      output_results(n);
+    }
+    if(refinement_iterations > 0) {
+      for(unsigned int lev = 0; lev < triangulation.n_global_levels() - 1; ++ lev)
+        interpolate_max_res(lev);
+      save_max_res();
+    }
+  }
+
+} // namespace NS_TRBDF2
+
+
+// @sect{ The main function }
+
+// The main function looks very much like in all the other tutorial programs. We first initialize MPI,
+// we initialize the class 'NavierStokesProjection' with the dimension as template parameter and then
+// let the method 'run' do the job.
+//
+int main(int argc, char *argv[]) {
+  try {
+    using namespace NS_TRBDF2;
+
+    RunTimeParameters::Data_Storage data;
+    data.read_data("parameter-file.prm");
+
+    Utilities::MPI::MPI_InitFinalize mpi_init(argc, argv, -1);
+
+    const auto& curr_rank = Utilities::MPI::this_mpi_process(MPI_COMM_WORLD);
+    deallog.depth_console(data.verbose && curr_rank == 0 ? 2 : 0);
+
+    NavierStokesProjection<2> test(data);
+    test.run(data.verbose, data.output_interval);
+
+    if(curr_rank == 0)
+      std::cout << "----------------------------------------------------"
+                << std::endl
+                << "Apparently everything went fine!" << std::endl
+                << "Don't forget to brush your teeth :-)" << std::endl
+                << std::endl;
+
+    return 0;
+  }
+  catch(std::exception &exc) {
+    std::cerr << std::endl
+              << std::endl
+              << "----------------------------------------------------"
+              << std::endl;
+    std::cerr << "Exception on processing: " << std::endl
+              << exc.what() << std::endl
+              << "Aborting!" << std::endl
+              << "----------------------------------------------------"
+              << std::endl;
+    return 1;
+  }
+  catch(...) {
+    std::cerr << std::endl
+              << std::endl
+              << "----------------------------------------------------"
+              << std::endl;
+    std::cerr << "Unknown exception!" << std::endl
+              << "Aborting!" << std::endl
+              << "----------------------------------------------------"
+              << std::endl;
+    return 1;
+  }
+
+}
diff --git a/NavierStokes_TRBDF2_DG/parameter-file.prm b/NavierStokes_TRBDF2_DG/parameter-file.prm
new file mode 100644
index 0000000..f41c5c2
--- /dev/null
+++ b/NavierStokes_TRBDF2_DG/parameter-file.prm
@@ -0,0 +1,39 @@
+subsection Physical data
+  # In this subsection we declare the physical data
+  # The initial and final time, and the Reynolds number
+  set initial_time = 0.0
+  set final_time   = 400.0
+  set Reynolds     = 100.0
+end
+
+subsection Time step data
+  # In this subsection we declare the data that is to be used for time discretization,
+  # i.e. the time step dt
+  set dt = 5.0e-3
+end
+
+subsection Space discretization
+  # In this subsection we declare the data that is relevant to the space discretization
+  # we set the number of global refines the triangulation must have
+  # and the degree k of the pair Q_(k+1)--Q_k of velocity--pressure finite element spaces
+  set n_of_refines = 4
+  set max_loc_refinements = 3
+  set min_loc_refinements = 1
+end
+
+subsection Data solve
+  # In this section we declare the parameters that are going to control the solution process
+  # for the velocity.
+  set max_iterations = 10000  # maximal number of iterations that linear solvers must make
+  set eps            = 1e-8  # stopping criterion
+end
+
+set saving directory = SimTest
+
+set refinement_iterations = 0
+
+#The output frequency
+set output_interval = 500
+
+#Finally we set the verbosity level
+set verbose = true
diff --git a/NavierStokes_TRBDF2_DG/runtime_parameters.h b/NavierStokes_TRBDF2_DG/runtime_parameters.h
new file mode 100644
index 0000000..acbe846
--- /dev/null
+++ b/NavierStokes_TRBDF2_DG/runtime_parameters.h
@@ -0,0 +1,182 @@
+// We start by including all the necessary deal.II header files
+//
+#include <deal.II/base/parameter_handler.h>
+
+// @sect{Run time parameters}
+//
+// Since our method has several parameters that can be fine-tuned we put them
+// into an external file, so that they can be determined at run-time.
+//
+namespace RunTimeParameters {
+  using namespace dealii;
+
+  class Data_Storage {
+  public:
+    Data_Storage();
+
+    void read_data(const std::string& filename);
+
+    double initial_time;
+    double final_time;
+
+    double Reynolds;
+    double dt;
+
+    unsigned int n_refines;            /*--- Number of refinements ---*/
+    unsigned int max_loc_refinements; /*--- Number of maximum local refinements allowed ---*/
+    unsigned int min_loc_refinements; /*--- Number of minimum local refinements allowed
+                                            once reached that level ---*/
+
+    /*--- Parameters related to the linear solver ---*/
+    unsigned int max_iterations;
+    double       eps;
+
+    bool         verbose;
+    unsigned int output_interval;
+
+    std::string dir; /*--- Auxiliary string variable for output storage ---*/
+
+    unsigned int refinement_iterations; /*--- Auxiliary variable about how many steps perform remeshing ---*/
+
+  protected:
+    ParameterHandler prm;
+  };
+
+  // In the constructor of this class we declare all the parameters in suitable (but arbitrary) subsections.
+  //
+  Data_Storage::Data_Storage(): initial_time(0.0),
+                                final_time(1.0),
+                                Reynolds(1.0),
+                                dt(5e-4),
+                                n_refines(0),
+                                max_loc_refinements(0),
+                                min_loc_refinements(0),
+                                max_iterations(1000),
+                                eps(1e-12),
+                                verbose(true),
+                                output_interval(15),
+                                refinement_iterations(0) {
+    prm.enter_subsection("Physical data");
+    {
+      prm.declare_entry("initial_time",
+                        "0.0",
+                        Patterns::Double(0.0),
+                        " The initial time of the simulation. ");
+      prm.declare_entry("final_time",
+                        "1.0",
+                        Patterns::Double(0.0),
+                        " The final time of the simulation. ");
+      prm.declare_entry("Reynolds",
+                        "1.0",
+                        Patterns::Double(0.0),
+                        " The Reynolds number. ");
+    }
+    prm.leave_subsection();
+
+    prm.enter_subsection("Time step data");
+    {
+      prm.declare_entry("dt",
+                        "5e-4",
+                        Patterns::Double(0.0),
+                        " The time step size. ");
+    }
+    prm.leave_subsection();
+
+    prm.enter_subsection("Space discretization");
+    {
+      prm.declare_entry("n_of_refines",
+                        "100",
+                        Patterns::Integer(0, 1500),
+                        " The number of cells we want on each direction of the mesh. ");
+      prm.declare_entry("max_loc_refinements",
+                        "4",
+                         Patterns::Integer(0, 10),
+                         " The number of maximum local refinements. ");
+      prm.declare_entry("min_loc_refinements",
+                        "2",
+                         Patterns::Integer(0, 10),
+                         " The number of minimum local refinements. ");
+    }
+    prm.leave_subsection();
+
+    prm.enter_subsection("Data solve");
+    {
+      prm.declare_entry("max_iterations",
+                        "1000",
+                        Patterns::Integer(1, 30000),
+                        " The maximal number of iterations linear solvers must make. ");
+      prm.declare_entry("eps",
+                        "1e-12",
+                        Patterns::Double(0.0),
+                        " The stopping criterion. ");
+    }
+    prm.leave_subsection();
+
+    prm.declare_entry("refinement_iterations",
+                      "0",
+                      Patterns::Integer(0),
+                      " This number indicates how often we need to "
+                      "refine the mesh");
+
+    prm.declare_entry("saving directory", "SimTest");
+
+    prm.declare_entry("verbose",
+                      "true",
+                      Patterns::Bool(),
+                      " This indicates whether the output of the solution "
+                      "process should be verbose. ");
+
+    prm.declare_entry("output_interval",
+                      "1",
+                      Patterns::Integer(1),
+                      " This indicates between how many time steps we print "
+                      "the solution. ");
+  }
+
+  // We need now a routine to read all declared parameters in the constructor
+  //
+  void Data_Storage::read_data(const std::string& filename) {
+    std::ifstream file(filename);
+    AssertThrow(file, ExcFileNotOpen(filename));
+
+    prm.parse_input(file);
+
+    prm.enter_subsection("Physical data");
+    {
+      initial_time = prm.get_double("initial_time");
+      final_time   = prm.get_double("final_time");
+      Reynolds     = prm.get_double("Reynolds");
+    }
+    prm.leave_subsection();
+
+    prm.enter_subsection("Time step data");
+    {
+      dt = prm.get_double("dt");
+    }
+    prm.leave_subsection();
+
+    prm.enter_subsection("Space discretization");
+    {
+      n_refines           = prm.get_integer("n_of_refines");
+      max_loc_refinements = prm.get_integer("max_loc_refinements");
+      min_loc_refinements = prm.get_integer("min_loc_refinements");
+    }
+    prm.leave_subsection();
+
+    prm.enter_subsection("Data solve");
+    {
+      max_iterations = prm.get_integer("max_iterations");
+      eps            = prm.get_double("eps");
+    }
+    prm.leave_subsection();
+
+    dir = prm.get("saving directory");
+
+    refinement_iterations = prm.get_integer("refinement_iterations");
+
+    verbose = prm.get_bool("verbose");
+
+    output_interval = prm.get_integer("output_interval");
+  }
+
+} // namespace RunTimeParameters
-- 
2.39.5