Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-2.3.x
This commit is contained in:
commit
51e50dfdb2
59 changed files with 680 additions and 375 deletions
|
|
@ -2,7 +2,7 @@
|
||||||
cd ${0%/*} || exit 1 # run from this directory
|
cd ${0%/*} || exit 1 # run from this directory
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
|
wclean libso multiphaseMixture
|
||||||
wclean
|
wclean
|
||||||
wclean MRFMultiphaseInterFoam
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------- end-of-file
|
# ----------------------------------------------------------------- end-of-file
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,5 @@ set -x
|
||||||
|
|
||||||
wmake libso multiphaseMixture
|
wmake libso multiphaseMixture
|
||||||
wmake
|
wmake
|
||||||
wmake MRFMultiphaseInterFoam
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------- end-of-file
|
# ----------------------------------------------------------------- end-of-file
|
||||||
|
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration |
|
|
||||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
|
||||||
\\/ 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 3 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, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
Application
|
|
||||||
MRFMultiphaseInterFoam
|
|
||||||
|
|
||||||
Description
|
|
||||||
Solver for n incompressible fluids which captures the interfaces and
|
|
||||||
includes surface-tension and contact-angle effects for each phase.
|
|
||||||
|
|
||||||
Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected.
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#include "fvCFD.H"
|
|
||||||
#include "multiphaseMixture.H"
|
|
||||||
#include "turbulenceModel.H"
|
|
||||||
#include "IOMRFZoneList.H"
|
|
||||||
#include "pimpleControl.H"
|
|
||||||
#include "fixedFluxPressureFvPatchScalarField.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
#include "setRootCase.H"
|
|
||||||
#include "createTime.H"
|
|
||||||
#include "createMesh.H"
|
|
||||||
|
|
||||||
pimpleControl pimple(mesh);
|
|
||||||
|
|
||||||
#include "initContinuityErrs.H"
|
|
||||||
#include "createFields.H"
|
|
||||||
#include "createMRFZones.H"
|
|
||||||
#include "readTimeControls.H"
|
|
||||||
#include "createPrghCorrTypes.H"
|
|
||||||
#include "correctPhi.H"
|
|
||||||
#include "CourantNo.H"
|
|
||||||
#include "setInitialDeltaT.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
Info<< "\nStarting time loop\n" << endl;
|
|
||||||
|
|
||||||
while (runTime.run())
|
|
||||||
{
|
|
||||||
#include "readTimeControls.H"
|
|
||||||
#include "CourantNo.H"
|
|
||||||
#include "alphaCourantNo.H"
|
|
||||||
#include "setDeltaT.H"
|
|
||||||
|
|
||||||
runTime++;
|
|
||||||
|
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
|
||||||
|
|
||||||
mixture.solve();
|
|
||||||
rho = mixture.rho();
|
|
||||||
#include "zonePhaseVolumes.H"
|
|
||||||
|
|
||||||
// --- Pressure-velocity PIMPLE corrector loop
|
|
||||||
while (pimple.loop())
|
|
||||||
{
|
|
||||||
#include "UEqn.H"
|
|
||||||
|
|
||||||
// --- Pressure corrector loop
|
|
||||||
while (pimple.correct())
|
|
||||||
{
|
|
||||||
#include "pEqn.H"
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pimple.turbCorr())
|
|
||||||
{
|
|
||||||
turbulence->correct();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
runTime.write();
|
|
||||||
|
|
||||||
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
|
||||||
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
|
||||||
<< nl << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
MRFMultiphaseInterFoam.C
|
|
||||||
|
|
||||||
EXE = $(FOAM_APPBIN)/MRFMultiphaseInterFoam
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
EXE_INC = \
|
|
||||||
-I.. \
|
|
||||||
-I../../interFoam \
|
|
||||||
-I../../interFoam/MRFInterFoam \
|
|
||||||
-I../multiphaseMixture/lnInclude \
|
|
||||||
-I$(LIB_SRC)/transportModels \
|
|
||||||
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
|
|
||||||
-I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
|
|
||||||
-I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
|
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
|
||||||
|
|
||||||
EXE_LIBS = \
|
|
||||||
-lmultiphaseInterFoam \
|
|
||||||
-linterfaceProperties \
|
|
||||||
-lincompressibleTransportModels \
|
|
||||||
-lincompressibleTurbulenceModel \
|
|
||||||
-lincompressibleRASModels \
|
|
||||||
-lincompressibleLESModels \
|
|
||||||
-lfiniteVolume
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
surfaceScalarField muEff
|
|
||||||
(
|
|
||||||
"muEff",
|
|
||||||
mixture.muf()
|
|
||||||
+ fvc::interpolate(rho*turbulence->nut())
|
|
||||||
);
|
|
||||||
|
|
||||||
fvVectorMatrix UEqn
|
|
||||||
(
|
|
||||||
fvm::ddt(rho, U)
|
|
||||||
+ fvm::div(mixture.rhoPhi(), U)
|
|
||||||
- fvm::laplacian(muEff, U)
|
|
||||||
- (fvc::grad(U) & fvc::grad(muEff))
|
|
||||||
//- fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf()))
|
|
||||||
);
|
|
||||||
mrfZones.addCoriolis(rho, UEqn);
|
|
||||||
|
|
||||||
UEqn.relax();
|
|
||||||
|
|
||||||
if (pimple.momentumPredictor())
|
|
||||||
{
|
|
||||||
solve
|
|
||||||
(
|
|
||||||
UEqn
|
|
||||||
==
|
|
||||||
fvc::reconstruct
|
|
||||||
(
|
|
||||||
(
|
|
||||||
mixture.surfaceTensionForce()
|
|
||||||
- ghf*fvc::snGrad(rho)
|
|
||||||
- fvc::snGrad(p_rgh)
|
|
||||||
) * mesh.magSf()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
{
|
|
||||||
volScalarField rAU("rAU", 1.0/UEqn.A());
|
|
||||||
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
|
|
||||||
|
|
||||||
volVectorField HbyA("HbyA", U);
|
|
||||||
HbyA = rAU*UEqn.H();
|
|
||||||
|
|
||||||
surfaceScalarField phiHbyA
|
|
||||||
(
|
|
||||||
"phiHbyA",
|
|
||||||
(fvc::interpolate(HbyA) & mesh.Sf())
|
|
||||||
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi)
|
|
||||||
);
|
|
||||||
adjustPhi(phiHbyA, U, p_rgh);
|
|
||||||
mrfZones.makeRelative(phiHbyA);
|
|
||||||
|
|
||||||
surfaceScalarField phig
|
|
||||||
(
|
|
||||||
- ghf*fvc::snGrad(rho)*rAUf*mesh.magSf()
|
|
||||||
);
|
|
||||||
|
|
||||||
phiHbyA += phig;
|
|
||||||
|
|
||||||
// Update the fixedFluxPressure BCs to ensure flux consistency
|
|
||||||
setSnGrad<fixedFluxPressureFvPatchScalarField>
|
|
||||||
(
|
|
||||||
p_rgh.boundaryField(),
|
|
||||||
(
|
|
||||||
phiHbyA.boundaryField()
|
|
||||||
- mrfZones.relative(mesh.Sf().boundaryField() & U.boundaryField())
|
|
||||||
)/(mesh.magSf().boundaryField()*rAUf.boundaryField())
|
|
||||||
);
|
|
||||||
|
|
||||||
while (pimple.correctNonOrthogonal())
|
|
||||||
{
|
|
||||||
fvScalarMatrix p_rghEqn
|
|
||||||
(
|
|
||||||
fvm::laplacian(rAUf, p_rgh) == fvc::div(phiHbyA)
|
|
||||||
);
|
|
||||||
|
|
||||||
p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell));
|
|
||||||
|
|
||||||
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
|
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
|
||||||
{
|
|
||||||
phi = phiHbyA - p_rghEqn.flux();
|
|
||||||
|
|
||||||
U = HbyA + rAU*fvc::reconstruct((phig - p_rghEqn.flux())/rAUf);
|
|
||||||
U.correctBoundaryConditions();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "continuityErrs.H"
|
|
||||||
|
|
||||||
p == p_rgh + rho*gh;
|
|
||||||
|
|
||||||
if (p_rgh.needReference())
|
|
||||||
{
|
|
||||||
p += dimensionedScalar
|
|
||||||
(
|
|
||||||
"p",
|
|
||||||
p.dimensions(),
|
|
||||||
pRefValue - getRefCellValue(p, pRefCell)
|
|
||||||
);
|
|
||||||
p_rgh = p - rho*gh;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
{
|
|
||||||
const scalarField& V = mesh.V();
|
|
||||||
|
|
||||||
forAll(mesh.cellZones(), czi)
|
|
||||||
{
|
|
||||||
const labelList& cellLabels = mesh.cellZones()[czi];
|
|
||||||
|
|
||||||
forAllConstIter(PtrDictionary<phase>, mixture.phases(), iter)
|
|
||||||
{
|
|
||||||
const volScalarField& alpha = iter();
|
|
||||||
scalar phaseVolume = 0;
|
|
||||||
|
|
||||||
forAll(cellLabels, cli)
|
|
||||||
{
|
|
||||||
label celli = cellLabels[cli];
|
|
||||||
phaseVolume += alpha[celli]*V[celli];
|
|
||||||
}
|
|
||||||
|
|
||||||
reduce(phaseVolume, sumOp<scalar>());
|
|
||||||
|
|
||||||
Info<< alpha.name()
|
|
||||||
<< " phase volume in zone " << mesh.cellZones()[czi].name()
|
|
||||||
<< " = " << phaseVolume*1e6 << " ml " << endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -5,7 +5,10 @@ EXE_INC = \
|
||||||
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
|
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
|
||||||
-I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
|
-I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
|
||||||
-I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
|
-I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
|
-I$(LIB_SRC)/fvOptions/lnInclude \
|
||||||
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
|
-I$(LIB_SRC)/sampling/lnInclude
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-lmultiphaseInterFoam \
|
-lmultiphaseInterFoam \
|
||||||
|
|
@ -14,4 +17,7 @@ EXE_LIBS = \
|
||||||
-lincompressibleTurbulenceModel \
|
-lincompressibleTurbulenceModel \
|
||||||
-lincompressibleRASModels \
|
-lincompressibleRASModels \
|
||||||
-lincompressibleLESModels \
|
-lincompressibleLESModels \
|
||||||
-lfiniteVolume
|
-lfiniteVolume \
|
||||||
|
-lfvOptions \
|
||||||
|
-lmeshTools \
|
||||||
|
-lsampling
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,14 @@
|
||||||
fvm::ddt(rho, U)
|
fvm::ddt(rho, U)
|
||||||
+ fvm::div(mixture.rhoPhi(), U)
|
+ fvm::div(mixture.rhoPhi(), U)
|
||||||
+ turbulence->divDevRhoReff(rho, U)
|
+ turbulence->divDevRhoReff(rho, U)
|
||||||
|
==
|
||||||
|
fvOptions(rho, U)
|
||||||
);
|
);
|
||||||
|
|
||||||
UEqn.relax();
|
UEqn.relax();
|
||||||
|
|
||||||
|
fvOptions.constrain(UEqn);
|
||||||
|
|
||||||
if (pimple.momentumPredictor())
|
if (pimple.momentumPredictor())
|
||||||
{
|
{
|
||||||
solve
|
solve
|
||||||
|
|
@ -22,4 +26,6 @@
|
||||||
) * mesh.magSf()
|
) * mesh.magSf()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
fvOptions.correct(U);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -90,3 +90,5 @@
|
||||||
pRefValue - getRefCellValue(p, pRefCell)
|
pRefValue - getRefCellValue(p, pRefCell)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fv::IOoptionList fvOptions(mesh);
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|
@ -36,6 +36,7 @@ Description
|
||||||
#include "multiphaseMixture.H"
|
#include "multiphaseMixture.H"
|
||||||
#include "turbulenceModel.H"
|
#include "turbulenceModel.H"
|
||||||
#include "pimpleControl.H"
|
#include "pimpleControl.H"
|
||||||
|
#include "fvIOoptionList.H"
|
||||||
#include "fixedFluxPressureFvPatchScalarField.H"
|
#include "fixedFluxPressureFvPatchScalarField.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi)
|
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi)
|
||||||
);
|
);
|
||||||
adjustPhi(phiHbyA, U, p_rgh);
|
adjustPhi(phiHbyA, U, p_rgh);
|
||||||
|
fvOptions.makeRelative(phiHbyA);
|
||||||
|
|
||||||
surfaceScalarField phig
|
surfaceScalarField phig
|
||||||
(
|
(
|
||||||
|
|
@ -29,7 +30,7 @@
|
||||||
p_rgh.boundaryField(),
|
p_rgh.boundaryField(),
|
||||||
(
|
(
|
||||||
phiHbyA.boundaryField()
|
phiHbyA.boundaryField()
|
||||||
- (mesh.Sf().boundaryField() & U.boundaryField())
|
- fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField())
|
||||||
)/(mesh.magSf().boundaryField()*rAUf.boundaryField())
|
)/(mesh.magSf().boundaryField()*rAUf.boundaryField())
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -50,6 +51,7 @@
|
||||||
|
|
||||||
U = HbyA + rAU*fvc::reconstruct((phig - p_rghEqn.flux())/rAUf);
|
U = HbyA + rAU*fvc::reconstruct((phig - p_rghEqn.flux())/rAUf);
|
||||||
U.correctBoundaryConditions();
|
U.correctBoundaryConditions();
|
||||||
|
fvOptions.correct(U);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|
@ -1385,25 +1385,12 @@ int main(int argc, char *argv[])
|
||||||
label sz = bFaces.size();
|
label sz = bFaces.size();
|
||||||
labelList meshFaces(sz,-1);
|
labelList meshFaces(sz,-1);
|
||||||
|
|
||||||
|
// Search faces by point matching
|
||||||
//make face set and write (seperate from rest for clarity)
|
forAll(bFaces, j)
|
||||||
//internal and external Fluent boundaries
|
|
||||||
{
|
{
|
||||||
faceSet pFaceSet(pShapeMesh, patchNames[patchI], sz);
|
const face& f = bFaces[j];
|
||||||
|
label cMeshFace = findFace(pShapeMesh, f);
|
||||||
forAll(bFaces, j)
|
meshFaces[j] = cMeshFace;
|
||||||
{
|
|
||||||
const face& f = bFaces[j];
|
|
||||||
label cMeshFace = findFace(pShapeMesh, f);
|
|
||||||
meshFaces[j] = cMeshFace;
|
|
||||||
pFaceSet.insert(cMeshFace);
|
|
||||||
}
|
|
||||||
if (writeSets)
|
|
||||||
{
|
|
||||||
Info<< "Writing patch " << patchNames[patchI]
|
|
||||||
<< " of size " << sz << " to faceSet." << endl;
|
|
||||||
pFaceSet.write();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1546,6 +1533,31 @@ int main(int argc, char *argv[])
|
||||||
IOstream::defaultPrecision(max(10u, IOstream::defaultPrecision()));
|
IOstream::defaultPrecision(max(10u, IOstream::defaultPrecision()));
|
||||||
|
|
||||||
|
|
||||||
|
// Re-do face matching to write sets
|
||||||
|
if (writeSets)
|
||||||
|
{
|
||||||
|
forAll(patches, patchI)
|
||||||
|
{
|
||||||
|
const faceList& bFaces = patches[patchI];
|
||||||
|
label sz = bFaces.size();
|
||||||
|
|
||||||
|
faceSet pFaceSet(pShapeMesh, patchNames[patchI], sz);
|
||||||
|
|
||||||
|
forAll(bFaces, j)
|
||||||
|
{
|
||||||
|
const face& f = bFaces[j];
|
||||||
|
label cMeshFace = findFace(pShapeMesh, f);
|
||||||
|
pFaceSet.insert(cMeshFace);
|
||||||
|
}
|
||||||
|
Info<< "Writing patch " << patchNames[patchI]
|
||||||
|
<< " of size " << sz << " to faceSet" << endl;
|
||||||
|
|
||||||
|
pFaceSet.instance() = pShapeMesh.instance();
|
||||||
|
pFaceSet.write();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Zones
|
// Zones
|
||||||
// will write out cell zones and internal faces for those zones
|
// will write out cell zones and internal faces for those zones
|
||||||
// note: zone boundary faces are not added to face zones
|
// note: zone boundary faces are not added to face zones
|
||||||
|
|
|
||||||
|
|
@ -394,6 +394,8 @@ int main(int argc, char *argv[])
|
||||||
Info<< endl;
|
Info<< endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Info<< "End\n" << endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
# ========= |
|
# ========= |
|
||||||
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
# \\ / O peration |
|
# \\ / O peration |
|
||||||
# \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
# \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||||
# \\/ M anipulation |
|
# \\/ M anipulation |
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
# License
|
# License
|
||||||
|
|
@ -126,8 +126,8 @@ if [ "$WM_PROJECT" ]
|
||||||
then
|
then
|
||||||
|
|
||||||
for i in \
|
for i in \
|
||||||
$HOME/.WM_PROJECT/$WM_PROJECT_VERSION \
|
$HOME/.$WM_PROJECT/$WM_PROJECT_VERSION \
|
||||||
$HOME/.WM_PROJECT \
|
$HOME/.$WM_PROJECT \
|
||||||
$WM_PROJECT_DIR/etc \
|
$WM_PROJECT_DIR/etc \
|
||||||
;
|
;
|
||||||
do
|
do
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|
@ -49,10 +49,6 @@ surfaceVectorField rhoUf
|
||||||
fvc::interpolate(rho*U)
|
fvc::interpolate(rho*U)
|
||||||
);
|
);
|
||||||
|
|
||||||
{
|
|
||||||
surfaceVectorField n(mesh.Sf()/mesh.magSf());
|
|
||||||
rhoUf += n*(phi/mesh.magSf() - (n & rhoUf));
|
|
||||||
}
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|
@ -49,11 +49,6 @@ surfaceVectorField Uf
|
||||||
fvc::interpolate(U)
|
fvc::interpolate(U)
|
||||||
);
|
);
|
||||||
|
|
||||||
{
|
|
||||||
surfaceVectorField n(mesh.Sf()/mesh.magSf());
|
|
||||||
Uf += n*(phi/mesh.magSf() - (n & Uf));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ Description
|
||||||
inlet
|
inlet
|
||||||
{
|
{
|
||||||
type interstitialInletVelocity;
|
type interstitialInletVelocity;
|
||||||
inletVelocity uniform (0 0.2 0; // Non-interstitial inlet velocity
|
inletVelocity uniform (0 0.2 0);// Non-interstitial inlet velocity
|
||||||
alpha alpha.particles; // Name of the phase-fraction field
|
alpha alpha.particles; // Name of the phase-fraction field
|
||||||
value uniform (0 0 0);
|
value uniform (0 0 0);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -135,7 +135,7 @@ Foam::pointField Foam::autoSnapDriver::smoothPatchDisplacement
|
||||||
pp.localPoints(),
|
pp.localPoints(),
|
||||||
nonManifoldPoint
|
nonManifoldPoint
|
||||||
);
|
);
|
||||||
Info<< "Found " << nNonManifoldPoints << " non-mainfold point(s)."
|
Info<< "Found " << nNonManifoldPoints << " non-manifold point(s)."
|
||||||
<< endl;
|
<< endl;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ License
|
||||||
//#include "globalIndex.H"
|
//#include "globalIndex.H"
|
||||||
#include "OBJstream.H"
|
#include "OBJstream.H"
|
||||||
#include "cellSet.H"
|
#include "cellSet.H"
|
||||||
|
#include "treeDataCell.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
@ -353,7 +354,14 @@ void Foam::meshRefinement::markFeatureCellLevel
|
||||||
label tetFaceI = -1;
|
label tetFaceI = -1;
|
||||||
label tetPtI = -1;
|
label tetPtI = -1;
|
||||||
|
|
||||||
mesh_.findCellFacePt(keepPoint, cellI, tetFaceI, tetPtI);
|
|
||||||
|
// Force construction of search tree even if processor holds no
|
||||||
|
// cells
|
||||||
|
(void)mesh_.cellTree();
|
||||||
|
if (mesh_.nCells())
|
||||||
|
{
|
||||||
|
mesh_.findCellFacePt(keepPoint, cellI, tetFaceI, tetPtI);
|
||||||
|
}
|
||||||
|
|
||||||
if (cellI != -1)
|
if (cellI != -1)
|
||||||
{
|
{
|
||||||
|
|
@ -402,7 +410,8 @@ void Foam::meshRefinement::markFeatureCellLevel
|
||||||
featureMesh.points()[pointI], // endpos
|
featureMesh.points()[pointI], // endpos
|
||||||
featureLevel, // level
|
featureLevel, // level
|
||||||
featI, // featureMesh
|
featI, // featureMesh
|
||||||
pointI // end point
|
pointI, // end point
|
||||||
|
-1 // feature edge
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -446,7 +455,8 @@ void Foam::meshRefinement::markFeatureCellLevel
|
||||||
featureMesh.points()[pointI], // endpos
|
featureMesh.points()[pointI], // endpos
|
||||||
featureLevel, // level
|
featureLevel, // level
|
||||||
featI, // featureMesh
|
featI, // featureMesh
|
||||||
pointI // end point
|
pointI, // end point
|
||||||
|
-1 // feature edge
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -459,8 +469,22 @@ void Foam::meshRefinement::markFeatureCellLevel
|
||||||
// Largest refinement level of any feature passed through
|
// Largest refinement level of any feature passed through
|
||||||
maxFeatureLevel = labelList(mesh_.nCells(), -1);
|
maxFeatureLevel = labelList(mesh_.nCells(), -1);
|
||||||
|
|
||||||
|
// Whether edge has been visited.
|
||||||
|
List<PackedBoolList> featureEdgeVisited(features_.size());
|
||||||
|
|
||||||
|
forAll(features_, featI)
|
||||||
|
{
|
||||||
|
featureEdgeVisited[featI].setSize(features_[featI].edges().size());
|
||||||
|
featureEdgeVisited[featI] = 0u;
|
||||||
|
}
|
||||||
|
|
||||||
// Database to pass into trackedParticle::move
|
// Database to pass into trackedParticle::move
|
||||||
trackedParticle::trackingData td(startPointCloud, maxFeatureLevel);
|
trackedParticle::trackingData td
|
||||||
|
(
|
||||||
|
startPointCloud,
|
||||||
|
maxFeatureLevel,
|
||||||
|
featureEdgeVisited
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
// Track all particles to their end position (= starting feature point)
|
// Track all particles to their end position (= starting feature point)
|
||||||
|
|
@ -477,15 +501,10 @@ void Foam::meshRefinement::markFeatureCellLevel
|
||||||
startPointCloud.move(td, maxTrackLen);
|
startPointCloud.move(td, maxTrackLen);
|
||||||
|
|
||||||
|
|
||||||
// Reset level
|
// Reset levels
|
||||||
maxFeatureLevel = -1;
|
maxFeatureLevel = -1;
|
||||||
|
|
||||||
// Whether edge has been visited.
|
|
||||||
List<PackedBoolList> featureEdgeVisited(features_.size());
|
|
||||||
|
|
||||||
forAll(features_, featI)
|
forAll(features_, featI)
|
||||||
{
|
{
|
||||||
featureEdgeVisited[featI].setSize(features_[featI].edges().size());
|
|
||||||
featureEdgeVisited[featI] = 0u;
|
featureEdgeVisited[featI] = 0u;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -528,6 +547,7 @@ void Foam::meshRefinement::markFeatureCellLevel
|
||||||
trackedParticle* tp(new trackedParticle(startTp));
|
trackedParticle* tp(new trackedParticle(startTp));
|
||||||
tp->end() = featureMesh.points()[otherPointI];
|
tp->end() = featureMesh.points()[otherPointI];
|
||||||
tp->j() = otherPointI;
|
tp->j() = otherPointI;
|
||||||
|
tp->k() = edgeI;
|
||||||
|
|
||||||
if (debug&meshRefinement::FEATURESEEDS)
|
if (debug&meshRefinement::FEATURESEEDS)
|
||||||
{
|
{
|
||||||
|
|
@ -587,6 +607,7 @@ void Foam::meshRefinement::markFeatureCellLevel
|
||||||
|
|
||||||
tp.end() = featureMesh.points()[otherPointI];
|
tp.end() = featureMesh.points()[otherPointI];
|
||||||
tp.j() = otherPointI;
|
tp.j() = otherPointI;
|
||||||
|
tp.k() = edgeI;
|
||||||
keepParticle = true;
|
keepParticle = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|
@ -25,6 +25,7 @@ License
|
||||||
|
|
||||||
#include "trackedParticle.H"
|
#include "trackedParticle.H"
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
Foam::trackedParticle::trackedParticle
|
Foam::trackedParticle::trackedParticle
|
||||||
|
|
@ -37,14 +38,16 @@ Foam::trackedParticle::trackedParticle
|
||||||
const point& end,
|
const point& end,
|
||||||
const label level,
|
const label level,
|
||||||
const label i,
|
const label i,
|
||||||
const label j
|
const label j,
|
||||||
|
const label k
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
particle(mesh, position, cellI, tetFaceI, tetPtI),
|
particle(mesh, position, cellI, tetFaceI, tetPtI),
|
||||||
end_(end),
|
end_(end),
|
||||||
level_(level),
|
level_(level),
|
||||||
i_(i),
|
i_(i),
|
||||||
j_(j)
|
j_(j),
|
||||||
|
k_(k)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -65,13 +68,15 @@ Foam::trackedParticle::trackedParticle
|
||||||
level_ = readLabel(is);
|
level_ = readLabel(is);
|
||||||
i_ = readLabel(is);
|
i_ = readLabel(is);
|
||||||
j_ = readLabel(is);
|
j_ = readLabel(is);
|
||||||
|
k_ = readLabel(is);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
is.read
|
is.read
|
||||||
(
|
(
|
||||||
reinterpret_cast<char*>(&end_),
|
reinterpret_cast<char*>(&end_),
|
||||||
sizeof(end_) + sizeof(level_) + sizeof(i_) + sizeof(j_)
|
sizeof(end_) + sizeof(level_)
|
||||||
|
+ sizeof(i_) + sizeof(j_) + sizeof(k_)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -113,7 +118,7 @@ bool Foam::trackedParticle::move
|
||||||
scalar dt = min(dtMax, tEnd);
|
scalar dt = min(dtMax, tEnd);
|
||||||
|
|
||||||
// mark visited cell with max level.
|
// mark visited cell with max level.
|
||||||
td.maxLevel()[cell()] = max(td.maxLevel()[cell()], level_);
|
td.maxLevel_[cell()] = max(td.maxLevel_[cell()], level_);
|
||||||
|
|
||||||
dt *= trackToFace(end_, td);
|
dt *= trackToFace(end_, td);
|
||||||
|
|
||||||
|
|
@ -217,6 +222,26 @@ void Foam::trackedParticle::hitPatch
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::trackedParticle::correctAfterParallelTransfer
|
||||||
|
(
|
||||||
|
const label patchI,
|
||||||
|
trackingData& td
|
||||||
|
)
|
||||||
|
{
|
||||||
|
particle::correctAfterParallelTransfer(patchI, td);
|
||||||
|
|
||||||
|
label edgeI = k();
|
||||||
|
if (edgeI != -1)
|
||||||
|
{
|
||||||
|
label featI = i();
|
||||||
|
|
||||||
|
// Mark edge we're currently on (was set on sending processor but not
|
||||||
|
// receiving sender)
|
||||||
|
td.featureEdgeVisited_[featI].set(edgeI, 1u);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
|
||||||
|
|
||||||
Foam::Ostream& Foam::operator<<(Ostream& os, const trackedParticle& p)
|
Foam::Ostream& Foam::operator<<(Ostream& os, const trackedParticle& p)
|
||||||
|
|
@ -227,7 +252,8 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const trackedParticle& p)
|
||||||
<< token::SPACE << p.end_
|
<< token::SPACE << p.end_
|
||||||
<< token::SPACE << p.level_
|
<< token::SPACE << p.level_
|
||||||
<< token::SPACE << p.i_
|
<< token::SPACE << p.i_
|
||||||
<< token::SPACE << p.j_;
|
<< token::SPACE << p.j_
|
||||||
|
<< token::SPACE << p.k_;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -235,7 +261,8 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const trackedParticle& p)
|
||||||
os.write
|
os.write
|
||||||
(
|
(
|
||||||
reinterpret_cast<const char*>(&p.end_),
|
reinterpret_cast<const char*>(&p.end_),
|
||||||
sizeof(p.end_) + sizeof(p.level_) + sizeof(p.i_) + sizeof(p.j_)
|
sizeof(p.end_) + sizeof(p.level_)
|
||||||
|
+ sizeof(p.i_) + sizeof(p.j_) + sizeof(p.k_)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|
@ -62,12 +62,15 @@ class trackedParticle
|
||||||
//- level of this particle
|
//- level of this particle
|
||||||
label level_;
|
label level_;
|
||||||
|
|
||||||
//- passive label
|
//- passive label (used to store feature edge mesh)
|
||||||
label i_;
|
label i_;
|
||||||
|
|
||||||
//- passive label
|
//- passive label (used to store feature edge point)
|
||||||
label j_;
|
label j_;
|
||||||
|
|
||||||
|
//- passive label (used to store feature edge label)
|
||||||
|
label k_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
@ -78,26 +81,27 @@ public:
|
||||||
:
|
:
|
||||||
public particle::TrackingData<Cloud<trackedParticle> >
|
public particle::TrackingData<Cloud<trackedParticle> >
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
labelList& maxLevel_;
|
labelList& maxLevel_;
|
||||||
|
|
||||||
public:
|
List<PackedBoolList>& featureEdgeVisited_;
|
||||||
|
|
||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
trackingData(Cloud<trackedParticle>& cloud, labelList& maxLevel)
|
trackingData
|
||||||
|
(
|
||||||
|
Cloud<trackedParticle>& cloud,
|
||||||
|
labelList& maxLevel,
|
||||||
|
List<PackedBoolList>& featureEdgeVisited
|
||||||
|
)
|
||||||
:
|
:
|
||||||
particle::TrackingData<Cloud<trackedParticle> >(cloud),
|
particle::TrackingData<Cloud<trackedParticle> >(cloud),
|
||||||
maxLevel_(maxLevel)
|
maxLevel_(maxLevel),
|
||||||
|
featureEdgeVisited_(featureEdgeVisited)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
// Member functions
|
|
||||||
|
|
||||||
labelList& maxLevel()
|
|
||||||
{
|
|
||||||
return maxLevel_;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -115,7 +119,8 @@ public:
|
||||||
const point& end,
|
const point& end,
|
||||||
const label level,
|
const label level,
|
||||||
const label i,
|
const label i,
|
||||||
const label j
|
const label j,
|
||||||
|
const label k
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct from Istream
|
//- Construct from Istream
|
||||||
|
|
@ -187,6 +192,18 @@ public:
|
||||||
return j_;
|
return j_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- transported label
|
||||||
|
label k() const
|
||||||
|
{
|
||||||
|
return k_;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- transported label
|
||||||
|
label& k()
|
||||||
|
{
|
||||||
|
return k_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Tracking
|
// Tracking
|
||||||
|
|
@ -259,6 +276,10 @@ public:
|
||||||
trackingData& td
|
trackingData& td
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- Convert processor patch addressing to the global equivalents
|
||||||
|
// and set the cellI to the face-neighbour
|
||||||
|
void correctAfterParallelTransfer(const label, trackingData&);
|
||||||
|
|
||||||
|
|
||||||
// Ostream Operator
|
// Ostream Operator
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,9 @@ timeActivatedFileUpdate/timeActivatedFileUpdateFunctionObject.C
|
||||||
turbulenceFields/turbulenceFields.C
|
turbulenceFields/turbulenceFields.C
|
||||||
turbulenceFields/turbulenceFieldsFunctionObject.C
|
turbulenceFields/turbulenceFieldsFunctionObject.C
|
||||||
|
|
||||||
|
vorticity/vorticity.C
|
||||||
|
vorticity/vorticityFunctionObject.C
|
||||||
|
|
||||||
wallShearStress/wallShearStress.C
|
wallShearStress/wallShearStress.C
|
||||||
wallShearStress/wallShearStressFunctionObject.C
|
wallShearStress/wallShearStressFunctionObject.C
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 2014 OpenFOAM Foundation
|
||||||
|
\\/ 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Typedef
|
||||||
|
Foam::IOvorticity
|
||||||
|
|
||||||
|
Description
|
||||||
|
Instance of the generic IOOutputFilter for vorticity.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef IOvorticity_H
|
||||||
|
#define IOvorticity_H
|
||||||
|
|
||||||
|
#include "vorticity.H"
|
||||||
|
#include "IOOutputFilter.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
typedef IOOutputFilter<vorticity> IOvorticity;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
@ -0,0 +1,169 @@
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 2014 OpenFOAM Foundation
|
||||||
|
\\/ 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "vorticity.H"
|
||||||
|
#include "volFields.H"
|
||||||
|
#include "dictionary.H"
|
||||||
|
#include "fvcCurl.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
defineTypeNameAndDebug(vorticity, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::vorticity::vorticity
|
||||||
|
(
|
||||||
|
const word& name,
|
||||||
|
const objectRegistry& obr,
|
||||||
|
const dictionary& dict,
|
||||||
|
const bool loadFromFiles
|
||||||
|
)
|
||||||
|
:
|
||||||
|
name_(name),
|
||||||
|
obr_(obr),
|
||||||
|
active_(true),
|
||||||
|
UName_("U"),
|
||||||
|
outputName_(typeName)
|
||||||
|
{
|
||||||
|
// Check if the available mesh is an fvMesh, otherwise deactivate
|
||||||
|
if (!isA<fvMesh>(obr_))
|
||||||
|
{
|
||||||
|
active_ = false;
|
||||||
|
WarningIn
|
||||||
|
(
|
||||||
|
"vorticity::vorticity"
|
||||||
|
"("
|
||||||
|
"const word&, "
|
||||||
|
"const objectRegistry&, "
|
||||||
|
"const dictionary&, "
|
||||||
|
"const bool"
|
||||||
|
")"
|
||||||
|
) << "No fvMesh available, deactivating " << name_ << nl
|
||||||
|
<< endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
read(dict);
|
||||||
|
|
||||||
|
if (active_)
|
||||||
|
{
|
||||||
|
const fvMesh& mesh = refCast<const fvMesh>(obr_);
|
||||||
|
|
||||||
|
volVectorField* vorticityPtr
|
||||||
|
(
|
||||||
|
new volVectorField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
outputName_,
|
||||||
|
mesh.time().timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
),
|
||||||
|
mesh,
|
||||||
|
dimensionedVector("0", dimless/dimTime, vector::zero)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
mesh.objectRegistry::store(vorticityPtr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::vorticity::~vorticity()
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
void Foam::vorticity::read(const dictionary& dict)
|
||||||
|
{
|
||||||
|
if (active_)
|
||||||
|
{
|
||||||
|
UName_ = dict.lookupOrDefault<word>("UName", "U");
|
||||||
|
if (UName_ != "U")
|
||||||
|
{
|
||||||
|
outputName_ = typeName + "(" + UName_ + ")";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::vorticity::execute()
|
||||||
|
{
|
||||||
|
if (active_)
|
||||||
|
{
|
||||||
|
const volVectorField& U = obr_.lookupObject<volVectorField>(UName_);
|
||||||
|
|
||||||
|
volVectorField& vorticity =
|
||||||
|
const_cast<volVectorField&>
|
||||||
|
(
|
||||||
|
obr_.lookupObject<volVectorField>(outputName_)
|
||||||
|
);
|
||||||
|
|
||||||
|
vorticity = fvc::curl(U);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::vorticity::end()
|
||||||
|
{
|
||||||
|
if (active_)
|
||||||
|
{
|
||||||
|
execute();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::vorticity::timeSet()
|
||||||
|
{
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::vorticity::write()
|
||||||
|
{
|
||||||
|
if (active_)
|
||||||
|
{
|
||||||
|
const volVectorField& vorticity =
|
||||||
|
obr_.lookupObject<volVectorField>(outputName_);
|
||||||
|
|
||||||
|
Info<< type() << " " << name_ << " output:" << nl
|
||||||
|
<< " writing field " << vorticity.name() << nl
|
||||||
|
<< endl;
|
||||||
|
|
||||||
|
vorticity.write();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
@ -0,0 +1,152 @@
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 2014 OpenFOAM Foundation
|
||||||
|
\\/ 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Class
|
||||||
|
Foam::vorticity
|
||||||
|
|
||||||
|
Group
|
||||||
|
grpUtilitiesFunctionObjects
|
||||||
|
|
||||||
|
Description
|
||||||
|
This function object calculates the vorticity, the curl of the velocity.
|
||||||
|
|
||||||
|
SourceFiles
|
||||||
|
vorticity.C
|
||||||
|
IOvorticity.H
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef vorticity_H
|
||||||
|
#define vorticity_H
|
||||||
|
|
||||||
|
#include "volFieldsFwd.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
|
||||||
|
// Forward declaration of classes
|
||||||
|
class objectRegistry;
|
||||||
|
class dictionary;
|
||||||
|
class polyMesh;
|
||||||
|
class mapPolyMesh;
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
Class vorticity Declaration
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
class vorticity
|
||||||
|
{
|
||||||
|
// Private data
|
||||||
|
|
||||||
|
//- Name of this set of vorticity objects
|
||||||
|
word name_;
|
||||||
|
|
||||||
|
//- Reference to the database
|
||||||
|
const objectRegistry& obr_;
|
||||||
|
|
||||||
|
//- On/off switch
|
||||||
|
bool active_;
|
||||||
|
|
||||||
|
//- Name of velocity field, default is "U"
|
||||||
|
word UName_;
|
||||||
|
|
||||||
|
//- Name of vorticity field
|
||||||
|
word outputName_;
|
||||||
|
|
||||||
|
|
||||||
|
// Private Member Functions
|
||||||
|
|
||||||
|
//- Disallow default bitwise copy construct
|
||||||
|
vorticity(const vorticity&);
|
||||||
|
|
||||||
|
//- Disallow default bitwise assignment
|
||||||
|
void operator=(const vorticity&);
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
//- Runtime type information
|
||||||
|
TypeName("vorticity");
|
||||||
|
|
||||||
|
|
||||||
|
// Constructors
|
||||||
|
|
||||||
|
//- Construct for given objectRegistry and dictionary.
|
||||||
|
// Allow the possibility to load fields from files
|
||||||
|
vorticity
|
||||||
|
(
|
||||||
|
const word& name,
|
||||||
|
const objectRegistry&,
|
||||||
|
const dictionary&,
|
||||||
|
const bool loadFromFiles = false
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
//- Destructor
|
||||||
|
virtual ~vorticity();
|
||||||
|
|
||||||
|
|
||||||
|
// Member Functions
|
||||||
|
|
||||||
|
//- Return name of the set of vorticity
|
||||||
|
virtual const word& name() const
|
||||||
|
{
|
||||||
|
return name_;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Read the vorticity data
|
||||||
|
virtual void read(const dictionary&);
|
||||||
|
|
||||||
|
//- Execute, currently does nothing
|
||||||
|
virtual void execute();
|
||||||
|
|
||||||
|
//- Execute at the final time-loop, currently does nothing
|
||||||
|
virtual void end();
|
||||||
|
|
||||||
|
//- Called when time was set at the end of the Time::operator++
|
||||||
|
virtual void timeSet();
|
||||||
|
|
||||||
|
//- Calculate the vorticity and write
|
||||||
|
virtual void write();
|
||||||
|
|
||||||
|
//- Update for changes of mesh
|
||||||
|
virtual void updateMesh(const mapPolyMesh&)
|
||||||
|
{}
|
||||||
|
|
||||||
|
//- Update for changes of mesh
|
||||||
|
virtual void movePoints(const polyMesh&)
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 2014 OpenFOAM Foundation
|
||||||
|
\\/ 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "vorticityFunctionObject.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
defineNamedTemplateTypeNameAndDebug(vorticityFunctionObject, 0);
|
||||||
|
|
||||||
|
addToRunTimeSelectionTable
|
||||||
|
(
|
||||||
|
functionObject,
|
||||||
|
vorticityFunctionObject,
|
||||||
|
dictionary
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 2014 OpenFOAM Foundation
|
||||||
|
\\/ 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Typedef
|
||||||
|
Foam::vorticityFunctionObject
|
||||||
|
|
||||||
|
Description
|
||||||
|
FunctionObject wrapper around vorticity to allow it to be created
|
||||||
|
via the functions entry within controlDict.
|
||||||
|
|
||||||
|
SourceFiles
|
||||||
|
vorticityFunctionObject.C
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef vorticityFunctionObject_H
|
||||||
|
#define vorticityFunctionObject_H
|
||||||
|
|
||||||
|
#include "vorticity.H"
|
||||||
|
#include "OutputFilterFunctionObject.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
typedef OutputFilterFunctionObject<vorticity> vorticityFunctionObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|
@ -92,7 +92,7 @@ void epsilonLowReWallFunctionFvPatchScalarField::calculate
|
||||||
{
|
{
|
||||||
label cellI = patch.faceCells()[faceI];
|
label cellI = patch.faceCells()[faceI];
|
||||||
|
|
||||||
scalar yPlus = Cmu25*sqrt(k[cellI])*y[faceI]/muw[faceI]/rhow[faceI];
|
scalar yPlus = Cmu25*sqrt(k[cellI])*y[faceI]/(muw[faceI]/rhow[faceI]);
|
||||||
|
|
||||||
scalar w = cornerWeights[faceI];
|
scalar w = cornerWeights[faceI];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|
@ -198,7 +198,7 @@ void fWallFunctionFvPatchScalarField::updateCoeffs()
|
||||||
|
|
||||||
scalar uTau = Cmu25*sqrt(k[faceCellI]);
|
scalar uTau = Cmu25*sqrt(k[faceCellI]);
|
||||||
|
|
||||||
scalar yPlus = uTau*y[faceI]/muw[faceI]/rhow[faceI];
|
scalar yPlus = uTau*y[faceI]/(muw[faceI]/rhow[faceI]);
|
||||||
|
|
||||||
if (yPlus > yPlusLam_)
|
if (yPlus > yPlusLam_)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|
@ -195,7 +195,7 @@ void kLowReWallFunctionFvPatchScalarField::updateCoeffs()
|
||||||
|
|
||||||
scalar uTau = Cmu25*sqrt(k[faceCellI]);
|
scalar uTau = Cmu25*sqrt(k[faceCellI]);
|
||||||
|
|
||||||
scalar yPlus = uTau*y[faceI]/muw[faceI]/rhow[faceI];
|
scalar yPlus = uTau*y[faceI]/(muw[faceI]/rhow[faceI]);
|
||||||
|
|
||||||
if (yPlus > yPlusLam_)
|
if (yPlus > yPlusLam_)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
|
@ -190,7 +190,7 @@ void v2WallFunctionFvPatchScalarField::updateCoeffs()
|
||||||
|
|
||||||
scalar uTau = Cmu25*sqrt(k[faceCellI]);
|
scalar uTau = Cmu25*sqrt(k[faceCellI]);
|
||||||
|
|
||||||
scalar yPlus = uTau*y[faceI]/muw[faceI]/rhow[faceI];
|
scalar yPlus = uTau*y[faceI]/(muw[faceI]/rhow[faceI]);
|
||||||
|
|
||||||
if (yPlus > yPlusLam_)
|
if (yPlus > yPlusLam_)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -20,12 +20,14 @@ FoamFile
|
||||||
rotor
|
rotor
|
||||||
{
|
{
|
||||||
type wall;
|
type wall;
|
||||||
|
inGroups 1(wall);
|
||||||
nFaces 192;
|
nFaces 192;
|
||||||
startFace 5952;
|
startFace 5952;
|
||||||
}
|
}
|
||||||
stator
|
stator
|
||||||
{
|
{
|
||||||
type wall;
|
type wall;
|
||||||
|
inGroups 1(wall);
|
||||||
nFaces 192;
|
nFaces 192;
|
||||||
startFace 6144;
|
startFace 6144;
|
||||||
}
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -15,7 +15,7 @@ FoamFile
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
application MRFMultiphaseInterFoam;
|
application multiphaseInterFoam;
|
||||||
|
|
||||||
startFrom startTime;
|
startFrom startTime;
|
||||||
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -10,22 +10,28 @@ FoamFile
|
||||||
version 2.0;
|
version 2.0;
|
||||||
format ascii;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "constant";
|
location "system";
|
||||||
object MRFProperties;
|
object fvOptions;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
zone1
|
MRF1
|
||||||
{
|
{
|
||||||
cellZone rotor;
|
type MRFSource;
|
||||||
active yes;
|
active yes;
|
||||||
|
selectionMode cellZone;
|
||||||
|
cellZone rotor;
|
||||||
|
|
||||||
// Fixed patches (by default they 'move' with the MRF zone)
|
MRFSourceCoeffs
|
||||||
nonRotatingPatches ();
|
{
|
||||||
|
// Fixed patches (by default they 'move' with the MRF zone)
|
||||||
|
nonRotatingPatches ();
|
||||||
|
|
||||||
origin (0 0 0);
|
origin (0 0 0);
|
||||||
axis (0 0 1);
|
axis (0 0 1);
|
||||||
omega constant 6.2831853;
|
omega constant 6.2831853;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: 2.3.0 |
|
| \\ / O peration | Version: 2.3.x |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
Loading…
Add table
Reference in a new issue