Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev

This commit is contained in:
mattijs
2011-04-22 10:59:38 +01:00
90 changed files with 2291 additions and 2332 deletions

View File

@ -4,4 +4,3 @@ scalar maxAcousticCo
(
readScalar(runTime.controlDict().lookup("maxAcousticCo"))
);

View File

@ -340,7 +340,7 @@ endif
# ~~~~~~~~~~~~~~
set boost_version=boost_1_45_0
set cgal_version=CGAL-3.7
set cgal_version=CGAL-3.8
setenv BOOST_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$boost_version
setenv CGAL_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cgal_version

View File

@ -358,7 +358,7 @@ fi
# ~~~~~~~~~~~~~~
boost_version=boost_1_45_0
cgal_version=CGAL-3.7
cgal_version=CGAL-3.8
export BOOST_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$boost_version
export CGAL_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cgal_version

View File

@ -137,7 +137,7 @@ Foam::pimpleControl::pimpleControl(fvMesh& mesh)
{
Info<< " field " << residualControl_[i].name << token::TAB
<< ": relTol " << residualControl_[i].relTol
<< ", absTol " << residualControl_[i].absTol
<< ", tolerance " << residualControl_[i].absTol
<< nl;
}
Info<< endl;

View File

@ -68,7 +68,7 @@ bool Foam::simpleControl::criteriaSatisfied()
{
Info<< algorithmName_ << " solution statistics:" << endl;
Info<< " " << variableName << ": abs tol = " << residual
Info<< " " << variableName << ": tolerance = " << residual
<< " (" << residualControl_[fieldI].absTol << ")"
<< endl;
}
@ -96,7 +96,7 @@ Foam::simpleControl::simpleControl(fvMesh& mesh)
forAll(residualControl_, i)
{
Info<< " field " << residualControl_[i].name << token::TAB
<< " absTol " << residualControl_[i].absTol
<< " tolerance " << residualControl_[i].absTol
<< nl;
}
Info<< endl;

View File

@ -68,7 +68,7 @@ void Foam::solutionControl::read(const bool absTolOnly)
if (iter().isDict())
{
const dictionary& fieldDict(iter().dict());
fd.absTol = readScalar(fieldDict.lookup("absTol"));
fd.absTol = readScalar(fieldDict.lookup("tolerance"));
fd.relTol = readScalar(fieldDict.lookup("relTol"));
fd.initialResidual = 0.0;
}

View File

@ -367,7 +367,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
d0,
U0,
rho0,
0.5*(mass0 + mass1),
mass0,
Su,
dUTrans,
Spu
@ -384,16 +384,18 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
{
scalar dm = np0*dMassGas[i];
label gid = composition.localToGlobalCarrierId(GAS, i);
scalar hs = composition.carrier().Hs(gid, 0.5*(T0 + T1));
scalar hs = composition.carrier().Hs(gid, T0);
td.cloud().rhoTrans(gid)[cellI] += dm;
td.cloud().UTrans()[cellI] += dm*U0;
td.cloud().hsTrans()[cellI] += dm*hs;
}
forAll(YLiquid_, i)
{
scalar dm = np0*dMassLiquid[i];
label gid = composition.localToGlobalCarrierId(LIQ, i);
scalar hs = composition.carrier().Hs(gid, 0.5*(T0 + T1));
scalar hs = composition.carrier().Hs(gid, T0);
td.cloud().rhoTrans(gid)[cellI] += dm;
td.cloud().UTrans()[cellI] += dm*U0;
td.cloud().hsTrans()[cellI] += dm*hs;
}
/*
@ -402,16 +404,18 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
{
scalar dm = np0*dMassSolid[i];
label gid = composition.localToGlobalCarrierId(SLD, i);
scalar hs = composition.carrier().Hs(gid, 0.5*(T0 + T1));
scalar hs = composition.carrier().Hs(gid, T0);
td.cloud().rhoTrans(gid)[cellI] += dm;
td.cloud().UTrans()[cellI] += dm*U0;
td.cloud().hsTrans()[cellI] += dm*hs;
}
*/
forAll(dMassSRCarrier, i)
{
scalar dm = np0*dMassSRCarrier[i];
scalar hs = composition.carrier().Hs(i, 0.5*(T0 + T1));
scalar hs = composition.carrier().Hs(i, T0);
td.cloud().rhoTrans(i)[cellI] += dm;
td.cloud().UTrans()[cellI] += dm*U0;
td.cloud().hsTrans()[cellI] += dm*hs;
}

View File

@ -389,7 +389,7 @@ void Foam::ReactingParcel<ParcelType>::calc
d0,
U0,
rho0,
0.5*(mass0 + mass1),
mass0,
Su,
dUTrans,
Spu
@ -405,9 +405,10 @@ void Foam::ReactingParcel<ParcelType>::calc
{
scalar dm = np0*dMass[i];
label gid = composition.localToGlobalCarrierId(0, i);
scalar hs = composition.carrier().Hs(gid, 0.5*(T0 + T1));
scalar hs = composition.carrier().Hs(gid, T0);
td.cloud().rhoTrans(gid)[cellI] += dm;
td.cloud().UTrans()[cellI] += dm*U0;
td.cloud().hsTrans()[cellI] += dm*hs;
}

View File

@ -107,7 +107,7 @@ protected:
tmp<volScalarField> calcInvR1(const volVectorField& U) const;
//- Calculate the cosine of the angle between gravity vector and
// cell out flow direction
// cell out flow direction
tmp<scalarField> calcCosAngle(const surfaceScalarField& phi) const;

View File

@ -91,7 +91,7 @@ void phaseChangeModel::correct
);
latestMassPC_ = sum(dMass.internalField());
totalMassPC_ += latestMassPC_;
totalMassPC_ += latestMassPC_;
availableMass -= dMass;
dMass.correctBoundaryConditions();

View File

@ -28,7 +28,9 @@ License
#include "IOmanip.H"
// For 'nearInfo' helper class only
#include "directMappedPatchBase.H"
#include "meshSearch.H"
//#include "meshSearch.H"
#include "treeBoundBox.H"
#include "treeDataFace.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -41,27 +43,116 @@ namespace Foam
void Foam::patchProbes::findElements(const fvMesh& mesh)
{
elementList_.clear();
elementList_.setSize(size());
const polyBoundaryMesh& bm = mesh.boundaryMesh();
label patchI = bm.findPatchID(patchName_);
if (patchI == -1)
{
FatalErrorIn
(
" Foam::patchProbes::findElements(const fvMesh&)"
) << " Unknown patch name "
<< patchName_ << endl
<< exit(FatalError);
}
// All the info for nearest. Construct to miss
List<directMappedPatchBase::nearInfo> nearest(this->size());
// Octree based search engine
meshSearch meshSearchEngine(mesh, false);
const polyPatch& pp = bm[patchI];
forAll(*this, probeI)
if (pp.size() > 0)
{
const vector& sample = operator[](probeI);
label faceI = meshSearchEngine.findNearestBoundaryFace(sample);
const point& fc = mesh.faceCentres()[faceI];
nearest[probeI].first() = pointIndexHit
labelList bndFaces(pp.size());
forAll(bndFaces, i)
{
bndFaces[i] = pp.start() + i;
}
treeBoundBox overallBb(pp.points());
Random rndGen(123456);
overallBb = overallBb.extend(rndGen, 1E-4);
overallBb.min() -= point(ROOTVSMALL, ROOTVSMALL, ROOTVSMALL);
overallBb.max() += point(ROOTVSMALL, ROOTVSMALL, ROOTVSMALL);
const indexedOctree<treeDataFace> boundaryTree
(
true,
fc,
faceI
treeDataFace // all information needed to search faces
(
false, // do not cache bb
mesh,
bndFaces // patch faces only
),
overallBb, // overall search domain
8, // maxLevel
10, // leafsize
3.0 // duplicity
);
nearest[probeI].second().first() = magSqr(fc-sample);
nearest[probeI].second().second() = Pstream::myProcNo();
if (elementList_.empty())
{
elementList_.setSize(probeLocations().size());
forAll(probeLocations(), probeI)
{
const point sample = probeLocations()[probeI];
scalar span = boundaryTree.bb().mag();
pointIndexHit info = boundaryTree.findNearest
(
sample,
Foam::sqr(span)
);
if (!info.hit())
{
info = boundaryTree.findNearest
(
sample,
Foam::sqr(GREAT)
);
}
label faceI = boundaryTree.shapes().faceLabels()[info.index()];
const label patchi = bm.whichPatch(faceI);
if (isA<emptyPolyPatch>(bm[patchi]))
{
WarningIn
(
" Foam::patchProbes::findElements(const fvMesh&)"
)
<< " The sample point: " << sample
<< " belongs to " << patchi
<< " which is an empty patch. This is not permitted. "
<< " This sample will not be included "
<< endl;
}
else
{
const point& fc = mesh.faceCentres()[faceI];
directMappedPatchBase::nearInfo sampleInfo;
sampleInfo.first() = pointIndexHit
(
true,
fc,
faceI
);
sampleInfo.second().first() = magSqr(fc-sample);
sampleInfo.second().second() = Pstream::myProcNo();
nearest[probeI]= sampleInfo;
}
}
}
}
@ -93,6 +184,11 @@ void Foam::patchProbes::findElements(const fvMesh& mesh)
localI = nearest[sampleI].first().index();
}
if (elementList_.empty())
{
elementList_.setSize(probeLocations().size());
}
elementList_[sampleI] = localI;
}
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -58,6 +58,11 @@ class patchProbes
:
public probes
{
// Private data
//- Patch name
word patchName_;
// Private Member Functions

View File

@ -221,6 +221,10 @@ updateCoeffs()
+ emissivity()()[faceI]*physicoChemical::sigma.value()
* pow4(Tp[faceI])
)/pi;
// Emmited heat flux from this ray direction
ray.Qem().boundaryField()[patchI][faceI] =
refValue()[faceI]*(n[faceI] & ray.dAve());
}
else
{
@ -228,6 +232,10 @@ updateCoeffs()
valueFraction()[faceI] = 0.0;
refGrad()[faceI] = 0.0;
refValue()[faceI] = 0.0; //not used
// Incident heat flux on this ray direction
ray.Qin().boundaryField()[patchI][faceI] =
Iw[faceI]*(n[faceI] & ray.dAve());
}
}

View File

@ -82,6 +82,32 @@ Foam::radiation::fvDOM::fvDOM(const volScalarField& T)
mesh_,
dimensionedScalar("Qr", dimMass/pow3(dimTime), 0.0)
),
Qem_
(
IOobject
(
"Qem",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("Qem", dimMass/pow3(dimTime), 0.0)
),
Qin_
(
IOobject
(
"Qin",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("Qin", dimMass/pow3(dimTime), 0.0)
),
a_
(
IOobject
@ -366,13 +392,16 @@ void Foam::radiation::fvDOM::updateG()
{
G_ = dimensionedScalar("zero",dimMass/pow3(dimTime), 0.0);
Qr_ = dimensionedScalar("zero",dimMass/pow3(dimTime), 0.0);
Qem_ = dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0);
Qin_ = dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0);
forAll(IRay_, rayI)
{
IRay_[rayI].addIntensity();
G_ += IRay_[rayI].I()*IRay_[rayI].omega();
//Qr_ += IRay_[rayI].Qr();
Qr_.boundaryField() += IRay_[rayI].Qr().boundaryField();
Qem_.boundaryField() += IRay_[rayI].Qem().boundaryField();
Qin_.boundaryField() += IRay_[rayI].Qin().boundaryField();
}
}

View File

@ -83,6 +83,12 @@ class fvDOM
//- Total radiative heat flux [W/m2]
volScalarField Qr_;
//- Emmited radiative heat flux [W/m2]
volScalarField Qem_;
//- Incidet radiative heat flux [W/m2]
volScalarField Qin_;
//- Total absorption coefficient [1/m]
volScalarField a_;
@ -213,6 +219,12 @@ public:
//- Const access to total radiative heat flux field
inline const volScalarField& Qr() const;
//- Const access to incident radiative heat flux field
inline const volScalarField& Qin() const;
//- Const access to emitted radiative heat flux field
inline const volScalarField& Qem() const;
//- Const access to black body
inline const blackBodyEmission& blackBody() const;
};

View File

@ -91,6 +91,16 @@ inline const Foam::volScalarField& Foam::radiation::fvDOM::Qr() const
return Qr_;
}
inline const Foam::volScalarField& Foam::radiation::fvDOM::Qin() const
{
return Qin_;
}
inline const Foam::volScalarField& Foam::radiation::fvDOM::Qem() const
{
return Qem_;
}
inline const Foam::radiation::blackBodyEmission&
Foam::radiation::fvDOM::blackBody() const

View File

@ -81,6 +81,32 @@ Foam::radiation::radiativeIntensityRay::radiativeIntensityRay
mesh_,
dimensionedScalar("Qr", dimMass/pow3(dimTime), 0.0)
),
Qin_
(
IOobject
(
"Qin" + name(rayId),
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("Qin", dimMass/pow3(dimTime), 0.0)
),
Qem_
(
IOobject
(
"Qem" + name(rayId),
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("Qem", dimMass/pow3(dimTime), 0.0)
),
d_(vector::zero),
dAve_(vector::zero),
theta_(theta),

View File

@ -81,6 +81,12 @@ private:
//- Total radiative heat flux on boundary
volScalarField Qr_;
//- Incident radiative heat flux on boundary
volScalarField Qin_;
//- Emitted radiative heat flux on boundary
volScalarField Qem_;
//- Direction
vector d_;
@ -171,6 +177,18 @@ public:
//- Return non-const access to the boundary heat flux
inline volScalarField& Qr();
//- Return non-const access to the boundary incident heat flux
inline volScalarField& Qin();
//- Return non-const access to the boundary emmited heat flux
inline volScalarField& Qem();
//- Return const access to the boundary incident heat flux
inline const volScalarField& Qin() const;
//- Return const access to the boundary emmited heat flux
inline const volScalarField& Qem() const;
//- Return direction
inline const vector& d() const;

View File

@ -42,6 +42,31 @@ inline Foam::volScalarField& Foam::radiation::radiativeIntensityRay::Qr()
return Qr_;
}
inline const Foam::volScalarField& Foam::radiation::
radiativeIntensityRay::Qin() const
{
return Qin_;
}
inline Foam::volScalarField& Foam::radiation::radiativeIntensityRay::Qin()
{
return Qin_;
}
inline const Foam::volScalarField& Foam::radiation::
radiativeIntensityRay::Qem() const
{
return Qem_;
}
inline Foam::volScalarField& Foam::radiation::radiativeIntensityRay::Qem()
{
return Qem_;
}
inline const Foam::vector& Foam::radiation::radiativeIntensityRay::d() const
{

View File

@ -15,7 +15,7 @@ oneEqEddy/oneEqEddy.C
dynOneEqEddy/dynOneEqEddy.C
locDynOneEqEddy/locDynOneEqEddy.C
Smagorinsky/Smagorinsky.C
dynSmagorinsky/dynSmagorinsky.C
homogeneousDynSmagorinsky/homogeneousDynSmagorinsky.C
LRRDiffStress/LRRDiffStress.C
DeardorffDiffStress/DeardorffDiffStress.C
spectEddyVisc/spectEddyVisc.C
@ -23,7 +23,6 @@ dynLagrangian/dynLagrangian.C
scaleSimilarity/scaleSimilarity.C
mixedSmagorinsky/mixedSmagorinsky.C
dynMixedSmagorinsky/dynMixedSmagorinsky.C
/*Smagorinsky2/Smagorinsky2.C*/

View File

@ -1,143 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 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 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 "dynMixedSmagorinsky.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace incompressible
{
namespace LESModels
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(dynMixedSmagorinsky, 0);
addToRunTimeSelectionTable(LESModel, dynMixedSmagorinsky, dictionary);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
dynMixedSmagorinsky::dynMixedSmagorinsky
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(modelName, U, phi, transport, turbulenceModelName),
scaleSimilarity(U, phi, transport),
dynSmagorinsky(U, phi, transport)
{
printCoeffs();
}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<volScalarField> dynMixedSmagorinsky::k() const
{
return
(
scaleSimilarity::k()
+ dynSmagorinsky::k()
);
}
tmp<volScalarField> dynMixedSmagorinsky::epsilon() const
{
return
(
scaleSimilarity::epsilon()
+ dynSmagorinsky::epsilon()
);
}
tmp<volSymmTensorField> dynMixedSmagorinsky::B() const
{
return
(
scaleSimilarity::B()
+ dynSmagorinsky::B()
);
}
tmp<volSymmTensorField> dynMixedSmagorinsky::devBeff() const
{
return
(
scaleSimilarity::devBeff()
+ dynSmagorinsky::devBeff()
);
}
tmp<fvVectorMatrix> dynMixedSmagorinsky::divDevBeff(volVectorField& U) const
{
return
(
scaleSimilarity::divDevBeff(U)
+ dynSmagorinsky::divDevBeff(U)
);
}
void dynMixedSmagorinsky::correct(const tmp<volTensorField>& gradU)
{
scaleSimilarity::correct(gradU);
dynSmagorinsky::correct(gradU());
}
bool dynMixedSmagorinsky::read()
{
if (LESModel::read())
{
scaleSimilarity::read();
dynSmagorinsky::read();
return true;
}
else
{
return false;
}
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace LESModels
} // namespace incompressible
} // End namespace Foam
// ************************************************************************* //

View File

@ -1,150 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2011 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 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::incompressible::LESModels::dynMixedSmagorinsky
Description
The Mixed Isochoric Smagorinsky Model for incompressible flows.
The mixed model is a linear combination of an eddy viscosity model
with a scale similarity model.
\verbatim
B = (L + C) + R = (F(v*v) - F(v)*F(v)) + R
\endverbatim
The algebraic eddy viscosity SGS model is founded on the assumption
that local equilibrium prevails, hence
\verbatim
R = 2/3*rho*k*I - 2*nuEff*dev(D)
where
k = cI*delta^2*||D||^2
nuEff = ck*sqrt(k)*delta + nu
\endverbatim
The Leonard and cross contributions are incorporated
by adding,
\verbatim
+ div(((filter(U*U) - filter(U)*filter(U)) -
0.333*I*tr(filter(U*U) - filter(U)*filter(U))))
+ div((filter(U*epsilon) - filter(U)*filter(epsilon)))
\endverbatim
to the rhs. of the equations. This version implements filtering to
evaluate the coefficients in the model.
SourceFiles
dynMixedSmagorinsky.C
\*---------------------------------------------------------------------------*/
#ifndef dynMixedSmagorinsky_H
#define dynMixedSmagorinsky_H
#include "dynSmagorinsky.H"
#include "scaleSimilarity.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace incompressible
{
namespace LESModels
{
/*---------------------------------------------------------------------------*\
Class dynMixedSmagorinsky Declaration
\*---------------------------------------------------------------------------*/
class dynMixedSmagorinsky
:
public scaleSimilarity,
public dynSmagorinsky
{
// Private Member Functions
// Disallow default bitwise copy construct and assignment
dynMixedSmagorinsky(const dynMixedSmagorinsky&);
dynMixedSmagorinsky& operator=(const dynMixedSmagorinsky&);
public:
//- Runtime type information
TypeName("dynMixedSmagorinsky");
// Constructors
//- Constructors from components
dynMixedSmagorinsky
(
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);
//- Destructor
~dynMixedSmagorinsky()
{}
// Member Functions
//- Return SGS kinetic energy
tmp<volScalarField> k() const;
//- Return sub-grid disipation rate
tmp<volScalarField> epsilon() const;
//- Return the sub-grid stress tensor.
tmp<volSymmTensorField> B() const;
//- Return the effective sub-grid turbulence stress tensor
// including the laminar stress
tmp<volSymmTensorField> devBeff() const;
//- Returns div(B).
// This is the additional term due to the filtering of the NSE.
tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const;
//- Correct Eddy-Viscosity and related properties
void correct(const tmp<volTensorField>& gradU);
//- Read LESProperties dictionary
bool read();
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace LESModels
} // End namespace incompressible
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -23,7 +23,7 @@ License
\*---------------------------------------------------------------------------*/
#include "dynSmagorinsky.H"
#include "homogeneousDynSmagorinsky.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -37,19 +37,25 @@ namespace LESModels
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(dynSmagorinsky, 0);
addToRunTimeSelectionTable(LESModel, dynSmagorinsky, dictionary);
defineTypeNameAndDebug(homogeneousDynSmagorinsky, 0);
addToRunTimeSelectionTable(LESModel, homogeneousDynSmagorinsky, dictionary);
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
void dynSmagorinsky::updateSubGridScaleFields(const volSymmTensorField& D)
void homogeneousDynSmagorinsky::updateSubGridScaleFields
(
const volSymmTensorField& D
)
{
nuSgs_ = cD(D)*sqr(delta())*sqrt(magSqr(D));
nuSgs_.correctBoundaryConditions();
}
dimensionedScalar dynSmagorinsky::cD(const volSymmTensorField& D) const
dimensionedScalar homogeneousDynSmagorinsky::cD
(
const volSymmTensorField& D
) const
{
const volSymmTensorField MM
(
@ -72,7 +78,10 @@ dimensionedScalar dynSmagorinsky::cD(const volSymmTensorField& D) const
}
dimensionedScalar dynSmagorinsky::cI(const volSymmTensorField& D) const
dimensionedScalar homogeneousDynSmagorinsky::cI
(
const volSymmTensorField& D
) const
{
const volScalarField mm
(
@ -97,7 +106,7 @@ dimensionedScalar dynSmagorinsky::cI(const volSymmTensorField& D) const
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
dynSmagorinsky::dynSmagorinsky
homogeneousDynSmagorinsky::homogeneousDynSmagorinsky
(
const volVectorField& U,
const surfaceScalarField& phi,
@ -135,7 +144,7 @@ dynSmagorinsky::dynSmagorinsky
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void dynSmagorinsky::correct(const tmp<volTensorField>& gradU)
void homogeneousDynSmagorinsky::correct(const tmp<volTensorField>& gradU)
{
LESModel::correct(gradU);
@ -148,7 +157,7 @@ void dynSmagorinsky::correct(const tmp<volTensorField>& gradU)
}
bool dynSmagorinsky::read()
bool homogeneousDynSmagorinsky::read()
{
if (GenEddyVisc::read())
{

View File

@ -22,10 +22,11 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::incompressible::LESModels::dynSmagorinsky
Foam::incompressible::LESModels::homogeneousDynSmagorinsky
Description
The Isochoric dynamic Smagorinsky Model for incompressible flows.
The Isochoric homogeneous dynamic Smagorinsky Model for
incompressible flows.
Algebraic eddy viscosity SGS model founded on the assumption that
local equilibrium prevails.
@ -55,15 +56,18 @@ Description
m = delta^2*(4*||F(D)||^2 - F(||D||^2))
L = dev(F(U*U) - F(U)*F(U))
M = delta^2*(F(||D||*dev(D)) - 4*||F(D)||*F(dev(D)))
The averaging <...> is over the whole domain, i.e. homogeneous turbulence
is assumed
\endverbatim
SourceFiles
dynSmagorinsky.C
homogeneousDynSmagorinsky.C
\*---------------------------------------------------------------------------*/
#ifndef dynSmagorinsky_H
#define dynSmagorinsky_H
#ifndef homogeneousDynSmagorinsky_H
#define homogeneousDynSmagorinsky_H
#include "Smagorinsky.H"
#include "LESfilter.H"
@ -78,10 +82,10 @@ namespace LESModels
{
/*---------------------------------------------------------------------------*\
Class dynSmagorinsky Declaration
Class homogeneousDynSmagorinsky Declaration
\*---------------------------------------------------------------------------*/
class dynSmagorinsky
class homogeneousDynSmagorinsky
:
public GenEddyVisc
{
@ -103,19 +107,19 @@ class dynSmagorinsky
dimensionedScalar cI(const volSymmTensorField& D) const;
// Disallow default bitwise copy construct and assignment
dynSmagorinsky(const dynSmagorinsky&);
dynSmagorinsky& operator=(const dynSmagorinsky&);
homogeneousDynSmagorinsky(const homogeneousDynSmagorinsky&);
homogeneousDynSmagorinsky& operator=(const homogeneousDynSmagorinsky&);
public:
//- Runtime type information
TypeName("dynSmagorinsky");
TypeName("homogeneousDynSmagorinsky");
// Constructors
//- Construct from components
dynSmagorinsky
homogeneousDynSmagorinsky
(
const volVectorField& U,
const surfaceScalarField& phi,
@ -126,7 +130,7 @@ public:
//- Destructor
virtual ~dynSmagorinsky()
virtual ~homogeneousDynSmagorinsky()
{}

View File

@ -8063,6 +8063,7 @@ boundaryField
blockedFaces
{
type zeroGradient;
value uniform 0;
}
baffleWall
{

View File

@ -8063,6 +8063,7 @@ boundaryField
blockedFaces
{
type zeroGradient;
value uniform ( 0 0 0 0 0 0 );
}
baffleWall
{

View File

@ -8063,6 +8063,7 @@ boundaryField
blockedFaces
{
type zeroGradient;
value uniform ( 0 0 0 0 0 0 );
}
baffleWall
{

View File

@ -8063,6 +8063,7 @@ boundaryField
blockedFaces
{
type zeroGradient;
value uniform ( 0 0 0 0 0 0 );
}
baffleWall
{

View File

@ -8063,6 +8063,7 @@ boundaryField
blockedFaces
{
type zeroGradient;
value uniform 0;
}
baffleWall
{

View File

@ -8063,6 +8063,7 @@ boundaryField
blockedFaces
{
type zeroGradient;
value uniform 0;
}
baffleWall
{

View File

@ -34,6 +34,7 @@ boundaryField
blockedFaces
{
type zeroGradient;
value uniform 300;
}
baffleWall
{

View File

@ -34,6 +34,7 @@ boundaryField
blockedFaces
{
type zeroGradient;
value uniform 300;
}
baffleWall
{

View File

@ -34,6 +34,7 @@ boundaryField
blockedFaces
{
type zeroGradient;
value uniform 1;
}
baffleWall
{

View File

@ -34,6 +34,7 @@ boundaryField
blockedFaces
{
type zeroGradient;
value uniform 1;
}
baffleWall
{

View File

@ -8063,6 +8063,7 @@ boundaryField
blockedFaces
{
type zeroGradient;
value uniform 0;
}
baffleWall
{

View File

@ -1,8 +1,5 @@
PDR test case
The folder 0.org contains the initial fields for the original
blockMesh.
Step to introduce the PDR fields:
1) Create zero-size patches for wall or/and coupled baffles in

View File

@ -36,7 +36,6 @@ dictionaryReplacement
{
type cyclic;
}
}
}
@ -109,8 +108,8 @@ dictionaryReplacement
}
baffleWall
{
type compressible::kqRWallFunction;
value uniform 1.5;
type compressible::kqRWallFunction;
value uniform 1.5;
}
baffleCyclic_half0
{
@ -153,6 +152,7 @@ dictionaryReplacement
blockedFaces
{
type zeroGradient;
value uniform 1;
}
baffleWall
{
@ -177,6 +177,7 @@ dictionaryReplacement
blockedFaces
{
type zeroGradient;
value uniform 300;
}
baffleWall
{
@ -201,6 +202,7 @@ dictionaryReplacement
blockedFaces
{
type zeroGradient;
value uniform 300;
}
baffleWall
{
@ -225,6 +227,7 @@ dictionaryReplacement
blockedFaces
{
type zeroGradient;
value uniform 1;
}
baffleWall
{
@ -273,8 +276,9 @@ dictionaryReplacement
blockedFaces
{
type zeroGradient;
value uniform 0.0;
}
baffleWall
baffleWall
{
type zeroGradient;
value uniform 0.0;
@ -296,6 +300,7 @@ dictionaryReplacement
blockedFaces
{
type zeroGradient;
value uniform (0 0 0 0 0 0);
}
baffleWall
{
@ -319,6 +324,7 @@ dictionaryReplacement
blockedFaces
{
type zeroGradient;
value uniform 0;
}
baffleWall
{
@ -342,6 +348,7 @@ dictionaryReplacement
blockedFaces
{
type zeroGradient;
value uniform (0 0 0 0 0 0);
}
baffleWall
{
@ -365,6 +372,7 @@ dictionaryReplacement
blockedFaces
{
type zeroGradient;
value uniform (0 0 0 0 0 0);
}
baffleWall
{
@ -388,6 +396,7 @@ dictionaryReplacement
blockedFaces
{
type zeroGradient;
value uniform 0;
}
baffleWall
{
@ -411,6 +420,7 @@ dictionaryReplacement
blockedFaces
{
type zeroGradient;
value uniform (0 0 0 0 0 0);
}
baffleWall
{
@ -434,6 +444,7 @@ dictionaryReplacement
blockedFaces
{
type zeroGradient;
value uniform 0;
}
baffleWall
{

View File

@ -67,6 +67,7 @@ solvers
PIMPLE
{
nCorrectors 2;
nOuterCorrectors 1;
nNonOrthogonalCorrectors 0;
momentumPredictor true;
}

View File

@ -76,8 +76,8 @@ ignitionSites
location (0.005 -0.02 0);
diameter 0.003;
start 0;
duration 0.05;
strength 20;
duration 0.1;
strength 100;
}
);

View File

@ -23,13 +23,13 @@ startTime 0;
stopAt endTime;
endTime 0.5;
endTime 3.0;//0.5;
deltaT 5e-06;
writeControl adjustableRunTime;
writeInterval 0.01;
writeInterval 0.1;
purgeWrite 0;

View File

@ -36,7 +36,7 @@ solvers
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
tolerance 1e-06;
relTol 0.1;
}

View File

@ -17,7 +17,7 @@ FoamFile
psiChemistryModel ODEChemistryModel<gasThermoPhysics>;
chemistry off;
chemistry on;
chemistrySolver ode;

View File

@ -19,7 +19,7 @@ Cmix Cmix [ 0 0 0 0 0 0 0 ] 1;
ignitionProperties1
{
ignite off;
ignite on;
ignitionPoint ignitionPoint [ 0 1 0 0 0 0 0 ] ( 0.2 0 0.02 );
timing timing [ 0 0 1 0 0 0 0 ] 0;
duration duration [ 0 0 1 0 0 0 0 ] 1;

View File

@ -8,7 +8,7 @@
FoamFile
{
version 2.0;
format ascii;
format binary;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;

View File

@ -70,6 +70,7 @@ solvers
PIMPLE
{
nOuterCorrectors 1;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
}

View File

@ -47,14 +47,14 @@ solvers
relTol 0;
}
"(U|ft|h|k|epsilon)"
"(U|Xi|hu|ft|b|h|k|epsilon)"
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0.1;
}
"(U|ft|h|k|epsilon)Final"
"(U|ft|Xi|hu|b|h|k|epsilon)Final"
{
$U;
tolerance 1e-05;

View File

@ -22,7 +22,7 @@ startTime 0.0;
stopAt endTime;
endTime 6.0;
endTime 2.75;
deltaT 0.001;

View File

@ -23,13 +23,13 @@ startTime 0;
stopAt endTime;
endTime 1.0;
endTime 0.3;
deltaT 1e-6;
writeControl adjustableRunTime;
writeInterval 0.1;
writeInterval 0.05;
purgeWrite 0;

View File

@ -71,6 +71,8 @@ solvers
PIMPLE
{
momentumPredictor no;
nOuterCorrectors 1;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
}

View File

@ -63,7 +63,7 @@ PIMPLE
"(U|k|epsilon)"
{
relTol 0;
absTol 0.0001;
tolerance 0.0001;
}
}
}

View File

@ -23,7 +23,7 @@ startTime 0;
stopAt endTime;
endTime 0.025;
endTime 0.01;
deltaT 1e-6;

View File

@ -44,7 +44,7 @@ SIMPLE
{
p_rgh 1e-2;
U 1e-4;
T 1e-3;
T 1e-2;
// possibly check turbulence fields
"(k|epsilon|omega)" 1e-3;
@ -54,7 +54,7 @@ SIMPLE
relaxationFactors
{
p_rgh 0.7;
U 0.2;
U 0.3;
T 0.5;
"(k|epsilon|R)" 0.7;
}

View File

@ -21,55 +21,55 @@ FoamFile
{
type empty;
nFaces 0;
startFace 60336;
startFace 61295;
}
minX
{
type empty;
nFaces 0;
startFace 60336;
startFace 61295;
}
maxX
{
type empty;
nFaces 0;
startFace 60336;
startFace 61295;
}
minY
{
type empty;
nFaces 0;
startFace 60336;
startFace 61295;
}
ground
{
type wall;
nFaces 590;
startFace 60336;
startFace 61295;
}
maxZ
{
type empty;
nFaces 0;
startFace 60926;
startFace 61885;
}
igloo_region0
{
type wall;
nFaces 2260;
startFace 60926;
startFace 61885;
}
twoFridgeFreezers_seal_0
{
type wall;
nFaces 1344;
startFace 63186;
startFace 64145;
}
twoFridgeFreezers_herring_1
{
type wall;
nFaces 1116;
startFace 64530;
startFace 65489;
}
)

View File

@ -29,14 +29,14 @@ solvers
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
tolerance 1e-07;
relTol 0.1;
}
}
SIMPLE
{
nNonOrthogonalCorrectors 0;
nNonOrthogonalCorrectors 2;
pRefCell 0;
pRefValue 0;

View File

@ -23,7 +23,7 @@ cp -r 0.org 0
runApplication mapFields ../wingMotion2D_simpleFoam -sourceTime latestTime -consistent
mv 0/pointDisplacement.unmapped 0/pointDisplacement
runApplication decomposePar
runParallel `getApplication` 3
runParallel `getApplication` 4
runApplication reconstructPar
# ----------------------------------------------------------------- end-of-file

View File

@ -35,7 +35,7 @@ boundaryField
);
velocity (0 0 0);
acceleration (0 0 0);
angularMomentum (0 0 -0.5);
angularMomentum (0 0 -2.0);
torque (0 0 0);
rhoName rhoInf;
rhoInf 1;

View File

@ -20,38 +20,38 @@ FoamFile
topAndBottom
{
type patch;
nFaces 150;
startFace 76473;
nFaces 72;
startFace 25168;
}
inlet
{
type patch;
nFaces 48;
startFace 76623;
nFaces 40;
startFace 25240;
}
outlet
{
type patch;
nFaces 48;
startFace 76671;
nFaces 62;
startFace 25280;
}
front
{
type empty;
nFaces 38129;
startFace 76719;
nFaces 12559;
startFace 25342;
}
back
{
type empty;
nFaces 38129;
startFace 114848;
nFaces 12559;
startFace 37901;
}
wing
{
type wall;
nFaces 778;
startFace 152977;
nFaces 378;
startFace 50460;
}
)

View File

@ -23,7 +23,7 @@ startTime 0;
stopAt endTime;
endTime 1;
endTime 0.6;
deltaT 1e-5;

View File

@ -15,27 +15,22 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 3;
numberOfSubdomains 4;
method simple;
simpleCoeffs
{
n ( 1 3 1 );
n ( 2 2 1 );
delta 0.001;
}
hierarchicalCoeffs
{
n ( 3 2 1 );
n ( 2 2 1 );
delta 0.001;
order xyz;
}
manualCoeffs
{
dataFile "cellDecomposition";
}
// ************************************************************************* //

View File

@ -20,38 +20,38 @@ FoamFile
topAndBottom
{
type patch;
nFaces 150;
startFace 76473;
nFaces 72;
startFace 25168;
}
inlet
{
type patch;
nFaces 48;
startFace 76623;
nFaces 40;
startFace 25240;
}
outlet
{
type patch;
nFaces 48;
startFace 76671;
nFaces 62;
startFace 25280;
}
front
{
type empty;
nFaces 38129;
startFace 76719;
nFaces 12559;
startFace 25342;
}
back
{
type empty;
nFaces 38129;
startFace 114848;
nFaces 12559;
startFace 37901;
}
wing
{
type wall;
nFaces 778;
startFace 152977;
nFaces 378;
startFace 50460;
}
)

View File

@ -19,19 +19,19 @@ convertToMeters 1;
vertices
(
(-2.5 -4.8 -0.1)
( 10 -4.8 -0.1)
( 10 4.8 -0.1)
(-2.5 4.8 -0.1)
(-2.5 -4.8 0.1)
( 10 -4.8 0.1)
( 10 4.8 0.1)
(-2.5 4.8 0.1)
(-1.2 -2.2 -0.1)
( 5 -2.2 -0.1)
( 5 2.2 -0.1)
(-1.2 2.2 -0.1)
(-1.2 -2.2 0.1)
( 5 -2.2 0.1)
( 5 2.2 0.1)
(-1.2 2.2 0.1)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (75 48 1) simpleGrading (1 1 1)
hex (0 1 2 3 4 5 6 7) (36 24 1) simpleGrading (1 1 1)
);
edges

View File

@ -20,38 +20,38 @@ FoamFile
topAndBottom
{
type patch;
nFaces 150;
startFace 2098769;
nFaces 72;
startFace 495985;
}
inlet
{
type patch;
nFaces 48;
startFace 2098919;
nFaces 72;
startFace 496057;
}
outlet
{
type patch;
nFaces 48;
startFace 2098967;
nFaces 204;
startFace 496129;
}
front
{
type empty;
nFaces 38129;
startFace 2099015;
nFaces 12559;
startFace 496333;
}
back
{
type empty;
nFaces 38120;
startFace 2137144;
nFaces 12559;
startFace 508892;
}
wing_5degrees.obj_WALL10
{
type wall;
nFaces 49792;
startFace 2175264;
nFaces 12096;
startFace 521451;
}
)

View File

@ -62,10 +62,10 @@ castellatedMeshControls
// actually be a lot less.
maxGlobalCells 2000000;
// The surface refinement loop might spend lots of iterations refining just a
// few cells. This setting will cause refinement to stop if <= minimumRefine
// are selected for refinement. Note: it will at least do one iteration
// (unless the number of cells to refine is 0)
// The surface refinement loop might spend lots of iterations refining just
// a few cells. This setting will cause refinement to stop if <=
// minimumRefine are selected for refinement. Note: it will at least do one
// iteration (unless the number of cells to refine is 0)
minRefinementCells 100;
// Number of buffer layers between different levels.
@ -98,7 +98,7 @@ castellatedMeshControls
wing_5degrees.obj
{
// Surface-wise min and max refinement level
level (6 6);
level (5 5);
}
}
@ -124,7 +124,7 @@ castellatedMeshControls
refinementBox
{
mode inside;
levels ((1e15 3));
levels ((1e15 2));
}
}

View File

@ -17,7 +17,7 @@ FoamFile
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
internalField uniform (0 0 0);
boundaryField
{

View File

@ -17,7 +17,7 @@ FoamFile
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
internalField uniform (0 0 0);
boundaryField
{

View File

@ -17,7 +17,7 @@ FoamFile
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
internalField uniform (0 0 0);
boundaryField
{

View File

@ -17,7 +17,7 @@ FoamFile
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
internalField uniform (0 0 0);
boundaryField
{

View File

@ -11,4 +11,3 @@ cp -rf 0.org 0
rm -f *.obj
#rm -rf VTK

View File

@ -8,4 +8,3 @@ cd ${0%/*} || exit 1 # run from this directory
application=`getApplication`
runApplication $application

View File

@ -7,4 +7,3 @@ runApplication setSet -batch wallFilmRegion.setSet
mv log.setSet log.wallFilmRegion.setSet
runApplication extrudeToRegionMesh -overwrite

View File

@ -8,4 +8,3 @@ species
reactions
{}

View File

@ -31,7 +31,7 @@ FoamFile
sampleMode nearestPatchFace;
sampleRegion wallFilmRegion;
samplePatch region0_to_wallFilmRegion_wallFilmFaces;
offsets
offsets
200
(
(-4.33680869e-19 -4.33680869e-19 -0)

View File

@ -20,7 +20,7 @@ FoamFile
wallFilmFaces
{
type faceZone;
faceLabels List<label>
faceLabels List<label>
200
(
12600

View File

@ -18,206 +18,206 @@ FoamFile
200
(
12600
12601
12602
12603
12604
12605
12606
12607
12608
12609
12610
12611
12612
12613
12614
12615
12616
12617
12618
12619
12620
12621
12622
12623
12624
12625
12626
12627
12628
12629
12630
12631
12632
12633
12634
12635
12636
12637
12638
12639
12640
12641
12642
12643
12644
12645
12646
12647
12648
12649
12650
12651
12652
12653
12654
12655
12656
12657
12658
12659
12660
12661
12662
12663
12664
12665
12666
12667
12668
12669
12670
12671
12672
12673
12674
12675
12676
12677
12678
12679
12680
12681
12682
12683
12684
12685
12686
12687
12688
12689
12690
12691
12692
12693
12694
12695
12696
12697
12698
12699
12700
12701
12702
12703
12704
12705
12706
12707
12708
12709
12710
12711
12712
12713
12714
12715
12716
12717
12718
12719
12720
12721
12722
12723
12724
12725
12726
12727
12728
12729
12730
12731
12732
12733
12734
12735
12736
12737
12738
12739
12740
12741
12742
12743
12744
12745
12746
12747
12748
12749
12750
12751
12752
12753
12754
12755
12756
12757
12758
12759
12760
12761
12762
12763
12764
12765
12766
12767
12768
12769
12770
12771
12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
12785
12786
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
12797
12798
12799
12600
12601
12602
12603
12604
12605
12606
12607
12608
12609
12610
12611
12612
12613
12614
12615
12616
12617
12618
12619
12620
12621
12622
12623
12624
12625
12626
12627
12628
12629
12630
12631
12632
12633
12634
12635
12636
12637
12638
12639
12640
12641
12642
12643
12644
12645
12646
12647
12648
12649
12650
12651
12652
12653
12654
12655
12656
12657
12658
12659
12660
12661
12662
12663
12664
12665
12666
12667
12668
12669
12670
12671
12672
12673
12674
12675
12676
12677
12678
12679
12680
12681
12682
12683
12684
12685
12686
12687
12688
12689
12690
12691
12692
12693
12694
12695
12696
12697
12698
12699
12700
12701
12702
12703
12704
12705
12706
12707
12708
12709
12710
12711
12712
12713
12714
12715
12716
12717
12718
12719
12720
12721
12722
12723
12724
12725
12726
12727
12728
12729
12730
12731
12732
12733
12734
12735
12736
12737
12738
12739
12740
12741
12742
12743
12744
12745
12746
12747
12748
12749
12750
12751
12752
12753
12754
12755
12756
12757
12758
12759
12760
12761
12762
12763
12764
12765
12766
12767
12768
12769
12770
12771
12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
12785
12786
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
12797
12798
12799
)
// ************************************************************************* //

View File

@ -38,7 +38,7 @@ FoamFile
sampleRegion wallFilmRegion;
samplePatch region0_to_wallFilmRegion_wallFilmFaces;
offsetMode nonuniform;
offsets
offsets
1100
(
(-1.110223025e-16 -0 -0)

View File

@ -1,4 +1,3 @@
# Create face set
faceSet wallFilmFaces new patchToFace filmWalls
faceZoneSet wallFilmFaces new setToFaceZone wallFilmFaces

View File

@ -30,4 +30,3 @@ cp -r system/wallFilmRegion.org system/wallFilmRegion
find ./0 -maxdepth 1 -type f -exec \
sed -i "s/wallFilm/\"(region0_to.*)\"/g" {} \;

View File

@ -70,7 +70,7 @@ thermoSingleLayerCoeffs
{
cloudName reactingCloud1;
deltaStable 0;
particlesPerParcel 100.0;
parcelDistribution

View File

@ -1,11 +1,11 @@
#!/bin/bash
#--------------------------------*- C++ -*----------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration | Version: dev
# \\ / A nd | Web: www.OpenFOAM.com
# \\/ M anipulation |
#---------------------------------------------------------------------------
#--------------------------------*- C++ -*----------------------------------#
# ========= | #
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox #
# \\ / O peration | Version: dev #
# \\ / A nd | Web: www.OpenFOAM.com #
# \\/ M anipulation | #
#---------------------------------------------------------------------------#
cd ${0%/*} || exit 1 # run from this directory
x0=0.4

View File

@ -17,7 +17,7 @@ FoamFile
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
internalField uniform (0 0 0);
boundaryField
{

View File

@ -17,7 +17,7 @@ FoamFile
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
internalField uniform (0 0 0);
boundaryField
{

View File

@ -11,4 +11,3 @@ cp -rf 0.org 0
rm -f *.obj
#rm -rf VTK

View File

@ -8,4 +8,3 @@ cd ${0%/*} || exit 1 # run from this directory
application=`getApplication`
runApplication $application

View File

@ -12,4 +12,3 @@ runApplication setSet -region wallFilmRegion -batch createWallFilmRegionPatches.
mv log.setSet log.createWallFilmRegionPatches.setSet
runApplication createPatch -region wallFilmRegion -overwrite

View File

@ -8,4 +8,3 @@ species
reactions
{}

View File

@ -32,7 +32,7 @@ FoamFile
sampleRegion wallFilmRegion;
samplePatch region0_to_wallFilmRegion_wallFilmFaces;
offsetMode nonuniform;
offsets
offsets
200
(
(4.33680869e-19 4.33680869e-19 -0)

View File

@ -3,4 +3,3 @@ faceSet sideFaces1 new boxToFace (-0.00001 -0.00001 -1) (0.10001 0.00001 1)
faceSet sideFaces2 new boxToFace ( 0.09999 -0.00001 -1) (0.10001 0.05001 1)
faceSet sideFaces3 new boxToFace (-0.00001 0.04999 -1) (1.00001 0.05001 1)
faceSet sideFaces4 new boxToFace (-0.00001 -0.00001 -1) (0.00001 0.05001 1)

View File

@ -25,9 +25,9 @@ pointSync false;
// Patches to create.
patches
(
{
{
// Name of new patch
name side1;
name side1;
// Type of new patch
patchInfo