GIT: Resolved conflict

This commit is contained in:
Andrew Heather
2016-12-14 15:56:58 +00:00
779 changed files with 25526 additions and 42273 deletions

View File

@ -7,6 +7,6 @@ cd ${0%/*} || exit 1 # Run from this directory
restore0Dir
runApplication blockMesh
runApplication $(getApplication) -withFunctionObjects -writePhi -writep
runApplication streamFunction
runApplication postProcess -func streamFunction
#------------------------------------------------------------------------------

View File

@ -7,6 +7,6 @@ cd ${0%/*} || exit 1 # Run from this directory
restore0Dir
runApplication blockMesh
runApplication $(getApplication) -writePhi -writep
runApplication streamFunction
runApplication postProcess -func streamFunction
#------------------------------------------------------------------------------

View File

@ -15,11 +15,11 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
solver solidBody;
solidBodyMotionFvMeshCoeffs
solidBodyCoeffs
{
cellZone rotating;

View File

@ -17,9 +17,11 @@ FoamFile
#include "${FOAM_CASE}/constant/caseSettings"
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
cellZone rotatingZone;

View File

@ -0,0 +1,55 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
inlet
{
type outletMappedUniformInletHeatAddition;
outletPatch outlet1;
Q 5; // Heat addition in W
TMin 300;
TMax 500;
value $internalField;
}
outlet1
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
outlet2
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
defaultFaces
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: 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 0 0);
boundaryField
{
inlet
{
type pressureInletOutletVelocity;
value uniform (0 0 0);
}
outlet1
{
type inletOutlet;
inletValue uniform (0 0 0);
value uniform (0 0 0);
}
outlet2
{
type inletOutlet;
inletValue uniform (0 0 0);
value uniform (0 0 0);
}
defaultFaces
{
type noSlip;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,50 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object alphat;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -1 0 0 0 0];
internalField uniform 1e-3;
boundaryField
{
inlet
{
type calculated;
value uniform 0;
}
outlet1
{
type calculated;
value uniform 0;
}
outlet2
{
type calculated;
value uniform 0;
}
defaultFaces
{
type compressible::alphatWallFunction;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 200;
boundaryField
{
inlet
{
type turbulentMixingLengthDissipationRateInlet;
mixingLength 0.01; // 1cm - half channel height
value $internalField;
}
outlet1
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
outlet2
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
defaultFaces
{
type epsilonWallFunction;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,51 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 1;
boundaryField
{
inlet
{
type turbulentIntensityKineticEnergyInlet;
intensity 0.05; // 5% turbulent intensity
value $internalField;
}
outlet1
{
type inletOutlet;
inletValue $internalField;
}
outlet2
{
type inletOutlet;
inletValue $internalField;
}
defaultFaces
{
type kqRWallFunction;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,44 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object nuTilda;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type zeroGradient;
}
outlet1
{
type zeroGradient;
}
outlet2
{
type zeroGradient;
}
defaultFaces
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,50 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type calculated;
value uniform 0;
}
outlet1
{
type calculated;
value uniform 0;
}
outlet2
{
type calculated;
value uniform 0;
}
defaultFaces
{
type nutkWallFunction;
value uniform 0;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e5;
boundaryField
{
inlet
{
type uniformTotalPressure;
gamma 1.2;
p0 table
(
(0 1e5)
(1 1.4e5)
);
}
outlet1
{
type fixedValue;
value $internalField;
}
outlet2
{
type fixedValue;
value $internalField;
}
defaultFaces
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,2 @@
15/8/8 Simple T-junction. Inlet on left, one outlet at bottom, one at top.
To test multiple outlets.

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type hePsiThermo;
mixture pureMixture;
transport sutherland;
thermo hConst;
equationOfState perfectGas;
specie specie;
energy sensibleEnthalpy;
}
mixture
{
specie
{
nMoles 1;
molWeight 28.9;
}
thermodynamics
{
Cp 1007;
Hf 0;
}
transport
{
As 1.4792e-06;
Ts 116;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,30 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType RAS;
RAS
{
RASModel kEpsilon;
turbulence off;
printCoeffs on;
}
// ************************************************************************* //

View File

@ -0,0 +1,127 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// outlet1
// +-+
// | |
// | |
// | |
// | |
// +-----------+ |
// |inlet |
// +-----------+ |
// | |
// | |
// | |
// | |
// +-+
// outlet2
convertToMeters 1;
vertices
(
(0.0 -0.01 0) //0
(0.2 -0.01 0)
(0.2 0.01 0) //2
(0.0 0.01 0)
(0.22 -0.01 0) //4
(0.22 0.01 0)
(0.2 -0.21 0) //6
(0.22 -0.21 0)
(0.2 0.21 0) //8
(0.22 0.21 0)
// Z
(0.0 -0.01 0.02) //0
(0.2 -0.01 0.02)
(0.2 0.01 0.02) //2
(0.0 0.01 0.02)
(0.22 -0.01 0.02) //4
(0.22 0.01 0.02)
(0.2 -0.21 0.02) //6
(0.22 -0.21 0.02)
(0.2 0.21 0.02) //8
(0.22 0.21 0.02)
);
blocks
(
// inlet block
hex (0 1 2 3 10 11 12 13) (50 5 5) simpleGrading (1 1 1)
// central block
hex (1 4 5 2 11 14 15 12) (5 5 5) simpleGrading (1 1 1)
// bottom block
hex (6 7 4 1 16 17 14 11) (5 50 5) simpleGrading (1 1 1)
// top block
hex (2 5 9 8 12 15 19 18) (5 50 5) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
inlet
{
type patch;
faces
(
(0 10 13 3)
);
}
outlet1
{
type patch;
faces
(
(6 7 17 16)
);
}
outlet2
{
type patch;
faces
(
(8 18 19 9)
);
}
defaultFaces
{
type wall;
faces ();
}
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application rhoPimpleFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 1.0;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.1;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
adjustTimeStep yes;
maxCo 3;
// ************************************************************************* //

View File

@ -0,0 +1,57 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: 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 none;
div(phi,U) Gauss limitedLinearV 1;
div(phi,k) Gauss limitedLinear 1;
div(phi,epsilon) Gauss limitedLinear 1;
div(phi,h) Gauss limitedLinear 1;
div(phi,R) Gauss limitedLinear 1;
div(R) Gauss linear;
div(phi,K) Gauss linear;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
// ************************************************************************* //

View File

@ -0,0 +1,69 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver GAMG;
tolerance 1e-06;
relTol 0.01;
smoother GaussSeidel;
}
pFinal
{
solver GAMG;
tolerance 1e-06;
relTol 0;
smoother GaussSeidel;
}
"(rho|U|k|epsilon|h)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-05;
relTol 0.1;
}
"(rho|U|k|epsilon|h)Final"
{
$U;
tolerance 1e-05;
relTol 0;
}
}
PIMPLE
{
transonic no;
nOuterCorrectors 1;
nCorrectors 3;
nNonOrthogonalCorrectors 0;
}
relaxationFactors
{
equations
{
".*" 1;
}
}
// ************************************************************************* //

View File

@ -66,7 +66,7 @@ relaxationFactors
{
p 1;
U 0.9;
e 0.9;
e 0.8;
k 0.9;
epsilon 0.9;
}

View File

@ -27,9 +27,9 @@ beta [0 0 0 -1 0 0 0] 3e-03;
TRef [0 0 0 1 0 0 0] 300;
// Laminar Prandtl number
Pr [0 0 0 0 0 0 0] 0.9;
Pr [0 0 0 0 0 0 0] 0.7;
// Turbulent Prandtl number
Prt [0 0 0 0 0 0 0] 0.7;
Prt [0 0 0 0 0 0 0] 0.85;
// ************************************************************************* //

View File

@ -27,9 +27,9 @@ beta [0 0 0 -1 0 0 0] 3e-03;
TRef [0 0 0 1 0 0 0] 300;
// Laminar Prandtl number
Pr [0 0 0 0 0 0 0] 0.9;
Pr [0 0 0 0 0 0 0] 0.7;
// Turbulent Prandtl number
Prt [0 0 0 0 0 0 0] 0.7;
Prt [0 0 0 0 0 0 0] 0.85;
// ************************************************************************* //

View File

@ -27,9 +27,9 @@ beta [0 0 0 -1 0 0 0] 3e-03;
TRef [0 0 0 1 0 0 0] 300;
// Laminar Prandtl number
Pr [0 0 0 0 0 0 0] 0.9;
Pr [0 0 0 0 0 0 0] 0.7;
// Turbulent Prandtl number
Prt [0 0 0 0 0 0 0] 0.7;
Prt [0 0 0 0 0 0 0] 0.85;
// ************************************************************************* //

View File

@ -29,34 +29,10 @@ addLayers false;
// - to 'snap' the mesh boundary to the surface
geometry
{
bottomAir.stl
geom.stl
{
type triSurfaceMesh;
name bottomAir;
}
topAir.stl
{
type triSurfaceMesh;
name topAir;
}
leftSolid.stl
{
type triSurfaceMesh;
name leftSolid;
}
rightSolid.stl
{
type triSurfaceMesh;
name rightSolid;
}
heater.stl
{
type triSurfaceMesh;
name heater;
name geom;
}
};
@ -103,23 +79,7 @@ castellatedMeshControls
features
(
{
file "bottomAir.eMesh";
level 1;
}
{
file "heater.eMesh";
level 1;
}
{
file "leftSolid.eMesh";
level 1;
}
{
file "rightSolid.eMesh";
level 1;
}
{
file "topAir.eMesh";
file "geom.extendedFeatureEdgeMesh"; //"geom.eMesh";
level 1;
}
);
@ -137,54 +97,10 @@ castellatedMeshControls
refinementSurfaces
{
bottomAir
geom
{
// Surface-wise min and max refinement level
level (1 1);
faceZone bottomAir;
cellZone bottomAir;
cellZoneInside inside;
}
topAir
{
// Surface-wise min and max refinement level
level (1 1);
faceZone topAir;
cellZone topAir;
cellZoneInside inside;
}
heater
{
// Surface-wise min and max refinement level
level (0 0);
faceZone heater;
cellZone heater;
cellZoneInside inside;
}
leftSolid
{
// Surface-wise min and max refinement level
level (1 1);
faceZone leftSolid;
cellZone leftSolid;
cellZoneInside inside;
}
rightSolid
{
// Surface-wise min and max refinement level
level (1 1);
faceZone rightSolid;
cellZone rightSolid;
cellZoneInside inside;
}
}
@ -223,7 +139,14 @@ castellatedMeshControls
// section reachable from the locationInMesh is kept.
// NOTE: This point should never be on a face, always inside a cell, even
// after refinement.
locationInMesh (0.01 0.01 0.01);
locationsInMesh
(
(( 0.005 0.005 0.005) heater)
(( 0.05 0.005 0.005) rightSolid)
((-0.05 0.005 0.005) leftSolid)
((-0.05 0.015 0.005) topAir)
((-0.05 -0.015 0.005) bottomAir)
);
// Whether any faceZones (as specified in the refinementSurfaces)

View File

@ -14,71 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
bottomAir.stl
{
extractionMethod extractFromSurface;
extractFromSurfaceCoeffs
{
// Mark edges whose adjacent surface normals are at an angle less
// than includedAngle as features
// - 0 : selects no edges
// - 180: selects all edges
includedAngle 150;
}
// Write options
writeFeatureEdgeMesh yes;
}
heater.stl
{
extractionMethod extractFromSurface;
extractFromSurfaceCoeffs
{
// Mark edges whose adjacent surface normals are at an angle less
// than includedAngle as features
// - 0 : selects no edges
// - 180: selects all edges
includedAngle 150;
}
// Write options
writeFeatureEdgeMesh yes;
}
leftSolid.stl
{
extractionMethod extractFromSurface;
extractFromSurfaceCoeffs
{
// Mark edges whose adjacent surface normals are at an angle less
// than includedAngle as features
// - 0 : selects no edges
// - 180: selects all edges
includedAngle 150;
}
// Write options
writeFeatureEdgeMesh yes;
}
rightSolid.stl
{
extractionMethod extractFromSurface;
extractFromSurfaceCoeffs
{
// Mark edges whose adjacent surface normals are at an angle less
// than includedAngle as features
// - 0 : selects no edges
// - 180: selects all edges
includedAngle 150;
}
// Write options
writeFeatureEdgeMesh yes;
}
topAir.stl
geom.stl
{
extractionMethod extractFromSurface;
@ -93,6 +29,8 @@ topAir.stl
// Write options
writeFeatureEdgeMesh yes;
// Write features to obj format for postprocessing
writeObj yes;
}

View File

@ -1,8 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
set -x
m4 < system/blockMeshDict.m4 > system/blockMeshDict
blockMesh > log.blockMesh 2>&1

View File

@ -15,11 +15,11 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
solver solidBody;
solidBodyMotionFvMeshCoeffs
solidBodyCoeffs
{
cellZone rotor;
@ -32,5 +32,4 @@ solidBodyMotionFvMeshCoeffs
}
}
// ************************************************************************* //

View File

@ -15,11 +15,13 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
cellZone inletChannel;

View File

@ -15,15 +15,15 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
solver solidBody;
solidBodyMotionFvMeshCoeffs
solidBodyCoeffs
{
cellZone inletChannel;
solidBodyMotionFunction oscillatingLinearMotion;
solidBodyMotionFunction oscillatingLinearMotion;
oscillatingLinearMotionCoeffs
{

View File

@ -15,11 +15,13 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
cellZone innerCylinderSmall;

View File

@ -15,7 +15,7 @@ runApplication blockMesh
runApplication decomposePar -decomposeParDict system/decomposeParDict.hierarchical
# \cp system/decomposeParDict.ptscotch system/decomposeParDict
runParallel snappyHexMesh -decomposeParDict system/decomposeParDict.ptscotch -profiling -overwrite -parallel
runParallel snappyHexMesh -decomposeParDict system/decomposeParDict.ptscotch -profiling -overwrite
find . -type f -iname "*level*" -exec rm {} \;

View File

@ -0,0 +1,9 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication blockMesh
#------------------------------------------------------------------------------

View File

@ -0,0 +1,9 @@
v -5 0.4 0
v -4 0.4 0
v -3 0.4 0.7
v -2.5 0.4 2
v -2 0.4 2
v -1 0.4 0.7
v -0.6 0.4 0
v 10 0.4 0
l 1 2 3 4 5 6 7 8

View File

@ -0,0 +1,13 @@
# vtk DataFile Version 4.0
vtk output
ASCII
DATASET POLYDATA
POINTS 17 double
-5.0437 0.4 -0.0159845 -4.54848 0.4 0.00946291 -4.30524 0.4 0.0219617
-4.11475 0.4 0.0317502 -3.65463 0.4 0.0664504 -3.42509 0.4 0.242198
-3.26981 0.4 0.570689 -3.04354 0.4 0.986036 -2.80622 0.4 1.28924
-2.45212 0.4 1.43367 -2.10187 0.4 1.42911 -1.8115 0.4 1.2018
-1.52708 0.4 0.866397 -1.30229 0.4 0.49514 -1.04633 0.4 0.189424
-0.5819 0.4 -5.75752e-05 4 0.4 0
LINES 1 18
17 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

View File

@ -0,0 +1,177 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
geometry
{
cylinder
{
type searchableCylinder;
point1 (0 -4 0);
point2 (0 4 0);
radius 0.7;
}
cylinder3
{
type searchableCylinder;
point1 (-10 0.4 0);
point2 (10 0.4 0);
radius 0.5;
}
cylinder2
{
type searchableExtrudedCircle;
file "curve2.vtk";
radius 0.5;
}
inletPlane
{
type searchablePlate;
origin (-4 -50 -50);
span (0 100 100);
}
}
vertices
(
// Vertical cylinder
name v0 project (-1 -0.1 -1) (cylinder cylinder2)
name v1 project ( 1 -0.1 -1) (cylinder)
name v2 project ( 1 0.9 -1) (cylinder)
name v3 project (-1 0.9 -1) (cylinder cylinder2)
name v4 project (-1 -0.1 1) (cylinder cylinder2)
name v5 project ( 1 -0.1 1) (cylinder)
name v6 project ( 1 0.9 1) (cylinder)
name v7 project (-1 0.9 1) (cylinder cylinder2)
// Horizontal cylinder
name v8 project (-4 0 -0.5) (cylinder2 inletPlane)
name v9 project (-4 1 -0.5) (cylinder2 inletPlane)
name v10 project (-4 0 0.5) (cylinder2 inletPlane)
name v11 project (-4 1 0.5) (cylinder2 inletPlane)
// On top of vertical cylinder
name v12 project (-1 2 -1) (cylinder)
name v13 project ( 1 2 -1) (cylinder)
name v14 project ( 1 2 1) (cylinder)
name v15 project (-1 2 1) (cylinder)
// Below vertical cylinder
name v16 project (-1 -1 -1) (cylinder)
name v17 project ( 1 -1 -1) (cylinder)
name v18 project ( 1 -1 1) (cylinder)
name v19 project (-1 -1 1) (cylinder)
);
blocks
(
hex (v0 v1 v2 v3 v4 v5 v6 v7) (8 8 8) simpleGrading (1 1 1)
name sideBlock hex (v0 v3 v9 v8 v4 v7 v11 v10) (8 20 8)
simpleGrading (1 1 1)
hex ( v7 v6 v2 v3 v15 v14 v13 v12) (8 8 8) simpleGrading (1 1 1)
hex (v16 v19 v18 v17 v0 v4 v5 v1) (8 8 8) simpleGrading (1 1 1)
);
edges
(
project v0 v1 (cylinder)
project v1 v2 (cylinder)
project v2 v3 (cylinder)
project v1 v5 (cylinder)
project v2 v6 (cylinder)
project v4 v5 (cylinder)
project v5 v6 (cylinder)
project v6 v7 (cylinder)
// Common face
project v3 v0 (cylinder cylinder2)
project v3 v7 (cylinder cylinder2)
project v7 v4 (cylinder cylinder2)
project v0 v4 (cylinder cylinder2)
// Inlet
project v8 v10 (cylinder2 inletPlane)
project v10 v11 (cylinder2 inletPlane)
project v11 v9 (cylinder2 inletPlane)
project v9 v8 (cylinder2 inletPlane)
// Sides of horizontal cylinder. Use projectCurve to do interpolation
// for radial direction to keep points along edges at constant radial
// direction.
projectCurve v8 v0 (cylinder2)
projectCurve v9 v3 (cylinder2)
projectCurve v11 v7 (cylinder2)
projectCurve v10 v4 (cylinder2)
// Top cylinder
project v12 v15 (cylinder)
project v15 v14 (cylinder)
project v14 v13 (cylinder)
project v13 v12 (cylinder)
// Bottom cylinder
project v16 v17 (cylinder)
project v17 v18 (cylinder)
project v18 v19 (cylinder)
project v19 v16 (cylinder)
);
faces
(
// Common face
project (v0 v4 v7 v3) cylinder
project (v8 v0 v4 v10) cylinder2
project (v10 v4 v7 v11) cylinder2
project (v11 v7 v3 v9) cylinder2
project (v8 v9 v3 v0) cylinder2
);
defaultPatch
{
name walls;
type wall;
}
boundary
(
side
{
type patch;
faces ((sideBlock 3)); //((v8 v10 v11 v9));
}
inlet
{
type patch;
faces ((v17 v18 v19 v16));
}
outlet
{
type patch;
faces ((v12 v15 v14 v13));
}
);
// ************************************************************************* //

View File

@ -0,0 +1,58 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
libs ("libblockMesh.so");
DebugSwitches
{
// project 1;
// searchableExtrudedCircle 1;
// projectCurve 1;
}
application blockMesh;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0;
deltaT 0;
writeControl timeStep;
writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
// ************************************************************************* //

View File

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{}
gradSchemes
{}
divSchemes
{}
laplacianSchemes
{}
interpolationSchemes
{}
snGradSchemes
{}
// ************************************************************************* //

View File

@ -0,0 +1,18 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// ************************************************************************* //

View File

@ -15,11 +15,13 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
cellZone rotating;

View File

@ -15,9 +15,11 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
solidBodyMotionFunction SDA;
SDACoeffs

View File

@ -0,0 +1,63 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
front
{
type wedge;
}
back
{
type wedge;
}
innerAMI
{
type cyclicAMI;
value uniform 300;
}
outerAMI
{
type cyclicAMI;
value uniform 300;
}
top
{
type inletOutlet;
inletValue uniform 300;
value uniform 300;
}
bottom
{
type zeroGradient;
}
farFieldWall
{
type zeroGradient;
}
sphere
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,63 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object T.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
front
{
type wedge;
}
back
{
type wedge;
}
innerAMI
{
type cyclicAMI;
value uniform 300;
}
outerAMI
{
type cyclicAMI;
value uniform 300;
}
top
{
type inletOutlet;
inletValue uniform 300;
value uniform 300;
}
bottom
{
type zeroGradient;
}
farFieldWall
{
type zeroGradient;
}
sphere
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,63 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object T.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
front
{
type wedge;
}
back
{
type wedge;
}
innerAMI
{
type cyclicAMI;
value uniform 300;
}
outerAMI
{
type cyclicAMI;
value uniform 300;
}
top
{
type inletOutlet;
inletValue uniform 300;
value uniform 300;
}
bottom
{
type zeroGradient;
}
farFieldWall
{
type zeroGradient;
}
sphere
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,64 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ 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 0);
boundaryField
{
front
{
type wedge;
}
back
{
type wedge;
}
innerAMI
{
type cyclicAMI;
value uniform (0 0 0);
}
outerAMI
{
type cyclicAMI;
value uniform (0 0 0);
}
top
{
type zeroGradient;
}
bottom
{
type fixedValue;
value uniform (0 0 0);
}
farFieldWall
{
type fixedValue;
value uniform (0 0 0);
}
sphere
{
type movingWallVelocity;
value uniform (0 0 0);
}
}
// ************************************************************************* //

View File

@ -0,0 +1,61 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus.master |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object alpha.walter;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
front
{
type wedge;
}
back
{
type wedge;
}
innerAMI
{
type cyclicAMI;
value uniform 0;
}
outerAMI
{
type cyclicAMI;
value uniform 0;
}
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
farFieldWall
{
type zeroGradient;
}
sphere
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,65 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus.master |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 101325;
boundaryField
{
front
{
type wedge;
}
back
{
type wedge;
}
innerAMI
{
type cyclicAMI;
value uniform 101325;
}
outerAMI
{
type cyclicAMI;
value uniform 101325;
}
top
{
type calculated;
value uniform 101325;
}
bottom
{
type calculated;
value uniform 101325;
}
farFieldWall
{
type calculated;
value uniform 101325;
}
sphere
{
type calculated;
value uniform 101325;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,68 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus.master |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 101325;
boundaryField
{
front
{
type wedge;
}
back
{
type wedge;
}
innerAMI
{
type cyclicAMI;
value uniform 101325;
}
outerAMI
{
type cyclicAMI;
value uniform 101325;
}
top
{
type fixedValue;
value uniform 101325;
}
bottom
{
type fixedFluxPressure;
gradient uniform 0;
value uniform 101325;
}
farFieldWall
{
type fixedFluxPressure;
gradient uniform 0;
value uniform 101325;
}
sphere
{
type fixedFluxPressure;
gradient uniform 0;
value uniform 101325;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,99 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class pointVectorField;
location "0";
object pointDisplacement;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "$FOAM_CASE/constant/dynamicMeshDict"
#include "$FOAM_CASE/system/blockMeshDict"
dimensions [0 1 0 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
farFieldWall
{
type fixedValue;
value uniform (0 0 0);
}
bottom
{
type fixedValue;
value uniform (0 0 0);
}
top
{
type fixedValue;
value uniform (0 0 0);
}
sphere
{
type sixDoFRigidBodyDisplacement;
centreOfMass (0 $:sphereCentreHeight 0);
momentOfInertia (2e-3 2e-3 2e-3);
velocity (0 -3.77 0);
accelerationRelaxation 1;
accelerationDamping 1;
mass 2.08e-3; // sphere mass 0.15 kg, 5 degree wedge
// rhoInf -1; // needed only for solvers solving for
// kinematic pressure
report on;
constraints
{
maxIterations 500;
fixedLine1
{
sixDoFRigidBodyMotionConstraint line;
centreOfRotation (0 0.147 0);
direction (0 1 0);
}
fixedOrientation1
{
sixDoFRigidBodyMotionConstraint orientation;
}
}
solver
{
type Newmark;
}
value uniform ( 0 0 0 );
}
innerAMI
{
type cyclicAMI;
}
outerAMI
{
type cyclicAMI;
}
back
{
type wedge;
}
front
{
type wedge;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,7 @@
#!/bin/sh
# Source tutorial clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
rm -rf 0/
cleanCase

View File

@ -0,0 +1,25 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication blockMesh
runApplication topoSet
# remove empty patches
runApplication createPatch -overwrite
# split mesh into 2 regions at the AMI coupled patch
runApplication mergeOrSplitBaffles -overwrite
echo "Copying 0.org to 0"
cp -r 0.org 0
runApplication setFields
(cd constant/polyMesh && ln -s ../../include/meshModifiers .)
runApplication $(getApplication)
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,108 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format binary;
class dictionary;
location "constant";
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverTopoFvMesh;
motionSolverLibs ("libfvMotionSolvers.so");
solver displacementLayeredMotion;
displacementLayeredMotionCoeffs
{
// In addition to boundary conditions on pointDisplacement
// we can also have boundary conditions on faceZones bordering cellZones.
regions
{
LARTopCells
{
interpolationScheme oneSided;
boundaryField
{
top // patch
{
type uniformFollow; // use pointDisplacement bc
patch sphere; // fixed/static
}
LARTopFaces
{
type slip;
}
}
}
topBlock
{
interpolationScheme oneSided;
boundaryField
{
LARTopFaces
{
type uniformFollow;
patch sphere;
}
centralTopFaces
{
type slip;
}
}
}
centralBlock
{
interpolationScheme oneSided;
boundaryField
{
centralTopFaces
{
type uniformFollow;
patch sphere;
}
centralBottomFaces
{
type slip;
}
}
}
bottomBlock
{
interpolationScheme oneSided;
boundaryField
{
centralBottomFaces
{
type uniformFollow;
patch sphere;
}
bottom
{
type slip;
}
}
}
}
}
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class uniformDimensionedVectorField;
location "constant";
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value (0 -9.81 0 );
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
phases (water air);
pMin pMin [1 -1 -2 0 0 0 0] 1000;
sigma sigma [1 0 -2 0 0 0 0] 0.07;
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport const;
thermo hConst;
equationOfState perfectGas;
specie specie;
energy sensibleInternalEnergy;
}
mixture
{
specie
{
nMoles 1;
molWeight 28.9;
}
thermodynamics
{
Cp 1007;
Hf 0;
}
equationOfState
{
rho 1.27;
R 90000;
rho0 1.27;
}
transport
{
mu 1.84e-05;
Pr 0.7;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport const;
thermo hConst;
equationOfState rhoConst;
specie specie;
energy sensibleInternalEnergy;
}
mixture
{
specie
{
nMoles 1;
molWeight 18.0;
}
equationOfState
{
rho 1027;
}
thermodynamics
{
Cp 4195;
Hf 0;
}
transport
{
mu 3.645e-4;
Pr 2.289;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,33 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
phases (water air);
water
{
transportModel Newtonian;
nu [0 2 -1 0 0 0 0] 1e-06;
rho [1 -3 0 0 0 0 0] 998.2;
}
air
{
transportModel Newtonian;
nu [0 2 -1 0 0 0 0] 1.48e-05;
rho [1 -3 0 0 0 0 0] 1;
}
// ************************************************************************* //

View File

@ -0,0 +1,28 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
RAS
{
RASModel laminar;
turbulence on;
printCoeffs off;
}
// ************************************************************************* //

View File

@ -0,0 +1,43 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyTopoChanger;
location "constant/polyMesh";
object meshModifiers;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
2
(
top
{
type layerAdditionRemoval;
faceZoneName top;
minLayerThickness 0.001;
maxLayerThickness 0.03;
thicknessFromVolume false;
active true;
}
bottom
{
type layerAdditionRemoval;
faceZoneName bottom;
// minLayerThickness 0.005;
// maxLayerThickness 0.03;
minLayerThickness 0.005;
maxLayerThickness 0.03;
thicknessFromVolume false;
active true;
}
)
// ************************************************************************* //

View File

@ -0,0 +1,349 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM Extend Project: Open Source CFD |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
// Domain
axisLevel 0.0; // x-coord of axis (right boundary of domain)
bottomLevel -1.0; // y-coord of bottom of domain
topLevel 1.0; // y-coord of top of domain
farFieldWall -0.572; // x-coord of far field wall
wedgeAngle 5.0; // Wedge angle in degrees
// Size of block moving with sphere (no cell deformation), in sphere radii
// above and below centre of sphere
upperSphereBlock 5.0;
lowerSphereBlock 5.0;
sphereLayerThickness 2.0; // Total layer thickness in sphere radii
// Sphere
sphereRadius 0.028;
sphereCentreHeight 0.147; // y-coord of sphere centre
pi #calc "Foam::constant::mathematical::pi";
// Calculated positions
sphereRadiusPosition #calc "-1.0*(1.0 + $sphereLayerThickness)*$sphereRadius"; //"-1.0* $sphereRadius";
AMIBlockPosition #calc "2.0*$sphereRadiusPosition + $sphereRadius";
// Centre plane is z=0, so use half of wedge angle to calculate pos and neg
// z-positions
halfAngleRad #calc "0.5*$wedgeAngle*$pi/180.0";
tanAlpha #calc "tan($halfAngleRad)";
// Multiply by -1 because tan give negative value
firstBlockPosDepth #calc "-1.0*$tanAlpha*$sphereRadiusPosition";
firstBlockNegDepth #calc "-1.0*$firstBlockPosDepth";
AMIBlockPosDepth #calc "-1.0*$tanAlpha*$AMIBlockPosition";
AMIBlockNegDepth #calc "-1.0*$AMIBlockPosDepth";
farFieldPosDepth #calc "-1.0*$tanAlpha*$farFieldWall";
farFieldNegDepth #calc "-1.0*$farFieldPosDepth";
bottomBlockTopHeight #calc "$sphereCentreHeight - $lowerSphereBlock*$sphereRadius";
topBlockBottomHeight #calc "$sphereCentreHeight + $upperSphereBlock*$sphereRadius";
topSphere #calc "$sphereCentreHeight + $sphereRadius";
bottomSphere #calc "$sphereCentreHeight - $sphereRadius";
topSphereLayer #calc "$sphereCentreHeight + (1.0 + $sphereLayerThickness)*$sphereRadius";
bottomSphereLayer #calc "$sphereCentreHeight - (1.0 + $sphereLayerThickness)*$sphereRadius";
// Layer block below sphere
innerBottomLayerX #calc "-1.0*cos(45.0*$pi/180.0)*$sphereRadius";
innerBottomLayerY #calc "$sphereCentreHeight - cos(45.0*$pi/180.0)*$sphereRadius";
innerBottomLayerZPos #calc "-1.0*$tanAlpha*$innerBottomLayerX";
innerBottomLayerZNeg #calc "-1.0*$innerBottomLayerZPos";
innerBottomArcX1 #calc "-1.0*sin(22.5*$pi/180.0)*$sphereRadius";
innerBottomArcY1 #calc "$sphereCentreHeight - cos(22.5*$pi/180.0)*$sphereRadius";
innerBottomArcZ1Pos #calc "$innerBottomArcX1*$tanAlpha";
innerBottomArcZ1Neg #calc "-1.0*$innerBottomArcZ1Pos";
outerBottomArcX1 #calc "-1.0*sin(22.5*$pi/180.0)*$sphereRadius*(1.0 + $sphereLayerThickness)";
outerBottomArcY1 #calc #{ $sphereCentreHeight - cos(22.5*$pi/180.0)*$sphereRadius*(1.0 + $sphereLayerThickness) #};
outerBottomArcZ1Pos #calc "$outerBottomArcX1*$tanAlpha";
outerBottomArcZ1Neg #calc "-1.0*$outerBottomArcZ1Pos";
outerBottomLayerX #calc "-1.0*cos(45.0*$pi/180.0)*(1.0 + $sphereLayerThickness)*$sphereRadius";
outerBottomLayerY #calc "$sphereCentreHeight - cos(45.0*$pi/180.0)*(1.0 + $sphereLayerThickness)*$sphereRadius";
outerBottomLayerZPos #calc "-1.0*$tanAlpha*$outerBottomLayerX";
outerBottomLayerZNeg #calc "-1.0*$outerBottomLayerZPos";
// Layer block above sphere
innerTopLayerX #calc "cos(135.0*$pi/180.0)*$sphereRadius";
innerTopLayerY #calc "$sphereCentreHeight - cos(135.0*$pi/180.0)*$sphereRadius";
innerTopLayerZPos #calc "-1.0*$tanAlpha*$innerBottomLayerX";
innerTopLayerZNeg #calc "-1.0*$innerBottomLayerZPos";
innerTopArcX1 #calc "-1.0*sin(157.5*$pi/180.0)*$sphereRadius";
innerTopArcY1 #calc "$sphereCentreHeight - cos(157.5*$pi/180.0)*$sphereRadius";
innerTopArcZ1Pos #calc "$innerTopArcX1*$tanAlpha";
innerTopArcZ1Neg #calc "-1.0*$innerTopArcZ1Pos";
outerTopArcX1 #calc "-1.0*sin(157.5*$pi/180.0)*$sphereRadius*(1.0 + $sphereLayerThickness)";
outerTopArcY1 #calc "$sphereCentreHeight - cos(157.5*$pi/180.0)*$sphereRadius*(1.0 + $sphereLayerThickness)";
outerTopArcZ1Pos #calc "$outerTopArcX1*$tanAlpha";
outerTopArcZ1Neg #calc "-1.0*$outerTopArcZ1Pos";
outerTopLayerX #calc "cos(135.0*$pi/180.0)*(1.0 + $sphereLayerThickness)*$sphereRadius";
outerTopLayerY #calc "$sphereCentreHeight - cos(135.0*$pi/180.0)*(1.0 + $sphereLayerThickness)*$sphereRadius";
outerTopLayerZPos #calc "-1.0*$tanAlpha*$outerTopLayerX";
outerTopLayerZNeg #calc "-1.0*$outerTopLayerZPos";
// Layer block left of sphere
innerLeftArcX #calc "-1.0*$sphereRadius";
innerLeftArcY #calc "$sphereCentreHeight";
innerLeftArcZPos #calc "-1.0*$tanAlpha*$innerLeftArcX";
innerLeftArcZNeg #calc "-1.0*$innerLeftArcZPos";
outerLeftArcX #calc "-1.0*(1.0 + $sphereLayerThickness)*$sphereRadius";
outerLeftArcZPos #calc "-1.0*$tanAlpha*$outerLeftArcX";
outerLeftArcZNeg #calc "-1.0*$outerLeftArcZPos";
vertices
(
// Lower moving block
($axisLevel $bottomLevel 0) // 0
($axisLevel $bottomBlockTopHeight 0) // 1
($AMIBlockPosition $bottomLevel $AMIBlockPosDepth) // 2
($AMIBlockPosition $bottomLevel $AMIBlockNegDepth) // 3
($AMIBlockPosition $bottomBlockTopHeight $AMIBlockNegDepth) // 4
($AMIBlockPosition $bottomBlockTopHeight $AMIBlockPosDepth) // 5
// Upper moving block
($AMIBlockPosition $topBlockBottomHeight $AMIBlockPosDepth) // 6
($AMIBlockPosition $topBlockBottomHeight $AMIBlockNegDepth) // 7
($axisLevel $topBlockBottomHeight 0) // 8
($AMIBlockPosition $topLevel $AMIBlockPosDepth) // 9
($AMIBlockPosition $topLevel $AMIBlockNegDepth) // 10
($axisLevel $topLevel 0) // 11
// Farfield block
($farFieldWall $bottomLevel $farFieldPosDepth) // 12
($AMIBlockPosition $bottomLevel $AMIBlockPosDepth) // 13
($AMIBlockPosition $topLevel $AMIBlockPosDepth) // 14
($farFieldWall $topLevel $farFieldPosDepth) // 15
($farFieldWall $bottomLevel $farFieldNegDepth) // 16
($AMIBlockPosition $bottomLevel $AMIBlockNegDepth) // 17
($AMIBlockPosition $topLevel $AMIBlockNegDepth) // 18
($farFieldWall $topLevel $farFieldNegDepth) // 19
// Sphere block
($axisLevel $bottomSphere 0) // 20
($innerBottomLayerX $innerBottomLayerY $innerBottomLayerZPos) // 21
($innerBottomLayerX $innerBottomLayerY $innerBottomLayerZNeg) // 22
($axisLevel $bottomSphereLayer 0) // 23
($outerBottomLayerX $outerBottomLayerY $outerBottomLayerZPos) // 24
($outerBottomLayerX $outerBottomLayerY $outerBottomLayerZNeg) // 25
($axisLevel $topSphere 0) // 26
($axisLevel $topSphereLayer 0) // 27
($innerTopLayerX $innerTopLayerY $innerTopLayerZNeg) // 28
($outerTopLayerX $outerTopLayerY $outerTopLayerZNeg) // 29
($innerTopLayerX $innerTopLayerY $innerTopLayerZPos) // 30
($outerTopLayerX $outerTopLayerY $outerTopLayerZPos) // 31
);
edgeNumber 1; // 0.707;
layerGrading 0.5;
invLayerGrading #calc "1.0/$layerGrading";
blockGrading 0.3;
invBlockGrading #calc "1.0/$blockGrading";
blocks
(
hex (16 17 18 19 12 13 14 15) farField (25 100 1) simplegrading (1 1 1)
hex (3 0 1 4 2 0 1 5) bottomBlock (10 50 1) simplegrading ($edgeNumber 1 1)
hex (7 8 11 10 6 8 11 9) topBlock (10 35 1) simplegrading ($edgeNumber 1 1)
hex (25 23 20 22 24 23 20 21)
centralBlock (10 20 1)
edgeGrading
(
1 1 1 1
$layerGrading $layerGrading $layerGrading $layerGrading
1 1 1 1
) // bottom layer
hex (25 22 28 29 24 21 30 31)
centralBlock (20 20 1)
edgeGrading
(
$layerGrading $layerGrading $layerGrading $layerGrading
1 1 1 1
1 1 1 1
) // middle layer
hex (28 26 27 29 30 26 27 31)
centralBlock (10 20 1)
edgeGrading
(
1 1 1 1
$invLayerGrading $invLayerGrading $invLayerGrading $invLayerGrading
1 1 1 1
) // top layer
hex (4 1 23 25 5 1 23 24)
centralBlock (10 10 1)
edgeGrading
(
$edgeNumber 1 1 $edgeNumber
$blockGrading $edgeNumber $edgeNumber $blockGrading
1 $edgeNumber $edgeNumber 1
) // bottom
hex (4 25 29 7 5 24 31 6)
centralBlock (10 20 1)
edgeGrading
(
$blockGrading $blockGrading $blockGrading $blockGrading
1 1 1 1
1 1 1 1
) // middle
hex (29 27 8 7 31 27 8 6)
centralBlock (10 10 1)
edgeGrading
(
1 $edgeNumber $edgeNumber 1
$invBlockGrading $invBlockGrading $invBlockGrading $invBlockGrading
1 1 1 1
) // top
);
edges
(
// Layer block below sphere
arc 20 22 ($innerBottomArcX1 $innerBottomArcY1 $innerBottomArcZ1Pos)
arc 20 21 ($innerBottomArcX1 $innerBottomArcY1 $innerBottomArcZ1Neg)
arc 23 25 ($outerBottomArcX1 $outerBottomArcY1 $outerBottomArcZ1Pos)
arc 23 24 ($outerBottomArcX1 $outerBottomArcY1 $outerBottomArcZ1Neg)
// Layer block above sphere
arc 26 28 ($innerTopArcX1 $innerTopArcY1 $innerTopArcZ1Pos)
arc 26 30 ($innerTopArcX1 $innerTopArcY1 $innerTopArcZ1Neg)
arc 27 29 ($outerTopArcX1 $outerTopArcY1 $outerTopArcZ1Pos)
arc 27 31 ($outerTopArcX1 $outerTopArcY1 $outerTopArcZ1Neg)
// Layer block left of sphere
arc 22 28 ($innerLeftArcX $innerLeftArcY $innerLeftArcZNeg)
arc 21 30 ($innerLeftArcX $innerLeftArcY $innerLeftArcZPos)
arc 24 31 ($outerLeftArcX $innerLeftArcY $outerLeftArcZPos)
arc 25 29 ($outerLeftArcX $innerLeftArcY $outerLeftArcZNeg)
);
boundary
(
front
{
type wedge;
faces
(
(0 1 5 2)
(5 1 23 24)
(23 20 21 24)
(24 21 30 31)
(5 24 31 6)
(31 27 8 6)
(6 8 11 9)
(31 30 26 27)
(12 13 14 15)
);
}
back
{
type wedge;
faces
(
(0 3 4 1)
(1 4 25 23)
(4 7 29 25)
(23 25 22 20)
(25 29 28 22)
(29 7 8 27)
(28 29 27 26)
(7 10 11 8)
(16 17 18 19)
);
}
innerAMI
{
type cyclicAMI;
neighbourPatch outerAMI;
faces
(
(4 5 6 7)
(6 9 10 7)
(2 5 4 3)
);
transform noOrdering;
}
outerAMI
{
type cyclicAMI;
neighbourPatch innerAMI;
faces
(
(14 13 17 18)
);
transform noOrdering;
}
top
{
type wall;
faces
(
(15 14 18 19)
(9 11 11 10)
);
}
bottom
{
type wall;
faces
(
(12 16 17 13)
(0 2 3 0)
);
}
farFieldWall
{
type wall;
faces
(
(12 15 19 16)
);
}
sphere
{
type wall;
faces
(
(20 22 21 20)
(21 22 28 30)
(30 26 26 28)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,61 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application compressibleInterDyMFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.07;
deltaT 5e-05;
writeControl adjustableRunTime;
writeInterval 0.001;
purgeWrite 0;
writeFormat ascii;
writePrecision 10;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
adjustTimeStep yes;
maxCo 0.1;
maxAlphaCo 0.1;
libs
(
"libsixDoFRigidBodyMotion.so"
"libtopoChangerFvMesh.so"
);
// ************************************************************************* //

View File

@ -0,0 +1,28 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object createPatchDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Do a synchronisation of coupled points after creation of any patches.
// Note: this does not work with points that are on multiple coupled patches
// with transformations (i.e. cyclics).
pointSync false;
// Patches to create. An empty patch list just removes patches with zero
// faces from $FOAM_CASE/constant/polyMesh/boundary.
patches
(
);
// ************************************************************************* //

View File

@ -0,0 +1,71 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(U) cellLimited Gauss linear 1;
}
divSchemes
{
default none;
div(rhoPhi,U) Gauss linearUpwind grad(U);
div(phi,alpha) Gauss vanLeer;
div(phirb,alpha) Gauss linear;
div(rhoPhi,K) Gauss linear;
div(rhoPhi,T) Gauss linear;
div(phi,thermo:rho.water) Gauss linear;
div(phi,thermo:rho.air) Gauss linear;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
div((phi+meshPhi),p) Gauss linear;
div((muEff*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
pcorr ;
p ;
pd;
alpha1;
p_rgh;
}
// ************************************************************************* //

View File

@ -0,0 +1,113 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"alpha.water.*"
{
nAlphaCorr 1;
nAlphaSubCycles 1;
cAlpha 1;
}
cellDisplacement
{
solver GAMG;
tolerance 1e-5;
relTol 0;
smoother GaussSeidel;
cacheAgglomeration true;
nCellsInCoarsestLevel 10;
agglomerator faceAreaPair;
mergeLevels 1;
}
"rho.*|pcorr.*"
{
solver PCG;
preconditioner DIC;
tolerance 1e-8;
relTol 0;
}
p_rgh
{
solver GAMG;
tolerance 1e-8;
relTol 0.05;
smoother DICGaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
cacheAgglomeration on;
agglomerator faceAreaPair;
nCellsInCoarsestLevel 10;
mergeLevels 1;
}
p_rghFinal
{
$p_rgh;
tolerance 1e-08;
relTol 0;
}
"(U|k|epsilon|T)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-08;
relTol 0.1;
}
"(U|k|epsilon|T)Final"
{
$U;
tolerance 1e-08;
relTol 0;
}
}
PIMPLE
{
momentumPredictor no;
nOuterCorrectors 2;
nCorrectors 4;
nNonOrthogonalCorrectors 1;
correctPhi yes;
checkMeshCourantNo no;
moveMeshOuterCorrectors no;
transonic false;
}
relaxationFactors
{
fields
{
}
equations
{
".*" 1;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,33 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object setFieldsDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
defaultFieldValues
(
volScalarFieldValue alpha.water 0 // Air
);
regions
(
boxToCell
{
box (-20 -20 -1) (20 0 1);
fieldValues
(
volScalarFieldValue alpha.water 1 // Water
);
}
);

View File

@ -0,0 +1,326 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
// 1. Create cellZones
// Create cellSet topBlock from cellZone topBlock created by blockMesh
{
name topBlockCells;
type cellSet;
action new;
source zoneToCell;
sourceInfo
{
name topBlock;
}
}
// Create cellSet centralBlock from cellZone centralBlock created by blockMesh
{
name centralBlockCells;
type cellSet;
action new;
source zoneToCell;
sourceInfo
{
name centralBlock;
}
}
// Create cellSet bottomBlock from cellZone bottomBlock created by blockMesh
{
name bottomBlockCells;
type cellSet;
action new;
source zoneToCell;
sourceInfo
{
name bottomBlock;
}
}
// 2. Get the faces at the top patch
// Get all the faces in the top patch
{
name top;
type faceSet;
action new;
source patchToFace;
sourceInfo
{
name top;
}
}
// Only keep those that border the top block topBlock
{
name top;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set topBlockCells;
option all;
}
}
// Convert top from faceSet to faceZone
{
name top;
type faceZoneSet;
action new;
source setAndNormalToFaceZone;
sourceInfo
{
faceSet top;
normal (0 -1 0);
}
}
// 3. Get the faces on the border of cellZones topBlock and centralBlock
// Get all faces in topBlock
{
name centralTopFaces;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set topBlockCells;
option all;
}
}
// Get the faces that border topBlock and centralBlock
{
name centralTopFaces;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set centralBlockCells;
option all;
}
}
// Convert topBlockFaces from faceSet to faceZone
{
name centralTopFaces;
type faceZoneSet;
action new;
source setsToFaceZone;
sourceInfo
{
faceSet centralTopFaces;
cellSet topBlockCells;
}
}
// 4. Get all the faces on the border of cellZones centralBlock and
// bottomBlock
// Get all faces in bottomBlock
{
name centralBottomFaces;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set bottomBlockCells;
option all;
}
}
// Get the faces that border centralBlock and bottomBlock
{
name centralBottomFaces;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set centralBlockCells;
option all;
}
}
// Convert centralBottomFaces from faceSet to faceZone
{
name centralBottomFaces;
type faceZoneSet;
action new;
source setsToFaceZone;
sourceInfo
{
faceSet centralBottomFaces;
cellSet centralBlockCells;
}
}
// 5. Get the faces at bottom patch
// Get all the faces in the bottom patch
{
name bottom;
type faceSet;
action new;
source patchToFace;
sourceInfo
{
name bottom;
}
}
// Only keep those that border the bottom block bottomBlockCells
{
name bottom;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set bottomBlockCells;
option all;
}
}
// Convert bottom from faceSet to faceZone
{
name bottom;
type faceZoneSet;
action new;
source setAndNormalToFaceZone;
sourceInfo
{
faceSet bottom;
normal (0 1 0);
}
}
// AJH New - create additional face zones to enable solid body motion
// for the majority of the action area around the sphere, and only apply
// layer addition-removal (LAR) at the extremities
// create cell zone at top of domain for LAR region
{
name LARTopCells;
type cellSet;
action new;
source cellToCell;
sourceInfo
{
set topBlockCells;
}
}
{
name LARTopCells;
type cellSet;
action subset;
source boxToCell;
sourceInfo
{
box (-100 0.95 -100)(100 100 100);
}
}
{
name LARTopCells;
type cellZoneSet;
action new;
source setToCellZone;
sourceInfo
{
set LARTopCells;
}
}
// upate old topBlock cellZone
{
name topBlockCells;
type cellSet;
action delete;
source cellToCell;
sourceInfo
{
set LARTopCells;
}
}
{
name topBlock;
type cellZoneSet;
action remove;
}
{
name topBlock;
type cellZoneSet;
action new;
source setToCellZone;
sourceInfo
{
set topBlockCells;
}
}
// generate face zone between LARTopCells and topBlockCells cellSets
{
name LARTopFaces;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set LARTopCells;
option all;
}
}
{
name LARTopFaces;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set topBlockCells;
option all;
}
}
{
name LARTopFaces;
type faceZoneSet;
action new;
source setsToFaceZone;
sourceInfo
{
faceSet LARTopFaces;
cellSet topBlockCells;
}
}
);
// ************************************************************************* //

View File

@ -15,11 +15,13 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
cellZone rotating;

View File

@ -15,9 +15,11 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
solidBodyMotionFunction SDA;
SDACoeffs

View File

@ -15,9 +15,11 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
solidBodyMotionFunction SDA;
SDACoeffs

View File

@ -15,9 +15,11 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
solidBodyMotionFunction SDA;
SDACoeffs

View File

@ -15,9 +15,11 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
solidBodyMotionFunction SDA;
SDACoeffs

View File

@ -15,9 +15,11 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
solidBodyMotionFunction tabulated6DoFMotion;
tabulated6DoFMotionCoeffs

View File

@ -15,9 +15,11 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
solidBodyMotionFunction multiMotion;

View File

@ -15,11 +15,13 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
cellZone innerCylinderSmall;

View File

@ -15,11 +15,13 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
solidBodyMotionFvMeshCoeffs
solver solidBody;
solidBodyCoeffs
{
cellZone rotor;

View File

@ -10,7 +10,7 @@ runApplication $(getApplication)
if ! isTest $@
then
foamDictionary system/controlDict -entry endTime -set 5
foamDictionary 2/T.liquid -entry boundaryField.wall2.q -set 1e5
foamDictionary 2/T.liquid -entry boundaryField.wall2.q -set 'uniform 1e5'
runApplication -a $(getApplication)
fi

View File

@ -10,7 +10,7 @@ runApplication $(getApplication)
if ! isTest $@
then
foamDictionary system/controlDict -entry endTime -set 5
foamDictionary 2/T.liquid -entry boundaryField.wall2.q -set 1e5
foamDictionary 2/T.liquid -entry boundaryField.wall2.q -set 'uniform 1e5'
runApplication -a $(getApplication)
fi