Skip to content

Commit e66619a

Browse files
committed
AL: some manuals
1 parent b8fbb1a commit e66619a

14 files changed

+3366
-0
lines changed

doc/Manuals/COOLFluiD_FVM_ATD.pdf

136 KB
Binary file not shown.

doc/Manuals/COOLFluiD_FVM_ATD.tex

+1,225
Large diffs are not rendered by default.

doc/Manuals/COOLFluiD_FVM_ICP.pdf

177 KB
Binary file not shown.

doc/Manuals/COOLFluiD_FVM_ICP.tex

+701
Large diffs are not rendered by default.

doc/Manuals/COOLFluiD_FVM_MHD.pdf

147 KB
Binary file not shown.

doc/Manuals/COOLFluiD_FVM_MHD.tex

+754
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,309 @@
1+
\documentclass[11pt]{article}
2+
%*******************************************************************
3+
%--Packages
4+
%*******************************************************************
5+
\usepackage[final]{graphicx,epsfig}
6+
\usepackage{subfigure}
7+
\usepackage{subfigmat}
8+
\newcommand{\noi}{\noindent}
9+
10+
\setlength{\parindent}{0pt}
11+
\setlength{\parskip}{5pt plus 2pt minus 1 pt}
12+
\topmargin -5mm
13+
\evensidemargin 8mm
14+
\oddsidemargin 2mm
15+
\textwidth 158mm
16+
\textheight 230mm
17+
%\renewcommand{\baselinestretch}{1.0}
18+
\frenchspacing
19+
\sloppy
20+
21+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
22+
23+
\begin{document}
24+
\pagestyle{empty}
25+
26+
\begin{center}
27+
{\fontsize{14}{20}\bf
28+
User-manual for COOLFluiD RDS-Unsteady Navier-Stokes \\
29+
(version 2011.04) \\[10pt]}
30+
\end{center}
31+
32+
\begin{center}
33+
{Nad\`{e}ge Villedieu, \underline{[email protected]} \\
34+
Von Karman Institute, Aeronautics \& Aerospace Dept.}
35+
\end{center}
36+
37+
The test case presented here is solving a viscous unsteady flow over a cylinder at $Re=140$ and $M=0.2$. It is set up with adimensionnalized values, which means that the diameter of the cylinder
38+
is one and the density and velocity are one. The other parameters are computed such that the Mach and the Reynolds numbers are as expected.
39+
40+
\section{Options that are common to all CFcases}
41+
42+
Necessary modules to run this test case:
43+
\begin{verbatim}
44+
Simulator.Modules.Libs = libForwardEuler libCFmeshFileWriter libCFmeshFileReader
45+
libTecplotWriter libNavierStokes libFluctSplit libFluctSplitSystem
46+
libFluctSplitSpaceTime libFluctSplitSpaceTimeNavierStokes libGambit2CFmesh
47+
\end{verbatim}
48+
{\bf WATCH OUT:} The order of the libraries is very important!!! It must be in this order.
49+
50+
51+
\subsection{Physical Model}
52+
The physical model should be set as follows:
53+
\begin{verbatim}
54+
Simulator.SubSystem.Default.PhysicalModelType = NavierStokes2D
55+
56+
Simulator.SubSystem.NavierStokes2D.DiffTerm.ViscosityLaw = Constant
57+
Simulator.SubSystem.NavierStokes2D.DiffTerm.Constant.Value = 0.0000632911
58+
\end{verbatim}
59+
The viscosity coefficient is set to a constant value such that the Reynolds number is
60+
respected.
61+
62+
\subsection{Pseudo-time solver}
63+
In this case we use an explicit Forward Euler solver for the pseudo-time iterations. The pseudo-time process
64+
is explained in \cite{AIAA-paper}.
65+
To choose the type of pseudo-time discretisation the option is:
66+
\begin{verbatim}
67+
Simulator.SubSystem.ConvergenceMethod = FwdEuler
68+
\end{verbatim}
69+
And the CFL is defined by:
70+
\begin{verbatim}
71+
Simulator.SubSystem.FwdEuler.Data.CFL.Value = 0.6
72+
\end{verbatim}
73+
{\bf WATCH OUT:} This CFL number is not dictated by the past shield condition (\cite{mr-thesis}).\\
74+
75+
A possible set up of the stop condition of the pseudo-time is:
76+
\begin{verbatim}
77+
Simulator.SubSystem.FwdEuler.StopCondition = RelativeNormAndMaxIter
78+
Simulator.SubSystem.FwdEuler.RelativeNormAndMaxIter.RelativeNorm = -5.0
79+
Simulator.SubSystem.FwdEuler.RelativeNormAndMaxIter.MaxIter = 500
80+
\end{verbatim}
81+
In this case, the (pseudo-time) iterations will stop when the 500 iterations
82+
has been executed, or when the relative norm of the residual is $-5.0$ (the relative norm is
83+
the difference between the residual of the first and of the last iteration). This option is the most convenient,
84+
but it is also possible to check the absolute norm and the maximal number of iterations (\texttt{AbsoluteNormAndMaxIter}) or
85+
only the maximal number of iterations (\texttt{MaxNumberSteps}).\\
86+
87+
It is possible choose to print or not the evolution of the residuals:
88+
\begin{verbatim}
89+
Simulator.SubSystem.FwdEuler.Data.PrintHistory = false
90+
\end{verbatim}
91+
The residuals can be computed using different norms, it is better
92+
to use L2 norm. Then, it is also possible to define which variable should
93+
fufill the stop condition:
94+
\begin{verbatim}
95+
Simulator.SubSystem.FwdEuler.Data.NormRes = L2
96+
Simulator.SubSystem.FwdEuler.Data.L2.MonitoredVarID = 0
97+
Simulator.SubSystem.FwdEuler.Data.L2.ComputedVarID = 0 1 2 3
98+
\end{verbatim}
99+
\subsection{The mesh}
100+
The mesh is loaded and setup as follow:
101+
\begin{verbatim}
102+
Simulator.SubSystem.Default.listTRS = InnerCells wall in out symm_0 symm_1
103+
Simulator.SubSystem.MeshCreator = CFmeshFileReader
104+
Simulator.SubSystem.CFmeshFileReader.Data.FileName = kvs2.CFmesh
105+
\end{verbatim}
106+
107+
\section{RDS}
108+
\subsection{Solver}
109+
To choose the residual method as solver:
110+
\begin{verbatim}
111+
Simulator.SubSystem.SpaceMethod = FluctuationSplit
112+
\end{verbatim}
113+
When one want to restart from a previous solution this option should be on \texttt{true}
114+
\begin{verbatim}
115+
Simulator.SubSystem.FluctuationSplit.Restart = true
116+
\end{verbatim}
117+
{\bf WATCH OUT:} The default value of this boolean is \texttt{false}
118+
119+
120+
To define which variables are used in each step of the method (to write the solution, to update the
121+
residual, to average the solution in each cell in order to compute the Jacobian and to compute the diffusive term)
122+
\begin{verbatim}
123+
Simulator.SubSystem.FluctuationSplit.Data.SolutionVar = Cons
124+
Simulator.SubSystem.FluctuationSplit.Data.UpdateVar = Cons
125+
Simulator.SubSystem.FluctuationSplit.Data.DistribVar = Cons
126+
Simulator.SubSystem.FluctuationSplit.Data.LinearVar = Cons
127+
Simulator.SubSystem.FluctuationSplit.Data.DiffusiveVar = Cons
128+
\end{verbatim}
129+
{\bf WATCH OUT:} \textttt{DiffusiveVar} should always be Cons when using \texttt{UnsteadyNavierStokes}. The
130+
\texttt{LinearVar} are not very important when CRD \cite{mr-thesis} is used to compute the residual. It is better to put it to Roe when
131+
shocks are considered and N or Nlim schemes are used
132+
133+
To setup the quadrature rule used to compute the residual on the sides of the element:
134+
\begin{verbatim}
135+
Simulator.SubSystem.FluctuationSplit.Data.IntegratorQuadrature = GaussLegendre
136+
Simulator.SubSystem.FluctuationSplit.Data.IntegratorOrder = P3
137+
\end{verbatim}
138+
{\bf WATCH OUT:} Those line are extremely important for any system computations because the
139+
default quadrature rule is accurate only for linear functions
140+
141+
\subsection{Initialization}
142+
It is necessary to intialize the field and also the boundaries
143+
where a strong condition is used.
144+
145+
\begin{verbatim}
146+
Simulator.SubSystem.FluctuationSplit.InitComds = InitState \
147+
StrongNoSlipWallAdiabaticNS2D
148+
149+
150+
Simulator.SubSystem.FluctuationSplit.InitNames = InField InWall
151+
152+
Simulator.SubSystem.FluctuationSplit.InField.applyTRS = InnerCells
153+
Simulator.SubSystem.FluctuationSplit.InField.Vars = x y
154+
Simulator.SubSystem.FluctuationSplit.InField.Def = 1.0 1.0 0.0 350.9087378
155+
156+
Simulator.SubSystem.FluctuationSplit.InWall.applyTRS = wall
157+
\end{verbatim}
158+
159+
\section{Unsteady RDS for Navier-Stokes}
160+
161+
\subsection{Writing solutions}
162+
It is possible to change make the name of the output file dependent on the time:
163+
\begin{verbatim}
164+
Simulator.SubSystem.CFmesh.AppendTime = true
165+
Simulator.SubSystem.Tecplot.AppendTime = true
166+
\end{verbatim}
167+
168+
\subsection{Defenition of the time step}
169+
There are two possibilities to determine the time step.
170+
First, one can fix the value of the time step constant
171+
over all the computation:
172+
173+
\begin{verbatim}
174+
Simulator.SubSystem.SubSystemStatus.TimeStep = 0.002
175+
\end{verbatim}
176+
{\bf WATCH OUT:} When running in parallel it is mandatory to use this method!!
177+
178+
The second option is to determine the time step at every time iteration,
179+
then it is computed by $\Delta t= DT \_ Ratio \cdot MaxDT$, where $MaxDT$
180+
denotes the maximum time step respecting the past shield condition \cite{mr-thesis}
181+
182+
\begin{verbatim}
183+
Simulator.SubSystem.SubSystemStatus.TimeStep = 0.002
184+
Simulator.SubSystem.SubSystemStatus.ComputeDT = MaxDT
185+
Simulator.SubSystem.SubSystemStatus.MaxDT.DT_Ratio = 0.5
186+
\end{verbatim}
187+
{\bf WATCH OUT:} The first line is still necessary to fix the first time step. Moreover, this option can be used
188+
only if the simulation is ran in serial. Indeed, up to now, the time step are not synchronized.
189+
190+
Since there is a restriction on the time step, it is usually interested to know
191+
what is this limit. So, in general, it is better to first launch one simulation on one processor with two time steps
192+
and with non fixed time step. Like that it is possible to know what time step should be used. Anyway, in the case of
193+
a viscous flow, usually, the time step should be smaller that the past shield condition.
194+
195+
\subsection{Stop condition}
196+
There are two options to stop the computation. The first one is to
197+
decide to stop the simulation when a threshold time is reached:
198+
\begin{verbatim}
199+
Simulator.SubSystem.StopCondition = MaxTime
200+
Simulator.SubSystem.MaxTime.maxTime = 500.0
201+
\end{verbatim}
202+
{\bf WATCH OUT:} The time that will be reached is not exactly the one asked. Indeed, the simulation will stop
203+
as soon as the \texttt{maxTime} is reached or passed: at the last iteration,if the time step is bigger than the difference between the current
204+
time and the final one, then the final time will be bigger than \texttt{MaxTime}.
205+
206+
207+
The other possibility is to stop the computation when a number of time step
208+
has been reached
209+
\begin{verbatim}
210+
Simulator.SubSystem.StopCondition = MaxNumberSteps
211+
Simulator.SubSystem.MaxNumberSteps.nbSteps = 13000
212+
\end{verbatim}
213+
214+
215+
216+
\subsection{Solver}
217+
218+
First, we choose what is the strategy used to discretize the unsteady problem.
219+
The option used here is the space-time where the advective residual is computed using CRD (see \cite{mr-thesis})
220+
\begin{verbatim}
221+
Simulator.SubSystem.FluctuationSplit.Data.FluctSplitStrategy = STU_CRD
222+
\end{verbatim}
223+
{\bf WATCH OUT:} Only this strategy has been validated for the unsteady Navier-Stokes
224+
225+
The distribution coefficients are defined by the splitter, here we use the space-time version
226+
of LDA, two versions are possible \texttt{STKT$\_$SysLDAC} and \texttt{STKS$\_$SysLDAC}, only the first
227+
one has been validated for the current problem.
228+
\begin{verbatim}
229+
Simulator.SubSystem.FluctuationSplit.Data.SysSplitter = STKT_SysLDAC
230+
\end{verbatim}
231+
{\bf WATCH OUT:} When starting the simulation from scratch it may be better to start with the N scheme (\texttt{STKT$\_$SysNC}).\\
232+
233+
The command to define the diffusive term is:
234+
\begin{verbatim}
235+
Simulator.SubSystem.FluctuationSplit.Data.DiffusiveTerm = UnsteadyNavierStokes
236+
\end{verbatim}
237+
238+
239+
\subsection{Boundary conditions}
240+
In this case the wall of the cylinder is a non-slipping wall with an adiabatic condition
241+
for the energy, the inlet and outlet are strong subsonic conditions which are non-reflecting, and finally, for
242+
the top and bottom boundaries we use an hybrid boundary which check if the flow is getting in or out and
243+
then apply the corresponding conditions.
244+
\begin{verbatim}
245+
Simulator.SubSystem.FluctuationSplit.BcComds = StrongNoSlipWallAdiabaticNS2D \
246+
StrongSubOutletNonRefEuler2DCons \
247+
StrongSubInletNonRefEuler2DCons \
248+
WeakFarFieldEuler2DCons \
249+
WeakFarFieldEuler2DCons
250+
251+
Simulator.SubSystem.FluctuationSplit.BcNames = BCWall \
252+
BCOut \
253+
BCIn \
254+
BCSym1 \
255+
BCSym2
256+
\end{verbatim}
257+
258+
In the case of the wall and the outlet, only the TRS where the condition should be applied is
259+
necessary:
260+
\begin{verbatim}
261+
Simulator.SubSystem.FluctuationSplit.BCWall.applyTRS = wall
262+
Simulator.SubSystem.FluctuationSplit.BCOut.applyTRS = out
263+
\end{verbatim}
264+
265+
For the inlet it is necessary to define the inflow:
266+
\begin{verbatim}
267+
Simulator.SubSystem.FluctuationSplit.BCIn.applyTRS = in
268+
Simulator.SubSystem.FluctuationSplit.BCIn.Vars = x y t
269+
Simulator.SubSystem.FluctuationSplit.BCIn.InFlow = 1.0 1.0 0.0 350.9087378
270+
\end{verbatim}
271+
272+
273+
For the farfield it is necessary to give the total and static pressure and the total temperature.
274+
\begin{verbatim}
275+
Simulator.SubSystem.FluctuationSplit.BCSym1.applyTRS = symm_0
276+
Simulator.SubSystem.FluctuationSplit.BCSym1.Ttot = 0.488793964
277+
Simulator.SubSystem.FluctuationSplit.BCSym1.Ptot = 140.6641324
278+
Simulator.SubSystem.FluctuationSplit.BCSym1.P = 140.1634951
279+
280+
Simulator.SubSystem.FluctuationSplit.BCSym2.applyTRS = symm_1
281+
Simulator.SubSystem.FluctuationSplit.BCSym2.Ttot = 0.488793964
282+
Simulator.SubSystem.FluctuationSplit.BCSym2.Ptot = 140.6641324
283+
Simulator.SubSystem.FluctuationSplit.BCSym2.P = 140.1634951
284+
\end{verbatim}
285+
286+
287+
\subsection{Post-processing}
288+
It is possible to write in a file the evolution of the solution in one point:
289+
\begin{verbatim}
290+
Simulator.SubSystem.DataPostProcessing = DataProcessing
291+
Simulator.SubSystem.DataPostProcessingNames = DataProcessing2
292+
Simulator.SubSystem.DataProcessing2.ProcessRate = 1
293+
Simulator.SubSystem.DataProcessing2.Comds = SamplingPoint
294+
Simulator.SubSystem.DataProcessing2.Names = SPoint
295+
Simulator.SubSystem.DataProcessing2.SPoint.OutputFile = samplingbis.plt
296+
Simulator.SubSystem.DataProcessing2.SPoint.location = 1.0 0.0
297+
Simulator.SubSystem.DataProcessing2.SPoint.SaveRate = 1
298+
\end{verbatim}
299+
300+
301+
302+
\begin{thebibliography}{02}
303+
\bibitem{AIAA-paper} L. Koloszar ,N. Villedieu, T. Quintino, J. Anthoine and P. Rambaud. Application of Residual Distribution Method for Acoustic Wave Propagation.
304+
{\emph{AIAA journal}}, AIAA 2009-3116 (2009)
305+
\bibitem{mr-thesis} M. Ricchiuto. {\emph{Construction and Analysis of Compact Residual Discretizations for Conservation Laws on Unstructured Meshes}}. Universit{\'e} Libre de Bruxelles (2005),
306+
ISBN: 2-930389-16-8
307+
\end{thebibliography}
308+
309+
\end{document}

0 commit comments

Comments
 (0)