First complete compiled version

This commit is contained in:
Hrvoje Jasak 2010-09-23 14:04:10 +01:00
parent c382fe369c
commit 6489771b11
2288 changed files with 45771 additions and 2333113 deletions

View file

@ -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++;
} }
} }

View file

@ -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()

View file

@ -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_(),

View file

@ -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)
{ {

View file

@ -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);
} }

View file

@ -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());

View file

@ -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);

View file

@ -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());

View file

@ -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()

View file

@ -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);
} }
} }

View file

@ -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();

View file

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 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");

View file

@ -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

View file

@ -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,

View file

@ -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
)
) )
); );
} }

View file

@ -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
); );

View file

@ -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
); );

View file

@ -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
); );

View file

@ -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()

View file

@ -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;

View file

@ -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;
}
}
// ************************************************************************* //

View file

@ -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;
}
}
// ************************************************************************* //

View file

@ -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;
}
}
// ************************************************************************* //

View file

@ -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;
// ************************************************************************* //

View file

@ -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;
*/
// ************************************************************************* //

View file

@ -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;
}
// ************************************************************************* //

View file

@ -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;
}
// ************************************************************************* //

View file

@ -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;
}
}
// ************************************************************************* //

View file

@ -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;
}
}
// ************************************************************************* //

View file

@ -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;
}
}
// ************************************************************************* //

View file

@ -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;
}
}
// ************************************************************************* //

View file

@ -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;
// ************************************************************************* //

View file

@ -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
(
);
// ************************************************************************* //

View file

@ -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;
*/
// ************************************************************************* //

View file

@ -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;
}
);
}
);
// ************************************************************************* //

View file

@ -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