Conservative bridged overlap GGI verification case

Channel test case (7 cells) with sudden contraction using bridged overlap with
potentialFoam.
This commit is contained in:
Vuko Vukcevic 2018-04-25 12:37:23 +02:00
parent 6c22d372bd
commit 40530a7921
14 changed files with 570 additions and 0 deletions

View file

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 4.0 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 1);
boundaryField
{
walls
{
type fixedValue;
value uniform (0 0 1);
}
inlet
{
type fixedValue;
value uniform (0 0 1);
}
outlet
{
type zeroGradient;
}
movingSlider
{
type ggi;
}
staticSlider
{
type ggi;
}
}
// ************************************************************************* //

View file

@ -0,0 +1,40 @@
// -*- C++ -*-
// File generated by PyFoam - sorry for the ugliness
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
dimensions [ 0 2 -2 0 0 0 0 ];
internalField uniform 0;
boundaryField
{
walls
{
type zeroGradient;
}
staticSlider
{
type ggi;
}
movingSlider
{
type ggi;
}
inlet
{
type zeroGradient;
}
outlet
{
type fixedValue;
value uniform 0;
}
} // ************************************************************************* //

View file

@ -0,0 +1,11 @@
#!/bin/sh
# Source tutorial clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase
\rm -rf VTK
\rm -rf 0
\cp -r save 0
\rm -f constant/polyMesh/boundary
\rm -rf constant/polyMesh/sets

View file

@ -0,0 +1,13 @@
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
application="potentialFoam"
runApplication blockMesh
\cp -r boundary constant/polyMesh/.
runApplication setSet -batch setBatch.batch
runApplication setsToZones -noFlipMap
runApplication $application

View file

@ -0,0 +1,61 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
5
(
walls
{
type wall;
nFaces 24;
startFace 8;
}
inlet
{
type patch;
nFaces 1;
startFace 32;
}
outlet
{
type patch;
nFaces 3;
startFace 33;
}
movingSlider
{
type ggi;
nFaces 3;
startFace 36;
shadowPatch staticSlider;
zone movingSliderZone;
bridgeOverlap true;
}
staticSlider
{
type ggi;
nFaces 1;
startFace 39;
shadowPatch movingSlider;
zone staticSliderZone;
bridgeOverlap true;
}
)
// ************************************************************************* //

View file

@ -0,0 +1,110 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
vertices
(
(0 0 0)
(1 0 0)
(1 1 0)
(0 1 0)
(0 0 5)
(1 0 5)
(1 1 5)
(0 1 5)
(0 0 5)
(1 0 5)
(1 0.56 5)
(0 0.56 5)
(0 0 10)
(1 0 10)
(1 0.56 10)
(0 0.56 10)
);
blocks
(
hex (0 1 2 3 4 5 6 7) stationary (1 1 2) simpleGrading (1 1 1)
hex (8 9 10 11 12 13 14 15) moving (1 3 2) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
walls
{
type wall;
faces
(
(0 1 5 4)
(1 2 6 5)
(2 3 7 6)
(0 4 7 3)
(9 10 14 13)
(10 11 15 14)
(8 12 15 11)
(8 9 13 12)
);
}
inlet
{
type patch;
faces
(
(0 3 2 1)
);
}
outlet
{
type patch;
faces
(
(12 13 14 15)
);
}
movingSlider
{
type patch;
faces
(
(9 8 11 10)
);
}
staticSlider
{
type patch;
faces
(
(4 5 6 7)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //

View file

@ -0,0 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 4.0 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
transportModel Newtonian;
//nu nu [0 2 -1 0 0 0 0] 1e-5;
nu nu [0 2 -1 0 0 0 0] 0;
// ************************************************************************* //

View file

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 4.0 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 1);
boundaryField
{
walls
{
type fixedValue;
value uniform (0 0 1);
}
inlet
{
type fixedValue;
value uniform (0 0 1);
}
outlet
{
type zeroGradient;
}
movingSlider
{
type ggi;
}
staticSlider
{
type ggi;
}
}
// ************************************************************************* //

View file

@ -0,0 +1,40 @@
// -*- C++ -*-
// File generated by PyFoam - sorry for the ugliness
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
dimensions [ 0 2 -2 0 0 0 0 ];
internalField uniform 0;
boundaryField
{
walls
{
type zeroGradient;
}
staticSlider
{
type ggi;
}
movingSlider
{
type ggi;
}
inlet
{
type zeroGradient;
}
outlet
{
type fixedValue;
value uniform 0;
}
} // ************************************************************************* //

View file

@ -0,0 +1,3 @@
faceSet staticSliderZone new patchToFace staticSlider
faceSet movingSliderZone new patchToFace movingSlider
quit

View file

@ -0,0 +1,67 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.1 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application icoFoam;
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 1;
deltaT 0.001;
writeControl timeStep;
writeInterval 100;
purgeWrite 0;
writeFormat ascii;
writePrecision 10;
writeCompression compressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.2;
functions
(
ggiCheck
{
type ggiCheck;
phi phi;
functionObjectLibs ("libcheckFunctionObjects.so");
}
);
DebugSwitches
{
ggi 1;
GGIInterpolation 1;
}
// ************************************************************************* //

View file

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.1 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
div(phi,U) Gauss upwind;
div((muEff*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear limited 0.5;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default limited 0.5;
}
// ************************************************************************* //

View file

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.1 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver BiCGStab;
preconditioner Cholesky;
minIter 0;
maxIter 1000;
tolerance 1e-10;
relTol 0.0;
}
U
{
solver BiCGStab;
preconditioner DILU;
minIter 0;
maxIter 1000;
tolerance 1e-07;
relTol 0;
}
}
SIMPLE
{
nNonOrthogonalCorrectors 0;
}
PISO
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
}
// ************************************************************************* //

View file

@ -0,0 +1,4 @@
The conservative overlapping GGI needs certain top level changes for solvers
other than potentialFoam. Basically, all parts that make up the flux on the RHS
of pressure equation need to be interpolated together. This is not the case with
the latest version of time and under-relaxation consistent solvers.