Skip to content
Snippets Groups Projects
Commit 35d80782 authored by Henry's avatar Henry
Browse files

rhoCentralDyMFoam: Add support for morphing-meshes and provide movingCone tutorial case

parent 8cd30234
Branches
Tags
No related merge requests found
Showing
with 816 additions and 0 deletions
......@@ -128,6 +128,13 @@ int main(int argc, char *argv[])
surfaceScalarField phiv_pos("phiv_pos", U_pos & mesh.Sf());
surfaceScalarField phiv_neg("phiv_neg", U_neg & mesh.Sf());
// Make fluxes relative to mesh-motion
if (mesh.moving())
{
phiv_pos -= mesh.phi();
phiv_neg -= mesh.phi();
}
volScalarField c(sqrt(thermo.Cp()/thermo.Cv()*rPsi));
surfaceScalarField cSf_pos
(
......@@ -193,6 +200,7 @@ int main(int argc, char *argv[])
+ aSf*p_pos - aSf*p_neg
);
// Make flux for pressure-work absolute
if (mesh.moving())
{
phiEp += mesh.phi()*(a_pos*p_pos + a_neg*p_neg);
......
/*--------------------------------*- 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 volScalarField;
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
movingWall
{
type zeroGradient;
}
farFieldMoving
{
type zeroGradient;
}
fixedWall
{
type zeroGradient;
}
left
{
type inletOutlet;
inletValue $internalField;
}
farField
{
type zeroGradient;
}
back
{
type wedge;
}
front
{
type wedge;
}
}
// ************************************************************************* //
/*--------------------------------*- 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 volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
movingWall
{
type movingWallVelocity;
value $internalField;
}
farFieldMoving
{
type fixedValue;
value uniform (0 0 0);
}
fixedWall
{
type fixedValue;
value uniform (0 0 0);
}
left
{
type pressureInletOutletVelocity;
value $internalField;
}
farField
{
type fixedValue;
value uniform (0 0 0);
}
back
{
type wedge;
}
front
{
type wedge;
}
}
// ************************************************************************* //
/*--------------------------------*- 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 volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e5;
boundaryField
{
movingWall
{
type zeroGradient;
}
farFieldMoving
{
type zeroGradient;
}
fixedWall
{
type zeroGradient;
}
left
{
type totalPressure;
p0 $internalField;
U U;
phi phi;
rho none;
psi none;
gamma 1;
value $internalField;
}
farField
{
type zeroGradient;
}
back
{
type wedge;
}
front
{
type wedge;
}
}
// ************************************************************************* //
/*--------------------------------*- 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 pointScalarField;
object pointMotionU;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
movingWall
{
type uniformFixedValue;
uniformValue constant 160;
}
farFieldMoving
{
type slip;
}
fixedWall
{
type uniformFixedValue;
uniformValue constant 0;
}
left
{
type uniformFixedValue;
uniformValue constant 0;
}
farField
{
type slip;
}
back
{
type wedge;
}
front
{
type wedge;
}
}
// ************************************************************************* //
/*--------------------------------*- 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 "constant";
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
solver velocityComponentLaplacian;
velocityComponentLaplacianCoeffs
{
component x;
diffusivity directional (1 200 0);
}
// ************************************************************************* //
/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 0.001;
vertices
(
(-7.5 0 0)
(-7 0 0)
(-3.5 0 0)
(0 0 0)
(-7.5 0.75 -0.032745707)
(-7 0.75 -0.032745707)
(-3.5 2 -0.087321886)
(0 2 -0.087321886)
(-7.5 2.5 -0.10915236)
(-7 2.5 -0.10915236)
(-3.5 2.5 -0.10915236)
(0 2.5 -0.10915236)
(-7.5 0.75 0.032745707)
(-7 0.75 0.032745707)
(-3.5 2 0.087321886)
(0 2 0.087321886)
(-7.5 2.5 0.10915236)
(-7 2.5 0.10915236)
(-3.5 2.5 0.10915236)
(0 2.5 0.10915236)
);
blocks
(
hex (0 1 5 4 0 1 13 12) (15 15 1) simpleGrading (1 1 1)
hex (2 3 7 6 2 3 15 14) (20 20 1) simpleGrading (2 0.25 1)
hex (4 5 9 8 12 13 17 16) (15 15 1) simpleGrading (1 1 1)
hex (5 6 10 9 13 14 18 17) (50 15 1) simpleGrading (1 1 1)
hex (6 7 11 10 14 15 19 18) (20 15 1) simpleGrading (2 1 1)
);
edges
(
);
boundary
(
movingWall
{
type wall;
faces
(
(1 5 13 1)
(5 6 14 13)
(2 2 14 6)
);
}
farFieldMoving
{
type patch;
faces
(
(9 17 18 10)
);
}
fixedWall
{
type wall;
faces
(
(3 7 15 3)
(7 11 19 15)
);
}
axis
{
type empty;
faces
(
(0 1 1 0)
(2 3 3 2)
);
}
left
{
type patch;
faces
(
(0 0 12 4)
(4 12 16 8)
);
}
farField
{
type patch;
faces
(
(8 16 17 9)
(10 18 19 11)
);
}
back
{
type wedge;
faces
(
(0 4 5 1)
(2 6 7 3)
(4 8 9 5)
(5 9 10 6)
(6 10 11 7)
);
}
front
{
type wedge;
faces
(
(0 1 13 12)
(2 3 15 14)
(12 13 17 16)
(13 14 18 17)
(14 15 19 18)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //
/*--------------------------------*- 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 polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
8
(
movingWall
{
type wall;
inGroups 1(wall);
nFaces 85;
startFace 3665;
}
farFieldMoving
{
type patch;
nFaces 50;
startFace 3750;
}
fixedWall
{
type wall;
inGroups 1(wall);
nFaces 35;
startFace 3800;
}
axis
{
type empty;
inGroups 1(empty);
nFaces 0;
startFace 3835;
}
left
{
type patch;
nFaces 30;
startFace 3835;
}
farField
{
type patch;
nFaces 35;
startFace 3865;
}
back
{
type wedge;
inGroups 1(wedge);
nFaces 1900;
startFace 3900;
}
front
{
type wedge;
inGroups 1(wedge);
nFaces 1900;
startFace 5800;
}
)
// ************************************************************************* //
/*--------------------------------*- 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 "constant";
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type hePsiThermo;
mixture pureMixture;
transport const;
thermo hConst;
equationOfState perfectGas;
specie specie;
energy sensibleInternalEnergy;
}
mixture
{
specie
{
nMoles 1;
molWeight 28.9;
}
thermodynamics
{
Cp 1007;
Hf 2.544e+06;
}
transport
{
mu 1e-3;
Pr 0.7;
}
}
// ************************************************************************* //
/*--------------------------------*- 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 "constant";
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //
/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application rhoCentralDyMFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.00002;
deltaT 1e-08;
writeControl adjustableRunTime;
writeInterval 5e-7;
purgeWrite 0;
writeFormat binary;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
adjustTimeStep yes;
maxCo 0.2;
maxDeltaT 1;
// ************************************************************************* //
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
cuttingPlane
{
type surfaces;
functionObjectLibs ("libsampling.so");
outputControl outputTime;
surfaceFormat vtk;
fields ( p U );
interpolationScheme cellPoint;
surfaces
(
zNormal
{
type cuttingPlane;
planeType pointAndNormal;
pointAndNormalDict
{
basePoint (0 0 0);
normalVector (0 0 1);
}
interpolate true;
}
);
}
// ************************************************************************* //
/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
fluxScheme Kurganov;
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
div(tauMC) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
laplacian(diffusivity,cellMotionU) Gauss linear uncorrected;
}
interpolationSchemes
{
default linear;
reconstruct(rho) vanLeer;
reconstruct(U) vanLeerV;
reconstruct(T) vanLeer;
}
snGradSchemes
{
default corrected;
}
// ************************************************************************* //
/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0.01;
}
pFinal
{
$p;
relTol 0;
}
pcorr
{
solver PCG;
preconditioner DIC;
tolerance 1e-2;
relTol 0;
}
"rho.*"
{
solver diagonal;
tolerance 1e-05;
relTol 0;
}
"(U|h|e|R|k|epsilon|omega)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-05;
relTol 0.1;
}
"(U|h|e|R|k|epsilon|omega)Final"
{
$U;
relTol 0;
}
cellMotionUx
{
solver PCG;
preconditioner DIC;
tolerance 1e-08;
relTol 0;
}
}
PIMPLE
{
momentumPredictor yes;
correctPhi yes;
nOuterCorrectors 2;
nCorrectors 2;
transonic yes;
nNonOrthogonalCorrectors 0;
rhoMin 0.1;
rhoMax 100.0;
}
relaxationFactors
{
equations
{
".*" 1;
}
}
// ************************************************************************* //
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment