First complete compiled version
This commit is contained in:
parent
c382fe369c
commit
6489771b11
2288 changed files with 45771 additions and 2333113 deletions
|
@ -51,7 +51,7 @@ using namespace Foam;
|
||||||
|
|
||||||
void modifyOrAddFace
|
void modifyOrAddFace
|
||||||
(
|
(
|
||||||
polyTopoChange& meshMod,
|
directTopoChange& meshMod,
|
||||||
const face& f,
|
const face& f,
|
||||||
const label faceI,
|
const label faceI,
|
||||||
const label own,
|
const label own,
|
||||||
|
@ -59,7 +59,6 @@ void modifyOrAddFace
|
||||||
const label newPatchI,
|
const label newPatchI,
|
||||||
const label zoneID,
|
const label zoneID,
|
||||||
const bool zoneFlip,
|
const bool zoneFlip,
|
||||||
|
|
||||||
PackedBoolList& modifiedFace
|
PackedBoolList& modifiedFace
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@ -398,7 +397,8 @@ int main(int argc, char *argv[])
|
||||||
if (patchWarned.insert(patchI))
|
if (patchWarned.insert(patchI))
|
||||||
{
|
{
|
||||||
WarningIn(args.executable())
|
WarningIn(args.executable())
|
||||||
<< "Found boundary face (in patch " << pp.name()
|
<< "Found boundary face (in patch "
|
||||||
|
<< pp.name()
|
||||||
<< ") in faceZone " << fZone.name()
|
<< ") in faceZone " << fZone.name()
|
||||||
<< " to convert to baffle patch "
|
<< " to convert to baffle patch "
|
||||||
<< patches[newPatchI].name()
|
<< patches[newPatchI].name()
|
||||||
|
@ -408,43 +408,23 @@ int main(int argc, char *argv[])
|
||||||
<< " boundary faces." << endl;
|
<< " boundary faces." << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
meshMod.setAction
|
modifyOrAddFace
|
||||||
(
|
(
|
||||||
polyModifyFace
|
meshMod,
|
||||||
(
|
mesh.faces()[faceI], // modified face
|
||||||
f, // modified face
|
faceI, // label of face
|
||||||
faceI, // label of face
|
mesh.faceOwner()[faceI], // owner
|
||||||
mesh.faceOwner()[faceI], // owner
|
false, // face flip
|
||||||
-1, // neighbour
|
newPatchI, // patch for face
|
||||||
false, // face flip
|
zoneID.index(), // zone for face
|
||||||
newPatch[faceI], // patch for face
|
fZone.flipMap()[zoneFaceI], // face flip in zone
|
||||||
false, // remove from zone
|
modifiedFace // modify or add status
|
||||||
zoneID, // zone for face
|
);
|
||||||
zoneFlip // face flip in zone
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (mesh.isInternalFace(faceI))
|
nModified++;
|
||||||
{
|
}
|
||||||
meshMod.setAction
|
}
|
||||||
(
|
|
||||||
polyAddFace
|
|
||||||
(
|
|
||||||
f.reverseFace(), // modified face
|
|
||||||
mesh.faceNeighbour()[faceI],// owner
|
|
||||||
-1, // neighbour
|
|
||||||
-1, // masterPointID
|
|
||||||
-1, // masterEdgeID
|
|
||||||
faceI, // masterFaceID,
|
|
||||||
false, // face flip
|
|
||||||
newPatch[faceI], // patch for face
|
|
||||||
zoneID, // zone for face
|
|
||||||
zoneFlip // face flip in zone
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nBaffled++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -554,12 +554,13 @@ int main(int argc, char *argv[])
|
||||||
const Switch pointSync(dict.lookup("pointSync"));
|
const Switch pointSync(dict.lookup("pointSync"));
|
||||||
|
|
||||||
|
|
||||||
|
// Change tolerance in controlDict instead. HJ, 22/Oct/2008
|
||||||
|
|
||||||
// Set the matching tolerance so we can read illegal meshes
|
// Set the matching tolerance so we can read illegal meshes
|
||||||
scalar tol = readScalar(dict.lookup("matchTolerance"));
|
// scalar tol = readScalar(dict.lookup("matchTolerance"));
|
||||||
Info<< "Using relative tolerance " << tol
|
// Info<< "Using relative tolerance " << tol
|
||||||
<< " to match up faces and points" << nl << endl;
|
// << " to match up faces and points" << nl << endl;
|
||||||
// Change tolerancein controlDict instead. HJ, 22/Oct/2008
|
// polyPatch::matchTol_ = tol;
|
||||||
// polyPatch::matchTol_ = tol;
|
|
||||||
|
|
||||||
# include "createNamedPolyMesh.H"
|
# include "createNamedPolyMesh.H"
|
||||||
|
|
||||||
|
@ -635,10 +636,8 @@ int main(int argc, char *argv[])
|
||||||
(
|
(
|
||||||
polyPatch::New
|
polyPatch::New
|
||||||
(
|
(
|
||||||
patchType,
|
|
||||||
patchName,
|
patchName,
|
||||||
0, // size
|
patchDict,
|
||||||
startFaceI, // start
|
|
||||||
destPatchI,
|
destPatchI,
|
||||||
patches
|
patches
|
||||||
).ptr()
|
).ptr()
|
||||||
|
|
|
@ -123,7 +123,6 @@ Foam::mergePolyMesh::mergePolyMesh(const IOobject& io)
|
||||||
patchNames_(2*boundaryMesh().size()),
|
patchNames_(2*boundaryMesh().size()),
|
||||||
pointZoneNames_(),
|
pointZoneNames_(),
|
||||||
faceZoneNames_(),
|
faceZoneNames_(),
|
||||||
cellZoneNames_()
|
|
||||||
cellZoneNames_(),
|
cellZoneNames_(),
|
||||||
pointZones_(),
|
pointZones_(),
|
||||||
faceZones_(),
|
faceZones_(),
|
||||||
|
|
|
@ -88,7 +88,7 @@ labelList regionBandCompression
|
||||||
Pout<< " region " << regionI << " starts at " << cellI << endl;
|
Pout<< " region " << regionI << " starts at " << cellI << endl;
|
||||||
|
|
||||||
// Per region do a reordering.
|
// Per region do a reordering.
|
||||||
fvMeshSubset subsetter
|
fvMeshSubset meshSubset
|
||||||
(
|
(
|
||||||
IOobject
|
IOobject
|
||||||
(
|
(
|
||||||
|
@ -100,11 +100,11 @@ labelList regionBandCompression
|
||||||
),
|
),
|
||||||
mesh
|
mesh
|
||||||
);
|
);
|
||||||
subsetter.setLargeCellSubset(cellToRegion, regionI);
|
meshSubset.setLargeCellSubset(cellToRegion, regionI);
|
||||||
const fvMesh& subMesh = subsetter.subMesh();
|
const fvMesh& subMesh = meshSubset.subMesh();
|
||||||
labelList subCellOrder(bandCompression(subMesh.cellCells()));
|
labelList subCellOrder(bandCompression(subMesh.cellCells()));
|
||||||
|
|
||||||
const labelList& cellMap = subsetter.cellMap();
|
const labelList& cellMap = meshSubset.cellMap();
|
||||||
|
|
||||||
forAll(subCellOrder, i)
|
forAll(subCellOrder, i)
|
||||||
{
|
{
|
||||||
|
@ -376,7 +376,6 @@ autoPtr<mapPolyMesh> reorderMesh
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
argList::validOptions.insert("blockOrder", "");
|
argList::validOptions.insert("blockOrder", "");
|
||||||
argList::validOptions.insert("orderPoints", "");
|
|
||||||
argList::validOptions.insert("writeMaps", "");
|
argList::validOptions.insert("writeMaps", "");
|
||||||
argList::validOptions.insert("overwrite", "");
|
argList::validOptions.insert("overwrite", "");
|
||||||
|
|
||||||
|
@ -405,13 +404,6 @@ int main(int argc, char *argv[])
|
||||||
<< endl;
|
<< endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool orderPoints = args.optionFound("orderPoints");
|
|
||||||
if (orderPoints)
|
|
||||||
{
|
|
||||||
Info<< "Ordering points into internal and boundary points." << nl
|
|
||||||
<< endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
const bool writeMaps = args.optionFound("writeMaps");
|
const bool writeMaps = args.optionFound("writeMaps");
|
||||||
|
|
||||||
if (writeMaps)
|
if (writeMaps)
|
||||||
|
@ -564,7 +556,7 @@ int main(int argc, char *argv[])
|
||||||
false, // inflate
|
false, // inflate
|
||||||
true, // parallel sync
|
true, // parallel sync
|
||||||
true, // cell ordering
|
true, // cell ordering
|
||||||
orderPoints // point ordering
|
false // point ordering
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -583,66 +575,8 @@ int main(int argc, char *argv[])
|
||||||
Info<< "Band after renumbering: "
|
Info<< "Band after renumbering: "
|
||||||
<< returnReduce(band, maxOp<label>()) << nl << endl;
|
<< returnReduce(band, maxOp<label>()) << nl << endl;
|
||||||
|
|
||||||
|
// Removed. HJ, 23/Sep/2010
|
||||||
if (orderPoints)
|
// if (orderPoints)
|
||||||
{
|
|
||||||
// Force edge calculation (since only reason that points would need to
|
|
||||||
// be sorted)
|
|
||||||
(void)mesh.edges();
|
|
||||||
|
|
||||||
label nTotPoints = returnReduce
|
|
||||||
(
|
|
||||||
mesh.nPoints(),
|
|
||||||
sumOp<label>()
|
|
||||||
);
|
|
||||||
|
|
||||||
label nTotIntPoints = returnReduce
|
|
||||||
(
|
|
||||||
mesh.nInternalPoints(),
|
|
||||||
sumOp<label>()
|
|
||||||
);
|
|
||||||
|
|
||||||
label nTotEdges = returnReduce
|
|
||||||
(
|
|
||||||
mesh.nEdges(),
|
|
||||||
sumOp<label>()
|
|
||||||
);
|
|
||||||
|
|
||||||
label nTotIntEdges = returnReduce
|
|
||||||
(
|
|
||||||
mesh.nInternalEdges(),
|
|
||||||
sumOp<label>()
|
|
||||||
);
|
|
||||||
|
|
||||||
label nTotInt0Edges = returnReduce
|
|
||||||
(
|
|
||||||
mesh.nInternal0Edges(),
|
|
||||||
sumOp<label>()
|
|
||||||
);
|
|
||||||
|
|
||||||
label nTotInt1Edges = returnReduce
|
|
||||||
(
|
|
||||||
mesh.nInternal1Edges(),
|
|
||||||
sumOp<label>()
|
|
||||||
);
|
|
||||||
|
|
||||||
Info<< "Points:" << nl
|
|
||||||
<< " total : " << nTotPoints << nl
|
|
||||||
<< " internal: " << nTotIntPoints << nl
|
|
||||||
<< " boundary: " << nTotPoints-nTotIntPoints << nl
|
|
||||||
<< "Edges:" << nl
|
|
||||||
<< " total : " << nTotEdges << nl
|
|
||||||
<< " internal: " << nTotIntEdges << nl
|
|
||||||
<< " internal using 0 boundary points: "
|
|
||||||
<< nTotInt0Edges << nl
|
|
||||||
<< " internal using 1 boundary points: "
|
|
||||||
<< nTotInt1Edges-nTotInt0Edges << nl
|
|
||||||
<< " internal using 2 boundary points: "
|
|
||||||
<< nTotIntEdges-nTotInt1Edges << nl
|
|
||||||
<< " boundary: " << nTotEdges-nTotIntEdges << nl
|
|
||||||
<< endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (overwrite)
|
if (overwrite)
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,7 +23,7 @@ License
|
||||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Manipulate a cell/face/point/ set or zone interactively.
|
Manipulate a cell/face/point set interactively.
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -42,16 +42,13 @@ Description
|
||||||
#include "writePatch.H"
|
#include "writePatch.H"
|
||||||
#include "writePointSet.H"
|
#include "writePointSet.H"
|
||||||
#include "IOobjectList.H"
|
#include "IOobjectList.H"
|
||||||
#include "cellZoneSet.H"
|
|
||||||
#include "faceZoneSet.H"
|
|
||||||
#include "pointZoneSet.H"
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
|
||||||
#if READLINE != 0
|
#if READLINE != 0
|
||||||
# include <readline/readline.h>
|
#include <readline/readline.h>
|
||||||
# include <readline/history.h>
|
#include <readline/history.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
using namespace Foam;
|
using namespace Foam;
|
||||||
|
@ -85,7 +82,6 @@ Istream& selectStream(Istream* is0Ptr, Istream* is1Ptr)
|
||||||
// Copy set
|
// Copy set
|
||||||
void backup
|
void backup
|
||||||
(
|
(
|
||||||
const word& setType,
|
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& fromName,
|
const word& fromName,
|
||||||
const topoSet& fromSet,
|
const topoSet& fromSet,
|
||||||
|
@ -96,7 +92,7 @@ void backup
|
||||||
{
|
{
|
||||||
Info<< " Backing up " << fromName << " into " << toName << endl;
|
Info<< " Backing up " << fromName << " into " << toName << endl;
|
||||||
|
|
||||||
topoSet::New(setType, mesh, toName, fromSet)().write();
|
topoSet::New(mesh, toName, fromSet)().write();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,7 +114,7 @@ void backup
|
||||||
IOobject::READ_IF_PRESENT
|
IOobject::READ_IF_PRESENT
|
||||||
);
|
);
|
||||||
|
|
||||||
backup(setType, mesh, fromName, fromSet(), toName);
|
backup(mesh, fromName, fromSet(), toName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -250,8 +246,7 @@ void printHelp(Ostream& os)
|
||||||
<< "A set command should be of the following form" << endl
|
<< "A set command should be of the following form" << endl
|
||||||
<< endl
|
<< endl
|
||||||
<< " cellSet|faceSet|pointSet <setName> <action> <source>"
|
<< " cellSet|faceSet|pointSet <setName> <action> <source>"
|
||||||
<< endl
|
<< endl << endl
|
||||||
<< endl
|
|
||||||
<< "The <action> is one of" << endl
|
<< "The <action> is one of" << endl
|
||||||
<< " list - prints the contents of the set" << endl
|
<< " list - prints the contents of the set" << endl
|
||||||
<< " clear - clears the set" << endl
|
<< " clear - clears the set" << endl
|
||||||
|
@ -282,18 +277,6 @@ void printHelp(Ostream& os)
|
||||||
<< "List set:" << endl
|
<< "List set:" << endl
|
||||||
<< " cellSet c0 list" << endl
|
<< " cellSet c0 list" << endl
|
||||||
<< endl
|
<< endl
|
||||||
<< "Zones can be set using zoneSets from corresponding sets:" << endl
|
|
||||||
<< " cellZoneSet c0Zone new setToCellZone c0" << endl
|
|
||||||
<< " faceZoneSet f0Zone new setToFaceZone f0" << endl
|
|
||||||
<< endl
|
|
||||||
<< "or if orientation is important:" << endl
|
|
||||||
<< " faceZoneSet f0Zone new setsToFaceZone f0 c0" << endl
|
|
||||||
<< endl
|
|
||||||
<< "ZoneSets can be manipulated using the general actions:" << endl
|
|
||||||
<< " list - prints the contents of the set" << endl
|
|
||||||
<< " clear - clears the set" << endl
|
|
||||||
<< " invert - inverts the set (undefined orientation)"
|
|
||||||
<< endl
|
|
||||||
<< " remove - remove the set" << endl
|
<< " remove - remove the set" << endl
|
||||||
<< endl;
|
<< endl;
|
||||||
}
|
}
|
||||||
|
@ -337,74 +320,10 @@ void printAllSets(const polyMesh& mesh, Ostream& os)
|
||||||
os << '\t' << set.name() << "\tsize:" << set.size() << endl;
|
os << '\t' << set.name() << "\tsize:" << set.size() << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const cellZoneMesh& cellZones = mesh.cellZones();
|
|
||||||
if (cellZones.size())
|
|
||||||
{
|
|
||||||
os << "cellZones:" << endl;
|
|
||||||
forAll(cellZones, i)
|
|
||||||
{
|
|
||||||
const cellZone& zone = cellZones[i];
|
|
||||||
os << '\t' << zone.name() << "\tsize:" << zone.size() << endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const faceZoneMesh& faceZones = mesh.faceZones();
|
|
||||||
if (faceZones.size())
|
|
||||||
{
|
|
||||||
os << "faceZones:" << endl;
|
|
||||||
forAll(faceZones, i)
|
|
||||||
{
|
|
||||||
const faceZone& zone = faceZones[i];
|
|
||||||
os << '\t' << zone.name() << "\tsize:" << zone.size() << endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const pointZoneMesh& pointZones = mesh.pointZones();
|
|
||||||
if (pointZones.size())
|
|
||||||
{
|
|
||||||
os << "pointZones:" << endl;
|
|
||||||
forAll(pointZones, i)
|
|
||||||
{
|
|
||||||
const pointZone& zone = pointZones[i];
|
|
||||||
os << '\t' << zone.name() << "\tsize:" << zone.size() << endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
os << endl;
|
os << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class ZoneType>
|
|
||||||
void removeZone
|
|
||||||
(
|
|
||||||
ZoneMesh<ZoneType, polyMesh>& zones,
|
|
||||||
const word& setName
|
|
||||||
)
|
|
||||||
{
|
|
||||||
label zoneID = zones.findZoneID(setName);
|
|
||||||
|
|
||||||
if (zoneID != -1)
|
|
||||||
{
|
|
||||||
Info<< "Removing zone " << setName << " at index " << zoneID << endl;
|
|
||||||
// Shuffle to last position
|
|
||||||
labelList oldToNew(zones.size());
|
|
||||||
label newI = 0;
|
|
||||||
forAll(oldToNew, i)
|
|
||||||
{
|
|
||||||
if (i != zoneID)
|
|
||||||
{
|
|
||||||
oldToNew[i] = newI++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
oldToNew[zoneID] = newI;
|
|
||||||
zones.reorder(oldToNew);
|
|
||||||
// Remove last element
|
|
||||||
zones.setSize(zones.size()-1);
|
|
||||||
zones.clearAddressing();
|
|
||||||
zones.write();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Physically remove a set
|
// Physically remove a set
|
||||||
void removeSet
|
void removeSet
|
||||||
(
|
(
|
||||||
|
@ -428,32 +347,6 @@ void removeSet
|
||||||
Info<< "Removing file " << object << endl;
|
Info<< "Removing file " << object << endl;
|
||||||
rm(object);
|
rm(object);
|
||||||
}
|
}
|
||||||
|
|
||||||
// See if zone
|
|
||||||
if (setType == cellZoneSet::typeName)
|
|
||||||
{
|
|
||||||
removeZone
|
|
||||||
(
|
|
||||||
const_cast<cellZoneMesh&>(mesh.cellZones()),
|
|
||||||
setName
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else if (setType == faceZoneSet::typeName)
|
|
||||||
{
|
|
||||||
removeZone
|
|
||||||
(
|
|
||||||
const_cast<faceZoneMesh&>(mesh.faceZones()),
|
|
||||||
setName
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else if (setType == pointZoneSet::typeName)
|
|
||||||
{
|
|
||||||
removeZone
|
|
||||||
(
|
|
||||||
const_cast<pointZoneMesh&>(mesh.pointZones()),
|
|
||||||
setName
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -521,7 +414,14 @@ bool doCommand
|
||||||
currentSet.resize(max(currentSet.size(), typSize));
|
currentSet.resize(max(currentSet.size(), typSize));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentSetPtr.valid())
|
if (!currentSetPtr.valid())
|
||||||
|
{
|
||||||
|
Info<< " Cannot construct/load set "
|
||||||
|
<< topoSet::localPath(mesh, setName) << endl;
|
||||||
|
|
||||||
|
ok = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
topoSet& currentSet = currentSetPtr();
|
topoSet& currentSet = currentSetPtr();
|
||||||
|
|
||||||
|
@ -530,6 +430,12 @@ bool doCommand
|
||||||
<< " Action:" << actionName
|
<< " Action:" << actionName
|
||||||
<< endl;
|
<< endl;
|
||||||
|
|
||||||
|
if ((r == IOobject::MUST_READ) && (action != topoSetSource::LIST))
|
||||||
|
{
|
||||||
|
// currentSet has been read so can make copy.
|
||||||
|
backup(mesh, setName, currentSet, setName + "_old");
|
||||||
|
}
|
||||||
|
|
||||||
switch (action)
|
switch (action)
|
||||||
{
|
{
|
||||||
case topoSetSource::CLEAR:
|
case topoSetSource::CLEAR:
|
||||||
|
@ -567,7 +473,6 @@ bool doCommand
|
||||||
(
|
(
|
||||||
topoSet::New
|
topoSet::New
|
||||||
(
|
(
|
||||||
setType,
|
|
||||||
mesh,
|
mesh,
|
||||||
currentSet.name() + "_old2",
|
currentSet.name() + "_old2",
|
||||||
currentSet
|
currentSet
|
||||||
|
@ -786,15 +691,6 @@ commandStatus parseType
|
||||||
{
|
{
|
||||||
return VALIDSETCMD;
|
return VALIDSETCMD;
|
||||||
}
|
}
|
||||||
else if
|
|
||||||
(
|
|
||||||
setType == "cellZoneSet"
|
|
||||||
|| setType == "faceZoneSet"
|
|
||||||
|| setType == "pointZoneSet"
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return VALIDZONECMD;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SeriousErrorIn
|
SeriousErrorIn
|
||||||
|
@ -803,7 +699,7 @@ commandStatus parseType
|
||||||
", IStringStream&)"
|
", IStringStream&)"
|
||||||
) << "Illegal command " << setType << endl
|
) << "Illegal command " << setType << endl
|
||||||
<< "Should be one of 'help', 'list', 'time' or a set type :"
|
<< "Should be one of 'help', 'list', 'time' or a set type :"
|
||||||
<< " 'cellSet', 'faceSet', 'pointSet', 'faceZoneSet'"
|
<< " 'cellSet', 'faceSet', 'pointSet'"
|
||||||
<< endl;
|
<< endl;
|
||||||
|
|
||||||
return INVALID;
|
return INVALID;
|
||||||
|
@ -958,12 +854,12 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
IStringStream is(rawLine + ' ');
|
IStringStream is(rawLine + ' ');
|
||||||
|
|
||||||
// Type: cellSet, faceSet, pointSet, faceZoneSet
|
// Type: cellSet, faceSet, pointSet
|
||||||
is >> setType;
|
is >> setType;
|
||||||
|
|
||||||
stat = parseType(runTime, mesh, setType, is);
|
stat = parseType(runTime, mesh, setType, is);
|
||||||
|
|
||||||
if (stat == VALIDSETCMD || stat == VALIDZONECMD)
|
if (stat == VALIDSETCMD)
|
||||||
{
|
{
|
||||||
if (is >> setName)
|
if (is >> setName)
|
||||||
{
|
{
|
||||||
|
@ -979,7 +875,7 @@ int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (stat == VALIDSETCMD || stat == VALIDZONECMD)
|
else if (stat == VALIDSETCMD)
|
||||||
{
|
{
|
||||||
ok = doCommand(mesh, setType, setName, actionName, writeVTK, is);
|
ok = doCommand(mesh, setType, setName, actionName, writeVTK, is);
|
||||||
}
|
}
|
||||||
|
|
|
@ -162,6 +162,10 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
IndirectList<face> zoneFaces(mesh.faces(), faces);
|
IndirectList<face> zoneFaces(mesh.faces(), faces);
|
||||||
|
|
||||||
|
// Calculation engine for set of faces in a mesh
|
||||||
|
typedef PrimitivePatch<face, List, const pointField&> facePatch;
|
||||||
|
|
||||||
|
|
||||||
// Addressing on faces only in mesh vertices.
|
// Addressing on faces only in mesh vertices.
|
||||||
facePatch fPatch(zoneFaces(), mesh.points());
|
facePatch fPatch(zoneFaces(), mesh.points());
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,9 @@ Description
|
||||||
- cellRegionAddressing : ,, cell ,, cell ,,
|
- cellRegionAddressing : ,, cell ,, cell ,,
|
||||||
- faceRegionAddressing : ,, face ,, face in
|
- faceRegionAddressing : ,, face ,, face in
|
||||||
the original mesh + 'turning index'. For a face in the same orientation
|
the original mesh + 'turning index'. For a face in the same orientation
|
||||||
this is the original facelabel+1, for a turned face this is -facelabel-1
|
this is the original facelabel+1, for a turned face
|
||||||
|
this is -facelabel-1
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "SortableList.H"
|
#include "SortableList.H"
|
||||||
|
@ -80,7 +82,8 @@ Description
|
||||||
#include "volFields.H"
|
#include "volFields.H"
|
||||||
#include "faceSet.H"
|
#include "faceSet.H"
|
||||||
#include "cellSet.H"
|
#include "cellSet.H"
|
||||||
#include "polyTopoChange.H"
|
#include "directTopoChange.H"
|
||||||
|
#include "mapPolyMesh.H"
|
||||||
#include "removeCells.H"
|
#include "removeCells.H"
|
||||||
#include "EdgeMap.H"
|
#include "EdgeMap.H"
|
||||||
#include "syncTools.H"
|
#include "syncTools.H"
|
||||||
|
@ -414,7 +417,7 @@ void subsetVolFields
|
||||||
|
|
||||||
tmp<GeoField> tSubFld
|
tmp<GeoField> tSubFld
|
||||||
(
|
(
|
||||||
fvMeshSubset::interpolate
|
fvMeshSubset::meshToMesh
|
||||||
(
|
(
|
||||||
fld,
|
fld,
|
||||||
subMesh,
|
subMesh,
|
||||||
|
@ -473,7 +476,7 @@ void subsetSurfaceFields
|
||||||
|
|
||||||
tmp<GeoField> tSubFld
|
tmp<GeoField> tSubFld
|
||||||
(
|
(
|
||||||
fvMeshSubset::interpolate
|
fvMeshSubset::meshToMesh
|
||||||
(
|
(
|
||||||
fld,
|
fld,
|
||||||
subMesh,
|
subMesh,
|
||||||
|
@ -750,7 +753,7 @@ autoPtr<mapPolyMesh> createRegionMesh
|
||||||
|
|
||||||
|
|
||||||
// Topology change container. Start off from existing mesh.
|
// Topology change container. Start off from existing mesh.
|
||||||
polyTopoChange meshMod(mesh);
|
directTopoChange meshMod(mesh);
|
||||||
|
|
||||||
// Cell remover engine
|
// Cell remover engine
|
||||||
removeCells cellRemover(mesh);
|
removeCells cellRemover(mesh);
|
||||||
|
|
|
@ -68,104 +68,6 @@ Description
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
label addPointZone(const polyMesh& mesh, const word& name)
|
|
||||||
{
|
|
||||||
label zoneID = mesh.pointZones().findZoneID(name);
|
|
||||||
|
|
||||||
if (zoneID != -1)
|
|
||||||
{
|
|
||||||
Info<< "Reusing existing pointZone "
|
|
||||||
<< mesh.pointZones()[zoneID].name()
|
|
||||||
<< " at index " << zoneID << endl;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pointZoneMesh& pointZones = const_cast<polyMesh&>(mesh).pointZones();
|
|
||||||
zoneID = pointZones.size();
|
|
||||||
Info<< "Adding pointZone " << name << " at index " << zoneID << endl;
|
|
||||||
|
|
||||||
pointZones.setSize(zoneID+1);
|
|
||||||
pointZones.set
|
|
||||||
(
|
|
||||||
zoneID,
|
|
||||||
new pointZone
|
|
||||||
(
|
|
||||||
name,
|
|
||||||
labelList(0),
|
|
||||||
zoneID,
|
|
||||||
pointZones
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return zoneID;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
label addFaceZone(const polyMesh& mesh, const word& name)
|
|
||||||
{
|
|
||||||
label zoneID = mesh.faceZones().findZoneID(name);
|
|
||||||
|
|
||||||
if (zoneID != -1)
|
|
||||||
{
|
|
||||||
Info<< "Reusing existing faceZone " << mesh.faceZones()[zoneID].name()
|
|
||||||
<< " at index " << zoneID << endl;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
faceZoneMesh& faceZones = const_cast<polyMesh&>(mesh).faceZones();
|
|
||||||
zoneID = faceZones.size();
|
|
||||||
Info<< "Adding faceZone " << name << " at index " << zoneID << endl;
|
|
||||||
|
|
||||||
faceZones.setSize(zoneID+1);
|
|
||||||
faceZones.set
|
|
||||||
(
|
|
||||||
zoneID,
|
|
||||||
new faceZone
|
|
||||||
(
|
|
||||||
name,
|
|
||||||
labelList(0),
|
|
||||||
boolList(),
|
|
||||||
zoneID,
|
|
||||||
faceZones
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return zoneID;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
label addCellZone(const polyMesh& mesh, const word& name)
|
|
||||||
{
|
|
||||||
label zoneID = mesh.cellZones().findZoneID(name);
|
|
||||||
|
|
||||||
if (zoneID != -1)
|
|
||||||
{
|
|
||||||
Info<< "Reusing existing cellZone " << mesh.cellZones()[zoneID].name()
|
|
||||||
<< " at index " << zoneID << endl;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cellZoneMesh& cellZones = const_cast<polyMesh&>(mesh).cellZones();
|
|
||||||
zoneID = cellZones.size();
|
|
||||||
Info<< "Adding cellZone " << name << " at index " << zoneID << endl;
|
|
||||||
|
|
||||||
cellZones.setSize(zoneID+1);
|
|
||||||
cellZones.set
|
|
||||||
(
|
|
||||||
zoneID,
|
|
||||||
new cellZone
|
|
||||||
(
|
|
||||||
name,
|
|
||||||
labelList(0),
|
|
||||||
zoneID,
|
|
||||||
cellZones
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return zoneID;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Checks whether patch present
|
// Checks whether patch present
|
||||||
void checkPatch(const polyBoundaryMesh& bMesh, const word& name)
|
void checkPatch(const polyBoundaryMesh& bMesh, const word& name)
|
||||||
{
|
{
|
||||||
|
@ -203,8 +105,6 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
Foam::argList::validOptions.insert("overwrite", "");
|
Foam::argList::validOptions.insert("overwrite", "");
|
||||||
|
|
||||||
Foam::argList::validOptions.insert("toleranceDict", "file with tolerances");
|
|
||||||
|
|
||||||
# include "setRootCase.H"
|
# include "setRootCase.H"
|
||||||
# include "createTime.H"
|
# include "createTime.H"
|
||||||
runTime.functionObjects().off();
|
runTime.functionObjects().off();
|
||||||
|
@ -217,7 +117,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
bool partialCover = args.optionFound("partial");
|
bool partialCover = args.optionFound("partial");
|
||||||
bool perfectCover = args.optionFound("perfect");
|
bool perfectCover = args.optionFound("perfect");
|
||||||
bool overwrite = args.optionFound("overwrite");
|
bool overwrite = args.optionFound("overwrite");
|
||||||
|
|
||||||
if (partialCover && perfectCover)
|
if (partialCover && perfectCover)
|
||||||
{
|
{
|
||||||
|
@ -268,22 +168,6 @@ int main(int argc, char *argv[])
|
||||||
<< "If this is not the case use the -partial option" << nl << endl;
|
<< "If this is not the case use the -partial option" << nl << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set up the tolerances for the sliding mesh
|
|
||||||
dictionary slidingTolerances;
|
|
||||||
if (args.options().found("toleranceDict"))
|
|
||||||
{
|
|
||||||
IOdictionary toleranceFile(
|
|
||||||
IOobject(
|
|
||||||
args.options()["toleranceDict"],
|
|
||||||
runTime.constant(),
|
|
||||||
mesh,
|
|
||||||
IOobject::MUST_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
)
|
|
||||||
);
|
|
||||||
slidingTolerances += toleranceFile;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check for non-empty master and slave patches
|
// Check for non-empty master and slave patches
|
||||||
checkPatch(mesh.boundaryMesh(), masterPatchName);
|
checkPatch(mesh.boundaryMesh(), masterPatchName);
|
||||||
checkPatch(mesh.boundaryMesh(), slavePatchName);
|
checkPatch(mesh.boundaryMesh(), slavePatchName);
|
||||||
|
@ -308,21 +192,30 @@ int main(int argc, char *argv[])
|
||||||
polyTopoChanger stitcher(mesh);
|
polyTopoChanger stitcher(mesh);
|
||||||
stitcher.setSize(1);
|
stitcher.setSize(1);
|
||||||
|
|
||||||
mesh.pointZones().clearAddressing();
|
DynamicList<pointZone*> pz;
|
||||||
mesh.faceZones().clearAddressing();
|
DynamicList<faceZone*> fz;
|
||||||
mesh.cellZones().clearAddressing();
|
DynamicList<cellZone*> cz;
|
||||||
|
|
||||||
if (perfectCover)
|
if (perfectCover)
|
||||||
{
|
{
|
||||||
// Add empty zone for resulting internal faces
|
// Add empty zone for resulting internal faces
|
||||||
label cutZoneID = addFaceZone(mesh, cutZoneName);
|
fz.append
|
||||||
|
|
||||||
mesh.faceZones()[cutZoneID].resetAddressing
|
|
||||||
(
|
(
|
||||||
isf,
|
new faceZone
|
||||||
boolList(masterPatch.size(), false)
|
(
|
||||||
|
cutZoneName,
|
||||||
|
isf,
|
||||||
|
boolList(masterPatch.size(), false),
|
||||||
|
0,
|
||||||
|
mesh.faceZones()
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Note: make sure to add the zones BEFORE constructing polyMeshModifier
|
||||||
|
// (since looks up various zones at construction time)
|
||||||
|
Info << "Adding point and face zones" << endl;
|
||||||
|
mesh.addZones(pz.shrink(), fz.shrink(), cz.shrink());
|
||||||
|
|
||||||
// Add the perfect interface mesh modifier
|
// Add the perfect interface mesh modifier
|
||||||
stitcher.set
|
stitcher.set
|
||||||
(
|
(
|
||||||
|
@ -340,15 +233,27 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
label pointZoneID = addPointZone(mesh, mergePatchName + "CutPointZone");
|
pz.append
|
||||||
mesh.pointZones()[pointZoneID] = labelList(0);
|
|
||||||
|
|
||||||
label masterZoneID = addFaceZone(mesh, mergePatchName + "MasterZone");
|
|
||||||
|
|
||||||
mesh.faceZones()[masterZoneID].resetAddressing
|
|
||||||
(
|
(
|
||||||
isf,
|
new pointZone
|
||||||
boolList(masterPatch.size(), false)
|
(
|
||||||
|
mergePatchName + "CutPointZone",
|
||||||
|
labelList(0),
|
||||||
|
0,
|
||||||
|
mesh.pointZones()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
fz.append
|
||||||
|
(
|
||||||
|
new faceZone
|
||||||
|
(
|
||||||
|
mergePatchName + "MasterZone",
|
||||||
|
isf,
|
||||||
|
boolList(masterPatch.size(), false),
|
||||||
|
0,
|
||||||
|
mesh.faceZones()
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Slave patch
|
// Slave patch
|
||||||
|
@ -365,22 +270,37 @@ int main(int argc, char *argv[])
|
||||||
osf[i] = slavePatch.start() + i;
|
osf[i] = slavePatch.start() + i;
|
||||||
}
|
}
|
||||||
|
|
||||||
label slaveZoneID = addFaceZone(mesh, mergePatchName + "SlaveZone");
|
fz.append
|
||||||
mesh.faceZones()[slaveZoneID].resetAddressing
|
|
||||||
(
|
(
|
||||||
osf,
|
new faceZone
|
||||||
boolList(slavePatch.size(), false)
|
(
|
||||||
|
mergePatchName + "SlaveZone",
|
||||||
|
osf,
|
||||||
|
boolList(slavePatch.size(), false),
|
||||||
|
1,
|
||||||
|
mesh.faceZones()
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Add empty zone for cut faces
|
// Add empty zone for cut faces
|
||||||
label cutZoneID = addFaceZone(mesh, cutZoneName);
|
fz.append
|
||||||
mesh.faceZones()[cutZoneID].resetAddressing
|
|
||||||
(
|
(
|
||||||
labelList(0),
|
new faceZone
|
||||||
boolList(0, false)
|
(
|
||||||
|
cutZoneName,
|
||||||
|
labelList(0),
|
||||||
|
boolList(0, false),
|
||||||
|
2,
|
||||||
|
mesh.faceZones()
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// Note: make sure to add the zones BEFORE constructing
|
||||||
|
// polyMeshModifier (since looks up various zones at construction time)
|
||||||
|
Info << "Adding point and face zones" << endl;
|
||||||
|
mesh.addZones(pz.shrink(), fz.shrink(), cz.shrink());
|
||||||
|
|
||||||
// Add the sliding interface mesh modifier
|
// Add the sliding interface mesh modifier
|
||||||
stitcher.set
|
stitcher.set
|
||||||
(
|
(
|
||||||
|
@ -396,15 +316,11 @@ int main(int argc, char *argv[])
|
||||||
cutZoneName,
|
cutZoneName,
|
||||||
masterPatchName,
|
masterPatchName,
|
||||||
slavePatchName,
|
slavePatchName,
|
||||||
tom, // integral or partial
|
tom, // integral or partial
|
||||||
true // couple/decouple mode
|
false, // Attach-detach action
|
||||||
|
intersection::VISIBLE
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
static_cast<slidingInterface&>(stitcher[0]).setTolerances
|
|
||||||
(
|
|
||||||
slidingTolerances,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -445,7 +361,7 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
// Execute all polyMeshModifiers
|
// Execute all polyMeshModifiers
|
||||||
autoPtr<mapPolyMesh> morphMap = stitcher.changeMesh(true);
|
autoPtr<mapPolyMesh> morphMap = stitcher.changeMesh();
|
||||||
|
|
||||||
mesh.movePoints(morphMap->preMotionPoints());
|
mesh.movePoints(morphMap->preMotionPoints());
|
||||||
|
|
||||||
|
|
|
@ -346,7 +346,7 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
subsetter.subMesh().setInstance(oldInstance);
|
meshSubset.subMesh().setInstance(oldInstance);
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "Writing subsetted mesh and fields to time " << runTime.timeName()
|
Info<< "Writing subsetted mesh and fields to time " << runTime.timeName()
|
||||||
|
|
|
@ -269,13 +269,12 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
else if (args.optionFound("rotateAlongVector"))
|
else if (args.optionFound("rotateAlongVector"))
|
||||||
{
|
{
|
||||||
IStringStream rotateVectorOptions
|
vector rotationAxis;
|
||||||
(
|
scalar rotationAngle;
|
||||||
args.optionLookup("rotateAlongVector")
|
|
||||||
);
|
|
||||||
|
|
||||||
vector rotationAxis(rotateVectorOptions);
|
args.optionLookup("rotateAlongVector")()
|
||||||
scalar rotationAngle = readScalar(rotateVectorOptions);
|
>> rotationAxis
|
||||||
|
>> rotationAngle;
|
||||||
|
|
||||||
tensor T = RodriguesRotation(rotationAxis, rotationAngle);
|
tensor T = RodriguesRotation(rotationAxis, rotationAngle);
|
||||||
|
|
||||||
|
@ -285,7 +284,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
if (args.options().found("rotateFields"))
|
if (args.options().found("rotateFields"))
|
||||||
{
|
{
|
||||||
rotateFields(runTime, T);
|
rotateFields(args, runTime, T);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -255,12 +255,24 @@ void Foam::vtkPV3Foam::convertMeshCellZones
|
||||||
<< zoneName << endl;
|
<< zoneName << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
fvMeshSubset subsetter(mesh);
|
fvMeshSubset subsetMesh
|
||||||
subsetter.setLargeCellSubset(zMesh[zoneId]);
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"set",
|
||||||
|
mesh.time().constant(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
subsetMesh.setLargeCellSubset(zMesh[zoneId]);
|
||||||
|
|
||||||
vtkUnstructuredGrid* vtkmesh = volumeVTKMesh
|
vtkUnstructuredGrid* vtkmesh = volumeVTKMesh
|
||||||
(
|
(
|
||||||
subsetter.subMesh(),
|
subsetMesh.subMesh(),
|
||||||
zonePolyDecomp_[datasetNo]
|
zonePolyDecomp_[datasetNo]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -269,17 +281,17 @@ void Foam::vtkPV3Foam::convertMeshCellZones
|
||||||
// superCells + addPointCellLabels must contain global cell ids
|
// superCells + addPointCellLabels must contain global cell ids
|
||||||
inplaceRenumber
|
inplaceRenumber
|
||||||
(
|
(
|
||||||
subsetter.cellMap(),
|
subsetMesh.cellMap(),
|
||||||
zonePolyDecomp_[datasetNo].superCells()
|
zonePolyDecomp_[datasetNo].superCells()
|
||||||
);
|
);
|
||||||
inplaceRenumber
|
inplaceRenumber
|
||||||
(
|
(
|
||||||
subsetter.cellMap(),
|
subsetMesh.cellMap(),
|
||||||
zonePolyDecomp_[datasetNo].addPointCellLabels()
|
zonePolyDecomp_[datasetNo].addPointCellLabels()
|
||||||
);
|
);
|
||||||
|
|
||||||
// copy pointMap as well, otherwise pointFields fail
|
// copy pointMap as well, otherwise pointFields fail
|
||||||
zonePolyDecomp_[datasetNo].pointMap() = subsetter.pointMap();
|
zonePolyDecomp_[datasetNo].pointMap() = subsetMesh.pointMap();
|
||||||
|
|
||||||
AddToBlock(output, vtkmesh, selector, datasetNo, zoneName);
|
AddToBlock(output, vtkmesh, selector, datasetNo, zoneName);
|
||||||
vtkmesh->Delete();
|
vtkmesh->Delete();
|
||||||
|
@ -337,12 +349,25 @@ void Foam::vtkPV3Foam::convertMeshCellSets
|
||||||
}
|
}
|
||||||
|
|
||||||
const cellSet cSet(mesh, partName);
|
const cellSet cSet(mesh, partName);
|
||||||
fvMeshSubset subsetter(mesh);
|
|
||||||
subsetter.setLargeCellSubset(cSet);
|
fvMeshSubset subsetMesh
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"set",
|
||||||
|
mesh.time().constant(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
),
|
||||||
|
mesh
|
||||||
|
);
|
||||||
|
|
||||||
|
subsetMesh.setLargeCellSubset(cSet);
|
||||||
|
|
||||||
vtkUnstructuredGrid* vtkmesh = volumeVTKMesh
|
vtkUnstructuredGrid* vtkmesh = volumeVTKMesh
|
||||||
(
|
(
|
||||||
subsetter.subMesh(),
|
subsetMesh.subMesh(),
|
||||||
csetPolyDecomp_[datasetNo]
|
csetPolyDecomp_[datasetNo]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -351,17 +376,17 @@ void Foam::vtkPV3Foam::convertMeshCellSets
|
||||||
// superCells + addPointCellLabels must contain global cell ids
|
// superCells + addPointCellLabels must contain global cell ids
|
||||||
inplaceRenumber
|
inplaceRenumber
|
||||||
(
|
(
|
||||||
subsetter.cellMap(),
|
subsetMesh.cellMap(),
|
||||||
csetPolyDecomp_[datasetNo].superCells()
|
csetPolyDecomp_[datasetNo].superCells()
|
||||||
);
|
);
|
||||||
inplaceRenumber
|
inplaceRenumber
|
||||||
(
|
(
|
||||||
subsetter.cellMap(),
|
subsetMesh.cellMap(),
|
||||||
csetPolyDecomp_[datasetNo].addPointCellLabels()
|
csetPolyDecomp_[datasetNo].addPointCellLabels()
|
||||||
);
|
);
|
||||||
|
|
||||||
// copy pointMap as well, otherwise pointFields fail
|
// copy pointMap as well, otherwise pointFields fail
|
||||||
csetPolyDecomp_[datasetNo].pointMap() = subsetter.pointMap();
|
csetPolyDecomp_[datasetNo].pointMap() = subsetMesh.pointMap();
|
||||||
|
|
||||||
AddToBlock(output, vtkmesh, selector, datasetNo, partName);
|
AddToBlock(output, vtkmesh, selector, datasetNo, partName);
|
||||||
vtkmesh->Delete();
|
vtkmesh->Delete();
|
||||||
|
|
|
@ -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) 2006-7 H. Jasak. All rights reserved
|
\\ / A nd | Copyright (C) 2010 Hrvoje Jasak
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
|
@ -25,6 +25,9 @@ License
|
||||||
Application
|
Application
|
||||||
interFoamPressure
|
interFoamPressure
|
||||||
|
|
||||||
|
Author
|
||||||
|
Hrvoje Jasak, Wikki Ltd. All rights reserved.
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Calculate static pressure from interFoam results
|
Calculate static pressure from interFoam results
|
||||||
|
|
||||||
|
@ -53,7 +56,7 @@ int main(int argc, char *argv[])
|
||||||
runTime.setTime(Times[startTime], startTime);
|
runTime.setTime(Times[startTime], startTime);
|
||||||
|
|
||||||
# include "createMesh.H"
|
# include "createMesh.H"
|
||||||
# include "readEnvironmentalProperties.H"
|
# include "readGravitationalAcceleration.H"
|
||||||
|
|
||||||
const dictionary& piso = mesh.solutionDict().subDict("PISO");
|
const dictionary& piso = mesh.solutionDict().subDict("PISO");
|
||||||
|
|
||||||
|
|
|
@ -54,9 +54,9 @@ setenv ParaView_DIR $ParaView_INST_DIR/platforms/$WM_ARCH$WM_COMPILER
|
||||||
set paraviewPython=$ParaView_DIR/Utilities/VTKPythonWrapping
|
set paraviewPython=$ParaView_DIR/Utilities/VTKPythonWrapping
|
||||||
if ( -r $paraviewPython ) then
|
if ( -r $paraviewPython ) then
|
||||||
if ($?PYTHONPATH) then
|
if ($?PYTHONPATH) then
|
||||||
setenv PYTHONPATH ${PYTHONPATH}:${paraviewPython}:$ParaView_DIR/lib/${$ParaView_MAJOR}
|
setenv PYTHONPATH ${PYTHONPATH}:${paraviewPython}:$ParaView_DIR/lib/${ParaView_MAJOR}
|
||||||
else
|
else
|
||||||
setenv PYTHONPATH ${paraviewPython}:$ParaView_DIR/lib/${$ParaView_MAJOR}
|
setenv PYTHONPATH ${paraviewPython}:$ParaView_DIR/lib/${ParaView_MAJOR}
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -258,10 +258,10 @@ private:
|
||||||
bool checkCellSubset() const;
|
bool checkCellSubset() const;
|
||||||
|
|
||||||
//- Mark points in Map
|
//- Mark points in Map
|
||||||
static void markPoints(const labelList&, Map<label>&);
|
static void markPoints(const labelList&, Map<label>&);
|
||||||
|
|
||||||
//- Mark points (with 0) in labelList
|
//- Mark points (with 0) in labelList
|
||||||
static void markPoints(const labelList&, labelList&);
|
static void markPoints(const labelList&, labelList&);
|
||||||
|
|
||||||
//- Adapt nCellsUsingFace for coupled faces becoming 'uncoupled'.
|
//- Adapt nCellsUsingFace for coupled faces becoming 'uncoupled'.
|
||||||
void doCoupledPatches
|
void doCoupledPatches
|
||||||
|
@ -393,6 +393,16 @@ public:
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
//- Map surface field
|
//- Map surface field
|
||||||
|
template<class Type>
|
||||||
|
static tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
|
||||||
|
meshToMesh
|
||||||
|
(
|
||||||
|
const GeometricField<Type, fvsPatchField, surfaceMesh>&,
|
||||||
|
const fvMesh& sMesh,
|
||||||
|
const labelList& patchMap,
|
||||||
|
const labelList& faceMap
|
||||||
|
);
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
|
tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
|
||||||
interpolate
|
interpolate
|
||||||
|
@ -403,7 +413,7 @@ public:
|
||||||
//- Map point field
|
//- Map point field
|
||||||
template<class Type>
|
template<class Type>
|
||||||
static tmp<GeometricField<Type, pointPatchField, pointMesh> >
|
static tmp<GeometricField<Type, pointPatchField, pointMesh> >
|
||||||
interpolate
|
meshToMesh
|
||||||
(
|
(
|
||||||
const GeometricField<Type, pointPatchField, pointMesh>&,
|
const GeometricField<Type, pointPatchField, pointMesh>&,
|
||||||
const pointMesh& sMesh,
|
const pointMesh& sMesh,
|
||||||
|
|
|
@ -26,8 +26,9 @@ License
|
||||||
|
|
||||||
#include "fvMeshSubset.H"
|
#include "fvMeshSubset.H"
|
||||||
#include "calculatedFvPatchFields.H"
|
#include "calculatedFvPatchFields.H"
|
||||||
#include "emptyFvPatchFields.H"
|
|
||||||
#include "calculatedFvsPatchFields.H"
|
#include "calculatedFvsPatchFields.H"
|
||||||
|
#include "emptyFvPatchFields.H"
|
||||||
|
#include "emptyFvsPatchFields.H"
|
||||||
#include "calculatedPointPatchFields.H"
|
#include "calculatedPointPatchFields.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
@ -247,7 +248,137 @@ tmp<GeometricField<Type, fvPatchField, volMesh> > fvMeshSubset::interpolate
|
||||||
|
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > fvMeshSubset::interpolate
|
tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
|
||||||
|
fvMeshSubset::meshToMesh
|
||||||
|
(
|
||||||
|
const GeometricField<Type, fvsPatchField, surfaceMesh>& vf,
|
||||||
|
const fvMesh& sMesh,
|
||||||
|
const labelList& patchMap,
|
||||||
|
const labelList& faceMap
|
||||||
|
)
|
||||||
|
{
|
||||||
|
// Create and map the internal-field values
|
||||||
|
Field<Type> internalField
|
||||||
|
(
|
||||||
|
vf.internalField(),
|
||||||
|
SubList<label>
|
||||||
|
(
|
||||||
|
faceMap,
|
||||||
|
sMesh.nInternalFaces()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Create and map the patch field values
|
||||||
|
PtrList<fvsPatchField<Type> > patchFields(patchMap.size());
|
||||||
|
|
||||||
|
forAll (patchFields, patchI)
|
||||||
|
{
|
||||||
|
// Set the first one by hand as it corresponds to the
|
||||||
|
// exposed internal faces. Additional interpolation can be put here
|
||||||
|
// as necessary.
|
||||||
|
if (patchMap[patchI] == -1)
|
||||||
|
{
|
||||||
|
patchFields.set
|
||||||
|
(
|
||||||
|
patchI,
|
||||||
|
new emptyFvsPatchField<Type>
|
||||||
|
(
|
||||||
|
sMesh.boundary()[patchI],
|
||||||
|
DimensionedField<Type, surfaceMesh>::null()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Construct addressing
|
||||||
|
const fvPatch& subPatch = sMesh.boundary()[patchI];
|
||||||
|
const fvPatch& basePatch = vf.mesh().boundary()[patchMap[patchI]];
|
||||||
|
label baseStart = basePatch.patch().start();
|
||||||
|
label baseSize = basePatch.size();
|
||||||
|
|
||||||
|
labelList directAddressing(subPatch.size());
|
||||||
|
|
||||||
|
forAll(directAddressing, i)
|
||||||
|
{
|
||||||
|
label baseFaceI = faceMap[subPatch.patch().start()+i];
|
||||||
|
|
||||||
|
if (baseFaceI >= baseStart && baseFaceI < baseStart+baseSize)
|
||||||
|
{
|
||||||
|
directAddressing[i] = baseFaceI-baseStart;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Mapped from internal face. Do what? Map from element
|
||||||
|
// 0 for now.
|
||||||
|
directAddressing[i] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
patchFields.set
|
||||||
|
(
|
||||||
|
patchI,
|
||||||
|
fvsPatchField<Type>::New
|
||||||
|
(
|
||||||
|
vf.boundaryField()[patchMap[patchI]],
|
||||||
|
sMesh.boundary()[patchI],
|
||||||
|
DimensionedField<Type, surfaceMesh>::null(),
|
||||||
|
patchFieldSubset
|
||||||
|
(
|
||||||
|
vf.boundaryField()[patchMap[patchI]].size(),
|
||||||
|
directAddressing
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Map exposed internal faces. Note: Only nessecary if exposed faces added
|
||||||
|
// into existing patch but since we don't know that at this point...
|
||||||
|
forAll(patchFields, patchI)
|
||||||
|
{
|
||||||
|
fvsPatchField<Type>& pfld = patchFields[patchI];
|
||||||
|
|
||||||
|
label meshFaceI = pfld.patch().patch().start();
|
||||||
|
|
||||||
|
forAll(pfld, i)
|
||||||
|
{
|
||||||
|
label oldFaceI = faceMap[meshFaceI++];
|
||||||
|
|
||||||
|
if (oldFaceI < vf.internalField().size())
|
||||||
|
{
|
||||||
|
pfld[i] = vf.internalField()[oldFaceI];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create the complete field from the pieces
|
||||||
|
tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > tresF
|
||||||
|
(
|
||||||
|
new GeometricField<Type, fvsPatchField, surfaceMesh>
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"subset"+vf.name(),
|
||||||
|
sMesh.time().timeName(),
|
||||||
|
sMesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
),
|
||||||
|
sMesh,
|
||||||
|
vf.dimensions(),
|
||||||
|
internalField,
|
||||||
|
patchFields
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
return tresF;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class Type>
|
||||||
|
tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
|
||||||
|
fvMeshSubset::interpolate
|
||||||
(
|
(
|
||||||
const GeometricField<Type, fvsPatchField, surfaceMesh>& vf
|
const GeometricField<Type, fvsPatchField, surfaceMesh>& vf
|
||||||
) const
|
) const
|
||||||
|
@ -423,7 +554,8 @@ fvMeshSubset::interpolate
|
||||||
// Get mesh point on original mesh.
|
// Get mesh point on original mesh.
|
||||||
label meshPointI = ptMap[subMeshPoints[localI]];
|
label meshPointI = ptMap[subMeshPoints[localI]];
|
||||||
|
|
||||||
Map<label>::const_iterator iter = meshPointMap.find(meshPointI);
|
Map<label>::const_iterator iter =
|
||||||
|
meshPointMap.find(meshPointI);
|
||||||
|
|
||||||
if (iter != meshPointMap.end())
|
if (iter != meshPointMap.end())
|
||||||
{
|
{
|
||||||
|
@ -439,7 +571,10 @@ fvMeshSubset::interpolate
|
||||||
vf.boundaryField()[pm[patchI]],
|
vf.boundaryField()[pm[patchI]],
|
||||||
subPatch,
|
subPatch,
|
||||||
DimensionedField<Type, pointMesh>::null(),
|
DimensionedField<Type, pointMesh>::null(),
|
||||||
pointPatchFieldSubset(directAddressing)
|
pointPatchFieldSubset
|
||||||
|
(
|
||||||
|
directAddressing
|
||||||
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,8 +51,6 @@ class cellSet
|
||||||
:
|
:
|
||||||
public topoSet
|
public topoSet
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
// Private Member Functions
|
// Private Member Functions
|
||||||
|
|
||||||
//- Disallow default bitwise copy construct
|
//- Disallow default bitwise copy construct
|
||||||
|
@ -75,8 +73,8 @@ public:
|
||||||
(
|
(
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
readOption r=MUST_READ,
|
readOption r = MUST_READ,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct empty from size of labelHashSet
|
//- Construct empty from size of labelHashSet
|
||||||
|
@ -85,7 +83,7 @@ public:
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
const label sizes,
|
const label sizes,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct from existing set
|
//- Construct from existing set
|
||||||
|
@ -103,7 +101,7 @@ public:
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
const labelHashSet&,
|
const labelHashSet&,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@ -114,8 +112,8 @@ public:
|
||||||
(
|
(
|
||||||
const Time&,
|
const Time&,
|
||||||
const word& name,
|
const word& name,
|
||||||
readOption r=MUST_READ,
|
readOption r = MUST_READ,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct empty from objectRegistry.
|
//- Construct empty from objectRegistry.
|
||||||
|
@ -124,7 +122,7 @@ public:
|
||||||
const Time&,
|
const Time&,
|
||||||
const word& name,
|
const word& name,
|
||||||
const label size,
|
const label size,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct from labelHashSet
|
//- Construct from labelHashSet
|
||||||
|
@ -133,7 +131,7 @@ public:
|
||||||
const Time&,
|
const Time&,
|
||||||
const word& name,
|
const word& name,
|
||||||
const labelHashSet&,
|
const labelHashSet&,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -51,8 +51,6 @@ class faceSet
|
||||||
:
|
:
|
||||||
public topoSet
|
public topoSet
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
|
@ -70,8 +68,8 @@ public:
|
||||||
(
|
(
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
readOption r=MUST_READ,
|
readOption r = MUST_READ,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct from additional size of labelHashSet
|
//- Construct from additional size of labelHashSet
|
||||||
|
@ -80,7 +78,7 @@ public:
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
const label,
|
const label,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct from existing set
|
//- Construct from existing set
|
||||||
|
@ -89,7 +87,7 @@ public:
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
const topoSet&,
|
const topoSet&,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct from additional labelHashSet
|
//- Construct from additional labelHashSet
|
||||||
|
@ -98,7 +96,7 @@ public:
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
const labelHashSet&,
|
const labelHashSet&,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -51,8 +51,6 @@ class pointSet
|
||||||
:
|
:
|
||||||
public topoSet
|
public topoSet
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
|
@ -70,8 +68,8 @@ public:
|
||||||
(
|
(
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
readOption r=MUST_READ,
|
readOption r = MUST_READ,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct from additional size of labelHashSet
|
//- Construct from additional size of labelHashSet
|
||||||
|
@ -80,7 +78,7 @@ public:
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
const label,
|
const label,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct from additional labelHashSet
|
//- Construct from additional labelHashSet
|
||||||
|
@ -98,7 +96,7 @@ public:
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
const labelHashSet&,
|
const labelHashSet&,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -53,8 +53,7 @@ autoPtr<topoSet> topoSet::New
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
wordConstructorTable::iterator cstrIter =
|
wordConstructorTable::iterator cstrIter =
|
||||||
wordConstructorTablePtr_
|
wordConstructorTablePtr_->find(setType);
|
||||||
->find(setType);
|
|
||||||
|
|
||||||
if (cstrIter == wordConstructorTablePtr_->end())
|
if (cstrIter == wordConstructorTablePtr_->end())
|
||||||
{
|
{
|
||||||
|
@ -84,8 +83,7 @@ autoPtr<topoSet> topoSet::New
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
sizeConstructorTable::iterator cstrIter =
|
sizeConstructorTable::iterator cstrIter =
|
||||||
sizeConstructorTablePtr_
|
sizeConstructorTablePtr_->find(setType);
|
||||||
->find(setType);
|
|
||||||
|
|
||||||
if (cstrIter == sizeConstructorTablePtr_->end())
|
if (cstrIter == sizeConstructorTablePtr_->end())
|
||||||
{
|
{
|
||||||
|
@ -107,7 +105,6 @@ autoPtr<topoSet> topoSet::New
|
||||||
// Construct named object from existing set.
|
// Construct named object from existing set.
|
||||||
autoPtr<topoSet> topoSet::New
|
autoPtr<topoSet> topoSet::New
|
||||||
(
|
(
|
||||||
const word& setType,
|
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
const topoSet& set,
|
const topoSet& set,
|
||||||
|
@ -115,16 +112,15 @@ autoPtr<topoSet> topoSet::New
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
setConstructorTable::iterator cstrIter =
|
setConstructorTable::iterator cstrIter =
|
||||||
setConstructorTablePtr_
|
setConstructorTablePtr_->find(set.type());
|
||||||
->find(setType);
|
|
||||||
|
|
||||||
if (cstrIter == setConstructorTablePtr_->end())
|
if (cstrIter == setConstructorTablePtr_->end())
|
||||||
{
|
{
|
||||||
FatalErrorIn
|
FatalErrorIn
|
||||||
(
|
(
|
||||||
"topoSet::New(const word&, "
|
"topoSet::New(const polyMesh&, const word&, "
|
||||||
"const polyMesh&, const word&, const topoSet&, writeOption)"
|
"const topoSet&, writeOption)"
|
||||||
) << "Unknown set type " << setType
|
) << "Unknown set type " << set.type()
|
||||||
<< endl << endl
|
<< endl << endl
|
||||||
<< "Valid set types : " << endl
|
<< "Valid set types : " << endl
|
||||||
<< setConstructorTablePtr_->toc()
|
<< setConstructorTablePtr_->toc()
|
||||||
|
|
|
@ -65,7 +65,6 @@ class topoSet
|
||||||
public regIOobject,
|
public regIOobject,
|
||||||
public labelHashSet
|
public labelHashSet
|
||||||
{
|
{
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// Protected Member Functions
|
// Protected Member Functions
|
||||||
|
@ -182,8 +181,8 @@ public:
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& wantedType,
|
const word& wantedType,
|
||||||
const word& name,
|
const word& name,
|
||||||
readOption r=MUST_READ,
|
readOption r = MUST_READ,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct empty from additional size of labelHashSet
|
//- Construct empty from additional size of labelHashSet
|
||||||
|
@ -192,7 +191,7 @@ public:
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
const label,
|
const label,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct empty from additional labelHashSet
|
//- Construct empty from additional labelHashSet
|
||||||
|
@ -201,7 +200,7 @@ public:
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
const labelHashSet&,
|
const labelHashSet&,
|
||||||
writeOption w=NO_WRITE
|
writeOption w = NO_WRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct empty from IOobject and size
|
//- Construct empty from IOobject and size
|
||||||
|
@ -245,7 +244,6 @@ public:
|
||||||
//- Return a pointer to a new toposet as copy of another toposet
|
//- Return a pointer to a new toposet as copy of another toposet
|
||||||
static autoPtr<topoSet> New
|
static autoPtr<topoSet> New
|
||||||
(
|
(
|
||||||
const word& setType,
|
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const word& name,
|
const word& name,
|
||||||
const topoSet& set,
|
const topoSet& set,
|
||||||
|
@ -286,7 +284,7 @@ public:
|
||||||
Ostream& os,
|
Ostream& os,
|
||||||
const primitiveMesh&,
|
const primitiveMesh&,
|
||||||
const label maxLen
|
const label maxLen
|
||||||
) const; // = 0;
|
) const;
|
||||||
|
|
||||||
//- Write contents.
|
//- Write contents.
|
||||||
virtual bool writeData(Ostream&) const;
|
virtual bool writeData(Ostream&) const;
|
||||||
|
@ -295,7 +293,7 @@ public:
|
||||||
virtual void updateMesh(const mapPolyMesh& morphMap);
|
virtual void updateMesh(const mapPolyMesh& morphMap);
|
||||||
|
|
||||||
//- Return max allowable index (+1). Not implemented.
|
//- Return max allowable index (+1). Not implemented.
|
||||||
virtual label maxSize(const polyMesh& mesh) const; // = 0;
|
virtual label maxSize(const polyMesh& mesh) const;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class volTensorField;
|
|
||||||
object B;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
dimensions [1 -1 -2 0 0 0 0];
|
|
||||||
|
|
||||||
internalField uniform (0 0 0 0 0 0 0 0 0);
|
|
||||||
|
|
||||||
boundaryField
|
|
||||||
{
|
|
||||||
inlet
|
|
||||||
{
|
|
||||||
type fixedValue;
|
|
||||||
value uniform (0 0 0 0 0 0 0 0 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
outlet
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
upperWall
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
lowerWall
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
frontAndBack
|
|
||||||
{
|
|
||||||
type empty;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,52 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class volScalarField;
|
|
||||||
object Su;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
dimensions [0 1 -1 0 0 0 0];
|
|
||||||
|
|
||||||
internalField uniform 0.135;
|
|
||||||
|
|
||||||
boundaryField
|
|
||||||
{
|
|
||||||
inlet
|
|
||||||
{
|
|
||||||
type fixedValue;
|
|
||||||
value uniform 0.135;
|
|
||||||
}
|
|
||||||
|
|
||||||
outlet
|
|
||||||
{
|
|
||||||
type inletOutlet;
|
|
||||||
inletValue uniform 0.135;
|
|
||||||
value uniform 0.135;
|
|
||||||
}
|
|
||||||
|
|
||||||
upperWall
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
lowerWall
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
frontAndBack
|
|
||||||
{
|
|
||||||
type empty;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,54 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class volScalarField;
|
|
||||||
object Tu;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
dimensions [0 0 0 1 0 0 0];
|
|
||||||
|
|
||||||
internalField uniform 293;
|
|
||||||
|
|
||||||
boundaryField
|
|
||||||
{
|
|
||||||
inlet
|
|
||||||
{
|
|
||||||
type fixedValue;
|
|
||||||
value uniform 293;
|
|
||||||
}
|
|
||||||
|
|
||||||
outlet
|
|
||||||
{
|
|
||||||
type inletOutlet;
|
|
||||||
inletValue uniform 293;
|
|
||||||
value uniform 293;
|
|
||||||
}
|
|
||||||
|
|
||||||
upperWall
|
|
||||||
{
|
|
||||||
type fixedValue;
|
|
||||||
value uniform 293;
|
|
||||||
}
|
|
||||||
|
|
||||||
lowerWall
|
|
||||||
{
|
|
||||||
type fixedValue;
|
|
||||||
value uniform 293;
|
|
||||||
}
|
|
||||||
|
|
||||||
frontAndBack
|
|
||||||
{
|
|
||||||
type empty;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,82 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class dictionary;
|
|
||||||
object combustionProperties;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
laminarFlameSpeedCorrelation constant;
|
|
||||||
|
|
||||||
fuel Propane;
|
|
||||||
|
|
||||||
Su Su [0 1 -1 0 0 0 0] 0.135;
|
|
||||||
|
|
||||||
SuModel transport;
|
|
||||||
|
|
||||||
equivalenceRatio equivalenceRatio [0 0 0 0 0 0 0] 0.6;
|
|
||||||
|
|
||||||
sigmaExt sigmaExt [0 0 -1 0 0 0 0] 338;
|
|
||||||
|
|
||||||
XiModel transport;
|
|
||||||
|
|
||||||
XiCoef XiCoef [0 0 0 0 0 0 0] 0.62;
|
|
||||||
|
|
||||||
XiShapeCoef XiShapeCoef [0 0 0 0 0 0 0] 1;
|
|
||||||
|
|
||||||
uPrimeCoef uPrimeCoef [0 0 0 0 0 0 0] 1;
|
|
||||||
|
|
||||||
GuldersCoeffs
|
|
||||||
{
|
|
||||||
Methane
|
|
||||||
{
|
|
||||||
W 0.422;
|
|
||||||
eta 0.15;
|
|
||||||
xi 5.18;
|
|
||||||
alpha 2;
|
|
||||||
beta -0.5;
|
|
||||||
f 2.3;
|
|
||||||
}
|
|
||||||
Propane
|
|
||||||
{
|
|
||||||
W 0.446;
|
|
||||||
eta 0.12;
|
|
||||||
xi 4.95;
|
|
||||||
alpha 1.77;
|
|
||||||
beta -0.2;
|
|
||||||
f 2.3;
|
|
||||||
}
|
|
||||||
IsoOctane
|
|
||||||
{
|
|
||||||
W 0.4658;
|
|
||||||
eta -0.326;
|
|
||||||
xi 4.48;
|
|
||||||
alpha 1.56;
|
|
||||||
beta -0.22;
|
|
||||||
f 2.3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ignite no;
|
|
||||||
|
|
||||||
ignitionSites
|
|
||||||
(
|
|
||||||
);
|
|
||||||
|
|
||||||
ignitionSphereFraction 0;
|
|
||||||
|
|
||||||
ignitionThickness ignitionThickness [0 1 0 0 0 0 0] 0;
|
|
||||||
|
|
||||||
ignitionCircleFraction 0;
|
|
||||||
|
|
||||||
ignitionKernelArea ignitionKernelArea [0 2 0 0 0 0 0] 0;
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,41 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class dictionary;
|
|
||||||
object thermophysicalProperties;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
thermoType hhuMixtureThermo<homogeneousMixture<sutherlandTransport<specieThermo<janafThermo<perfectGas>>>>>;
|
|
||||||
|
|
||||||
stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [0 0 0 0 0 0 0] 15.675;
|
|
||||||
|
|
||||||
fuel fuel 1 44.0962 200 5000 1000 7.53414 0.0188722 -6.27185e-06 9.14756e-10 -4.78381e-14 -16467.5 -17.8923 0.933554 0.0264246 6.10597e-06 -2.19775e-08 9.51493e-12 -13958.5 19.2017 1.67212e-06 170.672;
|
|
||||||
|
|
||||||
oxidant oxidant 1 28.8504 200 6000 1000 3.10205 0.00123963 -4.17512e-07 6.60292e-11 -3.87448e-15 -985.517 5.35187 3.58378 -0.0007269 1.66985e-06 -1.08452e-10 -4.31951e-13 -1050.53 3.11223 1.67212e-06 170.672;
|
|
||||||
|
|
||||||
reactants reactants 24.8095 29.4649 200 5000 1000 3.28069 0.00195035 -6.53483e-07 1.00239e-10 -5.64653e-15 -1609.55 4.41496 3.47696 0.000367499 1.84866e-06 -9.8993e-10 -3.10214e-14 -1570.81 3.76075 1.67212e-06 170.672;
|
|
||||||
|
|
||||||
products products 1 28.3233 200 5000 1000 3.106 0.00179682 -5.94382e-07 9.04998e-11 -5.08033e-15 -11003.7 5.11872 3.49612 0.000650364 -2.08029e-07 1.2291e-09 -7.73697e-13 -11080.3 3.18978 1.67212e-06 170.672;
|
|
||||||
|
|
||||||
burntProducts burntProducts 25.8095 28.3233 200 6000 1000 3.106 0.00179682 -5.94382e-07 9.04998e-11 -5.08033e-15 -11003.7 5.11872 3.49612 0.000650364 -2.08029e-07 1.2291e-09 -7.73697e-13 -11080.3 3.18978 1.67212e-06 170.672;
|
|
||||||
|
|
||||||
/*
|
|
||||||
thermoType hhuMixtureThermo<homogeneousMixture<constTransport<specieThermo<hConstThermo<perfectGas>>>>>;
|
|
||||||
|
|
||||||
stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [0 0 0 0 0 0 0] 9.286;
|
|
||||||
|
|
||||||
reactants reactants 1 28 1330.9 2.133e+06 1.798e-05 0.7;
|
|
||||||
|
|
||||||
products products 1 28 1579.9 0 5.016e-05 0.7;
|
|
||||||
*/
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,83 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class dictionary;
|
|
||||||
object fvSchemes;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
ddtSchemes
|
|
||||||
{
|
|
||||||
default Euler;
|
|
||||||
}
|
|
||||||
|
|
||||||
gradSchemes
|
|
||||||
{
|
|
||||||
default Gauss linear;
|
|
||||||
grad(p) Gauss linear;
|
|
||||||
}
|
|
||||||
|
|
||||||
divSchemes
|
|
||||||
{
|
|
||||||
default none;
|
|
||||||
div(phi,U) Gauss limitedLinearV 1;
|
|
||||||
div(phid,p) Gauss linear;
|
|
||||||
div(phiU,p) Gauss linear;
|
|
||||||
div(phi,k) Gauss limitedLinear 1;
|
|
||||||
div(phi,B) Gauss limitedLinear 1;
|
|
||||||
div(B) Gauss linear;
|
|
||||||
div(phiXi,Xi) Gauss limitedLinear 1;
|
|
||||||
div(phiXi,Su) Gauss limitedLinear 1;
|
|
||||||
div(phiSt,b) Gauss limitedLinear01 1;
|
|
||||||
div(phi,ft_b_h_hu) Gauss multivariateSelection
|
|
||||||
{
|
|
||||||
fu limitedLinear01 1;
|
|
||||||
ft limitedLinear01 1;
|
|
||||||
b limitedLinear01 1;
|
|
||||||
h limitedLinear 1;
|
|
||||||
hu limitedLinear 1;
|
|
||||||
};
|
|
||||||
div(U) Gauss linear;
|
|
||||||
div((Su*grad(b))) Gauss linear;
|
|
||||||
div((U+((Su*Xi)*grad(b)))) Gauss linear;
|
|
||||||
div((muEff*dev2(grad(U).T()))) Gauss linear;
|
|
||||||
}
|
|
||||||
|
|
||||||
laplacianSchemes
|
|
||||||
{
|
|
||||||
default none;
|
|
||||||
laplacian(muEff,U) Gauss linear corrected;
|
|
||||||
laplacian(DkEff,k) Gauss linear corrected;
|
|
||||||
laplacian(DBEff,B) Gauss linear corrected;
|
|
||||||
laplacian((rho*(1|A(U))),p) Gauss linear corrected;
|
|
||||||
laplacian(muEff,b) Gauss linear corrected;
|
|
||||||
laplacian(muEff,ft) Gauss linear corrected;
|
|
||||||
laplacian(alphaEff,h) Gauss linear corrected;
|
|
||||||
laplacian(alphaEff,hu) Gauss linear corrected;
|
|
||||||
}
|
|
||||||
|
|
||||||
interpolationSchemes
|
|
||||||
{
|
|
||||||
default linear;
|
|
||||||
}
|
|
||||||
|
|
||||||
snGradSchemes
|
|
||||||
{
|
|
||||||
default corrected;
|
|
||||||
}
|
|
||||||
|
|
||||||
fluxRequired
|
|
||||||
{
|
|
||||||
default no;
|
|
||||||
p;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,105 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class dictionary;
|
|
||||||
object fvSolution;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
solvers
|
|
||||||
{
|
|
||||||
rho PCG
|
|
||||||
{
|
|
||||||
preconditioner DIC;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
U PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
p PCG
|
|
||||||
{
|
|
||||||
preconditioner DIC;
|
|
||||||
tolerance 1e-06;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
ft PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
fu PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
b PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
Xi PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
Su PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
h PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
hu PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
R PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
k PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
epsilon PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
PISO
|
|
||||||
{
|
|
||||||
nCorrectors 2;
|
|
||||||
nNonOrthogonalCorrectors 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,50 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class volTensorField;
|
|
||||||
object B;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
dimensions [1 -1 -2 0 0 0 0];
|
|
||||||
|
|
||||||
internalField uniform (0 0 0 0 0 0 0 0 0);
|
|
||||||
|
|
||||||
boundaryField
|
|
||||||
{
|
|
||||||
inlet
|
|
||||||
{
|
|
||||||
type fixedValue;
|
|
||||||
value uniform (0 0 0 0 0 0 0 0 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
outlet
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
upperWall
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
lowerWall
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
frontAndBack
|
|
||||||
{
|
|
||||||
type cyclic;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,52 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class volScalarField;
|
|
||||||
object Su;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
dimensions [0 1 -1 0 0 0 0];
|
|
||||||
|
|
||||||
internalField uniform 0.135;
|
|
||||||
|
|
||||||
boundaryField
|
|
||||||
{
|
|
||||||
inlet
|
|
||||||
{
|
|
||||||
type fixedValue;
|
|
||||||
value uniform 0.135;
|
|
||||||
}
|
|
||||||
|
|
||||||
outlet
|
|
||||||
{
|
|
||||||
type inletOutlet;
|
|
||||||
inletValue uniform 0.135;
|
|
||||||
value uniform 0.135;
|
|
||||||
}
|
|
||||||
|
|
||||||
upperWall
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
lowerWall
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
frontAndBack
|
|
||||||
{
|
|
||||||
type cyclic;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,54 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class volScalarField;
|
|
||||||
object Tu;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
dimensions [0 0 0 1 0 0 0];
|
|
||||||
|
|
||||||
internalField uniform 293;
|
|
||||||
|
|
||||||
boundaryField
|
|
||||||
{
|
|
||||||
inlet
|
|
||||||
{
|
|
||||||
type fixedValue;
|
|
||||||
value uniform 293;
|
|
||||||
}
|
|
||||||
|
|
||||||
outlet
|
|
||||||
{
|
|
||||||
type inletOutlet;
|
|
||||||
inletValue uniform 293;
|
|
||||||
value uniform 293;
|
|
||||||
}
|
|
||||||
|
|
||||||
upperWall
|
|
||||||
{
|
|
||||||
type fixedValue;
|
|
||||||
value uniform 293;
|
|
||||||
}
|
|
||||||
|
|
||||||
lowerWall
|
|
||||||
{
|
|
||||||
type fixedValue;
|
|
||||||
value uniform 293;
|
|
||||||
}
|
|
||||||
|
|
||||||
frontAndBack
|
|
||||||
{
|
|
||||||
type cyclic;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,54 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class volScalarField;
|
|
||||||
object k;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
dimensions [0 2 -2 0 0 0 0];
|
|
||||||
|
|
||||||
internalField uniform 0;
|
|
||||||
|
|
||||||
boundaryField
|
|
||||||
{
|
|
||||||
inlet
|
|
||||||
{
|
|
||||||
type fixedValue;
|
|
||||||
value uniform 2e-05;
|
|
||||||
}
|
|
||||||
|
|
||||||
outlet
|
|
||||||
{
|
|
||||||
type inletOutlet;
|
|
||||||
inletValue uniform 2e-05;
|
|
||||||
value uniform 2e-05;
|
|
||||||
}
|
|
||||||
|
|
||||||
upperWall
|
|
||||||
{
|
|
||||||
type fixedValue;
|
|
||||||
value uniform 1e-8;
|
|
||||||
}
|
|
||||||
|
|
||||||
lowerWall
|
|
||||||
{
|
|
||||||
type fixedValue;
|
|
||||||
value uniform 1e-8;
|
|
||||||
}
|
|
||||||
|
|
||||||
frontAndBack
|
|
||||||
{
|
|
||||||
type cyclic;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,90 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class dictionary;
|
|
||||||
object combustionProperties;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
laminarFlameSpeedCorrelation Gulders;
|
|
||||||
|
|
||||||
fuel Propane;
|
|
||||||
|
|
||||||
Su Su [0 1 -1 0 0 0 0] 0.135;
|
|
||||||
|
|
||||||
SuModel transport;
|
|
||||||
|
|
||||||
equivalenceRatio equivalenceRatio [0 0 0 0 0 0 0] 0.6;
|
|
||||||
|
|
||||||
sigmaExt sigmaExt [0 0 -1 0 0 0 0] 338;
|
|
||||||
|
|
||||||
XiModel transport;
|
|
||||||
|
|
||||||
XiCoef XiCoef [0 0 0 0 0 0 0] 0.62;
|
|
||||||
|
|
||||||
XiShapeCoef XiShapeCoef [0 0 0 0 0 0 0] 1;
|
|
||||||
|
|
||||||
uPrimeCoef uPrimeCoef [0 0 0 0 0 0 0] 1;
|
|
||||||
|
|
||||||
GuldersCoeffs
|
|
||||||
{
|
|
||||||
Methane
|
|
||||||
{
|
|
||||||
W 0.422;
|
|
||||||
eta 0.15;
|
|
||||||
xi 5.18;
|
|
||||||
alpha 2;
|
|
||||||
beta -0.5;
|
|
||||||
f 2.3;
|
|
||||||
}
|
|
||||||
Propane
|
|
||||||
{
|
|
||||||
W 0.446;
|
|
||||||
eta 0.12;
|
|
||||||
xi 4.95;
|
|
||||||
alpha 1.77;
|
|
||||||
beta -0.2;
|
|
||||||
f 2.3;
|
|
||||||
}
|
|
||||||
IsoOctane
|
|
||||||
{
|
|
||||||
W 0.4658;
|
|
||||||
eta -0.326;
|
|
||||||
xi 4.48;
|
|
||||||
alpha 1.56;
|
|
||||||
beta -0.22;
|
|
||||||
f 2.3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ignite yes;
|
|
||||||
|
|
||||||
ignitionSites
|
|
||||||
(
|
|
||||||
|
|
||||||
{
|
|
||||||
location (0 0 0);
|
|
||||||
diameter 0.003;
|
|
||||||
start 0;
|
|
||||||
duration 0.001;
|
|
||||||
strength 2;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
ignitionSphereFraction 1;
|
|
||||||
|
|
||||||
ignitionThickness ignitionThickness [0 1 0 0 0 0 0] 0;
|
|
||||||
|
|
||||||
ignitionCircleFraction 0;
|
|
||||||
|
|
||||||
ignitionKernelArea ignitionKernelArea [0 2 0 0 0 0 0] 0;
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,153 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class dictionary;
|
|
||||||
object blockMeshDict;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
convertToMeters 0.001;
|
|
||||||
|
|
||||||
vertices
|
|
||||||
(
|
|
||||||
(-20.6 0 0)
|
|
||||||
(-20.6 2 0)
|
|
||||||
(-20.6 12.7 0)
|
|
||||||
(-20.6 25.4 0)
|
|
||||||
(0 -25.4 0)
|
|
||||||
(0 -4 0)
|
|
||||||
(0 0 0)
|
|
||||||
(0 2 0)
|
|
||||||
(0 12.7 0)
|
|
||||||
(0 25.4 0)
|
|
||||||
(206 -25.4 0)
|
|
||||||
(206 -8.5 0)
|
|
||||||
(206 0 0)
|
|
||||||
(206 8.5 0)
|
|
||||||
(206 17 0)
|
|
||||||
(206 25.4 0)
|
|
||||||
(290 -16.6 0)
|
|
||||||
(290 -8.3 0)
|
|
||||||
(290 0 0)
|
|
||||||
(290 5.5 0)
|
|
||||||
(290 11 0)
|
|
||||||
(290 16.6 0)
|
|
||||||
(-20.6 0 38.1)
|
|
||||||
(-20.6 2 38.1)
|
|
||||||
(-20.6 12.7 38.1)
|
|
||||||
(-20.6 25.4 38.1)
|
|
||||||
(0 -25.4 38.1)
|
|
||||||
(0 -4 38.1)
|
|
||||||
(0 0 38.1)
|
|
||||||
(0 2 38.1)
|
|
||||||
(0 12.7 38.1)
|
|
||||||
(0 25.4 38.1)
|
|
||||||
(206 -25.4 38.1)
|
|
||||||
(206 -8.5 38.1)
|
|
||||||
(206 0 38.1)
|
|
||||||
(206 8.5 38.1)
|
|
||||||
(206 17 38.1)
|
|
||||||
(206 25.4 38.1)
|
|
||||||
(290 -16.6 38.1)
|
|
||||||
(290 -8.3 38.1)
|
|
||||||
(290 0 38.1)
|
|
||||||
(290 5.5 38.1)
|
|
||||||
(290 11 38.1)
|
|
||||||
(290 16.6 38.1)
|
|
||||||
);
|
|
||||||
|
|
||||||
blocks
|
|
||||||
(
|
|
||||||
hex (0 6 7 1 22 28 29 23) (18 7 20) simpleGrading (1 1 1)
|
|
||||||
hex (1 7 8 2 23 29 30 24) (18 10 20) simpleGrading (1 4 1)
|
|
||||||
hex (2 8 9 3 24 30 31 25) (18 13 20) simpleGrading (1 0.25 1)
|
|
||||||
hex (4 10 11 5 26 32 33 27) (180 18 20) simpleGrading (2 1 1)
|
|
||||||
hex (5 11 12 6 27 33 34 28) (180 9 20) simpleGrading (2 1 1)
|
|
||||||
hex (6 12 13 7 28 34 35 29) (180 7 20) simpleGrading (2 1 1)
|
|
||||||
hex (7 13 14 8 29 35 36 30) (180 10 20) simpleGrading (2 4 1)
|
|
||||||
hex (8 14 15 9 30 36 37 31) (180 13 20) simpleGrading (2 0.25 1)
|
|
||||||
hex (10 16 17 11 32 38 39 33) (25 18 20) simpleGrading (1 1 1)
|
|
||||||
hex (11 17 18 12 33 39 40 34) (25 9 20) simpleGrading (1 1 1)
|
|
||||||
hex (12 18 19 13 34 40 41 35) (25 7 20) simpleGrading (1 1 1)
|
|
||||||
hex (13 19 20 14 35 41 42 36) (25 10 20) simpleGrading (1 4 1)
|
|
||||||
hex (14 20 21 15 36 42 43 37) (25 13 20) simpleGrading (1 0.25 1)
|
|
||||||
);
|
|
||||||
|
|
||||||
edges
|
|
||||||
(
|
|
||||||
);
|
|
||||||
|
|
||||||
patches
|
|
||||||
(
|
|
||||||
patch inlet
|
|
||||||
(
|
|
||||||
(0 22 23 1)
|
|
||||||
(1 23 24 2)
|
|
||||||
(2 24 25 3)
|
|
||||||
)
|
|
||||||
patch outlet
|
|
||||||
(
|
|
||||||
(16 17 39 38)
|
|
||||||
(17 18 40 39)
|
|
||||||
(18 19 41 40)
|
|
||||||
(19 20 42 41)
|
|
||||||
(20 21 43 42)
|
|
||||||
)
|
|
||||||
wall upperWall
|
|
||||||
(
|
|
||||||
(3 25 31 9)
|
|
||||||
(9 31 37 15)
|
|
||||||
(15 37 43 21)
|
|
||||||
)
|
|
||||||
wall lowerWall
|
|
||||||
(
|
|
||||||
(0 6 28 22)
|
|
||||||
(6 5 27 28)
|
|
||||||
(5 4 26 27)
|
|
||||||
(4 10 32 26)
|
|
||||||
(10 16 38 32)
|
|
||||||
)
|
|
||||||
cyclic frontAndBack
|
|
||||||
(
|
|
||||||
(22 28 29 23)
|
|
||||||
(23 29 30 24)
|
|
||||||
(24 30 31 25)
|
|
||||||
(26 32 33 27)
|
|
||||||
(27 33 34 28)
|
|
||||||
(28 34 35 29)
|
|
||||||
(29 35 36 30)
|
|
||||||
(30 36 37 31)
|
|
||||||
(32 38 39 33)
|
|
||||||
(33 39 40 34)
|
|
||||||
(34 40 41 35)
|
|
||||||
(35 41 42 36)
|
|
||||||
(36 42 43 37)
|
|
||||||
(0 1 7 6)
|
|
||||||
(1 2 8 7)
|
|
||||||
(2 3 9 8)
|
|
||||||
(4 5 11 10)
|
|
||||||
(5 6 12 11)
|
|
||||||
(6 7 13 12)
|
|
||||||
(7 8 14 13)
|
|
||||||
(8 9 15 14)
|
|
||||||
(10 11 17 16)
|
|
||||||
(11 12 18 17)
|
|
||||||
(12 13 19 18)
|
|
||||||
(13 14 20 19)
|
|
||||||
(14 15 21 20)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
mergePatchPairs
|
|
||||||
(
|
|
||||||
);
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,41 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class dictionary;
|
|
||||||
object thermophysicalProperties;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
thermoType hhuMixtureThermo<homogeneousMixture<sutherlandTransport<specieThermo<janafThermo<perfectGas>>>>>;
|
|
||||||
|
|
||||||
stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [0 0 0 0 0 0 0] 15.675;
|
|
||||||
|
|
||||||
fuel fuel 1 44.0962 200 5000 1000 7.53414 0.0188722 -6.27185e-06 9.14756e-10 -4.78381e-14 -16467.5 -17.8923 0.933554 0.0264246 6.10597e-06 -2.19775e-08 9.51493e-12 -13958.5 19.2017 1.67212e-06 170.672;
|
|
||||||
|
|
||||||
oxidant oxidant 1 28.8504 200 6000 1000 3.10205 0.00123963 -4.17512e-07 6.60292e-11 -3.87448e-15 -985.517 5.35187 3.58378 -0.0007269 1.66985e-06 -1.08452e-10 -4.31951e-13 -1050.53 3.11223 1.67212e-06 170.672;
|
|
||||||
|
|
||||||
reactants reactants 24.8095 29.4649 200 5000 1000 3.28069 0.00195035 -6.53483e-07 1.00239e-10 -5.64653e-15 -1609.55 4.41496 3.47696 0.000367499 1.84866e-06 -9.8993e-10 -3.10214e-14 -1570.81 3.76075 1.67212e-06 170.672;
|
|
||||||
|
|
||||||
products products 1 28.3233 200 5000 1000 3.106 0.00179682 -5.94382e-07 9.04998e-11 -5.08033e-15 -11003.7 5.11872 3.49612 0.000650364 -2.08029e-07 1.2291e-09 -7.73697e-13 -11080.3 3.18978 1.67212e-06 170.672;
|
|
||||||
|
|
||||||
burntProducts burntProducts 25.8095 28.3233 200 6000 1000 3.106 0.00179682 -5.94382e-07 9.04998e-11 -5.08033e-15 -11003.7 5.11872 3.49612 0.000650364 -2.08029e-07 1.2291e-09 -7.73697e-13 -11080.3 3.18978 1.67212e-06 170.672;
|
|
||||||
|
|
||||||
/*
|
|
||||||
thermoType hhuMixtureThermo<homogeneousMixture<constTransport<specieThermo<hConstThermo<perfectGas>>>>>;
|
|
||||||
|
|
||||||
stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [0 0 0 0 0 0 0] 9.286;
|
|
||||||
|
|
||||||
reactants reactants 1 28 1330.9 2.133e+06 1.798e-05 0.7;
|
|
||||||
|
|
||||||
products products 1 28 1579.9 0 5.016e-05 0.7;
|
|
||||||
*/
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,76 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class dictionary;
|
|
||||||
object controlDict;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
application Xoodles;
|
|
||||||
|
|
||||||
startFrom startTime;
|
|
||||||
|
|
||||||
startTime 0;
|
|
||||||
|
|
||||||
stopAt endTime;
|
|
||||||
|
|
||||||
endTime 0.02;
|
|
||||||
|
|
||||||
deltaT 5e-06;
|
|
||||||
|
|
||||||
writeControl runTime;
|
|
||||||
|
|
||||||
writeInterval 0.0005;
|
|
||||||
|
|
||||||
purgeWrite 0;
|
|
||||||
|
|
||||||
writeFormat ascii;
|
|
||||||
|
|
||||||
writePrecision 6;
|
|
||||||
|
|
||||||
writeCompression compressed;
|
|
||||||
|
|
||||||
timeFormat general;
|
|
||||||
|
|
||||||
timePrecision 6;
|
|
||||||
|
|
||||||
runTimeModifiable yes;
|
|
||||||
|
|
||||||
functions
|
|
||||||
(
|
|
||||||
fieldAverage1
|
|
||||||
{
|
|
||||||
// Type of functionObject
|
|
||||||
type fieldAverage;
|
|
||||||
|
|
||||||
// Where to load it from (if not already in solver)
|
|
||||||
functionObjectLibs ("libfieldAverage.so");
|
|
||||||
|
|
||||||
// Fields to be averaged - runTime modifiable
|
|
||||||
fields
|
|
||||||
(
|
|
||||||
U
|
|
||||||
{
|
|
||||||
mean on;
|
|
||||||
prime2Mean on;
|
|
||||||
base time;
|
|
||||||
}
|
|
||||||
p
|
|
||||||
{
|
|
||||||
mean on;
|
|
||||||
prime2Mean on;
|
|
||||||
base time;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
|
@ -1,105 +0,0 @@
|
||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.5 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class dictionary;
|
|
||||||
object fvSolution;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
solvers
|
|
||||||
{
|
|
||||||
rho PCG
|
|
||||||
{
|
|
||||||
preconditioner DIC;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
U PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
p PCG
|
|
||||||
{
|
|
||||||
preconditioner DIC;
|
|
||||||
tolerance 1e-06;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
ft PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
fu PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
b PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
Xi PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
Su PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
h PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
hu PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
R PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
k PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
epsilon PBiCG
|
|
||||||
{
|
|
||||||
preconditioner DILU;
|
|
||||||
tolerance 1e-05;
|
|
||||||
relTol 0;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
PISO
|
|
||||||
{
|
|
||||||
nCorrectors 2;
|
|
||||||
nNonOrthogonalCorrectors 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
Some files were not shown because too many files have changed in this diff Show more
Reference in a new issue