Merge branch 'master' of ssh://noisy/home/noisy3/OpenFOAM/OpenFOAM-dev

This commit is contained in:
andy
2009-12-10 16:03:54 +00:00
43 changed files with 441 additions and 1041 deletions

View File

@ -93,9 +93,9 @@ void readAndRotateFields
} }
void rotateFields(const Time& runTime, const tensor& T) void rotateFields(const argList& args, const Time& runTime, const tensor& T)
{ {
# include "createMesh.H" # include "createNamedMesh.H"
// Read objects in time directory // Read objects in time directory
IOobjectList objects(mesh, runTime.timeName()); IOobjectList objects(mesh, runTime.timeName());
@ -142,6 +142,7 @@ void rotateFields(const Time& runTime, const tensor& T)
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
# include "addRegionOption.H"
argList::addOption("translate", "vector"); argList::addOption("translate", "vector");
argList::addOption("rotate", "(vector vector)"); argList::addOption("rotate", "(vector vector)");
argList::addOption("rollPitchYaw", "(roll pitch yaw)"); argList::addOption("rollPitchYaw", "(roll pitch yaw)");
@ -152,13 +153,25 @@ int main(int argc, char *argv[])
# include "setRootCase.H" # include "setRootCase.H"
# include "createTime.H" # include "createTime.H"
word regionName = polyMesh::defaultRegion;
fileName meshDir;
if (args.optionReadIfPresent("region", regionName))
{
meshDir = regionName/polyMesh::meshSubDir;
}
else
{
meshDir = polyMesh::meshSubDir;
}
pointIOField points pointIOField points
( (
IOobject IOobject
( (
"points", "points",
runTime.findInstance(polyMesh::meshSubDir, "points"), runTime.findInstance(meshDir, "points"),
polyMesh::meshSubDir, meshDir,
runTime, runTime,
IOobject::MUST_READ, IOobject::MUST_READ,
IOobject::NO_WRITE, IOobject::NO_WRITE,
@ -197,7 +210,7 @@ int main(int argc, char *argv[])
if (args.optionFound("rotateFields")) if (args.optionFound("rotateFields"))
{ {
rotateFields(runTime, T); rotateFields(args, runTime, T);
} }
} }
else if (args.optionFound("rollPitchYaw")) else if (args.optionFound("rollPitchYaw"))
@ -220,7 +233,7 @@ int main(int argc, char *argv[])
if (args.optionFound("rotateFields")) if (args.optionFound("rotateFields"))
{ {
rotateFields(runTime, R.R()); rotateFields(args, runTime, R.R());
} }
} }
else if (args.optionFound("yawPitchRoll")) else if (args.optionFound("yawPitchRoll"))
@ -249,7 +262,7 @@ int main(int argc, char *argv[])
if (args.optionFound("rotateFields")) if (args.optionFound("rotateFields"))
{ {
rotateFields(runTime, R.R()); rotateFields(args, runTime, R.R());
} }
} }

View File

@ -9,4 +9,5 @@ EXE_LIBS = \
-ltecio \ -ltecio \
-llagrangian \ -llagrangian \
-lfiniteVolume \ -lfiniteVolume \
-lgenericPatchFields \
-lmeshTools -lmeshTools

View File

@ -909,106 +909,115 @@ int main(int argc, char *argv[])
const polyPatch& pp = patches[patchID]; const polyPatch& pp = patches[patchID];
//INTEGER4 strandID = 1 + i; //INTEGER4 strandID = 1 + i;
Info<< " Writing patch " << patchID << "\t" << pp.name() if (pp.size() > 0)
<< "\tstrand:" << strandID << nl << endl;
const indirectPrimitivePatch ipp
(
IndirectList<face>(pp, identity(pp.size())),
pp.points()
);
writer.writePolygonalZone
(
pp.name(),
strandID++, //strandID,
ipp,
allVarLocation
);
// Write coordinates
writer.writeField(ipp.localPoints().component(0)());
writer.writeField(ipp.localPoints().component(1)());
writer.writeField(ipp.localPoints().component(2)());
// Write all fields
forAll(vsf, i)
{ {
writer.writeField Info<< " Writing patch " << patchID << "\t" << pp.name()
<< "\tstrand:" << strandID << nl << endl;
const indirectPrimitivePatch ipp
( (
writer.getPatchField IndirectList<face>(pp, identity(pp.size())),
pp.points()
);
writer.writePolygonalZone
(
pp.name(),
strandID++, //strandID,
ipp,
allVarLocation
);
// Write coordinates
writer.writeField(ipp.localPoints().component(0)());
writer.writeField(ipp.localPoints().component(1)());
writer.writeField(ipp.localPoints().component(2)());
// Write all fields
forAll(vsf, i)
{
writer.writeField
( (
nearCellValue, writer.getPatchField
vsf[i], (
patchID nearCellValue,
)() vsf[i],
); patchID
} )()
forAll(vvf, i) );
{ }
writer.writeField forAll(vvf, i)
( {
writer.getPatchField writer.writeField
( (
nearCellValue, writer.getPatchField
vvf[i], (
patchID nearCellValue,
)() vvf[i],
); patchID
} )()
forAll(vSpheretf, i) );
{ }
writer.writeField forAll(vSpheretf, i)
( {
writer.getPatchField writer.writeField
( (
nearCellValue, writer.getPatchField
vSpheretf[i], (
patchID nearCellValue,
)() vSpheretf[i],
); patchID
} )()
forAll(vSymmtf, i) );
{ }
writer.writeField forAll(vSymmtf, i)
( {
writer.getPatchField writer.writeField
( (
nearCellValue, writer.getPatchField
vSymmtf[i], (
patchID nearCellValue,
)() vSymmtf[i],
); patchID
} )()
forAll(vtf, i) );
{ }
writer.writeField forAll(vtf, i)
( {
writer.getPatchField writer.writeField
( (
nearCellValue, writer.getPatchField
vtf[i], (
patchID nearCellValue,
)() vtf[i],
); patchID
} )()
);
}
forAll(psf, i) forAll(psf, i)
{ {
writer.writeField writer.writeField
( (
psf[i].boundaryField()[patchID].patchInternalField()() psf[i].boundaryField()[patchID].patchInternalField()()
); );
} }
forAll(pvf, i) forAll(pvf, i)
{ {
writer.writeField writer.writeField
( (
pvf[i].boundaryField()[patchID].patchInternalField()() pvf[i].boundaryField()[patchID].patchInternalField()()
); );
} }
writer.writeConnectivity(ipp); writer.writeConnectivity(ipp);
}
else
{
Info<< " Skipping zero sized patch " << patchID
<< "\t" << pp.name()
<< nl << endl;
}
} }
writer.writeEnd(); writer.writeEnd();

View File

@ -122,7 +122,7 @@ Foam::dictionary::dictionary
const dictionary& dict const dictionary& dict
) )
: :
dictionaryName(parentDict.name() + "::" + dict.name()), dictionaryName(dict.name()),
IDLList<entry>(dict, *this), IDLList<entry>(dict, *this),
parent_(parentDict) parent_(parentDict)
{ {
@ -489,7 +489,7 @@ Foam::dictionary Foam::dictionary::subOrEmptyDict
if (entryPtr == NULL) if (entryPtr == NULL)
{ {
return dictionary(*this, dictionary(keyword)); return dictionary(*this, dictionary(name() + "::" + keyword));
} }
else else
{ {

View File

@ -2207,6 +2207,7 @@ void Foam::polyTopoChange::addMesh
// Extend // Extend
points_.setCapacity(points_.size() + points.size()); points_.setCapacity(points_.size() + points.size());
pointMap_.setCapacity(pointMap_.size() + points.size()); pointMap_.setCapacity(pointMap_.size() + points.size());
reversePointMap_.setCapacity(reversePointMap_.size() + points.size());
pointZone_.resize(pointZone_.size() + points.size()/100); pointZone_.resize(pointZone_.size() + points.size()/100);
// Precalc offset zones // Precalc offset zones
@ -2246,6 +2247,7 @@ void Foam::polyTopoChange::addMesh
label nAllCells = mesh.nCells(); label nAllCells = mesh.nCells();
cellMap_.setCapacity(cellMap_.size() + nAllCells); cellMap_.setCapacity(cellMap_.size() + nAllCells);
reverseCellMap_.setCapacity(reverseCellMap_.size() + nAllCells);
cellFromPoint_.resize(cellFromPoint_.size() + nAllCells/100); cellFromPoint_.resize(cellFromPoint_.size() + nAllCells/100);
cellFromEdge_.resize(cellFromEdge_.size() + nAllCells/100); cellFromEdge_.resize(cellFromEdge_.size() + nAllCells/100);
cellFromFace_.resize(cellFromFace_.size() + nAllCells/100); cellFromFace_.resize(cellFromFace_.size() + nAllCells/100);
@ -2310,6 +2312,7 @@ void Foam::polyTopoChange::addMesh
faceOwner_.setCapacity(faceOwner_.size() + nAllFaces); faceOwner_.setCapacity(faceOwner_.size() + nAllFaces);
faceNeighbour_.setCapacity(faceNeighbour_.size() + nAllFaces); faceNeighbour_.setCapacity(faceNeighbour_.size() + nAllFaces);
faceMap_.setCapacity(faceMap_.size() + nAllFaces); faceMap_.setCapacity(faceMap_.size() + nAllFaces);
reverseFaceMap_.setCapacity(reverseFaceMap_.size() + nAllFaces);
faceFromPoint_.resize(faceFromPoint_.size() + nAllFaces/100); faceFromPoint_.resize(faceFromPoint_.size() + nAllFaces/100);
faceFromEdge_.resize(faceFromEdge_.size() + nAllFaces/100); faceFromEdge_.resize(faceFromEdge_.size() + nAllFaces/100);
flipFaceFlux_.setCapacity(faces_.size() + nAllFaces); flipFaceFlux_.setCapacity(faces_.size() + nAllFaces);
@ -2394,6 +2397,39 @@ void Foam::polyTopoChange::addMesh
} }
void Foam::polyTopoChange::setCapacity
(
const label nPoints,
const label nFaces,
const label nCells
)
{
points_.setCapacity(nPoints);
pointMap_.setCapacity(nPoints);
reversePointMap_.setCapacity(nPoints);
pointZone_.resize(pointZone_.size() + nPoints/100);
faces_.setCapacity(nFaces);
region_.setCapacity(nFaces);
faceOwner_.setCapacity(nFaces);
faceNeighbour_.setCapacity(nFaces);
faceMap_.setCapacity(nFaces);
reverseFaceMap_.setCapacity(nFaces);
faceFromPoint_.resize(faceFromPoint_.size() + nFaces/100);
faceFromEdge_.resize(faceFromEdge_.size() + nFaces/100);
flipFaceFlux_.setCapacity(nFaces);
faceZone_.resize(faceZone_.size() + nFaces/100);
faceZoneFlip_.setCapacity(nFaces);
cellMap_.setCapacity(nCells);
reverseCellMap_.setCapacity(nCells);
cellFromPoint_.resize(cellFromPoint_.size() + nCells/100);
cellFromEdge_.resize(cellFromEdge_.size() + nCells/100);
cellFromFace_.resize(cellFromFace_.size() + nCells/100);
cellZone_.setCapacity(nCells);
}
Foam::label Foam::polyTopoChange::setAction(const topoAction& action) Foam::label Foam::polyTopoChange::setAction(const topoAction& action)
{ {
if (isType<polyAddPoint>(action)) if (isType<polyAddPoint>(action))

View File

@ -472,6 +472,15 @@ public:
const labelList& cellZoneMap const labelList& cellZoneMap
); );
//- Explicitly pre-size the dynamic storage for expected mesh
// size for if construct-without-mesh
void setCapacity
(
const label nPoints,
const label nFaces,
const label nCells
);
//- Move all points. Incompatible with other topology changes. //- Move all points. Incompatible with other topology changes.
void movePoints(const pointField& newPoints); void movePoints(const pointField& newPoints);

View File

@ -176,7 +176,7 @@ void surfaceSlipDisplacementPointPatchVectorField::calcProjection
// Knock out any wedge component // Knock out any wedge component
scalarField offset(start.size(), 0.0); scalarField offset(start.size(), 0.0);
if (wedgePlane_ >= 0 && wedgePlane_ <= vector::nComponents) if (wedgePlane_ >= 0 && wedgePlane_ < vector::nComponents)
{ {
forAll(offset, i) forAll(offset, i)
{ {
@ -262,7 +262,7 @@ void surfaceSlipDisplacementPointPatchVectorField::calcProjection
if (interPt.hit()) if (interPt.hit())
{ {
if (wedgePlane_ >= 0 && wedgePlane_ <= vector::nComponents) if (wedgePlane_ >= 0 && wedgePlane_ < vector::nComponents)
{ {
interPt.rawPoint()[wedgePlane_] += offset[i]; interPt.rawPoint()[wedgePlane_] += offset[i];
} }

View File

@ -218,6 +218,69 @@ bool Foam::triSurfaceMesh::isSurfaceClosed() const
} }
// Gets all intersections after initial one. Adds smallVec and starts tracking
// from there.
void Foam::triSurfaceMesh::getNextIntersections
(
const indexedOctree<treeDataTriSurface>& octree,
const point& start,
const point& end,
const vector& smallVec,
DynamicList<pointIndexHit, 1, 1>& hits
)
{
const vector dirVec(end-start);
const scalar magSqrDirVec(magSqr(dirVec));
// Initial perturbation amount
vector perturbVec(smallVec);
while (true)
{
// Start tracking from last hit.
point pt = hits[hits.size()-1].hitPoint() + perturbVec;
if (((pt-start)&dirVec) > magSqrDirVec)
{
return;
}
// See if any intersection between pt and end
pointIndexHit inter = octree.findLine(pt, end);
if (!inter.hit())
{
return;
}
// Check if already found this intersection
bool duplicateHit = false;
forAllReverse(hits, i)
{
if (hits[i].index() == inter.index())
{
duplicateHit = true;
break;
}
}
if (duplicateHit)
{
// Hit same triangle again. Increase perturbVec and try again.
perturbVec *= 2;
}
else
{
// Proper hit
hits.append(inter);
// Restore perturbVec
perturbVec = smallVec;
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::triSurfaceMesh::triSurfaceMesh(const IOobject& io, const triSurface& s) Foam::triSurfaceMesh::triSurfaceMesh(const IOobject& io, const triSurface& s)
@ -620,27 +683,14 @@ void Foam::triSurfaceMesh::findLineAll
hits.clear(); hits.clear();
hits.append(inter); hits.append(inter);
point pt = inter.hitPoint() + smallVec[pointI]; getNextIntersections
(
while (((pt-start[pointI])&dirVec[pointI]) <= magSqrDirVec[pointI]) octree,
{ start[pointI],
// See if any intersection between pt and end end[pointI],
pointIndexHit inter = octree.findLine(pt, end[pointI]); smallVec[pointI],
hits
// Check for not hit or hit same triangle as before (can happen );
// if vector along surface of triangle)
if
(
!inter.hit()
|| (inter.index() == hits.last().index())
)
{
break;
}
hits.append(inter);
pt = inter.hitPoint() + smallVec[pointI];
}
info[pointI].transfer(hits); info[pointI].transfer(hits);
} }

View File

@ -111,6 +111,17 @@ private:
// addressing. // addressing.
bool isSurfaceClosed() const; bool isSurfaceClosed() const;
//- Steps to next intersection. Adds smallVec and starts tracking
// from there.
static void getNextIntersections
(
const indexedOctree<treeDataTriSurface>& octree,
const point& start,
const point& end,
const vector& smallVec,
DynamicList<pointIndexHit, 1, 1>& hits
);
//- Disallow default bitwise copy construct //- Disallow default bitwise copy construct
triSurfaceMesh(const triSurfaceMesh&); triSurfaceMesh(const triSurfaceMesh&);

View File

@ -20,31 +20,9 @@ internalField uniform 80;
boundaryField boundaryField
{ {
minX ".*"
{ {
type zeroGradient; type calculated;
}
maxX
{
type zeroGradient;
}
minY
{
type zeroGradient;
}
maxY
{
type zeroGradient;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
} }
} }

View File

@ -20,32 +20,9 @@ internalField uniform 300;
boundaryField boundaryField
{ {
minX ".*"
{ {
type fixedValue; type calculated;
value uniform 300;
}
maxX
{
type zeroGradient;
}
minY
{
type zeroGradient;
}
maxY
{
type zeroGradient;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
} }
} }

View File

@ -20,37 +20,9 @@ internalField uniform (0.01 0 0);
boundaryField boundaryField
{ {
minX ".*"
{ {
type fixedValue; type calculated;
value uniform (0.01 0 0);
}
maxX
{
type inletOutlet;
inletValue uniform (0 0 0);
}
minY
{
type fixedValue;
value uniform (0 0 0);
}
maxY
{
type fixedValue;
value uniform (0 0 0);
}
minZ
{
type fixedValue;
value uniform (0 0 0);
}
maxZ
{
type fixedValue;
value uniform (0 0 0);
} }
} }

View File

@ -20,31 +20,9 @@ internalField uniform 450;
boundaryField boundaryField
{ {
minX ".*"
{ {
type zeroGradient; type calculated;
}
maxX
{
type zeroGradient;
}
minY
{
type zeroGradient;
}
maxY
{
type zeroGradient;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
} }
} }

View File

@ -21,46 +21,9 @@ internalField uniform 0.01;
boundaryField boundaryField
{ {
minY ".*"
{ {
type epsilonWallFunction; type calculated;
value uniform 0.01;
}
maxY
{
type epsilonWallFunction;
value uniform 0.01;
}
minX
{
type fixedValue;
value uniform 0.01;
}
maxX
{
type zeroGradient;
}
minZ
{
type epsilonWallFunction;
value uniform 0.01;
}
maxZ
{
type epsilonWallFunction;
value uniform 0.01;
}
topAir_to_leftSolid
{
type zeroGradient;
}
topAir_to_heater
{
type zeroGradient;
}
topAir_to_rightSolid
{
type zeroGradient;
} }
} }

View File

@ -21,46 +21,9 @@ internalField uniform 0.1;
boundaryField boundaryField
{ {
minY ".*"
{ {
type kqRWallFunction; type calculated;
value uniform 0.1;
}
maxY
{
type kqRWallFunction;
value uniform 0.1;
}
minX
{
type fixedValue;
value uniform 0.1;
}
maxX
{
type zeroGradient;
}
minZ
{
type kqRWallFunction;
value uniform 0.1;
}
maxZ
{
type kqRWallFunction;
value uniform 0.1;
}
topAir_to_leftSolid
{
type zeroGradient;
}
topAir_to_heater
{
type zeroGradient;
}
topAir_to_rightSolid
{
type zeroGradient;
} }
} }

View File

@ -20,36 +20,9 @@ internalField uniform 1e5;
boundaryField boundaryField
{ {
minX ".*"
{ {
type buoyantPressure; type calculated;
value 1e5;
}
maxX
{
type buoyantPressure;
value 1e5;
}
minY
{
type buoyantPressure;
value 1e5;
}
maxY
{
type buoyantPressure;
value 1e5;
}
minZ
{
type buoyantPressure;
value 1e5;
}
maxZ
{
type buoyantPressure;
value 1e5;
} }
} }

View File

@ -20,31 +20,9 @@ internalField uniform 8000;
boundaryField boundaryField
{ {
minX ".*"
{ {
type zeroGradient; type calculated;
}
maxX
{
type zeroGradient;
}
minY
{
type zeroGradient;
}
maxY
{
type zeroGradient;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
} }
} }

View File

@ -13,11 +13,6 @@ rm -f constant/polyMesh/sets/*_old
runApplication setsToZones -noFlipMap runApplication setsToZones -noFlipMap
runApplication splitMeshRegions -cellZones runApplication splitMeshRegions -cellZones
for i in bottomAir topAir heater leftSolid rightSolid
do
changeDictionary -region $i >& log.changeDictionary.$i
done
# remove fluid fields from solid regions (important for post-processing) # remove fluid fields from solid regions (important for post-processing)
for i in heater leftSolid rightSolid for i in heater leftSolid rightSolid
do do
@ -27,7 +22,12 @@ done
# remove solid fields from fluid regions (important for post-processing) # remove solid fields from fluid regions (important for post-processing)
for i in bottomAir topAir for i in bottomAir topAir
do do
rm -f 0*/$i/{cp,K} rm -f 0*/$i/{cp,K,rho}
done
for i in bottomAir topAir heater leftSolid rightSolid
do
changeDictionary -region $i >& log.changeDictionary.$i
done done

View File

@ -0,0 +1,2 @@
The 0/ field files contain nonsense patchFields. All interesting
work is done using the changeDictionaryDicts.

View File

@ -14,9 +14,9 @@ FoamFile
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RASModel kEpsilon; RASModel laminar;
turbulence off; turbulence on;
printCoeffs on; printCoeffs on;

View File

@ -10,13 +10,11 @@ FoamFile
version 2.0; version 2.0;
format ascii; format ascii;
class uniformDimensionedVectorField; class uniformDimensionedVectorField;
location "constant";
object g; object g;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0]; dimensions [0 1 -2 0 0 0 0];
value ( 0 -9.81 0 ); value (0 -9.81 0);
// ************************************************************************* // // ************************************************************************* //

View File

@ -14,9 +14,9 @@ FoamFile
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RASModel kEpsilon; RASModel laminar;
turbulence off; turbulence on;
printCoeffs on; printCoeffs on;

View File

@ -10,13 +10,11 @@ FoamFile
version 2.0; version 2.0;
format ascii; format ascii;
class uniformDimensionedVectorField; class uniformDimensionedVectorField;
location "constant";
object g; object g;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0]; dimensions [0 1 -2 0 0 0 0];
value ( 0 -9.81 0 ); value (0 -9.81 0);
// ************************************************************************* // // ************************************************************************* //

View File

@ -18,6 +18,10 @@ dictionaryReplacement
{ {
boundary boundary
{ {
".*"
{
type wall;
}
bottomAir_to_leftSolid bottomAir_to_leftSolid
{ {
offset ( 0 0 0 ); offset ( 0 0 0 );
@ -43,32 +47,11 @@ dictionaryReplacement
U U
{ {
internalField uniform (0 0 0); internalField uniform (0.01 0 0);
boundaryField boundaryField
{ {
minX ".*"
{
type fixedValue;
value uniform (0 0 0);
}
maxX
{
type fixedValue;
value uniform (0 0 0);
}
bottomAir_to_leftSolid
{
type fixedValue;
value uniform (0 0 0);
}
bottomAir_to_heater
{
type fixedValue;
value uniform (0 0 0);
}
bottomAir_to_rightSolid
{ {
type fixedValue; type fixedValue;
value uniform (0 0 0); value uniform (0 0 0);
@ -78,28 +61,16 @@ dictionaryReplacement
T T
{ {
internalField uniform 300;
boundaryField boundaryField
{ {
minX ".*"
{ {
type zeroGradient; type zeroGradient;
} }
bottomAir_to_leftSolid
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
K K;
value uniform 300;
} "bottomAir_to_.*"
bottomAir_to_heater
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
K K;
value uniform 300;
}
bottomAir_to_rightSolid
{ {
type compressible::turbulentTemperatureCoupledBaffle; type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T; neighbourFieldName T;
@ -111,58 +82,13 @@ dictionaryReplacement
epsilon epsilon
{ {
// Set the value on all bc to non-zero. Not used in simulation
// since zeroGradient; only used in initialisation.
internalField uniform 0.01; internalField uniform 0.01;
boundaryField boundaryField
{ {
minX ".*"
{ {
type zeroGradient; type compressible::epsilonWallFunction;
value uniform 0.01;
}
maxX
{
type zeroGradient;
value uniform 0.01;
}
minY
{
type zeroGradient;
value uniform 0.01;
}
maxY
{
type zeroGradient;
value uniform 0.01;
}
minZ
{
type zeroGradient;
value uniform 0.01;
}
maxZ
{
type zeroGradient;
value uniform 0.01;
}
bottomAir_to_leftSolid
{
type zeroGradient;
value uniform 0.01;
}
bottomAir_to_heater
{
type zeroGradient;
value uniform 0.01;
}
bottomAir_to_rightSolid
{
type zeroGradient;
value uniform 0.01; value uniform 0.01;
} }
} }
@ -171,54 +97,12 @@ dictionaryReplacement
k k
{ {
internalField uniform 0.1; internalField uniform 0.1;
boundaryField boundaryField
{ {
minX ".*"
{ {
type zeroGradient; type compressible::kqRWallFunction;
value uniform 0.1;
}
maxX
{
type zeroGradient;
value uniform 0.1;
}
minY
{
type zeroGradient;
value uniform 0.1;
}
maxY
{
type zeroGradient;
value uniform 0.1;
}
minZ
{
type zeroGradient;
value uniform 0.1;
}
maxZ
{
type zeroGradient;
value uniform 0.1;
}
bottomAir_to_leftSolid
{
type zeroGradient;
value uniform 0.1;
}
bottomAir_to_heater
{
type zeroGradient;
value uniform 0.1;
}
bottomAir_to_rightSolid
{
type zeroGradient;
value uniform 0.1; value uniform 0.1;
} }
} }
@ -226,53 +110,17 @@ dictionaryReplacement
p p
{ {
internalField uniform 1E5; internalField uniform 100000;
boundaryField boundaryField
{ {
minX ".*"
{
type buoyantPressure;
value 1e5;
}
maxX
{
type buoyantPressure;
value 1e5;
}
minY
{
type buoyantPressure;
value 1e5;
}
minZ
{
type buoyantPressure;
value 1e5;
}
maxZ
{
type buoyantPressure;
value 1e5;
}
bottomAir_to_leftSolid
{
type buoyantPressure;
value 1e5;
}
bottomAir_to_heater
{
type buoyantPressure;
value 1e5;
}
bottomAir_to_rightSolid
{ {
type buoyantPressure; type buoyantPressure;
value 1e5; value 1e5;
} }
} }
} }
} }
// ************************************************************************* // // ************************************************************************* //

View File

@ -18,6 +18,10 @@ dictionaryReplacement
{ {
boundary boundary
{ {
".*"
{
type patch;
}
heater_to_bottomAir heater_to_bottomAir
{ {
offset ( 0 0 0 ); offset ( 0 0 0 );
@ -54,50 +58,23 @@ dictionaryReplacement
boundaryField boundaryField
{ {
".*"
{
type zeroGradient;
value uniform 300;
}
"heater_to_.*"
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
K K;
value uniform 300;
}
minY minY
{ {
type fixedValue; type fixedValue;
value uniform 500; value uniform 500;
} }
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
}
heater_to_bottomAir
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
K K;
value uniform 300;
}
heater_to_leftSolid
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
K K;
value uniform 300;
}
heater_to_rightSolid
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
K K;
value uniform 300;
}
heater_to_topAir
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
K K;
value uniform 300;
}
} }
} }
@ -107,33 +84,9 @@ dictionaryReplacement
boundaryField boundaryField
{ {
minY ".*"
{ {
type zeroGradient; type calculated;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
}
heater_to_bottomAir
{
type zeroGradient;
}
heater_to_leftSolid
{
type zeroGradient;
}
heater_to_rightSolid
{
type zeroGradient;
}
heater_to_topAir
{
type zeroGradient;
} }
} }
} }
@ -144,31 +97,7 @@ dictionaryReplacement
boundaryField boundaryField
{ {
minY ".*"
{
type zeroGradient;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
}
heater_to_bottomAir
{
type zeroGradient;
}
heater_to_leftSolid
{
type zeroGradient;
}
heater_to_rightSolid
{
type zeroGradient;
}
heater_to_topAir
{ {
type zeroGradient; type zeroGradient;
} }
@ -181,31 +110,7 @@ dictionaryReplacement
boundaryField boundaryField
{ {
minY ".*"
{
type zeroGradient;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
}
heater_to_bottomAir
{
type zeroGradient;
}
heater_to_leftSolid
{
type zeroGradient;
}
heater_to_rightSolid
{
type zeroGradient;
}
heater_to_topAir
{ {
type zeroGradient; type zeroGradient;
} }

View File

@ -18,6 +18,10 @@ dictionaryReplacement
{ {
boundary boundary
{ {
".*"
{
type patch;
}
leftSolid_to_bottomAir leftSolid_to_bottomAir
{ {
offset ( 0 0 0 ); offset ( 0 0 0 );
@ -47,34 +51,12 @@ dictionaryReplacement
boundaryField boundaryField
{ {
minX ".*"
{ {
type zeroGradient; type zeroGradient;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
}
leftSolid_to_bottomAir
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
K K;
value uniform 300;
}
leftSolid_to_heater
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
K K;
value uniform 300; value uniform 300;
} }
leftSolid_to_topAir "leftSolid_to_.*"
{ {
type compressible::turbulentTemperatureCoupledBaffle; type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T; neighbourFieldName T;
@ -90,29 +72,9 @@ dictionaryReplacement
boundaryField boundaryField
{ {
minX ".*"
{ {
type zeroGradient; type calculated;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
}
leftSolid_to_bottomAir
{
type zeroGradient;
}
leftSolid_to_heater
{
type zeroGradient;
}
leftSolid_to_topAir
{
type zeroGradient;
} }
} }
} }
@ -123,27 +85,7 @@ dictionaryReplacement
boundaryField boundaryField
{ {
minX ".*"
{
type zeroGradient;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
}
leftSolid_to_bottomAir
{
type zeroGradient;
}
leftSolid_to_heater
{
type zeroGradient;
}
leftSolid_to_topAir
{ {
type zeroGradient; type zeroGradient;
} }
@ -156,27 +98,7 @@ dictionaryReplacement
boundaryField boundaryField
{ {
minX ".*"
{
type zeroGradient;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
}
leftSolid_to_bottomAir
{
type zeroGradient;
}
leftSolid_to_heater
{
type zeroGradient;
}
leftSolid_to_topAir
{ {
type zeroGradient; type zeroGradient;
} }

View File

@ -18,6 +18,10 @@ dictionaryReplacement
{ {
boundary boundary
{ {
".*"
{
type patch;
}
rightSolid_to_heater rightSolid_to_heater
{ {
offset ( 0 0 0 ); offset ( 0 0 0 );
@ -47,33 +51,12 @@ dictionaryReplacement
boundaryField boundaryField
{ {
maxX ".*"
{ {
type zeroGradient; type zeroGradient;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
}
rightSolid_to_heater
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
K K;
value uniform 300; value uniform 300;
} }
rightSolid_to_bottomAir "rightSolid_to_.*"
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
K K;
value uniform 300;
}
rightSolid_to_topAir
{ {
type compressible::turbulentTemperatureCoupledBaffle; type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T; neighbourFieldName T;
@ -89,29 +72,9 @@ dictionaryReplacement
boundaryField boundaryField
{ {
maxX ".*"
{ {
type zeroGradient; type calculated;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
}
rightSolid_to_bottomAir
{
type zeroGradient;
}
rightSolid_to_heater
{
type zeroGradient;
}
rightSolid_to_topAir
{
type zeroGradient;
} }
} }
} }
@ -122,27 +85,7 @@ dictionaryReplacement
boundaryField boundaryField
{ {
maxX ".*"
{
type zeroGradient;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
}
rightSolid_to_bottomAir
{
type zeroGradient;
}
rightSolid_to_heater
{
type zeroGradient;
}
rightSolid_to_topAir
{ {
type zeroGradient; type zeroGradient;
} }
@ -155,27 +98,7 @@ dictionaryReplacement
boundaryField boundaryField
{ {
maxX ".*"
{
type zeroGradient;
}
minZ
{
type zeroGradient;
}
maxZ
{
type zeroGradient;
}
rightSolid_to_bottomAir
{
type zeroGradient;
}
rightSolid_to_heater
{
type zeroGradient;
}
rightSolid_to_topAir
{ {
type zeroGradient; type zeroGradient;
} }

View File

@ -18,6 +18,18 @@ dictionaryReplacement
{ {
boundary boundary
{ {
".*"
{
type wall;
}
minX
{
type patch;
}
maxX
{
type patch;
}
topAir_to_leftSolid topAir_to_leftSolid
{ {
offset ( 0 0 0 ); offset ( 0 0 0 );
@ -43,64 +55,53 @@ dictionaryReplacement
U U
{ {
internalField uniform ( 0.01 0 0 ); internalField uniform (0.01 0 0);
boundaryField boundaryField
{ {
".*"
{
type fixedValue;
value uniform (0 0 0);
}
minX minX
{ {
type fixedValue; type fixedValue;
value uniform (0.01 0 0); value uniform ( 0.01 0 0 );
} }
maxX maxX
{ {
type inletOutlet; type inletOutlet;
inletValue uniform (0 0 0); inletValue uniform ( 0 0 0 );
} value uniform ( 0 0 0 );
topAir_to_leftSolid
{
type fixedValue;
value uniform (0 0 0);
}
topAir_to_heater
{
type fixedValue;
value uniform (0 0 0);
}
topAir_to_rightSolid
{
type fixedValue;
value uniform (0 0 0);
} }
} }
} }
T T
{ {
internalField uniform 300;
boundaryField boundaryField
{ {
".*"
{
type zeroGradient;
}
minX minX
{ {
type fixedValue; type fixedValue;
value uniform 300; value uniform 300;
} }
topAir_to_leftSolid maxX
{ {
type compressible::turbulentTemperatureCoupledBaffle; type inletOutlet;
neighbourFieldName T; inletValue uniform 300;
K K;
value uniform 300; value uniform 300;
}
} "topAir_to_.*"
topAir_to_heater
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
K K;
value uniform 300;
}
topAir_to_rightSolid
{ {
type compressible::turbulentTemperatureCoupledBaffle; type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T; neighbourFieldName T;
@ -112,10 +113,16 @@ dictionaryReplacement
epsilon epsilon
{ {
// Set the value on all bc to non-zero. Not used in simulation internalField uniform 0.01;
// since zeroGradient; only used in initialisation.
boundaryField boundaryField
{ {
".*"
{
type compressible::epsilonWallFunction;
value uniform 0.01;
}
minX minX
{ {
type fixedValue; type fixedValue;
@ -123,44 +130,8 @@ dictionaryReplacement
} }
maxX maxX
{ {
type zeroGradient; type inletOutlet;
value uniform 0.01; inletValue uniform 0.01;
}
minY
{
type zeroGradient;
value uniform 0.01;
}
maxY
{
type zeroGradient;
value uniform 0.01;
}
minZ
{
type zeroGradient;
value uniform 0.01;
}
maxZ
{
type zeroGradient;
value uniform 0.01;
}
topAir_to_leftSolid
{
type zeroGradient;
value uniform 0.01;
}
topAir_to_heater
{
type zeroGradient;
value uniform 0.01;
}
topAir_to_rightSolid
{
type zeroGradient;
value uniform 0.01; value uniform 0.01;
} }
} }
@ -169,55 +140,24 @@ dictionaryReplacement
k k
{ {
internalField uniform 0.1; internalField uniform 0.1;
boundaryField boundaryField
{ {
".*"
{
type compressible::kqRWallFunction;
value uniform 0.1;
}
minX minX
{ {
type fixedValue; type fixedValue;
value uniform 0.1; value uniform 0.1;
} }
maxX maxX
{ {
type zeroGradient; type inletOutlet;
value uniform 0.1; inletValue uniform 0.1;
}
minY
{
type zeroGradient;
value uniform 0.1;
}
maxY
{
type zeroGradient;
value uniform 0.1;
}
minZ
{
type zeroGradient;
value uniform 0.1;
}
maxZ
{
type zeroGradient;
value uniform 0.1;
}
topAir_to_leftSolid
{
type zeroGradient;
value uniform 0.1;
}
topAir_to_heater
{
type zeroGradient;
value uniform 0.1;
}
topAir_to_rightSolid
{
type zeroGradient;
value uniform 0.1; value uniform 0.1;
} }
} }
@ -225,59 +165,23 @@ dictionaryReplacement
p p
{ {
internalField uniform 1E5; internalField uniform 100000;
boundaryField boundaryField
{ {
minX ".*"
{ {
type buoyantPressure; type buoyantPressure;
value 1e5; value 1e5;
} }
maxX maxX
{ {
type waveTransmissive; type waveTransmissive;
//field p; gamma 1.4;
phi phi; fieldInf 100000;
rho rho; lInf 0.4;
psi psi; value uniform 100000;
gamma 1.4; // cp/cv
fieldInf 1e5;
lInf 0.40; // double length of domain
value uniform 1e5;
}
minY
{
type buoyantPressure;
value 1e5;
}
minZ
{
type buoyantPressure;
value 1e5;
}
maxZ
{
type buoyantPressure;
value 1e5;
}
topAir_to_leftSolid
{
type buoyantPressure;
value 1e5;
}
topAir_to_heater
{
type buoyantPressure;
value 1e5;
}
topAir_to_rightSolid
{
type buoyantPressure;
value 1e5;
} }
} }
} }

View File

@ -27,33 +27,7 @@ boundaryField
} }
farFieldMoving farFieldMoving
{ {
//type slip; type slip;
type surfaceSlipDisplacement;
geometry
{
top
{
type searchablePlane;
planeType pointAndNormal;
basePoint (0 0.0025 0);
normalVector (0 1 0);
}
};
// Find projection with surface:
// fixedNormal : intersections along prespecified direction
// pointNormal : intersections along current pointNormal of patch
// nearest : nearest point on surface
followMode fixedNormal;
// if fixedNormal : normal
projectDirection (0 1 0);
//- -1 or component to knock out before doing projection
//wedgePlane -1;
//- Points that should remain fixed
//frozenPointsZone fixedPointsZone;
} }
fixedWall fixedWall
{ {
@ -71,28 +45,7 @@ boundaryField
} }
farField farField
{ {
//type slip; type slip;
type surfaceSlipDisplacement;
geometry
{
top
{
type searchablePlane;
planeType pointAndNormal;
basePoint (0 0.0025 0);
normalVector (0 1 0);
}
};
followMode fixedNormal;
projectDirection (0 1 0);
//- -1 or component to knock out before doing projection
wedgePlane -1;
//- Points that should remain fixed
//frozenPointsZone fixedPointsZone;
} }
back back
{ {

View File

@ -17,9 +17,6 @@ FoamFile
application pimpleDyMFoam; application pimpleDyMFoam;
// For surfaceSlip boundary conditions
libs ("libfvMotionSolvers.so");
startFrom startTime; startFrom startTime;
startTime 0; startTime 0;

View File

@ -0,0 +1,3 @@
TECIOFLAGS =-DMAKEARCHIVE -DLINUX -DLINUX64 -DUSEENUM -DTHREED -U_WIN32
TECIOINC =
TECIOLIBS =

View File

@ -0,0 +1,3 @@
TECIOFLAGS =-DMAKEARCHIVE -DLINUX -DLINUX64 -DUSEENUM -DTHREED -U_WIN32
TECIOINC =
TECIOLIBS =

View File

@ -0,0 +1,3 @@
TECIOFLAGS =-DMAKEARCHIVE -DLINUX -DLINUX64 -DUSEENUM -DTHREED -U_WIN32
TECIOINC =
TECIOLIBS =

View File

@ -0,0 +1,3 @@
TECIOFLAGS =-DMAKEARCHIVE -DLINUX -DLINUX64 -DUSEENUM -DTHREED -U_WIN32
TECIOINC =
TECIOLIBS =

View File

@ -0,0 +1,3 @@
TECIOFLAGS =-DMAKEARCHIVE -DLINUX -DLINUX64 -DUSEENUM -DTHREED -U_WIN32
TECIOINC =
TECIOLIBS =

View File

@ -0,0 +1,3 @@
TECIOFLAGS =-DMAKEARCHIVE -DLINUX -DLINUX64 -DUSEENUM -DTHREED -U_WIN32
TECIOINC =
TECIOLIBS =

View File

@ -0,0 +1,3 @@
TECIOFLAGS =-DMAKEARCHIVE -DLINUX -DUSEENUM -DTHREED -U_WIN32
TECIOINC =
TECIOLIBS =

View File

@ -0,0 +1,3 @@
TECIOFLAGS =-DMAKEARCHIVE -DLINUX -DUSEENUM -DTHREED -U_WIN32
TECIOINC =
TECIOLIBS =

View File

@ -0,0 +1,3 @@
TECIOFLAGS =-DMAKEARCHIVE -DLINUX -DUSEENUM -DTHREED -U_WIN32
TECIOINC =
TECIOLIBS =

View File

@ -0,0 +1,3 @@
TECIOFLAGS =-DMAKEARCHIVE -DLINUX -DUSEENUM -DTHREED -U_WIN32
TECIOINC =
TECIOLIBS =

View File

@ -0,0 +1,3 @@
TECIOFLAGS =-DMAKEARCHIVE -DLINUX -DLINUXI64 -DUSEENUM -DTHREED -U_WIN32
TECIOINC =
TECIOLIBS =

View File

@ -0,0 +1,3 @@
TECIOFLAGS =-DMAKEARCHIVE -DLINUX -DLINUXI64 -DUSEENUM -DTHREED -U_WIN32
TECIOINC =
TECIOLIBS =

View File

@ -0,0 +1,3 @@
TECIOFLAGS =-DMAKEARCHIVE -DLINUX -DUSEENUM -DTHREED -U_WIN32
TECIOINC =
TECIOLIBS =