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

This commit is contained in:
Henry
2012-06-25 11:35:07 +01:00
6 changed files with 131 additions and 10 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 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -69,6 +69,11 @@ int main(int argc, char *argv[])
"noLagrangian", "noLagrangian",
"skip reconstructing lagrangian positions and fields" "skip reconstructing lagrangian positions and fields"
); );
argList::addBoolOption
(
"newTimes",
"only reconstruct new times (i.e. that do not exist already)"
);
# include "setRootCase.H" # include "setRootCase.H"
# include "createTime.H" # include "createTime.H"
@ -95,6 +100,10 @@ int main(int argc, char *argv[])
args.optionLookup("lagrangianFields")() >> selectedLagrangianFields; args.optionLookup("lagrangianFields")() >> selectedLagrangianFields;
} }
const bool newTimes = args.optionFound("newTimes");
// determine the processor count directly // determine the processor count directly
label nProcs = 0; label nProcs = 0;
while (isDir(args.path()/(word("processor") + name(nProcs)))) while (isDir(args.path()/(word("processor") + name(nProcs))))
@ -134,6 +143,8 @@ int main(int argc, char *argv[])
args args
); );
instantList masterTimeDirs = runTime.times();
if (timeDirs.empty()) if (timeDirs.empty())
{ {
FatalErrorIn(args.executable()) FatalErrorIn(args.executable())
@ -165,6 +176,14 @@ int main(int argc, char *argv[])
// Loop over all times // Loop over all times
forAll(timeDirs, timeI) forAll(timeDirs, timeI)
{ {
if (newTimes && findIndex(masterTimeDirs, timeDirs[timeI]) != -1)
{
Info<< "Skipping time " << timeDirs[timeI].name()
<< endl << endl;
continue;
}
// Set time for global database // Set time for global database
runTime.setTime(timeDirs[timeI], timeI); runTime.setTime(timeDirs[timeI], timeI);

View File

@ -112,13 +112,9 @@ Foam::dynamicCodeContext::dynamicCodeContext(const dictionary& dict)
addLineDirective(include_, includePtr->startLineNumber(), dict.name()); addLineDirective(include_, includePtr->startLineNumber(), dict.name());
} }
// Do not add line directive to options_ (Make/options) since at it is a // Do not add line directive to options_ (Make/options) and libs since
// single line at this point. Can be fixed. // they are preprocessed as a single line at this point. Can be fixed.
if (libsPtr)
{
addLineDirective(libs_, libsPtr->startLineNumber(), dict.name());
}
if (localPtr) if (localPtr)
{ {
addLineDirective(localCode_, localPtr->startLineNumber(), dict.name()); addLineDirective(localCode_, localPtr->startLineNumber(), dict.name());

View File

@ -25,6 +25,7 @@ License
#include "TableBase.H" #include "TableBase.H"
#include "Time.H" #include "Time.H"
#include "interpolationWeights.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //

View File

@ -38,7 +38,6 @@ SourceFiles
#include "DataEntry.H" #include "DataEntry.H"
#include "Tuple2.H" #include "Tuple2.H"
#include "dimensionSet.H" #include "dimensionSet.H"
#include "interpolationWeights.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -55,6 +54,8 @@ Ostream& operator<<
const TableBase<Type>& const TableBase<Type>&
); );
class interpolationWeights;
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class TableBase Declaration Class TableBase Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/

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-2012 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -37,6 +37,8 @@ Description
#include "uLabel.H" #include "uLabel.H"
#include "Hasher.H" #include "Hasher.H"
#include "pTraits.H" #include "pTraits.H"
#include "fileName.H"
#include "wordRe.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -99,6 +101,107 @@ public:
}; };
//- Hash specialization for hashing strings
template<>
class Hash<Foam::string>
{
public:
Hash()
{}
unsigned operator()(const string& p, unsigned seed) const
{
return string::hash()(p, seed);
}
unsigned operator()(const string& p) const
{
return string::hash()(p);
}
};
//- Hash specialization for hashing words
template<>
class Hash<Foam::word>
{
public:
Hash()
{}
unsigned operator()(const word& p, unsigned seed) const
{
return word::hash()(p, seed);
}
unsigned operator()(const word& p) const
{
return word::hash()(p);
}
};
//- Hash specialization for hashing fileNames
template<>
class Hash<Foam::fileName>
{
public:
Hash()
{}
unsigned operator()(const fileName& p, unsigned seed) const
{
return fileName::hash()(p, seed);
}
unsigned operator()(const fileName& p) const
{
return fileName::hash()(p);
}
};
//- Hash specialization for hashing wordRes
template<>
class Hash<Foam::wordRe>
{
public:
Hash()
{}
unsigned operator()(const wordRe& p, unsigned seed) const
{
return wordRe::hash()(p, seed);
}
unsigned operator()(const wordRe& p) const
{
return wordRe::hash()(p);
}
};
//- Hash specialization for hashing keyTypes
template<>
class Hash<Foam::keyType>
{
public:
Hash()
{}
unsigned operator()(const keyType& p, unsigned seed) const
{
return keyType::hash()(p, seed);
}
unsigned operator()(const keyType& p) const
{
return keyType::hash()(p);
}
};
//- Hash specialization for hashing pointer addresses. //- Hash specialization for hashing pointer addresses.
// Treat a pointer like a long. // Treat a pointer like a long.
// This should work for both 32-bit and 64-bit pointers. // This should work for both 32-bit and 64-bit pointers.

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-2012 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -181,6 +181,7 @@ void Foam::activeBaffleVelocityFvPatchVectorField::autoMap
).neighbFvPatch().patch().patchSlice(areas); ).neighbFvPatch().patch().patchSlice(areas);
} }
void Foam::activeBaffleVelocityFvPatchVectorField::rmap void Foam::activeBaffleVelocityFvPatchVectorField::rmap
( (
const fvPatchVectorField& ptf, const fvPatchVectorField& ptf,