tutorials: pipeCyclic: Overhaul
The refinement cell set is now generated directly using boxToCell. The mesh now uses cyclic, rather than cyclicAMI, patches so that propagation of the refinement across the coupling can be tested. Field files have been simplified by using #includeEtc to set constraints. A best practice velocity/pressure specification has been set for the outlet boundary. Unused fields and settings have been removed.
This commit is contained in:
@ -20,34 +20,25 @@ internalField uniform (1 0 0);
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
inlet
|
||||
{
|
||||
type codedFixedValue;
|
||||
value uniform (1 0 0);
|
||||
name swirl;
|
||||
code #{
|
||||
code
|
||||
#{
|
||||
const vector axis(1, 0, 0);
|
||||
|
||||
vectorField v(2.0*this->patch().Cf() ^ axis);
|
||||
v.replace(vector::X, 1.0);
|
||||
vectorField v(2*this->patch().Cf() ^ axis);
|
||||
v.replace(vector::X, 1);
|
||||
operator==(v);
|
||||
#};
|
||||
value $internalField;
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue uniform (1 0 0);
|
||||
value uniform (1 0 0);
|
||||
}
|
||||
side1
|
||||
{
|
||||
type cyclicAMI;
|
||||
value uniform (1 0 0);
|
||||
}
|
||||
side2
|
||||
{
|
||||
type cyclicAMI;
|
||||
value uniform (1 0 0);
|
||||
type pressureInletOutletVelocity;
|
||||
value $internalField;
|
||||
}
|
||||
walls
|
||||
{
|
||||
|
||||
@ -20,32 +20,24 @@ internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
inlet
|
||||
{
|
||||
type turbulentMixingLengthDissipationRateInlet;
|
||||
mixingLength 0.5;
|
||||
value uniform 1;
|
||||
value $internalField;
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue uniform 1;
|
||||
value uniform 1;
|
||||
}
|
||||
side1
|
||||
{
|
||||
type cyclicAMI;
|
||||
value uniform 1;
|
||||
}
|
||||
side2
|
||||
{
|
||||
type cyclicAMI;
|
||||
value uniform 1;
|
||||
inletValue $internalField;
|
||||
value $internalField;
|
||||
}
|
||||
walls
|
||||
{
|
||||
type epsilonWallFunction;
|
||||
value uniform 1;
|
||||
value $internalField;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -20,27 +20,19 @@ internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
inlet
|
||||
{
|
||||
type turbulentIntensityKineticEnergyInlet;
|
||||
intensity 0.05;
|
||||
value uniform 1;
|
||||
value $internalField;
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type inletOutlet;
|
||||
inletValue uniform 1;
|
||||
value uniform 1;
|
||||
}
|
||||
side1
|
||||
{
|
||||
type cyclicAMI;
|
||||
value uniform 1;
|
||||
}
|
||||
side2
|
||||
{
|
||||
type cyclicAMI;
|
||||
value uniform 1;
|
||||
inletValue $internalField;
|
||||
value $internalField;
|
||||
}
|
||||
walls
|
||||
{
|
||||
|
||||
@ -1,48 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: dev
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object nuTilda;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 2 -1 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
inlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
side1
|
||||
{
|
||||
type cyclicAMI;
|
||||
value uniform 0;
|
||||
}
|
||||
side2
|
||||
{
|
||||
type cyclicAMI;
|
||||
value uniform 0;
|
||||
}
|
||||
walls
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -20,30 +20,22 @@ internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
inlet
|
||||
{
|
||||
type calculated;
|
||||
value uniform 0;
|
||||
value $internalField;
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type calculated;
|
||||
value uniform 0;
|
||||
}
|
||||
side1
|
||||
{
|
||||
type cyclicAMI;
|
||||
value uniform 0;
|
||||
}
|
||||
side2
|
||||
{
|
||||
type cyclicAMI;
|
||||
value uniform 0;
|
||||
value $internalField;
|
||||
}
|
||||
walls
|
||||
{
|
||||
type nutkWallFunction;
|
||||
value uniform 0;
|
||||
value $internalField;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -20,24 +20,17 @@ internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
inlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 0;
|
||||
}
|
||||
side1
|
||||
{
|
||||
type cyclicAMI;
|
||||
value uniform 0;
|
||||
}
|
||||
side2
|
||||
{
|
||||
type cyclicAMI;
|
||||
value uniform 0;
|
||||
type totalPressure;
|
||||
p0 uniform 0;
|
||||
value $internalField;
|
||||
}
|
||||
walls
|
||||
{
|
||||
|
||||
@ -4,8 +4,6 @@ cd ${0%/*} || exit 1 # Run from this directory
|
||||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
rm -f 0/cellDist
|
||||
|
||||
cleanCase
|
||||
cleanCase & rm -f 0/cellDist
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -9,7 +9,7 @@ application=$(getApplication)
|
||||
|
||||
runApplication blockMesh
|
||||
runApplication topoSet
|
||||
runApplication refineHexMesh c0 -overwrite
|
||||
runApplication refineHexMesh c0 -noFields -overwrite
|
||||
|
||||
runApplication decomposePar -cellDist
|
||||
runParallel $application
|
||||
|
||||
@ -15,36 +15,31 @@ FoamFile
|
||||
|
||||
convertToMeters 1;
|
||||
|
||||
//- Half angle of wedge in degrees
|
||||
halfAngle 45.0;
|
||||
//- Half angle of wedge in degrees [deg]
|
||||
halfAngle 45;
|
||||
|
||||
//- Radius of pipe [m]
|
||||
radius 0.5;
|
||||
|
||||
|
||||
//- Derived quantities
|
||||
radHalfAngle #calc "degToRad($halfAngle)";
|
||||
y #calc "$radius*sin($radHalfAngle)";
|
||||
minY #calc "-1.0*$y";
|
||||
z #calc "$radius*cos($radHalfAngle)";
|
||||
minZ #calc "-1.0*$z";
|
||||
|
||||
vertices
|
||||
(
|
||||
(0.0 0.0 0) //0
|
||||
(10 0.0 0)
|
||||
(10 0.0 0) //2
|
||||
(0.0 0.0 0)
|
||||
|
||||
(0.0 $minY $z) //4
|
||||
(10 $minY $z)
|
||||
(10 $y $z) //6
|
||||
(0.0 $y $z)
|
||||
|
||||
(0 0 0)
|
||||
(10 0 0)
|
||||
(10 0 0)
|
||||
(0 0 0)
|
||||
(0 #neg $y $z)
|
||||
(10 #neg $y $z)
|
||||
(10 $y $z)
|
||||
(0 $y $z)
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
// inlet block
|
||||
hex (0 1 2 3 4 5 6 7) (50 5 5) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
@ -76,30 +71,22 @@ boundary
|
||||
|
||||
side1
|
||||
{
|
||||
type cyclicAMI;
|
||||
type cyclic;
|
||||
neighbourPatch side2;
|
||||
faces
|
||||
(
|
||||
(0 1 5 4)
|
||||
);
|
||||
|
||||
transformType rotational;
|
||||
rotationAxis (1 0 0);
|
||||
rotationCentre (0 0 0);
|
||||
}
|
||||
|
||||
side2
|
||||
{
|
||||
type cyclicAMI;
|
||||
type cyclic;
|
||||
neighbourPatch side1;
|
||||
faces
|
||||
(
|
||||
(7 6 2 3)
|
||||
);
|
||||
|
||||
transformType rotational;
|
||||
rotationAxis (1 0 0);
|
||||
rotationCentre (0 0 0);
|
||||
}
|
||||
|
||||
walls
|
||||
|
||||
@ -30,9 +30,6 @@ divSchemes
|
||||
div(phi,U) bounded Gauss limitedLinearV 1;
|
||||
div(phi,k) bounded Gauss limitedLinear 1;
|
||||
div(phi,epsilon) bounded Gauss limitedLinear 1;
|
||||
div(phi,R) bounded Gauss limitedLinear 1;
|
||||
div(R) Gauss linear;
|
||||
div(phi,nuTilda) bounded Gauss limitedLinear 1;
|
||||
div((nuEff*dev2(T(grad(U))))) Gauss linear;
|
||||
}
|
||||
|
||||
|
||||
@ -20,7 +20,6 @@ solvers
|
||||
{
|
||||
solver GAMG;
|
||||
smoother GaussSeidel;
|
||||
|
||||
tolerance 1e-06;
|
||||
relTol 0.05;
|
||||
}
|
||||
@ -28,7 +27,6 @@ solvers
|
||||
pFinal
|
||||
{
|
||||
$p;
|
||||
tolerance 1e-06;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
@ -43,23 +41,14 @@ solvers
|
||||
"(U|k|epsilon)Final"
|
||||
{
|
||||
$U;
|
||||
tolerance 1e-05;
|
||||
relTol 0;
|
||||
}
|
||||
}
|
||||
|
||||
PIMPLE
|
||||
{
|
||||
nOuterCorrectors 4;
|
||||
nCorrectors 1;
|
||||
nNonOrthogonalCorrectors 0;
|
||||
pRefCell 0;
|
||||
pRefValue 0;
|
||||
}
|
||||
|
||||
SIMPLE
|
||||
{
|
||||
nNonOrthogonalCorrectors 0;
|
||||
|
||||
residualControl
|
||||
{
|
||||
p 1e-2;
|
||||
|
||||
@ -16,44 +16,12 @@ FoamFile
|
||||
|
||||
actions
|
||||
(
|
||||
{
|
||||
name f0;
|
||||
type faceSet;
|
||||
action new;
|
||||
source patchToFace;
|
||||
patch "side1";
|
||||
}
|
||||
{
|
||||
name f0;
|
||||
type faceSet;
|
||||
action subset;
|
||||
source boxToFace;
|
||||
box (0 -100 -100)(100 -0.2 100);
|
||||
}
|
||||
{
|
||||
name c0;
|
||||
type cellSet;
|
||||
action new;
|
||||
source faceToCell;
|
||||
set f0;
|
||||
option any;
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
name walls;
|
||||
type faceSet;
|
||||
action new;
|
||||
source patchToFace;
|
||||
patch "walls";
|
||||
}
|
||||
{
|
||||
name c0;
|
||||
type cellSet;
|
||||
action delete;
|
||||
source faceToCell;
|
||||
set walls;
|
||||
option any;
|
||||
source boxToCell;
|
||||
box (-1e6 -1e6 -1e6)(1e6 -0.15 0.3);
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user