Merge branch 'master' into cvm

This commit is contained in:
graham
2009-02-16 19:19:19 +00:00
1623 changed files with 85973 additions and 19624 deletions

View File

@ -1,53 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
Foam::hashSetUnionEqOp
Description
Union operation to combine hash sets
Usage: combineReduce(myWordHashSet, unionEqOp<word>());
\*---------------------------------------------------------------------------*/
namespace Foam
{
template<class Type>
class hashSetUnionEqOp
{
public:
void operator()(HashSet<Type>& x, const HashSet<Type>& y) const
{
forAllConstIter(typename HashSet<Type>, y, iter)
{
x.insert(iter.key());
}
}
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -1,53 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
Foam::hashTableUnionEqOp
Description
Union operation to combine hash sets
Usage: combineReduce(myWordHashSet, unionEqOp<word>());
\*---------------------------------------------------------------------------*/
namespace Foam
{
template<class Type>
class hashTableUnionEqOp
{
public:
void operator()(HashTable<Type>& x, const HashTable<Type>& y) const
{
forAllConstIter(typename HashTable<Type>, y, iter)
{
x.insert(iter.key(), iter());
}
}
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

28
bin/tools/inlineReplace Executable file
View File

@ -0,0 +1,28 @@
#!/bin/sh
# $0 string1 string2 file1 .. filen
#
if [ $# -lt 3 ]; then
echo "Usage: `basename $0` [-f] <string1> <string2> <file1> .. <filen>"
echo ""
echo "Replaces all occurrences of string1 by string2 in files."
echo "(replacement of sed -i on those systems that don't support it)"
exit 1
fi
FROMSTRING=$1
shift
TOSTRING=$1
shift
for f in $*
do
if grep "$FROMSTRING" "$f" >/dev/null
then
cp "$f" "${f}_bak"
sed -e "s@$FROMSTRING@$TOSTRING@g" "${f}"_bak > "$f"
rm -f "${f}"_bak
#else
# echo "String $FROMSTRING not present in $f"
#fi
done

15
bin/tools/replaceAllShellSun Executable file
View File

@ -0,0 +1,15 @@
#!/usr/xpg4/bin/sh
# Replace all shell script headers with
if [ $# -ne 1 -o ! -d "$1" ]; then
echo "Usage: `basename $0` <dir>"
echo ""
echo "Replaces all occurrences of #!/bin/sh with #!/usr/xpg4/bin/sh inside a directory tree."
exit 1
fi
#- note that below does not work since {} does not get replaced
#find $1 -type f -exec /usr/xpg4/bin/sh -c "grep '^#\!/bin/sh' {} >/dev/null && echo {} && mv {} {}_bak && sed -e 's@^#\!/bin/sh@#\!/usr/xpg4/bin/sh@' {}_bak > {}" ';'
find $1 -exec $WM_PROJECT_DIR/bin/tools/inlineReplace '^#\!/bin/sh' '#\!/usr/xpg4/bin/sh' {} \; -print

View File

@ -610,20 +610,6 @@ Foam::Time& Foam::Time::operator+=(const dimensionedScalar& deltaT)
Foam::Time& Foam::Time::operator+=(const scalar deltaT)
{
readModifiedObjects();
if (!subCycling_)
{
if (timeIndex_ == startTimeIndex_)
{
functionObjects_.start();
}
else
{
functionObjects_.execute();
}
}
setDeltaT(deltaT);
operator++();

View File

@ -79,12 +79,7 @@ bool Foam::dictionary::substituteKeyword(const word& keyword)
{
const dictionary& addDict = ePtr->dict();
for
(
IDLList<entry>::const_iterator iter = addDict.begin();
iter != addDict.end();
++iter
)
forAllConstIter(IDLList<entry>, addDict, iter)
{
add(iter());
}
@ -152,15 +147,22 @@ void Foam::dictionary::write(Ostream& os, bool subDict) const
os << nl << indent << token::BEGIN_BLOCK << incrIndent << nl;
}
for
(
IDLList<entry>::const_iterator iter = begin();
iter != end();
++iter
)
forAllConstIter(IDLList<entry>, *this, iter)
{
// Write entry & follow with carriage return.
os << *iter;
const entry& e = *iter;
// Write entry
os << e;
// Add new line if applicable
if
(
(e.isDict() || (!e.isDict() && parent()==dictionary::null))
&& e != *last()
)
{
os << nl;
}
// Check stream before going to next entry.
if (!os.good())

View File

@ -102,7 +102,9 @@ void Foam::cyclicPolyPatch::calcTransforms()
),
points
);
pointField half0Ctrs(calcFaceCentres(half0, half0.points()));
scalarField half0Tols(calcFaceTol(half0, half0.points(), half0Ctrs));
primitivePatch half1
@ -740,9 +742,7 @@ Foam::cyclicPolyPatch::cyclicPolyPatch
rotationAxis_(vector::zero),
rotationCentre_(point::zero),
separationVector_(vector::zero)
{
calcTransforms();
}
{}
Foam::cyclicPolyPatch::cyclicPolyPatch
@ -786,8 +786,6 @@ Foam::cyclicPolyPatch::cyclicPolyPatch
}
}
}
calcTransforms();
}
@ -805,9 +803,7 @@ Foam::cyclicPolyPatch::cyclicPolyPatch
rotationAxis_(pp.rotationAxis_),
rotationCentre_(pp.rotationCentre_),
separationVector_(pp.separationVector_)
{
calcTransforms();
}
{}
Foam::cyclicPolyPatch::cyclicPolyPatch
@ -827,9 +823,7 @@ Foam::cyclicPolyPatch::cyclicPolyPatch
rotationAxis_(pp.rotationAxis_),
rotationCentre_(pp.rotationCentre_),
separationVector_(pp.separationVector_)
{
calcTransforms();
}
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
@ -852,6 +846,7 @@ void Foam::cyclicPolyPatch::initGeometry()
void Foam::cyclicPolyPatch::calcGeometry()
{
polyPatch::calcGeometry();
calcTransforms();
}
void Foam::cyclicPolyPatch::initMovePoints(const pointField& p)

View File

@ -97,6 +97,7 @@ $(derivedFvPatchFields)/fixedFluxBoussinesqBuoyantPressure/fixedFluxBoussinesqBu
$(derivedFvPatchFields)/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C
$(derivedFvPatchFields)/fixedInternalValueFvPatchField/fixedInternalValueFvPatchFields.C
$(derivedFvPatchFields)/fixedNormalSlip/fixedNormalSlipFvPatchFields.C
$(derivedFvPatchFields)/fixedPressureCompressibleDensity/fixedPressureCompressibleDensityFvPatchScalarField.C
$(derivedFvPatchFields)/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.C
$(derivedFvPatchFields)/freestream/freestreamFvPatchFields.C
$(derivedFvPatchFields)/freestreamPressure/freestreamPressureFvPatchScalarField.C

View File

@ -0,0 +1,155 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
\*---------------------------------------------------------------------------*/
#include "fixedPressureCompressibleDensityFvPatchScalarField.H"
#include "addToRunTimeSelectionTable.H"
#include "fvPatchFieldMapper.H"
#include "surfaceFields.H"
#include "volFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
fixedPressureCompressibleDensityFvPatchScalarField::
fixedPressureCompressibleDensityFvPatchScalarField
(
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF
)
:
fixedValueFvPatchField<scalar>(p, iF),
pName_("pNameIsUndefined")
{}
fixedPressureCompressibleDensityFvPatchScalarField::
fixedPressureCompressibleDensityFvPatchScalarField
(
const fixedPressureCompressibleDensityFvPatchScalarField& ptf,
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF,
const fvPatchFieldMapper& mapper
)
:
fixedValueFvPatchField<scalar>(ptf, p, iF, mapper),
pName_(ptf.pName_)
{}
fixedPressureCompressibleDensityFvPatchScalarField::
fixedPressureCompressibleDensityFvPatchScalarField
(
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF,
const dictionary& dict
)
:
fixedValueFvPatchField<scalar>(p, iF, dict),
pName_(dict.lookup("p"))
{}
fixedPressureCompressibleDensityFvPatchScalarField::
fixedPressureCompressibleDensityFvPatchScalarField
(
const fixedPressureCompressibleDensityFvPatchScalarField& ptf
)
:
fixedValueFvPatchField<scalar>(ptf),
pName_(ptf.pName_)
{}
fixedPressureCompressibleDensityFvPatchScalarField::
fixedPressureCompressibleDensityFvPatchScalarField
(
const fixedPressureCompressibleDensityFvPatchScalarField& ptf,
const DimensionedField<scalar, volMesh>& iF
)
:
fixedValueFvPatchField<scalar>(ptf, iF),
pName_(ptf.pName_)
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void fixedPressureCompressibleDensityFvPatchScalarField::updateCoeffs()
{
if (updated())
{
return;
}
const fvPatchField<scalar>& pp =
patch().lookupPatchField<volScalarField, scalar>(pName_);
const dictionary& thermoProps =
db().lookupObject<IOdictionary>("thermodynamicProperties");
const scalar rholSat =
dimensionedScalar(thermoProps.lookup("rholSat")).value();
const scalar pSat =
dimensionedScalar(thermoProps.lookup("pSat")).value();
const scalar psil = dimensionedScalar(thermoProps.lookup("psil")).value();
operator==(rholSat + psil*(pp - pSat));
fixedValueFvPatchField<scalar>::updateCoeffs();
}
void fixedPressureCompressibleDensityFvPatchScalarField::write
(
Ostream& os
) const
{
fvPatchField<scalar>::write(os);
os.writeKeyword("p") << pName_ << token::END_STATEMENT << nl;
writeEntry("value", os);
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
makePatchTypeField
(
fvPatchScalarField,
fixedPressureCompressibleDensityFvPatchScalarField
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View File

@ -0,0 +1,162 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
Foam::fixedPressureCompressibleDensityFvPatchScalarField
Description
Calculate compressible density as a function of pressure and fluid
properties.
Example of the boundary condition specification:
@verbatim
inlet
{
type fixedPressureCompressibleDensity;
p p; // Name of static pressure field
value uniform 1; // Initial value
}
@endverbatim
SourceFiles
fixedPressureCompressibleDensityFvPatchScalarField.C
\*---------------------------------------------------------------------------*/
#ifndef fixedPressureCompressibleDensityFvPatchScalarField_H
#define fixedPressureCompressibleDensityFvPatchScalarField_H
#include "fixedValueFvPatchFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class fixedPressureCompressibleDensityFvPatchScalarField Declaration
\*---------------------------------------------------------------------------*/
class fixedPressureCompressibleDensityFvPatchScalarField
:
public fixedValueFvPatchScalarField
{
// Private data
//- Name of static pressure field
word pName_;
public:
//- Runtime type information
TypeName("fixedPressureCompressibleDensity");
// Constructors
//- Construct from patch and internal field
fixedPressureCompressibleDensityFvPatchScalarField
(
const fvPatch&,
const DimensionedField<scalar, volMesh>&
);
//- Construct from patch, internal field and dictionary
fixedPressureCompressibleDensityFvPatchScalarField
(
const fvPatch&,
const DimensionedField<scalar, volMesh>&,
const dictionary&
);
//- Construct by mapping given
// fixedPressureCompressibleDensityFvPatchScalarField
// onto a new patch
fixedPressureCompressibleDensityFvPatchScalarField
(
const fixedPressureCompressibleDensityFvPatchScalarField&,
const fvPatch&,
const DimensionedField<scalar, volMesh>&,
const fvPatchFieldMapper&
);
//- Construct as copy
fixedPressureCompressibleDensityFvPatchScalarField
(
const fixedPressureCompressibleDensityFvPatchScalarField&
);
//- Construct and return a clone
virtual tmp<fvPatchScalarField> clone() const
{
return tmp<fvPatchScalarField>
(
new fixedPressureCompressibleDensityFvPatchScalarField(*this)
);
}
//- Construct as copy setting internal field reference
fixedPressureCompressibleDensityFvPatchScalarField
(
const fixedPressureCompressibleDensityFvPatchScalarField&,
const DimensionedField<scalar, volMesh>&
);
//- Construct and return a clone setting internal field reference
virtual tmp<fvPatchScalarField> clone
(
const DimensionedField<scalar, volMesh>& iF
) const
{
return tmp<fvPatchScalarField>
(
new fixedPressureCompressibleDensityFvPatchScalarField
(
*this,
iF
)
);
}
// Member functions
//- Update the coefficients associated with the patch field
virtual void updateCoeffs();
//- Write
virtual void write(Ostream&) const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -104,7 +104,7 @@ void pressureInletUniformVelocityFvPatchVectorField::updateCoeffs()
pressureInletVelocityFvPatchVectorField::updateCoeffs();
operator==(patch().nf()*sum(patch().Sf() & *this)/sum(patch().magSf()));
operator==(patch().nf()*gSum(patch().Sf() & *this)/gSum(patch().magSf()));
}
@ -115,7 +115,7 @@ void pressureInletUniformVelocityFvPatchVectorField::operator=
const fvPatchField<vector>& pvf
)
{
operator==(patch().nf()*sum(patch().Sf() & pvf)/sum(patch().magSf()));
operator==(patch().nf()*gSum(patch().Sf() & pvf)/gSum(patch().magSf()));
}

View File

@ -297,7 +297,7 @@ bool Foam::parcel::move(spray& sDB)
ms() -= ms()*(oTotMass-m())/oTotMass;
// remove parcel if it is 'small'
if (m() < 1.0e-20)
if (m() < 1.0e-12)
{
keepParcel = false;
@ -574,6 +574,56 @@ void Foam::parcel::updateParcelProperties
// Prevent droplet temperature to go too low
// Mainly a numerical stability issue
Tnew = max(200.0, Tnew);
scalar Td = Tnew;
scalar pAtSurface = fuels.pv(pg, Td, X());
scalar pCompare = 0.999*pg;
scalar boiling = pAtSurface >= pCompare;
if (boiling)
{
// can not go above boiling temperature
scalar Terr = 1.0e-3;
label n=0;
scalar dT = 1.0;
scalar pOld = pAtSurface;
while (dT > Terr)
{
n++;
pAtSurface = fuels.pv(pg, Td, X());
if ((pAtSurface < pCompare) && (pOld < pCompare))
{
Td += dT;
}
else
{
if ((pAtSurface > pCompare) && (pOld > pCompare))
{
Td -= dT;
}
else
{
dT *= 0.5;
if ((pAtSurface > pCompare) && (pOld < pCompare))
{
Td -= dT;
}
else
{
Td += dT;
}
}
}
pOld = pAtSurface;
if (debug)
{
if (n>100)
{
Info << "n = " << n << ", T = " << Td << ", pv = " << pAtSurface << endl;
}
}
}
Tnew = Td;
}
}
// Evaporate droplet!

View File

@ -85,6 +85,9 @@ Foam::spray::spray
)
),
ambientPressure_(p_.average().value()),
ambientTemperature_(T_.average().value()),
injectors_
(
IOobject
@ -204,10 +207,7 @@ Foam::spray::spray
srhos_(fuels_->components().size()),
totalInjectedLiquidMass_(0.0),
injectedLiquidKE_(0.0),
ambientPressure_(p_.average().value()),
ambientTemperature_(T_.average().value())
injectedLiquidKE_(0.0)
{
// create the evaporation source fields

View File

@ -92,8 +92,15 @@ class spray
IOdictionary sprayProperties_;
//- Ambient Pressure
scalar ambientPressure_;
//- Ambient Temperature
scalar ambientTemperature_;
//- The injectors
IOPtrList<injector> injectors_;
IOPtrList<injector> injectors_;
// References to the spray sub-models
@ -164,12 +171,6 @@ class spray
//- The (total added) injected kinetic energy of the liquid
scalar injectedLiquidKE_;
//- Ambient Pressure
scalar ambientPressure_;
//- Ambient Temperature
scalar ambientTemperature_;
// Private Member Functions

View File

@ -68,7 +68,7 @@ Foam::tmp<Foam::scalarField> Foam::cellQuality::nonOrthogonality() const
scalar magS = mag(s);
scalar cosDDotS =
Foam::acos((d & s)/(mag(d)*magS + VSMALL))
Foam::acos(min(1.0, (d & s)/(mag(d)*magS + VSMALL)))
*180.0/mathematicalConstant::pi;
result[own[faceI]] = max(cosDDotS, result[own[faceI]]);
@ -94,7 +94,7 @@ Foam::tmp<Foam::scalarField> Foam::cellQuality::nonOrthogonality() const
scalar magS = mag(s);
scalar cosDDotS =
Foam::acos((d & s)/(mag(d)*magS + VSMALL))
Foam::acos(min(1.0, (d & s)/(mag(d)*magS + VSMALL)))
*180.0/mathematicalConstant::pi;
result[faceCells[faceI]] = max(cosDDotS, result[faceCells[faceI]]);
@ -209,7 +209,7 @@ Foam::tmp<Foam::scalarField> Foam::cellQuality::faceNonOrthogonality() const
scalar magS = mag(s);
scalar cosDDotS =
Foam::acos((d & s)/(mag(d)*magS + VSMALL))
Foam::acos(min(1.0, (d & s)/(mag(d)*magS + VSMALL)))
*180.0/mathematicalConstant::pi;
result[faceI] = cosDDotS;
@ -235,7 +235,7 @@ Foam::tmp<Foam::scalarField> Foam::cellQuality::faceNonOrthogonality() const
scalar magS = mag(s);
scalar cosDDotS =
Foam::acos((d & s)/(mag(d)*magS + VSMALL))
Foam::acos(min(1.0, (d & s)/(mag(d)*magS + VSMALL)))
*180.0/mathematicalConstant::pi;
result[globalFaceI++] = cosDDotS;

View File

@ -26,10 +26,7 @@ License
#include "fieldAverage.H"
#include "volFields.H"
#include "dictionary.H"
#include "Time.H"
#include "IFstream.H"
#include "OFstream.H"
#include "fieldAverageItem.H"
@ -46,26 +43,45 @@ const Foam::word Foam::fieldAverage::EXT_PRIME2MEAN = "Prime2Mean";
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
void Foam::fieldAverage::checkoutFields(const wordList& fieldNames) const
{
forAll(fieldNames, i)
{
if (fieldNames[i] != word::null)
{
obr_.checkOut(*obr_[fieldNames[i]]);
}
}
}
void Foam::fieldAverage::resetLists(const label nItems)
{
checkoutFields(meanScalarFields_);
meanScalarFields_.clear();
meanScalarFields_.setSize(nItems);
checkoutFields(meanVectorFields_);
meanVectorFields_.clear();
meanVectorFields_.setSize(nItems);
checkoutFields(meanSphericalTensorFields_);
meanSphericalTensorFields_.clear();
meanSphericalTensorFields_.setSize(nItems);
checkoutFields(meanSymmTensorFields_);
meanSymmTensorFields_.clear();
meanSymmTensorFields_.setSize(nItems);
checkoutFields(meanTensorFields_);
meanTensorFields_.clear();
meanTensorFields_.setSize(nItems);
checkoutFields(prime2MeanScalarFields_);
prime2MeanScalarFields_.clear();
prime2MeanScalarFields_.setSize(nItems);
checkoutFields(prime2MeanSymmTensorFields_);
prime2MeanSymmTensorFields_.clear();
prime2MeanSymmTensorFields_.setSize(nItems);
@ -128,7 +144,7 @@ void Foam::fieldAverage::initialise()
if (obr_.foundObject<volScalarField>(fieldName))
{
addPrime2MeanField<scalar>
addPrime2MeanField<scalar, scalar>
(
i,
meanScalarFields_,
@ -137,7 +153,7 @@ void Foam::fieldAverage::initialise()
}
else if (obr_.foundObject<volVectorField>(fieldName))
{
addPrime2MeanField<vector>
addPrime2MeanField<vector, symmTensor>
(
i,
meanVectorFields_,
@ -188,12 +204,12 @@ Foam::fieldAverage::fieldAverage
active_ = false;
WarningIn
(
"fieldAverage::fieldAverage"
"("
"const word&,"
"const objectRegistry&,"
"const dictionary&,"
"const bool"
"fieldAverage::fieldAverage\n"
"(\n"
"const word&,\n"
"const objectRegistry&,\n"
"const dictionary&,\n"
"const bool\n"
")"
) << "No fvMesh available, deactivating."
<< nl << endl;
@ -255,12 +271,12 @@ void Foam::fieldAverage::calcAverages()
totalTime_[i] += obr_.time().deltaT().value();
}
addMeanSqrToPrime2Mean<scalar>
addMeanSqrToPrime2Mean<scalar, scalar>
(
meanScalarFields_,
prime2MeanScalarFields_
);
addMeanSqrToPrime2Mean<vector>
addMeanSqrToPrime2Mean<vector, symmTensor>
(
meanVectorFields_,
prime2MeanSymmTensorFields_
@ -272,12 +288,12 @@ void Foam::fieldAverage::calcAverages()
calculateMeanFields<symmTensor>(meanSymmTensorFields_);
calculateMeanFields<tensor>(meanTensorFields_);
calculatePrime2MeanFields<scalar>
calculatePrime2MeanFields<scalar, scalar>
(
meanScalarFields_,
prime2MeanScalarFields_
);
calculatePrime2MeanFields<vector>
calculatePrime2MeanFields<vector, symmTensor>
(
meanVectorFields_,
prime2MeanSymmTensorFields_
@ -309,13 +325,14 @@ void Foam::fieldAverage::writeAveragingProperties() const
"uniform",
obr_,
IOobject::NO_READ,
IOobject::NO_WRITE
IOobject::NO_WRITE,
false
)
);
forAll(faItems_, i)
{
const word fieldName = faItems_[i].fieldName();
const word& fieldName = faItems_[i].fieldName();
propsDict.add(fieldName, dictionary());
propsDict.subDict(fieldName).add("totalIter", totalIter_[i]);
propsDict.subDict(fieldName).add("totalTime", totalTime_[i]);
@ -334,20 +351,25 @@ void Foam::fieldAverage::readAveragingProperties()
}
else
{
IFstream propsFile
IOobject propsDictHeader
(
obr_.time().path()/obr_.time().timeName()
/"uniform"/"fieldAveragingProperties"
"fieldAveragingProperties",
obr_.time().timeName(),
"uniform",
obr_,
IOobject::NO_READ,
IOobject::NO_WRITE,
false
);
if (!propsFile.good())
if (!propsDictHeader.headerOk())
{
Info<< "fieldAverage: starting averaging at time "
<< obr_.time().timeName() << nl << endl;
return;
}
dictionary propsDict(dictionary::null, propsFile);
IOdictionary propsDict(propsDictHeader);
Info<< "fieldAverage: restarting averaging for fields:" << endl;
forAll(faItems_, i)

View File

@ -75,7 +75,6 @@ Description
SourceFiles
fieldAverage.C
fieldAverageTemplates.C
IOfieldAverage.H
\*---------------------------------------------------------------------------*/
@ -122,7 +121,7 @@ protected:
//- Clean restart flag
Switch cleanRestart_;
//- List of field average items, describing waht averages to be
//- List of field average items, describing what averages to be
// calculated and output
List<fieldAverageItem> faItems_;
@ -138,15 +137,15 @@ protected:
// Lists of averages
// Arithmetic mean fields
PtrList<volScalarField> meanScalarFields_;
PtrList<volVectorField> meanVectorFields_;
PtrList<volSphericalTensorField> meanSphericalTensorFields_;
PtrList<volSymmTensorField> meanSymmTensorFields_;
PtrList<volTensorField> meanTensorFields_;
wordList meanScalarFields_;
wordList meanVectorFields_;
wordList meanSphericalTensorFields_;
wordList meanSymmTensorFields_;
wordList meanTensorFields_;
// Prime-squared fields - applicable to volVectorFields only
PtrList<volScalarField> prime2MeanScalarFields_;
PtrList<volSymmTensorField> prime2MeanSymmTensorFields_;
wordList prime2MeanScalarFields_;
wordList prime2MeanSymmTensorFields_;
// Counters
@ -162,6 +161,9 @@ protected:
// Initialisation routines
//- Checkout fields (causes deletion) from the database
void checkoutFields(const wordList&) const;
//- Reset size of lists (clear existing values)
void resetLists(const label nItems);
@ -171,20 +173,16 @@ protected:
//- Add mean average field to PtrList
template<class Type>
void addMeanField
(
const label,
PtrList<GeometricField<Type, fvPatchField, volMesh> >&
);
void addMeanField(const label, wordList&) const;
//- Add prime-squared average field to PtrList
template<class Type1, class Type2>
void addPrime2MeanField
(
const label,
PtrList<GeometricField<Type1, fvPatchField, volMesh> >&,
PtrList<GeometricField<Type2, fvPatchField, volMesh> >&
);
const wordList&,
wordList&
) const;
// Calculation functions
@ -194,26 +192,23 @@ protected:
//- Calculate mean average fields
template<class Type>
void calculateMeanFields
(
PtrList<GeometricField<Type, fvPatchField, volMesh> >&
);
void calculateMeanFields(const wordList&) const;
//- Add mean-squared field value to prime-squared mean field
template<class Type1, class Type2>
void addMeanSqrToPrime2Mean
(
PtrList<GeometricField<Type1, fvPatchField, volMesh> >&,
PtrList<GeometricField<Type2, fvPatchField, volMesh> >&
);
const wordList&,
const wordList&
) const;
//- Calculate prime-squared average fields
template<class Type1, class Type2>
void calculatePrime2MeanFields
(
PtrList<GeometricField<Type1, fvPatchField, volMesh> >&,
PtrList<GeometricField<Type2, fvPatchField, volMesh> >&
);
const wordList&,
const wordList&
) const;
// I-O
@ -223,11 +218,7 @@ protected:
//- Write fields
template<class Type>
void writeFieldList
(
const PtrList<GeometricField<Type, fvPatchField, volMesh> >&
fieldList
) const;
void writeFieldList(const wordList&) const;
//- Write averaging properties - steps and time
void writeAveragingProperties() const;

View File

@ -34,22 +34,36 @@ template<class Type>
void Foam::fieldAverage::addMeanField
(
const label fieldi,
PtrList<GeometricField<Type, fvPatchField, volMesh> >& meanFieldList
)
wordList& meanFieldList
) const
{
if (faItems_[fieldi].mean())
{
typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
const word& fieldName = faItems_[fieldi].fieldName();
const fieldType& baseField = obr_.lookupObject<fieldType>(fieldName);
const word meanFieldName = fieldName + EXT_MEAN;
Info<< "Reading/calculating field " << meanFieldName << nl << endl;
meanFieldList.set
(
fieldi,
new fieldType
if (obr_.foundObject<fieldType>(meanFieldName))
{
meanFieldList[fieldi] = meanFieldName;
}
else if (obr_.found(meanFieldName))
{
Info<< "Cannot allocate average field " << meanFieldName
<< " since an object with that name already exists."
<< " Disabling averaging." << nl << endl;
meanFieldList[fieldi] = word::null;
}
else
{
const fieldType& baseField =
obr_.lookupObject<fieldType>(fieldName);
fieldType* fPtr = new fieldType
(
IOobject
(
@ -60,8 +74,13 @@ void Foam::fieldAverage::addMeanField
IOobject::NO_WRITE
),
baseField
)
);
);
// Store on registry
fPtr->store();
meanFieldList[fieldi] = meanFieldName;
}
}
}
@ -70,25 +89,39 @@ template<class Type1, class Type2>
void Foam::fieldAverage::addPrime2MeanField
(
const label fieldi,
PtrList<GeometricField<Type1, fvPatchField, volMesh> >& meanFieldList,
PtrList<GeometricField<Type2, fvPatchField, volMesh> >& prime2MeanFieldList
)
const wordList& meanFieldList,
wordList& prime2MeanFieldList
) const
{
if (faItems_[fieldi].mean() && meanFieldList.set(fieldi))
if (faItems_[fieldi].mean() && meanFieldList[fieldi] != word::null)
{
typedef GeometricField<Type1, fvPatchField, volMesh> fieldType1;
typedef GeometricField<Type2, fvPatchField, volMesh> fieldType2;
const word& fieldName = faItems_[fieldi].fieldName();
const fieldType1& baseField = obr_.lookupObject<fieldType1>(fieldName);
const fieldType1& meanField = meanFieldList[fieldi];
const word meanFieldName = fieldName + EXT_PRIME2MEAN;
Info<< "Reading/calculating field " << meanFieldName << nl << endl;
prime2MeanFieldList.set
(
fieldi,
new fieldType2
if (obr_.foundObject<fieldType2>(meanFieldName))
{
prime2MeanFieldList[fieldi] = meanFieldName;
}
else if (obr_.found(meanFieldName))
{
Info<< "Cannot allocate average field " << meanFieldName
<< " since an object with that name already exists."
<< " Disabling averaging." << nl << endl;
prime2MeanFieldList[fieldi] = word::null;
}
else
{
const fieldType1& baseField =
obr_.lookupObject<fieldType1>(fieldName);
const fieldType1& meanField =
obr_.lookupObject<fieldType1>(meanFieldList[fieldi]);
fieldType2* fPtr = new fieldType2
(
IOobject
(
@ -99,17 +132,20 @@ void Foam::fieldAverage::addPrime2MeanField
IOobject::NO_WRITE
),
sqr(baseField) - sqr(meanField)
)
);
);
// Store on registry
fPtr->store();
prime2MeanFieldList[fieldi] = meanFieldName;
}
}
}
template<class Type>
void Foam::fieldAverage::calculateMeanFields
(
PtrList<GeometricField<Type, fvPatchField, volMesh> >& meanFieldList
)
void Foam::fieldAverage::calculateMeanFields(const wordList& meanFieldList)
const
{
typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
@ -117,12 +153,15 @@ void Foam::fieldAverage::calculateMeanFields
forAll(faItems_, i)
{
if (faItems_[i].mean() && meanFieldList.set(i))
if (faItems_[i].mean() && meanFieldList[i] != word::null)
{
const word& fieldName = faItems_[i].fieldName();
const fieldType& baseField =
obr_.lookupObject<fieldType>(fieldName);
fieldType& meanField = meanFieldList[i];
fieldType& meanField = const_cast<fieldType&>
(
obr_.lookupObject<fieldType>(meanFieldList[i])
);
scalar alpha = 0.0;
scalar beta = 0.0;
@ -146,9 +185,9 @@ void Foam::fieldAverage::calculateMeanFields
template<class Type1, class Type2>
void Foam::fieldAverage::calculatePrime2MeanFields
(
PtrList<GeometricField<Type1, fvPatchField, volMesh> >& meanFieldList,
PtrList<GeometricField<Type2, fvPatchField, volMesh> >& prime2MeanFieldList
)
const wordList& meanFieldList,
const wordList& prime2MeanFieldList
) const
{
typedef GeometricField<Type1, fvPatchField, volMesh> fieldType1;
typedef GeometricField<Type2, fvPatchField, volMesh> fieldType2;
@ -160,15 +199,19 @@ void Foam::fieldAverage::calculatePrime2MeanFields
if
(
faItems_[i].prime2Mean()
&& meanFieldList.set(i)
&& prime2MeanFieldList.set(i)
&& meanFieldList[i] != word::null
&& prime2MeanFieldList[i] != word::null
)
{
const word& fieldName = faItems_[i].fieldName();
const fieldType1& baseField =
obr_.lookupObject<fieldType1>(fieldName);
const fieldType1& meanField = meanFieldList[i];
fieldType2& prime2MeanField = prime2MeanFieldList[i];
const fieldType1& meanField =
obr_.lookupObject<fieldType1>(meanFieldList[i]);
fieldType2& prime2MeanField = const_cast<fieldType2&>
(
obr_.lookupObject<fieldType2>(prime2MeanFieldList[i])
);
scalar alpha = 0.0;
scalar beta = 0.0;
@ -195,9 +238,9 @@ void Foam::fieldAverage::calculatePrime2MeanFields
template<class Type1, class Type2>
void Foam::fieldAverage::addMeanSqrToPrime2Mean
(
PtrList<GeometricField<Type1, fvPatchField, volMesh> >& meanFieldList,
PtrList<GeometricField<Type2, fvPatchField, volMesh> >& prime2MeanFieldList
)
const wordList& meanFieldList,
const wordList& prime2MeanFieldList
) const
{
typedef GeometricField<Type1, fvPatchField, volMesh> fieldType1;
typedef GeometricField<Type2, fvPatchField, volMesh> fieldType2;
@ -207,12 +250,16 @@ void Foam::fieldAverage::addMeanSqrToPrime2Mean
if
(
faItems_[i].prime2Mean()
&& meanFieldList.set(i)
&& prime2MeanFieldList.set(i)
&& meanFieldList[i] != word::null
&& prime2MeanFieldList[i] != word::null
)
{
const fieldType1& meanField = meanFieldList[i];
fieldType2& prime2MeanField = prime2MeanFieldList[i];
const fieldType1& meanField =
obr_.lookupObject<fieldType1>(meanFieldList[i]);
fieldType2& prime2MeanField = const_cast<fieldType2&>
(
obr_.lookupObject<fieldType2>(prime2MeanFieldList[i])
);
prime2MeanField += sqr(meanField);
}
@ -221,16 +268,16 @@ void Foam::fieldAverage::addMeanSqrToPrime2Mean
template<class Type>
void Foam::fieldAverage::writeFieldList
(
const PtrList<GeometricField<Type, fvPatchField, volMesh> >& fieldList
) const
void Foam::fieldAverage::writeFieldList(const wordList& fieldList) const
{
typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
forAll(fieldList, i)
{
if (fieldList.set(i))
if (fieldList[i] != word::null)
{
fieldList[i].write();
const fieldType& f = obr_.lookupObject<fieldType>(fieldList[i]);
f.write();
}
}
}

View File

@ -90,16 +90,10 @@ public:
:
liquid(60.056, 705.0, 9.050e+6, 0.218, 0.337, 405.85, 9.3131e+1, 465.0, 1.52e-29, 0.3449, 4.7813e+4),
rho_(1230.006936, 0, 0, 0, 0, 0),
pv_(12.06, -3992.0, 0, 0, 0),
// hl_(1463034.50113228, 0, 0, 0, 0, 0),
// NN. we cant use constant heat of vapourisation, the below value is linear (sqrt) interpolation to critical temp
pv_(3015.15611544, -185497.059684, -430.223621983, 0.00017405122622, 2.0),
hl_(705.0, 2534249.0, 0.5, 0.0, 0.0, 0.0),
cp_(2006.46063673904, 0, 0, 0, 0, 0),
// NN: enthalpy, h_, is not used in the sprayModel.
// For consistency, the enthalpy is derived from hlat and hl.
// It is, however, convenient to have it available.
h_(-6154107.41641135, 2006.46063673904, 0, 0, 0, 0),
cpg_(811.875582789397, 2099.04089516451, 1627.3, 1603.63660583455, 724.41),
B_(-0.000383641934194752, 0.447249234048222, -469062.208605302, 5.5628080458239e+18, -2.3040162514986e+21),
mu_(-51.964, 3670.6, 5.7331, -5.3495e-29, 10),
@ -107,7 +101,7 @@ public:
K_(-0.4267, 0.0056903, -8.0065e-06, 1.815e-09, 0, 0),
Kg_(6.977e-05, 1.1243, 844.9, -148850),
sigma_(705.0, 1.0, 0.0, 0.0, 0.0, 0), // set to constant
D_(147.18, 20.1, 60.056, 28) // NN: Same as nHeptane
D_(147.18, 20.1, 60.056, 28) // Same as nHeptane
{}
CH4N2O
(

View File

@ -337,7 +337,7 @@ void LRR::correct()
RASModel::correct();
volSymmTensorField P = -twoSymm(R_ & fvc::grad(U_));
volScalarField G("G", 0.5*tr(P));
volScalarField G("G", 0.5*mag(tr(P)));
// Update espsilon and G at the wall
epsilon_.boundaryField().updateCoeffs();
@ -376,7 +376,7 @@ void LRR::correct()
{
label faceCelli = curPatch.faceCells()[facei];
P[faceCelli]
*= min(G[faceCelli]/(0.5*tr(P[faceCelli]) + SMALL), 100.0);
*= min(G[faceCelli]/(0.5*mag(tr(P[faceCelli])) + SMALL), 100.0);
}
}
}

View File

@ -367,7 +367,7 @@ void LaunderGibsonRSTM::correct()
}
volSymmTensorField P = -twoSymm(R_ & fvc::grad(U_));
volScalarField G("G", 0.5*tr(P));
volScalarField G("G", 0.5*mag(tr(P)));
// Update espsilon and G at the wall
epsilon_.boundaryField().updateCoeffs();
@ -406,7 +406,7 @@ void LaunderGibsonRSTM::correct()
{
label faceCelli = curPatch.faceCells()[facei];
P[faceCelli] *=
min(G[faceCelli]/(0.5*tr(P[faceCelli]) + SMALL), 100.0);
min(G[faceCelli]/(0.5*mag(tr(P[faceCelli])) + SMALL), 100.0);
}
}
}

View File

@ -297,7 +297,7 @@ void LRR::correct()
}
volSymmTensorField P = -twoSymm(R_ & fvc::grad(U_));
volScalarField G("G", 0.5*tr(P));
volScalarField G("G", 0.5*mag(tr(P)));
// Update espsilon and G at the wall
epsilon_.boundaryField().updateCoeffs();
@ -307,6 +307,7 @@ void LRR::correct()
(
fvm::ddt(epsilon_)
+ fvm::div(phi_, epsilon_)
- fvm::Sp(fvc::div(phi_), epsilon_)
//- fvm::laplacian(Ceps*(K/epsilon_)*R, epsilon_)
- fvm::laplacian(DepsilonEff(), epsilon_)
==
@ -336,7 +337,7 @@ void LRR::correct()
{
label faceCelli = curPatch.faceCells()[facei];
P[faceCelli]
*= min(G[faceCelli]/(0.5*tr(P[faceCelli]) + SMALL), 1.0);
*= min(G[faceCelli]/(0.5*mag(tr(P[faceCelli])) + SMALL), 1.0);
}
}
}
@ -346,6 +347,7 @@ void LRR::correct()
(
fvm::ddt(R_)
+ fvm::div(phi_, R_)
- fvm::Sp(fvc::div(phi_), R_)
//- fvm::laplacian(Cs*(k_/epsilon_)*R_, R_)
- fvm::laplacian(DREff(), R_)
+ fvm::Sp(Clrr1_*epsilon_/k_, R_)

View File

@ -329,7 +329,7 @@ void LaunderGibsonRSTM::correct()
}
volSymmTensorField P = -twoSymm(R_ & fvc::grad(U_));
volScalarField G("G", 0.5*tr(P));
volScalarField G("G", 0.5*mag(tr(P)));
// Update espsilon and G at the wall
epsilon_.boundaryField().updateCoeffs();
@ -339,6 +339,7 @@ void LaunderGibsonRSTM::correct()
(
fvm::ddt(epsilon_)
+ fvm::div(phi_, epsilon_)
- fvm::Sp(fvc::div(phi_), epsilon_)
//- fvm::laplacian(Ceps*(k_/epsilon_)*R_, epsilon_)
- fvm::laplacian(DepsilonEff(), epsilon_)
==
@ -368,7 +369,7 @@ void LaunderGibsonRSTM::correct()
{
label faceCelli = curPatch.faceCells()[facei];
P[faceCelli] *=
min(G[faceCelli]/(0.5*tr(P[faceCelli]) + SMALL), 1.0);
min(G[faceCelli]/(0.5*mag(tr(P[faceCelli])) + SMALL), 1.0);
}
}
}
@ -379,6 +380,7 @@ void LaunderGibsonRSTM::correct()
(
fvm::ddt(R_)
+ fvm::div(phi_, R_)
- fvm::Sp(fvc::div(phi_), R_)
//- fvm::laplacian(Cs*(k_/epsilon_)*R_, R_)
- fvm::laplacian(DREff(), R_)
+ fvm::Sp(Clg1_*epsilon_/k_, R_)

View File

@ -249,7 +249,7 @@ tmp<volScalarField> SpalartAllmaras::epsilon() const
(
IOobject
(
"epslion",
"epsilon",
runTime_.timeName(),
mesh_
),

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,6 +10,7 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "constant";
object boxTurbDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -18,4 +19,5 @@ Ea 10;
k0 5;
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
nu nu [ 0 2 -1 0 0 0 0 ] 0.025;
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,16 +10,18 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "constant";
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
UOsigma 0.090295049;
UOsigma 0.090295;
UOalpha 0.81532036;
UOalpha 0.81532;
UOKupper 10;
UOKlower 7;
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,11 +10,11 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
startFrom startTime;
startTime 0;
@ -45,4 +45,5 @@ runTimeModifiable yes;
graphFormat raw;
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,13 +10,14 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
default Euler;
}
gradSchemes
@ -53,7 +54,8 @@ snGradSchemes
fluxRequired
{
default no;
p;
p ;
}
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,24 +10,28 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p PCG
p
{
preconditioner DIC;
tolerance 1e-06;
relTol 0;
};
U PBiCG
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}
U
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
}
PISO
@ -36,4 +40,5 @@ PISO
nNonOrthogonalCorrectors 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,3 @@
rhoPisoTwinParcelFoam.C
EXE = $(FOAM_USER_APPBIN)/rhoPisoTwinParcelFoam

View File

@ -0,0 +1,20 @@
Info<< "Constructing thermoCloud1" << endl;
basicThermoCloud thermoCloud1
(
"thermoCloud1",
rho,
U,
g,
thermo()
);
Info<< "Constructing kinematicCloud1" << endl;
basicKinematicCloud kinematicCloud1
(
"kinematicCloud1",
rho,
U,
thermo().mu(),
g
);

View File

@ -43,30 +43,16 @@
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::turbulenceModel> turbulence
(
compressible::turbulenceModel::New(rho, U, phi, thermo())
compressible::turbulenceModel::New
(
rho,
U,
phi,
thermo()
)
);
Info<< "Creating field DpDt\n" << endl;
volScalarField DpDt =
fvc::DDt(surfaceScalarField("phiU", phi/fvc::interpolate(rho)), p);
Info<< "Constructing thermoCloud1" << endl;
basicThermoCloud thermoCloud1
(
"thermoCloud1",
rho,
U,
g,
thermo()
);
Info<< "Constructing kinematicCloud1" << endl;
basicKinematicCloud kinematicCloud1
(
"kinematicCloud1",
rho,
U,
thermo().mu(),
g
);

View File

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Application
rhoTurbFoam
rhoPisoTwinParcelFoam
Description
Transient solver for compressible, turbulent flow with two thermo-clouds.
@ -48,6 +48,7 @@ int main(int argc, char *argv[])
# include "createMesh.H"
# include "readEnvironmentalProperties.H"
# include "createFields.H"
# include "createClouds.H"
# include "readPISOControls.H"
# include "initContinuityErrs.H"
# include "readTimeControls.H"

View File

@ -0,0 +1,100 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object RASProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RASModel kEpsilon;
turbulence on;
printCoeffs on;
laminarCoeffs
{
}
kEpsilonCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
C3 -0.33;
alphah 1;
alphak 1;
alphaEps 0.76923;
}
RNGkEpsilonCoeffs
{
Cmu 0.0845;
C1 1.42;
C2 1.68;
C3 -0.33;
alphah 1;
alphak 1.39;
alphaEps 1.39;
eta0 4.38;
beta 0.012;
}
LaunderSharmaKECoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
C3 -0.33;
alphah 1;
alphak 1;
alphaEps 0.76923;
}
LRRCoeffs
{
Cmu 0.09;
Clrr1 1.8;
Clrr2 0.6;
C1 1.44;
C2 1.92;
Cs 0.25;
Ceps 0.15;
alphah 1;
alphaEps 0.76923;
alphaR 1.22;
}
LaunderGibsonRSTMCoeffs
{
Cmu 0.09;
Clg1 1.8;
Clg2 0.6;
C1 1.44;
C2 1.92;
C1Ref 0.5;
C2Ref 0.3;
Cs 0.25;
Ceps 0.15;
alphah 1;
alphaEps 0.76923;
alphaR 1.22;
}
wallFunctionCoeffs
{
kappa 0.4187;
E 9;
}
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,117 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object kinematicCloud1Properties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
InjectionModel ManualInjection;
DragModel SphereDrag;
DispersionModel StochasticDispersionRAS;
WallInteractionModel StandardWallInteraction;
minParticleMass minParticleMass [ 1 0 0 0 0 ] 1e-15;
rho0 rho0 [ 1 -3 0 0 0 ] 5000;
coupled true;
parcelTypeId 2;
interpolationSchemes
{
rho cell;
U cellPointFace;
mu cell;
}
integrationSchemes
{
U Euler;
}
ManualInjectionCoeffs
{
parcelBasisType mass;
massTotal massTotal [ 1 0 0 0 0 ] 0.0002;
SOI 0;
positionsFile kinematicCloud1Positions;
U0 ( 0 0 0 );
parcelPDF
{
pdfType RosinRammler;
RosinRammlerPDF
{
minValue 5e-05;
maxValue 0.0001;
d ( 7.5e-05 );
n ( 0.5 );
}
}
}
ConeInjectionCoeffs
{
SOI 0.001;
duration 0.005;
position ( 0.25 0.25 0.05 );
direction ( 0 -1 0 );
parcelsPerSecond 10000;
volumeFlowRate Constant;
volumeFlowRateCoeffs
{
value 0.01;
}
Umag Constant;
UmagCoeffs
{
value 50;
}
thetaInner Constant;
thetaInnerCoeffs
{
value 0;
}
thetaOuter Constant;
thetaOuterCoeffs
{
value 30;
}
parcelPDF
{
pdfType RosinRammler;
RosinRammlerPDF
{
minValue 5e-05;
maxValue 0.0001;
d ( 7.5e-05 );
n ( 0.5 );
}
}
}
StandardWallInteractionCoeffs
{
e e [ 0 0 0 0 0 ] 1;
mu mu [ 0 0 0 0 0 ] 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,93 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object thermoCloud1Properties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
InjectionModel ManualInjection;
DragModel SphereDrag;
DispersionModel StochasticDispersionRAS;
WallInteractionModel StandardWallInteraction;
HeatTransferModel RanzMarshall;
radiation off;
minParticleMass minParticleMass [ 1 0 0 0 0 ] 1e-15;
rho0 rho0 [ 1 -3 0 0 0 ] 2500;
T0 T0 [ 0 0 0 1 0 ] 300;
cp0 cp0 [ 0 2 -2 -1 0 ] 900;
epsilon0 epsilon0 [ 0 0 0 0 0 ] 1;
f0 f0 [ 0 0 0 0 0 ] 0.5;
coupled true;
parcelTypeId 1;
interpolationSchemes
{
rho cell;
U cellPointFace;
mu cell;
T cell;
Cp cell;
}
integrationSchemes
{
U Euler;
T Analytical;
}
ManualInjectionCoeffs
{
massTotal massTotal [ 1 0 0 0 0 ] 0.0001;
parcelBasisType mass;
SOI 0;
positionsFile thermoCloud1Positions;
U0 ( 0 0 0 );
parcelPDF
{
pdfType RosinRammler;
RosinRammlerPDF
{
minValue 5e-06;
maxValue 0.0005;
d ( 5e-05 );
n ( 0.5 );
}
}
}
StandardWallInteractionCoeffs
{
e e [ 0 0 0 0 0 ] 1;
mu mu [ 0 0 0 0 0 ] 0;
}
RanzMarshallCoeffs
{
Pr Pr [ 0 0 0 0 0 ] 0.7;
}
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,13 +10,14 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "constant";
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Thermophysical model
thermoType hThermo<pureMixture<constTransport<specieThermo<hConstThermo<perfectGas>>>>>;
mixture air 1 28.9 1007 0 1.84e-05 0.7;
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 0.5;
deltaT 0.0001;
writeControl adjustableRunTime;
writeInterval 0.01;
purgeWrite 0;
writeFormat ascii;
writePrecision 10;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep yes;
maxCo 0.2;
maxDeltaT 1;
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,6 +10,7 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "system";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -20,26 +21,20 @@ method metis;
simpleCoeffs
{
n (2 2 1);
n ( 2 2 1 );
delta 0.001;
}
hierarchicalCoeffs
{
n (1 1 1);
n ( 1 1 1 );
delta 0.001;
order xyz;
}
metisCoeffs
{
processorWeights
(
1
1
1
1
);
processorWeights ( 1 1 1 1 );
}
manualCoeffs
@ -49,8 +44,7 @@ manualCoeffs
distributed no;
roots
(
);
roots ( );
// ************************************************************************* //

View File

@ -0,0 +1,72 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
}
divSchemes
{
default none;
div(phi,U) Gauss upwind;
div(phid,p) Gauss upwind;
div(phiU,p) Gauss linear;
div(phi,h) Gauss upwind;
div(phi,k) Gauss upwind;
div(phi,epsilon) Gauss upwind;
div(U) Gauss linear;
div((muEff*dev2(grad(U).T()))) Gauss linear;
div(phi,Yi_h) Gauss upwind;
}
laplacianSchemes
{
default Gauss linear corrected;
laplacian(muEff,U) Gauss linear corrected;
laplacian(mut,U) Gauss linear corrected;
laplacian(DkEff,k) Gauss linear corrected;
laplacian(DepsilonEff,epsilon) Gauss linear corrected;
laplacian(DREff,R) Gauss linear corrected;
laplacian((rho*(1|A(U))),p) Gauss linear corrected;
laplacian(alphaEff,h) Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
p ;
}
// ************************************************************************* //

View File

@ -0,0 +1,158 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
rho
{
solver PCG;
preconditioner DIC;
tolerance 1e-05;
relTol 0;
}
U
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
p
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0;
}
G
{
solver PCG;
preconditioner DIC;
tolerance 1e-05;
relTol 0;
}
Yi
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0;
}
CO2
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0;
}
O2
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0;
}
N2
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0;
}
CH4
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0;
}
H2
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0;
}
H2O
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0;
}
CO
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0;
}
h
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
R
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
k
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
epsilon
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
}
PISO
{
transonic yes;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
momentumPredictor yes;
}
// ************************************************************************* //

View File

@ -1,191 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object RASProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RASModel kEpsilon;
turbulence on;
printCoeffs on;
laminarCoeffs
{
}
kEpsilonCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphaEps 0.76923;
}
RNGkEpsilonCoeffs
{
Cmu 0.0845;
C1 1.42;
C2 1.68;
alphak 1.39;
alphaEps 1.39;
eta0 4.38;
beta 0.012;
}
kOmegaSSTCoeffs
{
alphaK1 0.85034;
alphaK2 1.0;
alphaOmega1 0.5;
alphaOmega2 0.85616;
gamma1 0.5532;
gamma2 0.4403;
beta1 0.0750;
beta2 0.0828;
betaStar 0.09;
a1 0.31;
c1 10;
Cmu 0.09;
}
NonlinearKEShihCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphak 1;
alphaEps 0.76932;
A1 1.25;
A2 1000;
Ctau1 -4;
Ctau2 13;
Ctau3 -2;
alphaKsi 0.9;
}
LienCubicKECoeffs
{
C1 1.44;
C2 1.92;
alphak 1;
alphaEps 0.76923;
A1 1.25;
A2 1000;
Ctau1 -4;
Ctau2 13;
Ctau3 -2;
alphaKsi 0.9;
}
QZetaCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphaZeta 0.76923;
anisotropic no;
}
LaunderSharmaKECoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphaEps 0.76923;
}
LamBremhorstKECoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphaEps 0.76923;
}
LienCubicKELowReCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphak 1;
alphaEps 0.76923;
A1 1.25;
A2 1000;
Ctau1 -4;
Ctau2 13;
Ctau3 -2;
alphaKsi 0.9;
Am 0.016;
Aepsilon 0.263;
Amu 0.00222;
}
LienLeschzinerLowReCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphak 1;
alphaEps 0.76923;
Am 0.016;
Aepsilon 0.263;
Amu 0.00222;
}
LRRCoeffs
{
Cmu 0.09;
Clrr1 1.8;
Clrr2 0.6;
C1 1.44;
C2 1.92;
Cs 0.25;
Ceps 0.15;
alphaEps 0.76923;
}
LaunderGibsonRSTMCoeffs
{
Cmu 0.09;
Clg1 1.8;
Clg2 0.6;
C1 1.44;
C2 1.92;
C1Ref 0.5;
C2Ref 0.3;
Cs 0.25;
Ceps 0.15;
alphaEps 0.76923;
alphaR 1.22;
}
SpalartAllmarasCoeffs
{
alphaNut 1.5;
Cb1 0.1355;
Cb2 0.622;
Cw2 0.3;
Cw3 2;
Cv1 7.1;
Cv2 5.0;
}
wallFunctionCoeffs
{
kappa 0.4187;
E 9;
}
// ************************************************************************* //

View File

@ -1,36 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object cellSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Name of set to operate on
name rotor;
// One of clear/new/invert/add/delete|subset/list
action new;
// Actions to apply to cellSet. These are all the topoSetSource's ending
// in ..ToCell (see the meshTools library).
topoSetSources
(
// Cells in cell zone
zoneToCell
{
name rotor; // name of cellZone
}
);
// ************************************************************************* //

View File

@ -1,33 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object faceSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Name of set to operate on
name rotor;
// One of clear/new/invert/add/delete|subset/list
action delete;
// Actions to apply to pointSet. These are all the topoSetSource's ending
// in ..ToFace (see the meshTools library).
topoSetSources
(
// Select boundary faces
boundaryToFace
{
}
);
// ************************************************************************* //

View File

@ -1,33 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object faceSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Name of set to operate on
name rotor;
// One of clear/new/invert/add/delete|subset/list
action delete;
// Actions to apply to pointSet. These are all the topoSetSource's ending
// in ..ToFace (see the meshTools library).
topoSetSources
(
// Select boundary faces
boundaryToFace
{
}
);
// ************************************************************************* //

View File

@ -1,35 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object faceSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Name of set to operate on
name rotor;
// One of clear/new/invert/add/delete|subset/list
action new;
// Actions to apply to pointSet. These are all the topoSetSource's ending
// in ..ToFace (see the meshTools library).
topoSetSources
(
// Select based on cellSet
cellToFace
{
set rotor;
option all; // All faces of cells
}
);
// ************************************************************************* //

View File

@ -1,98 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object RASProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RASModel LaunderSharmaKE;
turbulence on;
printCoeffs on;
laminarCoeffs
{
}
kEpsilonCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
C3 0;
alphah 1.111;
alphak 1;
alphaEps 0.76923;
}
RNGkEpsilonCoeffs
{
Cmu 0.0845;
C1 1.42;
C2 1.68;
C3 0;
alphah 1.111;
alphak 1.39;
alphaEps 1.39;
eta0 4.38;
beta 0.012;
}
LaunderSharmaKECoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
C3 0;
alphah 1.111;
alphak 1;
alphaEps 0.76923;
}
LRRCoeffs
{
Cmu 0.09;
Clrr1 1.8;
Clrr2 0.6;
C1 1.44;
C2 1.92;
Cs 0.25;
Ceps 0.15;
alphah 1;
alphaEps 0.76923;
alphaR 1.22;
}
LaunderGibsonRSTMCoeffs
{
Cmu 0.09;
Clg1 1.8;
Clg2 0.6;
C1 1.44;
C2 1.92;
C1Ref 0.5;
C2Ref 0.3;
Cs 0.25;
Ceps 0.15;
alphah 1;
alphaEps 0.76923;
alphaR 1.22;
}
wallFunctionCoeffs
{
kappa 0.4187;
E 9;
}
// ************************************************************************* //

View File

@ -1,106 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
rho PCG
{
preconditioner DIC;
tolerance 1e-05;
relTol 0;
};
U PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
p PCG
{
preconditioner DIC;
tolerance 1e-06;
relTol 0;
};
ft PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
fu PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
b PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
Xi PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
Su PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
h PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
hu PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
R PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
k PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
epsilon PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
}
PISO
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
momentumPredictor yes;
}
// ************************************************************************* //

View File

@ -1,105 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
rho PCG
{
preconditioner DIC;
tolerance 1e-05;
relTol 0;
};
U PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
p PCG
{
preconditioner DIC;
tolerance 1e-06;
relTol 0;
};
ft PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
fu PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
b PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
Xi PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
Su PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
h PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
hu PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
R PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
k PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
epsilon PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
}
PISO
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
}
// ************************************************************************* //

View File

@ -1,105 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
rho PCG
{
preconditioner DIC;
tolerance 1e-05;
relTol 0;
};
U PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
p PCG
{
preconditioner DIC;
tolerance 1e-06;
relTol 0;
};
ft PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
fu PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
b PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
Xi PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
Su PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
h PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
hu PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
R PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
k PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
epsilon PBiCG
{
preconditioner DILU;
tolerance 1e-05;
relTol 0;
};
}
PISO
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
DT DT [ 0 2 -1 0 0 0 0 ] 4e-05;
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,11 +10,11 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
startFrom latestTime;
startTime 0;
@ -43,4 +43,5 @@ timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,13 +10,14 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
default Euler;
}
gradSchemes
@ -33,7 +34,7 @@ divSchemes
laplacianSchemes
{
default none;
laplacian(DT,T) Gauss linear corrected;
laplacian(DT,T) Gauss linear corrected;
}
interpolationSchemes
@ -49,7 +50,8 @@ snGradSchemes
fluxRequired
{
default no;
T;
T ;
}
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,18 +10,20 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
T PCG
T
{
preconditioner DIC;
tolerance 1e-06;
relTol 0;
};
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}
}
SIMPLE
@ -29,4 +31,5 @@ SIMPLE
nNonOrthogonalCorrectors 2;
}
// ************************************************************************* //

Some files were not shown because too many files have changed in this diff Show More