Plugins
compressible_navier_stokes_base.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013: G-CSC, Goethe University Frankfurt
3  * Author: Raphael Prohl
4  *
5  * This file is part of UG4.
6  *
7  * UG4 is free software: you can redistribute it and/or modify it under the
8  * terms of the GNU Lesser General Public License version 3 (as published by the
9  * Free Software Foundation) with the following additional attribution
10  * requirements (according to LGPL/GPL v3 §7):
11  *
12  * (1) The following notice must be displayed in the Appropriate Legal Notices
13  * of covered and combined works: "Based on UG4 (www.ug4.org/license)".
14  *
15  * (2) The following notice must be displayed at a prominent place in the
16  * terminal output of covered works: "Based on UG4 (www.ug4.org/license)".
17  *
18  * (3) The following bibliography is recommended for citation and must be
19  * preserved in all covered files:
20  * "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively
21  * parallel geometric multigrid solver on hierarchically distributed grids.
22  * Computing and visualization in science 16, 4 (2013), 151-164"
23  * "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 -- a novel
24  * flexible software system for simulating pde based models on high performance
25  * computers. Computing and visualization in science 16, 4 (2013), 165-179"
26  *
27  * This program is distributed in the hope that it will be useful,
28  * but WITHOUT ANY WARRANTY; without even the implied warranty of
29  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30  * GNU Lesser General Public License for more details.
31  */
32 
33 #ifndef __H__UG__PLUGINS__NAVIER_STOKES__COMPRESSIBLE__COMPRESSIBLE_NAVIER_STOKES_BASE__
34 #define __H__UG__PLUGINS__NAVIER_STOKES__COMPRESSIBLE__COMPRESSIBLE_NAVIER_STOKES_BASE__
35 
36 // other ug4 modules
37 #include "common/common.h"
38 #include "lib_grid/lg_base.h"
39 
40 // library intern headers
44 
45 #include "../navier_stokes_base.h"
46 
47 namespace ug{
48 namespace NavierStokes{
49 
52 
54 
123 template< typename TDomain>
125  : public NavierStokesBase<TDomain>
126 {
127  protected:
130 
133 
134  public:
136  static const int dim = base_type::dim;
137 
138  public:
141  CompressibleNavierStokesBase(const char* functions, const char* subsets);
142  CompressibleNavierStokesBase(const std::vector<std::string>& vFct, const std::vector<std::string>& vSubset);
144 
146 
153 
156 
159  void set_adiabatic_index(number val);
160 #ifdef UG_FOR_LUA
161  void set_adiabatic_index(const char* fctName);
162 #endif
163 
166 
168 
173  virtual void set_source(SmartPtr<CplUserData<MathVector<dim>, dim> > user) = 0;
174 
176  void set_mach_number_blend(bool machNrBlend) {m_bMachNrBlend = machNrBlend;}
177 
178  public:
180  virtual bool requests_local_time_series() {return true;}
181 
183  virtual std::string disc_type() const = 0;
184 
185  protected:
188 
191 };
192 
194 
195 } // namespace NavierStokes
196 } // end namespace ug
197 
198 #endif /*__H__UG__PLUGINS__NAVIER_STOKES__COMPRESSIBLE__COMPRESSIBLE_NAVIER_STOKES_BASE__*/
199 
200 
function NavierStokes(fcts, subsets, discType)
Finite Volume Element Discretization for the compressible Navier-Stokes Equation.
Definition: compressible_navier_stokes_base.h:126
virtual bool requests_local_time_series()
returns if local time series is needed
Definition: compressible_navier_stokes_base.h:180
CompressibleNavierStokesBase(const char *functions, const char *subsets)
Definition: compressible_navier_stokes_base.cpp:54
CompressibleNavierStokesBase< TDomain > this_type
own type
Definition: compressible_navier_stokes_base.h:132
virtual std::string disc_type() const =0
returns string identifying disc type
static const int dim
World dimension.
Definition: compressible_navier_stokes_base.h:136
void set_mach_number_blend(bool machNrBlend)
sets if Mach-number blending is used in momentum equation
Definition: compressible_navier_stokes_base.h:176
virtual SmartPtr< CplUserData< number, dim > > kinematic_viscosity()=0
returns kinematic viscosity
virtual void set_kinematic_viscosity(SmartPtr< CplUserData< number, dim > > user)=0
sets the kinematic viscosity
NavierStokesBase< TDomain > base_type
Base class type.
Definition: compressible_navier_stokes_base.h:129
virtual SmartPtr< CplUserData< number, dim > > adiabatic_index()=0
returns adiabatic index
bool m_bMachNrBlend
flag if using Mach-number Blending
Definition: compressible_navier_stokes_base.h:187
virtual void set_source(SmartPtr< CplUserData< MathVector< dim >, dim > > user)=0
sets the source function
virtual void set_adiabatic_index(SmartPtr< CplUserData< number, dim > > user)=0
sets the adiabatic index (also known as 'heat capacity ratio' or 'ratio of specific heats')
Finite Volume Element Discretization for the incompressible Navier-Stokes Equation.
Definition: navier_stokes_base.h:144
static const int dim
World dimension.
Definition: navier_stokes_base.h:154
number m_bFullNewtonFactor
factor for exact jacobian, (1 for exact jacobian, 0 for fix point)
Definition: navier_stokes_base.h:207
double number