mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -220,7 +220,8 @@
|
|||||||
}
|
}
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
See also [[./doc/changes/dynamicCode.org]]
|
See also [[./doc/changes/dynamicCode.org]]
|
||||||
|
+ cyclicSlip: cyclic with point motion constrained to tangential plane.
|
||||||
|
Can be used with any mesh movement, e.g. snapping in snappyHexMesh.
|
||||||
* Utilities
|
* Utilities
|
||||||
There have been some utilities added and updated in this release.
|
There have been some utilities added and updated in this release.
|
||||||
*** *New* utilities
|
*** *New* utilities
|
||||||
@ -253,6 +254,8 @@
|
|||||||
- works in parallel
|
- works in parallel
|
||||||
+ =snappyHexMesh=:
|
+ =snappyHexMesh=:
|
||||||
+ extrude across multi-processor boundaries
|
+ extrude across multi-processor boundaries
|
||||||
|
+ specify type of patches created during meshing
|
||||||
|
+ handle cyclics in initial mesh (non parallel meshing only)
|
||||||
+ preserve faceZones shape during layering
|
+ preserve faceZones shape during layering
|
||||||
+ combining coincident patch faces is now default after snapping
|
+ combining coincident patch faces is now default after snapping
|
||||||
+ *Warning*:
|
+ *Warning*:
|
||||||
|
|||||||
@ -144,6 +144,13 @@ castellatedMeshControls
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Optional specification of patch type (default is wall). No
|
||||||
|
// constraint types (cyclic, symmetry) etc. are allowed.
|
||||||
|
patchInfo
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
}
|
||||||
|
|
||||||
//- Optional angle to detect small-large cell situation
|
//- Optional angle to detect small-large cell situation
|
||||||
// perpendicular to the surface. Is the angle of face w.r.t.
|
// perpendicular to the surface. Is the angle of face w.r.t.
|
||||||
// the local surface normal. Use on flat(ish) surfaces only.
|
// the local surface normal. Use on flat(ish) surfaces only.
|
||||||
|
|||||||
@ -525,7 +525,6 @@ void Foam::globalMeshData::calcGlobalPointSlaves() const
|
|||||||
|
|
||||||
// Calculate connected points for master points.
|
// Calculate connected points for master points.
|
||||||
globalPoints globalData(mesh_, coupledPatch(), true, true);
|
globalPoints globalData(mesh_, coupledPatch(), true, true);
|
||||||
globalPointNumberingPtr_.reset(new globalIndex(globalData.globalIndices()));
|
|
||||||
|
|
||||||
globalPointSlavesPtr_.reset
|
globalPointSlavesPtr_.reset
|
||||||
(
|
(
|
||||||
@ -1564,6 +1563,42 @@ void Foam::globalMeshData::calcGlobalPointBoundaryCells() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::globalMeshData::calcGlobalCoPointSlaves() const
|
||||||
|
{
|
||||||
|
if (debug)
|
||||||
|
{
|
||||||
|
Pout<< "globalMeshData::calcGlobalCoPointSlaves() :"
|
||||||
|
<< " calculating coupled master to collocated"
|
||||||
|
<< " slave point addressing." << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calculate connected points for master points.
|
||||||
|
globalPoints globalData(mesh_, coupledPatch(), true, false);
|
||||||
|
|
||||||
|
globalCoPointSlavesPtr_.reset
|
||||||
|
(
|
||||||
|
new labelListList
|
||||||
|
(
|
||||||
|
globalData.pointPoints().xfer()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
globalCoPointSlavesMapPtr_.reset
|
||||||
|
(
|
||||||
|
new mapDistribute
|
||||||
|
(
|
||||||
|
globalData.map().xfer()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (debug)
|
||||||
|
{
|
||||||
|
Pout<< "globalMeshData::calcGlobalCoPointSlaves() :"
|
||||||
|
<< " finished calculating coupled master to collocated"
|
||||||
|
<< " slave point addressing." << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
// Construct from polyMesh
|
// Construct from polyMesh
|
||||||
@ -1639,6 +1674,10 @@ void Foam::globalMeshData::clearOut()
|
|||||||
globalPointBoundaryCellsPtr_.clear();
|
globalPointBoundaryCellsPtr_.clear();
|
||||||
globalPointTransformedBoundaryCellsPtr_.clear();
|
globalPointTransformedBoundaryCellsPtr_.clear();
|
||||||
globalPointBoundaryCellsMapPtr_.clear();
|
globalPointBoundaryCellsMapPtr_.clear();
|
||||||
|
|
||||||
|
// Other: collocated points
|
||||||
|
globalCoPointSlavesPtr_.clear();
|
||||||
|
globalCoPointSlavesMapPtr_.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1971,7 +2010,10 @@ const Foam::globalIndex& Foam::globalMeshData::globalPointNumbering() const
|
|||||||
{
|
{
|
||||||
if (!globalPointNumberingPtr_.valid())
|
if (!globalPointNumberingPtr_.valid())
|
||||||
{
|
{
|
||||||
calcGlobalPointSlaves();
|
globalPointNumberingPtr_.reset
|
||||||
|
(
|
||||||
|
new globalIndex(coupledPatch().nPoints())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return globalPointNumberingPtr_();
|
return globalPointNumberingPtr_();
|
||||||
}
|
}
|
||||||
@ -2161,6 +2203,26 @@ const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const Foam::labelListList& Foam::globalMeshData::globalCoPointSlaves() const
|
||||||
|
{
|
||||||
|
if (!globalCoPointSlavesPtr_.valid())
|
||||||
|
{
|
||||||
|
calcGlobalCoPointSlaves();
|
||||||
|
}
|
||||||
|
return globalCoPointSlavesPtr_();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const Foam::mapDistribute& Foam::globalMeshData::globalCoPointSlavesMap() const
|
||||||
|
{
|
||||||
|
if (!globalCoPointSlavesMapPtr_.valid())
|
||||||
|
{
|
||||||
|
calcGlobalCoPointSlaves();
|
||||||
|
}
|
||||||
|
return globalCoPointSlavesMapPtr_();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Foam::autoPtr<Foam::globalIndex> Foam::globalMeshData::mergePoints
|
Foam::autoPtr<Foam::globalIndex> Foam::globalMeshData::mergePoints
|
||||||
(
|
(
|
||||||
labelList& pointToGlobal,
|
labelList& pointToGlobal,
|
||||||
@ -2168,33 +2230,70 @@ Foam::autoPtr<Foam::globalIndex> Foam::globalMeshData::mergePoints
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
const indirectPrimitivePatch& cpp = coupledPatch();
|
const indirectPrimitivePatch& cpp = coupledPatch();
|
||||||
const labelListList& pointSlaves = globalPointSlaves();
|
const globalIndex& globalCoupledPoints = globalPointNumbering();
|
||||||
const mapDistribute& pointSlavesMap = globalPointSlavesMap();
|
// Use collocated only
|
||||||
|
const labelListList& pointSlaves = globalCoPointSlaves();
|
||||||
|
const mapDistribute& pointSlavesMap = globalCoPointSlavesMap();
|
||||||
|
|
||||||
|
|
||||||
|
// Points are either
|
||||||
|
// - master with slaves
|
||||||
|
// - slave with a master
|
||||||
|
// - other (since e.g. non-collocated cyclics not connected)
|
||||||
|
|
||||||
|
labelList masterGlobalPoint(cpp.nPoints(), -1);
|
||||||
|
forAll(masterGlobalPoint, pointI)
|
||||||
|
{
|
||||||
|
const labelList& slavePoints = pointSlaves[pointI];
|
||||||
|
if (slavePoints.size() > 0)
|
||||||
|
{
|
||||||
|
masterGlobalPoint[pointI] = globalCoupledPoints.toGlobal(pointI);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sync by taking max
|
||||||
|
syncData
|
||||||
|
(
|
||||||
|
masterGlobalPoint,
|
||||||
|
pointSlaves,
|
||||||
|
labelListList(cpp.nPoints()), // no transforms
|
||||||
|
pointSlavesMap,
|
||||||
|
maxEqOp<label>()
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
// 1. Count number of masters on my processor.
|
// 1. Count number of masters on my processor.
|
||||||
label nCoupledMaster = 0;
|
label nMaster = 0;
|
||||||
PackedBoolList isMaster(mesh_.nPoints(), 1);
|
PackedBoolList isMaster(mesh_.nPoints(), 1);
|
||||||
forAll(pointSlaves, pointI)
|
forAll(pointSlaves, pointI)
|
||||||
{
|
{
|
||||||
const labelList& slavePoints = pointSlaves[pointI];
|
if (masterGlobalPoint[pointI] == -1)
|
||||||
|
|
||||||
if (slavePoints.size() > 0)
|
|
||||||
{
|
{
|
||||||
nCoupledMaster++;
|
// unconnected point (e.g. from separated cyclic)
|
||||||
|
nMaster++;
|
||||||
|
}
|
||||||
|
else if
|
||||||
|
(
|
||||||
|
masterGlobalPoint[pointI]
|
||||||
|
== globalCoupledPoints.toGlobal(pointI)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
// connected master
|
||||||
|
nMaster++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// connected slave point
|
||||||
isMaster[cpp.meshPoints()[pointI]] = 0;
|
isMaster[cpp.meshPoints()[pointI]] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
label myUniquePoints = mesh_.nPoints() - cpp.nPoints() + nCoupledMaster;
|
label myUniquePoints = mesh_.nPoints() - cpp.nPoints() + nMaster;
|
||||||
|
|
||||||
//Pout<< "Points :" << nl
|
//Pout<< "Points :" << nl
|
||||||
// << " mesh : " << mesh_.nPoints() << nl
|
// << " mesh : " << mesh_.nPoints() << nl
|
||||||
// << " of which coupled : " << cpp.nPoints() << nl
|
// << " of which coupled : " << cpp.nPoints() << nl
|
||||||
// << " of which master : " << nCoupledMaster << nl
|
// << " of which master : " << nMaster << nl
|
||||||
// << endl;
|
// << endl;
|
||||||
|
|
||||||
|
|
||||||
@ -2206,7 +2305,7 @@ Foam::autoPtr<Foam::globalIndex> Foam::globalMeshData::mergePoints
|
|||||||
pointToGlobal.setSize(mesh_.nPoints());
|
pointToGlobal.setSize(mesh_.nPoints());
|
||||||
pointToGlobal = -1;
|
pointToGlobal = -1;
|
||||||
uniquePoints.setSize(myUniquePoints);
|
uniquePoints.setSize(myUniquePoints);
|
||||||
label nMaster = 0;
|
nMaster = 0;
|
||||||
|
|
||||||
forAll(isMaster, meshPointI)
|
forAll(isMaster, meshPointI)
|
||||||
{
|
{
|
||||||
@ -2244,12 +2343,11 @@ Foam::autoPtr<Foam::globalIndex> Foam::globalMeshData::mergePoints
|
|||||||
|
|
||||||
// On slave copy master index into overal map.
|
// On slave copy master index into overal map.
|
||||||
forAll(pointSlaves, pointI)
|
forAll(pointSlaves, pointI)
|
||||||
{
|
|
||||||
const labelList& slaves = pointSlaves[pointI];
|
|
||||||
|
|
||||||
if (slaves.size() == 0)
|
|
||||||
{
|
{
|
||||||
label meshPointI = cpp.meshPoints()[pointI];
|
label meshPointI = cpp.meshPoints()[pointI];
|
||||||
|
|
||||||
|
if (!isMaster[meshPointI])
|
||||||
|
{
|
||||||
pointToGlobal[meshPointI] = masterToGlobal[pointI];
|
pointToGlobal[meshPointI] = masterToGlobal[pointI];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2268,8 +2366,8 @@ Foam::autoPtr<Foam::globalIndex> Foam::globalMeshData::mergePoints
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
const indirectPrimitivePatch& cpp = coupledPatch();
|
const indirectPrimitivePatch& cpp = coupledPatch();
|
||||||
const labelListList& pointSlaves = globalPointSlaves();
|
const labelListList& pointSlaves = globalCoPointSlaves();
|
||||||
const mapDistribute& pointSlavesMap = globalPointSlavesMap();
|
const mapDistribute& pointSlavesMap = globalCoPointSlavesMap();
|
||||||
|
|
||||||
|
|
||||||
// The patch points come in two variants:
|
// The patch points come in two variants:
|
||||||
@ -2280,19 +2378,18 @@ Foam::autoPtr<Foam::globalIndex> Foam::globalMeshData::mergePoints
|
|||||||
// coupled points to be the master but this master point is not
|
// coupled points to be the master but this master point is not
|
||||||
// necessarily on the patch itself! (it might just be connected to the
|
// necessarily on the patch itself! (it might just be connected to the
|
||||||
// patch point via coupled patches).
|
// patch point via coupled patches).
|
||||||
// So this means that all master point loops should be over the
|
|
||||||
// master-slave structure, not over the patch points and that the unique
|
|
||||||
// point returned is a mesh point.
|
|
||||||
// (unless we want to do the whole master-slave analysis again for the
|
|
||||||
// current patch only).
|
|
||||||
|
|
||||||
|
|
||||||
// Determine mapping from coupled point to patch point and vice versa
|
// Determine mapping:
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
// - from patch point to coupled point (or -1)
|
||||||
|
// - from coupled point to global patch point
|
||||||
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
globalIndex globalPPoints(meshPoints.size());
|
||||||
|
|
||||||
labelList patchToCoupled(meshPoints.size(), -1);
|
labelList patchToCoupled(meshPoints.size(), -1);
|
||||||
label nCoupled = 0;
|
label nCoupled = 0;
|
||||||
labelList coupledToPatch(pointSlavesMap.constructSize(), -1);
|
labelList coupledToGlobalPatch(pointSlavesMap.constructSize(), -1);
|
||||||
|
|
||||||
// Note: loop over patch since usually smaller
|
// Note: loop over patch since usually smaller
|
||||||
forAll(meshPoints, patchPointI)
|
forAll(meshPoints, patchPointI)
|
||||||
@ -2304,7 +2401,7 @@ Foam::autoPtr<Foam::globalIndex> Foam::globalMeshData::mergePoints
|
|||||||
if (iter != cpp.meshPointMap().end())
|
if (iter != cpp.meshPointMap().end())
|
||||||
{
|
{
|
||||||
patchToCoupled[patchPointI] = iter();
|
patchToCoupled[patchPointI] = iter();
|
||||||
coupledToPatch[iter()] = patchPointI;
|
coupledToGlobalPatch[iter()] = globalPPoints.toGlobal(patchPointI);
|
||||||
nCoupled++;
|
nCoupled++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2314,133 +2411,163 @@ Foam::autoPtr<Foam::globalIndex> Foam::globalMeshData::mergePoints
|
|||||||
// << " of which on coupled patch:" << nCoupled << endl;
|
// << " of which on coupled patch:" << nCoupled << endl;
|
||||||
|
|
||||||
|
|
||||||
// Pull coupled-to-patch information to master
|
// Determine master of connected points
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
// Problem is that the coupled master might not be on the patch. So
|
||||||
pointSlavesMap.distribute(coupledToPatch);
|
// work out the best patch-point master from all connected points.
|
||||||
|
// - if the coupled master is on the patch it becomes the patch-point master
|
||||||
|
// - else the slave with the lowest numbered patch point label
|
||||||
// Check on master whether point is anywhere on patch
|
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
// List of master points that are on the patch
|
|
||||||
DynamicList<label> masterPoints(pointSlaves.size());
|
|
||||||
|
|
||||||
|
// Get all data on master
|
||||||
|
pointSlavesMap.distribute(coupledToGlobalPatch);
|
||||||
forAll(pointSlaves, coupledPointI)
|
forAll(pointSlaves, coupledPointI)
|
||||||
{
|
{
|
||||||
const labelList& slaves = pointSlaves[coupledPointI];
|
const labelList& slaves = pointSlaves[coupledPointI];
|
||||||
|
|
||||||
if (slaves.size() > 0)
|
if (slaves.size() > 0)
|
||||||
{
|
{
|
||||||
// I am master. Is this point on the patch on myself or on any
|
// I am master. What is the best candidate for patch-point master
|
||||||
// any slave?
|
label masterI = labelMax;
|
||||||
if (coupledToPatch[coupledPointI] != -1)
|
if (coupledToGlobalPatch[coupledPointI] != -1)
|
||||||
{
|
{
|
||||||
masterPoints.append(coupledPointI);
|
// I am master and on the coupled patch. Use me.
|
||||||
|
masterI = coupledToGlobalPatch[coupledPointI];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// Get min of slaves as master.
|
||||||
forAll(slaves, i)
|
forAll(slaves, i)
|
||||||
{
|
{
|
||||||
if (coupledToPatch[slaves[i]] != -1)
|
label slavePp = coupledToGlobalPatch[slaves[i]];
|
||||||
|
if (slavePp != -1 && slavePp < masterI)
|
||||||
{
|
{
|
||||||
masterPoints.append(coupledPointI);
|
masterI = slavePp;
|
||||||
break;
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (masterI != labelMax)
|
||||||
|
{
|
||||||
|
// Push back
|
||||||
|
coupledToGlobalPatch[coupledPointI] = masterI;
|
||||||
|
forAll(slaves, i)
|
||||||
|
{
|
||||||
|
coupledToGlobalPatch[slaves[i]] = masterI;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
pointSlavesMap.reverseDistribute(cpp.nPoints(), coupledToGlobalPatch);
|
||||||
|
|
||||||
|
|
||||||
// Create global indexing
|
// Generate compact numbering for master points
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
// 1. patch points that are not on coupled patch:
|
// Now coupledToGlobalPatch is the globalIndex of the master point.
|
||||||
// meshPoints.size()-nCoupled
|
// Now every processor can check whether they hold it and generate a
|
||||||
// 2. master points that are on patch:
|
// compact numbering.
|
||||||
// masterPoints.size()
|
|
||||||
label myUniquePoints = meshPoints.size()-nCoupled+masterPoints.size();
|
|
||||||
autoPtr<globalIndex> globalPointsPtr(new globalIndex(myUniquePoints));
|
|
||||||
|
|
||||||
//Pout<< "CoupledPatch:" << nl
|
label nMasters = 0;
|
||||||
// << " points:" << cpp.nPoints() << nl
|
forAll(meshPoints, patchPointI)
|
||||||
// << " of which on patch:" << masterPoints.size() << endl;
|
|
||||||
|
|
||||||
|
|
||||||
// Allocate unique points
|
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
pointToGlobal.setSize(meshPoints.size());
|
|
||||||
pointToGlobal = -1;
|
|
||||||
uniqueMeshPoints.setSize(myUniquePoints);
|
|
||||||
|
|
||||||
// Allocate globals for uncoupled patch points
|
|
||||||
label nMaster = 0;
|
|
||||||
forAll(patchToCoupled, patchPointI)
|
|
||||||
{
|
{
|
||||||
if (patchToCoupled[patchPointI] == -1)
|
if (patchToCoupled[patchPointI] == -1)
|
||||||
{
|
{
|
||||||
// Allocate global point
|
nMasters++;
|
||||||
label globalI = globalPointsPtr().toGlobal(nMaster);
|
|
||||||
pointToGlobal[patchPointI] = globalI;
|
|
||||||
uniqueMeshPoints[nMaster] = meshPoints[patchPointI];
|
|
||||||
nMaster++;
|
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
|
|
||||||
// Allocate globals for master
|
|
||||||
labelList masterToGlobal(pointSlavesMap.constructSize(), -456);
|
|
||||||
|
|
||||||
forAll(masterPoints, i)
|
|
||||||
{
|
|
||||||
label coupledPointI = masterPoints[i];
|
|
||||||
|
|
||||||
// Allocate global point
|
|
||||||
label globalI = globalPointsPtr().toGlobal(nMaster);
|
|
||||||
if (coupledToPatch[coupledPointI] != -1)
|
|
||||||
{
|
|
||||||
pointToGlobal[coupledToPatch[coupledPointI]] = globalI;
|
|
||||||
}
|
|
||||||
uniqueMeshPoints[nMaster] = cpp.meshPoints()[coupledPointI];
|
|
||||||
nMaster++;
|
|
||||||
|
|
||||||
// Put global into slave slots
|
|
||||||
const labelList& slaves = pointSlaves[coupledPointI];
|
|
||||||
masterToGlobal[coupledPointI] = globalI; // not really necessary
|
|
||||||
forAll(slaves, i)
|
|
||||||
{
|
|
||||||
masterToGlobal[slaves[i]] = globalI;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (nMaster != myUniquePoints)
|
|
||||||
{
|
|
||||||
FatalErrorIn("globalMeshData::mergePoints(..)")
|
|
||||||
<< "problem." << abort(FatalError);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Send back (from slave slots) to originating processor
|
|
||||||
pointSlavesMap.reverseDistribute(cpp.nPoints(), masterToGlobal);
|
|
||||||
|
|
||||||
// On slaves take over global number
|
|
||||||
forAll(patchToCoupled, patchPointI)
|
|
||||||
{
|
{
|
||||||
label coupledPointI = patchToCoupled[patchPointI];
|
label coupledPointI = patchToCoupled[patchPointI];
|
||||||
|
if
|
||||||
if (coupledPointI != -1)
|
(
|
||||||
|
globalPPoints.toGlobal(patchPointI)
|
||||||
|
== coupledToGlobalPatch[coupledPointI]
|
||||||
|
)
|
||||||
{
|
{
|
||||||
const labelList& slaves = pointSlaves[coupledPointI];
|
// I am the master
|
||||||
|
nMasters++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (slaves.size() == 0)
|
autoPtr<globalIndex> globalPointsPtr(new globalIndex(nMasters));
|
||||||
|
|
||||||
|
//Pout<< "Patch:" << nl
|
||||||
|
// << " points:" << meshPoints.size() << nl
|
||||||
|
// << " of which on coupled patch:" << nCoupled << nl
|
||||||
|
// << " of which master:" << nMasters << endl;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Push back compact numbering for master point onto slaves
|
||||||
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
pointToGlobal.setSize(meshPoints.size());
|
||||||
|
pointToGlobal = -1;
|
||||||
|
uniqueMeshPoints.setSize(nMasters);
|
||||||
|
|
||||||
|
// Sync master in global point numbering so all know the master point.
|
||||||
|
// Initialise globalMaster to be -1 except at a globalMaster.
|
||||||
|
labelList globalMaster(cpp.nPoints(), -1);
|
||||||
|
|
||||||
|
nMasters = 0;
|
||||||
|
forAll(meshPoints, patchPointI)
|
||||||
{
|
{
|
||||||
pointToGlobal[patchPointI] = masterToGlobal[coupledPointI];
|
if (patchToCoupled[patchPointI] == -1)
|
||||||
|
{
|
||||||
|
uniqueMeshPoints[nMasters++] = meshPoints[patchPointI];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
label coupledPointI = patchToCoupled[patchPointI];
|
||||||
|
if
|
||||||
|
(
|
||||||
|
globalPPoints.toGlobal(patchPointI)
|
||||||
|
== coupledToGlobalPatch[coupledPointI]
|
||||||
|
)
|
||||||
|
{
|
||||||
|
globalMaster[coupledPointI] =
|
||||||
|
globalPointsPtr().toGlobal(nMasters);
|
||||||
|
uniqueMeshPoints[nMasters++] = meshPoints[patchPointI];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Sync by taking max
|
||||||
|
syncData
|
||||||
|
(
|
||||||
|
globalMaster,
|
||||||
|
pointSlaves,
|
||||||
|
labelListList(cpp.nPoints()), // no transforms
|
||||||
|
pointSlavesMap,
|
||||||
|
maxEqOp<label>()
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// Now everyone has the master point in globalPointsPtr numbering. Fill
|
||||||
|
// in the pointToGlobal map.
|
||||||
|
nMasters = 0;
|
||||||
|
forAll(meshPoints, patchPointI)
|
||||||
|
{
|
||||||
|
if (patchToCoupled[patchPointI] == -1)
|
||||||
|
{
|
||||||
|
pointToGlobal[patchPointI] = globalPointsPtr().toGlobal(nMasters++);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
label coupledPointI = patchToCoupled[patchPointI];
|
||||||
|
pointToGlobal[patchPointI] = globalMaster[coupledPointI];
|
||||||
|
|
||||||
|
if
|
||||||
|
(
|
||||||
|
globalPPoints.toGlobal(patchPointI)
|
||||||
|
== coupledToGlobalPatch[coupledPointI]
|
||||||
|
)
|
||||||
|
{
|
||||||
|
nMasters++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return globalPointsPtr;
|
return globalPointsPtr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -202,7 +202,7 @@ class globalMeshData
|
|||||||
globalPointTransformedBoundaryFacesPtr_;
|
globalPointTransformedBoundaryFacesPtr_;
|
||||||
mutable autoPtr<mapDistribute> globalPointBoundaryFacesMapPtr_;
|
mutable autoPtr<mapDistribute> globalPointBoundaryFacesMapPtr_;
|
||||||
|
|
||||||
// Coupled point to collocated boundary cells
|
// Coupled point to boundary cells
|
||||||
|
|
||||||
mutable autoPtr<labelList> boundaryCellsPtr_;
|
mutable autoPtr<labelList> boundaryCellsPtr_;
|
||||||
mutable autoPtr<globalIndex> globalBoundaryCellNumberingPtr_;
|
mutable autoPtr<globalIndex> globalBoundaryCellNumberingPtr_;
|
||||||
@ -212,6 +212,12 @@ class globalMeshData
|
|||||||
mutable autoPtr<mapDistribute> globalPointBoundaryCellsMapPtr_;
|
mutable autoPtr<mapDistribute> globalPointBoundaryCellsMapPtr_;
|
||||||
|
|
||||||
|
|
||||||
|
// Other: coupled point to coupled COLLOCATED points
|
||||||
|
mutable autoPtr<labelListList> globalCoPointSlavesPtr_;
|
||||||
|
mutable autoPtr<mapDistribute> globalCoPointSlavesMapPtr_;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Globally shared point addressing
|
// Globally shared point addressing
|
||||||
|
|
||||||
//- Total number of global points
|
//- Total number of global points
|
||||||
@ -303,6 +309,18 @@ class globalMeshData
|
|||||||
//- Calculate global point to global boundary cell addressing.
|
//- Calculate global point to global boundary cell addressing.
|
||||||
void calcGlobalPointBoundaryCells() const;
|
void calcGlobalPointBoundaryCells() const;
|
||||||
|
|
||||||
|
// Other
|
||||||
|
|
||||||
|
// Point to collocated points. Note that not all points on
|
||||||
|
// coupled patches now have a master! (since points on either
|
||||||
|
// side of a cyclic are not connected). So check whether the map
|
||||||
|
// reaches all points and decide who is master, slave and who is
|
||||||
|
// its own master. Maybe store as well?
|
||||||
|
|
||||||
|
void calcGlobalCoPointSlaves() const;
|
||||||
|
const labelListList& globalCoPointSlaves() const;
|
||||||
|
const mapDistribute& globalCoPointSlavesMap() const;
|
||||||
|
|
||||||
|
|
||||||
//- Disallow default bitwise copy construct
|
//- Disallow default bitwise copy construct
|
||||||
globalMeshData(const globalMeshData&);
|
globalMeshData(const globalMeshData&);
|
||||||
@ -547,7 +565,7 @@ public:
|
|||||||
|
|
||||||
// Other
|
// Other
|
||||||
|
|
||||||
//- Helper for merging mesh point data.
|
//- Helper for merging (collocated!) mesh point data.
|
||||||
// Determines:
|
// Determines:
|
||||||
// - my unique indices
|
// - my unique indices
|
||||||
// - global numbering over all unique indices
|
// - global numbering over all unique indices
|
||||||
@ -559,11 +577,11 @@ public:
|
|||||||
labelList& uniquePoints
|
labelList& uniquePoints
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
//- Helper for merging patch point data.
|
//- Helper for merging (collocated!) patch point data.
|
||||||
// Takes maps from:
|
// Takes maps from:
|
||||||
// local points to/from mesh. Determines
|
// local points to/from mesh. Determines
|
||||||
// - my unique points. These are mesh points, not patch points
|
// - my unique points. These are mesh point indices, not patch
|
||||||
// since the master might not be on the patch.
|
// point indices.
|
||||||
// - global numbering over all unique indices.
|
// - global numbering over all unique indices.
|
||||||
// - the global number for all local points.
|
// - the global number for all local points.
|
||||||
autoPtr<globalIndex> mergePoints
|
autoPtr<globalIndex> mergePoints
|
||||||
|
|||||||
@ -533,7 +533,7 @@ void Foam::globalPoints::sendPatchPoints
|
|||||||
// Send to neighbour
|
// Send to neighbour
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
Pout<< " Sending to "
|
Pout<< " Sending from " << pp.name() << " to "
|
||||||
<< procPatch.neighbProcNo() << " point information:"
|
<< procPatch.neighbProcNo() << " point information:"
|
||||||
<< patchFaces.size() << endl;
|
<< patchFaces.size() << endl;
|
||||||
}
|
}
|
||||||
@ -589,7 +589,8 @@ void Foam::globalPoints::receivePatchPoints
|
|||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
Pout<< " Received from "
|
Pout<< " On " << pp.name()
|
||||||
|
<< " Received from "
|
||||||
<< procPatch.neighbProcNo() << " point information:"
|
<< procPatch.neighbProcNo() << " point information:"
|
||||||
<< patchFaces.size() << endl;
|
<< patchFaces.size() << endl;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,6 +45,7 @@ License
|
|||||||
#include "slipPointPatchFields.H"
|
#include "slipPointPatchFields.H"
|
||||||
#include "fixedValuePointPatchFields.H"
|
#include "fixedValuePointPatchFields.H"
|
||||||
#include "calculatedPointPatchFields.H"
|
#include "calculatedPointPatchFields.H"
|
||||||
|
#include "cyclicSlipPointPatchFields.H"
|
||||||
#include "processorPointPatch.H"
|
#include "processorPointPatch.H"
|
||||||
#include "globalIndex.H"
|
#include "globalIndex.H"
|
||||||
#include "meshTools.H"
|
#include "meshTools.H"
|
||||||
@ -1458,6 +1459,10 @@ Foam::tmp<Foam::pointVectorField> Foam::meshRefinement::makeDisplacementField
|
|||||||
{
|
{
|
||||||
patchFieldTypes[patchI] = calculatedPointPatchVectorField::typeName;
|
patchFieldTypes[patchI] = calculatedPointPatchVectorField::typeName;
|
||||||
}
|
}
|
||||||
|
else if (isA<cyclicPointPatch>(pointPatches[patchI]))
|
||||||
|
{
|
||||||
|
patchFieldTypes[patchI] = cyclicSlipPointPatchVectorField::typeName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: time().timeName() instead of meshRefinement::timeName() since
|
// Note: time().timeName() instead of meshRefinement::timeName() since
|
||||||
|
|||||||
@ -111,7 +111,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
//- Return for every coordinate the wanted processor number. Use the
|
//- Return for every coordinate the wanted processor number. Use the
|
||||||
// mesh connectivity (if needed)
|
// mesh connectivity (if needed). See note on weights in scotchDecomp.H
|
||||||
virtual labelList decompose
|
virtual labelList decompose
|
||||||
(
|
(
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
@ -122,7 +122,7 @@ public:
|
|||||||
//- Return for every coordinate the wanted processor number. Gets
|
//- Return for every coordinate the wanted processor number. Gets
|
||||||
// passed agglomeration map (from fine to coarse cells) and coarse cell
|
// passed agglomeration map (from fine to coarse cells) and coarse cell
|
||||||
// location. Can be overridden by decomposers that provide this
|
// location. Can be overridden by decomposers that provide this
|
||||||
// functionality natively.
|
// functionality natively. See note on weights in scotchDecomp.H
|
||||||
virtual labelList decompose
|
virtual labelList decompose
|
||||||
(
|
(
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
@ -138,6 +138,7 @@ public:
|
|||||||
// from 0 at processor0 and then incrementing all through the
|
// from 0 at processor0 and then incrementing all through the
|
||||||
// processors)
|
// processors)
|
||||||
// - the connections are across coupled patches
|
// - the connections are across coupled patches
|
||||||
|
// See note on weights in scotchDecomp.H
|
||||||
virtual labelList decompose
|
virtual labelList decompose
|
||||||
(
|
(
|
||||||
const labelListList& globalCellCells,
|
const labelListList& globalCellCells,
|
||||||
|
|||||||
@ -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) 2009-2010 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -107,9 +107,9 @@ public:
|
|||||||
|
|
||||||
//- Return for every coordinate the wanted processor number. Use the
|
//- Return for every coordinate the wanted processor number. Use the
|
||||||
// mesh connectivity (if needed)
|
// mesh connectivity (if needed)
|
||||||
// Weights get truncated to convert into integer
|
// Weights get normalised with minimum weight and truncated to
|
||||||
// so e.g. 3.5 is seen as 3. The overall sum of weights
|
// convert into integer so e.g. 3.5 is seen as 3. The overall sum
|
||||||
// might otherwise overflow.
|
// of weights might otherwise overflow.
|
||||||
virtual labelList decompose
|
virtual labelList decompose
|
||||||
(
|
(
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
|
|||||||
@ -85,7 +85,7 @@ void reactingOneDim::updateQr()
|
|||||||
|
|
||||||
// Qr is negative going out the solid
|
// Qr is negative going out the solid
|
||||||
// If the surface is emitting the radiative flux is set to zero
|
// If the surface is emitting the radiative flux is set to zero
|
||||||
Qrp = max(Qrp, 0.0);
|
Qrp = max(Qrp, scalar(0.0));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Propagate Qr through 1-D regions
|
// Propagate Qr through 1-D regions
|
||||||
|
|||||||
@ -162,7 +162,7 @@ tmp<fvVectorMatrix> contactAngleForce::correct(volVectorField& U)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
force /= (max(nHits, 1.0)*magSf);
|
force /= (max(nHits, scalar(1.0))*magSf);
|
||||||
tForce().correctBoundaryConditions();
|
tForce().correctBoundaryConditions();
|
||||||
|
|
||||||
if (owner_.regionMesh().time().outputTime())
|
if (owner_.regionMesh().time().outputTime())
|
||||||
|
|||||||
@ -113,7 +113,7 @@ Foam::combustionModels::infinitelyFastChemistry::R(volScalarField& Y) const
|
|||||||
|
|
||||||
const volScalarField wSpecie =
|
const volScalarField wSpecie =
|
||||||
wFuelNorm_*singleMixture_.specieStoichCoeffs()[specieI]
|
wFuelNorm_*singleMixture_.specieStoichCoeffs()[specieI]
|
||||||
/ max(fNorm*(Y - fres), 0.001);
|
/ max(fNorm*(Y - fres), scalar(0.001));
|
||||||
|
|
||||||
return -fNorm*wSpecie*fres + fNorm*fvm::Sp(wSpecie, Y);
|
return -fNorm*wSpecie*fres + fNorm*fvm::Sp(wSpecie, Y);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -137,11 +137,11 @@ void Foam::singleStepReactingMixture<ThermoType>::fresCorrect()
|
|||||||
const label specieI = reaction.lhs()[i].index;
|
const label specieI = reaction.lhs()[i].index;
|
||||||
if (specieI == fuelIndex_)
|
if (specieI == fuelIndex_)
|
||||||
{
|
{
|
||||||
fres_[specieI] = max(YFuel - YO2/s_, 0.0);
|
fres_[specieI] = max(YFuel - YO2/s_, scalar(0.0));
|
||||||
}
|
}
|
||||||
else if (specieI == O2Index)
|
else if (specieI == O2Index)
|
||||||
{
|
{
|
||||||
fres_[specieI] = max(YO2 - YFuel*s_, 0.0);
|
fres_[specieI] = max(YO2 - YFuel*s_, scalar(0.0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -140,7 +140,7 @@ ODESolidChemistryModel
|
|||||||
// Calculate inital values of Ysi0 = rho*delta*Yi
|
// Calculate inital values of Ysi0 = rho*delta*Yi
|
||||||
Ys0_[fieldI].internalField() =
|
Ys0_[fieldI].internalField() =
|
||||||
//this->solidThermo().rho()*Ys_[fieldI]*mesh.V();
|
//this->solidThermo().rho()*Ys_[fieldI]*mesh.V();
|
||||||
this->solidThermo().rho()*max(Ys_[fieldI],0.001)*mesh.V();
|
this->solidThermo().rho()*max(Ys_[fieldI],scalar(0.001))*mesh.V();
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(RRg_, fieldI)
|
forAll(RRg_, fieldI)
|
||||||
|
|||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object H2O;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0.0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object N2;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0.79;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object O2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0.21;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,46 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
location "0";
|
||||||
|
class volScalarField;
|
||||||
|
object T;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 1 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 300;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0";
|
||||||
|
object U;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,46 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object p;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 100000;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object p_rgh;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 100000;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0/wallFilmRegion";
|
||||||
|
object Tf;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 1 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 300;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,54 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0/wallFilmRegion";
|
||||||
|
object Uf;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type slip;
|
||||||
|
}
|
||||||
|
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 -0.075 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0/wallFilmRegion";
|
||||||
|
object deltaf;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 1e-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object H2O;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0.0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object N2;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0.79;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object O2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0.21;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
46
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0/T
Normal file
46
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0/T
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
location "0";
|
||||||
|
class volScalarField;
|
||||||
|
object T;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 1 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 300;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
47
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0/U
Normal file
47
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0/U
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0";
|
||||||
|
object U;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
46
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0/p
Normal file
46
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/0/p
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object p;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 100000;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type calculated;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0";
|
||||||
|
object p_rgh;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 100000;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type buoyantPressure;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0/wallFilmRegion";
|
||||||
|
object Tf;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 1 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 300;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,54 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0/wallFilmRegion";
|
||||||
|
object Uf;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type slip;
|
||||||
|
}
|
||||||
|
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 -0.075 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
location "0/wallFilmRegion";
|
||||||
|
object deltaf;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
wallFilmFaces_top
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
region0_to_wallFilmRegion_wallFilmFaces
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value uniform 1e-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
13
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allclean
Executable file
13
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allclean
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Source tutorial clean functions
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||||
|
|
||||||
|
cleanCase
|
||||||
|
|
||||||
|
rm -rf constant/wallFilmRegion
|
||||||
|
rm -rf 0
|
||||||
|
cp -rf 0.org 0
|
||||||
|
|
||||||
|
rm -f *.obj
|
||||||
|
|
||||||
|
#rm -rf VTK
|
||||||
10
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allrun
Executable file
10
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allrun
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cd ${0%/*} || exit 1 # run from this directory
|
||||||
|
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
|
./Allrun.pre
|
||||||
|
|
||||||
|
application=`getApplication`
|
||||||
|
|
||||||
|
runApplication $application
|
||||||
10
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allrun.pre
Executable file
10
tutorials/lagrangian/reactingParcelFilmFoam/rivuletPanel/Allrun.pre
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
|
runApplication blockMesh
|
||||||
|
|
||||||
|
runApplication setSet -batch wallFilmRegion.setSet
|
||||||
|
mv log.setSet log.wallFilmRegion.setSet
|
||||||
|
|
||||||
|
runApplication extrudeToRegionMesh -overwrite
|
||||||
|
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object additionalControls;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvePrimaryRegion false; // true;
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object chemistryProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
psiChemistryModel ODEChemistryModel<gasThermoPhysics>;
|
||||||
|
|
||||||
|
chemistry off;
|
||||||
|
|
||||||
|
turbulentReaction off;
|
||||||
|
|
||||||
|
chemistrySolver noChemistrySolver;
|
||||||
|
|
||||||
|
initialChemicalTimeStep 1e-07;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object combustionProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
combustionModel none;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,85 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object foam.dat;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
O2
|
||||||
|
{
|
||||||
|
specie
|
||||||
|
{
|
||||||
|
nMoles 1;
|
||||||
|
molWeight 31.9988;
|
||||||
|
}
|
||||||
|
thermodynamics
|
||||||
|
{
|
||||||
|
Tlow 200;
|
||||||
|
Thigh 5000;
|
||||||
|
Tcommon 1000;
|
||||||
|
highCpCoeffs ( 3.69758 0.00061352 -1.25884e-07 1.77528e-11 -1.13644e-15 -1233.93 3.18917 );
|
||||||
|
lowCpCoeffs ( 3.21294 0.00112749 -5.75615e-07 1.31388e-09 -8.76855e-13 -1005.25 6.03474 );
|
||||||
|
}
|
||||||
|
transport
|
||||||
|
{
|
||||||
|
As 1.67212e-06;
|
||||||
|
Ts 170.672;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
H2O
|
||||||
|
{
|
||||||
|
specie
|
||||||
|
{
|
||||||
|
nMoles 1;
|
||||||
|
molWeight 18.0153;
|
||||||
|
}
|
||||||
|
thermodynamics
|
||||||
|
{
|
||||||
|
Tlow 200;
|
||||||
|
Thigh 5000;
|
||||||
|
Tcommon 1000;
|
||||||
|
highCpCoeffs ( 2.67215 0.00305629 -8.73026e-07 1.201e-10 -6.39162e-15 -29899.2 6.86282 );
|
||||||
|
lowCpCoeffs ( 3.38684 0.00347498 -6.3547e-06 6.96858e-09 -2.50659e-12 -30208.1 2.59023 );
|
||||||
|
}
|
||||||
|
transport
|
||||||
|
{
|
||||||
|
As 1.67212e-06;
|
||||||
|
Ts 170.672;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
N2
|
||||||
|
{
|
||||||
|
specie
|
||||||
|
{
|
||||||
|
nMoles 1;
|
||||||
|
molWeight 28.0134;
|
||||||
|
}
|
||||||
|
thermodynamics
|
||||||
|
{
|
||||||
|
Tlow 200;
|
||||||
|
Thigh 5000;
|
||||||
|
Tcommon 1000;
|
||||||
|
highCpCoeffs ( 2.92664 0.00148798 -5.68476e-07 1.0097e-10 -6.75335e-15 -922.798 5.98053 );
|
||||||
|
lowCpCoeffs ( 3.29868 0.00140824 -3.96322e-06 5.64152e-09 -2.44486e-12 -1020.9 3.95037 );
|
||||||
|
}
|
||||||
|
transport
|
||||||
|
{
|
||||||
|
As 1.67212e-06;
|
||||||
|
Ts 170.672;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
species
|
||||||
|
(
|
||||||
|
O2
|
||||||
|
H2O
|
||||||
|
N2
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
reactions
|
||||||
|
{}
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class uniformDimensionedVectorField;
|
||||||
|
location "constant";
|
||||||
|
object g;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -2 0 0 0 0];
|
||||||
|
value (0 -9.81 0);
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object scalarListList;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
// (x y z) (u v w) d rho mDot T cp (Y0..Y2) (Yg0..YgN) (Yl0..YlN) (Ys0..YsN)
|
||||||
|
(
|
||||||
|
(0.050 0.025 0.09) (0 0 -5) 0.001 1000 0.002 300 4200 (1)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,107 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant/polyMesh";
|
||||||
|
object blockMeshDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
convertToMeters 1;
|
||||||
|
|
||||||
|
vertices
|
||||||
|
(
|
||||||
|
// front
|
||||||
|
( 0 0 1)
|
||||||
|
( 0.125 0 1)
|
||||||
|
( 0.625 0 1)
|
||||||
|
( 0.750 0 1)
|
||||||
|
( 0 1 1)
|
||||||
|
( 0.125 1 1)
|
||||||
|
( 0.625 1 1)
|
||||||
|
( 0.750 1 1)
|
||||||
|
|
||||||
|
// back
|
||||||
|
( 0 0 0)
|
||||||
|
( 0.125 0 0)
|
||||||
|
( 0.625 0 0)
|
||||||
|
( 0.750 0 0)
|
||||||
|
( 0 1 0)
|
||||||
|
( 0.125 1 0)
|
||||||
|
( 0.625 1 0)
|
||||||
|
( 0.750 1 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
blocks
|
||||||
|
(
|
||||||
|
hex (0 1 9 8 4 5 13 12) (30 1 240) simpleGrading (1 1 1)
|
||||||
|
hex (1 2 10 9 5 6 14 13) (120 1 240) simpleGrading (1 1 1)
|
||||||
|
hex (2 3 11 10 6 7 15 14) (30 1 240) simpleGrading (1 1 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
edges
|
||||||
|
(
|
||||||
|
);
|
||||||
|
|
||||||
|
boundary
|
||||||
|
(
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(5 6 14 13)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 1 9 8)
|
||||||
|
(1 2 10 9)
|
||||||
|
(2 3 11 10)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(8 0 4 12)
|
||||||
|
(15 7 3 11)
|
||||||
|
(13 5 4 12)
|
||||||
|
(15 7 6 14)
|
||||||
|
(8 12 13 9)
|
||||||
|
(9 13 14 10)
|
||||||
|
(10 14 15 11)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
filmWalls
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 1 5 4)
|
||||||
|
(1 2 6 5)
|
||||||
|
(2 3 7 6)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
mergePatchPairs
|
||||||
|
(
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,23 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object radiationProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
radiation off;
|
||||||
|
|
||||||
|
radiationModel none;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object reactingCloud1Properties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solution
|
||||||
|
{
|
||||||
|
active no;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object SurfaceFilmProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
surfaceFilmModel kinematicSingleLayer;
|
||||||
|
|
||||||
|
regionName wallFilmRegion;
|
||||||
|
|
||||||
|
active true;
|
||||||
|
|
||||||
|
kinematicSingleLayerCoeffs
|
||||||
|
{
|
||||||
|
thermoModel constant;
|
||||||
|
constantThermoCoeffs
|
||||||
|
{
|
||||||
|
rho0 rho0 [1 -3 0 0 0] 1000;
|
||||||
|
mu0 mu0 [1 -1 -1 0 0] 1e-3;
|
||||||
|
sigma0 sigma0 [1 0 -2 0 0] 0.07;
|
||||||
|
}
|
||||||
|
|
||||||
|
injectionModels ();
|
||||||
|
|
||||||
|
forces
|
||||||
|
(
|
||||||
|
contactAngle
|
||||||
|
surfaceShear
|
||||||
|
thermocapillary
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
contactAngleCoeffs
|
||||||
|
{
|
||||||
|
deltaWet 1e-4;
|
||||||
|
Ccf 1;
|
||||||
|
contactAngleDistribution
|
||||||
|
{
|
||||||
|
type normal;
|
||||||
|
normalDistribution
|
||||||
|
{
|
||||||
|
minValue 50;
|
||||||
|
maxValue 100;
|
||||||
|
expectation 75;
|
||||||
|
variance 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
surfaceShearCoeffs
|
||||||
|
{
|
||||||
|
Cf 0.001;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,46 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object thermophysicalProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
thermoType hsPsiMixtureThermo<reactingMixture<gasThermoPhysics>>;
|
||||||
|
|
||||||
|
chemistryReader foamChemistryReader;
|
||||||
|
|
||||||
|
foamChemistryFile "$FOAM_CASE/constant/foam.inp";
|
||||||
|
|
||||||
|
foamChemistryThermoFile "$FOAM_CASE/constant/foam.dat";
|
||||||
|
|
||||||
|
inertSpecie N2;
|
||||||
|
|
||||||
|
|
||||||
|
liquids
|
||||||
|
{
|
||||||
|
liquidComponents (H2O);
|
||||||
|
|
||||||
|
H2O
|
||||||
|
{
|
||||||
|
defaultCoeffs yes;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
solids
|
||||||
|
{
|
||||||
|
solidComponents ();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object turbulenceProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
simulationType laminar;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
# Create face sets
|
||||||
|
faceSet sideFaces1 new boxToFace (-0.00001 -0.00001 -1) (0.10001 0.00001 1)
|
||||||
|
faceSet sideFaces2 new boxToFace ( 0.09999 -0.00001 -1) (0.10001 0.05001 1)
|
||||||
|
faceSet sideFaces3 new boxToFace (-0.00001 0.04999 -1) (1.00001 0.05001 1)
|
||||||
|
faceSet sideFaces4 new boxToFace (-0.00001 -0.00001 -1) (0.00001 0.05001 1)
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object controlDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
application reactingParcelFilmFoam;
|
||||||
|
|
||||||
|
startFrom latestTime; // startTime;
|
||||||
|
|
||||||
|
startTime 0;
|
||||||
|
|
||||||
|
stopAt endTime;
|
||||||
|
|
||||||
|
endTime 3;
|
||||||
|
|
||||||
|
deltaT 1e-04;
|
||||||
|
|
||||||
|
writeControl adjustableRunTime;
|
||||||
|
|
||||||
|
writeInterval 0.02;
|
||||||
|
|
||||||
|
purgeWrite 0;
|
||||||
|
|
||||||
|
writeFormat ascii;
|
||||||
|
|
||||||
|
writePrecision 10;
|
||||||
|
|
||||||
|
writeCompression uncompressed;
|
||||||
|
|
||||||
|
timeFormat general;
|
||||||
|
|
||||||
|
timePrecision 6;
|
||||||
|
|
||||||
|
runTimeModifiable yes;
|
||||||
|
|
||||||
|
adjustTimeStep yes;
|
||||||
|
|
||||||
|
maxCo 0.3;
|
||||||
|
|
||||||
|
maxDeltaT 1e-03;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,54 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object createPatchDict;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
// This application/dictionary controls:
|
||||||
|
// - optional: create new patches from boundary faces (either given as
|
||||||
|
// a set of patches or as a faceSet)
|
||||||
|
// - always: order faces on coupled patches such that they are opposite. This
|
||||||
|
// is done for all coupled faces, not just for any patches created.
|
||||||
|
// - optional: synchronise points on coupled patches.
|
||||||
|
|
||||||
|
// 1. Create cyclic:
|
||||||
|
// - specify where the faces should come from
|
||||||
|
// - specify the type of cyclic. If a rotational specify the rotationAxis
|
||||||
|
// and centre to make matching easier
|
||||||
|
// - always create both halves in one invocation with correct 'neighbourPatch'
|
||||||
|
// setting.
|
||||||
|
// - optionally pointSync true to guarantee points to line up.
|
||||||
|
|
||||||
|
// 2. Correct incorrect cyclic:
|
||||||
|
// This will usually fail upon loading:
|
||||||
|
// "face 0 area does not match neighbour 2 by 0.0100005%"
|
||||||
|
// " -- possible face ordering problem."
|
||||||
|
// - in polyMesh/boundary file:
|
||||||
|
// - loosen matchTolerance of all cyclics to get case to load
|
||||||
|
// - or change patch type from 'cyclic' to 'patch'
|
||||||
|
// and regenerate cyclic as above
|
||||||
|
|
||||||
|
|
||||||
|
// Do a synchronisation of coupled points after creation of any patches.
|
||||||
|
// Note: this does not work with points that are on multiple coupled patches
|
||||||
|
// with transformations (i.e. cyclics).
|
||||||
|
pointSync false;
|
||||||
|
|
||||||
|
// Patches to create.
|
||||||
|
patches
|
||||||
|
(
|
||||||
|
// none
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object decomposeParDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
numberOfSubdomains 4;
|
||||||
|
|
||||||
|
method metis;
|
||||||
|
|
||||||
|
simpleCoeffs
|
||||||
|
{
|
||||||
|
n ( 2 2 1 );
|
||||||
|
delta 0.001;
|
||||||
|
}
|
||||||
|
|
||||||
|
hierarchicalCoeffs
|
||||||
|
{
|
||||||
|
n ( 1 1 1 );
|
||||||
|
delta 0.001;
|
||||||
|
order xyz;
|
||||||
|
}
|
||||||
|
|
||||||
|
metisCoeffs
|
||||||
|
{
|
||||||
|
processorWeights ( 1 1 1 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
manualCoeffs
|
||||||
|
{
|
||||||
|
dataFile "";
|
||||||
|
}
|
||||||
|
|
||||||
|
distributed no;
|
||||||
|
|
||||||
|
roots ( );
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object extrudeToRegionMeshDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
region wallFilmRegion;
|
||||||
|
|
||||||
|
faceZones (wallFilmFaces);
|
||||||
|
|
||||||
|
oneD false;
|
||||||
|
|
||||||
|
extrudeModel linearNormal;
|
||||||
|
|
||||||
|
nLayers 1;
|
||||||
|
|
||||||
|
expansionRatio 1;
|
||||||
|
|
||||||
|
adaptMesh yes; // apply directMapped to both regions
|
||||||
|
|
||||||
|
linearNormalCoeffs
|
||||||
|
{
|
||||||
|
thickness 0.01;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default Euler;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear;
|
||||||
|
grad(p) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
div(phi,U) Gauss upwind;
|
||||||
|
div(phiU,p) Gauss upwind;
|
||||||
|
div(phi,h) Gauss upwind;
|
||||||
|
div(phi,k) Gauss upwind;
|
||||||
|
div(phi,epsilon) Gauss upwind;
|
||||||
|
div(U) Gauss linear;
|
||||||
|
div((muEff*dev2(T(grad(U))))) Gauss linear;
|
||||||
|
div(phi,Yi_hs) Gauss upwind;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default Gauss linear uncorrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpolationSchemes
|
||||||
|
{
|
||||||
|
default linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
default uncorrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
p_rgh;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,89 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
"(rho|G)"
|
||||||
|
{
|
||||||
|
solver PCG;
|
||||||
|
preconditioner DIC;
|
||||||
|
tolerance 0;
|
||||||
|
relTol 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
"(rho|G)Final"
|
||||||
|
{
|
||||||
|
$rho;
|
||||||
|
tolerance 1e-05;
|
||||||
|
relTol 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
"(U|hs)"
|
||||||
|
{
|
||||||
|
solver PBiCG;
|
||||||
|
preconditioner DILU;
|
||||||
|
tolerance 0;
|
||||||
|
relTol 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
"(U|hs)Final"
|
||||||
|
{
|
||||||
|
$U;
|
||||||
|
relTol 0;
|
||||||
|
tolerance 1e-05;
|
||||||
|
}
|
||||||
|
|
||||||
|
"(k|epsilon)"
|
||||||
|
{
|
||||||
|
$UFinal;
|
||||||
|
}
|
||||||
|
|
||||||
|
p_rgh
|
||||||
|
{
|
||||||
|
solver PCG;
|
||||||
|
preconditioner DIC;
|
||||||
|
tolerance 0;
|
||||||
|
relTol 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
p_rghFinal
|
||||||
|
{
|
||||||
|
$p_rgh;
|
||||||
|
tolerance 1e-06;
|
||||||
|
relTol 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
"(Yi|O2|N2|H2O)"
|
||||||
|
{
|
||||||
|
$hsFinal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PIMPLE
|
||||||
|
{
|
||||||
|
nCorrectors 2;
|
||||||
|
nNonOrthogonalCorrectors 0;
|
||||||
|
momentumPredictor yes;
|
||||||
|
}
|
||||||
|
|
||||||
|
relaxationFactors
|
||||||
|
{
|
||||||
|
".*Final" 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,117 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object createPatchDict;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
// This application/dictionary controls:
|
||||||
|
// - optional: create new patches from boundary faces (either given as
|
||||||
|
// a set of patches or as a faceSet)
|
||||||
|
// - always: order faces on coupled patches such that they are opposite. This
|
||||||
|
// is done for all coupled faces, not just for any patches created.
|
||||||
|
// - optional: synchronise points on coupled patches.
|
||||||
|
|
||||||
|
// 1. Create cyclic:
|
||||||
|
// - specify where the faces should come from
|
||||||
|
// - specify the type of cyclic. If a rotational specify the rotationAxis
|
||||||
|
// and centre to make matching easier
|
||||||
|
// - always create both halves in one invocation with correct 'neighbourPatch'
|
||||||
|
// setting.
|
||||||
|
// - optionally pointSync true to guarantee points to line up.
|
||||||
|
|
||||||
|
// 2. Correct incorrect cyclic:
|
||||||
|
// This will usually fail upon loading:
|
||||||
|
// "face 0 area does not match neighbour 2 by 0.0100005%"
|
||||||
|
// " -- possible face ordering problem."
|
||||||
|
// - in polyMesh/boundary file:
|
||||||
|
// - loosen matchTolerance of all cyclics to get case to load
|
||||||
|
// - or change patch type from 'cyclic' to 'patch'
|
||||||
|
// and regenerate cyclic as above
|
||||||
|
|
||||||
|
|
||||||
|
// Do a synchronisation of coupled points after creation of any patches.
|
||||||
|
// Note: this does not work with points that are on multiple coupled patches
|
||||||
|
// with transformations (i.e. cyclics).
|
||||||
|
pointSync false;
|
||||||
|
|
||||||
|
// Patches to create.
|
||||||
|
patches
|
||||||
|
(
|
||||||
|
{
|
||||||
|
// Name of new patch
|
||||||
|
name side1;
|
||||||
|
|
||||||
|
// Type of new patch
|
||||||
|
patchInfo
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
}
|
||||||
|
|
||||||
|
// How to construct: either from 'patches' or 'set'
|
||||||
|
constructFrom set;
|
||||||
|
|
||||||
|
// If constructFrom = set : name of faceSet
|
||||||
|
set sideFaces1;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Name of new patch
|
||||||
|
name side2;
|
||||||
|
|
||||||
|
// Type of new patch
|
||||||
|
patchInfo
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
}
|
||||||
|
|
||||||
|
// How to construct: either from 'patches' or 'set'
|
||||||
|
constructFrom set;
|
||||||
|
|
||||||
|
// If constructFrom = set : name of faceSet
|
||||||
|
set sideFaces2;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Name of new patch
|
||||||
|
name side3;
|
||||||
|
|
||||||
|
// Type of new patch
|
||||||
|
patchInfo
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
}
|
||||||
|
|
||||||
|
// How to construct: either from 'patches' or 'set'
|
||||||
|
constructFrom set;
|
||||||
|
|
||||||
|
// If constructFrom = set : name of faceSet
|
||||||
|
set sideFaces3;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Name of new patch
|
||||||
|
name side4;
|
||||||
|
|
||||||
|
// Type of new patch
|
||||||
|
patchInfo
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
}
|
||||||
|
|
||||||
|
// How to construct: either from 'patches' or 'set'
|
||||||
|
constructFrom set;
|
||||||
|
|
||||||
|
// If constructFrom = set : name of faceSet
|
||||||
|
set sideFaces4;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system/wallFilmRegion";
|
||||||
|
object fvSchemes;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
ddtSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
ddt(deltaf*rhof) Euler;
|
||||||
|
ddt(rhof,deltaf) Euler;
|
||||||
|
ddt(deltaf*rhof,Uf) Euler;
|
||||||
|
ddt(deltaf*rhof,hsf) Euler;
|
||||||
|
}
|
||||||
|
|
||||||
|
divSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
div(phi,Uf) Gauss upwind;
|
||||||
|
div(phid,deltaf) Gauss upwind;
|
||||||
|
div(phi,hsf) Gauss upwind;
|
||||||
|
}
|
||||||
|
|
||||||
|
gradSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
grad(pL) Gauss linear;
|
||||||
|
grad(sigmaf) Gauss linear;
|
||||||
|
snGradCorr(deltaf) Gauss linear;
|
||||||
|
snGradCorr(pp) Gauss linear;
|
||||||
|
snGradCorr(pu) Gauss linear;
|
||||||
|
grad(nHat) Gauss linear;
|
||||||
|
|
||||||
|
grad(alpha) Gauss linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
laplacianSchemes
|
||||||
|
{
|
||||||
|
default none;
|
||||||
|
laplacian(sigmaf,deltaf) Gauss linear uncorrected;
|
||||||
|
laplacian(deltaCoeff,deltaf) Gauss linear uncorrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
snGradSchemes
|
||||||
|
{
|
||||||
|
snGrad(p) uncorrected;
|
||||||
|
snGrad(deltaf) uncorrected;
|
||||||
|
}
|
||||||
|
|
||||||
|
fluxRequired
|
||||||
|
{
|
||||||
|
default no;
|
||||||
|
deltaf;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: dev |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system/wallFilmRegion";
|
||||||
|
object fvSolution;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
|
{
|
||||||
|
"(Uf|hsf|deltaf\*rhof)"
|
||||||
|
{
|
||||||
|
solver PBiCG;
|
||||||
|
preconditioner DILU;
|
||||||
|
tolerance 1e-10;
|
||||||
|
relTol 0;
|
||||||
|
}
|
||||||
|
deltaf
|
||||||
|
{
|
||||||
|
solver PBiCG; // PCG;
|
||||||
|
preconditioner DILU; // DIC;
|
||||||
|
tolerance 1e-10;
|
||||||
|
relTol 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PISO
|
||||||
|
{
|
||||||
|
momentumPredictor true;
|
||||||
|
nOuterCorr 1;
|
||||||
|
nCorr 1;
|
||||||
|
nNonOrthCorr 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
relaxationFactors
|
||||||
|
{}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
# Create face set
|
||||||
|
faceSet wallFilmFaces new patchToFace filmWalls
|
||||||
|
faceZoneSet wallFilmFaces new setToFaceZone wallFilmFaces
|
||||||
Reference in New Issue
Block a user