Трёхмерное вязкое течение в баке с подвижной стенкой.
Стенка y=h движется в направлении оси x со скоростью V. (верхняя)
Стенки x=0, x=l, z=1 непроницаемы и имеют вязкое трение.
Стенка z=0 непроницаема и не имеет вязкого трения.
Структура потока на стенке z=0.
Модуль скорости.
Среда не сжимаемая. Движение стационарное. Уравнение Стокса без конвективного и локального слагаемого.
Для общности введена сила гравитации.
\[Rho] = 1000; \[Nu] = 0.000001; V = 1; l = 1; h = 1; g = 9.80665; c \
= 0.0003;
\[ScriptCapitalR] = Cuboid[{0, 0, 0}, {l, h, 1}];
St = {
\[Rho] \[Nu] (\!\(
\*SubscriptBox[\(\[PartialD]\), \(x\ , x\)]\(u[x, y, z]\)\) + \!\(
\*SubscriptBox[\(\[PartialD]\), \(y, y\)]\(u[x, y, z]\)\) + \!\(
\*SubscriptBox[\(\[PartialD]\), \(z, z\)]\(u[x, y, z]\)\)) - \!\(
\*SubscriptBox[\(\[PartialD]\), \(\(x\)\(\ \)\)]\(p[x, y, z]\)\),
\[Rho] \[Nu] (\!\(
\*SubscriptBox[\(\[PartialD]\), \(x\ , x\)]\(v[x, y, z]\)\) + \!\(
\*SubscriptBox[\(\[PartialD]\), \(y, y\)]\(v[x, y, z]\)\) + \!\(
\*SubscriptBox[\(\[PartialD]\), \(z, z\)]\(v[x, y, z]\)\)) - \!\(
\*SubscriptBox[\(\[PartialD]\), \(y\)]\(p[x, y, z]\)\),
\[Rho] \[Nu] (\!\(
\*SubscriptBox[\(\[PartialD]\), \(x\ , x\)]\(w[x, y, z]\)\) + \!\(
\*SubscriptBox[\(\[PartialD]\), \(y, y\)]\(w[x, y, z]\)\) + \!\(
\*SubscriptBox[\(\[PartialD]\), \(z, z\)]\(w[x, y, z]\)\)) - \!\(
\*SubscriptBox[\(\[PartialD]\), \(z\)]\(p[x, y, z]\)\),
\!\(
\*SubscriptBox[\(\[PartialD]\), \(\(x\)\(\ \)\)]\(u[x, y, z]\)\) + \!\(
\*SubscriptBox[\(\[PartialD]\), \(y\)]\(v[x, y, z]\)\) + \!\(
\*SubscriptBox[\(\[PartialD]\), \(z\)]\(w[x, y, z]\)\)};
Di = {
DirichletCondition[{u[x, y, z] == 0, v[x, y, z] == 0,
w[x, y, z] == 0}, x == 0],
DirichletCondition[{u[x, y, z] == 0, v[x, y, z] == 0,
w[x, y, z] == 0}, x == l],
DirichletCondition[{u[x, y, z] == 0, v[x, y, z] == 0,
w[x, y, z] == 0}, y == 0],
DirichletCondition[{u[x, y, z] == V, v[x, y, z] == 0,
w[x, y, z] == 0}, y == h],
DirichletCondition[p[x, y, z] == 0, y == h],
DirichletCondition[{u[x, y, z] == 0, v[x, y, z] == 0,
w[x, y, z] == 0}, z == 1],
DirichletCondition[w[x, y, z] == 0, z == 0]
};
{xV, yV, zV, pressure} =
NDSolveValue[{St == {0, \[Rho] g, 0, 0}, Di}, {u, v, w,
p}, {x, y, z} \[Element] \[ScriptCapitalR],
Method -> {"FiniteElement",
"InterpolationOrder" -> {u -> 2, v -> 2, w -> 2, p -> 1},
"MeshOptions" -> {"MaxCellMeasure" -> c}}];
StreamPlot[{xV[x, y, 0], yV[x, y, 0]}, {x, 0, l}, {y, 0, h},
BoundaryStyle -> Directive[Red, Thick],
StreamColorFunction -> "Rainbow",
FrameLabel -> {Style["x", 16], Style["y", 16]},
PlotLegends -> Automatic, TargetUnits -> "m/c"]
SliceContourPlot3D[
Norm[{xV[x, y, z], yV[x, y, z],
zV[x, y, z]}], {{"ZStackedPlanes", {0, 1/2, 1}}, {"YStackedPlanes",
1}, {"XStackedPlanes", 1}}, {x, y,
z} \[Element] \[ScriptCapitalR], Contours -> 25,
ColorFunction -> "TemperatureMap", PlotLegends -> Automatic,
TargetUnits -> "m/c", Boxed -> True, Axes -> True]
Plot3D[pressure[x, y, 0], {x, 0, l}, {y, 0, h}]