Memosa-FVM  0.2
KineticBC.h
Go to the documentation of this file.
1 // This file os part of FVM
2 // Copyright (c) 2012 FVM Authors
3 // See LICENSE file for terms.
4 
5 #ifndef _KINETICBC_H_
6 #define _KINETICBC_H_
7 
8 #include "misc.h"
9 #include "FloatVarDict.h"
10 #include "AMG.h"
11 
12 template<class T>
13 struct KineticBC : public FloatVarDict<T>
14 {
16  {
17  this->defineVar("specifiedXVelocity",T(0.00));
18  this->defineVar("specifiedYVelocity",T(0.0));
19  this->defineVar("specifiedZVelocity",T(0.0));
20  this->defineVar("specifiedPressure",T(1.0));
21  this->defineVar("specifiedDensity",T(1.0));
22  this->defineVar("specifiedTemperature",T(1.0));
23  this->defineVar("accommodationCoefficient",T(1.0));
24  this->defineVar("specifiedMassFlowRate",T(1.0));
25  this->defineVar("specifiedTauxx",T(1.0));
26  this->defineVar("specifiedTauyy",T(1.0));
27  this->defineVar("specifiedTauzz",T(1.0));
28  this->defineVar("specifiedTauxy",T(0.0));
29  this->defineVar("specifiedTauyz",T(0.0));
30  this->defineVar("specifiedTauzx",T(0.0));
31  }
32  string bcType;
33 };
34 
35 template<class T>
36 struct KineticVC : public FloatVarDict<T>
37 {
39  {
40  this->defineVar("viscosity",T(1e-3));
41  this->defineVar("density",T(1.0));
42  }
43  string vcType;
44 };
45 
46 
47 template<class T>
49 {
51  {
52  this->defineVar("initialXVelocity",T(0.0));
53  this->defineVar("initialYVelocity",T(0.0));
54  this->defineVar("initialZVelocity",T(0.0));
55  this->defineVar("initialPressure",T(0.0));
56  this->defineVar("momentumURF",T(0.7));
57  this->defineVar("velocityURF",T(1.0));
58  this->defineVar("pressureURF",T(0.3));
59  this->defineVar("timeStep",T(1E-3));
60 
61  this->defineVar("rho_init",T(9.28E-6));
62  this->defineVar("T_init",T(273.15));
63  this->defineVar("nonDimLt",T(1.0));
64  this->defineVar("nonDimLx",T(1.0));
65  this->defineVar("nonDimLy",T(1.0));
66  this->defineVar("nonDimLz",T(1.0));
67 
68 
69  this->defineVar("operatingPressure",T(101325.0));
70  this->defineVar("operatingTemperature",T(300.0));
71 
72  this->defineVar("molecularWeight",T(40.0));
73  this ->defineVar("Tmuref",T(273.15));
74  this ->defineVar("muref",T(2.117e-5));
75  this ->defineVar("mu_w",T(0.81));
76  this->Prandtl=2.0/3.0;
77  this->SpHeatRatio=5.0/3.0;
78  // Argon 2.117e-5,0.81
79  // Helium 1.865e-5,0.66
80  // Air 1.7116e-5, 0.74
81  // Nitrogen 1.781e-5,
82 
83  // Argon, Helium Pr=2/3, gamma=5/3
84  // Air, Nitrogen Pr=3/4, gamma=7/5
85 
86  this->Tolerance=1e-4;
87  this->printNormalizedResiduals = true;
88  this->transient = false;
89  this->ibm_enable = false;
90 
91  this->fgamma=2;
92 
93 
95  this->CentralDifference=false;
96  this->KineticLinearSolver = 0;
97 
98  this-> printCellNumber=0;
99  this->defineVar("printDirectionNumber",545);
100 
101  this->NewtonsMethod_ktrial=50;
102  this->relativeTolerance=1e-14;
103  this->absoluteTolerance=1e-22;
104 
105  this->BoltzmannConstant=1.38e-23;
106  this->Planck=6.26068E-34;
107  this->epsilon_ES=1e-50;
108  this->pi=acos(-1.0);//3.14159;
109 
110  this->Knq_direction=0;
111  //used in Newton's Method for Equilibrium distribution function
112  this->defineVar("ToleranceX",T(1e-8));
113  this->defineVar("ToleranceF",T(1e-16));
114  }
115 
117  double Tolerance;
118  bool transient;
120 
122  double Planck;
123 
126 
127  double epsilon_ES;
128  double pi;
129 
133 
136  int fgamma;
138  double Prandtl;
139  double SpHeatRatio;
140 
141 #ifndef SWIG
143  {
144  if (this->KineticLinearSolver == 0)
145  {
146  LinearSolver* ls(new AMG());
147  ls->relativeTolerance = 1e-15;
148  ls->nMaxIterations = 100;
149  ls->verbosity=0;
150  this->KineticLinearSolver = ls;
151  }
152  return *this->KineticLinearSolver ;
153  }
154 #endif
155 
156 };
157 
158 #endif
double BoltzmannConstant
Definition: KineticBC.h:121
KineticBC()
Definition: KineticBC.h:15
bool printNormalizedResiduals
Definition: KineticBC.h:116
KineticVC()
Definition: KineticBC.h:38
LinearSolver & getKineticLinearSolver()
Definition: KineticBC.h:142
double relativeTolerance
Definition: KineticBC.h:124
Definition: AMG.h:27
void defineVar(const string varName, const T defaultValue)
Definition: FloatVarDict.h:94
string bcType
Definition: KineticBC.h:32
int nMaxIterations
Definition: LinearSolver.h:31
double relativeTolerance
Definition: LinearSolver.h:33
LinearSolver * KineticLinearSolver
Definition: KineticBC.h:134
double absoluteTolerance
Definition: KineticBC.h:125
string vcType
Definition: KineticBC.h:43