Merge commit 'OpenCFD/master' into olesenm

This commit is contained in:
Mark Olesen
2009-12-01 18:55:31 +01:00
19 changed files with 236 additions and 175 deletions

View File

@ -274,7 +274,7 @@ addLayersControls
maxThicknessToMedialRatio 0.3; maxThicknessToMedialRatio 0.3;
// Angle used to pick up medial axis points // Angle used to pick up medial axis points
minMedianAxisAngle 130; minMedianAxisAngle 90;
// Create buffer region for new layer terminations // Create buffer region for new layer terminations
nBufferCellsNoExtrude 0; nBufferCellsNoExtrude 0;

View File

@ -1,9 +0,0 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
if [ "$TEC_360_2009" ]
then
wmake
fi
# ----------------------------------------------------------------- end-of-file

View File

@ -1,14 +1,12 @@
EXE_INC = \ EXE_INC = \
-I$(TEC_360_2009)/include \ -I$(WM_THIRD_PARTY_DIR)/tecio/tecsrc/lnInclude \
/* -I../tecio/tecsrc/lnInclude/ */ \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \ -I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude -I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \ EXE_LIBS = \
$(TEC_360_2009)/lib/tecio64.a \ -ltecio \
/* -L$(FOAM_USER_LIBBIN) -ltecio */ \
-llagrangian \ -llagrangian \
-lfiniteVolume \ -lfiniteVolume \
-lmeshTools -lmeshTools

View File

@ -65,6 +65,9 @@ Usage
information as a single argument. The double quotes denote a regular information as a single argument. The double quotes denote a regular
expression. expression.
@param -useTimeName \n
use the time index in the VTK file name instead of the time index
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "pointMesh.H" #include "pointMesh.H"
@ -240,7 +243,7 @@ int main(int argc, char *argv[])
# include "createNamedMesh.H" # include "createNamedMesh.H"
// TecplotData/ directory in the case // TecplotData/ directory in the case
fileName fvPath(runTime.path()/"TecplotData-bin"); fileName fvPath(runTime.path()/"Tecplot360");
// Directory of mesh (region0 gets filtered out) // Directory of mesh (region0 gets filtered out)
fileName regionPrefix = ""; fileName regionPrefix = "";
@ -536,7 +539,8 @@ int main(int argc, char *argv[])
varLocation varLocation
); );
// strandID (= some zone id) // strandID (= piece id. Gets incremented for every piece of geometry
// that is output)
INTEGER4 strandID = 1; INTEGER4 strandID = 1;
@ -647,7 +651,7 @@ int main(int argc, char *argv[])
writer.writePolyhedralZone writer.writePolyhedralZone
( (
mesh.name(), // regionName mesh.name(), // regionName
1, //strandID, // strandID strandID, // strandID
mesh, mesh,
List<INTEGER4>(3, ValueLocation_Nodal), List<INTEGER4>(3, ValueLocation_Nodal),
nFaceNodes nFaceNodes
@ -684,7 +688,7 @@ int main(int argc, char *argv[])
writer.writePolyhedralZone writer.writePolyhedralZone
( (
mesh.name(), // regionName mesh.name(), // regionName
1, //strandID, // strandID strandID++, // strandID
mesh, mesh,
varLocation, varLocation,
0 0
@ -776,7 +780,7 @@ int main(int argc, char *argv[])
writer.writePolygonalZone writer.writePolygonalZone
( (
setName, setName,
1, //strandID, strandID++,
ipp, ipp,
allVarLocation allVarLocation
); );
@ -903,7 +907,7 @@ int main(int argc, char *argv[])
{ {
label patchID = patchIDs[i]; label patchID = patchIDs[i];
const polyPatch& pp = patches[patchID]; const polyPatch& pp = patches[patchID];
INTEGER4 strandID = 1 + i; //INTEGER4 strandID = 1 + i;
Info<< " Writing patch " << patchID << "\t" << pp.name() Info<< " Writing patch " << patchID << "\t" << pp.name()
<< "\tstrand:" << strandID << nl << endl; << "\tstrand:" << strandID << nl << endl;
@ -917,7 +921,7 @@ int main(int argc, char *argv[])
writer.writePolygonalZone writer.writePolygonalZone
( (
pp.name(), pp.name(),
strandID, strandID++, //strandID,
ipp, ipp,
allVarLocation allVarLocation
); );
@ -1073,7 +1077,7 @@ int main(int argc, char *argv[])
writer.writePolygonalZone writer.writePolygonalZone
( (
pp.name(), pp.name(),
1+patchIDs.size()+zoneI, //strandID, strandID++, //1+patchIDs.size()+zoneI, //strandID,
ipp, ipp,
allVarLocation allVarLocation
); );
@ -1196,29 +1200,29 @@ int main(int argc, char *argv[])
Info<< " vectors :"; Info<< " vectors :";
print(Info, vectorNames); print(Info, vectorNames);
wordList sphereNames //wordList sphereNames
( //(
sprayObjs.names // sprayObjs.names
( // (
sphericalTensorIOField::typeName // sphericalTensorIOField::typeName
) // )
); //);
Info<< " spherical tensors :"; //Info<< " spherical tensors :";
print(Info, sphereNames); //print(Info, sphereNames);
//
wordList symmNames //wordList symmNames
( //(
sprayObjs.names // sprayObjs.names
( // (
symmTensorIOField::typeName // symmTensorIOField::typeName
) // )
); //);
Info<< " symm tensors :"; //Info<< " symm tensors :";
print(Info, symmNames); //print(Info, symmNames);
//
wordList tensorNames(sprayObjs.names(tensorIOField::typeName)); //wordList tensorNames(sprayObjs.names(tensorIOField::typeName));
Info<< " tensors :"; //Info<< " tensors :";
print(Info, tensorNames); //print(Info, tensorNames);
// Load cloud positions // Load cloud positions
@ -1277,7 +1281,7 @@ int main(int argc, char *argv[])
writer.writeOrderedZone writer.writeOrderedZone
( (
cloudDirs[cloudI], cloudDirs[cloudI],
strandID, strandID++, //strandID,
parcels.size(), parcels.size(),
allVarLocation allVarLocation
); );

View File

@ -79,7 +79,7 @@ Pout<< endl
void Foam::tecplotWriter::writePolyhedralZone void Foam::tecplotWriter::writePolyhedralZone
( (
const word& zoneName, const word& zoneName,
const INTEGER4 strandID, INTEGER4 strandID,
const fvMesh& mesh, const fvMesh& mesh,
const List<INTEGER4>& varLocArray, const List<INTEGER4>& varLocArray,
INTEGER4 nFaceNodes INTEGER4 nFaceNodes
@ -95,7 +95,6 @@ void Foam::tecplotWriter::writePolyhedralZone
INTEGER4 KCellMax = 0; /* Not Used, set to zero */ INTEGER4 KCellMax = 0; /* Not Used, set to zero */
double SolTime = runTime_.value(); /* solution time */ double SolTime = runTime_.value(); /* solution time */
INTEGER4 StrandID = 1; /* static zone */
INTEGER4 ParentZone = 0; /* no parent zone */ INTEGER4 ParentZone = 0; /* no parent zone */
INTEGER4 IsBlock = 1; /* block format */ INTEGER4 IsBlock = 1; /* block format */
@ -135,7 +134,7 @@ Pout<< "zoneName:" << zoneName
&JCellMax, &JCellMax,
&KCellMax, &KCellMax,
&SolTime, &SolTime,
&StrandID, &strandID,
&ParentZone, &ParentZone,
&IsBlock, &IsBlock,
&NFConns, &NFConns,

View File

@ -26,11 +26,11 @@ License
#include "tecplotWriter.H" #include "tecplotWriter.H"
extern "C" //extern "C"
{ //{
#include "MASTER.h" #include "MASTER.h"
#include "GLOBAL.h" #include "GLOBAL.h"
} //}
#include "fvc.H" #include "fvc.H"

View File

@ -678,83 +678,89 @@ Foam::Time& Foam::Time::operator++()
deltaTSave_ = deltaT_; deltaTSave_ = deltaT_;
setTime(value() + deltaT_, timeIndex_ + 1); setTime(value() + deltaT_, timeIndex_ + 1);
// If the time is very close to zero reset to zero if (!subCycling_)
if (mag(value()) < 10*SMALL*deltaT_)
{ {
setTime(0.0, timeIndex_); // If the time is very close to zero reset to zero
} if (mag(value()) < 10*SMALL*deltaT_)
switch (writeControl_)
{
case wcTimeStep:
outputTime_ = !(timeIndex_ % label(writeInterval_));
break;
case wcRunTime:
case wcAdjustableRunTime:
{ {
label outputIndex = setTime(0.0, timeIndex_);
label(((value() - startTime_) + 0.5*deltaT_)/writeInterval_); }
if (outputIndex > outputTimeIndex_) switch (writeControl_)
{
case wcTimeStep:
outputTime_ = !(timeIndex_ % label(writeInterval_));
break;
case wcRunTime:
case wcAdjustableRunTime:
{ {
label outputIndex = label
(
((value() - startTime_) + 0.5*deltaT_)
/ writeInterval_
);
if (outputIndex > outputTimeIndex_)
{
outputTime_ = true;
outputTimeIndex_ = outputIndex;
}
else
{
outputTime_ = false;
}
}
break;
case wcCpuTime:
{
label outputIndex = label(elapsedCpuTime()/writeInterval_);
if (outputIndex > outputTimeIndex_)
{
outputTime_ = true;
outputTimeIndex_ = outputIndex;
}
else
{
outputTime_ = false;
}
}
break;
case wcClockTime:
{
label outputIndex = label(elapsedClockTime()/writeInterval_);
if (outputIndex > outputTimeIndex_)
{
outputTime_ = true;
outputTimeIndex_ = outputIndex;
}
else
{
outputTime_ = false;
}
}
break;
}
// see if endTime needs adjustment to stop at the next run()/end() check
if (!end())
{
if (stopAt_ == saNoWriteNow)
{
endTime_ = value();
}
else if (stopAt_ == saWriteNow)
{
endTime_ = value();
outputTime_ = true; outputTime_ = true;
outputTimeIndex_ = outputIndex;
} }
else else if (stopAt_ == saNextWrite && outputTime_ == true)
{ {
outputTime_ = false; endTime_ = value();
} }
} }
break;
case wcCpuTime:
{
label outputIndex = label(elapsedCpuTime()/writeInterval_);
if (outputIndex > outputTimeIndex_)
{
outputTime_ = true;
outputTimeIndex_ = outputIndex;
}
else
{
outputTime_ = false;
}
}
break;
case wcClockTime:
{
label outputIndex = label(elapsedClockTime()/writeInterval_);
if (outputIndex > outputTimeIndex_)
{
outputTime_ = true;
outputTimeIndex_ = outputIndex;
}
else
{
outputTime_ = false;
}
}
break;
}
// see if endTime needs adjustment to stop at the next run()/end() check
if (!end())
{
if (stopAt_ == saNoWriteNow)
{
endTime_ = value();
}
else if (stopAt_ == saWriteNow)
{
endTime_ = value();
outputTime_ = true;
}
else if (stopAt_ == saNextWrite && outputTime_ == true)
{
endTime_ = value();
}
} }
return *this; return *this;

View File

@ -109,14 +109,21 @@ Foam::dictionary::dictionary()
{} {}
Foam::dictionary::dictionary(const fileName& name)
:
dictionaryName(name),
parent_(dictionary::null)
{}
Foam::dictionary::dictionary Foam::dictionary::dictionary
( (
const dictionary& parentDict, const dictionary& parentDict,
const dictionary& dict const dictionary& dict
) )
: :
dictionaryName(parentDict.name() + "::" + dict.name()),
IDLList<entry>(dict, *this), IDLList<entry>(dict, *this),
name_(dict.name()),
parent_(parentDict) parent_(parentDict)
{ {
forAllIter(IDLList<entry>, *this, iter) forAllIter(IDLList<entry>, *this, iter)
@ -140,8 +147,8 @@ Foam::dictionary::dictionary
const dictionary& dict const dictionary& dict
) )
: :
dictionaryName(dict.name()),
IDLList<entry>(dict, *this), IDLList<entry>(dict, *this),
name_(dict.name()),
parent_(dictionary::null) parent_(dictionary::null)
{ {
forAllIter(IDLList<entry>, *this, iter) forAllIter(IDLList<entry>, *this, iter)
@ -183,6 +190,7 @@ Foam::dictionary::dictionary
parent_(parentDict) parent_(parentDict)
{ {
transfer(dict()); transfer(dict());
name() = parentDict.name() + "::" + name();
} }
@ -472,6 +480,24 @@ Foam::dictionary& Foam::dictionary::subDict(const word& keyword)
} }
Foam::dictionary Foam::dictionary::subOrEmptyDict
(
const word& keyword
) const
{
const entry* entryPtr = lookupEntryPtr(keyword, false, true);
if (entryPtr == NULL)
{
return dictionary(*this, dictionary(keyword));
}
else
{
return entryPtr->dict();
}
}
Foam::wordList Foam::dictionary::toc() const Foam::wordList Foam::dictionary::toc() const
{ {
wordList keys(size()); wordList keys(size());
@ -530,7 +556,7 @@ bool Foam::dictionary::add(entry* entryPtr, bool mergeEntry)
if (hashedEntries_.insert(entryPtr->keyword(), entryPtr)) if (hashedEntries_.insert(entryPtr->keyword(), entryPtr))
{ {
entryPtr->name() = name_ + "::" + entryPtr->keyword(); entryPtr->name() = name() + "::" + entryPtr->keyword();
if (entryPtr->keyword().isPattern()) if (entryPtr->keyword().isPattern())
{ {
@ -558,7 +584,7 @@ bool Foam::dictionary::add(entry* entryPtr, bool mergeEntry)
if (hashedEntries_.insert(entryPtr->keyword(), entryPtr)) if (hashedEntries_.insert(entryPtr->keyword(), entryPtr))
{ {
entryPtr->name() = name_ + "::" + entryPtr->keyword(); entryPtr->name() = name() + "::" + entryPtr->keyword();
IDLList<entry>::append(entryPtr); IDLList<entry>::append(entryPtr);
if (entryPtr->keyword().isPattern()) if (entryPtr->keyword().isPattern())
@ -763,7 +789,7 @@ bool Foam::dictionary::changeKeyword
// change name and HashTable, but leave DL-List untouched // change name and HashTable, but leave DL-List untouched
iter()->keyword() = newKeyword; iter()->keyword() = newKeyword;
iter()->name() = name_ + "::" + newKeyword; iter()->name() = name() + "::" + newKeyword;
hashedEntries_.erase(oldKeyword); hashedEntries_.erase(oldKeyword);
hashedEntries_.insert(newKeyword, iter()); hashedEntries_.insert(newKeyword, iter());
@ -838,7 +864,7 @@ void Foam::dictionary::transfer(dictionary& dict)
{ {
// changing parents probably doesn't make much sense, // changing parents probably doesn't make much sense,
// but what about the names? // but what about the names?
name_ = dict.name_; name() = dict.name();
IDLList<entry>::transfer(dict); IDLList<entry>::transfer(dict);
hashedEntries_.transfer(dict.hashedEntries_); hashedEntries_.transfer(dict.hashedEntries_);
@ -871,7 +897,7 @@ void Foam::dictionary::operator=(const dictionary& rhs)
<< abort(FatalError); << abort(FatalError);
} }
name_ = rhs.name(); name() = rhs.name();
clear(); clear();
// Create clones of the entries in the given dictionary // Create clones of the entries in the given dictionary

View File

@ -41,7 +41,7 @@ Description
ToDo ToDo
A merge() member function with a non-const dictionary parameter. A merge() member function with a non-const dictionary parameter.
This would avoid unnecessary cloning in the add(entry*,bool) method This would avoid unnecessary cloning in the add(entry*, bool) method.
SourceFiles SourceFiles
dictionary.C dictionary.C
@ -74,6 +74,47 @@ class SHA1Digest;
Istream& operator>>(Istream&, dictionary&); Istream& operator>>(Istream&, dictionary&);
Ostream& operator<<(Ostream&, const dictionary&); Ostream& operator<<(Ostream&, const dictionary&);
/*---------------------------------------------------------------------------*\
Class dictionaryName Declaration
\*---------------------------------------------------------------------------*/
class dictionaryName
{
// Private data
fileName name_;
public:
// Constructors
//- Construct dictionaryName null
dictionaryName()
{}
//- Construct dictionaryName as copy of the given fileName
dictionaryName(const fileName& name)
:
name_(name)
{}
// Member functions
//- Return the dictionary name
const fileName& name() const
{
return name_;
}
//- Return the dictionary name
fileName& name()
{
return name_;
}
};
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class dictionary Declaration Class dictionary Declaration
@ -81,13 +122,11 @@ Ostream& operator<<(Ostream&, const dictionary&);
class dictionary class dictionary
: :
public dictionaryName,
public IDLList<entry> public IDLList<entry>
{ {
// Private data // Private data
//- Dictionary name
fileName name_;
//- HashTable of the entries held on the DL-list for quick lookup //- HashTable of the entries held on the DL-list for quick lookup
HashTable<entry*> hashedEntries_; HashTable<entry*> hashedEntries_;
@ -100,6 +139,7 @@ class dictionary
//- Patterns as precompiled regular expressions //- Patterns as precompiled regular expressions
DLList<autoPtr<regExp> > patternRegexps_; DLList<autoPtr<regExp> > patternRegexps_;
// Private Member Functions // Private Member Functions
//- Search patterns table for exact match or regular expression match //- Search patterns table for exact match or regular expression match
@ -121,16 +161,6 @@ class dictionary
); );
public:
//- Read dictionary from Istream
bool read(Istream&);
//- Substitute the given keyword prepended by '$' with the
// corresponding sub-dictionary entries
bool substituteKeyword(const word& keyword);
public: public:
//- Declare friendship with the entry class for IO //- Declare friendship with the entry class for IO
@ -150,10 +180,14 @@ public:
//- Construct top-level dictionary null //- Construct top-level dictionary null
dictionary(); dictionary();
//- Construct from the parent dictionary and Istream, reading entries //- Construct top-level empty dictionary with given name
// until lastEntry or EOF dictionary(const fileName& name);
//- Construct given the entry name, parent dictionary and Istream,
// reading entries until lastEntry or EOF
dictionary dictionary
( (
const fileName& name,
const dictionary& parentDict, const dictionary& parentDict,
Istream& Istream&
); );
@ -192,18 +226,6 @@ public:
// Member functions // Member functions
//- Return the dictionary name
const fileName& name() const
{
return name_;
}
//- Return the dictionary name
fileName& name()
{
return name_;
}
//- Return the parent dictionary //- Return the parent dictionary
const dictionary& parent() const const dictionary& parent() const
{ {
@ -320,14 +342,23 @@ public:
//- Find and return a sub-dictionary for manipulation //- Find and return a sub-dictionary for manipulation
dictionary& subDict(const word&); dictionary& subDict(const word&);
//- Find and return a sub-dictionary as a copy, or
// return an empty dictionary if the sub-dictionary does not exist
dictionary subOrEmptyDict(const word&) const;
//- Return the table of contents //- Return the table of contents
wordList toc() const; wordList toc() const;
//- Return the list of available keys or patterns //- Return the list of available keys or patterns
List<keyType> keys(bool patterns=false) const; List<keyType> keys(bool patterns=false) const;
// Editing // Editing
//- Substitute the given keyword prepended by '$' with the
// corresponding sub-dictionary entries
bool substituteKeyword(const word& keyword);
//- Add a new entry //- Add a new entry
// With the merge option, dictionaries are interwoven and // With the merge option, dictionaries are interwoven and
// primitive entries are overwritten // primitive entries are overwritten
@ -407,6 +438,12 @@ public:
Xfer<dictionary> xfer(); Xfer<dictionary> xfer();
// Read
//- Read dictionary from Istream
bool read(Istream&);
// Write // Write
void write(Ostream&, bool subDict=true) const; void write(Ostream&, bool subDict=true) const;

View File

@ -58,10 +58,8 @@ Foam::dictionaryEntry::dictionaryEntry
) )
: :
entry(key), entry(key),
dictionary(parentDict, is) dictionary(key, parentDict, is)
{ {
name() += "::" + key;
is.fatalCheck is.fatalCheck
( (
"dictionaryEntry::dictionaryEntry" "dictionaryEntry::dictionaryEntry"

View File

@ -95,11 +95,12 @@ bool Foam::dictionary::substituteKeyword(const word& keyword)
Foam::dictionary::dictionary Foam::dictionary::dictionary
( (
const fileName& name,
const dictionary& parentDict, const dictionary& parentDict,
Istream& is Istream& is
) )
: :
name_(is.name()), dictionaryName(parentDict.name() + "::" + name),
parent_(parentDict) parent_(parentDict)
{ {
read(is); read(is);
@ -108,7 +109,7 @@ Foam::dictionary::dictionary
Foam::dictionary::dictionary(Istream& is) Foam::dictionary::dictionary(Istream& is)
: :
name_(is.name()), dictionaryName(is.name()),
parent_(dictionary::null) parent_(dictionary::null)
{ {
// Reset input mode as this is a "top-level" dictionary // Reset input mode as this is a "top-level" dictionary
@ -132,6 +133,7 @@ Foam::Istream& Foam::operator>>(Istream& is, dictionary& dict)
functionEntries::inputModeEntry::clear(); functionEntries::inputModeEntry::clear();
dict.clear(); dict.clear();
dict.name() = is.name();
dict.read(is); dict.read(is);
return is; return is;

View File

@ -108,10 +108,9 @@ public:
static autoPtr<entry> New(Istream& is); static autoPtr<entry> New(Istream& is);
// Destructor //- Destructor
virtual ~entry()
virtual ~entry() {}
{}
// Member functions // Member functions

View File

@ -34,7 +34,6 @@ Description
SourceFiles SourceFiles
processorPolyPatch.C processorPolyPatch.C
processorPolyPatchMorph.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/

View File

@ -1836,19 +1836,21 @@ bool Foam::primitiveMesh::checkFaceFaces
if (nErrorDuplicate > 0 || nErrorOrder > 0) if (nErrorDuplicate > 0 || nErrorOrder > 0)
{ {
// These are actually warnings, not errors.
if (nErrorDuplicate > 0) if (nErrorDuplicate > 0)
{ {
Info<< " ***Number of duplicate (not baffle) faces found: " Info<< " <<Number of duplicate (not baffle) faces found: "
<< nErrorDuplicate << endl; << nErrorDuplicate
<< ". This might indicate a problem." << endl;
} }
if (nErrorOrder > 0) if (nErrorOrder > 0)
{ {
Info<< " ***Number of faces with non-consecutive shared points: " Info<< " <<Number of faces with non-consecutive shared points: "
<< nErrorOrder << endl; << nErrorOrder << ". This might indicate a problem." << endl;
} }
return true; return false; //return true;
} }
else else
{ {

View File

@ -918,7 +918,7 @@ Foam::label Foam::MeshedSurface<Face>::triangulate
// 'face' not '<Face>' // 'face' not '<Face>'
const face& f = faceLst[faceI]; const face& f = faceLst[faceI];
label nTmp; label nTmp = 0;
f.triangles(this->points(), nTmp, tmpTri); f.triangles(this->points(), nTmp, tmpTri);
for (label triI = 0; triI < nTmp; triI++) for (label triI = 0; triI < nTmp; triI++)
{ {

View File

@ -77,7 +77,7 @@ LESModel::LESModel
), ),
printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)), printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
coeffDict_(subDictPtr(type + "Coeffs")), coeffDict_(subOrEmptyDict(type + "Coeffs")),
k0_("k0", dimVelocity*dimVelocity, SMALL), k0_("k0", dimVelocity*dimVelocity, SMALL),

View File

@ -79,7 +79,7 @@ RASModel::RASModel
turbulence_(lookup("turbulence")), turbulence_(lookup("turbulence")),
printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)), printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
coeffDict_(subDictPtr(type + "Coeffs")), coeffDict_(subOrEmptyDict(type + "Coeffs")),
k0_("k0", dimVelocity*dimVelocity, SMALL), k0_("k0", dimVelocity*dimVelocity, SMALL),
epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL), epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL),

View File

@ -76,7 +76,7 @@ LESModel::LESModel
), ),
printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)), printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
coeffDict_(subDictPtr(type + "Coeffs")), coeffDict_(subOrEmptyDict(type + "Coeffs")),
k0_("k0", dimVelocity*dimVelocity, SMALL), k0_("k0", dimVelocity*dimVelocity, SMALL),
delta_(LESdelta::New("delta", U.mesh(), *this)) delta_(LESdelta::New("delta", U.mesh(), *this))

View File

@ -78,7 +78,7 @@ RASModel::RASModel
turbulence_(lookup("turbulence")), turbulence_(lookup("turbulence")),
printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)), printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
coeffDict_(subDictPtr(type + "Coeffs")), coeffDict_(subOrEmptyDict(type + "Coeffs")),
k0_("k0", dimVelocity*dimVelocity, SMALL), k0_("k0", dimVelocity*dimVelocity, SMALL),
epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL), epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL),