Merge branch 'master' of ssh://noisy/home/noisy3/OpenFOAM/OpenFOAM-dev

This commit is contained in:
andy
2010-06-23 17:50:40 +01:00
2228 changed files with 5719 additions and 4899 deletions

View File

@ -1,17 +1,20 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
unset COMP_FLAGS LINK_FLAGS
#
# use <sys/inotify.h> if available (Linux)
# unless otherwise specified (with FOAM_USE_STAT)
# unless otherwise specified (with USE_STAT)
#
# eg, ./Allwmake FOAM_USE_STAT
# eg, ./Allwmake USE_STAT
#
if [ -f /usr/include/sys/inotify.h -a "${1%USE_STAT}" = "$1" ]
then
unset FOAM_FILE_MONITOR
echo "Found <sys/inotify.h> -- using inotify for file monitoring."
unset COMP_FLAGS
else
export FOAM_FILE_MONITOR="-DFOAM_USE_STAT"
export COMP_FLAGS="-DFOAM_USE_STAT"
fi

View File

@ -1 +1 @@
EXE_INC = $(FOAM_FILE_MONITOR)
EXE_INC = $(COMP_FLAGS)

View File

@ -207,6 +207,10 @@ public:
//- Assignment from UList
inline void operator=(const UList<T>&);
//- Assignment from UIndirectList
inline void operator=(const UIndirectList<T>&);
// IOstream operators

View File

@ -406,29 +406,6 @@ inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::operator=
}
template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::operator=
(
const UList<T>& lst
)
{
if (capacity_ >= lst.size())
{
// can copy w/o reallocating, match initial size to avoid reallocation
List<T>::size(lst.size());
List<T>::operator=(lst);
}
else
{
// make everything available for the copy operation
List<T>::size(capacity_);
List<T>::operator=(lst);
capacity_ = List<T>::size();
}
}
template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::operator=
(
@ -461,4 +438,49 @@ inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::operator=
}
template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::operator=
(
const UList<T>& lst
)
{
if (capacity_ >= lst.size())
{
// can copy w/o reallocating, match initial size to avoid reallocation
List<T>::size(lst.size());
List<T>::operator=(lst);
}
else
{
// make everything available for the copy operation
List<T>::size(capacity_);
List<T>::operator=(lst);
capacity_ = List<T>::size();
}
}
template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::operator=
(
const UIndirectList<T>& lst
)
{
if (capacity_ >= lst.size())
{
// can copy w/o reallocating, match initial size to avoid reallocation
List<T>::size(lst.size());
List<T>::operator=(lst);
}
else
{
// make everything available for the copy operation
List<T>::size(capacity_);
List<T>::operator=(lst);
capacity_ = List<T>::size();
}
}
// ************************************************************************* //

View File

@ -91,8 +91,10 @@ public:
//- Return the last element of the list.
inline const T& last() const;
//- Return the complete list
inline const UList<T>& completeList() const;
//- Return the list addressing
inline const List<label>& addressing() const;

View File

@ -64,7 +64,7 @@ inline Stream& Foam::IOobject::writeBanner(Stream& os, bool noHint)
"| ========= | |\n"
"| \\\\ / F ield | OpenFOAM: The Open Source CFD Toolbox |\n"
"| \\\\ / O peration | Version: " << FOAMversion << spaces << "|\n"
"| \\\\ / A nd | Web: www.OpenFOAM.org |\n"
"| \\\\ / A nd | Web: www.OpenFOAM.com |\n"
"| \\\\/ M anipulation | |\n"
"\\*---------------------------------------------------------------------------*/\n";

View File

@ -65,6 +65,8 @@ public:
// Member Operators
inline scalar operator[](const label) const;
inline oneField field() const;
};

View File

@ -33,4 +33,10 @@ inline Foam::scalar Foam::oneField::operator[](const label) const
}
inline Foam::oneField Foam::oneField::field() const
{
return oneField();
}
// ************************************************************************* //

View File

@ -64,6 +64,8 @@ public:
// Member Operators
inline scalar operator[](const label) const;
inline zeroField field() const;
};

View File

@ -32,4 +32,11 @@ inline Foam::scalar Foam::zeroField::operator[](const label) const
return scalar(0);
}
inline Foam::zeroField Foam::zeroField::field() const
{
return zeroField();
}
// ************************************************************************* //

View File

@ -836,7 +836,7 @@ void Foam::argList::printUsage() const
Info<< nl
<<"Using OpenFOAM-" << Foam::FOAMversion
<<" (build: " << Foam::FOAMbuild << ") - see www.OpenFOAM.org"
<<" (build: " << Foam::FOAMbuild << ") - see www.OpenFOAM.com"
<< nl << endl;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2009 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -23,7 +23,6 @@ License
\*---------------------------------------------------------------------------*/
#include "IFstream.H"
// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * //
@ -239,7 +238,9 @@ Foam::interpolationLookUpTable<Type>::interpolationLookUpTable()
template<class Type>
Foam::interpolationLookUpTable<Type>::interpolationLookUpTable
(
const fileName& fn, const word& instance, const fvMesh& mesh
const fileName& fn,
const word& instance,
const fvMesh& mesh
)
:
List<scalarField>(),
@ -357,11 +358,11 @@ void Foam::interpolationLookUpTable<Type>::write
control.writeHeader(os);
os.writeKeyword("fields");
os << entries_ << token::END_STATEMENT << nl;
os.writeKeyword("fields")
<< entries_ << token::END_STATEMENT << nl;
os.writeKeyword("output");
os << output_ << token::END_STATEMENT << nl;
os.writeKeyword("output")
<< output_ << token::END_STATEMENT << nl;
if (this->size() == 0)
{
@ -370,8 +371,8 @@ void Foam::interpolationLookUpTable<Type>::write
"Foam::interpolationTable<Type>::write()"
) << "table is empty" << nl << exit(FatalError);
}
os.writeKeyword("values");
os << *this << token::END_STATEMENT << nl;
os.writeKeyword("values")
<< *this << token::END_STATEMENT << nl;
}
@ -381,8 +382,7 @@ template<class Type>
Foam::scalarField&
Foam::interpolationLookUpTable<Type>::operator[](const label i)
{
label ii = i;
label n = this->size();
const label n = this->size();
if (n <= 1)
{
@ -391,22 +391,22 @@ Foam::interpolationLookUpTable<Type>::operator[](const label i)
"Foam::interpolationLookUpTable<Type>::operator[](const label)"
) << "table has (" << n << ") columns" << nl << exit(FatalError);
}
else if (ii < 0)
else if (i < 0)
{
FatalErrorIn
(
"Foam::interpolationLookUpTable<Type>::operator[](const label)"
) << "index (" << ii << ") underflow" << nl << exit(FatalError);
) << "index (" << i << ") underflow" << nl << exit(FatalError);
}
else if (ii > n)
else if (i >= n)
{
FatalErrorIn
(
"Foam::interpolationLookUpTable<Type>::operator[](const label)"
) << "index (" << ii << ") overflow" << nl << exit(FatalError);
) << "index (" << i << ") overflow" << nl << exit(FatalError);
}
return List<scalarField>::operator[](ii);
return List<scalarField>::operator[](i);
}
@ -414,8 +414,7 @@ template<class Type>
const Foam::scalarField&
Foam::interpolationLookUpTable<Type>::operator[](const label i) const
{
label ii = i;
label n = this->size();
const label n = this->size();
if (n <= 1)
{
@ -425,26 +424,25 @@ Foam::interpolationLookUpTable<Type>::operator[](const label i) const
"(const label) const"
) << "table has (" << n << ") columns" << nl << exit(FatalError);
}
else if (ii < 0)
else if (i < 0)
{
FatalErrorIn
(
"Foam::interpolationLookUpTable<Type>::operator[]"
"(const label) const"
) << "index (" << ii << ") underflow" << nl << exit(FatalError);
) << "index (" << i << ") underflow" << nl << exit(FatalError);
}
else if (ii > n)
else if (i >= n)
{
FatalErrorIn
(
"Foam::interpolationLookUpTable<Type>::operator[]"
"(const label) const"
) << "index (" << ii << ") overflow" << nl
) << "index (" << i << ") overflow" << nl
<< exit(FatalError);
}
return List<scalarField>::operator[](ii);
return List<scalarField>::operator[](i);
}

View File

@ -65,7 +65,7 @@ class interpolationLookUpTable
{
private:
// Privsate data
// Private data
//- File name
fileName fileName_;
@ -88,10 +88,10 @@ private:
//- Output dictionaries
List<dictionary> output_;
//- Input indices from the look up table
//- Input indices from the lookup table
List<label> entryIndices_;
//- Output Indeces from the Look Up Table
//- Output indices from the lookup Table
List<label> outputIndices_;
//- Field names and indices
@ -118,7 +118,7 @@ private:
//- Check range of lookup value
bool checkRange(const scalar, const label) const;
//- Interpolate function return an scalar
//- Interpolate function returning a scalar
scalar interpolate
(
const label lo,
@ -159,13 +159,13 @@ public:
// Member Functions
//- Return true if the filed exists in the table
//- Return true if the field exists in the table
bool found(const word& fieldName) const;
//- Return the output list given a single input scalar
const List<scalar>& lookUp(const scalar);
//- Write Look Up Table to filename.
//- Write lookup table to filename.
void write
(
Ostream&,

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -65,8 +65,8 @@ Foam::uniformInterpolationTable<Type>::uniformInterpolationTable
dict.lookup("data") >> *this;
dict.lookup("x0") >> x0_;
dict.lookup("dx") >> dx_;
dict.lookup("log10") >> log10_;
dict.lookup("bound") >> bound_;
dict.readIfPresent("log10", log10_);
dict.readIfPresent("bound", bound_);
}
checkTable();
@ -94,13 +94,13 @@ Foam::uniformInterpolationTable<Type>::uniformInterpolationTable
List<scalar>(2, 0.0),
x0_(readScalar(dict.lookup("x0"))),
dx_(readScalar(dict.lookup("dx"))),
log10_(dict.lookup("log10")),
bound_(dict.lookup("bound"))
log10_(dict.lookupOrDefault<Switch>("log10", false)),
bound_(dict.lookupOrDefault<Switch>("bound", false))
{
if (initialiseOnly)
{
scalar xMax = readScalar(dict.lookup("xMax"));
label nIntervals = static_cast<label>(xMax - x0_)/dx_ + 1;
const scalar xMax = readScalar(dict.lookup("xMax"));
const label nIntervals = static_cast<label>(xMax - x0_)/dx_ + 1;
this->setSize(nIntervals);
}
else
@ -168,9 +168,9 @@ Type Foam::uniformInterpolationTable<Type>::interpolate(scalar x) const
}
}
label i = static_cast<label>((x - x0_)/dx_);
const label i = static_cast<label>((x - x0_)/dx_);
scalar xLo = x0_ + i*dx_;
const scalar xLo = x0_ + i*dx_;
Type fx = (x - xLo)/dx_*(operator[](i+1) - operator[](i)) + operator[](i);
@ -225,8 +225,14 @@ void Foam::uniformInterpolationTable<Type>::write() const
dict.add("data", static_cast<const List<scalar>&>(*this));
dict.add("x0", x0_);
dict.add("dx", dx_);
dict.add("log10", log10_);
dict.add("bound", bound_);
if (log10_)
{
dict.add("log10", log10_);
}
if (bound_)
{
dict.add("bound", bound_);
}
dict.regIOobject::write();
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -28,12 +28,13 @@ Description
Table with uniform interval in independant variable, with linear
interpolation
Example usage (scalar): values specified in a dictionary:
Example usage (scalar): values specified within a dictionary:
@verbatim
{
x0 0; // lower limit
dx 0.2; // fixed interval
log10 true; // take log(10) when interpolating?
x0 0; // lower limit
dx 0.2; // fixed interval
log10 true; // take log(10) when interpolating?
data // list of dependent data values
(
7870 // value at x0
@ -42,6 +43,7 @@ Description
7870 // value at x0 + n*dx
);
}
@endverbatim
SourceFiles
uniformInterpolationTable.C
@ -73,7 +75,7 @@ class uniformInterpolationTable
{
// Private data
// Control parameetrs
// Control parameters
//- Lower limit
scalar x0_;
@ -81,7 +83,7 @@ class uniformInterpolationTable
//- Fixed interval
scalar dx_;
//- Flag to indicate that x data is given in log10(x) form
//- Flag to indicate that x data are given in log10(x) form
Switch log10_;
//- Bound x values
@ -101,9 +103,9 @@ public:
// Constructors
//- Construct from IOobject and readFields flag. Creates a null object
// if readFields = false
uniformInterpolationTable(const IOobject& io, const bool readFields);
//- Construct from IOobject and readFields flag.
// Creates a null object if readFields = false
uniformInterpolationTable(const IOobject&, const bool readFields);
//- Construct from name, objectRegistry and dictionary.
// If initialiseOnly flag is set, control parameters are read from
@ -111,13 +113,13 @@ public:
uniformInterpolationTable
(
const word& tableName,
const objectRegistry& db,
const dictionary& dict,
const objectRegistry&,
const dictionary&,
const bool initialiseOnly = false
);
//- Construct as copy
uniformInterpolationTable(const uniformInterpolationTable& uit);
uniformInterpolationTable(const uniformInterpolationTable&);
//- Destructor
@ -174,22 +176,10 @@ public:
// Override ancestor size() function and [] operator
//- Return the size of the table
label size() const
{
return List<Type>::size();
}
using List<Type>::size;
//- Use List[] operator for read access
Type operator[](label x) const
{
return List<Type>::operator[](x);
}
//- Use List[] operator for write access
Type& operator[](label x)
{
return List<Type>::operator[](x);
}
//- Use List[] operator for read/write access
using List<Type>::operator[];
// I-O

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -38,6 +38,12 @@ const Scalar pTraits<Scalar>::max = ScalarVGREAT;
const char* pTraits<Scalar>::componentNames[] = { "x" };
pTraits<Scalar>::pTraits(const Scalar& p)
:
p_(p)
{}
pTraits<Scalar>::pTraits(Istream& is)
{
is >> p_;

View File

@ -65,6 +65,9 @@ public:
// Constructors
//- Construct from primitive
explicit pTraits(const Scalar&);
//- Construct from Istream
pTraits(Istream&);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -28,11 +28,17 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
const char* const Foam::pTraits<bool>::typeName = "bool";
const bool Foam::pTraits<bool>::zero(false);
const bool Foam::pTraits<bool>::one(true);
const bool Foam::pTraits<bool>::zero = false;
const bool Foam::pTraits<bool>::one = true;
const char* Foam::pTraits<bool>::componentNames[] = { "x" };
Foam::pTraits<bool>::pTraits(const bool& p)
:
p_(p)
{}
Foam::pTraits<bool>::pTraits(Istream& is)
{
is >> p_;

View File

@ -91,6 +91,9 @@ public:
// Constructors
//- Construct from primitive
explicit pTraits(const bool&);
//- Construct from Istream
pTraits(Istream&);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -41,6 +41,12 @@ const label pTraits<label>::max = labelMax;
const char* pTraits<label>::componentNames[] = { "x" };
pTraits<label>::pTraits(const label& p)
:
p_(p)
{}
pTraits<label>::pTraits(Istream& is)
{
is >> p_;

View File

@ -165,6 +165,9 @@ public:
// Constructors
//- Construct from primitive
explicit pTraits(const label&);
//- Construct from Istream
pTraits(Istream&);

View File

@ -41,6 +41,12 @@ const uLabel pTraits<uLabel>::max = uLabelMax;
const char* pTraits<uLabel>::componentNames[] = { "x" };
pTraits<uLabel>::pTraits(const uLabel& p)
:
p_(p)
{}
pTraits<uLabel>::pTraits(Istream& is)
{
is >> p_;

View File

@ -149,6 +149,9 @@ public:
// Constructors
//- Construct from primitive
explicit pTraits(const uLabel&);
//- Construct from Istream
pTraits(Istream&);

View File

@ -55,11 +55,13 @@ public:
// Constructors
//- Construct from primitive
pTraits(const PrimitiveType& p)
:
PrimitiveType(p)
{}
//- Construct from Istream
pTraits(Istream& is)
:
PrimitiveType(is)
@ -68,11 +70,13 @@ public:
// Member operators
//- Access to the primitive
operator PrimitiveType() const
{
return *this;
}
//- Access to the primitive
operator PrimitiveType&()
{
return *this;

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile

View File

@ -73,6 +73,8 @@ Foam::porousZone::porousZone
cellZoneID_(mesh_.cellZones().findZoneID(name)),
coordSys_(dict, mesh),
porosity_(1),
intensity_(0),
mixingLength_(0),
C0_(0),
C1_(0),
D_("D", dimensionSet(0, -2, 0, 0, 0), tensor::zero),
@ -95,21 +97,57 @@ Foam::porousZone::porousZone
// porosity
if (dict_.readIfPresent("porosity", porosity_))
if
(
dict_.readIfPresent("porosity", porosity_)
&& (porosity_ <= 0.0 || porosity_ > 1.0)
)
{
if (porosity_ <= 0.0 || porosity_ > 1.0)
{
FatalIOErrorIn
(
"Foam::porousZone::porousZone"
"(const fvMesh&, const word&, const dictionary&)",
dict_
)
<< "out-of-range porosity value " << porosity_
<< exit(FatalIOError);
}
FatalIOErrorIn
(
"Foam::porousZone::porousZone"
"(const fvMesh&, const word&, const dictionary&)",
dict_
)
<< "out-of-range porosity value " << porosity_
<< exit(FatalIOError);
}
// turbulent intensity
if
(
dict_.readIfPresent("intensity", intensity_)
&& (intensity_ <= 0.0 || intensity_ > 1.0)
)
{
FatalIOErrorIn
(
"Foam::porousZone::porousZone"
"(const fvMesh&, const word&, const dictionary&)",
dict_
)
<< "out-of-range turbulent intensity value " << intensity_
<< exit(FatalIOError);
}
// turbulent length scale
if
(
dict_.readIfPresent("mixingLength", mixingLength_)
&& (mixingLength_ <= 0.0)
)
{
FatalIOErrorIn
(
"Foam::porousZone::porousZone"
"(const fvMesh&, const word&, const dictionary&)",
dict_
)
<< "out-of-range turbulent length scale " << mixingLength_
<< exit(FatalIOError);
}
// powerLaw coefficients
if (const dictionary* dictPtr = dict_.subDictPtr("powerLaw"))
{
@ -171,9 +209,6 @@ Foam::porousZone::porousZone
}
}
// provide some feedback for the user
// writeDict(Info, false);
// it is an error not to define anything
if
(
@ -191,6 +226,12 @@ Foam::porousZone::porousZone
"nor Darcy-Forchheimer law (d/f) specified"
<< exit(FatalIOError);
}
// feedback for the user
if (dict.lookupOrDefault("printCoeffs", false))
{
writeDict(Info, false);
}
}
@ -365,7 +406,8 @@ void Foam::porousZone::writeDict(Ostream& os, bool subDict) const
if (subDict)
{
os << indent << token::BEGIN_BLOCK << incrIndent << nl;
os.writeKeyword("name") << zoneName() << token::END_STATEMENT << nl;
os.writeKeyword("name")
<< zoneName() << token::END_STATEMENT << nl;
}
else
{
@ -375,40 +417,53 @@ void Foam::porousZone::writeDict(Ostream& os, bool subDict) const
if (dict_.found("note"))
{
os.writeKeyword("note") << string(dict_.lookup("note"))
<< token::END_STATEMENT << nl;
os.writeKeyword("note")
<< string(dict_.lookup("note")) << token::END_STATEMENT << nl;
}
coordSys_.writeDict(os, true);
if (dict_.found("porosity"))
{
os.writeKeyword("porosity") << porosity() << token::END_STATEMENT << nl;
os.writeKeyword("porosity")
<< porosity() << token::END_STATEMENT << nl;
}
if (dict_.found("intensity"))
{
os.writeKeyword("intensity")
<< intensity() << token::END_STATEMENT << nl;
}
if (dict_.found("mixingLength"))
{
os.writeKeyword("mixingLength")
<< mixingLength() << token::END_STATEMENT << nl;
}
// powerLaw coefficients
if (const dictionary* dictPtr = dict_.subDictPtr("powerLaw"))
{
os << indent << "powerLaw";
os << indent << "powerLaw";
dictPtr->write(os);
}
// Darcy-Forchheimer coefficients
if (const dictionary* dictPtr = dict_.subDictPtr("Darcy"))
{
os << indent << "Darcy";
os << indent << "Darcy";
dictPtr->write(os);
}
os << decrIndent << indent << token::END_BLOCK << endl;
os << decrIndent << indent << token::END_BLOCK << endl;
}
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
Foam::Ostream& Foam::operator<<(Ostream& os, const porousZone& pZone)
Foam::Ostream& Foam::operator<<(Ostream& os, const porousZone& pz)
{
pZone.writeDict(os);
pz.writeDict(os);
return os;
}

View File

@ -51,6 +51,25 @@ Description
The porousZones method porousZones::ddt() mirrors the normal fvm::ddt()
method, but accounts for the effective volume of the cells.
An example dictionary entry:
@verbatim
cat1
{
note "some catalyst";
coordinateSystem system_10;
porosity 0.809;
intensity 0.001; // optional
mixingLength 0.0001; // optional
printCoeffs yes; // optional: feedback for the user
Darcy
{
d d [0 -2 0 0 0] (-1000 -1000 5.3756e+07);
f f [0 -1 0 0 0] (-1000 -1000 15.83);
}
}
@endverbatim
See Also
porousZones and coordinateSystems
@ -111,6 +130,12 @@ class porousZone
// Currently unused.
scalar porosity_;
//- Turbulent intensity as fraction of the velocity
scalar intensity_;
//- Turbulent length scale
scalar mixingLength_;
//- powerLaw coefficient C0
scalar C0_;
@ -283,6 +308,30 @@ public:
return porosity_;
}
//- Return turbulent intensity
scalar intensity() const
{
return intensity_;
}
//- Edit access to turbulent intensity
scalar& intensity()
{
return intensity_;
}
//- Return turbulent length scale
scalar mixingLength() const
{
return mixingLength_;
}
//- Edit access to turbulent length scale
scalar& mixingLength()
{
return mixingLength_;
}
//- Modify time derivative elements according to porosity
template<class Type>

View File

@ -116,12 +116,13 @@ void buoyantPressureFvPatchScalarField::updateCoeffs()
const fvPatchField<scalar>& rho =
patch().lookupPatchField<volScalarField, scalar>(rhoName_);
// If the variable name is "pmh" or "pd" assume it is p - rho*g.h
// and set the gradient appropriately.
// If the variable name is "p_rgh", "ph_rgh" or "pd"
// assume it is p? - rho*g.h and set the gradient appropriately.
// Otherwise assume the variable is the static pressure.
if
(
dimensionedInternalField().name() == "pmh"
dimensionedInternalField().name() == "p_rgh"
|| dimensionedInternalField().name() == "ph_rgh"
|| dimensionedInternalField().name() == "pd"
)
{

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -28,6 +28,7 @@ License
#include "calculatedFvPatchFields.H"
#include "zeroGradientFvPatchFields.H"
#include "coupledFvPatchFields.H"
#include "UIndirectList.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
@ -177,6 +178,95 @@ void Foam::fvMatrix<Type>::addBoundarySource
}
template<class Type>
template<template<class> class ListType>
void Foam::fvMatrix<Type>::setValuesFromList
(
const unallocLabelList& cellLabels,
const ListType<Type>& values
)
{
const fvMesh& mesh = psi_.mesh();
const cellList& cells = mesh.cells();
const unallocLabelList& own = mesh.owner();
const unallocLabelList& nei = mesh.neighbour();
scalarField& Diag = diag();
Field<Type>& psi =
const_cast
<
GeometricField<Type, fvPatchField, volMesh>&
>(psi_).internalField();
forAll(cellLabels, i)
{
const label celli = cellLabels[i];
const Type& value = values[i];
psi[celli] = value;
source_[celli] = value*Diag[celli];
if (symmetric() || asymmetric())
{
const cell& c = cells[celli];
forAll(c, j)
{
const label facei = c[j];
if (mesh.isInternalFace(facei))
{
if (symmetric())
{
if (celli == own[facei])
{
source_[nei[facei]] -= upper()[facei]*value;
}
else
{
source_[own[facei]] -= upper()[facei]*value;
}
upper()[facei] = 0.0;
}
else
{
if (celli == own[facei])
{
source_[nei[facei]] -= lower()[facei]*value;
}
else
{
source_[own[facei]] -= upper()[facei]*value;
}
upper()[facei] = 0.0;
lower()[facei] = 0.0;
}
}
else
{
label patchi = mesh.boundaryMesh().whichPatch(facei);
if (internalCoeffs_[patchi].size())
{
label patchFacei =
mesh.boundaryMesh()[patchi].whichFace(facei);
internalCoeffs_[patchi][patchFacei] =
pTraits<Type>::zero;
boundaryCoeffs_[patchi][patchFacei] =
pTraits<Type>::zero;
}
}
}
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class Type>
@ -393,92 +483,25 @@ Foam::fvMatrix<Type>::~fvMatrix()
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
// Set solution in given cells and eliminate corresponding
// equations from the matrix
template<class Type>
void Foam::fvMatrix<Type>::setValues
(
const labelList& cellLabels,
const Field<Type>& values
const unallocLabelList& cellLabels,
const UList<Type>& values
)
{
const fvMesh& mesh = psi_.mesh();
this->setValuesFromList(cellLabels, values);
}
const cellList& cells = mesh.cells();
const unallocLabelList& own = mesh.owner();
const unallocLabelList& nei = mesh.neighbour();
scalarField& Diag = diag();
Field<Type>& psi =
const_cast
<
GeometricField<Type, fvPatchField, volMesh>&
>(psi_).internalField();
forAll(cellLabels, i)
{
label celli = cellLabels[i];
psi[celli] = values[i];
source_[celli] = values[i]*Diag[celli];
if (symmetric() || asymmetric())
{
const cell& c = cells[celli];
forAll(c, j)
{
label facei = c[j];
if (mesh.isInternalFace(facei))
{
if (symmetric())
{
if (celli == own[facei])
{
source_[nei[facei]] -= upper()[facei]*values[i];
}
else
{
source_[own[facei]] -= upper()[facei]*values[i];
}
upper()[facei] = 0.0;
}
else
{
if (celli == own[facei])
{
source_[nei[facei]] -= lower()[facei]*values[i];
}
else
{
source_[own[facei]] -= upper()[facei]*values[i];
}
upper()[facei] = 0.0;
lower()[facei] = 0.0;
}
}
else
{
label patchi = mesh.boundaryMesh().whichPatch(facei);
if (internalCoeffs_[patchi].size())
{
label patchFacei =
mesh.boundaryMesh()[patchi].whichFace(facei);
internalCoeffs_[patchi][patchFacei] =
pTraits<Type>::zero;
boundaryCoeffs_[patchi][patchFacei] =
pTraits<Type>::zero;
}
}
}
}
}
template<class Type>
void Foam::fvMatrix<Type>::setValues
(
const unallocLabelList& cellLabels,
const UIndirectList<Type>& values
)
{
this->setValuesFromList(cellLabels, values);
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -101,6 +101,8 @@ tmp<GeometricField<Type, fvPatchField, volMesh> > operator&
template<class Type>
Ostream& operator<<(Ostream&, const fvMatrix<Type>&);
template<class T> class UIndirectList;
/*---------------------------------------------------------------------------*\
Class fvMatrix Declaration
@ -112,8 +114,6 @@ class fvMatrix
public refCount,
public lduMatrix
{
public:
// Private data
//- Const reference to GeometricField<Type, fvPatchField, volMesh>
@ -139,8 +139,12 @@ public:
mutable GeometricField<Type, fvsPatchField, surfaceMesh>
*faceFluxCorrectionPtr_;
protected:
// Private Member Functions
//- Declare friendship with the fvSolver class
friend class fvSolver;
// Protected Member Functions
//- Add patch contribution to internal field
template<class Type2>
@ -193,12 +197,22 @@ public:
const bool couples=true
) const;
// Matrix manipulation functionality
//- Set solution in given cells to the specified values
template<template<class> class ListType>
void setValuesFromList
(
const unallocLabelList& cells,
const ListType<Type>& values
);
public:
//- Solver class returned by the solver function
// used for systems in which it is useful to cache the solver for reuse
// e.g. if the solver is potentialy expensive to construct (AMG) and can
// e.g. if the solver is potentially expensive to construct (AMG) and can
// be used several times (PISO)
class fvSolver
{
@ -309,12 +323,20 @@ public:
// Operations
//- Set solution in given cells and eliminate corresponding
// equations from the matrix
//- Set solution in given cells to the specified values
// and eliminate the corresponding equations from the matrix.
void setValues
(
const labelList& cells,
const Field<Type>& values
const unallocLabelList& cells,
const UList<Type>& values
);
//- Set solution in given cells to the specified values
// and eliminate the corresponding equations from the matrix.
void setValues
(
const unallocLabelList& cells,
const UIndirectList<Type>& values
);
//- Set reference level for solution

View File

@ -53,7 +53,7 @@ void Foam::MULES::explicitSolve
psi,
phi,
phiPsi,
zero(), zero(),
zeroField(), zeroField(),
psiMax, psiMin
);
}
@ -74,7 +74,7 @@ void Foam::MULES::implicitSolve
psi,
phi,
phiPsi,
zero(), zero(),
zeroField(), zeroField(),
psiMax, psiMin
);
}

View File

@ -107,19 +107,20 @@ void Foam::MULES::explicitSolve
{
psiIf =
(
mesh.Vsc0()*rho.oldTime()*psi0/(deltaT*mesh.Vsc())
+ Su
mesh.Vsc0()().field()*rho.oldTime().field()
*psi0/(deltaT*mesh.Vsc()().field())
+ Su.field()
- psiIf
)/(rho/deltaT - Sp);
)/(rho.field()/deltaT - Sp.field());
}
else
{
psiIf =
(
rho.oldTime()*psi0/deltaT
+ Su
rho.oldTime().field()*psi0/deltaT
+ Su.field()
- psiIf
)/(rho/deltaT - Sp);
)/(rho.field()/deltaT - Sp.field());
}
psi.correctBoundaryConditions();
@ -456,23 +457,32 @@ void Foam::MULES::limiter
tmp<volScalarField::DimensionedInternalField> V0 = mesh.Vsc0();
psiMaxn =
V*((rho/deltaT - Sp)*psiMaxn - Su)
- (V0()/deltaT)*rho.oldTime()*psi0
V*((rho.field()/deltaT - Sp.field())*psiMaxn - Su.field())
- (V0().field()/deltaT)*rho.oldTime().field()*psi0
+ sumPhiBD;
psiMinn =
V*(Su - (rho/deltaT - Sp)*psiMinn)
+ (V0/deltaT)*rho.oldTime()*psi0
V*(Su.field() - (rho.field()/deltaT - Sp.field())*psiMinn)
+ (V0().field()/deltaT)*rho.oldTime().field()*psi0
- sumPhiBD;
}
else
{
psiMaxn =
V*((rho/deltaT - Sp)*psiMaxn - (rho.oldTime()/deltaT)*psi0 - Su)
V
*(
(rho.field()/deltaT - Sp.field())*psiMaxn
- (rho.oldTime().field()/deltaT)*psi0
- Su.field()
)
+ sumPhiBD;
psiMinn =
V*((rho/deltaT)*psi0 - (rho.oldTime()/deltaT - Sp)*psiMinn + Su)
V
*(
(rho.field()/deltaT)*psi0
- (rho.oldTime().field()/deltaT - Sp.field())*psiMinn + Su.field()
)
- sumPhiBD;
}

View File

@ -103,7 +103,7 @@ void Foam::writeRegisteredObject::write()
(
"Foam::writeRegisteredObject::read(const dictionary&)"
) << "Object " << objectNames_[i] << " not found in "
<< "database. Available objects are:" << nl << obr_.toc()
<< "database. Available objects:" << nl << obr_.sortedToc()
<< endl;
}

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile

View File

@ -0,0 +1,75 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application XXX;
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 0.1;
deltaT 1e-05;
writeControl timeStep;
writeInterval 10;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
functions
{
minMax
{
// Type of functionObject
type fieldMinMax;
// Where to load it from (if not already in solver)
functionObjectLibs ("libfieldAverage.so");
// Function object enabled flag
enabled true;
// Log to output (default: false)
log false;
// Write information to file (default: true)
write true;
// Fields to be monitored - runTime modifiable
fields
(
U
p
);
}
}
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2009 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -59,6 +59,7 @@ Foam::fieldMinMax::fieldMinMax
name_(name),
obr_(obr),
active_(true),
write_(true),
log_(false),
mode_(mdMag),
fieldSet_(),
@ -92,9 +93,10 @@ void Foam::fieldMinMax::read(const dictionary& dict)
{
if (active_)
{
write_ = dict.lookupOrDefault<Switch>("write", true);
log_ = dict.lookupOrDefault<Switch>("log", false);
mode_ = modeTypeNames_[dict.lookup("mode")];
mode_ = modeTypeNames_[dict.lookupOrDefault<word>("mode", "magnitude")];
dict.lookup("fields") >> fieldSet_;
}
}
@ -171,7 +173,10 @@ void Foam::fieldMinMax::write()
if (active_)
{
// Create the fieldMinMax file if not already created
makeFile();
if (write_)
{
makeFile();
}
forAll(fieldSet_, fieldI)
{
@ -195,13 +200,17 @@ void Foam::fieldMinMax::calcMinMaxFields<Foam::scalar>
{
const volScalarField& field =
obr_.lookupObject<volScalarField>(fieldName);
scalar minValue = min(field).value();
scalar maxValue = max(field).value();
const scalar minValue = min(field).value();
const scalar maxValue = max(field).value();
if (Pstream::master())
{
fieldMinMaxFilePtr_() << obr_.time().value() << tab
<< fieldName << tab << minValue << tab << maxValue << endl;
if (write_)
{
fieldMinMaxFilePtr_()
<< obr_.time().value() << tab
<< fieldName << tab << minValue << tab << maxValue << endl;
}
if (log_)
{

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2009 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -74,11 +74,13 @@ public:
mdCmpt
};
protected:
// Protected data
//- Mode type names
static const NamedEnum<modeType, 2> modeTypeNames_;
//- Name of this set of field min/max.
// Also used as the name of the output directory.
word name_;
@ -88,11 +90,11 @@ protected:
//- on/off switch
bool active_;
//- Switch to send output to Info as well as to file
Switch log_;
//- Switch to enable/disable writing to file
Switch write_;
//- Mode type names
static const NamedEnum<modeType, 2> modeTypeNames_;
//- Switch to send output to Info as well
Switch log_;
//- Mode for min/max - only applicable for ranks > 0
modeType mode_;
@ -100,7 +102,6 @@ protected:
//- Fields to assess min/max
wordList fieldSet_;
//- Min/max file ptr
autoPtr<OFstream> fieldMinMaxFilePtr_;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2009 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -42,14 +42,18 @@ void Foam::fieldMinMax::calcMinMaxFields(const word& fieldName)
{
case mdMag:
{
scalar minValue = min(mag(field)).value();
scalar maxValue = max(mag(field)).value();
const scalar minValue = min(mag(field)).value();
const scalar maxValue = max(mag(field)).value();
if (Pstream::master())
{
fieldMinMaxFilePtr_() << obr_.time().value() << tab
<< fieldName << tab << minValue << tab << maxValue
<< endl;
if (write_)
{
fieldMinMaxFilePtr_()
<< obr_.time().value() << tab
<< fieldName << tab << minValue << tab << maxValue
<< endl;
}
if (log_)
{
@ -65,14 +69,18 @@ void Foam::fieldMinMax::calcMinMaxFields(const word& fieldName)
}
case mdCmpt:
{
Type minValue = min(field).value();
Type maxValue = max(field).value();
const Type minValue = min(field).value();
const Type maxValue = max(field).value();
if (Pstream::master())
{
fieldMinMaxFilePtr_() << obr_.time().value() << tab
<< fieldName << tab << minValue << tab << maxValue
<< endl;
if (write_)
{
fieldMinMaxFilePtr_()
<< obr_.time().value() << tab
<< fieldName << tab << minValue << tab << maxValue
<< endl;
}
if (log_)
{

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile

View File

@ -61,7 +61,7 @@ protected:
// Protected data
//- Name of this fieldValue object
//- Name of this fieldValue object
word name_;
//- Database this class is registered to

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile

View File

@ -61,10 +61,11 @@ DeardorffDiffStress::DeardorffDiffStress
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
LESModel(modelName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
GenSGSStress(rho, U, phi, thermoPhysicalModel),
ck_

View File

@ -102,7 +102,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -34,6 +34,11 @@ namespace compressible
namespace LESModels
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameWithName(GenEddyVisc, "GenEddyVisc");
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
GenEddyVisc::GenEddyVisc
@ -42,18 +47,11 @@ GenEddyVisc::GenEddyVisc
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel
(
word("GenEddyVisc"),
rho,
U,
phi,
thermoPhysicalModel,
turbulenceModelName
),
LESModel(modelName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
ce_
(

View File

@ -82,6 +82,9 @@ protected:
public:
//- Partial Runtime type information
static const word typeName;
// Constructors
//- Construct from components
@ -91,7 +94,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -34,6 +34,11 @@ namespace compressible
namespace LESModels
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameWithName(GenSGSStress, "GenSGSStress");
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
GenSGSStress::GenSGSStress
@ -42,18 +47,11 @@ GenSGSStress::GenSGSStress
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel
(
word("GenSGSStress"),
rho,
U,
phi,
thermoPhysicalModel,
turbulenceModelName
),
LESModel(modelName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
ce_
(

View File

@ -82,6 +82,9 @@ protected:
public:
//- Partial Runtime type information
static const word typeName;
// Constructors
//- Constructor from components
@ -91,7 +94,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -69,10 +69,11 @@ Smagorinsky::Smagorinsky
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
LESModel(modelName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
GenEddyVisc(rho, U, phi, thermoPhysicalModel),
ck_

View File

@ -97,7 +97,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -107,10 +107,11 @@ SpalartAllmaras::SpalartAllmaras
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
LESModel(modelName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
sigmaNut_
(

View File

@ -112,7 +112,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -91,10 +91,11 @@ dynOneEqEddy::dynOneEqEddy
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
LESModel(modelName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
GenEddyVisc(rho, U, phi, thermoPhysicalModel),
filterPtr_(LESfilter::New(U.mesh(), coeffDict())),

View File

@ -108,7 +108,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -64,10 +64,11 @@ lowReOneEqEddy::lowReOneEqEddy
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
LESModel(modelName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
GenEddyVisc(rho, U, phi, thermoPhysicalModel),
ck_

View File

@ -99,7 +99,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -60,10 +60,11 @@ oneEqEddy::oneEqEddy
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
LESModel(modelName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
GenEddyVisc(rho, U, phi, thermoPhysicalModel),
ck_

View File

@ -102,7 +102,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermoPhysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -51,10 +51,11 @@ LRR::LRR
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel, turbulenceModelName),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
Cmu_
(
@ -342,7 +343,7 @@ void LRR::correct()
volSymmTensorField P = -twoSymm(R_ & fvc::grad(U_));
volScalarField G("RASModel::G", 0.5*mag(tr(P)));
// Update espsilon and G at the wall
// Update epsilon and G at the wall
epsilon_.boundaryField().updateCoeffs();
// Dissipation equation

View File

@ -73,7 +73,10 @@ class LRR
:
public RASModel
{
// Private data
protected:
// Protected data
// Model coefficients
@ -117,7 +120,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -51,10 +51,11 @@ LaunderGibsonRSTM::LaunderGibsonRSTM
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel, turbulenceModelName),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
Cmu_
(
@ -380,7 +381,7 @@ void LaunderGibsonRSTM::correct()
volSymmTensorField P = -twoSymm(R_ & fvc::grad(U_));
volScalarField G("RASModel::G", 0.5*mag(tr(P)));
// Update espsilon and G at the wall
// Update epsilon and G at the wall
epsilon_.boundaryField().updateCoeffs();
// Dissipation equation

View File

@ -76,7 +76,10 @@ class LaunderGibsonRSTM
:
public RASModel
{
// Private data
protected:
// Protected data
// Model coefficients
@ -126,7 +129,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -66,10 +66,11 @@ LaunderSharmaKE::LaunderSharmaKE
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel, turbulenceModelName),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
Cmu_
(

View File

@ -69,7 +69,10 @@ class LaunderSharmaKE
:
public RASModel
{
// Private data
protected:
// Protected data
// Model coefficients
@ -110,7 +113,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -50,10 +50,11 @@ RNGkEpsilon::RNGkEpsilon
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel, turbulenceModelName),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
Cmu_
(
@ -310,7 +311,7 @@ void RNGkEpsilon::correct()
volScalarField R =
((eta*(-eta/eta0_ + scalar(1)))/(beta_*eta3 + scalar(1)));
// Update espsilon and G at the wall
// Update epsilon and G at the wall
epsilon_.boundaryField().updateCoeffs();
// Dissipation equation

View File

@ -70,7 +70,10 @@ class RNGkEpsilon
:
public RASModel
{
// Private data
protected:
// Protected data
// Model coefficients
@ -106,7 +109,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -110,10 +110,11 @@ SpalartAllmaras::SpalartAllmaras
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel, turbulenceModelName),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
sigmaNut_
(

View File

@ -87,7 +87,10 @@ class SpalartAllmaras
:
public RASModel
{
// Private data
protected:
// Protected data
// Model coefficients
@ -115,7 +118,7 @@ class SpalartAllmaras
wallDist d_;
// Private Member Functions
// Protected Member Functions
tmp<volScalarField> chi() const;
tmp<volScalarField> fv1(const volScalarField& chi) const;
@ -147,7 +150,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -50,10 +50,11 @@ kEpsilon::kEpsilon
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel, turbulenceModelName),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
Cmu_
(
@ -283,7 +284,7 @@ void kEpsilon::correct()
volScalarField G("RASModel::G", mut_*(tgradU() && dev(twoSymm(tgradU()))));
tgradU.clear();
// Update espsilon and G at the wall
// Update epsilon and G at the wall
epsilon_.boundaryField().updateCoeffs();
// Dissipation equation

View File

@ -68,7 +68,10 @@ class kEpsilon
:
public RASModel
{
// Private data
protected:
// Protected data
// Model coefficients
@ -102,7 +105,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -93,10 +93,11 @@ kOmegaSST::kOmegaSST
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel, turbulenceModelName),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
alphaK1_
(

View File

@ -98,7 +98,10 @@ class kOmegaSST
:
public RASModel
{
// Private data
protected:
// Protected data
// Model coefficients
@ -185,7 +188,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -48,10 +48,11 @@ laminar::laminar
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel, turbulenceModelName)
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName)
{}

View File

@ -69,7 +69,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -91,10 +91,11 @@ realizableKE::realizableKE
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
RASModel(typeName, rho, U, phi, thermophysicalModel, turbulenceModelName),
RASModel(modelName, rho, U, phi, thermophysicalModel, turbulenceModelName),
Cmu_
(
@ -318,7 +319,7 @@ void realizableKE::correct()
volScalarField G("RASModel::G", mut_*(gradU && dev(twoSymm(gradU))));
// Update espsilon and G at the wall
// Update epsilon and G at the wall
epsilon_.boundaryField().updateCoeffs();
// Dissipation equation

View File

@ -78,7 +78,10 @@ class realizableKE
:
public RASModel
{
// Private data
protected:
// Protected data
// Model coefficients
@ -98,7 +101,7 @@ class realizableKE
volScalarField alphat_;
// Private Member Functions
// Protected Member Functions
tmp<volScalarField> rCmu
(
@ -124,7 +127,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
const basicThermo& thermophysicalModel,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -56,10 +56,11 @@ DeardorffDiffStress::DeardorffDiffStress
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport, turbulenceModelName),
LESModel(modelName, U, phi, transport, turbulenceModelName),
GenSGSStress(U, phi, transport),
ck_

View File

@ -101,7 +101,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -34,6 +34,11 @@ namespace incompressible
namespace LESModels
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameWithName(GenEddyVisc, "GenEddyVisc");
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
GenEddyVisc::GenEddyVisc
@ -41,10 +46,11 @@ GenEddyVisc::GenEddyVisc
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(word("GenEddyVisc"), U, phi, transport, turbulenceModelName),
LESModel(modelName, U, phi, transport, turbulenceModelName),
ce_
(

View File

@ -74,6 +74,9 @@ protected:
public:
//- Partial Runtime type information
static const word typeName;
// Constructors
//- Construct from components
@ -82,7 +85,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -34,6 +34,11 @@ namespace incompressible
namespace LESModels
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameWithName(GenSGSStress, "GenSGSStress");
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
GenSGSStress::GenSGSStress
@ -41,10 +46,11 @@ GenSGSStress::GenSGSStress
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(word("GenSGSStress"), U, phi, transport, turbulenceModelName),
LESModel(modelName, U, phi, transport, turbulenceModelName),
ce_
(

View File

@ -78,6 +78,9 @@ protected:
public:
//- Partial Runtime type information
static const word typeName;
// Constructors
//- Construct from components
@ -86,7 +89,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -56,10 +56,11 @@ LRRDiffStress::LRRDiffStress
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport, turbulenceModelName),
LESModel(modelName, U, phi, transport, turbulenceModelName),
GenSGSStress(U, phi, transport),
ck_

View File

@ -100,7 +100,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -56,10 +56,11 @@ Smagorinsky::Smagorinsky
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport, turbulenceModelName),
LESModel(modelName, U, phi, transport, turbulenceModelName),
GenEddyVisc(U, phi, transport),
ck_

View File

@ -97,7 +97,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -47,10 +47,11 @@ Smagorinsky2::Smagorinsky2
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport, turbulenceModelName),
LESModel(modelName, U, phi, transport, turbulenceModelName),
Smagorinsky(U, phi, transport),
cD2_

View File

@ -94,7 +94,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -94,10 +94,11 @@ SpalartAllmarasDDES::SpalartAllmarasDDES
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
SpalartAllmaras(U, phi, transport, turbulenceModelName, typeName)
SpalartAllmaras(U, phi, transport, turbulenceModelName, modelName)
{}

View File

@ -96,7 +96,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -144,10 +144,11 @@ SpalartAllmarasIDDES::SpalartAllmarasIDDES
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
SpalartAllmaras(U, phi, transport, turbulenceModelName, typeName),
SpalartAllmaras(U, phi, transport, turbulenceModelName, modelName),
fwStar_
(

View File

@ -105,7 +105,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -60,10 +60,11 @@ dynLagrangian::dynLagrangian
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport, turbulenceModelName),
LESModel(modelName, U, phi, transport, turbulenceModelName),
GenEddyVisc(U, phi, transport),
flm_

View File

@ -132,7 +132,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

View File

@ -47,10 +47,11 @@ dynMixedSmagorinsky::dynMixedSmagorinsky
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName
const word& turbulenceModelName,
const word& modelName
)
:
LESModel(typeName, U, phi, transport, turbulenceModelName),
LESModel(modelName, U, phi, transport, turbulenceModelName),
scaleSimilarity(U, phi, transport),
dynSmagorinsky(U, phi, transport)
{

View File

@ -100,7 +100,8 @@ public:
const volVectorField& U,
const surfaceScalarField& phi,
transportModel& transport,
const word& turbulenceModelName = turbulenceModel::typeName
const word& turbulenceModelName = turbulenceModel::typeName,
const word& modelName = typeName
);

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