mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: add new FO Streaming-Total Dynamic Mode Decomposition (STDMD)
STDMD (i.e. Streaming Total Dynamic Mode Decomposition) is a variant of
a data-driven dimensionality reduction method.
STDMD is being used as a mathematical post-processing tool to compute
a set of dominant modes out of a given flow (or dataset) each of which is
associated with a constant frequency and decay rate, so that dynamic
features of a given flow may become interpretable, and tractable.
Among other Dynamic Mode Decomposition (DMD) variants, STDMD is presumed
to provide the general DMD method capabilities alongside economised and
feasible memory and CPU usage.
Please refer to the header file documentation for further details.
ENH: add new STDMD tutorial, pimpleFoam/laminar/cylinder2D
This commit is contained in:
committed by
Andrew Heather
parent
ef9ee7a8b1
commit
730233cd15
@ -0,0 +1,51 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volVectorField;
|
||||
object U;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 1 -1 0 0 0 0];
|
||||
|
||||
internalField uniform (0.012984 0 0);
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
topAndBottom
|
||||
{
|
||||
type symmetry;
|
||||
}
|
||||
|
||||
"left|right"
|
||||
{
|
||||
type empty;
|
||||
}
|
||||
|
||||
cylinder
|
||||
{
|
||||
type noSlip;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,51 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
object p;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 2 -2 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
topAndBottom
|
||||
{
|
||||
type symmetry;
|
||||
}
|
||||
|
||||
"left|right"
|
||||
{
|
||||
type empty;
|
||||
}
|
||||
|
||||
cylinder
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
12
tutorials/incompressible/pimpleFoam/laminar/cylinder2D/Allclean
Executable file
12
tutorials/incompressible/pimpleFoam/laminar/cylinder2D/Allclean
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
cleanCase0
|
||||
|
||||
rm -rf dynamicCode
|
||||
rm -rf constant/coarseMesh
|
||||
rm -f system/coarseMesh/decomposeParDict
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
25
tutorials/incompressible/pimpleFoam/laminar/cylinder2D/Allrun
Executable file
25
tutorials/incompressible/pimpleFoam/laminar/cylinder2D/Allrun
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
./Allrun.pre
|
||||
|
||||
runApplication decomposePar
|
||||
|
||||
runParallel renumberMesh -overwrite
|
||||
|
||||
cp -f system/decomposeParDict system/coarseMesh
|
||||
|
||||
runApplication -s coarseMesh decomposePar -region coarseMesh
|
||||
|
||||
runParallel -s coarseMesh renumberMesh -overwrite -region coarseMesh
|
||||
|
||||
runParallel $(getApplication)
|
||||
|
||||
runParallel -s main redistributePar -reconstruct -latestTime
|
||||
|
||||
runParallel -s coarseMesh redistributePar -reconstruct \
|
||||
-region coarseMesh -time '50,100,200'
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
20
tutorials/incompressible/pimpleFoam/laminar/cylinder2D/Allrun.pre
Executable file
20
tutorials/incompressible/pimpleFoam/laminar/cylinder2D/Allrun.pre
Executable file
@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
runApplication -s coarseMesh blockMesh -dict system/blockMeshDict.coarse
|
||||
|
||||
runApplication snappyHexMesh -overwrite
|
||||
|
||||
mkdir -p constant/coarseMesh
|
||||
|
||||
mv -f constant/polyMesh constant/coarseMesh
|
||||
|
||||
runApplication -s main blockMesh -dict system/blockMeshDict.main
|
||||
|
||||
runApplication mirrorMesh -overwrite
|
||||
|
||||
restore0Dir
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -0,0 +1,23 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "constant";
|
||||
object transportProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
transportModel Newtonian;
|
||||
|
||||
nu 1.558e-5;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,21 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "constant";
|
||||
object turbulenceProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
simulationType laminar;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,74 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object blockMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
scale 1;
|
||||
|
||||
x0 -0.16;
|
||||
x1 0.8;
|
||||
y0 -0.24;
|
||||
y1 0.24;
|
||||
z0 -0.00375;
|
||||
z1 0.00375;
|
||||
|
||||
nx 90;
|
||||
ny 60;
|
||||
nz 1;
|
||||
|
||||
vertices
|
||||
(
|
||||
($x0 $y0 $z0)
|
||||
($x1 $y0 $z0)
|
||||
($x1 $y1 $z0)
|
||||
($x0 $y1 $z0)
|
||||
($x0 $y0 $z1)
|
||||
($x1 $y0 $z1)
|
||||
($x1 $y1 $z1)
|
||||
($x0 $y1 $z1)
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
edges
|
||||
(
|
||||
);
|
||||
|
||||
boundary
|
||||
(
|
||||
allPatches
|
||||
{
|
||||
type empty;
|
||||
inGroups (allPatches);
|
||||
faces
|
||||
(
|
||||
(3 7 6 2)
|
||||
(1 5 4 0)
|
||||
(0 4 7 3)
|
||||
(2 6 5 1)
|
||||
(0 3 2 1)
|
||||
(4 5 6 7)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
(
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -0,0 +1,277 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object blockMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
scale 1;
|
||||
|
||||
R 0.06; // Cylinder radius
|
||||
x0 #eval{ 0.5*$R };
|
||||
x2 #eval{ 2.38732*$R };
|
||||
x3 #eval{ 10.0*$R };
|
||||
xOutlet #eval{ 18.6667*$R };
|
||||
xInlet #eval{ -10.125*$R };
|
||||
|
||||
RsinPi8 #eval{ $R*sin(0.125*pi()) };
|
||||
RsinPi8n #eval{ -$RsinPi8 };
|
||||
RcosPi8 #eval{ $R*cos(0.125*pi()) };
|
||||
RcosPi8n #eval{ -$RcosPi8 };
|
||||
RsinPi4 #eval{ $R*sin(0.25*pi()) };
|
||||
|
||||
x2sinPi8 #eval{ $x2*sin(0.125*pi()) };
|
||||
x2sinPi8n #eval{ -$x2sinPi8 };
|
||||
x2cosPi8 #eval{ $x2*cos(0.125*pi()) };
|
||||
x2cosPi8n #eval{ -$x2cosPi8 };
|
||||
x2sinPi4 #eval{ $x2*sin(0.25*pi()) };
|
||||
|
||||
z0 -0.0075;
|
||||
z1 0.0075;
|
||||
nz 1;
|
||||
|
||||
|
||||
vertices #codeStream
|
||||
{
|
||||
codeInclude
|
||||
#{
|
||||
#include "pointField.H"
|
||||
#};
|
||||
|
||||
code
|
||||
#{
|
||||
pointField points(19);
|
||||
points[0] = point($R, 0, $z0);
|
||||
points[1] = point($x2, 0, $z0);
|
||||
points[2] = point($x3, 0, $z0);
|
||||
points[3] = point($x3, $x2sinPi4, $z0);
|
||||
points[4] = point($x2sinPi4, $x2sinPi4, $z0);
|
||||
points[5] = point($RsinPi4, $RsinPi4, $z0);
|
||||
points[6] = point($x3, $x3, $z0);
|
||||
points[7] = point($x2sinPi4, $x3, $z0);
|
||||
|
||||
// Mirror +x points to -x side
|
||||
points[11] = point(-points[0].x(), points[0].y(), points[0].z());
|
||||
points[12] = point(-points[1].x(), points[1].y(), points[1].z());
|
||||
points[13] = point(-points[2].x(), points[2].y(), points[2].z());
|
||||
points[14] = point(-points[3].x(), points[3].y(), points[3].z());
|
||||
points[15] = point(-points[4].x(), points[4].y(), points[4].z());
|
||||
points[16] = point(-points[5].x(), points[5].y(), points[5].z());
|
||||
points[17] = point(-points[6].x(), points[6].y(), points[6].z());
|
||||
points[18] = point(-points[7].x(), points[7].y(), points[7].z());
|
||||
|
||||
// Points on the y-z-plane
|
||||
points[8] = point(0, $x3, $z0);
|
||||
points[9] = point(0, $x2, $z0);
|
||||
points[10] = point(0, $R, $z0);
|
||||
|
||||
// Mirror -z points to +z side
|
||||
label sz = points.size();
|
||||
points.setSize(2*sz);
|
||||
for (label i = 0; i < sz; ++i)
|
||||
{
|
||||
const point& pt = points[i];
|
||||
points[i + sz] = point(pt.x(), pt.y(), $z1);
|
||||
}
|
||||
|
||||
// Add an inner cylinder
|
||||
sz = points.size();
|
||||
label nAdd = 6;
|
||||
points.setSize(sz + nAdd);
|
||||
|
||||
// Points within the inner cylinder
|
||||
points[sz] = point(0, 0, $z0);
|
||||
points[sz + 1] = point(0, $x0, $z0);
|
||||
points[sz + 2] = point($x0, $x0, $z0);
|
||||
points[sz + 3] = point($x0, 0, $z0);
|
||||
|
||||
// Mirror points from +x side to -x side
|
||||
points[sz + 4] =
|
||||
point(-points[sz + 2].x(), points[sz + 2].y(), points[sz + 2].z());
|
||||
points[sz + 5] =
|
||||
point(-points[sz + 3].x(), points[sz + 3].y(), points[sz + 3].z());
|
||||
|
||||
// Mirror -z points to +z side
|
||||
sz = points.size();
|
||||
points.setSize(sz + nAdd);
|
||||
for (label i = 0; i < nAdd; ++i)
|
||||
{
|
||||
const point& pt = points[i+sz-nAdd];
|
||||
points[i+sz] = point(pt.x(), pt.y(), $z1);
|
||||
}
|
||||
|
||||
// Add downstream and upstream blocks
|
||||
sz = points.size();
|
||||
nAdd = 6;
|
||||
points.setSize(sz + nAdd);
|
||||
|
||||
// Points on outlet
|
||||
points[sz] = point($xOutlet, 0, $z0);
|
||||
points[sz + 1] = point($xOutlet, $x3, $z0);
|
||||
points[sz + 4] = point($xOutlet, $x2sinPi4, $z0);
|
||||
|
||||
// Points on inlet
|
||||
points[sz + 2] = point($xInlet, 0, $z0);
|
||||
points[sz + 3] = point($xInlet, $x3, $z0);
|
||||
points[sz + 5] = point($xInlet, $x2sinPi4, $z0);
|
||||
|
||||
// Mirror -z points to +z side
|
||||
sz = points.size();
|
||||
points.setSize(sz + nAdd);
|
||||
for (label i = 0; i < nAdd; ++i)
|
||||
{
|
||||
const point& pt = points[i + sz - nAdd];
|
||||
points[i + sz] = point(pt.x(), pt.y(), $z1);
|
||||
}
|
||||
|
||||
os << points;
|
||||
#};
|
||||
};
|
||||
|
||||
|
||||
blocks
|
||||
(
|
||||
hex ( 5 4 9 10 24 23 28 29) (16 15 $nz) simpleGrading (1.6 1 1)
|
||||
hex ( 0 1 4 5 19 20 23 24) (16 15 $nz) simpleGrading (1.6 1 1)
|
||||
hex ( 1 2 3 4 20 21 22 23) (61 15 $nz) simpleGrading (1 1 1)
|
||||
hex ( 4 3 6 7 23 22 25 26) (61 61 $nz) simpleGrading (1 1 1)
|
||||
hex ( 9 4 7 8 28 23 26 27) (15 61 $nz) simpleGrading (1 1 1)
|
||||
hex (15 16 10 9 34 35 29 28) (16 15 $nz) simpleGrading (0.625 1 1)
|
||||
hex (12 11 16 15 31 30 35 34) (16 15 $nz) simpleGrading (0.625 1 1)
|
||||
hex (13 12 15 14 32 31 34 33) (61 15 $nz) simpleGrading (1 1 1)
|
||||
hex (14 15 18 17 33 34 37 36) (61 61 $nz) simpleGrading (1 1 1)
|
||||
hex (15 9 8 18 34 28 27 37) (15 61 $nz) simpleGrading (1 1 1)
|
||||
hex (2 50 54 3 21 56 60 22) (69 15 $nz) simpleGrading (1 1 1) // downstream
|
||||
hex (3 54 51 6 22 60 57 25) (69 61 $nz) simpleGrading (1 1 1)
|
||||
hex (52 13 14 55 58 32 33 61) (1 15 $nz) simpleGrading (1 1 1) // upstream
|
||||
hex (55 14 17 53 61 33 36 59) (1 61 $nz) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
edges
|
||||
(
|
||||
arc 0 5 ($RcosPi8 $RsinPi8 $z0)
|
||||
arc 5 10 ($RsinPi8 $RcosPi8 $z0)
|
||||
arc 1 4 ($x2cosPi8 $x2sinPi8 $z0)
|
||||
arc 4 9 ($x2sinPi8 $x2cosPi8 $z0)
|
||||
arc 19 24 ($RcosPi8 $RsinPi8 $z1)
|
||||
arc 24 29 ($RsinPi8 $RcosPi8 $z1)
|
||||
arc 20 23 ($x2cosPi8 $x2sinPi8 $z1)
|
||||
arc 23 28 ($x2sinPi8 $x2cosPi8 $z1)
|
||||
arc 11 16 ($RcosPi8n $RsinPi8 $z0)
|
||||
arc 16 10 ($RsinPi8n $RcosPi8 $z0)
|
||||
arc 12 15 ($x2cosPi8n $x2sinPi8 $z0)
|
||||
arc 15 9 ($x2sinPi8n $x2cosPi8 $z0)
|
||||
arc 30 35 ($RcosPi8n $RsinPi8 $z1)
|
||||
arc 35 29 ($RsinPi8n $RcosPi8 $z1)
|
||||
arc 31 34 ($x2cosPi8n $x2sinPi8 $z1)
|
||||
arc 34 28 ($x2sinPi8n $x2cosPi8 $z1)
|
||||
);
|
||||
|
||||
boundary
|
||||
(
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(53 59 61 55)
|
||||
(55 61 58 52)
|
||||
);
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(60 57 51 54)
|
||||
(56 60 54 50)
|
||||
);
|
||||
}
|
||||
topAndBottom
|
||||
{
|
||||
type symmetry;
|
||||
faces
|
||||
(
|
||||
(59 53 17 36)
|
||||
(36 17 18 37)
|
||||
(37 18 8 27)
|
||||
(27 8 7 26)
|
||||
(26 7 6 25)
|
||||
(25 6 51 57)
|
||||
(52 58 32 13)
|
||||
(13 32 31 12)
|
||||
(12 31 30 11)
|
||||
(0 19 20 1)
|
||||
(1 20 21 2)
|
||||
(2 21 56 50)
|
||||
);
|
||||
}
|
||||
left
|
||||
{
|
||||
type empty;
|
||||
faces
|
||||
(
|
||||
(55 52 13 14)
|
||||
(53 55 14 17)
|
||||
(13 12 15 14)
|
||||
(14 15 18 17)
|
||||
(15 9 8 18)
|
||||
(12 11 16 15)
|
||||
(15 16 10 9)
|
||||
(9 10 5 4)
|
||||
(5 0 1 4)
|
||||
(9 4 7 8)
|
||||
(4 3 6 7)
|
||||
(1 2 3 4)
|
||||
(3 2 50 54)
|
||||
(6 3 54 51)
|
||||
);
|
||||
}
|
||||
right
|
||||
{
|
||||
type empty;
|
||||
faces
|
||||
(
|
||||
(59 36 33 61)
|
||||
(61 33 32 58)
|
||||
(36 37 34 33)
|
||||
(33 34 31 32)
|
||||
(37 27 28 34)
|
||||
(27 26 23 28)
|
||||
(26 25 22 23)
|
||||
(23 22 21 20)
|
||||
(25 57 60 22)
|
||||
(22 60 56 21)
|
||||
(24 23 20 19)
|
||||
(28 23 24 29)
|
||||
(34 28 29 35)
|
||||
(31 34 35 30)
|
||||
);
|
||||
}
|
||||
cylinder
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(29 24 5 10)
|
||||
(24 19 0 5)
|
||||
(30 35 16 11)
|
||||
(35 29 10 16)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
();
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,47 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object fvSchemes;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
ddtSchemes
|
||||
{
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
{
|
||||
}
|
||||
|
||||
divSchemes
|
||||
{
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
{
|
||||
}
|
||||
|
||||
interpolationSchemes
|
||||
{
|
||||
}
|
||||
|
||||
snGradSchemes
|
||||
{
|
||||
}
|
||||
|
||||
fluxRequired
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,27 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object fvSolution;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
solvers
|
||||
{
|
||||
}
|
||||
|
||||
PIMPLE
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,229 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object controlDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
application pimpleFoam;
|
||||
|
||||
startFrom startTime;
|
||||
|
||||
startTime 0;
|
||||
|
||||
stopAt endTime;
|
||||
|
||||
endTime 200;
|
||||
|
||||
deltaT 0.05;
|
||||
|
||||
writeControl runTime;
|
||||
|
||||
writeInterval 50;
|
||||
|
||||
purgeWrite 0;
|
||||
|
||||
writeFormat ascii;
|
||||
|
||||
writePrecision 16;
|
||||
|
||||
timeFormat general;
|
||||
|
||||
timePrecision 8;
|
||||
|
||||
runTimeModifiable false;
|
||||
|
||||
|
||||
functions
|
||||
{
|
||||
mapFields1
|
||||
{
|
||||
type mapFields;
|
||||
libs (fieldFunctionObjects);
|
||||
mapRegion coarseMesh;
|
||||
mapMethod cellVolumeWeight;
|
||||
consistent no;
|
||||
patchMap ();
|
||||
cuttingPatches ();
|
||||
fields ( U p );
|
||||
|
||||
timeStart 10;
|
||||
timeEnd 2000;
|
||||
|
||||
executeControl timeStep;
|
||||
executeInterval 10;
|
||||
|
||||
writeControl timeStep;
|
||||
writeInterval 50;
|
||||
}
|
||||
|
||||
STDMD1U
|
||||
{
|
||||
// Mandatory entries
|
||||
type STDMD;
|
||||
libs (fieldFunctionObjects);
|
||||
field U;
|
||||
|
||||
// Optional entries
|
||||
modeSorter firstSnap;
|
||||
|
||||
// Optional (inherited) entries
|
||||
region coarseMesh; // mapFields must be executed before.
|
||||
timeStart 10;
|
||||
executeControl timeStep;
|
||||
executeInterval 10;
|
||||
writeControl onEnd;
|
||||
}
|
||||
|
||||
STDMD1p
|
||||
{
|
||||
// Mandatory entries
|
||||
type STDMD;
|
||||
libs (fieldFunctionObjects);
|
||||
field p;
|
||||
|
||||
// Optional entries
|
||||
modeSorter firstSnap;
|
||||
|
||||
// Optional (inherited) entries
|
||||
region coarseMesh;
|
||||
timeStart 10;
|
||||
executeControl timeStep;
|
||||
executeInterval 10;
|
||||
writeControl onEnd;
|
||||
}
|
||||
|
||||
STDMD2U
|
||||
{
|
||||
// Mandatory entries
|
||||
type STDMD;
|
||||
libs (fieldFunctionObjects);
|
||||
field U;
|
||||
|
||||
// Optional entries
|
||||
modeSorter firstSnap;
|
||||
nModes 2;
|
||||
maxRank 2;
|
||||
nGramSchmidt 5;
|
||||
fMin 0;
|
||||
fMax 1000000000;
|
||||
testEigen true;
|
||||
dumpEigen true;
|
||||
minBasis 0.00000001;
|
||||
minEVal 0.00000001;
|
||||
absTol 0.001;
|
||||
relTol 0.0001;
|
||||
|
||||
// Optional (inherited) entries
|
||||
timeStart 50;
|
||||
timeEnd 2000;
|
||||
executeControl timeStep;
|
||||
executeInterval 10;
|
||||
writeControl onEnd;
|
||||
}
|
||||
|
||||
STDMD3U
|
||||
{
|
||||
// Mandatory entries
|
||||
type STDMD;
|
||||
libs (fieldFunctionObjects);
|
||||
field U;
|
||||
|
||||
// Optional entries
|
||||
modeSorter firstSnap;
|
||||
|
||||
// Optional (inherited) entries
|
||||
region coarseMesh;
|
||||
timeStart 10;
|
||||
timeEnd 150;
|
||||
executeControl timeStep;
|
||||
executeInterval 10;
|
||||
writeControl runTime;
|
||||
writeInterval 50;
|
||||
}
|
||||
|
||||
STDMD4U
|
||||
{
|
||||
// Mandatory entries
|
||||
type STDMD;
|
||||
libs (fieldFunctionObjects);
|
||||
field U;
|
||||
|
||||
// Optional entries
|
||||
modeSorter kiewat;
|
||||
|
||||
// Optional (inherited) entries
|
||||
region coarseMesh;
|
||||
timeStart 10;
|
||||
executeControl timeStep;
|
||||
executeInterval 10;
|
||||
writeControl onEnd;
|
||||
}
|
||||
|
||||
STDMD4p
|
||||
{
|
||||
// Mandatory entries
|
||||
type STDMD;
|
||||
libs (fieldFunctionObjects);
|
||||
field p;
|
||||
|
||||
// Optional entries
|
||||
modeSorter kiewat;
|
||||
|
||||
// Optional (inherited) entries
|
||||
region coarseMesh;
|
||||
timeStart 10;
|
||||
executeControl timeStep;
|
||||
executeInterval 10;
|
||||
writeControl onEnd;
|
||||
}
|
||||
|
||||
STDMD5U
|
||||
{
|
||||
// Mandatory entries
|
||||
type STDMD;
|
||||
libs (fieldFunctionObjects);
|
||||
field U;
|
||||
|
||||
// Optional entries
|
||||
modeSorter kouZhang;
|
||||
|
||||
// Optional (inherited) entries
|
||||
region coarseMesh;
|
||||
timeStart 10;
|
||||
executeControl timeStep;
|
||||
executeInterval 10;
|
||||
writeControl onEnd;
|
||||
}
|
||||
|
||||
STDMD5p
|
||||
{
|
||||
// Mandatory entries
|
||||
type STDMD;
|
||||
libs (fieldFunctionObjects);
|
||||
field p;
|
||||
|
||||
// Optional entries
|
||||
modeSorter kouZhang;
|
||||
|
||||
// Optional (inherited) entries
|
||||
region coarseMesh;
|
||||
timeStart 10;
|
||||
executeControl timeStep;
|
||||
executeInterval 10;
|
||||
writeControl onEnd;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,28 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object decomposeParDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
numberOfSubdomains 8;
|
||||
|
||||
method hierarchical;
|
||||
|
||||
coeffs
|
||||
{
|
||||
n (8 1 1);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,56 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object fvSchemes;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
ddtSchemes
|
||||
{
|
||||
default Euler;
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
{
|
||||
default Gauss linear;
|
||||
}
|
||||
|
||||
divSchemes
|
||||
{
|
||||
default Gauss linear;
|
||||
div((nuEff*dev(T(grad(U))))) Gauss linear;
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
{
|
||||
default Gauss linear corrected;
|
||||
}
|
||||
|
||||
interpolationSchemes
|
||||
{
|
||||
default linear;
|
||||
}
|
||||
|
||||
snGradSchemes
|
||||
{
|
||||
default corrected;
|
||||
}
|
||||
|
||||
fluxRequired
|
||||
{
|
||||
default no;
|
||||
p ;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,56 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object fvSolution;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
solvers
|
||||
{
|
||||
p
|
||||
{
|
||||
solver GAMG;
|
||||
smoother DICGaussSeidel;
|
||||
tolerance 1e-6;
|
||||
relTol 0.01;
|
||||
}
|
||||
|
||||
pFinal
|
||||
{
|
||||
$p;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
U
|
||||
{
|
||||
solver smoothSolver;
|
||||
smoother symGaussSeidel;
|
||||
tolerance 1e-05;
|
||||
relTol 0.1;
|
||||
}
|
||||
|
||||
UFinal
|
||||
{
|
||||
$U;
|
||||
relTol 0;
|
||||
}
|
||||
}
|
||||
|
||||
PIMPLE
|
||||
{
|
||||
nNonOrthogonalCorrectors 0;
|
||||
nCorrectors 2;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,27 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object mirrorMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
planeType pointAndNormal;
|
||||
|
||||
pointAndNormalDict
|
||||
{
|
||||
point (0 0 0);
|
||||
normal (0 -1 0);
|
||||
}
|
||||
|
||||
planeTolerance 1e-3;
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,83 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1912 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object snappyHexMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
castellatedMesh true;
|
||||
snap false;
|
||||
addLayers false;
|
||||
|
||||
geometry
|
||||
{
|
||||
cylinder
|
||||
{
|
||||
type searchableCylinder;
|
||||
point1 (0 0 -0.00375);
|
||||
point2 (0 0 0.00375);
|
||||
radius 0.06;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
castellatedMeshControls
|
||||
{
|
||||
maxLocalCells 100000;
|
||||
maxGlobalCells 100000000;
|
||||
minRefinementCells 10;
|
||||
maxLoadUnbalance 0.10;
|
||||
nCellsBetweenLevels 1;
|
||||
resolveFeatureAngle 30;
|
||||
allowFreeStandingZoneFaces true;
|
||||
features
|
||||
();
|
||||
refinementSurfaces
|
||||
{
|
||||
cylinder
|
||||
{
|
||||
level (0 0);
|
||||
patchInfo
|
||||
{
|
||||
type empty;
|
||||
inGroups (allPatches);
|
||||
}
|
||||
}
|
||||
};
|
||||
refinementRegions{};
|
||||
locationInMesh (-0.1 -0.2 0);
|
||||
}
|
||||
|
||||
|
||||
snapControls
|
||||
{
|
||||
nSmoothPatch 3;
|
||||
tolerance 2.0;
|
||||
nSolveIter 100;
|
||||
nRelaxIter 5;
|
||||
}
|
||||
|
||||
|
||||
addLayersControls
|
||||
{}
|
||||
|
||||
|
||||
meshQualityControls
|
||||
{
|
||||
#includeEtc "caseDicts/meshQualityDict"
|
||||
}
|
||||
|
||||
debug 0;
|
||||
mergeTolerance 1e-6;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
Reference in New Issue
Block a user