ExaDG
Loading...
Searching...
No Matches
kinetic_energy_dissipation_detailed.h
1/* ______________________________________________________________________
2 *
3 * ExaDG - High-Order Discontinuous Galerkin for the Exa-Scale
4 *
5 * Copyright (C) 2021 by the ExaDG authors
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
19 * ______________________________________________________________________
20 */
21
22#ifndef EXADG_INCOMPRESSIBLE_NAVIER_STOKES_POSTPROCESSOR_KINETIC_ENERGY_DISSIPATION_DETAILED_H_
23#define EXADG_INCOMPRESSIBLE_NAVIER_STOKES_POSTPROCESSOR_KINETIC_ENERGY_DISSIPATION_DETAILED_H_
24
25// ExaDG
26#include <exadg/incompressible_navier_stokes/spatial_discretization/spatial_operator_base.h>
27#include <exadg/postprocessor/kinetic_energy_calculation.h>
28#include <exadg/postprocessor/time_control.h>
29
30namespace ExaDG
31{
32namespace IncNS
33{
34template<int dim, typename Number>
35class KineticEnergyCalculatorDetailed : public KineticEnergyCalculator<dim, Number>
36{
37 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
38
39 typedef KineticEnergyCalculator<dim, Number> Base;
40
41 typedef SpatialOperatorBase<dim, Number> NavierStokesOperator;
42
43public:
44 KineticEnergyCalculatorDetailed(MPI_Comm const & comm);
45
46 void
47 setup(NavierStokesOperator const & navier_stokes_operator_in,
48 dealii::MatrixFree<dim, Number> const & matrix_free_in,
49 unsigned int const dof_index_in,
50 unsigned int const quad_index_in,
51 KineticEnergyData const & kinetic_energy_data_in);
52
53 void
54 evaluate(VectorType const & velocity, double const time, bool const unsteady);
55
56private:
57 void
58 calculate_detailed(VectorType const & velocity, double const time);
59
60 dealii::ObserverPointer<NavierStokesOperator const> navier_stokes_operator;
61};
62
63} // namespace IncNS
64} // namespace ExaDG
65
66#endif /* EXADG_INCOMPRESSIBLE_NAVIER_STOKES_POSTPROCESSOR_KINETIC_ENERGY_DISSIPATION_DETAILED_H_ \
67 */
Definition spatial_operator_base.h:68
Definition driver.cpp:33
Definition kinetic_energy_calculation.h:37