In this chapter, we will compute the leading eigenvalues and eigenvectors for Rayleigh–Bénard Convection (RBC). We have the analytical solution for the base flow, which is simply the solution of the conduction equation for the temperature field in the absence of fluid motion (the same solution used as the initial condition in the previous chapter). Therefore, U = 0 and 1 .
= 1 - y. Our goal is to reproduce the value of the critical Rayleigh number, Rac = 1707.762, first predicated by ChandrasekharFirst, we will perform linear stability analysis for Ra = 1900 and Pr = 0.71. In the
$NEKTUTORIAL/LSA/Ra_1900
folder there is a file called rbc-LSA.xml
. This file is similar to
rbc-DNS.xml
, but contains additional instructions to perform the linear stability analysis.
SOLVERINFO
options which are related to the
stability analysis.
kdim=8
: dimension of Krylov-space,
nvec=1
: number of requested eigenvalues,
nits=500
: number of maximum allowed iterations,
evtol=1e-7
: accepted tolerance on the eigenvalues and it determines the stopping
criterion of the method.
InitialConditions
. We will use the random initial
condition, which is implemented by using following within the CONDITIONS
section.
1<FUNCTION NAME="InitialConditions"> 2 <E VAR="u" VALUE="awgn(0.0001)" /> 3 <E VAR="v" VALUE="awgn(0.0001)" /> 4 <E VAR="T" VALUE="awgn(0.0001)" /> 5 <E VAR="p" VALUE="0" /> 6</FUNCTION>
BaseFlow
. Set the following function for the base
flow:
U | = 0 | (3.1) |
V | = 0 | (3.2) |
= 1 - y | (3.3) | |
P | = 0 | (3.4) |
$NEK/IncNavierStokesSolver rbc-LSA.xml
EV: 0 1.13325 0 1.25088 0 Writing: "rbc-LSA_eig_0.fld" (0.015323s, XML)
In [1]: Ra = np.array([1600, 1700, 1800, 1900]) In [2]: sigma = np.array([-0.731021, -0.0519525, 0.608177, 1.25088]) In [3]: np.lnterp(0, sigma, Ra) Out[3]: 1707.8700467105318
This completes the tutorial.