mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of ssh://noisy/home/noisy3/OpenFOAM/OpenFOAM-dev
This commit is contained in:
13
.gitignore
vendored
13
.gitignore
vendored
@ -4,9 +4,13 @@
|
||||
# editor and misc backup files - anywhere
|
||||
*~
|
||||
.*~
|
||||
*.orig
|
||||
*.bak
|
||||
*.bak[0-9][0-9]
|
||||
*.orig
|
||||
*.orig[0-9][0-9]
|
||||
\#*\#
|
||||
|
||||
# file-browser settings - anywhere
|
||||
.directory
|
||||
|
||||
# CVS recovered versions - anywhere
|
||||
@ -18,7 +22,7 @@
|
||||
*.so
|
||||
*.jar
|
||||
|
||||
# ignore derived files
|
||||
# derived files
|
||||
lex.yy.c
|
||||
|
||||
# Corefiles
|
||||
@ -30,7 +34,7 @@ core
|
||||
# lnInclude (symlink) folders - anywhere
|
||||
lnInclude
|
||||
|
||||
# build folder(s) - anywhere
|
||||
# build folders - anywhere
|
||||
linux*Gcc*/
|
||||
linux*Icc*/
|
||||
linuxming*/
|
||||
@ -38,9 +42,6 @@ SiCortex*Gcc*/
|
||||
solaris*Gcc*/
|
||||
SunOS*Gcc*/
|
||||
|
||||
# all of the wmake wmkdep and dirToString binaries
|
||||
wmake/bin
|
||||
|
||||
# doxygen generated documentation
|
||||
doc/[Dd]oxygen/html
|
||||
doc/[Dd]oxygen/latex
|
||||
|
||||
@ -58,6 +58,8 @@
|
||||
their keywords. When searching, an exact match has priority over a regular
|
||||
expression match. Multiple regular expressions are matched in reverse
|
||||
order.
|
||||
+ The *new* =#includeIfPresent= directive is similar to the =#include=
|
||||
directive, but does not generate an error if the file does not exist.
|
||||
+ The default =#inputMode= is now '=merge=', which corresponds to the most
|
||||
general usage. The =#inputMode warn= corresponds to the previous default
|
||||
behaviour.
|
||||
|
||||
@ -78,6 +78,7 @@ boundaryField
|
||||
// NB: the inputMode has a global scope
|
||||
#inputMode merge
|
||||
#include "testDict2"
|
||||
#includeIfPresent "SomeUnknownFile"
|
||||
|
||||
foo
|
||||
{
|
||||
|
||||
3
applications/test/mvBak/Make/files
Normal file
3
applications/test/mvBak/Make/files
Normal file
@ -0,0 +1,3 @@
|
||||
mvBakTest.C
|
||||
|
||||
EXE = $(FOAM_USER_APPBIN)/mvBakTest
|
||||
2
applications/test/mvBak/Make/options
Normal file
2
applications/test/mvBak/Make/options
Normal file
@ -0,0 +1,2 @@
|
||||
/* EXE_INC = -I$(LIB_SRC)/cfdTools/include */
|
||||
/* EXE_LIBS = -lfiniteVolume */
|
||||
81
applications/test/mvBak/mvBakTest.C
Normal file
81
applications/test/mvBak/mvBakTest.C
Normal file
@ -0,0 +1,81 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Description
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "OSspecific.H"
|
||||
#include "argList.H"
|
||||
|
||||
using namespace Foam;
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
// Main program:
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
argList::noBanner();
|
||||
argList::noParallel();
|
||||
argList::validArgs.insert("file .. fileN");
|
||||
argList::validOptions.erase("case");
|
||||
argList::validOptions.insert("ext", "bak");
|
||||
|
||||
argList args(argc, argv, false, true);
|
||||
|
||||
if (args.additionalArgs().empty())
|
||||
{
|
||||
args.printUsage();
|
||||
}
|
||||
|
||||
label ok = 0;
|
||||
|
||||
forAll(args.additionalArgs(), argI)
|
||||
{
|
||||
const string& srcFile = args.additionalArgs()[argI];
|
||||
|
||||
if (args.optionFound("ext"))
|
||||
{
|
||||
if (mvBak(srcFile, args.option("ext")))
|
||||
{
|
||||
ok++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mvBak(srcFile))
|
||||
{
|
||||
ok++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Info<< "mvBak called for " << args.additionalArgs().size()
|
||||
<< " files (moved " << ok << ")\n" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -26,7 +26,14 @@ Application
|
||||
redistributeMeshPar
|
||||
|
||||
Description
|
||||
Parallel redecomposition of mesh.
|
||||
Parallel redecomposition of mesh. Start with maximum number of processors.
|
||||
Balances mesh and writes new mesh to new timedirectory.
|
||||
|
||||
Can also work like decomposePar:
|
||||
|
||||
mkdir processor0
|
||||
cp -r constant processor0
|
||||
mpirun -np ddd redistributeMeshPar -parallel
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@ void UnMapped(const IOobjectList& objects)
|
||||
++fieldIter
|
||||
)
|
||||
{
|
||||
mv(fieldIter()->objectPath(), fieldIter()->objectPath() + ".unmapped");
|
||||
mvBak(fieldIter()->objectPath(), "unmapped");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -474,20 +474,20 @@ Foam::fileName::Type Foam::type(const fileName& name)
|
||||
|
||||
|
||||
// Does the name exist in the filing system?
|
||||
bool Foam::exists(const fileName& name)
|
||||
bool Foam::exists(const fileName& name, const bool checkGzip)
|
||||
{
|
||||
return mode(name) || isFile(name);
|
||||
return mode(name) || isFile(name, checkGzip);
|
||||
}
|
||||
|
||||
|
||||
// Does the directory exist
|
||||
// Does the directory exist?
|
||||
bool Foam::isDir(const fileName& name)
|
||||
{
|
||||
return S_ISDIR(mode(name));
|
||||
}
|
||||
|
||||
|
||||
// Does the file exist
|
||||
// Does the file exist?
|
||||
bool Foam::isFile(const fileName& name, const bool checkGzip)
|
||||
{
|
||||
return S_ISREG(mode(name)) || (checkGzip && S_ISREG(mode(name + ".gz")));
|
||||
@ -757,31 +757,70 @@ bool Foam::ln(const fileName& src, const fileName& dst)
|
||||
|
||||
|
||||
// Rename srcFile dstFile
|
||||
bool Foam::mv(const fileName& srcFile, const fileName& dstFile)
|
||||
bool Foam::mv(const fileName& src, const fileName& dst)
|
||||
{
|
||||
if (POSIX::debug)
|
||||
{
|
||||
Info<< "Move : " << srcFile << " to " << dstFile << endl;
|
||||
Info<< "Move : " << src << " to " << dst << endl;
|
||||
}
|
||||
|
||||
if
|
||||
(
|
||||
dstFile.type() == fileName::DIRECTORY
|
||||
&& srcFile.type() != fileName::DIRECTORY
|
||||
dst.type() == fileName::DIRECTORY
|
||||
&& src.type() != fileName::DIRECTORY
|
||||
)
|
||||
{
|
||||
const fileName dstName(dstFile/srcFile.name());
|
||||
const fileName dstName(dst/src.name());
|
||||
|
||||
return rename(srcFile.c_str(), dstName.c_str()) == 0;
|
||||
return rename(src.c_str(), dstName.c_str()) == 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return rename(srcFile.c_str(), dstFile.c_str()) == 0;
|
||||
return rename(src.c_str(), dst.c_str()) == 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Remove a file returning true if successful otherwise false
|
||||
//- Rename to a corresponding backup file
|
||||
// If the backup file already exists, attempt with "01" .. "99" index
|
||||
bool Foam::mvBak(const fileName& src, const std::string& ext)
|
||||
{
|
||||
if (POSIX::debug)
|
||||
{
|
||||
Info<< "mvBak : " << src << " to extension " << ext << endl;
|
||||
}
|
||||
|
||||
if (exists(src, false))
|
||||
{
|
||||
const int maxIndex = 99;
|
||||
char index[3];
|
||||
|
||||
for (int n = 0; n <= maxIndex; n++)
|
||||
{
|
||||
fileName dstName(src + "." + ext);
|
||||
if (n)
|
||||
{
|
||||
sprintf(index, "%02d", n);
|
||||
dstName += index;
|
||||
}
|
||||
|
||||
// avoid overwriting existing files, except for the last
|
||||
// possible index where we have no choice
|
||||
if (!exists(dstName, false) || n == maxIndex)
|
||||
{
|
||||
return rename(src.c_str(), dstName.c_str()) == 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// fall-through: nothing to do
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Remove a file, returning true if successful otherwise false
|
||||
bool Foam::rm(const fileName& file)
|
||||
{
|
||||
if (POSIX::debug)
|
||||
|
||||
@ -132,6 +132,7 @@ $(dictionaryEntry)/dictionaryEntryIO.C
|
||||
functionEntries = $(dictionary)/functionEntries
|
||||
$(functionEntries)/functionEntry/functionEntry.C
|
||||
$(functionEntries)/includeEntry/includeEntry.C
|
||||
$(functionEntries)/includeIfPresentEntry/includeIfPresentEntry.C
|
||||
$(functionEntries)/inputModeEntry/inputModeEntry.C
|
||||
$(functionEntries)/removeEntry/removeEntry.C
|
||||
|
||||
|
||||
@ -62,7 +62,7 @@ namespace functionEntries
|
||||
}
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * * //
|
||||
|
||||
Foam::fileName Foam::functionEntries::includeEntry::includeFileName
|
||||
(
|
||||
@ -112,6 +112,7 @@ bool Foam::functionEntries::includeEntry::execute
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool Foam::functionEntries::includeEntry::execute
|
||||
(
|
||||
const dictionary& parentDict,
|
||||
|
||||
@ -67,15 +67,19 @@ class includeEntry
|
||||
{
|
||||
// Private Member Functions
|
||||
|
||||
//- Read the include fileName from Istream, expand and return
|
||||
static fileName includeFileName(Istream&);
|
||||
|
||||
//- Disallow default bitwise copy construct
|
||||
includeEntry(const includeEntry&);
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const includeEntry&);
|
||||
|
||||
protected:
|
||||
|
||||
// Protected Member Functions
|
||||
|
||||
//- Read the include fileName from Istream, expand and return
|
||||
static fileName includeFileName(Istream&);
|
||||
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@ -0,0 +1,101 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "includeIfPresentEntry.H"
|
||||
#include "dictionary.H"
|
||||
#include "IFstream.H"
|
||||
#include "addToMemberFunctionSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
const Foam::word Foam::functionEntries::includeIfPresentEntry::typeName
|
||||
(
|
||||
Foam::functionEntries::includeIfPresentEntry::typeName_()
|
||||
);
|
||||
|
||||
// Don't lookup the debug switch here as the debug switch dictionary
|
||||
// might include includeIfPresentEntry
|
||||
int Foam::functionEntries::includeIfPresentEntry::debug(0);
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace functionEntries
|
||||
{
|
||||
addToMemberFunctionSelectionTable
|
||||
(
|
||||
functionEntry,
|
||||
includeIfPresentEntry,
|
||||
execute,
|
||||
dictionaryIstream
|
||||
);
|
||||
|
||||
addToMemberFunctionSelectionTable
|
||||
(
|
||||
functionEntry,
|
||||
includeIfPresentEntry,
|
||||
execute,
|
||||
primitiveEntryIstream
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
bool Foam::functionEntries::includeIfPresentEntry::execute
|
||||
(
|
||||
dictionary& parentDict,
|
||||
Istream& is
|
||||
)
|
||||
{
|
||||
IFstream ifs(includeFileName(is));
|
||||
|
||||
if (ifs)
|
||||
{
|
||||
parentDict.read(ifs);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::functionEntries::includeIfPresentEntry::execute
|
||||
(
|
||||
const dictionary& parentDict,
|
||||
primitiveEntry& entry,
|
||||
Istream& is
|
||||
)
|
||||
{
|
||||
IFstream ifs(includeFileName(is));
|
||||
|
||||
if (ifs)
|
||||
{
|
||||
entry.read(parentDict, ifs);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,101 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Class
|
||||
Foam::functionEntries::includeIfPresentEntry
|
||||
|
||||
Description
|
||||
Specify a file to include if it exists. Expects a single string to follow.
|
||||
|
||||
The @c \#includeIfPresent directive is similar to the @c \#include
|
||||
directive, but does not generate an error if the file does not exist.
|
||||
|
||||
See Also
|
||||
Foam::functionEntries::includeEntry
|
||||
|
||||
SourceFiles
|
||||
includeIfPresentEntry.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef includeIfPresentEntry_H
|
||||
#define includeIfPresentEntry_H
|
||||
|
||||
#include "includeEntry.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace functionEntries
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class includeIfPresentEntry Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class includeIfPresentEntry
|
||||
:
|
||||
public includeEntry
|
||||
{
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow default bitwise copy construct
|
||||
includeIfPresentEntry(const includeIfPresentEntry&);
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const includeIfPresentEntry&);
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
ClassName("includeIfPresent");
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Execute the functionEntry in a sub-dict context
|
||||
static bool execute(dictionary& parentDict, Istream&);
|
||||
|
||||
//- Execute the functionEntry in a primitiveEntry context
|
||||
static bool execute
|
||||
(
|
||||
const dictionary& parentDict,
|
||||
primitiveEntry&,
|
||||
Istream&
|
||||
);
|
||||
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace functionEntries
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -50,8 +50,7 @@ Foam::OutputFilterFunctionObject<OutputFilter>::OutputFilterFunctionObject
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
functionObject(),
|
||||
name_(name),
|
||||
functionObject(name),
|
||||
time_(t),
|
||||
dict_(dict),
|
||||
regionName_(polyMesh::defaultRegion),
|
||||
@ -92,7 +91,7 @@ bool Foam::OutputFilterFunctionObject<OutputFilter>::start()
|
||||
(
|
||||
new IOOutputFilter<OutputFilter>
|
||||
(
|
||||
name_,
|
||||
name(),
|
||||
time_.lookupObject<objectRegistry>(regionName_),
|
||||
dictName_
|
||||
)
|
||||
@ -104,7 +103,7 @@ bool Foam::OutputFilterFunctionObject<OutputFilter>::start()
|
||||
(
|
||||
new OutputFilter
|
||||
(
|
||||
name_,
|
||||
name(),
|
||||
time_.lookupObject<objectRegistry>(regionName_),
|
||||
dict_
|
||||
)
|
||||
|
||||
@ -63,9 +63,6 @@ class OutputFilterFunctionObject
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- Output filter name
|
||||
word name_;
|
||||
|
||||
//- Reference to the time database
|
||||
const Time& time_;
|
||||
|
||||
@ -121,12 +118,6 @@ public:
|
||||
|
||||
// Access
|
||||
|
||||
//- Return name
|
||||
virtual const word& name() const
|
||||
{
|
||||
return name_;
|
||||
}
|
||||
|
||||
//- Return time database
|
||||
virtual const Time& time() const
|
||||
{
|
||||
|
||||
@ -36,7 +36,9 @@ int Foam::functionObject::debug(Foam::debug::debugSwitch("functionObject", 0));
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::functionObject::functionObject()
|
||||
Foam::functionObject::functionObject(const word& name)
|
||||
:
|
||||
name_(name)
|
||||
{}
|
||||
|
||||
|
||||
@ -103,6 +105,12 @@ Foam::functionObject::~functionObject()
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
const Foam::word& Foam::functionObject::name() const
|
||||
{
|
||||
return name_;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::functionObject::end()
|
||||
{
|
||||
return execute();
|
||||
|
||||
@ -57,6 +57,12 @@ class Time;
|
||||
|
||||
class functionObject
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- Name
|
||||
const word name_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow default bitwise copy construct
|
||||
@ -88,8 +94,8 @@ public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct null
|
||||
functionObject();
|
||||
//- Construct from components
|
||||
functionObject(const word& name);
|
||||
|
||||
//- Return clone
|
||||
autoPtr<functionObject> clone() const
|
||||
@ -137,6 +143,9 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Name
|
||||
virtual const word& name() const;
|
||||
|
||||
//- Called at the start of the time-loop
|
||||
virtual bool start() = 0;
|
||||
|
||||
|
||||
@ -133,6 +133,9 @@ public:
|
||||
//- Return true if the List is empty (ie, size() is zero).
|
||||
using PtrList<functionObject>::empty;
|
||||
|
||||
//- Access to the functionObjects
|
||||
using PtrList<functionObject>::operator[];
|
||||
|
||||
//- Clear the list of function objects
|
||||
virtual void clear();
|
||||
|
||||
|
||||
@ -119,7 +119,8 @@ mode_t mode(const fileName&);
|
||||
fileName::Type type(const fileName&);
|
||||
|
||||
//- Does the name exist (as DIRECTORY or FILE) in the file system?
|
||||
bool exists(const fileName&);
|
||||
// Optionally enable/disable check for gzip file.
|
||||
bool exists(const fileName&, const bool checkGzip=true);
|
||||
|
||||
//- Does the name exist as a DIRECTORY in the file system?
|
||||
bool isDir(const fileName&);
|
||||
@ -143,15 +144,19 @@ fileNameList readDir
|
||||
);
|
||||
|
||||
//- Copy, recursively if necessary, the source to the destination
|
||||
bool cp(const fileName& srcFile, const fileName& destFile);
|
||||
bool cp(const fileName& src, const fileName& dst);
|
||||
|
||||
//- Create a softlink. destFile should not exist. Returns true if successful.
|
||||
bool ln(const fileName& srcFile, const fileName& destFile);
|
||||
//- Create a softlink. dst should not exist. Returns true if successful.
|
||||
bool ln(const fileName& src, const fileName& dst);
|
||||
|
||||
//- Rename srcFile destFile
|
||||
bool mv(const fileName& srcFile, const fileName& destFile);
|
||||
//- Rename src to dst
|
||||
bool mv(const fileName& src, const fileName& dst);
|
||||
|
||||
//- Remove a file returning true if successful otherwise false
|
||||
//- Rename to a corresponding backup file
|
||||
// If the backup file already exists, attempt with "01" .. "99" suffix
|
||||
bool mvBak(const fileName&, const std::string& ext = "bak");
|
||||
|
||||
//- Remove a file, returning true if successful otherwise false
|
||||
bool rm(const fileName&);
|
||||
|
||||
//- Remove a dirctory and its contents
|
||||
|
||||
@ -928,7 +928,7 @@ Foam::labelList Foam::fvMeshDistribute::mapBoundaryData
|
||||
{
|
||||
label newFaceI = map.oldFaceMap()[oldBFaceI + map.nOldInternalFaces()];
|
||||
|
||||
// Face still exists (is nessecary?) and still boundary face
|
||||
// Face still exists (is necessary?) and still boundary face
|
||||
if (newFaceI >= 0 && newFaceI >= mesh.nInternalFaces())
|
||||
{
|
||||
newBoundaryData[newFaceI - mesh.nInternalFaces()] =
|
||||
|
||||
@ -52,6 +52,17 @@ Foam::passiveParticleCloud::passiveParticleCloud
|
||||
}
|
||||
|
||||
|
||||
Foam::passiveParticleCloud::passiveParticleCloud
|
||||
(
|
||||
const polyMesh& mesh,
|
||||
const word& cloudName,
|
||||
const IDLList<passiveParticle>& particles
|
||||
)
|
||||
:
|
||||
Cloud<passiveParticle>(mesh, cloudName, particles)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
void Foam::passiveParticleCloud::readFields()
|
||||
|
||||
@ -63,6 +63,9 @@ class passiveParticleCloud
|
||||
|
||||
public:
|
||||
|
||||
//- Type of parcel the cloud was instantiated for
|
||||
typedef passiveParticle parcelType;
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct given mesh
|
||||
@ -72,6 +75,14 @@ public:
|
||||
const word& cloudName = "defaultCloud"
|
||||
);
|
||||
|
||||
//- Construct from mesh, cloud name, and a list of particles
|
||||
passiveParticleCloud
|
||||
(
|
||||
const polyMesh& mesh,
|
||||
const word& cloudName,
|
||||
const IDLList<passiveParticle>& particles
|
||||
);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
|
||||
@ -81,7 +81,11 @@ Foam::isoSurface::adaptPatchFields
|
||||
{
|
||||
const polyPatch& pp = patches[patchI];
|
||||
|
||||
if (isA<emptyPolyPatch>(pp))
|
||||
if
|
||||
(
|
||||
isA<emptyPolyPatch>(pp)
|
||||
&& pp.size() != sliceFld.boundaryField()[patchI].size()
|
||||
)
|
||||
{
|
||||
// Clear old value. Cannot resize it since is a slice.
|
||||
sliceFld.boundaryField().set(patchI, NULL);
|
||||
@ -96,11 +100,18 @@ Foam::isoSurface::adaptPatchFields
|
||||
sliceFld
|
||||
)
|
||||
);
|
||||
sliceFld.boundaryField()[patchI] ==
|
||||
mesh.boundary()[patchI].patchInternalField
|
||||
(
|
||||
sliceFld
|
||||
);
|
||||
|
||||
// Note: cannot use patchInternalField since uses emptyFvPatch::size
|
||||
// Do our own internalField instead.
|
||||
const unallocLabelList& faceCells =
|
||||
mesh.boundary()[patchI].patch().faceCells();
|
||||
|
||||
Field<Type>& pfld = sliceFld.boundaryField()[patchI];
|
||||
pfld.setSize(faceCells.size());
|
||||
forAll(faceCells, i)
|
||||
{
|
||||
pfld[i] = sliceFld[faceCells[i]];
|
||||
}
|
||||
}
|
||||
else if (isA<cyclicPolyPatch>(pp))
|
||||
{
|
||||
|
||||
@ -37,7 +37,13 @@ License
|
||||
namespace Foam
|
||||
{
|
||||
defineTypeNameAndDebug(sampledCuttingPlane, 0);
|
||||
addNamedToRunTimeSelectionTable(sampledSurface, sampledCuttingPlane, word, cuttingPlane);
|
||||
addNamedToRunTimeSelectionTable
|
||||
(
|
||||
sampledSurface,
|
||||
sampledCuttingPlane,
|
||||
word,
|
||||
cuttingPlane
|
||||
);
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
@ -118,7 +124,7 @@ void Foam::sampledCuttingPlane::createGeometry()
|
||||
|
||||
// Internal field
|
||||
{
|
||||
const pointField& cc = fvm.C();
|
||||
const pointField& cc = fvm.cellCentres();
|
||||
scalarField& fld = cellDistance.internalField();
|
||||
|
||||
forAll(cc, i)
|
||||
@ -130,14 +136,45 @@ void Foam::sampledCuttingPlane::createGeometry()
|
||||
|
||||
// Patch fields
|
||||
{
|
||||
forAll(fvm.C().boundaryField(), patchI)
|
||||
forAll(cellDistance.boundaryField(), patchI)
|
||||
{
|
||||
const pointField& cc = fvm.C().boundaryField()[patchI];
|
||||
fvPatchScalarField& fld = cellDistance.boundaryField()[patchI];
|
||||
|
||||
forAll(fld, i)
|
||||
if
|
||||
(
|
||||
isA<emptyFvPatchScalarField>
|
||||
(
|
||||
cellDistance.boundaryField()[patchI]
|
||||
)
|
||||
)
|
||||
{
|
||||
fld[i] = (cc[i] - plane_.refPoint()) & plane_.normal();
|
||||
cellDistance.boundaryField().set
|
||||
(
|
||||
patchI,
|
||||
new calculatedFvPatchScalarField
|
||||
(
|
||||
fvm.boundary()[patchI],
|
||||
cellDistance
|
||||
)
|
||||
);
|
||||
|
||||
const polyPatch& pp = fvm.boundary()[patchI].patch();
|
||||
pointField::subField cc = pp.patchSlice(fvm.faceCentres());
|
||||
|
||||
fvPatchScalarField& fld = cellDistance.boundaryField()[patchI];
|
||||
fld.setSize(pp.size());
|
||||
forAll(fld, i)
|
||||
{
|
||||
fld[i] = (cc[i] - plane_.refPoint()) & plane_.normal();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const pointField& cc = fvm.C().boundaryField()[patchI];
|
||||
fvPatchScalarField& fld = cellDistance.boundaryField()[patchI];
|
||||
|
||||
forAll(fld, i)
|
||||
{
|
||||
fld[i] = (cc[i] - plane_.refPoint()) & plane_.normal();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -38,7 +38,5 @@ derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLe
|
||||
derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
|
||||
|
||||
backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C
|
||||
backwardsCompatibility/derivedFvPatchFields/backwardsCompatibilityTurbulentMixingLengthDissipationRateInlet.C
|
||||
backwardsCompatibility/derivedFvPatchFields/backwardsCompatibilityTurbulentMixingLengthFrequencyInlet.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libcompressibleRASModels
|
||||
|
||||
@ -1,156 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2006-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "backwardsCompatibilityTurbulentMixingLengthDissipationRateInlet.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "fvPatchFieldMapper.H"
|
||||
#include "surfaceFields.H"
|
||||
#include "volFields.H"
|
||||
#include "RASModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace compressible
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField::
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
(
|
||||
const fvPatch& p,
|
||||
const DimensionedField<scalar, volMesh>& iF
|
||||
)
|
||||
:
|
||||
fixedValueFvPatchField<scalar>(p, iF),
|
||||
mixingLength_(0.001)
|
||||
{}
|
||||
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField::
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
(
|
||||
const backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField& ptf,
|
||||
const fvPatch& p,
|
||||
const DimensionedField<scalar, volMesh>& iF,
|
||||
const fvPatchFieldMapper& mapper
|
||||
)
|
||||
:
|
||||
fixedValueFvPatchField<scalar>(ptf, p, iF, mapper),
|
||||
mixingLength_(ptf.mixingLength_)
|
||||
{}
|
||||
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField::
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
(
|
||||
const fvPatch& p,
|
||||
const DimensionedField<scalar, volMesh>& iF,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
fixedValueFvPatchField<scalar>(p, iF, dict),
|
||||
mixingLength_(readScalar(dict.lookup("mixingLength")))
|
||||
{}
|
||||
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField::
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
(
|
||||
const backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField& ptf
|
||||
)
|
||||
:
|
||||
fixedValueFvPatchField<scalar>(ptf),
|
||||
mixingLength_(ptf.mixingLength_)
|
||||
{}
|
||||
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField::
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
(
|
||||
const backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField& ptf,
|
||||
const DimensionedField<scalar, volMesh>& iF
|
||||
)
|
||||
:
|
||||
fixedValueFvPatchField<scalar>(ptf, iF),
|
||||
mixingLength_(ptf.mixingLength_)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
void backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField::updateCoeffs()
|
||||
{
|
||||
if (updated())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Lookup Cmu corresponding to the turbulence model selected
|
||||
const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
|
||||
|
||||
const scalar Cmu = readScalar(rasModel.coeffDict().lookup("Cmu"));
|
||||
const scalar Cmu75 = pow(Cmu, 0.75);
|
||||
|
||||
const fvPatchField<scalar>& kp =
|
||||
patch().lookupPatchField<volScalarField, scalar>("k");
|
||||
|
||||
operator==(Cmu75*kp*sqrt(kp)/mixingLength_);
|
||||
|
||||
fixedValueFvPatchField<scalar>::updateCoeffs();
|
||||
}
|
||||
|
||||
|
||||
void backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField::write
|
||||
(
|
||||
Ostream& os
|
||||
) const
|
||||
{
|
||||
// write with prefix for forwards compatibility
|
||||
// mimic - fvPatchField<scalar>::write(os);
|
||||
|
||||
os.writeKeyword("type")
|
||||
<< "compressible::" << type() << token::END_STATEMENT << nl;
|
||||
|
||||
os.writeKeyword("mixingLength")
|
||||
<< mixingLength_ << token::END_STATEMENT << nl;
|
||||
writeEntry("value", os);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
makePatchTypeField
|
||||
(
|
||||
fvPatchScalarField,
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,158 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2006-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Class
|
||||
Foam::compressible::
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
|
||||
Description
|
||||
Compatibility for the new namespace qualifier
|
||||
Foam::compressible::turbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
|
||||
SourceFiles
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInlet.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef backwardsCompatibilityTurbulentMixingLengthDissipationRateInlet_H
|
||||
#define backwardsCompatibilityTurbulentMixingLengthDissipationRateInlet_H
|
||||
|
||||
#include "fixedValueFvPatchFields.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace compressible
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
:
|
||||
public fixedValueFvPatchScalarField
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- turbulent length scale
|
||||
scalar mixingLength_;
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("turbulentMixingLengthDissipationRateInlet");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from patch and internal field
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
(
|
||||
const fvPatch&,
|
||||
const DimensionedField<scalar, volMesh>&
|
||||
);
|
||||
|
||||
//- Construct from patch, internal field and dictionary
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
(
|
||||
const fvPatch&,
|
||||
const DimensionedField<scalar, volMesh>&,
|
||||
const dictionary&
|
||||
);
|
||||
|
||||
//- Construct by mapping given
|
||||
// backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
// onto a new patch
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
(
|
||||
const backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField&,
|
||||
const fvPatch&,
|
||||
const DimensionedField<scalar, volMesh>&,
|
||||
const fvPatchFieldMapper&
|
||||
);
|
||||
|
||||
//- Construct as copy
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
(
|
||||
const backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField&
|
||||
);
|
||||
|
||||
//- Construct and return a clone
|
||||
virtual tmp<fvPatchScalarField> clone() const
|
||||
{
|
||||
return tmp<fvPatchScalarField>
|
||||
(
|
||||
new backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
(
|
||||
*this
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
//- Construct as copy setting internal field reference
|
||||
backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
(
|
||||
const backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField&,
|
||||
const DimensionedField<scalar, volMesh>&
|
||||
);
|
||||
|
||||
//- Construct and return a clone setting internal field reference
|
||||
virtual tmp<fvPatchScalarField> clone
|
||||
(
|
||||
const DimensionedField<scalar, volMesh>& iF
|
||||
) const
|
||||
{
|
||||
return tmp<fvPatchScalarField>
|
||||
(
|
||||
new backwardsCompatibilityTurbulentMixingLengthDissipationRateInletFvPatchScalarField
|
||||
(
|
||||
*this,
|
||||
iF
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// Member functions
|
||||
|
||||
//- Update the coefficients associated with the patch field
|
||||
virtual void updateCoeffs();
|
||||
|
||||
//- Write
|
||||
virtual void write(Ostream&) const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,163 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2006-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "backwardsCompatibilityTurbulentMixingLengthFrequencyInlet.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "fvPatchFieldMapper.H"
|
||||
#include "surfaceFields.H"
|
||||
#include "volFields.H"
|
||||
#include "RASModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace compressible
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField::
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
(
|
||||
const fvPatch& p,
|
||||
const DimensionedField<scalar, volMesh>& iF
|
||||
)
|
||||
:
|
||||
fixedValueFvPatchField<scalar>(p, iF),
|
||||
mixingLength_(0.0),
|
||||
kName_("k")
|
||||
{}
|
||||
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField::
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
(
|
||||
const backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField& ptf,
|
||||
const fvPatch& p,
|
||||
const DimensionedField<scalar, volMesh>& iF,
|
||||
const fvPatchFieldMapper& mapper
|
||||
)
|
||||
:
|
||||
fixedValueFvPatchField<scalar>(ptf, p, iF, mapper),
|
||||
mixingLength_(ptf.mixingLength_),
|
||||
kName_(ptf.kName_)
|
||||
{}
|
||||
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField::
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
(
|
||||
const fvPatch& p,
|
||||
const DimensionedField<scalar, volMesh>& iF,
|
||||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
fixedValueFvPatchField<scalar>(p, iF, dict),
|
||||
mixingLength_(readScalar(dict.lookup("mixingLength"))),
|
||||
kName_(dict.lookupOrDefault<word>("k", "k"))
|
||||
{}
|
||||
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField::
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
(
|
||||
const backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField& ptf
|
||||
)
|
||||
:
|
||||
fixedValueFvPatchField<scalar>(ptf),
|
||||
mixingLength_(ptf.mixingLength_),
|
||||
kName_(ptf.kName_)
|
||||
{}
|
||||
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField::
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
(
|
||||
const backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField& ptf,
|
||||
const DimensionedField<scalar, volMesh>& iF
|
||||
)
|
||||
:
|
||||
fixedValueFvPatchField<scalar>(ptf, iF),
|
||||
mixingLength_(ptf.mixingLength_),
|
||||
kName_(ptf.kName_)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
void backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField::updateCoeffs()
|
||||
{
|
||||
if (updated())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Lookup Cmu corresponding to the turbulence model selected
|
||||
const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
|
||||
|
||||
const scalar Cmu = readScalar(rasModel.coeffDict().lookup("Cmu"));
|
||||
const scalar Cmu25 = pow(Cmu, 0.25);
|
||||
|
||||
const fvPatchField<scalar>& kp =
|
||||
patch().lookupPatchField<volScalarField, scalar>(kName_);
|
||||
|
||||
operator==(sqrt(kp)/(Cmu25*mixingLength_));
|
||||
|
||||
fixedValueFvPatchField<scalar>::updateCoeffs();
|
||||
}
|
||||
|
||||
|
||||
void backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField::write
|
||||
(
|
||||
Ostream& os
|
||||
) const
|
||||
{
|
||||
// write with prefix for forwards compatibility
|
||||
// mimic - fvPatchField<scalar>::write(os);
|
||||
|
||||
os.writeKeyword("type")
|
||||
<< "compressible::" << type() << token::END_STATEMENT << nl;
|
||||
|
||||
os.writeKeyword("mixingLength")
|
||||
<< mixingLength_ << token::END_STATEMENT << nl;
|
||||
|
||||
os.writeKeyword("k") << kName_ << token::END_STATEMENT << nl;
|
||||
writeEntry("value", os);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
makePatchTypeField
|
||||
(
|
||||
fvPatchScalarField,
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,162 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2006-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Class
|
||||
Foam::compressible::
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
|
||||
Description
|
||||
Compatibility for the new namespace qualifier
|
||||
Foam::compressible::turbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
|
||||
SourceFiles
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef compressiblebackwardsCompatibilityTurbulentMixingLengthFrequencyInlet_H
|
||||
#define compressiblebackwardsCompatibilityTurbulentMixingLengthFrequencyInlet_H
|
||||
|
||||
#include "fixedValueFvPatchFields.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace compressible
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
:
|
||||
public fixedValueFvPatchScalarField
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- Turbulent length scale
|
||||
scalar mixingLength_;
|
||||
|
||||
//- Name of the turbulent kinetic energy field
|
||||
word kName_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("turbulentMixingLengthFrequencyInlet");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from patch and internal field
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
(
|
||||
const fvPatch&,
|
||||
const DimensionedField<scalar, volMesh>&
|
||||
);
|
||||
|
||||
//- Construct from patch, internal field and dictionary
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
(
|
||||
const fvPatch&,
|
||||
const DimensionedField<scalar, volMesh>&,
|
||||
const dictionary&
|
||||
);
|
||||
|
||||
//- Construct by mapping given
|
||||
// backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
// onto a new patch
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
(
|
||||
const backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField&,
|
||||
const fvPatch&,
|
||||
const DimensionedField<scalar, volMesh>&,
|
||||
const fvPatchFieldMapper&
|
||||
);
|
||||
|
||||
//- Construct as copy
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
(
|
||||
const backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField&
|
||||
);
|
||||
|
||||
//- Construct and return a clone
|
||||
virtual tmp<fvPatchScalarField> clone() const
|
||||
{
|
||||
return tmp<fvPatchScalarField>
|
||||
(
|
||||
new backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
(
|
||||
*this
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
//- Construct as copy setting internal field reference
|
||||
backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
(
|
||||
const backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField&,
|
||||
const DimensionedField<scalar, volMesh>&
|
||||
);
|
||||
|
||||
//- Construct and return a clone setting internal field reference
|
||||
virtual tmp<fvPatchScalarField> clone
|
||||
(
|
||||
const DimensionedField<scalar, volMesh>& iF
|
||||
) const
|
||||
{
|
||||
return tmp<fvPatchScalarField>
|
||||
(
|
||||
new backwardsCompatibilityTurbulentMixingLengthFrequencyInletFvPatchScalarField
|
||||
(
|
||||
*this,
|
||||
iF
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// Member functions
|
||||
|
||||
//- Update the coefficients associated with the patch field
|
||||
virtual void updateCoeffs();
|
||||
|
||||
//- Write
|
||||
virtual void write(Ostream&) const;
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -104,7 +104,7 @@ autoCreateWallFunctionField
|
||||
// rename file
|
||||
Info<< " Backup original " << fieldName << " to "
|
||||
<< fieldName << ".old" << endl;
|
||||
mv(ioObj.objectPath(), ioObj.objectPath() + ".old");
|
||||
mvBak(ioObj.objectPath(), "old");
|
||||
|
||||
|
||||
PtrList<fvPatchField<Type> > newPatchFields(mesh.boundary().size());
|
||||
|
||||
@ -42,6 +42,6 @@ derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFv
|
||||
derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
|
||||
derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
|
||||
|
||||
backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.C
|
||||
backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libincompressibleRASModels
|
||||
|
||||
@ -104,7 +104,7 @@ autoCreateWallFunctionField
|
||||
// rename file
|
||||
Info<< " Backup original " << fieldName << " to "
|
||||
<< fieldName << ".old" << endl;
|
||||
mv(ioObj.objectPath(), ioObj.objectPath() + ".old");
|
||||
mvBak(ioObj.objectPath(), "old");
|
||||
|
||||
|
||||
PtrList<fvPatchField<Type> > newPatchFields(mesh.boundary().size());
|
||||
@ -29,7 +29,9 @@
|
||||
# Generic Makefile used by wmake
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
# Set shell the Makefile uses to the Bourne shell
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# The Makefile use a POSIX shell
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
@ -34,6 +34,6 @@
|
||||
# run from this directory only
|
||||
cd ${0%/*} || exit 1
|
||||
|
||||
( cd src && make )
|
||||
( cd src && make $@ )
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -4,7 +4,7 @@ include $(GENERAL_RULES)/sourceToDep
|
||||
|
||||
include $(GENERAL_RULES)/flex
|
||||
include $(GENERAL_RULES)/flex++
|
||||
#include $(GENERAL_RULES)/byacc
|
||||
#include $(GENERAL_RULES)/btyacc++
|
||||
## include $(GENERAL_RULES)/byacc
|
||||
## include $(GENERAL_RULES)/btyacc++
|
||||
include $(GENERAL_RULES)/bison
|
||||
include $(GENERAL_RULES)/moc
|
||||
|
||||
@ -43,7 +43,22 @@ SHELL = /bin/sh
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .o
|
||||
|
||||
BIN = $(WM_DIR)/bin/$(WM_ARCH)$(WM_COMPILER)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# set compilation and dependency building rules
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
GENERAL_RULES = $(WM_DIR)/rules/General
|
||||
RULES = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER)
|
||||
BIN = $(WM_DIR)/bin/$(WM_ARCH)$(WM_COMPILER)
|
||||
|
||||
include $(RULES)/general
|
||||
include $(RULES)/$(WM_LINK_LANGUAGE)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# targets
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
all: $(BIN)/dirToString $(BIN)/wmkdep
|
||||
|
||||
@ -59,16 +74,7 @@ $(BIN)/wmkdep: wmkdep.l
|
||||
@mkdir -p $(BIN)
|
||||
flex wmkdep.l
|
||||
$(cc) $(cFLAGS) lex.yy.c -o $(BIN)/wmkdep
|
||||
@rm -f lex.yy.c 2>/dev/null
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# set compilation and dependency building rules
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
GENERAL_RULES = $(WM_DIR)/rules/General
|
||||
RULES = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER)
|
||||
|
||||
include $(RULES)/general
|
||||
include $(RULES)/$(WM_LINK_LANGUAGE)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -27,38 +27,68 @@
|
||||
# wmakeLnIncludeAll
|
||||
#
|
||||
# Description
|
||||
# Find directories containing a Make/ directory and execute
|
||||
# Find directories containing an lnInclude/ directory and execute
|
||||
# 'wmakeLnInclude -f' for each one
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
# default is pwd
|
||||
if [ "$#" -eq 0 ]
|
||||
then
|
||||
set -- .
|
||||
elif [ "$1" = "-h" -o "$1" = "-help" ]
|
||||
then
|
||||
echo "Usage: ${0##*/} [dir1] .. [dirN]"
|
||||
echo
|
||||
echo " Find directories containing a Make/ directory and"
|
||||
echo " execute 'wmakeLnInclude -f' for each one"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
usage() {
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
|
||||
usage: ${0##*/} [-make] [dir1 .. dirN]
|
||||
|
||||
Find directories containing an lnInclude/ directory and execute
|
||||
'wmakeLnInclude -f' for each one
|
||||
|
||||
Note
|
||||
Use the '-make' option to search for Make/ instead of lnInclude/
|
||||
|
||||
USAGE
|
||||
exit 1
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
findName=lnInclude
|
||||
|
||||
# simple parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help) # provide immediate help
|
||||
usage
|
||||
;;
|
||||
-make)
|
||||
shift
|
||||
findName=Make
|
||||
;;
|
||||
-*)
|
||||
usage "unknown option: '$*'"
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
# default to searching from pwd
|
||||
[ "$#" -gt 0 ] || set -- .
|
||||
|
||||
for checkDir
|
||||
do
|
||||
if [ -d $checkDir ]
|
||||
then
|
||||
echo "searching: $checkDir for 'Make' directories"
|
||||
echo "searching: $checkDir for '$findName' directories"
|
||||
echo "---------"
|
||||
else
|
||||
echo "skipping non-dir: $checkDir"
|
||||
echo "----------------"
|
||||
continue
|
||||
fi
|
||||
|
||||
find $checkDir -depth -type d -name Make -print | while read dir
|
||||
find $checkDir -depth -type d -name $findName -print | while read dir
|
||||
do
|
||||
dir=${dir%/Make} # trim /Make directory from the end
|
||||
dir=${dir%/$findName} # trim findName from the end
|
||||
if [ -d "$dir" ]
|
||||
then
|
||||
wmakeLnInclude -f $dir
|
||||
|
||||
Reference in New Issue
Block a user