# Nondimensionalization choices for the forced, compressible Navier–Stokes

equations
Consider the dimensional, coordinate-independent form of the compressible Navier–Stokes equations
(1) o
t
Ρ = ÷V Ρ u +c
s
(2) o
t
Ρ u = ÷V u ? Ρ u ÷Vp +V Τ + f
(3)
o
t
Ρ e

= ÷V Ρ e

u +V
Κ
0
Μ
0
Μ VT ÷V p u +V Τ u + f u +q
where
(4) p = Γ ÷1 Ρ e

÷ Ρ
u u
2

(5)
T =
p
Ρ R
(6)
Μ = Μ
0
T
T
0
Β
(7) Λ = ÷
2
3
Μ
(8) Τ = Μ Vu +Vu +Λ V u I
with e

denoting the specific total energy and c
s
, f , and q being arbitrary volumetric forcing terms. Introducing nondimensional-
ized variables like t
-
=
t
t
0
In[1]:= density[1] ]
Ρ
0
t
0
,
Ρ
0
u
0
l
0
, c
0
¦;
momentum[1] ]
Ρ
0
u
0
t
0
,
Ρ
0
u
0
2
l
0
,
p
0
l
0
,
Τ
0
l
0
, f
0
¦;
energy[1] ]
Ρ
0
e

0
t
0
,
Ρ
0
e

0
u
0
l
0
,
Κ
0
T
0
l
0
2
,
p
0
u
0
l
0
,
Τ
0
u
0
l
0
, f
0
u
0
, q
0
¦;
pressure[1] ]p
0
, (Γ 1) Ρ
0
e

0
,
(Γ 1)
2
Ρ
0
u
0
2
¦;
temperature[1] ]T
0
,
p
0
Ρ
0
R
¦;
mu[1] {1, 1};
lambda[1] ]Λ
0
,
2
3
Μ
0
¦;
stress[1] ]Τ
0
,
Μ
0
u
0
l
0
,
Λ
0
u
0
l
0
¦;
Altogether, we have a coefficient collection like
In[9]:= base[i_] : {
density[i], momentum[i], energy[i],
pressure[i], temperature[i], mu[i], lambda[i], stress[i]
};
In[10]:= MatrixForm[base[1], TableAlignments Left]
Out[10]//MatrixForm=

Ρ
0
t
0
,
u
0
Ρ
0
l
0
, c
0

u
0
Ρ
0
t
0
,
u
0
2
Ρ
0
l
0
,
p
0
l
0
,
Τ
0
l
0
, f
0

Ρ
0
e

0
t
0
,
u
0
Ρ
0
e

0
l
0
,
T
0
Κ
0
l
0
2
,
p
0
u
0
l
0
,
u
0
Τ
0
l
0
, f
0
u
0
, q
0

p
0
, 1 Γ Ρ
0
e

0
,
1
2
1 Γ u
0
2
Ρ
0

T
0
,
p
0
R Ρ
0

1, 1
Λ
0
,
2 Μ
0
3

Τ
0
,
u
0
Μ
0
l
0
,
u
0
Λ
0
l
0

Inform Mathematica that all of these reference quantities are real-valued:
In[11]:= reference Select[
Flatten[base[1] //. {Times List, Power List, Plus List}],
Not[NumericQ[]] &] // DeleteDuplicates // Sort
Out[11]= R, Γ, c
0
, f
0
, l
0
, p
0
, q
0
, t
0
, T
0
, u
0
, Κ
0
, Λ
0
, Μ
0
, Ρ
0
, Τ
0
, e

0

In[12]:= \$Assumptions Prepend[
Element[reference, Reals]]
Out[12]= R Γ c
0
f
0
l
0
p
0
q
0
t
0
T
0
u
0
Κ
0
Λ
0
Μ
0
Ρ
0
Τ
0
e

0
Reals, R 0, Γ 0, c
0
0, f
0
0,
l
0
0, p
0
0, q
0
0, t
0
0, T
0
0, u
0
0, Κ
0
0, Λ
0
0, Μ
0
0, Ρ
0
0, Τ
0
0, e

0
0
We divide through by the first coefficient in each equation
In[13]:= density[2] density[1] / density[1][[1]];
In[14]:= momentum[2] momentum[1] / momentum[1][[1]];
In[15]:= energy[2] energy[1] / energy[1][[1]];
In[16]:= pressure[2] pressure[1] / pressure[1][[1]];
In[17]:= temperature[2] temperature[1] / temperature[1]#1];
In[18]:= mu[2] mu[1] / mu[1]#1];
In[19]:= lambda[2] lambda[1] / lambda[1][[1]];
In[20]:= stress[2] stress[1] / stress[1][[1]];
to get a collection like
2 NSNondimensionalizationForced.nb
In[21]:= MatrixForm[base[2], TableAlignments Left]
Out[21]//MatrixForm=
1,
t
0
u
0
l
0
,
c
0
t
0
Ρ
0

1,
t
0
u
0
l
0
,
p
0
t
0
l
0
u
0
Ρ
0
,
t
0
Τ
0
l
0
u
0
Ρ
0
,
f
0
t
0
u
0
Ρ
0

1,
t
0
u
0
l
0
,
t
0
T
0
Κ
0
l
0
2
Ρ
0
e

0
,
p
0
t
0
u
0
l
0
Ρ
0
e

0
,
t
0
u
0
Τ
0
l
0
Ρ
0
e

0
,
f
0
t
0
u
0
Ρ
0
e

0
,
q
0
t
0
Ρ
0
e

0

1,
1Γ Ρ
0
e

0
p
0
,
1Γ u
0
2
Ρ
0
2 p
0

1,
p
0
R T
0
Ρ
0

1, 1
1,
2 Μ
0
3 Λ
0

1,
u
0
Μ
0
l
0
Τ
0
,
u
0
Λ
0
l
0
Τ
0

We expect these derived quantities to appear
In[22]:= constants ]
Re
Ρ
0
u
0
l
0
Μ
0
,
Pr
Μ
0
C
p
Κ
0
,
C
p

Γ R
Γ 1
,
Ma
u
0
a
0
¦;
We now choose reference quantities to obtain the nondimensional equations:
NSNondimensionalizationForced.nb 3
In[23]:= rulesA ¦
Λ
0
Μ
0
,
a
0
Γ R T
0
,
e

0
a
0
2
,
t
0

l
0
u
0
,
p
0
Ρ
0
a
0
2
,
Τ
0

Μ
0
u
0
l
0
,
c
0
Ρ
0
1
t
0
,
f
0
Ρ
0
u
0
t
0
,
q
0
Ρ
0
a
0
2
t
0
¦;
caseA[1] base[2] //. rulesA // PowerExpand;
MatrixForm[caseA[1], TableAlignments Left]
Out[25]//MatrixForm=
1, 1, 1
1, 1,
R Γ T
0
u
0
2
,
Μ
0
l
0
u
0
Ρ
0
, 1
1, 1,
Κ
0
R Γ l
0
u
0
Ρ
0
, 1,
u
0
Μ
0
R Γ l
0
T
0
Ρ
0
,
u
0
2
R Γ T
0
, 1
1, 1 Γ,
1Γ u
0
2
2 R Γ T
0

1, Γ
1, 1
1,
2
3

1, 1, 1
Note that the complicated terms appearing in the momentum and energy equations are merely combinations of nondimensional
quantities:
In[26]:= ConstantRules[rules_, expr_] : Map[
(PowerExpand[1 //. constants //. rules] 1) &, expr]
In[27]:= caseA[2]
caseA[1] //. ConstantRules]rulesA, ¦
1
Re Pr (Γ 1)
, Re
1
,
1
2
(1 Γ) Ma
2
, Ma
2
, Ma
2
Re
1
, Ma
2
¦|;
Our final nondimensional coefficients, which can be matched term-by-term against the original equations, look as follows:
4 NSNondimensionalizationForced.nb
In[28]:= MatrixForm[caseA[2], TableAlignments Left]
Out[28]//MatrixForm=
1, 1, 1
1, 1,
1
Ma
2
,
1
Re
, 1
1, 1,
1
Pr Re 1Γ
, 1,
Ma
2
Re
, Ma
2
, 1
1, 1 Γ,
1
2
Ma
2
1 Γ
1, Γ
1, 1
1,
2
3

1, 1, 1
In this nondimensionalization, each of the forcing terms survives in the variable density, low Mach number limit. Body forcing
or body heating can be accomodated by replacing the corresponding volumetric term Φ with body-based Ρ Φ
b
and setting
Φ
b0
= Φ
0
Ρ
0
.
NSNondimensionalizationForced.nb 5