mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge commit 'OpenCFD/master' into olesenm
This commit is contained in:
6
.gitignore
vendored
6
.gitignore
vendored
@ -16,6 +16,7 @@
|
|||||||
*.la
|
*.la
|
||||||
*.so
|
*.so
|
||||||
*.jar
|
*.jar
|
||||||
|
lex.yy.c
|
||||||
|
|
||||||
# Corefiles
|
# Corefiles
|
||||||
core
|
core
|
||||||
@ -27,10 +28,13 @@ core
|
|||||||
lnInclude
|
lnInclude
|
||||||
|
|
||||||
# linux build folder(s) - anywhere
|
# linux build folder(s) - anywhere
|
||||||
linux*Gcc*[SD]POpt*
|
linux*Gcc*
|
||||||
|
|
||||||
# reinstate wmake/rules that look like build folders
|
# reinstate wmake/rules that look like build folders
|
||||||
!wmake/rules/linux*
|
!wmake/rules/linux*
|
||||||
|
# but do ignore the derived files in there
|
||||||
|
wmake/rules/linux*/dirToString
|
||||||
|
wmake/rules/linux*/wmkdep
|
||||||
|
|
||||||
# doxygen generated documentation
|
# doxygen generated documentation
|
||||||
doc/[Dd]oxygen/html
|
doc/[Dd]oxygen/html
|
||||||
|
|||||||
@ -58,7 +58,7 @@
|
|||||||
Info<< "Calculating field g.h\n" << endl;
|
Info<< "Calculating field g.h\n" << endl;
|
||||||
volScalarField gh("gh", g & mesh.C());
|
volScalarField gh("gh", g & mesh.C());
|
||||||
|
|
||||||
dimensionedScalar pRef("pRef", p.dimensions(), 1.0e5);
|
dimensionedScalar pRef("pRef", p.dimensions(), thermo->lookup("pRef"));
|
||||||
|
|
||||||
Info<< "Creating field pd\n" << endl;
|
Info<< "Creating field pd\n" << endl;
|
||||||
volScalarField pd
|
volScalarField pd
|
||||||
@ -67,10 +67,14 @@
|
|||||||
(
|
(
|
||||||
"pd",
|
"pd",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
mesh
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
p - rho*gh - pRef,
|
mesh
|
||||||
p.boundaryField().types()
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
p = pd + rho*gh + pRef;
|
||||||
|
thermo->correct();
|
||||||
|
|
||||||
dimensionedScalar initialMass = fvc::domainIntegrate(rho);
|
dimensionedScalar initialMass = fvc::domainIntegrate(rho);
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
bool closedVolume = pd.needReference();
|
bool closedVolume = pd.needReference();
|
||||||
|
|
||||||
//pd.boundaryField() ==
|
|
||||||
// p.boundaryField() - rho.boundaryField()*gh.boundaryField() - pRef.value();
|
|
||||||
|
|
||||||
rho = thermo->rho();
|
rho = thermo->rho();
|
||||||
|
|
||||||
volScalarField rUA = 1.0/UEqn.A();
|
volScalarField rUA = 1.0/UEqn.A();
|
||||||
|
|||||||
@ -54,8 +54,7 @@
|
|||||||
Info<< "Calculating field g.h\n" << endl;
|
Info<< "Calculating field g.h\n" << endl;
|
||||||
volScalarField gh("gh", g & mesh.C());
|
volScalarField gh("gh", g & mesh.C());
|
||||||
|
|
||||||
|
dimensionedScalar pRef("pRef", p.dimensions(), thermo->lookup("pRef"));
|
||||||
dimensionedScalar pRef("pRef", p.dimensions(), 1.0e5);
|
|
||||||
|
|
||||||
Info<< "Creating field pd\n" << endl;
|
Info<< "Creating field pd\n" << endl;
|
||||||
volScalarField pd
|
volScalarField pd
|
||||||
@ -64,16 +63,26 @@
|
|||||||
(
|
(
|
||||||
"pd",
|
"pd",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
mesh
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
p - rho*gh - pRef,
|
mesh
|
||||||
p.boundaryField().types()
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
p = pd + rho*gh + pRef;
|
||||||
|
thermo->correct();
|
||||||
|
|
||||||
|
|
||||||
label pdRefCell = 0;
|
label pdRefCell = 0;
|
||||||
scalar pdRefValue = 0.0;
|
scalar pdRefValue = 0.0;
|
||||||
setRefCell(pd, mesh.solutionDict().subDict("SIMPLE"), pdRefCell, pdRefValue);
|
setRefCell
|
||||||
|
(
|
||||||
|
pd,
|
||||||
|
mesh.solutionDict().subDict("SIMPLE"),
|
||||||
|
pdRefCell,
|
||||||
|
pdRefValue
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
dimensionedScalar initialMass = fvc::domainIntegrate(rho);
|
dimensionedScalar initialMass = fvc::domainIntegrate(rho);
|
||||||
|
|||||||
@ -1,6 +1,3 @@
|
|||||||
pd.boundaryField() ==
|
|
||||||
p.boundaryField() - rho.boundaryField()*gh.boundaryField() - pRef.value();
|
|
||||||
|
|
||||||
volScalarField rUA = 1.0/UEqn().A();
|
volScalarField rUA = 1.0/UEqn().A();
|
||||||
U = rUA*UEqn().H();
|
U = rUA*UEqn().H();
|
||||||
UEqn.clear();
|
UEqn.clear();
|
||||||
|
|||||||
@ -55,8 +55,7 @@
|
|||||||
Info<< "Calculating field g.h\n" << endl;
|
Info<< "Calculating field g.h\n" << endl;
|
||||||
volScalarField gh("gh", g & mesh.C());
|
volScalarField gh("gh", g & mesh.C());
|
||||||
|
|
||||||
|
dimensionedScalar pRef("pRef", p.dimensions(), thermo->lookup("pRef"));
|
||||||
dimensionedScalar pRef("pRef", p.dimensions(), 1.0e5);
|
|
||||||
|
|
||||||
Info<< "Creating field pd\n" << endl;
|
Info<< "Creating field pd\n" << endl;
|
||||||
volScalarField pd
|
volScalarField pd
|
||||||
@ -65,12 +64,16 @@
|
|||||||
(
|
(
|
||||||
"pd",
|
"pd",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
mesh
|
mesh,
|
||||||
|
IOobject::MUST_READ,
|
||||||
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
p - rho*gh - pRef,
|
mesh
|
||||||
p.boundaryField().types()
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
p = pd + rho*gh + pRef;
|
||||||
|
thermo->correct();
|
||||||
|
|
||||||
|
|
||||||
label pdRefCell = 0;
|
label pdRefCell = 0;
|
||||||
scalar pdRefValue = 0.0;
|
scalar pdRefValue = 0.0;
|
||||||
|
|||||||
@ -1,6 +1,3 @@
|
|||||||
pd.boundaryField() ==
|
|
||||||
p.boundaryField() - rho.boundaryField()*gh.boundaryField() - pRef.value();
|
|
||||||
|
|
||||||
volScalarField rUA = 1.0/UEqn().A();
|
volScalarField rUA = 1.0/UEqn().A();
|
||||||
U = rUA*UEqn().H();
|
U = rUA*UEqn().H();
|
||||||
UEqn.clear();
|
UEqn.clear();
|
||||||
|
|||||||
@ -11,7 +11,12 @@
|
|||||||
|
|
||||||
List<scalar> initialMassf(fluidRegions.size());
|
List<scalar> initialMassf(fluidRegions.size());
|
||||||
|
|
||||||
dimensionedScalar pRef("pRef", dimensionSet(1, -1, -2, 0, 0), 1.0E5);
|
dimensionedScalar pRef
|
||||||
|
(
|
||||||
|
"pRef",
|
||||||
|
dimensionSet(1, -1, -2, 0, 0),
|
||||||
|
rp.lookup("pRef")
|
||||||
|
);
|
||||||
|
|
||||||
// Populate fluid field pointer lists
|
// Populate fluid field pointer lists
|
||||||
forAll(fluidRegions, i)
|
forAll(fluidRegions, i)
|
||||||
@ -173,7 +178,7 @@
|
|||||||
|
|
||||||
Info<< " Updating p from pd\n" << endl;
|
Info<< " Updating p from pd\n" << endl;
|
||||||
thermof[i].p() == pdf[i] + rhof[i]*ghf[i] + pRef;
|
thermof[i].p() == pdf[i] + rhof[i]*ghf[i] + pRef;
|
||||||
|
thermof[i].correct();
|
||||||
|
|
||||||
initialMassf[i] = fvc::domainIntegrate(rhof[i]).value();
|
initialMassf[i] = fvc::domainIntegrate(rhof[i]).value();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,6 @@
|
|||||||
{
|
{
|
||||||
bool closedVolume = false;
|
bool closedVolume = false;
|
||||||
|
|
||||||
//pdf[i].boundaryField() ==
|
|
||||||
// thermof[i].p().boundaryField()
|
|
||||||
// - rhof[i].boundaryField()*ghf[i].boundaryField()
|
|
||||||
// - pRef.value();
|
|
||||||
|
|
||||||
rhof[i] = thermof[i].rho();
|
rhof[i] = thermof[i].rho();
|
||||||
|
|
||||||
volScalarField rUA = 1.0/UEqn().A();
|
volScalarField rUA = 1.0/UEqn().A();
|
||||||
@ -15,7 +10,7 @@
|
|||||||
fvc::interpolate(rhof[i])
|
fvc::interpolate(rhof[i])
|
||||||
*(
|
*(
|
||||||
(fvc::interpolate(Uf[i]) & fluidRegions[i].Sf())
|
(fvc::interpolate(Uf[i]) & fluidRegions[i].Sf())
|
||||||
// + fvc::ddtPhiCorr(rUA, rhof[i], Uf[i], phif[i])
|
+ fvc::ddtPhiCorr(rUA, rhof[i], Uf[i], phif[i])
|
||||||
)
|
)
|
||||||
- fvc::interpolate(rhof[i]*rUA*ghf[i])
|
- fvc::interpolate(rhof[i]*rUA*ghf[i])
|
||||||
*fvc::snGrad(rhof[i])
|
*fvc::snGrad(rhof[i])
|
||||||
@ -55,8 +50,7 @@
|
|||||||
initialMassf[i]
|
initialMassf[i]
|
||||||
)
|
)
|
||||||
- fvc::domainIntegrate(thermof[i].psi()*thermof[i].p())
|
- fvc::domainIntegrate(thermof[i].psi()*thermof[i].p())
|
||||||
)
|
)/fvc::domainIntegrate(thermof[i].psi());
|
||||||
/fvc::domainIntegrate(thermof[i].psi());
|
|
||||||
|
|
||||||
rhof[i] = thermof[i].rho();
|
rhof[i] = thermof[i].rho();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,7 +37,7 @@
|
|||||||
mesh
|
mesh
|
||||||
);
|
);
|
||||||
|
|
||||||
# include "compressibleCreatePhi.H"
|
#include "compressibleCreatePhi.H"
|
||||||
|
|
||||||
|
|
||||||
Info<< "Creating turbulence model\n" << endl;
|
Info<< "Creating turbulence model\n" << endl;
|
||||||
@ -53,7 +53,7 @@
|
|||||||
Info<< "Calculating field g.h\n" << endl;
|
Info<< "Calculating field g.h\n" << endl;
|
||||||
volScalarField gh("gh", g & mesh.C());
|
volScalarField gh("gh", g & mesh.C());
|
||||||
|
|
||||||
dimensionedScalar pRef("pRef", p.dimensions(), 0.0);
|
dimensionedScalar pRef("pRef", p.dimensions(), thermo->lookup("pRef"));
|
||||||
|
|
||||||
Info<< "Creating field pd\n" << endl;
|
Info<< "Creating field pd\n" << endl;
|
||||||
volScalarField pd
|
volScalarField pd
|
||||||
@ -69,7 +69,7 @@
|
|||||||
mesh
|
mesh
|
||||||
);
|
);
|
||||||
|
|
||||||
//pd = p - rho*gh - pRef;
|
|
||||||
p = pd + rho*gh + pRef;
|
p = pd + rho*gh + pRef;
|
||||||
|
thermo->correct();
|
||||||
|
|
||||||
dimensionedScalar initialMass = fvc::domainIntegrate(rho);
|
dimensionedScalar initialMass = fvc::domainIntegrate(rho);
|
||||||
|
|||||||
6
applications/utilities/mesh/generation/extrudeMesh/Allwclean
Executable file
6
applications/utilities/mesh/generation/extrudeMesh/Allwclean
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -x
|
||||||
|
|
||||||
|
wclean libso extrudeModel
|
||||||
|
wclean
|
||||||
|
|
||||||
6
applications/utilities/mesh/generation/extrudeMesh/Allwmake
Executable file
6
applications/utilities/mesh/generation/extrudeMesh/Allwmake
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -x
|
||||||
|
|
||||||
|
wmake libso extrudeModel
|
||||||
|
wmake
|
||||||
|
|
||||||
@ -1,3 +1,4 @@
|
|||||||
extrudeMesh.C
|
extrudeMesh.C
|
||||||
|
|
||||||
EXE = $(FOAM_APPBIN)/extrudeMesh
|
EXE = $(FOAM_APPBIN)/extrudeMesh
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-IextrudedMesh \
|
-IextrudedMesh \
|
||||||
|
-IextrudeModel/lnInclude \
|
||||||
-I$(FOAM_SRC)/meshTools/lnInclude \
|
-I$(FOAM_SRC)/meshTools/lnInclude \
|
||||||
-I$(FOAM_SRC)/dynamicMesh/lnInclude
|
-I$(FOAM_SRC)/dynamicMesh/lnInclude
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lmeshTools \
|
-lmeshTools \
|
||||||
-ldynamicMesh
|
-ldynamicMesh \
|
||||||
|
-lextrudeModel
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,6 @@
|
|||||||
Time runTimeExtruded
|
Time runTimeExtruded
|
||||||
(
|
(
|
||||||
Time::controlDictName,
|
Time::controlDictName,
|
||||||
rootDirTarget,
|
args.rootPath(),
|
||||||
caseDirTarget
|
args.caseName()
|
||||||
);
|
);
|
||||||
|
|||||||
@ -23,39 +23,10 @@ License
|
|||||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Extrude mesh from existing patch or from patch read from file. Merges close
|
Extrude mesh from existing patch or from patch read from file.
|
||||||
points so be careful.
|
Note: Merges close points so be careful.
|
||||||
|
|
||||||
Can do wedges:
|
Type of extrusion prescribed by run-time selectable model.
|
||||||
- use wedgeExtruder instead of e.g. linearNormalExtruder
|
|
||||||
- extrusion is opposite the surface/patch normal so inwards the source
|
|
||||||
mesh
|
|
||||||
- axis direction has to be consistent with this.
|
|
||||||
- use -mergeFaces option if doing full 360 and want to merge front and back
|
|
||||||
|
|
||||||
E.g. starting from 'movingWall' patch of cavity tutorial:
|
|
||||||
- we want to rotate around the left side of this patch (is at x=0,y=0.1)
|
|
||||||
for a full 360 degrees:
|
|
||||||
|
|
||||||
wedgeExtruder
|
|
||||||
(
|
|
||||||
point(0,0.1,0), // point on axis
|
|
||||||
vector(0,0,-1), // (normalized!) direction of axis
|
|
||||||
360.0/180.0*mathematicalConstant::pi // angle
|
|
||||||
)
|
|
||||||
|
|
||||||
- note direction of axis. This should be consistent with rotating against
|
|
||||||
the patch normal direction. If you get it wrong you'll see all cells
|
|
||||||
with extreme aspect ratio and internal faces wrong way around in
|
|
||||||
checkMesh
|
|
||||||
|
|
||||||
- call with e.g. 10 layers. Thickness argument (0.1) is not used!
|
|
||||||
|
|
||||||
extrudeMesh <root> <case> 10 0.1 \
|
|
||||||
-sourceRoot $FOAM_TUTORIALS/icoFoam \
|
|
||||||
-sourceCase cavity \
|
|
||||||
-sourcePatch movingWall
|
|
||||||
-mergeFaces
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
@ -72,10 +43,7 @@ Description
|
|||||||
#include "perfectInterface.H"
|
#include "perfectInterface.H"
|
||||||
|
|
||||||
#include "extrudedMesh.H"
|
#include "extrudedMesh.H"
|
||||||
#include "linearNormalExtruder.H"
|
#include "extrudeModel.H"
|
||||||
#include "linearRadialExtruder.H"
|
|
||||||
#include "sigmaRadialExtruder.H"
|
|
||||||
#include "wedgeExtruder.H"
|
|
||||||
|
|
||||||
using namespace Foam;
|
using namespace Foam;
|
||||||
|
|
||||||
@ -99,6 +67,23 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
autoPtr<extrudedMesh> meshPtr(NULL);
|
autoPtr<extrudedMesh> meshPtr(NULL);
|
||||||
|
|
||||||
|
autoPtr<extrudeModel> model
|
||||||
|
(
|
||||||
|
extrudeModel::New
|
||||||
|
(
|
||||||
|
IOdictionary
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"extrudeProperties",
|
||||||
|
runTimeExtruded.constant(),
|
||||||
|
runTimeExtruded,
|
||||||
|
IOobject::MUST_READ
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
if (args.options().found("sourceRoot"))
|
if (args.options().found("sourceRoot"))
|
||||||
{
|
{
|
||||||
fileName rootDirSource(args.options()["sourceRoot"]);
|
fileName rootDirSource(args.options()["sourceRoot"]);
|
||||||
@ -115,7 +100,6 @@ int main(int argc, char *argv[])
|
|||||||
rootDirSource,
|
rootDirSource,
|
||||||
caseDirSource
|
caseDirSource
|
||||||
);
|
);
|
||||||
|
|
||||||
# include "createPolyMesh.H"
|
# include "createPolyMesh.H"
|
||||||
|
|
||||||
label patchID = mesh.boundaryMesh().findPatchID(patchName);
|
label patchID = mesh.boundaryMesh().findPatchID(patchName);
|
||||||
@ -153,20 +137,7 @@ int main(int argc, char *argv[])
|
|||||||
runTimeExtruded
|
runTimeExtruded
|
||||||
),
|
),
|
||||||
pp,
|
pp,
|
||||||
nLayers, // number of layers
|
model()
|
||||||
linearNormalExtruder(-thickness) // overall thickness(signed!)
|
|
||||||
//wedgeExtruder
|
|
||||||
//(
|
|
||||||
// point(0,0.1,0), // point on axis
|
|
||||||
// vector(0,0,-1), // (normalized!) direction of axis
|
|
||||||
// 360.0/180.0*mathematicalConstant::pi // angle
|
|
||||||
//)
|
|
||||||
//wedgeExtruder
|
|
||||||
//(
|
|
||||||
// point(0,0,0), // point on axis
|
|
||||||
// vector(0,1,0), // (normalized!) direction of axis
|
|
||||||
// 30.0/180.0*mathematicalConstant::pi // angle
|
|
||||||
//)
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -198,12 +169,10 @@ int main(int argc, char *argv[])
|
|||||||
runTimeExtruded
|
runTimeExtruded
|
||||||
),
|
),
|
||||||
fMesh,
|
fMesh,
|
||||||
nLayers, // number of layers
|
model()
|
||||||
linearNormalExtruder(-thickness) // overall thickness (signed!)
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
extrudedMesh& mesh = meshPtr();
|
extrudedMesh& mesh = meshPtr();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,9 @@
|
|||||||
|
extrudeModel/extrudeModel.C
|
||||||
|
extrudeModel/newExtrudeModel.C
|
||||||
|
linearNormal/linearNormal.C
|
||||||
|
linearRadial/linearRadial.C
|
||||||
|
sigmaRadial/sigmaRadial.C
|
||||||
|
wedge/wedge.C
|
||||||
|
|
||||||
|
LIB = $(FOAM_LIBBIN)/libextrudeModel
|
||||||
|
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
EXE_INC = \
|
||||||
|
-I$(FOAM_SRC)/meshTools/lnInclude \
|
||||||
|
-I$(FOAM_SRC)/dynamicMesh/lnInclude
|
||||||
|
|
||||||
|
EXE_LIBS = \
|
||||||
|
-lmeshTools \
|
||||||
|
-ldynamicMesh
|
||||||
|
|
||||||
@ -0,0 +1,66 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "extrudeModel.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
defineTypeNameAndDebug(extrudeModel, 0);
|
||||||
|
defineRunTimeSelectionTable(extrudeModel, dictionary);
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::extrudeModel::extrudeModel
|
||||||
|
(
|
||||||
|
const word& modelType,
|
||||||
|
const dictionary& dict
|
||||||
|
)
|
||||||
|
:
|
||||||
|
nLayers_(readLabel(dict.lookup("nLayers"))),
|
||||||
|
dict_(dict),
|
||||||
|
coeffDict_(dict.subDict(modelType + "Coeffs"))
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::extrudeModel::~extrudeModel()
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::label Foam::extrudeModel::nLayers() const
|
||||||
|
{
|
||||||
|
return nLayers_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -0,0 +1,136 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Class
|
||||||
|
Foam::extrudeModel
|
||||||
|
|
||||||
|
Description
|
||||||
|
Top level extrusion model class
|
||||||
|
|
||||||
|
SourceFiles
|
||||||
|
extrudeModel.C
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef extrudeModel_H
|
||||||
|
#define extrudeModel_H
|
||||||
|
|
||||||
|
#include "dictionary.H"
|
||||||
|
#include "point.H"
|
||||||
|
#include "autoPtr.H"
|
||||||
|
#include "runTimeSelectionTables.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
Class extrudeModel Declaration
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
class extrudeModel
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
|
||||||
|
// Protected data
|
||||||
|
|
||||||
|
const label nLayers_;
|
||||||
|
|
||||||
|
const dictionary& dict_;
|
||||||
|
|
||||||
|
const dictionary& coeffDict_;
|
||||||
|
|
||||||
|
|
||||||
|
// Private Member Functions
|
||||||
|
|
||||||
|
//- Disallow default bitwise copy construct
|
||||||
|
extrudeModel(const extrudeModel&);
|
||||||
|
|
||||||
|
//- Disallow default bitwise assignment
|
||||||
|
void operator=(const extrudeModel&);
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
//- Runtime type information
|
||||||
|
TypeName("extrudeModel");
|
||||||
|
|
||||||
|
//- Declare runtime constructor selection table
|
||||||
|
|
||||||
|
declareRunTimeSelectionTable
|
||||||
|
(
|
||||||
|
autoPtr,
|
||||||
|
extrudeModel,
|
||||||
|
dictionary,
|
||||||
|
(
|
||||||
|
const dictionary& dict
|
||||||
|
),
|
||||||
|
(dict)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// Constructors
|
||||||
|
|
||||||
|
//- Construct from dictionary
|
||||||
|
extrudeModel(const word& modelType, const dictionary&);
|
||||||
|
|
||||||
|
|
||||||
|
// Selectors
|
||||||
|
|
||||||
|
//- Select null constructed
|
||||||
|
static autoPtr<extrudeModel> New(const dictionary&);
|
||||||
|
|
||||||
|
|
||||||
|
//- Destructor
|
||||||
|
virtual ~extrudeModel();
|
||||||
|
|
||||||
|
|
||||||
|
// Member Functions
|
||||||
|
|
||||||
|
// Access
|
||||||
|
|
||||||
|
label nLayers() const;
|
||||||
|
|
||||||
|
|
||||||
|
// Member Operators
|
||||||
|
|
||||||
|
virtual point operator()
|
||||||
|
(
|
||||||
|
const point& surfacePoint,
|
||||||
|
const vector& surfaceNormal,
|
||||||
|
const label layer
|
||||||
|
) const = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "extrudeModel.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::autoPtr<Foam::extrudeModel> Foam::extrudeModel::New
|
||||||
|
(
|
||||||
|
const dictionary& dict
|
||||||
|
)
|
||||||
|
{
|
||||||
|
word extrudeModelType(dict.lookup("extrudeModel"));
|
||||||
|
|
||||||
|
Info<< "Selecting extrudeModel " << extrudeModelType << endl;
|
||||||
|
|
||||||
|
dictionaryConstructorTable::iterator cstrIter =
|
||||||
|
dictionaryConstructorTablePtr_->find(extrudeModelType);
|
||||||
|
|
||||||
|
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||||
|
{
|
||||||
|
FatalErrorIn("extrudeModel::New(const dictionary&)")
|
||||||
|
<< "Unknown extrudeModelType type "
|
||||||
|
<< extrudeModelType
|
||||||
|
<< ", constructor not in hash table" << nl << nl
|
||||||
|
<< " Valid extrudeModel types are :" << nl
|
||||||
|
<< dictionaryConstructorTablePtr_->toc() << nl
|
||||||
|
<< exit(FatalError);
|
||||||
|
}
|
||||||
|
|
||||||
|
return autoPtr<extrudeModel>(cstrIter()(dict));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -0,0 +1,79 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "linearNormal.H"
|
||||||
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
namespace extrudeModels
|
||||||
|
{
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
defineTypeNameAndDebug(linearNormal, 0);
|
||||||
|
|
||||||
|
addToRunTimeSelectionTable(extrudeModel, linearNormal, dictionary);
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
linearNormal::linearNormal(const dictionary& dict)
|
||||||
|
:
|
||||||
|
extrudeModel(typeName, dict),
|
||||||
|
thickness_(readScalar(coeffDict_.lookup("thickness")))
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
linearNormal::~linearNormal()
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Operators * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
point linearNormal::operator()
|
||||||
|
(
|
||||||
|
const point& surfacePoint,
|
||||||
|
const vector& surfaceNormal,
|
||||||
|
const label layer
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
scalar d = thickness_*layer/nLayers_;
|
||||||
|
return surfacePoint + d*surfaceNormal;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace extrudeModels
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -23,27 +23,33 @@ License
|
|||||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
Class
|
Class
|
||||||
Foam::linearNormalExtruder
|
Foam::extrudeModels::linearNormal
|
||||||
|
|
||||||
Description
|
Description
|
||||||
|
Extrudes by transforming points normal to the surface by a given distance
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#ifndef linearNormalExtruder_H
|
#ifndef linearNormal_H
|
||||||
#define linearNormalExtruder_H
|
#define linearNormal_H
|
||||||
|
|
||||||
#include "point.H"
|
#include "point.H"
|
||||||
|
#include "extrudeModel.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
{
|
{
|
||||||
|
namespace extrudeModels
|
||||||
|
{
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class linearNormalExtruder Declaration
|
Class linearNormal Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
class linearNormalExtruder
|
class linearNormal
|
||||||
|
:
|
||||||
|
public extrudeModel
|
||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
@ -53,13 +59,17 @@ class linearNormalExtruder
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
//- Runtime type information
|
||||||
|
TypeName("linearNormal");
|
||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
//- Construct from components
|
//- Construct from components
|
||||||
linearNormalExtruder(const scalar thickness)
|
linearNormal(const dictionary& dict);
|
||||||
:
|
|
||||||
thickness_(thickness)
|
|
||||||
{}
|
//- Destructor
|
||||||
|
~linearNormal();
|
||||||
|
|
||||||
|
|
||||||
// Member Operators
|
// Member Operators
|
||||||
@ -68,19 +78,14 @@ public:
|
|||||||
(
|
(
|
||||||
const point& surfacePoint,
|
const point& surfacePoint,
|
||||||
const vector& surfaceNormal,
|
const vector& surfaceNormal,
|
||||||
const label nLayers,
|
|
||||||
const label layer
|
const label layer
|
||||||
) const
|
) const;
|
||||||
{
|
|
||||||
scalar d = thickness_*layer/nLayers;
|
|
||||||
|
|
||||||
return surfacePoint + d*surfaceNormal;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace extrudeModels
|
||||||
} // End namespace Foam
|
} // End namespace Foam
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -88,3 +93,4 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -0,0 +1,82 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "linearRadial.H"
|
||||||
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
namespace extrudeModels
|
||||||
|
{
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
defineTypeNameAndDebug(linearRadial, 0);
|
||||||
|
|
||||||
|
addToRunTimeSelectionTable(extrudeModel, linearRadial, dictionary);
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
linearRadial::linearRadial(const dictionary& dict)
|
||||||
|
:
|
||||||
|
extrudeModel(typeName, dict),
|
||||||
|
R_(readScalar(coeffDict_.lookup("R")))
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
linearRadial::~linearRadial()
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Operators * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
point linearRadial::operator()
|
||||||
|
(
|
||||||
|
const point& surfacePoint,
|
||||||
|
const vector& surfaceNormal,
|
||||||
|
const label layer
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
// radius of the surface
|
||||||
|
scalar rs = mag(surfacePoint);
|
||||||
|
vector rsHat = surfacePoint/rs;
|
||||||
|
|
||||||
|
scalar delta = (R_ - rs)/nLayers_;
|
||||||
|
scalar r = rs + layer*delta;
|
||||||
|
return r*rsHat;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace extrudeModels
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -23,27 +23,31 @@ License
|
|||||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
Class
|
Class
|
||||||
Foam::linearRadialExtruder
|
Foam::extrudeModels::linearRadial
|
||||||
|
|
||||||
Description
|
Description
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#ifndef linearRadialExtruder_H
|
#ifndef linearRadial_H
|
||||||
#define linearRadialExtruder_H
|
#define linearRadial_H
|
||||||
|
|
||||||
#include "point.H"
|
#include "extrudeModel.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
{
|
{
|
||||||
|
namespace extrudeModels
|
||||||
|
{
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class linearRadialExtruder Declaration
|
Class linearRadial Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
class linearRadialExtruder
|
class linearRadial
|
||||||
|
:
|
||||||
|
public extrudeModel
|
||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
@ -52,13 +56,17 @@ class linearRadialExtruder
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
//- Runtime type information
|
||||||
|
TypeName("linearRadial");
|
||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
//- Construct from components
|
//- Construct from components
|
||||||
linearRadialExtruder(const scalar R)
|
linearRadial(const dictionary& dict);
|
||||||
:
|
|
||||||
R_(R)
|
|
||||||
{}
|
//- Destructor
|
||||||
|
~linearRadial();
|
||||||
|
|
||||||
|
|
||||||
// Member Operators
|
// Member Operators
|
||||||
@ -67,23 +75,14 @@ public:
|
|||||||
(
|
(
|
||||||
const point& surfacePoint,
|
const point& surfacePoint,
|
||||||
const vector& surfaceNormal,
|
const vector& surfaceNormal,
|
||||||
const label nLayers,
|
|
||||||
const label layer
|
const label layer
|
||||||
) const
|
) const;
|
||||||
{
|
|
||||||
// radius of the surface
|
|
||||||
scalar rs = mag(surfacePoint);
|
|
||||||
vector rsHat = surfacePoint/rs;
|
|
||||||
|
|
||||||
scalar delta = (R_ - rs)/nLayers;
|
|
||||||
scalar r = rs + layer*delta;
|
|
||||||
return r*rsHat;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace extrudeModels
|
||||||
} // End namespace Foam
|
} // End namespace Foam
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -91,3 +90,4 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -0,0 +1,87 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "sigmaRadial.H"
|
||||||
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
namespace extrudeModels
|
||||||
|
{
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
defineTypeNameAndDebug(sigmaRadial, 0);
|
||||||
|
|
||||||
|
addToRunTimeSelectionTable(extrudeModel, sigmaRadial, dictionary);
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
sigmaRadial::sigmaRadial(const dictionary& dict)
|
||||||
|
:
|
||||||
|
extrudeModel(typeName, dict),
|
||||||
|
RTbyg_(readScalar(coeffDict_.lookup("RTbyg"))),
|
||||||
|
pRef_(readScalar(coeffDict_.lookup("pRef"))),
|
||||||
|
pStrat_(readScalar(coeffDict_.lookup("pStrat")))
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
sigmaRadial::~sigmaRadial()
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Operators * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
point sigmaRadial::operator()
|
||||||
|
(
|
||||||
|
const point& surfacePoint,
|
||||||
|
const vector& surfaceNormal,
|
||||||
|
const label layer
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
// radius of the surface
|
||||||
|
scalar rs = mag(surfacePoint);
|
||||||
|
vector rsHat = surfacePoint/rs;
|
||||||
|
|
||||||
|
scalar p = pRef_ - layer*(pRef_ - pStrat_)/nLayers_;
|
||||||
|
scalar r = rs - RTbyg_*log(p/pRef_);
|
||||||
|
|
||||||
|
return r*rsHat;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace extrudeModels
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -23,27 +23,31 @@ License
|
|||||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
Class
|
Class
|
||||||
Foam::sigmaRadialExtruder
|
Foam::extrudeModels::sigmaRadial
|
||||||
|
|
||||||
Description
|
Description
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#ifndef sigmaRadialExtruder_H
|
#ifndef sigmaRadial_H
|
||||||
#define sigmaRadialExtruder_H
|
#define sigmaRadial_H
|
||||||
|
|
||||||
#include "point.H"
|
#include "extrudeModel.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
{
|
{
|
||||||
|
namespace extrudeModels
|
||||||
|
{
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class sigmaRadialExtruder Declaration
|
Class sigmaRadial Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
class sigmaRadialExtruder
|
class sigmaRadial
|
||||||
|
:
|
||||||
|
public extrudeModel
|
||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
@ -54,20 +58,17 @@ class sigmaRadialExtruder
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
//- Runtime type information
|
||||||
|
TypeName("sigmaRadial");
|
||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
//- Construct from components
|
//- Construct from components
|
||||||
sigmaRadialExtruder
|
sigmaRadial(const dictionary& dict);
|
||||||
(
|
|
||||||
const scalar RTbyg,
|
|
||||||
const scalar pRef,
|
//-Destructor
|
||||||
const scalar pStrat
|
~sigmaRadial();
|
||||||
)
|
|
||||||
:
|
|
||||||
RTbyg_(RTbyg),
|
|
||||||
pRef_(pRef),
|
|
||||||
pStrat_(pStrat)
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
// Member Operators
|
// Member Operators
|
||||||
@ -76,24 +77,14 @@ public:
|
|||||||
(
|
(
|
||||||
const point& surfacePoint,
|
const point& surfacePoint,
|
||||||
const vector& surfaceNormal,
|
const vector& surfaceNormal,
|
||||||
const label nLayers,
|
|
||||||
const label layer
|
const label layer
|
||||||
) const
|
) const;
|
||||||
{
|
|
||||||
// radius of the surface
|
|
||||||
scalar rs = mag(surfacePoint);
|
|
||||||
vector rsHat = surfacePoint/rs;
|
|
||||||
|
|
||||||
scalar p = pRef_ - layer*(pRef_ - pStrat_)/nLayers;
|
|
||||||
scalar r = rs - RTbyg_*Foam::log(p/pRef_);
|
|
||||||
|
|
||||||
return r*rsHat;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace extrudeModels
|
||||||
} // End namespace Foam
|
} // End namespace Foam
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -101,3 +92,4 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -0,0 +1,127 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "wedge.H"
|
||||||
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
#include "mathematicalConstants.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
namespace extrudeModels
|
||||||
|
{
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
defineTypeNameAndDebug(wedge, 0);
|
||||||
|
|
||||||
|
addToRunTimeSelectionTable(extrudeModel, wedge, dictionary);
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
wedge::wedge(const dictionary& dict)
|
||||||
|
:
|
||||||
|
extrudeModel(typeName, dict),
|
||||||
|
axisPt_(coeffDict_.lookup("axisPt")),
|
||||||
|
axisNormal_(coeffDict_.lookup("axisNormal")),
|
||||||
|
angle_
|
||||||
|
(
|
||||||
|
readScalar(coeffDict_.lookup("angle"))
|
||||||
|
*mathematicalConstant::pi/180.0
|
||||||
|
)
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
wedge::~wedge()
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Operators * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
point wedge::operator()
|
||||||
|
(
|
||||||
|
const point& surfacePoint,
|
||||||
|
const vector& surfaceNormal,
|
||||||
|
const label layer
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
scalar sliceAngle;
|
||||||
|
// For the case of a single layer extrusion assume a
|
||||||
|
// symmetric wedge about the reference plane is required
|
||||||
|
if (nLayers_ == 1)
|
||||||
|
{
|
||||||
|
if (layer == 0)
|
||||||
|
{
|
||||||
|
sliceAngle = -angle_/2.0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sliceAngle = angle_/2.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sliceAngle = angle_*(layer + 1)/nLayers_;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find projection onto axis (or rather decompose surfacePoint
|
||||||
|
// into vector along edge (proj), vector normal to edge in plane
|
||||||
|
// of surface point and surface normal.
|
||||||
|
point d = surfacePoint - axisPt_;
|
||||||
|
|
||||||
|
d -= (axisNormal_ & d)*axisNormal_;
|
||||||
|
|
||||||
|
scalar dMag = mag(d);
|
||||||
|
|
||||||
|
point edgePt = surfacePoint - d;
|
||||||
|
|
||||||
|
// Rotate point around sliceAngle.
|
||||||
|
point rotatedPoint = edgePt;
|
||||||
|
|
||||||
|
if (dMag > VSMALL)
|
||||||
|
{
|
||||||
|
vector n = (d/dMag) ^ axisNormal_;
|
||||||
|
|
||||||
|
rotatedPoint +=
|
||||||
|
+ cos(sliceAngle)*d
|
||||||
|
- sin(sliceAngle)*mag(d)*n; // Use either n or surfaceNormal
|
||||||
|
}
|
||||||
|
|
||||||
|
return rotatedPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace extrudeModels
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -23,29 +23,40 @@ License
|
|||||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
Class
|
Class
|
||||||
Foam::wedgeExtruder
|
Foam::extrudeModels::wedge
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Extrudes by rotating a surface around an axis
|
Extrudes by rotating a surface around an axis
|
||||||
|
- extrusion is opposite the surface/patch normal so inwards the source
|
||||||
|
mesh
|
||||||
|
- axis direction has to be consistent with this.
|
||||||
|
- use -mergeFaces option if doing full 360 and want to merge front and back
|
||||||
|
- note direction of axis. This should be consistent with rotating against
|
||||||
|
the patch normal direction. If you get it wrong you'll see all cells
|
||||||
|
with extreme aspect ratio and internal faces wrong way around in
|
||||||
|
checkMesh
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#ifndef wedgeExtruder_H
|
#ifndef wedge_H
|
||||||
#define wedgeExtruder_H
|
#define wedge_H
|
||||||
|
|
||||||
#include "point.H"
|
#include "extrudeModel.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
{
|
{
|
||||||
|
namespace extrudeModels
|
||||||
|
{
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class wedgeExtruder Declaration
|
Class wedge Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
class wedgeExtruder
|
class wedge
|
||||||
|
:
|
||||||
|
public extrudeModel
|
||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
@ -58,22 +69,19 @@ class wedgeExtruder
|
|||||||
//- overall angle (radians)
|
//- overall angle (radians)
|
||||||
const scalar angle_;
|
const scalar angle_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
//- Runtime type information
|
||||||
|
TypeName("wedge");
|
||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
//- Construct from components
|
//- Construct from components
|
||||||
wedgeExtruder
|
wedge(const dictionary& dict);
|
||||||
(
|
|
||||||
const point& axisPt,
|
//- Destrcuctor
|
||||||
const point& axisNormal,
|
~wedge();
|
||||||
const scalar angle
|
|
||||||
)
|
|
||||||
:
|
|
||||||
axisPt_(axisPt),
|
|
||||||
axisNormal_(axisNormal),
|
|
||||||
angle_(angle)
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
// Member Operators
|
// Member Operators
|
||||||
@ -82,60 +90,14 @@ public:
|
|||||||
(
|
(
|
||||||
const point& surfacePoint,
|
const point& surfacePoint,
|
||||||
const vector& surfaceNormal,
|
const vector& surfaceNormal,
|
||||||
const label nLayers,
|
|
||||||
const label layer
|
const label layer
|
||||||
) const
|
) const;
|
||||||
{
|
|
||||||
scalar sliceAngle;
|
|
||||||
|
|
||||||
// For the case of a single layer extrusion assume a
|
|
||||||
// symmetric wedge about the reference plane is required
|
|
||||||
if (nLayers == 1)
|
|
||||||
{
|
|
||||||
if (layer == 0)
|
|
||||||
{
|
|
||||||
sliceAngle = -angle_/2.0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sliceAngle = angle_/2.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sliceAngle = angle_ * (layer+1)/nLayers;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Find projection onto axis (or rather decompose surfacePoint
|
|
||||||
// into vector along edge (proj), vector normal to edge in plane
|
|
||||||
// of surface point and surface normal.
|
|
||||||
point d = surfacePoint - axisPt_;
|
|
||||||
|
|
||||||
d -= (axisNormal_&d)*axisNormal_;
|
|
||||||
|
|
||||||
scalar dMag = mag(d);
|
|
||||||
|
|
||||||
point edgePt = surfacePoint - d;
|
|
||||||
|
|
||||||
// Rotate point around sliceAngle.
|
|
||||||
point rotatedPoint = edgePt;
|
|
||||||
|
|
||||||
if (dMag > VSMALL)
|
|
||||||
{
|
|
||||||
vector n = (d/dMag) ^ axisNormal_;
|
|
||||||
|
|
||||||
rotatedPoint +=
|
|
||||||
+ cos(sliceAngle)*d
|
|
||||||
- sin(sliceAngle)*mag(d)*n; // Use either n or surfaceNormal
|
|
||||||
}
|
|
||||||
|
|
||||||
return rotatedPoint;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace extrudeModels
|
||||||
} // End namespace Foam
|
} // End namespace Foam
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5 |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object extrudeProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
extrudeModel wedge;
|
||||||
|
//extrudeModel linearNormal;
|
||||||
|
//extrudeModel linearRadial;
|
||||||
|
//extrudeModel sigmaRadial;
|
||||||
|
|
||||||
|
nLayers 1;
|
||||||
|
|
||||||
|
wedgeCoeffs
|
||||||
|
{
|
||||||
|
axisPt (0 0 0);
|
||||||
|
axisNormal (0 -1 0);
|
||||||
|
angle 2.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
linearNormalCoeffs
|
||||||
|
{
|
||||||
|
thickness 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
linearRadialCoeffs
|
||||||
|
{
|
||||||
|
R 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
sigmaRadialCoeffs
|
||||||
|
{
|
||||||
|
RTbyg 1;
|
||||||
|
pRef 1;
|
||||||
|
pStrat 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -46,19 +46,19 @@ template
|
|||||||
<
|
<
|
||||||
class Face,
|
class Face,
|
||||||
template<class> class FaceList,
|
template<class> class FaceList,
|
||||||
class PointField,
|
class PointField
|
||||||
class PointExtruder
|
|
||||||
>
|
>
|
||||||
Foam::pointField Foam::extrudedMesh::extrudedPoints
|
Foam::pointField Foam::extrudedMesh::extrudedPoints
|
||||||
(
|
(
|
||||||
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
||||||
const label nLayers,
|
const extrudeModel& model
|
||||||
const PointExtruder& extruder
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const pointField& surfacePoints = extrudePatch.localPoints();
|
const pointField& surfacePoints = extrudePatch.localPoints();
|
||||||
const vectorField& surfaceNormals = extrudePatch.pointNormals();
|
const vectorField& surfaceNormals = extrudePatch.pointNormals();
|
||||||
|
|
||||||
|
const label nLayers = model.nLayers();
|
||||||
|
|
||||||
pointField ePoints((nLayers + 1)*surfacePoints.size());
|
pointField ePoints((nLayers + 1)*surfacePoints.size());
|
||||||
|
|
||||||
for (label layer=0; layer<=nLayers; layer++)
|
for (label layer=0; layer<=nLayers; layer++)
|
||||||
@ -67,11 +67,10 @@ Foam::pointField Foam::extrudedMesh::extrudedPoints
|
|||||||
|
|
||||||
forAll(surfacePoints, i)
|
forAll(surfacePoints, i)
|
||||||
{
|
{
|
||||||
ePoints[offset + i] = extruder
|
ePoints[offset + i] = model
|
||||||
(
|
(
|
||||||
surfacePoints[i],
|
surfacePoints[i],
|
||||||
surfaceNormals[i],
|
surfaceNormals[i],
|
||||||
nLayers,
|
|
||||||
layer
|
layer
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -85,7 +84,7 @@ template<class Face, template<class> class FaceList, class PointField>
|
|||||||
Foam::faceList Foam::extrudedMesh::extrudedFaces
|
Foam::faceList Foam::extrudedMesh::extrudedFaces
|
||||||
(
|
(
|
||||||
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
||||||
const label nLayers
|
const extrudeModel& model
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const pointField& surfacePoints = extrudePatch.localPoints();
|
const pointField& surfacePoints = extrudePatch.localPoints();
|
||||||
@ -93,6 +92,8 @@ Foam::faceList Foam::extrudedMesh::extrudedFaces
|
|||||||
const edgeList& surfaceEdges = extrudePatch.edges();
|
const edgeList& surfaceEdges = extrudePatch.edges();
|
||||||
const label nInternalEdges = extrudePatch.nInternalEdges();
|
const label nInternalEdges = extrudePatch.nInternalEdges();
|
||||||
|
|
||||||
|
const label nLayers = model.nLayers();
|
||||||
|
|
||||||
label nFaces =
|
label nFaces =
|
||||||
(nLayers + 1)*surfaceFaces.size() + nLayers*surfaceEdges.size();
|
(nLayers + 1)*surfaceFaces.size() + nLayers*surfaceEdges.size();
|
||||||
|
|
||||||
@ -108,7 +109,7 @@ Foam::faceList Foam::extrudedMesh::extrudedFaces
|
|||||||
label nextLayerOffset = currentLayerOffset + surfacePoints.size();
|
label nextLayerOffset = currentLayerOffset + surfacePoints.size();
|
||||||
|
|
||||||
// Side faces from layer to layer+1
|
// Side faces from layer to layer+1
|
||||||
for (label i = 0; i < nInternalEdges; i++)
|
for (label i=0; i<nInternalEdges; i++)
|
||||||
{
|
{
|
||||||
quad[0] = surfaceEdges[i][1] + currentLayerOffset;
|
quad[0] = surfaceEdges[i][1] + currentLayerOffset;
|
||||||
quad[1] = surfaceEdges[i][0] + currentLayerOffset;
|
quad[1] = surfaceEdges[i][0] + currentLayerOffset;
|
||||||
@ -140,7 +141,7 @@ Foam::faceList Foam::extrudedMesh::extrudedFaces
|
|||||||
label nextLayerOffset = currentLayerOffset + surfacePoints.size();
|
label nextLayerOffset = currentLayerOffset + surfacePoints.size();
|
||||||
|
|
||||||
// Side faces across layer
|
// Side faces across layer
|
||||||
for (label i = nInternalEdges; i < surfaceEdges.size(); i++)
|
for (label i=nInternalEdges; i<surfaceEdges.size(); i++)
|
||||||
{
|
{
|
||||||
const edge& e = surfaceEdges[i];
|
const edge& e = surfaceEdges[i];
|
||||||
quad[0] = e[1] + currentLayerOffset;
|
quad[0] = e[1] + currentLayerOffset;
|
||||||
@ -184,13 +185,15 @@ template<class Face, template<class> class FaceList, class PointField>
|
|||||||
Foam::cellList Foam::extrudedMesh::extrudedCells
|
Foam::cellList Foam::extrudedMesh::extrudedCells
|
||||||
(
|
(
|
||||||
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
||||||
const label nLayers
|
const extrudeModel& model
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const List<face>& surfaceFaces = extrudePatch.localFaces();
|
const List<face>& surfaceFaces = extrudePatch.localFaces();
|
||||||
const edgeList& surfaceEdges = extrudePatch.edges();
|
const edgeList& surfaceEdges = extrudePatch.edges();
|
||||||
const label nInternalEdges = extrudePatch.nInternalEdges();
|
const label nInternalEdges = extrudePatch.nInternalEdges();
|
||||||
|
|
||||||
|
const label nLayers = model.nLayers();
|
||||||
|
|
||||||
cellList eCells(nLayers*surfaceFaces.size());
|
cellList eCells(nLayers*surfaceFaces.size());
|
||||||
|
|
||||||
// Size the cells
|
// Size the cells
|
||||||
@ -200,7 +203,7 @@ Foam::cellList Foam::extrudedMesh::extrudedCells
|
|||||||
|
|
||||||
for (label layer=0; layer<nLayers; layer++)
|
for (label layer=0; layer<nLayers; layer++)
|
||||||
{
|
{
|
||||||
eCells[i+layer*surfaceFaces.size()].setSize(f.size() + 2);
|
eCells[i + layer*surfaceFaces.size()].setSize(f.size() + 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,7 +216,7 @@ Foam::cellList Foam::extrudedMesh::extrudedCells
|
|||||||
for (label layer=0; layer<nLayers; layer++)
|
for (label layer=0; layer<nLayers; layer++)
|
||||||
{
|
{
|
||||||
// Side faces from layer to layer+1
|
// Side faces from layer to layer+1
|
||||||
for (label i = 0; i < nInternalEdges; i++)
|
for (label i=0; i<nInternalEdges; i++)
|
||||||
{
|
{
|
||||||
// Get patch faces using edge
|
// Get patch faces using edge
|
||||||
const labelList& edgeFaces = extrudePatch.edgeFaces()[i];
|
const labelList& edgeFaces = extrudePatch.edgeFaces()[i];
|
||||||
@ -248,7 +251,7 @@ Foam::cellList Foam::extrudedMesh::extrudedCells
|
|||||||
for (label layer=0; layer<nLayers; layer++)
|
for (label layer=0; layer<nLayers; layer++)
|
||||||
{
|
{
|
||||||
// Side faces across layer
|
// Side faces across layer
|
||||||
for (label i = nInternalEdges; i < surfaceEdges.size(); i++)
|
for (label i=nInternalEdges; i<surfaceEdges.size(); i++)
|
||||||
{
|
{
|
||||||
// Get patch faces using edge
|
// Get patch faces using edge
|
||||||
const labelList& edgeFaces = extrudePatch.edgeFaces()[i];
|
const labelList& edgeFaces = extrudePatch.edgeFaces()[i];
|
||||||
@ -290,30 +293,31 @@ template
|
|||||||
<
|
<
|
||||||
class Face,
|
class Face,
|
||||||
template<class> class FaceList,
|
template<class> class FaceList,
|
||||||
class PointField,
|
class PointField
|
||||||
class PointExtruder
|
|
||||||
>
|
>
|
||||||
Foam::extrudedMesh::extrudedMesh
|
Foam::extrudedMesh::extrudedMesh
|
||||||
(
|
(
|
||||||
const IOobject& io,
|
const IOobject& io,
|
||||||
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
||||||
const label nLayers,
|
const extrudeModel& model
|
||||||
const PointExtruder& extruder
|
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
polyMesh
|
polyMesh
|
||||||
(
|
(
|
||||||
io,
|
io,
|
||||||
extrudedPoints(extrudePatch, nLayers, extruder),
|
extrudedPoints(extrudePatch, model),
|
||||||
extrudedFaces(extrudePatch, nLayers),
|
extrudedFaces(extrudePatch, model),
|
||||||
extrudedCells(extrudePatch, nLayers)
|
extrudedCells(extrudePatch, model)
|
||||||
)
|
),
|
||||||
|
model_(model)
|
||||||
{
|
{
|
||||||
List<polyPatch*> patches(3);
|
List<polyPatch*> patches(3);
|
||||||
|
|
||||||
label facei = nInternalFaces();
|
label facei = nInternalFaces();
|
||||||
|
|
||||||
label sz = nLayers*(extrudePatch.nEdges() - extrudePatch.nInternalEdges());
|
label sz =
|
||||||
|
model_.nLayers()
|
||||||
|
*(extrudePatch.nEdges() - extrudePatch.nInternalEdges());
|
||||||
|
|
||||||
patches[0] = new wallPolyPatch
|
patches[0] = new wallPolyPatch
|
||||||
(
|
(
|
||||||
@ -351,3 +355,4 @@ Foam::extrudedMesh::extrudedMesh
|
|||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
||||||
|
|||||||
@ -36,6 +36,7 @@ SourceFiles
|
|||||||
#define extrudedMesh_H
|
#define extrudedMesh_H
|
||||||
|
|
||||||
#include "polyMesh.H"
|
#include "polyMesh.H"
|
||||||
|
#include "extrudeModel.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -50,24 +51,22 @@ class extrudedMesh
|
|||||||
:
|
:
|
||||||
public polyMesh
|
public polyMesh
|
||||||
{
|
{
|
||||||
|
// Private data
|
||||||
|
|
||||||
|
const extrudeModel& model_;
|
||||||
|
|
||||||
|
|
||||||
// Private Member Functions
|
// Private Member Functions
|
||||||
|
|
||||||
//- Do edge and face use points in same order?
|
//- Do edge and face use points in same order?
|
||||||
static bool sameOrder(const face&, const edge&);
|
static bool sameOrder(const face&, const edge&);
|
||||||
|
|
||||||
//- Construct and return the extruded mesh points
|
//- Construct and return the extruded mesh points
|
||||||
template
|
template<class Face, template<class> class FaceList, class PointField>
|
||||||
<
|
|
||||||
class Face,
|
|
||||||
template<class> class FaceList,
|
|
||||||
class PointField,
|
|
||||||
class PointExtruder
|
|
||||||
>
|
|
||||||
pointField extrudedPoints
|
pointField extrudedPoints
|
||||||
(
|
(
|
||||||
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
||||||
const label nLayers,
|
const extrudeModel& model
|
||||||
const PointExtruder& extruder
|
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return the extruded mesh faces
|
//- Construct and return the extruded mesh faces
|
||||||
@ -75,7 +74,7 @@ class extrudedMesh
|
|||||||
faceList extrudedFaces
|
faceList extrudedFaces
|
||||||
(
|
(
|
||||||
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
||||||
const label nLayers
|
const extrudeModel& model
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return the extruded mesh cells
|
//- Construct and return the extruded mesh cells
|
||||||
@ -83,7 +82,7 @@ class extrudedMesh
|
|||||||
cellList extrudedCells
|
cellList extrudedCells
|
||||||
(
|
(
|
||||||
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
||||||
const label nLayers
|
const extrudeModel& model
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -99,19 +98,12 @@ public:
|
|||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
//- Construct from the primitivePatch to extrude
|
//- Construct from the primitivePatch to extrude
|
||||||
template
|
template<class Face, template<class> class FaceList, class PointField>
|
||||||
<
|
|
||||||
class Face,
|
|
||||||
template<class> class FaceList,
|
|
||||||
class PointField,
|
|
||||||
class PointExtruder
|
|
||||||
>
|
|
||||||
extrudedMesh
|
extrudedMesh
|
||||||
(
|
(
|
||||||
const IOobject& io,
|
const IOobject& io,
|
||||||
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
const PrimitivePatch<Face, FaceList, PointField>& extrudePatch,
|
||||||
const label nLayers,
|
const extrudeModel& model
|
||||||
const PointExtruder& extruder
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -133,3 +125,4 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
||||||
|
|||||||
@ -51,6 +51,8 @@ class faceMesh
|
|||||||
:
|
:
|
||||||
public PrimitivePatch<face, List, pointField>
|
public PrimitivePatch<face, List, pointField>
|
||||||
{
|
{
|
||||||
|
// Private member functions
|
||||||
|
|
||||||
PrimitivePatch<face, List, pointField> read(Istream& is)
|
PrimitivePatch<face, List, pointField> read(Istream& is)
|
||||||
{
|
{
|
||||||
pointField points(is);
|
pointField points(is);
|
||||||
|
|||||||
@ -1,13 +1,6 @@
|
|||||||
argList::validArgs.clear();
|
argList::validArgs.clear();
|
||||||
argList::noParallel();
|
argList::noParallel();
|
||||||
|
|
||||||
argList::validArgs.append("target root");
|
|
||||||
argList::validArgs.append("target case");
|
|
||||||
|
|
||||||
argList::validArgs.append("nLayers");
|
|
||||||
argList::validArgs.append("overal thickness");
|
|
||||||
|
|
||||||
|
|
||||||
argList::validOptions.insert("sourceRoot", "source root");
|
argList::validOptions.insert("sourceRoot", "source root");
|
||||||
argList::validOptions.insert("sourceCase", "source case");
|
argList::validOptions.insert("sourceCase", "source case");
|
||||||
argList::validOptions.insert("sourcePatch", "source patch");
|
argList::validOptions.insert("sourcePatch", "source patch");
|
||||||
@ -23,16 +16,3 @@
|
|||||||
FatalError.exit();
|
FatalError.exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fileName rootDirTarget(args.additionalArgs()[0]);
|
|
||||||
fileName caseDirTarget(args.additionalArgs()[1]);
|
|
||||||
|
|
||||||
label nLayers(readLabel(IStringStream(args.additionalArgs()[2])()));
|
|
||||||
scalar thickness(readScalar(IStringStream(args.additionalArgs()[3])()));
|
|
||||||
|
|
||||||
Info<< "Target: " << rootDirTarget << " " << caseDirTarget << endl;
|
|
||||||
|
|
||||||
Info<< "Extruding layers:" << nl
|
|
||||||
<< " number of layers " << nLayers << nl
|
|
||||||
<< " overall thickness " << thickness << nl
|
|
||||||
<< endl;
|
|
||||||
|
|||||||
@ -140,6 +140,7 @@ buildParaView ()
|
|||||||
{
|
{
|
||||||
# set general options
|
# set general options
|
||||||
addCMakeVariable "BUILD_SHARED_LIBS:BOOL=ON"
|
addCMakeVariable "BUILD_SHARED_LIBS:BOOL=ON"
|
||||||
|
addCMakeVariable "CMAKE_BUILD_TYPE:STRING=Release"
|
||||||
|
|
||||||
# set paraview environment
|
# set paraview environment
|
||||||
unset PARAVIEW_SRC_DIR
|
unset PARAVIEW_SRC_DIR
|
||||||
|
|||||||
@ -239,6 +239,7 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const
|
|||||||
|
|
||||||
// For 3D meshes check the determinant of the dd tensor and switch to
|
// For 3D meshes check the determinant of the dd tensor and switch to
|
||||||
// Gauss if it is less than 3
|
// Gauss if it is less than 3
|
||||||
|
/* Currently the det(dd[celli]) criterion is incorrect: dd is weighted by Sf
|
||||||
if (mesh.nGeometricD() == 3)
|
if (mesh.nGeometricD() == 3)
|
||||||
{
|
{
|
||||||
label nBadCells = 0;
|
label nBadCells = 0;
|
||||||
@ -318,7 +319,7 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const
|
|||||||
<< endl;
|
<< endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -57,7 +57,6 @@ class shifted
|
|||||||
|
|
||||||
scalar e_at_rCut_;
|
scalar e_at_rCut_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
|
|||||||
@ -27,8 +27,6 @@ License
|
|||||||
#include "treeBoundBox.H"
|
#include "treeBoundBox.H"
|
||||||
#include "ListOps.H"
|
#include "ListOps.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
const Foam::treeBoundBox Foam::treeBoundBox::greatBox
|
const Foam::treeBoundBox Foam::treeBoundBox::greatBox
|
||||||
@ -50,6 +48,7 @@ const Foam::label facesArray[6][4] =
|
|||||||
};
|
};
|
||||||
//! @endcond
|
//! @endcond
|
||||||
|
|
||||||
|
|
||||||
const Foam::faceList Foam::treeBoundBox::faces
|
const Foam::faceList Foam::treeBoundBox::faces
|
||||||
(
|
(
|
||||||
initListList<face, label, 6, 4>(facesArray)
|
initListList<face, label, 6, 4>(facesArray)
|
||||||
@ -74,12 +73,34 @@ const Foam::label edgesArray[12][2] =
|
|||||||
};
|
};
|
||||||
//! @endcond
|
//! @endcond
|
||||||
|
|
||||||
|
|
||||||
const Foam::edgeList Foam::treeBoundBox::edges
|
const Foam::edgeList Foam::treeBoundBox::edges
|
||||||
(
|
(
|
||||||
initListList<edge, label, 12, 2>(edgesArray)
|
initListList<edge, label, 12, 2>(edgesArray)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
const Foam::FixedList<Foam::vector, 6> Foam::treeBoundBox::faceNormals
|
||||||
|
(
|
||||||
|
calcFaceNormals()
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::FixedList<Foam::vector, 6> Foam::treeBoundBox::calcFaceNormals()
|
||||||
|
{
|
||||||
|
FixedList<vector, 6> normals;
|
||||||
|
normals[LEFT] = vector(-1, 0, 0);
|
||||||
|
normals[RIGHT] = vector( 1, 0, 0);
|
||||||
|
normals[BOTTOM] = vector( 0, -1, 0);
|
||||||
|
normals[TOP] = vector( 0, 1, 0);
|
||||||
|
normals[BACK] = vector( 0, 0, -1);
|
||||||
|
normals[FRONT] = vector( 0, 0, 1);
|
||||||
|
return normals;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
// Construct as the bounding box of the given pointField
|
// Construct as the bounding box of the given pointField
|
||||||
|
|||||||
@ -78,6 +78,11 @@ class treeBoundBox
|
|||||||
public boundBox
|
public boundBox
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
//- To initialise faceNormals.
|
||||||
|
static FixedList<vector, 6> calcFaceNormals();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// Static data members
|
// Static data members
|
||||||
@ -142,6 +147,9 @@ public:
|
|||||||
//- Edge to point addressing
|
//- Edge to point addressing
|
||||||
static const edgeList edges;
|
static const edgeList edges;
|
||||||
|
|
||||||
|
//- Per face the unit normal
|
||||||
|
static const FixedList<vector, 6> faceNormals;
|
||||||
|
|
||||||
|
|
||||||
//- Face on which neighbour is
|
//- Face on which neighbour is
|
||||||
static direction neighbourFaceBits(const label&);
|
static direction neighbourFaceBits(const label&);
|
||||||
|
|||||||
@ -85,23 +85,23 @@ void Foam::fieldAverage::initialise()
|
|||||||
const word fieldName = faItems_[i].fieldName();
|
const word fieldName = faItems_[i].fieldName();
|
||||||
if (obr_.foundObject<volScalarField>(fieldName))
|
if (obr_.foundObject<volScalarField>(fieldName))
|
||||||
{
|
{
|
||||||
addMeanFields<scalar>(i, meanScalarFields_);
|
addMeanField<scalar>(i, meanScalarFields_);
|
||||||
}
|
}
|
||||||
else if (obr_.foundObject<volVectorField>(fieldName))
|
else if (obr_.foundObject<volVectorField>(fieldName))
|
||||||
{
|
{
|
||||||
addMeanFields<vector>(i, meanVectorFields_);
|
addMeanField<vector>(i, meanVectorFields_);
|
||||||
}
|
}
|
||||||
else if (obr_.foundObject<volSphericalTensorField>(fieldName))
|
else if (obr_.foundObject<volSphericalTensorField>(fieldName))
|
||||||
{
|
{
|
||||||
addMeanFields<sphericalTensor>(i, meanSphericalTensorFields_);
|
addMeanField<sphericalTensor>(i, meanSphericalTensorFields_);
|
||||||
}
|
}
|
||||||
else if (obr_.foundObject<volSymmTensorField>(fieldName))
|
else if (obr_.foundObject<volSymmTensorField>(fieldName))
|
||||||
{
|
{
|
||||||
addMeanFields<symmTensor>(i, meanSymmTensorFields_);
|
addMeanField<symmTensor>(i, meanSymmTensorFields_);
|
||||||
}
|
}
|
||||||
else if (obr_.foundObject<volTensorField>(fieldName))
|
else if (obr_.foundObject<volTensorField>(fieldName))
|
||||||
{
|
{
|
||||||
addMeanFields<tensor>(i, meanTensorFields_);
|
addMeanField<tensor>(i, meanTensorFields_);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -118,8 +118,6 @@ void Foam::fieldAverage::initialise()
|
|||||||
if (faItems_[i].prime2Mean())
|
if (faItems_[i].prime2Mean())
|
||||||
{
|
{
|
||||||
const word fieldName = faItems_[i].fieldName();
|
const word fieldName = faItems_[i].fieldName();
|
||||||
if (obr_.foundObject<volScalarField>(fieldName))
|
|
||||||
{
|
|
||||||
if (!faItems_[i].mean())
|
if (!faItems_[i].mean())
|
||||||
{
|
{
|
||||||
FatalErrorIn("Foam::fieldAverage::initialise()")
|
FatalErrorIn("Foam::fieldAverage::initialise()")
|
||||||
@ -127,20 +125,22 @@ void Foam::fieldAverage::initialise()
|
|||||||
<< "mean average must also be selected for field "
|
<< "mean average must also be selected for field "
|
||||||
<< fieldName << nl << exit(FatalError);
|
<< fieldName << nl << exit(FatalError);
|
||||||
}
|
}
|
||||||
addPrime2MeanFields<scalar>(i, prime2MeanScalarFields_);
|
|
||||||
|
if (obr_.foundObject<volScalarField>(fieldName))
|
||||||
|
{
|
||||||
|
addPrime2MeanField<scalar>
|
||||||
|
(
|
||||||
|
i,
|
||||||
|
meanScalarFields_,
|
||||||
|
prime2MeanScalarFields_
|
||||||
|
);
|
||||||
}
|
}
|
||||||
else if (obr_.foundObject<volVectorField>(fieldName))
|
else if (obr_.foundObject<volVectorField>(fieldName))
|
||||||
{
|
{
|
||||||
if (!faItems_[i].mean())
|
addPrime2MeanField<vector>
|
||||||
{
|
|
||||||
FatalErrorIn("Foam::fieldAverage::initialise()")
|
|
||||||
<< "To calculate the prime-squared average, the "
|
|
||||||
<< "mean average must also be selected for field "
|
|
||||||
<< fieldName << nl << exit(FatalError);
|
|
||||||
}
|
|
||||||
addPrime2MeanFields<vector>
|
|
||||||
(
|
(
|
||||||
i,
|
i,
|
||||||
|
meanVectorFields_,
|
||||||
prime2MeanSymmTensorFields_
|
prime2MeanSymmTensorFields_
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -251,8 +251,16 @@ void Foam::fieldAverage::calcAverages()
|
|||||||
totalTime_[i] += obr_.time().deltaT().value();
|
totalTime_[i] += obr_.time().deltaT().value();
|
||||||
}
|
}
|
||||||
|
|
||||||
addMeanSqrToPrime2Mean<scalar>(prime2MeanScalarFields_);
|
addMeanSqrToPrime2Mean<scalar>
|
||||||
addMeanSqrToPrime2Mean<vector>(prime2MeanSymmTensorFields_);
|
(
|
||||||
|
meanScalarFields_,
|
||||||
|
prime2MeanScalarFields_
|
||||||
|
);
|
||||||
|
addMeanSqrToPrime2Mean<vector>
|
||||||
|
(
|
||||||
|
meanVectorFields_,
|
||||||
|
prime2MeanSymmTensorFields_
|
||||||
|
);
|
||||||
|
|
||||||
calculateMeanFields<scalar>(meanScalarFields_);
|
calculateMeanFields<scalar>(meanScalarFields_);
|
||||||
calculateMeanFields<vector>(meanVectorFields_);
|
calculateMeanFields<vector>(meanVectorFields_);
|
||||||
@ -260,8 +268,16 @@ void Foam::fieldAverage::calcAverages()
|
|||||||
calculateMeanFields<symmTensor>(meanSymmTensorFields_);
|
calculateMeanFields<symmTensor>(meanSymmTensorFields_);
|
||||||
calculateMeanFields<tensor>(meanTensorFields_);
|
calculateMeanFields<tensor>(meanTensorFields_);
|
||||||
|
|
||||||
calculatePrime2MeanFields<scalar>(prime2MeanScalarFields_);
|
calculatePrime2MeanFields<scalar>
|
||||||
calculatePrime2MeanFields<vector>(prime2MeanSymmTensorFields_);
|
(
|
||||||
|
meanScalarFields_,
|
||||||
|
prime2MeanScalarFields_
|
||||||
|
);
|
||||||
|
calculatePrime2MeanFields<vector>
|
||||||
|
(
|
||||||
|
meanVectorFields_,
|
||||||
|
prime2MeanSymmTensorFields_
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -161,22 +161,21 @@ protected:
|
|||||||
// valid, and populate field lists
|
// valid, and populate field lists
|
||||||
void initialise();
|
void initialise();
|
||||||
|
|
||||||
//- Add mean average fields to PtrLists
|
//- Add mean average field to PtrList
|
||||||
template<class Type>
|
template<class Type>
|
||||||
void addMeanFields
|
void addMeanField
|
||||||
(
|
(
|
||||||
const label fieldi,
|
const label,
|
||||||
PtrList<GeometricField<Type, fvPatchField, volMesh> >&
|
PtrList<GeometricField<Type, fvPatchField, volMesh> >&
|
||||||
fieldList
|
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Add prime-squared average fields to PtrLists
|
//- Add prime-squared average field to PtrList
|
||||||
template<class Type1, class Type2>
|
template<class Type1, class Type2>
|
||||||
void addPrime2MeanFields
|
void addPrime2MeanField
|
||||||
(
|
(
|
||||||
const label fieldi,
|
const label,
|
||||||
|
PtrList<GeometricField<Type1, fvPatchField, volMesh> >&,
|
||||||
PtrList<GeometricField<Type2, fvPatchField, volMesh> >&
|
PtrList<GeometricField<Type2, fvPatchField, volMesh> >&
|
||||||
fieldList
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -190,23 +189,22 @@ protected:
|
|||||||
void calculateMeanFields
|
void calculateMeanFields
|
||||||
(
|
(
|
||||||
PtrList<GeometricField<Type, fvPatchField, volMesh> >&
|
PtrList<GeometricField<Type, fvPatchField, volMesh> >&
|
||||||
fieldList
|
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Add mean-squared field value to prime-squared mean field
|
//- Add mean-squared field value to prime-squared mean field
|
||||||
template<class Type1, class Type2>
|
template<class Type1, class Type2>
|
||||||
void addMeanSqrToPrime2Mean
|
void addMeanSqrToPrime2Mean
|
||||||
(
|
(
|
||||||
|
PtrList<GeometricField<Type1, fvPatchField, volMesh> >&,
|
||||||
PtrList<GeometricField<Type2, fvPatchField, volMesh> >&
|
PtrList<GeometricField<Type2, fvPatchField, volMesh> >&
|
||||||
fieldList
|
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Calculate prime-squared average fields
|
//- Calculate prime-squared average fields
|
||||||
template<class Type1, class Type2>
|
template<class Type1, class Type2>
|
||||||
void calculatePrime2MeanFields
|
void calculatePrime2MeanFields
|
||||||
(
|
(
|
||||||
|
PtrList<GeometricField<Type1, fvPatchField, volMesh> >&,
|
||||||
PtrList<GeometricField<Type2, fvPatchField, volMesh> >&
|
PtrList<GeometricField<Type2, fvPatchField, volMesh> >&
|
||||||
fieldList
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -31,23 +31,22 @@ License
|
|||||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
void Foam::fieldAverage::addMeanFields
|
void Foam::fieldAverage::addMeanField
|
||||||
(
|
(
|
||||||
const label fieldi,
|
const label fieldi,
|
||||||
PtrList<GeometricField<Type, fvPatchField, volMesh> >& fieldList
|
PtrList<GeometricField<Type, fvPatchField, volMesh> >& meanFieldList
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (faItems_[fieldi].mean())
|
if (faItems_[fieldi].mean())
|
||||||
{
|
{
|
||||||
typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
|
typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
|
||||||
|
|
||||||
const fvMesh& mesh = refCast<const fvMesh>(obr_);
|
|
||||||
const word& fieldName = faItems_[fieldi].fieldName();
|
const word& fieldName = faItems_[fieldi].fieldName();
|
||||||
const fieldType& baseField = mesh.lookupObject<fieldType>(fieldName);
|
const fieldType& baseField = obr_.lookupObject<fieldType>(fieldName);
|
||||||
const word meanFieldName = fieldName + EXT_MEAN;
|
|
||||||
|
|
||||||
|
const word meanFieldName = fieldName + EXT_MEAN;
|
||||||
Info<< "Reading/calculating field " << meanFieldName << nl << endl;
|
Info<< "Reading/calculating field " << meanFieldName << nl << endl;
|
||||||
fieldList.set
|
meanFieldList.set
|
||||||
(
|
(
|
||||||
fieldi,
|
fieldi,
|
||||||
new fieldType
|
new fieldType
|
||||||
@ -55,8 +54,8 @@ void Foam::fieldAverage::addMeanFields
|
|||||||
IOobject
|
IOobject
|
||||||
(
|
(
|
||||||
meanFieldName,
|
meanFieldName,
|
||||||
mesh.time().timeName(),
|
obr_.time().timeName(),
|
||||||
mesh,
|
obr_,
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
@ -68,26 +67,25 @@ void Foam::fieldAverage::addMeanFields
|
|||||||
|
|
||||||
|
|
||||||
template<class Type1, class Type2>
|
template<class Type1, class Type2>
|
||||||
void Foam::fieldAverage::addPrime2MeanFields
|
void Foam::fieldAverage::addPrime2MeanField
|
||||||
(
|
(
|
||||||
const label fieldi,
|
const label fieldi,
|
||||||
PtrList<GeometricField<Type2, fvPatchField, volMesh> >& fieldList
|
PtrList<GeometricField<Type1, fvPatchField, volMesh> >& meanFieldList,
|
||||||
|
PtrList<GeometricField<Type2, fvPatchField, volMesh> >& prime2MeanFieldList
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (faItems_[fieldi].mean())
|
if (faItems_[fieldi].mean() && meanFieldList.set(fieldi))
|
||||||
{
|
{
|
||||||
typedef GeometricField<Type1, fvPatchField, volMesh> fieldType1;
|
typedef GeometricField<Type1, fvPatchField, volMesh> fieldType1;
|
||||||
typedef GeometricField<Type2, fvPatchField, volMesh> fieldType2;
|
typedef GeometricField<Type2, fvPatchField, volMesh> fieldType2;
|
||||||
|
|
||||||
const fvMesh& mesh = refCast<const fvMesh>(obr_);
|
|
||||||
const word& fieldName = faItems_[fieldi].fieldName();
|
const word& fieldName = faItems_[fieldi].fieldName();
|
||||||
const fieldType1& baseField = mesh.lookupObject<fieldType1>(fieldName);
|
const fieldType1& baseField = obr_.lookupObject<fieldType1>(fieldName);
|
||||||
const fieldType1& meanField =
|
const fieldType1& meanField = meanFieldList[fieldi];
|
||||||
mesh.lookupObject<fieldType1>(fieldName + EXT_MEAN);
|
|
||||||
const word meanFieldName = fieldName + EXT_PRIME2MEAN;
|
|
||||||
|
|
||||||
|
const word meanFieldName = fieldName + EXT_PRIME2MEAN;
|
||||||
Info<< "Reading/calculating field " << meanFieldName << nl << endl;
|
Info<< "Reading/calculating field " << meanFieldName << nl << endl;
|
||||||
fieldList.set
|
prime2MeanFieldList.set
|
||||||
(
|
(
|
||||||
fieldi,
|
fieldi,
|
||||||
new fieldType2
|
new fieldType2
|
||||||
@ -95,8 +93,8 @@ void Foam::fieldAverage::addPrime2MeanFields
|
|||||||
IOobject
|
IOobject
|
||||||
(
|
(
|
||||||
meanFieldName,
|
meanFieldName,
|
||||||
mesh.time().timeName(),
|
obr_.time().timeName(),
|
||||||
mesh,
|
obr_,
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
@ -110,7 +108,7 @@ void Foam::fieldAverage::addPrime2MeanFields
|
|||||||
template<class Type>
|
template<class Type>
|
||||||
void Foam::fieldAverage::calculateMeanFields
|
void Foam::fieldAverage::calculateMeanFields
|
||||||
(
|
(
|
||||||
PtrList<GeometricField<Type, fvPatchField, volMesh> >& fieldList
|
PtrList<GeometricField<Type, fvPatchField, volMesh> >& meanFieldList
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
|
typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
|
||||||
@ -119,15 +117,12 @@ void Foam::fieldAverage::calculateMeanFields
|
|||||||
|
|
||||||
forAll(faItems_, i)
|
forAll(faItems_, i)
|
||||||
{
|
{
|
||||||
if (fieldList.set(i))
|
if (faItems_[i].mean() && meanFieldList.set(i))
|
||||||
{
|
{
|
||||||
if (faItems_[i].mean())
|
|
||||||
{
|
|
||||||
const fvMesh& mesh = refCast<const fvMesh>(obr_);
|
|
||||||
const word& fieldName = faItems_[i].fieldName();
|
const word& fieldName = faItems_[i].fieldName();
|
||||||
const fieldType& baseField =
|
const fieldType& baseField =
|
||||||
mesh.lookupObject<fieldType>(fieldName);
|
obr_.lookupObject<fieldType>(fieldName);
|
||||||
fieldType& meanField = fieldList[i];
|
fieldType& meanField = meanFieldList[i];
|
||||||
|
|
||||||
scalar alpha = 0.0;
|
scalar alpha = 0.0;
|
||||||
scalar beta = 0.0;
|
scalar beta = 0.0;
|
||||||
@ -145,14 +140,14 @@ void Foam::fieldAverage::calculateMeanFields
|
|||||||
meanField = alpha*meanField + beta*baseField;
|
meanField = alpha*meanField + beta*baseField;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Type1, class Type2>
|
template<class Type1, class Type2>
|
||||||
void Foam::fieldAverage::calculatePrime2MeanFields
|
void Foam::fieldAverage::calculatePrime2MeanFields
|
||||||
(
|
(
|
||||||
PtrList<GeometricField<Type2, fvPatchField, volMesh> >& fieldList
|
PtrList<GeometricField<Type1, fvPatchField, volMesh> >& meanFieldList,
|
||||||
|
PtrList<GeometricField<Type2, fvPatchField, volMesh> >& prime2MeanFieldList
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
typedef GeometricField<Type1, fvPatchField, volMesh> fieldType1;
|
typedef GeometricField<Type1, fvPatchField, volMesh> fieldType1;
|
||||||
@ -162,17 +157,18 @@ void Foam::fieldAverage::calculatePrime2MeanFields
|
|||||||
|
|
||||||
forAll(faItems_, i)
|
forAll(faItems_, i)
|
||||||
{
|
{
|
||||||
if (fieldList.set(i))
|
if
|
||||||
|
(
|
||||||
|
faItems_[i].prime2Mean()
|
||||||
|
&& meanFieldList.set(i)
|
||||||
|
&& prime2MeanFieldList.set(i)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
if (faItems_[i].prime2Mean())
|
|
||||||
{
|
|
||||||
const fvMesh& mesh = refCast<const fvMesh>(obr_);
|
|
||||||
const word& fieldName = faItems_[i].fieldName();
|
const word& fieldName = faItems_[i].fieldName();
|
||||||
const fieldType1& baseField =
|
const fieldType1& baseField =
|
||||||
mesh.lookupObject<fieldType1>(fieldName);
|
obr_.lookupObject<fieldType1>(fieldName);
|
||||||
const fieldType1& meanField =
|
const fieldType1& meanField = meanFieldList[i];
|
||||||
mesh.lookupObject<fieldType1>(fieldName + EXT_MEAN);
|
fieldType2& prime2MeanField = prime2MeanFieldList[i];
|
||||||
fieldType2& prime2MeanField = fieldList[i];
|
|
||||||
|
|
||||||
scalar alpha = 0.0;
|
scalar alpha = 0.0;
|
||||||
scalar beta = 0.0;
|
scalar beta = 0.0;
|
||||||
@ -193,14 +189,14 @@ void Foam::fieldAverage::calculatePrime2MeanFields
|
|||||||
- sqr(meanField);
|
- sqr(meanField);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Type1, class Type2>
|
template<class Type1, class Type2>
|
||||||
void Foam::fieldAverage::addMeanSqrToPrime2Mean
|
void Foam::fieldAverage::addMeanSqrToPrime2Mean
|
||||||
(
|
(
|
||||||
PtrList<GeometricField<Type2, fvPatchField, volMesh> >& fieldList
|
PtrList<GeometricField<Type1, fvPatchField, volMesh> >& meanFieldList,
|
||||||
|
PtrList<GeometricField<Type2, fvPatchField, volMesh> >& prime2MeanFieldList
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
typedef GeometricField<Type1, fvPatchField, volMesh> fieldType1;
|
typedef GeometricField<Type1, fvPatchField, volMesh> fieldType1;
|
||||||
@ -208,20 +204,19 @@ void Foam::fieldAverage::addMeanSqrToPrime2Mean
|
|||||||
|
|
||||||
forAll(faItems_, i)
|
forAll(faItems_, i)
|
||||||
{
|
{
|
||||||
if (fieldList.set(i))
|
if
|
||||||
|
(
|
||||||
|
faItems_[i].prime2Mean()
|
||||||
|
&& meanFieldList.set(i)
|
||||||
|
&& prime2MeanFieldList.set(i)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
if (faItems_[i].prime2Mean())
|
const fieldType1& meanField = meanFieldList[i];
|
||||||
{
|
fieldType2& prime2MeanField = prime2MeanFieldList[i];
|
||||||
const fvMesh& mesh = refCast<const fvMesh>(obr_);
|
|
||||||
const word& fieldName = faItems_[i].fieldName();
|
|
||||||
const fieldType1& meanField =
|
|
||||||
mesh.lookupObject<fieldType1>(fieldName + EXT_MEAN);
|
|
||||||
fieldType2& prime2MeanField = fieldList[i];
|
|
||||||
|
|
||||||
prime2MeanField += sqr(meanField);
|
prime2MeanField += sqr(meanField);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -22,19 +22,19 @@ boundaryField
|
|||||||
{
|
{
|
||||||
floor
|
floor
|
||||||
{
|
{
|
||||||
type fixedFluxBuoyantPressure;
|
type calculated;
|
||||||
value uniform 100000;
|
value uniform 100000;
|
||||||
}
|
}
|
||||||
|
|
||||||
ceiling
|
ceiling
|
||||||
{
|
{
|
||||||
type fixedFluxBuoyantPressure;
|
type calculated;
|
||||||
value uniform 100000;
|
value uniform 100000;
|
||||||
}
|
}
|
||||||
|
|
||||||
fixedWalls
|
fixedWalls
|
||||||
{
|
{
|
||||||
type fixedFluxBuoyantPressure;
|
type calculated;
|
||||||
value uniform 100000;
|
value uniform 100000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
42
tutorials/buoyantFoam/hotRoom/0/pd
Normal file
42
tutorials/buoyantFoam/hotRoom/0/pd
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5 |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
object pd;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
floor
|
||||||
|
{
|
||||||
|
type fixedFluxBuoyantPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ceiling
|
||||||
|
{
|
||||||
|
type fixedFluxBuoyantPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
fixedWalls
|
||||||
|
{
|
||||||
|
type fixedFluxBuoyantPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -18,4 +18,6 @@ thermoType hThermo<pureMixture<constTransport<specieThermo<hConstThermo<per
|
|||||||
|
|
||||||
mixture air 1 28.9 1000 0 1.8e-05 0.7;
|
mixture air 1 28.9 1000 0 1.8e-05 0.7;
|
||||||
|
|
||||||
|
pRef 1e5;
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -16,25 +16,25 @@ FoamFile
|
|||||||
|
|
||||||
dimensions [1 -1 -2 0 0 0 0];
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
internalField uniform 100000;
|
internalField uniform 0;
|
||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
floor
|
floor
|
||||||
{
|
{
|
||||||
type fixedFluxBuoyantPressure;
|
type calculated;
|
||||||
value uniform 100000;
|
value uniform 100000;
|
||||||
}
|
}
|
||||||
|
|
||||||
ceiling
|
ceiling
|
||||||
{
|
{
|
||||||
type fixedFluxBuoyantPressure;
|
type calculated;
|
||||||
value uniform 100000;
|
value uniform 100000;
|
||||||
}
|
}
|
||||||
|
|
||||||
fixedWalls
|
fixedWalls
|
||||||
{
|
{
|
||||||
type fixedFluxBuoyantPressure;
|
type calculated;
|
||||||
value uniform 100000;
|
value uniform 100000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
42
tutorials/buoyantSimpleFoam/hotRoom/0/pd
Normal file
42
tutorials/buoyantSimpleFoam/hotRoom/0/pd
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5 |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
object pd;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
floor
|
||||||
|
{
|
||||||
|
type fixedFluxBuoyantPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ceiling
|
||||||
|
{
|
||||||
|
type fixedFluxBuoyantPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
fixedWalls
|
||||||
|
{
|
||||||
|
type fixedFluxBuoyantPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -18,4 +18,6 @@ thermoType hThermo<pureMixture<constTransport<specieThermo<hConstThermo<per
|
|||||||
|
|
||||||
mixture air 1 28.9 1000 0 1.8e-05 0.7;
|
mixture air 1 28.9 1000 0 1.8e-05 0.7;
|
||||||
|
|
||||||
|
pRef 1e5;
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -22,25 +22,25 @@ boundaryField
|
|||||||
{
|
{
|
||||||
floor
|
floor
|
||||||
{
|
{
|
||||||
type fixedFluxBuoyantPressure;
|
type calculated;
|
||||||
value uniform 100000;
|
value uniform 100000;
|
||||||
}
|
}
|
||||||
|
|
||||||
ceiling
|
ceiling
|
||||||
{
|
{
|
||||||
type fixedFluxBuoyantPressure;
|
type calculated;
|
||||||
value uniform 100000;
|
value uniform 100000;
|
||||||
}
|
}
|
||||||
|
|
||||||
fixedWalls
|
fixedWalls
|
||||||
{
|
{
|
||||||
type fixedFluxBuoyantPressure;
|
type calculated;
|
||||||
value uniform 100000;
|
value uniform 100000;
|
||||||
}
|
}
|
||||||
|
|
||||||
box
|
box
|
||||||
{
|
{
|
||||||
type fixedFluxBuoyantPressure;
|
type calculated;
|
||||||
value uniform 100000;
|
value uniform 100000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
48
tutorials/buoyantSimpleRadiationFoam/hotRadiationRoom/0/pd
Normal file
48
tutorials/buoyantSimpleRadiationFoam/hotRadiationRoom/0/pd
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5 |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
object pd;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
floor
|
||||||
|
{
|
||||||
|
type fixedFluxBuoyantPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ceiling
|
||||||
|
{
|
||||||
|
type fixedFluxBuoyantPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
fixedWalls
|
||||||
|
{
|
||||||
|
type fixedFluxBuoyantPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
box
|
||||||
|
{
|
||||||
|
type fixedFluxBuoyantPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -18,4 +18,6 @@ thermoType hThermo<pureMixture<constTransport<specieThermo<hConstThermo<per
|
|||||||
|
|
||||||
mixture air 1 28.9 1000 0 1.8e-05 0.7;
|
mixture air 1 28.9 1000 0 1.8e-05 0.7;
|
||||||
|
|
||||||
|
pRef 1e5;
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
36
tutorials/compressibleLesInterFoam/depthCharge2D/0/U
Normal file
36
tutorials/compressibleLesInterFoam/depthCharge2D/0/U
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0";
|
||||||
|
object U;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
frontAndBack
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
object alpha1;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
34
tutorials/compressibleLesInterFoam/depthCharge2D/0/pd.org
Normal file
34
tutorials/compressibleLesInterFoam/depthCharge2D/0/pd.org
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
object pd;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultFaces
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
12
tutorials/compressibleLesInterFoam/depthCharge2D/Allrun
Executable file
12
tutorials/compressibleLesInterFoam/depthCharge2D/Allrun
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Source tutorial run functions
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
|
# Get application name from directory
|
||||||
|
application="compressibleLesInterFoam"
|
||||||
|
|
||||||
|
runApplication blockMesh
|
||||||
|
cp 0/alpha1.org 0/alpha1
|
||||||
|
cp 0/pd.org 0/pd
|
||||||
|
runApplication setFields
|
||||||
|
runApplication $application
|
||||||
@ -0,0 +1,182 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.0 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object LESProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
LESModel laminar;
|
||||||
|
|
||||||
|
delta smooth;
|
||||||
|
|
||||||
|
laminarCoeffs
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
oneEqEddyCoeffs
|
||||||
|
{
|
||||||
|
ck 0.07;
|
||||||
|
ce 1.05;
|
||||||
|
}
|
||||||
|
|
||||||
|
dynOneEqEddyCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
filter simple;
|
||||||
|
}
|
||||||
|
|
||||||
|
locDynOneEqEddyCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
filter simple;
|
||||||
|
}
|
||||||
|
|
||||||
|
SmagorinskyCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
ck 0.07;
|
||||||
|
}
|
||||||
|
|
||||||
|
Smagorinsky2Coeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
ck 0.07;
|
||||||
|
cD2 0.02;
|
||||||
|
}
|
||||||
|
|
||||||
|
spectEddyViscCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
cB 8.22;
|
||||||
|
cK1 0.83;
|
||||||
|
cK2 1.03;
|
||||||
|
cK3 4.75;
|
||||||
|
cK4 2.55;
|
||||||
|
}
|
||||||
|
|
||||||
|
dynSmagorinskyCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
filter simple;
|
||||||
|
}
|
||||||
|
|
||||||
|
mixedSmagorinskyCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
ck 0.07;
|
||||||
|
filter simple;
|
||||||
|
}
|
||||||
|
|
||||||
|
dynMixedSmagorinskyCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
filter simple;
|
||||||
|
}
|
||||||
|
|
||||||
|
LRRDiffStressCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
ck 0.09;
|
||||||
|
c1 1.8;
|
||||||
|
c2 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
DeardorffDiffStressCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
ck 0.09;
|
||||||
|
cm 4.13;
|
||||||
|
}
|
||||||
|
|
||||||
|
SpalartAllmarasCoeffs
|
||||||
|
{
|
||||||
|
alphaNut 1.5;
|
||||||
|
Cb1 0.1355;
|
||||||
|
Cb2 0.622;
|
||||||
|
Cw2 0.3;
|
||||||
|
Cw3 2;
|
||||||
|
Cv1 7.1;
|
||||||
|
CDES 0.65;
|
||||||
|
ck 0.07;
|
||||||
|
}
|
||||||
|
|
||||||
|
cubeRootVolCoeffs
|
||||||
|
{
|
||||||
|
deltaCoeff 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
PrandtlCoeffs
|
||||||
|
{
|
||||||
|
delta cubeRootVol;
|
||||||
|
cubeRootVolCoeffs
|
||||||
|
{
|
||||||
|
deltaCoeff 1;
|
||||||
|
}
|
||||||
|
smoothCoeffs
|
||||||
|
{
|
||||||
|
delta cubeRootVol;
|
||||||
|
cubeRootVolCoeffs
|
||||||
|
{
|
||||||
|
deltaCoeff 1;
|
||||||
|
}
|
||||||
|
maxDeltaRatio 1.1;
|
||||||
|
}
|
||||||
|
Cdelta 0.158;
|
||||||
|
}
|
||||||
|
|
||||||
|
vanDriestCoeffs
|
||||||
|
{
|
||||||
|
delta cubeRootVol;
|
||||||
|
cubeRootVolCoeffs
|
||||||
|
{
|
||||||
|
deltaCoeff 1;
|
||||||
|
}
|
||||||
|
smoothCoeffs
|
||||||
|
{
|
||||||
|
delta cubeRootVol;
|
||||||
|
cubeRootVolCoeffs
|
||||||
|
{
|
||||||
|
deltaCoeff 1;
|
||||||
|
}
|
||||||
|
maxDeltaRatio 1.1;
|
||||||
|
}
|
||||||
|
Aplus 26;
|
||||||
|
Cdelta 0.158;
|
||||||
|
}
|
||||||
|
|
||||||
|
smoothCoeffs
|
||||||
|
{
|
||||||
|
delta cubeRootVol;
|
||||||
|
cubeRootVolCoeffs
|
||||||
|
{
|
||||||
|
deltaCoeff 1;
|
||||||
|
}
|
||||||
|
maxDeltaRatio 1.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
kappa 0.4187;
|
||||||
|
|
||||||
|
wallFunctionCoeffs
|
||||||
|
{
|
||||||
|
E 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.0 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object environmentalProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
g g [0 1 -2 0 0 0 0] (0 -9.81 0);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object blockMeshDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
convertToMeters 1;
|
||||||
|
|
||||||
|
vertices
|
||||||
|
(
|
||||||
|
(0 0 -0.1)
|
||||||
|
(1 0 -0.1)
|
||||||
|
(1 2 -0.1)
|
||||||
|
(0 2 -0.1)
|
||||||
|
(0 0 0.1)
|
||||||
|
(1 0 0.1)
|
||||||
|
(1 2 0.1)
|
||||||
|
(0 2 0.1)
|
||||||
|
);
|
||||||
|
|
||||||
|
blocks
|
||||||
|
(
|
||||||
|
hex (0 1 2 3 4 5 6 7) (80 160 1) simpleGrading (1 1 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
patches
|
||||||
|
(
|
||||||
|
wall walls
|
||||||
|
(
|
||||||
|
(3 7 6 2)
|
||||||
|
(0 4 7 3)
|
||||||
|
(2 6 5 1)
|
||||||
|
(1 5 4 0)
|
||||||
|
)
|
||||||
|
empty frontAndBack
|
||||||
|
(
|
||||||
|
(0 3 2 1)
|
||||||
|
(4 5 6 7)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class polyBoundaryMesh;
|
||||||
|
location "constant/polyMesh";
|
||||||
|
object boundary;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
2
|
||||||
|
(
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
nFaces 480;
|
||||||
|
startFace 25360;
|
||||||
|
}
|
||||||
|
frontAndBack
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
nFaces 25600;
|
||||||
|
startFace 25840;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object transportProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
phase1 //water
|
||||||
|
{
|
||||||
|
transportModel Newtonian;
|
||||||
|
nu nu [0 2 -1 0 0 0 0] 1e-6;
|
||||||
|
rho rho [1 -3 0 0 0 0 0] 1000;
|
||||||
|
rho0 rho0 [1 -3 0 0 0 0 0] 1000;
|
||||||
|
psi psi [0 -2 2 0 0] 1e-5;
|
||||||
|
}
|
||||||
|
|
||||||
|
phase2 //air
|
||||||
|
{
|
||||||
|
transportModel Newtonian;
|
||||||
|
nu nu [0 2 -1 0 0 0 0] 1.589e-5;
|
||||||
|
rho rho [1 -3 0 0 0 0 0] 1;
|
||||||
|
rho0 rho0 [1 -3 0 0 0 0 0] 0;
|
||||||
|
psi psi [0 -2 2 0 0] 1e-5;
|
||||||
|
}
|
||||||
|
|
||||||
|
pMin pMin [1 -1 -2 0 0 0 0] 1e4;
|
||||||
|
|
||||||
|
sigma sigma [1 0 -2 0 0 0 0] 0.07;
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object controlDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
application lesInterFoam;
|
||||||
|
|
||||||
|
startFrom latestTime;
|
||||||
|
|
||||||
|
startTime 0;
|
||||||
|
|
||||||
|
stopAt endTime;
|
||||||
|
|
||||||
|
endTime 0.5;
|
||||||
|
|
||||||
|
deltaT 1e-04;
|
||||||
|
|
||||||
|
writeControl adjustableRunTime;
|
||||||
|
|
||||||
|
writeInterval 5e-03;
|
||||||
|
|
||||||
|
purgeWrite 0;
|
||||||
|
|
||||||
|
writeFormat ascii;
|
||||||
|
|
||||||
|
writePrecision 8;
|
||||||
|
|
||||||
|
writeCompression compressed;
|
||||||
|
|
||||||
|
timeFormat general;
|
||||||
|
|
||||||
|
timePrecision 10;
|
||||||
|
|
||||||
|
runTimeModifiable yes;
|
||||||
|
|
||||||
|
adjustTimeStep yes;
|
||||||
|
|
||||||
|
maxCo 0.25;
|
||||||
|
|
||||||
|
maxDeltaT 1;
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,64 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default Euler;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
div(rho*phi,U) Gauss upwind; //linear;
|
||||||
|
|
||||||
|
div(phi,alpha) Gauss vanLeer;
|
||||||
|
div(phirb,alpha) Gauss interfaceCompression 1.0;
|
||||||
|
|
||||||
|
div(phi,pd) Gauss upwind; //vanLeer; //linear;
|
||||||
|
|
||||||
|
div(phi,k) Gauss vanLeer;
|
||||||
|
|
||||||
|
div((nuEff*dev(grad(U).T()))) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear uncorrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpolationSchemes
|
||||||
|
{
|
||||||
|
default linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
default uncorrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
pd;
|
||||||
|
pcorr;
|
||||||
|
gamma;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,126 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
pcorr PCG
|
||||||
|
{
|
||||||
|
preconditioner GAMG
|
||||||
|
{
|
||||||
|
tolerance 1e-5;
|
||||||
|
relTol 0;
|
||||||
|
|
||||||
|
smoother DICGaussSeidel;
|
||||||
|
nPreSweeps 0;
|
||||||
|
nPostSweeps 2;
|
||||||
|
nBottomSweeps 2;
|
||||||
|
|
||||||
|
cacheAgglomeration false;
|
||||||
|
nCellsInCoarsestLevel 10;
|
||||||
|
agglomerator faceAreaPair;
|
||||||
|
mergeLevels 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
tolerance 1e-5;
|
||||||
|
relTol 0;
|
||||||
|
maxIter 100;
|
||||||
|
};
|
||||||
|
|
||||||
|
rho diagonal
|
||||||
|
{};
|
||||||
|
|
||||||
|
pd GAMG
|
||||||
|
{
|
||||||
|
tolerance 1e-7;
|
||||||
|
relTol 0.01;
|
||||||
|
|
||||||
|
smoother DIC; //GaussSeidel;
|
||||||
|
nPreSweeps 0;
|
||||||
|
nPostSweeps 2;
|
||||||
|
nFinestSweeps 2;
|
||||||
|
|
||||||
|
cacheAgglomeration true;
|
||||||
|
nCellsInCoarsestLevel 10;
|
||||||
|
agglomerator faceAreaPair;
|
||||||
|
mergeLevels 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
pdFinal PCG
|
||||||
|
{
|
||||||
|
preconditioner GAMG
|
||||||
|
{
|
||||||
|
tolerance 1e-7;
|
||||||
|
relTol 0;
|
||||||
|
|
||||||
|
nVcycles 2;
|
||||||
|
|
||||||
|
smoother DICGaussSeidel;
|
||||||
|
nPreSweeps 2;
|
||||||
|
nPostSweeps 2;
|
||||||
|
nFinestSweeps 2;
|
||||||
|
|
||||||
|
cacheAgglomeration true;
|
||||||
|
nCellsInCoarsestLevel 10;
|
||||||
|
agglomerator faceAreaPair;
|
||||||
|
mergeLevels 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
tolerance 1e-7;
|
||||||
|
relTol 0;
|
||||||
|
maxIter 20;
|
||||||
|
};
|
||||||
|
|
||||||
|
U smoothSolver
|
||||||
|
{
|
||||||
|
smoother GaussSeidel;
|
||||||
|
tolerance 1e-6;
|
||||||
|
relTol 0;
|
||||||
|
nSweeps 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
k PBiCG
|
||||||
|
{
|
||||||
|
preconditioner DILU;
|
||||||
|
tolerance 1e-08;
|
||||||
|
relTol 0;
|
||||||
|
};
|
||||||
|
B PBiCG
|
||||||
|
{
|
||||||
|
preconditioner DILU;
|
||||||
|
tolerance 1e-08;
|
||||||
|
relTol 0;
|
||||||
|
};
|
||||||
|
nuTilda PBiCG
|
||||||
|
{
|
||||||
|
preconditioner DILU;
|
||||||
|
tolerance 1e-08;
|
||||||
|
relTol 0;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
PISO
|
||||||
|
{
|
||||||
|
momentumPredictor no;
|
||||||
|
transSonic no;
|
||||||
|
nOuterCorrectors 3;
|
||||||
|
nCorrectors 1;
|
||||||
|
nNonOrthogonalCorrectors 0;
|
||||||
|
nAlphaCorr 1;
|
||||||
|
nAlphaSubCycles 1;
|
||||||
|
cGamma 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object setFieldsDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
defaultFieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alpha1 1
|
||||||
|
volScalarFieldValue pd 1e5
|
||||||
|
);
|
||||||
|
|
||||||
|
regions
|
||||||
|
(
|
||||||
|
sphereToCell
|
||||||
|
{
|
||||||
|
centre (0.5 0.5 0);
|
||||||
|
radius 0.1;
|
||||||
|
|
||||||
|
fieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alpha1 0
|
||||||
|
volScalarFieldValue pd 10e5
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
boxToCell
|
||||||
|
{
|
||||||
|
box (-10 1 -1) (10 10 1);
|
||||||
|
|
||||||
|
fieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alpha1 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
32
tutorials/compressibleLesInterFoam/depthCharge3D/0/U
Normal file
32
tutorials/compressibleLesInterFoam/depthCharge3D/0/U
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0";
|
||||||
|
object U;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object alpha1.org;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
31
tutorials/compressibleLesInterFoam/depthCharge3D/0/pd.org
Normal file
31
tutorials/compressibleLesInterFoam/depthCharge3D/0/pd.org
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object pd.org;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
5
tutorials/compressibleLesInterFoam/depthCharge3D/Allclean
Executable file
5
tutorials/compressibleLesInterFoam/depthCharge3D/Allclean
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
foamCleanTutorials cases
|
||||||
|
rm -rf processor*
|
||||||
|
rm 0/pd.gz 0/alpha1.gz
|
||||||
15
tutorials/compressibleLesInterFoam/depthCharge3D/Allrun
Executable file
15
tutorials/compressibleLesInterFoam/depthCharge3D/Allrun
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Source tutorial run functions
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
|
# Get application name from directory
|
||||||
|
application="compressibleLesInterFoam"
|
||||||
|
|
||||||
|
runApplication blockMesh
|
||||||
|
cp 0/alpha1.org 0/alpha1
|
||||||
|
cp 0/pd.org 0/pd
|
||||||
|
runApplication setFields
|
||||||
|
runApplication decomposePar
|
||||||
|
hostname > system/machines
|
||||||
|
runParallel $application 4 system/machines
|
||||||
|
runApplication reconstructPar
|
||||||
@ -0,0 +1,182 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.0 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object LESProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
LESModel laminar;
|
||||||
|
|
||||||
|
delta smooth;
|
||||||
|
|
||||||
|
laminarCoeffs
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
oneEqEddyCoeffs
|
||||||
|
{
|
||||||
|
ck 0.07;
|
||||||
|
ce 1.05;
|
||||||
|
}
|
||||||
|
|
||||||
|
dynOneEqEddyCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
filter simple;
|
||||||
|
}
|
||||||
|
|
||||||
|
locDynOneEqEddyCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
filter simple;
|
||||||
|
}
|
||||||
|
|
||||||
|
SmagorinskyCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
ck 0.07;
|
||||||
|
}
|
||||||
|
|
||||||
|
Smagorinsky2Coeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
ck 0.07;
|
||||||
|
cD2 0.02;
|
||||||
|
}
|
||||||
|
|
||||||
|
spectEddyViscCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
cB 8.22;
|
||||||
|
cK1 0.83;
|
||||||
|
cK2 1.03;
|
||||||
|
cK3 4.75;
|
||||||
|
cK4 2.55;
|
||||||
|
}
|
||||||
|
|
||||||
|
dynSmagorinskyCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
filter simple;
|
||||||
|
}
|
||||||
|
|
||||||
|
mixedSmagorinskyCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
ck 0.07;
|
||||||
|
filter simple;
|
||||||
|
}
|
||||||
|
|
||||||
|
dynMixedSmagorinskyCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
filter simple;
|
||||||
|
}
|
||||||
|
|
||||||
|
LRRDiffStressCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
ck 0.09;
|
||||||
|
c1 1.8;
|
||||||
|
c2 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
DeardorffDiffStressCoeffs
|
||||||
|
{
|
||||||
|
ce 1.05;
|
||||||
|
ck 0.09;
|
||||||
|
cm 4.13;
|
||||||
|
}
|
||||||
|
|
||||||
|
SpalartAllmarasCoeffs
|
||||||
|
{
|
||||||
|
alphaNut 1.5;
|
||||||
|
Cb1 0.1355;
|
||||||
|
Cb2 0.622;
|
||||||
|
Cw2 0.3;
|
||||||
|
Cw3 2;
|
||||||
|
Cv1 7.1;
|
||||||
|
CDES 0.65;
|
||||||
|
ck 0.07;
|
||||||
|
}
|
||||||
|
|
||||||
|
cubeRootVolCoeffs
|
||||||
|
{
|
||||||
|
deltaCoeff 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
PrandtlCoeffs
|
||||||
|
{
|
||||||
|
delta cubeRootVol;
|
||||||
|
cubeRootVolCoeffs
|
||||||
|
{
|
||||||
|
deltaCoeff 1;
|
||||||
|
}
|
||||||
|
smoothCoeffs
|
||||||
|
{
|
||||||
|
delta cubeRootVol;
|
||||||
|
cubeRootVolCoeffs
|
||||||
|
{
|
||||||
|
deltaCoeff 1;
|
||||||
|
}
|
||||||
|
maxDeltaRatio 1.1;
|
||||||
|
}
|
||||||
|
Cdelta 0.158;
|
||||||
|
}
|
||||||
|
|
||||||
|
vanDriestCoeffs
|
||||||
|
{
|
||||||
|
delta cubeRootVol;
|
||||||
|
cubeRootVolCoeffs
|
||||||
|
{
|
||||||
|
deltaCoeff 1;
|
||||||
|
}
|
||||||
|
smoothCoeffs
|
||||||
|
{
|
||||||
|
delta cubeRootVol;
|
||||||
|
cubeRootVolCoeffs
|
||||||
|
{
|
||||||
|
deltaCoeff 1;
|
||||||
|
}
|
||||||
|
maxDeltaRatio 1.1;
|
||||||
|
}
|
||||||
|
Aplus 26;
|
||||||
|
Cdelta 0.158;
|
||||||
|
}
|
||||||
|
|
||||||
|
smoothCoeffs
|
||||||
|
{
|
||||||
|
delta cubeRootVol;
|
||||||
|
cubeRootVolCoeffs
|
||||||
|
{
|
||||||
|
deltaCoeff 1;
|
||||||
|
}
|
||||||
|
maxDeltaRatio 1.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
kappa 0.4187;
|
||||||
|
|
||||||
|
wallFunctionCoeffs
|
||||||
|
{
|
||||||
|
E 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.0 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
|
||||||
|
root "";
|
||||||
|
case "";
|
||||||
|
instance "";
|
||||||
|
local "";
|
||||||
|
|
||||||
|
class dictionary;
|
||||||
|
object environmentalProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
g g [0 1 -2 0 0 0 0] (0 -9.81 0);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object blockMeshDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
convertToMeters 1;
|
||||||
|
|
||||||
|
vertices
|
||||||
|
(
|
||||||
|
(0 0 0)
|
||||||
|
(1 0 0)
|
||||||
|
(1 2 0)
|
||||||
|
(0 2 0)
|
||||||
|
(0 0 1)
|
||||||
|
(1 0 1)
|
||||||
|
(1 2 1)
|
||||||
|
(0 2 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
blocks
|
||||||
|
(
|
||||||
|
hex (0 1 2 3 4 5 6 7) (80 160 80) simpleGrading (1 1 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
patches
|
||||||
|
(
|
||||||
|
wall walls
|
||||||
|
(
|
||||||
|
(3 7 6 2)
|
||||||
|
(0 4 7 3)
|
||||||
|
(2 6 5 1)
|
||||||
|
(1 5 4 0)
|
||||||
|
(0 3 2 1)
|
||||||
|
(4 5 6 7)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class polyBoundaryMesh;
|
||||||
|
location "constant/polyMesh";
|
||||||
|
object boundary;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
1
|
||||||
|
(
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
nFaces 64000;
|
||||||
|
startFace 3040000;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object transportProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
phase1 //water
|
||||||
|
{
|
||||||
|
transportModel Newtonian;
|
||||||
|
nu nu [0 2 -1 0 0 0 0] 1e-6;
|
||||||
|
rho rho [1 -3 0 0 0 0 0] 1000;
|
||||||
|
rho0 rho0 [1 -3 0 0 0 0 0] 1000;
|
||||||
|
psi psi [0 -2 2 0 0] 1e-5;
|
||||||
|
}
|
||||||
|
|
||||||
|
phase2 //air
|
||||||
|
{
|
||||||
|
transportModel Newtonian;
|
||||||
|
nu nu [0 2 -1 0 0 0 0] 1.589e-5;
|
||||||
|
rho rho [1 -3 0 0 0 0 0] 1;
|
||||||
|
rho0 rho0 [1 -3 0 0 0 0 0] 0;
|
||||||
|
psi psi [0 -2 2 0 0] 1e-5;
|
||||||
|
}
|
||||||
|
|
||||||
|
pMin pMin [1 -1 -2 0 0 0 0] 1e4;
|
||||||
|
|
||||||
|
sigma sigma [1 0 -2 0 0 0 0] 0.07;
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object controlDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
application lesInterFoam;
|
||||||
|
|
||||||
|
startFrom latestTime;
|
||||||
|
|
||||||
|
startTime 0;
|
||||||
|
|
||||||
|
stopAt endTime;
|
||||||
|
|
||||||
|
endTime 0.5;
|
||||||
|
|
||||||
|
deltaT 1e-04;
|
||||||
|
|
||||||
|
writeControl adjustableRunTime;
|
||||||
|
|
||||||
|
writeInterval 5e-03;
|
||||||
|
|
||||||
|
purgeWrite 0;
|
||||||
|
|
||||||
|
writeFormat ascii;
|
||||||
|
|
||||||
|
writePrecision 8;
|
||||||
|
|
||||||
|
writeCompression compressed;
|
||||||
|
|
||||||
|
timeFormat general;
|
||||||
|
|
||||||
|
timePrecision 10;
|
||||||
|
|
||||||
|
runTimeModifiable yes;
|
||||||
|
|
||||||
|
adjustTimeStep yes;
|
||||||
|
|
||||||
|
maxCo 0.25;
|
||||||
|
|
||||||
|
maxDeltaT 1;
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5 |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object decomposeParDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
numberOfSubdomains 4;
|
||||||
|
|
||||||
|
method hierarchical;
|
||||||
|
//method metis;
|
||||||
|
//method parMetis;
|
||||||
|
|
||||||
|
simpleCoeffs
|
||||||
|
{
|
||||||
|
n (1 4 1);
|
||||||
|
delta 0.001;
|
||||||
|
}
|
||||||
|
|
||||||
|
hierarchicalCoeffs
|
||||||
|
{
|
||||||
|
n (1 4 1);
|
||||||
|
delta 0.001;
|
||||||
|
order xyz;
|
||||||
|
}
|
||||||
|
|
||||||
|
metisCoeffs
|
||||||
|
{}
|
||||||
|
|
||||||
|
manualCoeffs
|
||||||
|
{
|
||||||
|
dataFile "";
|
||||||
|
}
|
||||||
|
|
||||||
|
distributed no;
|
||||||
|
|
||||||
|
roots
|
||||||
|
(
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,64 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default Euler;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
div(rho*phi,U) Gauss upwind; //linear;
|
||||||
|
|
||||||
|
div(phi,alpha) Gauss vanLeer;
|
||||||
|
div(phirb,alpha) Gauss interfaceCompression 1.0;
|
||||||
|
|
||||||
|
div(phi,pd) Gauss upwind; //vanLeer; //linear;
|
||||||
|
|
||||||
|
div(phi,k) Gauss vanLeer;
|
||||||
|
|
||||||
|
div((nuEff*dev(grad(U).T()))) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear uncorrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpolationSchemes
|
||||||
|
{
|
||||||
|
default linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
default uncorrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
pd;
|
||||||
|
pcorr;
|
||||||
|
gamma;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,126 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
pcorr PCG
|
||||||
|
{
|
||||||
|
preconditioner GAMG
|
||||||
|
{
|
||||||
|
tolerance 1e-5;
|
||||||
|
relTol 0;
|
||||||
|
|
||||||
|
smoother DICGaussSeidel;
|
||||||
|
nPreSweeps 0;
|
||||||
|
nPostSweeps 2;
|
||||||
|
nBottomSweeps 2;
|
||||||
|
|
||||||
|
cacheAgglomeration false;
|
||||||
|
nCellsInCoarsestLevel 10;
|
||||||
|
agglomerator faceAreaPair;
|
||||||
|
mergeLevels 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
tolerance 1e-5;
|
||||||
|
relTol 0;
|
||||||
|
maxIter 100;
|
||||||
|
};
|
||||||
|
|
||||||
|
rho diagonal
|
||||||
|
{};
|
||||||
|
|
||||||
|
pd GAMG
|
||||||
|
{
|
||||||
|
tolerance 1e-7;
|
||||||
|
relTol 0.01;
|
||||||
|
|
||||||
|
smoother DIC; //GaussSeidel;
|
||||||
|
nPreSweeps 0;
|
||||||
|
nPostSweeps 2;
|
||||||
|
nFinestSweeps 2;
|
||||||
|
|
||||||
|
cacheAgglomeration true;
|
||||||
|
nCellsInCoarsestLevel 10;
|
||||||
|
agglomerator faceAreaPair;
|
||||||
|
mergeLevels 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
pdFinal PCG
|
||||||
|
{
|
||||||
|
preconditioner GAMG
|
||||||
|
{
|
||||||
|
tolerance 1e-7;
|
||||||
|
relTol 0;
|
||||||
|
|
||||||
|
nVcycles 2;
|
||||||
|
|
||||||
|
smoother DICGaussSeidel;
|
||||||
|
nPreSweeps 2;
|
||||||
|
nPostSweeps 2;
|
||||||
|
nFinestSweeps 2;
|
||||||
|
|
||||||
|
cacheAgglomeration true;
|
||||||
|
nCellsInCoarsestLevel 10;
|
||||||
|
agglomerator faceAreaPair;
|
||||||
|
mergeLevels 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
tolerance 1e-7;
|
||||||
|
relTol 0;
|
||||||
|
maxIter 20;
|
||||||
|
};
|
||||||
|
|
||||||
|
U smoothSolver
|
||||||
|
{
|
||||||
|
smoother GaussSeidel;
|
||||||
|
tolerance 1e-6;
|
||||||
|
relTol 0;
|
||||||
|
nSweeps 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
k PBiCG
|
||||||
|
{
|
||||||
|
preconditioner DILU;
|
||||||
|
tolerance 1e-08;
|
||||||
|
relTol 0;
|
||||||
|
};
|
||||||
|
B PBiCG
|
||||||
|
{
|
||||||
|
preconditioner DILU;
|
||||||
|
tolerance 1e-08;
|
||||||
|
relTol 0;
|
||||||
|
};
|
||||||
|
nuTilda PBiCG
|
||||||
|
{
|
||||||
|
preconditioner DILU;
|
||||||
|
tolerance 1e-08;
|
||||||
|
relTol 0;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
PISO
|
||||||
|
{
|
||||||
|
momentumPredictor no;
|
||||||
|
transSonic no;
|
||||||
|
nOuterCorrectors 3;
|
||||||
|
nCorrectors 1;
|
||||||
|
nNonOrthogonalCorrectors 0;
|
||||||
|
nAlphaCorr 1;
|
||||||
|
nAlphaSubCycles 1;
|
||||||
|
cGamma 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1 @@
|
|||||||
|
noisy
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object setFieldsDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
defaultFieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alpha1 1
|
||||||
|
volScalarFieldValue pd 1e5
|
||||||
|
);
|
||||||
|
|
||||||
|
regions
|
||||||
|
(
|
||||||
|
sphereToCell
|
||||||
|
{
|
||||||
|
centre (0.5 0.5 0.5);
|
||||||
|
radius 0.1;
|
||||||
|
|
||||||
|
fieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alpha1 0
|
||||||
|
volScalarFieldValue pd 10e5
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
boxToCell
|
||||||
|
{
|
||||||
|
box (-10 1 -1) (10 10 1);
|
||||||
|
|
||||||
|
fieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alpha1 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -63,7 +63,7 @@ pair
|
|||||||
shift2 0.97e-9;
|
shift2 0.97e-9;
|
||||||
scale2 1.2e11;
|
scale2 1.2e11;
|
||||||
}
|
}
|
||||||
writeTables yes;
|
writeTables no;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ar-Ne
|
Ar-Ne
|
||||||
@ -80,7 +80,7 @@ pair
|
|||||||
epsilon 8.765026657e-22;
|
epsilon 8.765026657e-22;
|
||||||
}
|
}
|
||||||
energyScalingFunction shiftedForce;
|
energyScalingFunction shiftedForce;
|
||||||
writeTables yes;
|
writeTables no;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ne-Ne
|
Ne-Ne
|
||||||
@ -97,7 +97,7 @@ pair
|
|||||||
epsilon 5.813260729e-22;
|
epsilon 5.813260729e-22;
|
||||||
}
|
}
|
||||||
energyScalingFunction shiftedForce;
|
energyScalingFunction shiftedForce;
|
||||||
writeTables yes;
|
writeTables no;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@ cd ..
|
|||||||
cd throttle3D
|
cd throttle3D
|
||||||
rm -rf constant/polyMesh/sets > /dev/null 2>&1
|
rm -rf constant/polyMesh/sets > /dev/null 2>&1
|
||||||
rm -rf 0 > /dev/null 2>&1
|
rm -rf 0 > /dev/null 2>&1
|
||||||
cp -r 0.orig 0
|
cp -r 0.org 0
|
||||||
rm system/cellSetDict > /dev/null 2>&1
|
rm system/cellSetDict > /dev/null 2>&1
|
||||||
rm -rf processor[0-9] > /dev/null 2>&1
|
rm -rf processor[0-9] > /dev/null 2>&1
|
||||||
|
|
||||||
|
|||||||
@ -26,7 +26,7 @@ cd throttle
|
|||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
cd throttle3D
|
cd throttle3D
|
||||||
cp -r 0.orig 0
|
cp -r 0.org 0
|
||||||
|
|
||||||
runApplication blockMesh
|
runApplication blockMesh
|
||||||
|
|
||||||
@ -42,3 +42,4 @@ cd throttle3D
|
|||||||
runParallel $application 4 system/machines
|
runParallel $application 4 system/machines
|
||||||
runApplication reconstructPar
|
runApplication reconstructPar
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
|||||||
48
tutorials/lesCavitatingFoam/throttle3D/0.org/U
Normal file
48
tutorials/lesCavitatingFoam/throttle3D/0.org/U
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5 |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
object U;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
frontBack
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
48
tutorials/lesCavitatingFoam/throttle3D/0.org/gamma
Normal file
48
tutorials/lesCavitatingFoam/throttle3D/0.org/gamma
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5 |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
object gamma;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
frontBack
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -9,28 +9,34 @@ FoamFile
|
|||||||
{
|
{
|
||||||
version 2.0;
|
version 2.0;
|
||||||
format ascii;
|
format ascii;
|
||||||
class volSymmTensorField;
|
class volScalarField;
|
||||||
object R;
|
object k;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
dimensions [0 2 -2 0 0 0 0];
|
dimensions [0 2 -2 0 0];
|
||||||
|
|
||||||
internalField uniform (0 0 0 0 0 0);
|
internalField uniform 10.0;
|
||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
floor
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
ceiling
|
walls
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
fixedWalls
|
frontBack
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
43
tutorials/lesCavitatingFoam/throttle3D/0.org/nuSgs
Normal file
43
tutorials/lesCavitatingFoam/throttle3D/0.org/nuSgs
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5 |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format binary;
|
||||||
|
class volScalarField;
|
||||||
|
object nuSgs;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 2 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 1e-11;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
frontBack
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
51
tutorials/lesCavitatingFoam/throttle3D/0.org/p
Normal file
51
tutorials/lesCavitatingFoam/throttle3D/0.org/p
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5 |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
object p;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0];
|
||||||
|
|
||||||
|
internalField uniform 300e5;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type totalPressure;
|
||||||
|
U U;
|
||||||
|
phi phiv;
|
||||||
|
rho rho;
|
||||||
|
psi none;
|
||||||
|
gamma 1;
|
||||||
|
p0 uniform 300e5;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 100e5;
|
||||||
|
}
|
||||||
|
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
frontBack
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -9,28 +9,35 @@ FoamFile
|
|||||||
{
|
{
|
||||||
version 2.0;
|
version 2.0;
|
||||||
format ascii;
|
format ascii;
|
||||||
class volSymmTensorField;
|
class volScalarField;
|
||||||
object R;
|
object rho;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
dimensions [0 -2 -2 0 0 0 0];
|
dimensions [1 -3 0 0 0];
|
||||||
|
|
||||||
internalField uniform (0 0 0 0 0 0);
|
internalField uniform 845;
|
||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
floor
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 845;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 835;
|
||||||
|
}
|
||||||
|
|
||||||
|
walls
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
|
|
||||||
ceiling
|
frontBack
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixedWalls
|
|
||||||
{
|
{
|
||||||
type zeroGradient;
|
type zeroGradient;
|
||||||
}
|
}
|
||||||
@ -20,7 +20,7 @@ startTime 0;
|
|||||||
|
|
||||||
stopAt endTime;
|
stopAt endTime;
|
||||||
|
|
||||||
endTime 4e-10;
|
endTime 1e-10;
|
||||||
|
|
||||||
deltaT 1e-14;
|
deltaT 1e-14;
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
# Get application name from directory
|
# Get application name from directory
|
||||||
application=`basename $PWD`
|
application="mdEquilibrationFoam"
|
||||||
|
|
||||||
(cd hartmann && runApplication blockMesh)
|
(cd hartmann && runApplication blockMesh)
|
||||||
(cd hartmann && runApplication $application)
|
(cd hartmann && runApplication $application)
|
||||||
|
|||||||
@ -46,7 +46,7 @@ solvers
|
|||||||
|
|
||||||
p GAMG
|
p GAMG
|
||||||
{
|
{
|
||||||
preconditioner 1e-5;
|
tolerance 1e-8;
|
||||||
relTol 0;
|
relTol 0;
|
||||||
|
|
||||||
smoother GaussSeidel;
|
smoother GaussSeidel;
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
# Get application name from directory
|
# Get application name from directory
|
||||||
application="interFoam"
|
application="rasInterFoam"
|
||||||
|
|
||||||
runApplication blockMesh
|
runApplication blockMesh
|
||||||
runApplication setFields
|
runApplication setFields
|
||||||
|
|||||||
@ -17,7 +17,7 @@ FoamFile
|
|||||||
numberOfSubdomains 4;
|
numberOfSubdomains 4;
|
||||||
|
|
||||||
method hierarchical;
|
method hierarchical;
|
||||||
method metis;
|
//method metis;
|
||||||
//method parMetis;
|
//method parMetis;
|
||||||
|
|
||||||
simpleCoeffs
|
simpleCoeffs
|
||||||
@ -34,15 +34,7 @@ hierarchicalCoeffs
|
|||||||
}
|
}
|
||||||
|
|
||||||
metisCoeffs
|
metisCoeffs
|
||||||
{
|
{}
|
||||||
//processorWeights
|
|
||||||
//(
|
|
||||||
// 1
|
|
||||||
// 1
|
|
||||||
// 1
|
|
||||||
// 1
|
|
||||||
//);
|
|
||||||
}
|
|
||||||
|
|
||||||
manualCoeffs
|
manualCoeffs
|
||||||
{
|
{
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
2514
wmake/src/lex.yy.c
2514
wmake/src/lex.yy.c
File diff suppressed because it is too large
Load Diff
@ -56,7 +56,7 @@ void importDirectory(const char* dirName);
|
|||||||
|
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%s CMNT CFNAME SCFNAME JFNAME FFNAME
|
%x CMNT CFNAME SCFNAME JFNAME FFNAME
|
||||||
%%
|
%%
|
||||||
|
|
||||||
"//".*\n ; /* remove c++ style one line comments */
|
"//".*\n ; /* remove c++ style one line comments */
|
||||||
|
|||||||
Reference in New Issue
Block a user