Unstruct2D  1.0
Solution of 2-D Euler- and Navier-Stokes Equations on Unstructured Triangular Grids
 All Classes Files Functions Variables Typedefs Enumerations Macros
spaceDiscr.h
Go to the documentation of this file.
1 //*****************************************************************************
6 //
7 // (c) J. Blazek, CFD Consulting & Analysis, www.cfd-ca.de
8 // Created February 15, 2014
9 // Last modification: September 20, 2014
10 //
11 //=============================================================================
12 //
13 // This program is free software; you can redistribute it and/or
14 // modify it under the terms of the GNU General Public License
15 // as published by the Free Software Foundation; either version 2
16 // of the License, or (at your option) any later version.
17 //
18 // This program is distributed in the hope that it will be useful,
19 // but WITHOUT ANY WARRANTY; without even the implied warranty of
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 // GNU General Public License for more details.
22 //
23 // You should have received a copy of the GNU General Public License
24 // along with this program; if not, write to the Free Software
25 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26 //
27 //*****************************************************************************
28 
29 #ifndef SPACEDISCR_H_INCLUDED
30 #define SPACEDISCR_H_INCLUDED
31 
32 #include "defs.h"
33 #include "bndConds.h"
34 #include "fluidProps.h"
35 #include "geometry.h"
36 #include "precond.h"
37 
43 {
44 public:
45 
46  int order;
48  epsEntr;
52  // functions
53 
54  SpaceDiscr();
55  ~SpaceDiscr();
56  void AllocateMemory( Equations equsType, int nNodes );
57  void DissipInit( int irk, int nNodes, REAL beta );
58  void DissipRoe1( const Geometry &geometry, const FluidProps &fluidProps, REAL beta );
59  void DissipRoe1Prec( const Geometry &geometry, const FluidProps &fluidProps,
60  const Precond &precond, REAL beta );
61  void DissipRoe2( const Geometry &geometry, const FluidProps &fluidProps, REAL beta );
62  void DissipRoe2Prec( const Geometry &geometry, const FluidProps &fluidProps,
63  const Precond &precond, REAL beta );
64  void FluxRoe1( const Geometry &geometry, const FluidProps &fluidProps );
65  void FluxRoe2( const Geometry &geometry, const FluidProps &fluidProps );
66  void FluxWalls( const Geometry &geometry, const FluidProps &fluidProps );
67  void FluxViscous( const Geometry &geometry, const FluidProps &fluidProps, REAL beta );
68  void Gradients( const Geometry &geometry, const FluidProps &fluidProps );
69  void GradientsVisc( const Geometry &geometry, const FluidProps &fluidProps );
70  void LimiterRefvals( const Geometry &geometry, const FluidProps &fluidProps,
71  const BndConds &bndConds );
72  void LimiterInit( const Geometry &geometry, const FluidProps &fluidProps );
73  void Limiter( const Geometry &geometry, const FluidProps &fluidProps );
74 
80  void GetGradU( int i, NODE &du ) const
81  { du.x = gradx[i].uvel; du.y = grady[i].uvel; }
82 
88  void GetGradV( int i, NODE &dv ) const
89  { dv.x = gradx[i].vvel; dv.y = grady[i].vvel; }
90 
91 private:
92 
93  REAL volRef;
95  PRIMVARS limRef;
98  CONSVARS *diss;
99  PRIMVARS *lim;
100  PRIMVARS *gradx,
102  *grady;
104  REAL *gradTx,
105  *gradTy;
107  PRIMVARS *umin,
108  *umax;
110  // functions
111 
112  SpaceDiscr( const SpaceDiscr &spaceDiscr ); // override default copy constructor
113  SpaceDiscr & operator = (const SpaceDiscr &spaceDiscr); // and assignment operator
114 
121  REAL EntropyCorr( REAL z, REAL d )
122  {
123  if (z > d)
124  return z;
125  else
126  return 0.5*(z*z+d*d)/d;
127  }
128 
137  REAL Venkat( REAL d2, REAL d1min, REAL d1max, REAL eps2 )
138  {
139  if (d2 > EPSGLO)
140  {
141  REAL num = (d1max*d1max+eps2)*d2 + 2.0*d2*d2*d1max;
142  REAL den = d2*(d1max*d1max+2.0*d2*d2+d1max*d2+eps2);
143  return (num/den);
144  }
145  else if (d2 < -EPSGLO)
146  {
147  REAL num = (d1min*d1min+eps2)*d2 + 2.0*d2*d2*d1min;
148  REAL den = d2*(d1min*d1min+2.0*d2*d2+d1min*d2+eps2);
149  return (num/den);
150  }
151  return 1.0;
152  }
153 };
154 
155 #endif // SPACEDISCR_H_INCLUDED
void Gradients(const Geometry &geometry, const FluidProps &fluidProps)
Definition: gradients.cpp:38
Definition: spaceDiscr.h:42
Definition: fluidProps.h:39
int order
Definition: spaceDiscr.h:46
Coordinates of a grid node.
Definition: defs.h:73
void GetGradU(int i, NODE &du) const
Definition: spaceDiscr.h:80
void DissipRoe1(const Geometry &geometry, const FluidProps &fluidProps, REAL beta)
Definition: dissipRoe1.cpp:38
Definition: bndConds.h:42
void LimiterRefvals(const Geometry &geometry, const FluidProps &fluidProps, const BndConds &bndConds)
Definition: limiterRefVals.cpp:39
REAL limfac
Definition: spaceDiscr.h:47
REAL y
Definition: defs.h:75
REAL vvel
Definition: defs.h:91
Primitive variables. All quantities are in SI units.
Definition: defs.h:89
Definition: geometry.h:41
#define EPSGLO
Definition: defs.h:59
void AllocateMemory(Equations equsType, int nNodes)
Definition: spaceDiscr.cpp:85
REAL epsEntr
Definition: spaceDiscr.h:47
void DissipInit(int irk, int nNodes, REAL beta)
Definition: dissipInit.cpp:37
void FluxViscous(const Geometry &geometry, const FluidProps &fluidProps, REAL beta)
Definition: fluxViscous.cpp:40
void LimiterInit(const Geometry &geometry, const FluidProps &fluidProps)
Definition: limiterInit.cpp:38
SpaceDiscr()
Definition: spaceDiscr.cpp:35
Definition: precond.h:40
void FluxRoe2(const Geometry &geometry, const FluidProps &fluidProps)
Definition: fluxRoe2.cpp:39
void GetGradV(int i, NODE &dv) const
Definition: spaceDiscr.h:88
Conserved variables. All quantities are in SI units.
Definition: defs.h:80
void DissipRoe2(const Geometry &geometry, const FluidProps &fluidProps, REAL beta)
Definition: dissipRoe2.cpp:39
void FluxRoe1(const Geometry &geometry, const FluidProps &fluidProps)
Definition: fluxRoe1.cpp:38
double REAL
Definition: defs.h:58
void FluxWalls(const Geometry &geometry, const FluidProps &fluidProps)
Definition: fluxWalls.cpp:36
CONSVARS * rhs
Definition: spaceDiscr.h:50
REAL uvel
Definition: defs.h:91
REAL x
Definition: defs.h:75
void DissipRoe2Prec(const Geometry &geometry, const FluidProps &fluidProps, const Precond &precond, REAL beta)
Definition: dissipRoe2Prec.cpp:41
Equations
Kind of equations solved.
Definition: defs.h:39
void GradientsVisc(const Geometry &geometry, const FluidProps &fluidProps)
Definition: gradientsVisc.cpp:39
~SpaceDiscr()
Definition: spaceDiscr.cpp:64
void Limiter(const Geometry &geometry, const FluidProps &fluidProps)
Definition: limiter.cpp:36
void DissipRoe1Prec(const Geometry &geometry, const FluidProps &fluidProps, const Precond &precond, REAL beta)
Definition: dissipRoe1Prec.cpp:40