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;
// Angle used to pick up medial axis points
minMedianAxisAngle 130;
minMedianAxisAngle 90;
// Create buffer region for new layer terminations
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 = \
-I$(TEC_360_2009)/include \
/* -I../tecio/tecsrc/lnInclude/ */ \
-I$(WM_THIRD_PARTY_DIR)/tecio/tecsrc/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
$(TEC_360_2009)/lib/tecio64.a \
/* -L$(FOAM_USER_LIBBIN) -ltecio */ \
-ltecio \
-llagrangian \
-lfiniteVolume \
-lmeshTools

View File

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

View File

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

View File

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

View File

@ -678,83 +678,89 @@ Foam::Time& Foam::Time::operator++()
deltaTSave_ = deltaT_;
setTime(value() + deltaT_, timeIndex_ + 1);
// If the time is very close to zero reset to zero
if (mag(value()) < 10*SMALL*deltaT_)
if (!subCycling_)
{
setTime(0.0, timeIndex_);
}
switch (writeControl_)
{
case wcTimeStep:
outputTime_ = !(timeIndex_ % label(writeInterval_));
break;
case wcRunTime:
case wcAdjustableRunTime:
// If the time is very close to zero reset to zero
if (mag(value()) < 10*SMALL*deltaT_)
{
label outputIndex =
label(((value() - startTime_) + 0.5*deltaT_)/writeInterval_);
setTime(0.0, timeIndex_);
}
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;
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;

View File

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

View File

@ -41,7 +41,7 @@ Description
ToDo
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
dictionary.C
@ -74,6 +74,47 @@ class SHA1Digest;
Istream& operator>>(Istream&, 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
@ -81,13 +122,11 @@ Ostream& operator<<(Ostream&, const dictionary&);
class dictionary
:
public dictionaryName,
public IDLList<entry>
{
// Private data
//- Dictionary name
fileName name_;
//- HashTable of the entries held on the DL-list for quick lookup
HashTable<entry*> hashedEntries_;
@ -100,6 +139,7 @@ class dictionary
//- Patterns as precompiled regular expressions
DLList<autoPtr<regExp> > patternRegexps_;
// Private Member Functions
//- 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:
//- Declare friendship with the entry class for IO
@ -150,10 +180,14 @@ public:
//- Construct top-level dictionary null
dictionary();
//- Construct from the parent dictionary and Istream, reading entries
// until lastEntry or EOF
//- Construct top-level empty dictionary with given name
dictionary(const fileName& name);
//- Construct given the entry name, parent dictionary and Istream,
// reading entries until lastEntry or EOF
dictionary
(
const fileName& name,
const dictionary& parentDict,
Istream&
);
@ -192,18 +226,6 @@ public:
// Member functions
//- Return the dictionary name
const fileName& name() const
{
return name_;
}
//- Return the dictionary name
fileName& name()
{
return name_;
}
//- Return the parent dictionary
const dictionary& parent() const
{
@ -320,14 +342,23 @@ public:
//- Find and return a sub-dictionary for manipulation
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
wordList toc() const;
//- Return the list of available keys or patterns
List<keyType> keys(bool patterns=false) const;
// Editing
//- Substitute the given keyword prepended by '$' with the
// corresponding sub-dictionary entries
bool substituteKeyword(const word& keyword);
//- Add a new entry
// With the merge option, dictionaries are interwoven and
// primitive entries are overwritten
@ -407,6 +438,12 @@ public:
Xfer<dictionary> xfer();
// Read
//- Read dictionary from Istream
bool read(Istream&);
// Write
void write(Ostream&, bool subDict=true) const;

View File

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

View File

@ -95,11 +95,12 @@ bool Foam::dictionary::substituteKeyword(const word& keyword)
Foam::dictionary::dictionary
(
const fileName& name,
const dictionary& parentDict,
Istream& is
)
:
name_(is.name()),
dictionaryName(parentDict.name() + "::" + name),
parent_(parentDict)
{
read(is);
@ -108,7 +109,7 @@ Foam::dictionary::dictionary
Foam::dictionary::dictionary(Istream& is)
:
name_(is.name()),
dictionaryName(is.name()),
parent_(dictionary::null)
{
// 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();
dict.clear();
dict.name() = is.name();
dict.read(is);
return is;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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