Merge branch 'master' of ssh://dm/home/dm4/OpenFOAM/OpenFOAM-dev

This commit is contained in:
Henry
2013-04-08 15:38:26 +01:00
14 changed files with 107 additions and 67 deletions

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -539,7 +539,7 @@ int main(int argc, char *argv[])
cloud::prefix/cloudDirs[i] cloud::prefix/cloudDirs[i]
); );
IOobject* positionsPtr = sprayObjs.lookup("positions"); IOobject* positionsPtr = sprayObjs.lookup(word("positions"));
if (positionsPtr) if (positionsPtr)
{ {

View File

@ -529,10 +529,8 @@ int main(int argc, char *argv[])
cloud::prefix/cloudDirs[i] cloud::prefix/cloudDirs[i]
); );
IOobject* positionsPtr = sprayObjs.lookup IOobject* positionsPtr =
( sprayObjs.lookup(word("positions"));
"positions"
);
if (positionsPtr) if (positionsPtr)
{ {

View File

@ -98,7 +98,7 @@ bool inFileNameList
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
timeSelector::addOptions(); timeSelector::addOptions();
# include "addRegionOption.H" #include "addRegionOption.H"
argList::addBoolOption argList::addBoolOption
( (
@ -129,17 +129,17 @@ int main(int argc, char *argv[])
"specify faceZones to write - eg '( slice \"mfp-.*\" )'." "specify faceZones to write - eg '( slice \"mfp-.*\" )'."
); );
# include "setRootCase.H" #include "setRootCase.H"
// Check options // Check options
const bool binary = !args.optionFound("ascii"); const bool binary = !args.optionFound("ascii");
const bool nodeValues = args.optionFound("nodeValues"); const bool nodeValues = args.optionFound("nodeValues");
# include "createTime.H" #include "createTime.H"
instantList Times = timeSelector::select0(runTime, args); instantList Times = timeSelector::select0(runTime, args);
# include "createNamedMesh.H" #include "createNamedMesh.H"
// Mesh instance (region0 gets filtered out) // Mesh instance (region0 gets filtered out)
fileName regionPrefix = ""; fileName regionPrefix = "";
@ -228,7 +228,7 @@ int main(int argc, char *argv[])
IOobjectList objects(mesh, runTime.timeName()); IOobjectList objects(mesh, runTime.timeName());
# include "checkMeshMoving.H" #include "checkMeshMoving.H"
if (meshMoving) if (meshMoving)
{ {
@ -275,7 +275,7 @@ int main(int argc, char *argv[])
cloud::prefix/cloudDirs[cloudI] cloud::prefix/cloudDirs[cloudI]
); );
IOobject* positionsPtr = cloudObjs.lookup("positions"); IOobject* positionsPtr = cloudObjs.lookup(word("positions"));
if (positionsPtr) if (positionsPtr)
{ {
@ -388,7 +388,7 @@ int main(int argc, char *argv[])
{ {
const word& fieldName = fieldNames[j]; const word& fieldName = fieldNames[j];
# include "checkData.H" #include "checkData.H"
if (!variableGood) if (!variableGood)
{ {
@ -551,7 +551,7 @@ int main(int argc, char *argv[])
} }
} }
# include "ensightCaseTail.H" #include "ensightCaseTail.H"
if (Pstream::master()) if (Pstream::master())
{ {

View File

@ -131,8 +131,8 @@ int main(int argc, char *argv[])
const char* geometryName = "geometry"; const char* geometryName = "geometry";
# include "setRootCase.H" #include "setRootCase.H"
# include "createTime.H" #include "createTime.H"
// get times list // get times list
instantList timeDirs = timeSelector::select0(runTime, args); instantList timeDirs = timeSelector::select0(runTime, args);
@ -181,7 +181,7 @@ int main(int argc, char *argv[])
mkDir(ensightDir); mkDir(ensightDir);
mkDir(dataDir); mkDir(dataDir);
# include "createNamedMesh.H" #include "createNamedMesh.H"
// Mesh instance (region0 gets filtered out) // Mesh instance (region0 gets filtered out)
fileName regionPrefix; fileName regionPrefix;
@ -203,8 +203,8 @@ int main(int argc, char *argv[])
partsList.writeSummary(partsInfoFile); partsList.writeSummary(partsInfoFile);
} }
# include "checkHasMovingMesh.H" #include "checkHasMovingMesh.H"
# include "findFields.H" #include "findFields.H"
if (hasMovingMesh && optNoMesh) if (hasMovingMesh && optNoMesh)
{ {
@ -233,7 +233,7 @@ int main(int argc, char *argv[])
{ {
runTime.setTime(timeDirs[timeI], timeI); runTime.setTime(timeDirs[timeI], timeI);
# include "getTimeIndex.H" #include "getTimeIndex.H"
// remember the time index // remember the time index
fieldTimesUsed.append(timeIndex); fieldTimesUsed.append(timeIndex);
@ -250,7 +250,7 @@ int main(int argc, char *argv[])
<< subDir.c_str() << " " << runTime.timeName() << nl; << subDir.c_str() << " " << runTime.timeName() << nl;
} }
# include "moveMesh.H" #include "moveMesh.H"
if (timeI == 0 || mesh.moving()) if (timeI == 0 || mesh.moving())
{ {
@ -380,7 +380,8 @@ int main(int argc, char *argv[])
); );
// check that the positions field is present for this time // check that the positions field is present for this time
if (cloudObjs.lookup("positions")) IOobject* positionPtr = cloudObjs.lookup(word("positions"));
if (positionPtr != NULL)
{ {
ensightParticlePositions ensightParticlePositions
( (
@ -459,7 +460,7 @@ int main(int argc, char *argv[])
} }
} }
# include "ensightOutputCase.H" #include "ensightOutputCase.H"
Info<< "\nEnd\n"<< endl; Info<< "\nEnd\n"<< endl;

View File

@ -386,7 +386,7 @@ int main(int argc, char *argv[])
instantList timeDirs = timeSelector::select0(runTime, args); instantList timeDirs = timeSelector::select0(runTime, args);
# include "createNamedMesh.H" #include "createNamedMesh.H"
// VTK/ directory in the case // VTK/ directory in the case
fileName fvPath(runTime.path()/"VTK"); fileName fvPath(runTime.path()/"VTK");
@ -448,7 +448,7 @@ int main(int argc, char *argv[])
cloud::prefix/cloudDirs[i] cloud::prefix/cloudDirs[i]
); );
IOobject* positionsPtr = sprayObjs.lookup("positions"); IOobject* positionsPtr = sprayObjs.lookup(word("positions"));
if (positionsPtr) if (positionsPtr)
{ {
@ -1094,7 +1094,7 @@ int main(int argc, char *argv[])
cloud::prefix/cloudName cloud::prefix/cloudName
); );
IOobject* positionsPtr = sprayObjs.lookup("positions"); IOobject* positionsPtr = sprayObjs.lookup(word("positions"));
if (positionsPtr) if (positionsPtr)
{ {

View File

@ -63,7 +63,7 @@ vtkPolyData* Foam::vtkPV398Foam::lagrangianVTKMesh
cloud::prefix/cloudName cloud::prefix/cloudName
); );
IOobject* positionsPtr = sprayObjs.lookup("positions"); IOobject* positionsPtr = sprayObjs.lookup(word("positions"));
if (positionsPtr) if (positionsPtr)
{ {
Cloud<passiveParticle> parcels(mesh, cloudName, false); Cloud<passiveParticle> parcels(mesh, cloudName, false);

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -63,7 +63,7 @@ vtkPolyData* Foam::vtkPV3Foam::lagrangianVTKMesh
cloud::prefix/cloudName cloud::prefix/cloudName
); );
IOobject* positionsPtr = sprayObjs.lookup("positions"); IOobject* positionsPtr = sprayObjs.lookup(word("positions"));
if (positionsPtr) if (positionsPtr)
{ {
Cloud<passiveParticle> parcels(mesh, cloudName, false); Cloud<passiveParticle> parcels(mesh, cloudName, false);

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -120,7 +120,7 @@ void mapLagrangian(const meshToMesh& meshToMeshInterp)
cloud::prefix/cloudDirs[cloudI] cloud::prefix/cloudDirs[cloudI]
); );
IOobject* positionsPtr = objects.lookup("positions"); IOobject* positionsPtr = objects.lookup(word("positions"));
if (positionsPtr) if (positionsPtr)
{ {

View File

@ -148,7 +148,7 @@ Foam::IOobject* Foam::IOobjectList::lookup(const word& name) const
} }
Foam::IOobjectList Foam::IOobjectList::lookupRe(const wordRe& name) const Foam::IOobjectList Foam::IOobjectList::lookup(const wordRe& name) const
{ {
IOobjectList objectsOfName(size()); IOobjectList objectsOfName(size());
@ -169,6 +169,29 @@ Foam::IOobjectList Foam::IOobjectList::lookupRe(const wordRe& name) const
} }
Foam::IOobjectList Foam::IOobjectList::lookup(const wordReList& patterns) const
{
wordReListMatcher names(patterns);
IOobjectList objectsOfName(size());
forAllConstIter(HashPtrTable<IOobject>, *this, iter)
{
if (names.match(iter()->name()))
{
if (IOobject::debug)
{
Info<< "IOobjectList::lookupRe : found " << iter.key() << endl;
}
objectsOfName.insert(iter.key(), new IOobject(*iter()));
}
}
return objectsOfName;
}
Foam::IOobjectList Foam::IOobjectList::lookupClass(const word& ClassName) const Foam::IOobjectList Foam::IOobjectList::lookupClass(const word& ClassName) const
{ {
IOobjectList objectsOfClass(size()); IOobjectList objectsOfClass(size());

View File

@ -37,6 +37,7 @@ SourceFiles
#include "HashPtrTable.H" #include "HashPtrTable.H"
#include "IOobject.H" #include "IOobject.H"
#include "wordReList.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -92,7 +93,10 @@ public:
IOobject* lookup(const word& name) const; IOobject* lookup(const word& name) const;
//- Return the list for all IOobects whose name matches name //- Return the list for all IOobects whose name matches name
IOobjectList lookupRe(const wordRe& name) const; IOobjectList lookup(const wordRe& name) const;
//- Return the list for all IOobects whose name matches name
IOobjectList lookup(const wordReList& patterns) const;
//- Return the list for all IOobjects of a given class //- Return the list for all IOobjects of a given class
IOobjectList lookupClass(const word& className) const; IOobjectList lookupClass(const word& className) const;

View File

@ -37,6 +37,7 @@ SourceFiles
#include "HashTable.H" #include "HashTable.H"
#include "regIOobject.H" #include "regIOobject.H"
#include "wordReList.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -147,6 +148,14 @@ public:
template<class Type> template<class Type>
wordList names() const; wordList names() const;
//- Return the list of objects whose name matches the input regExp
template<class Type>
wordList names(const wordRe& name) const;
//- Return the list of objects whose name matches the input regExp
template<class Type>
wordList names(const wordReList& name) const;
//- Lookup and return a const sub-objectRegistry. Optionally create //- Lookup and return a const sub-objectRegistry. Optionally create
// it if it does not exist. // it if it does not exist.
const objectRegistry& subRegistry const objectRegistry& subRegistry
@ -163,10 +172,6 @@ public:
template<class Type> template<class Type>
HashTable<Type*> lookupClass(const bool strict = false); HashTable<Type*> lookupClass(const bool strict = false);
//- Return the list of objects whose name matches the input regExp
template<class Type>
wordList foundObjectRe(const wordRe& name) const;
//- Is the named Type found? //- Is the named Type found?
template<class Type> template<class Type>
bool foundObject(const word& name) const; bool foundObject(const word& name) const;

View File

@ -24,7 +24,7 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "objectRegistry.H" #include "objectRegistry.H"
#include "stringListOps.H"
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
@ -48,6 +48,40 @@ Foam::wordList Foam::objectRegistry::names() const
} }
template<class Type>
Foam::wordList Foam::objectRegistry::names(const wordRe& name) const
{
wordList objectNames(size());
label count = 0;
forAllConstIter(HashTable<regIOobject*>, *this, iter)
{
if (isA<Type>(*iter()))
{
const word& objectName = iter()->name();
if (name.match(objectName))
{
objectNames[count++] = objectName;
}
}
}
objectNames.setSize(count);
return objectNames;
}
template<class Type>
Foam::wordList Foam::objectRegistry::names(const wordReList& patterns) const
{
wordList names(this->names<Type>());
return wordList(names, findStrings(patterns, names));
}
template<class Type> template<class Type>
Foam::HashTable<const Type*> Foam::objectRegistry::lookupClass Foam::HashTable<const Type*> Foam::objectRegistry::lookupClass
( (
@ -127,31 +161,6 @@ bool Foam::objectRegistry::foundObject(const word& name) const
} }
template<class Type>
Foam::wordList Foam::objectRegistry::foundObjectRe(const wordRe& name) const
{
wordList objectNames(size());
label count = 0;
forAllConstIter(HashTable<regIOobject*>, *this, iter)
{
if (isA<Type>(*iter()))
{
const word& objectName = iter()->name();
if (name.match(objectName))
{
objectNames[count++] = objectName;
}
}
}
objectNames.setSize(count);
return objectNames;
}
template<class Type> template<class Type>
const Type& Foam::objectRegistry::lookupObject(const word& name) const const Type& Foam::objectRegistry::lookupObject(const word& name) const
{ {

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -737,7 +737,7 @@ Foam::labelHashSet Foam::polyBoundaryMesh::patchSet
forAll(patchNames, i) forAll(patchNames, i)
{ {
const word& patchName = patchNames[i]; const wordRe& patchName = patchNames[i];
// Treat the given patch names as wild-cards and search the set // Treat the given patch names as wild-cards and search the set
// of all patch names for matches // of all patch names for matches

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -123,7 +123,7 @@ public:
inline wordRe(const keyType&, const compOption=LITERAL); inline wordRe(const keyType&, const compOption=LITERAL);
//- Construct as copy of word //- Construct as copy of word
inline wordRe(const word&); inline explicit wordRe(const word&);
//- Construct as copy of character array //- Construct as copy of character array
// Optionally specify how it should be treated. // Optionally specify how it should be treated.