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
IOobjectList objects(mesh, runTime.timeName());
@ -142,6 +142,7 @@ void rotateFields(const Time& runTime, const tensor& T)
int main(int argc, char *argv[])
{
# include "addRegionOption.H"
argList::addOption("translate", "vector");
argList::addOption("rotate", "(vector vector)");
argList::addOption("rollPitchYaw", "(roll pitch yaw)");
@ -152,13 +153,25 @@ int main(int argc, char *argv[])
# include "setRootCase.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
(
IOobject
(
"points",
runTime.findInstance(polyMesh::meshSubDir, "points"),
polyMesh::meshSubDir,
runTime.findInstance(meshDir, "points"),
meshDir,
runTime,
IOobject::MUST_READ,
IOobject::NO_WRITE,
@ -197,7 +210,7 @@ int main(int argc, char *argv[])
if (args.optionFound("rotateFields"))
{
rotateFields(runTime, T);
rotateFields(args, runTime, T);
}
}
else if (args.optionFound("rollPitchYaw"))
@ -220,7 +233,7 @@ int main(int argc, char *argv[])
if (args.optionFound("rotateFields"))
{
rotateFields(runTime, R.R());
rotateFields(args, runTime, R.R());
}
}
else if (args.optionFound("yawPitchRoll"))
@ -249,7 +262,7 @@ int main(int argc, char *argv[])
if (args.optionFound("rotateFields"))
{
rotateFields(runTime, R.R());
rotateFields(args, runTime, R.R());
}
}

View File

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

View File

@ -909,6 +909,8 @@ int main(int argc, char *argv[])
const polyPatch& pp = patches[patchID];
//INTEGER4 strandID = 1 + i;
if (pp.size() > 0)
{
Info<< " Writing patch " << patchID << "\t" << pp.name()
<< "\tstrand:" << strandID << nl << endl;
@ -1010,6 +1012,13 @@ int main(int argc, char *argv[])
writer.writeConnectivity(ipp);
}
else
{
Info<< " Skipping zero sized patch " << patchID
<< "\t" << pp.name()
<< nl << endl;
}
}
writer.writeEnd();

View File

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

View File

@ -2207,6 +2207,7 @@ void Foam::polyTopoChange::addMesh
// Extend
points_.setCapacity(points_.size() + points.size());
pointMap_.setCapacity(pointMap_.size() + points.size());
reversePointMap_.setCapacity(reversePointMap_.size() + points.size());
pointZone_.resize(pointZone_.size() + points.size()/100);
// Precalc offset zones
@ -2246,6 +2247,7 @@ void Foam::polyTopoChange::addMesh
label nAllCells = mesh.nCells();
cellMap_.setCapacity(cellMap_.size() + nAllCells);
reverseCellMap_.setCapacity(reverseCellMap_.size() + nAllCells);
cellFromPoint_.resize(cellFromPoint_.size() + nAllCells/100);
cellFromEdge_.resize(cellFromEdge_.size() + nAllCells/100);
cellFromFace_.resize(cellFromFace_.size() + nAllCells/100);
@ -2310,6 +2312,7 @@ void Foam::polyTopoChange::addMesh
faceOwner_.setCapacity(faceOwner_.size() + nAllFaces);
faceNeighbour_.setCapacity(faceNeighbour_.size() + nAllFaces);
faceMap_.setCapacity(faceMap_.size() + nAllFaces);
reverseFaceMap_.setCapacity(reverseFaceMap_.size() + nAllFaces);
faceFromPoint_.resize(faceFromPoint_.size() + nAllFaces/100);
faceFromEdge_.resize(faceFromEdge_.size() + nAllFaces/100);
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)
{
if (isType<polyAddPoint>(action))

View File

@ -472,6 +472,15 @@ public:
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.
void movePoints(const pointField& newPoints);

View File

@ -176,7 +176,7 @@ void surfaceSlipDisplacementPointPatchVectorField::calcProjection
// Knock out any wedge component
scalarField offset(start.size(), 0.0);
if (wedgePlane_ >= 0 && wedgePlane_ <= vector::nComponents)
if (wedgePlane_ >= 0 && wedgePlane_ < vector::nComponents)
{
forAll(offset, i)
{
@ -262,7 +262,7 @@ void surfaceSlipDisplacementPointPatchVectorField::calcProjection
if (interPt.hit())
{
if (wedgePlane_ >= 0 && wedgePlane_ <= vector::nComponents)
if (wedgePlane_ >= 0 && wedgePlane_ < vector::nComponents)
{
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 * * * * * * * * * * * * * * //
Foam::triSurfaceMesh::triSurfaceMesh(const IOobject& io, const triSurface& s)
@ -620,27 +683,14 @@ void Foam::triSurfaceMesh::findLineAll
hits.clear();
hits.append(inter);
point pt = inter.hitPoint() + smallVec[pointI];
while (((pt-start[pointI])&dirVec[pointI]) <= magSqrDirVec[pointI])
{
// See if any intersection between pt and end
pointIndexHit inter = octree.findLine(pt, end[pointI]);
// Check for not hit or hit same triangle as before (can happen
// if vector along surface of triangle)
if
getNextIntersections
(
!inter.hit()
|| (inter.index() == hits.last().index())
)
{
break;
}
hits.append(inter);
pt = inter.hitPoint() + smallVec[pointI];
}
octree,
start[pointI],
end[pointI],
smallVec[pointI],
hits
);
info[pointI].transfer(hits);
}

View File

@ -111,6 +111,17 @@ private:
// addressing.
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
triSurfaceMesh(const triSurfaceMesh&);

View File

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

View File

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

View File

@ -20,37 +20,9 @@ internalField uniform (0.01 0 0);
boundaryField
{
minX
".*"
{
type fixedValue;
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);
type calculated;
}
}

View File

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

View File

@ -21,46 +21,9 @@ internalField uniform 0.01;
boundaryField
{
minY
".*"
{
type epsilonWallFunction;
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;
type calculated;
}
}

View File

@ -21,46 +21,9 @@ internalField uniform 0.1;
boundaryField
{
minY
".*"
{
type kqRWallFunction;
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;
type calculated;
}
}

View File

@ -20,36 +20,9 @@ internalField uniform 1e5;
boundaryField
{
minX
".*"
{
type buoyantPressure;
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;
type calculated;
}
}

View File

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

View File

@ -13,11 +13,6 @@ rm -f constant/polyMesh/sets/*_old
runApplication setsToZones -noFlipMap
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)
for i in heater leftSolid rightSolid
do
@ -27,7 +22,12 @@ done
# remove solid fields from fluid regions (important for post-processing)
for i in bottomAir topAir
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

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;

View File

@ -10,13 +10,11 @@ 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 );
value (0 -9.81 0);
// ************************************************************************* //

View File

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

View File

@ -10,13 +10,11 @@ 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 );
value (0 -9.81 0);
// ************************************************************************* //

View File

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

View File

@ -18,6 +18,10 @@ dictionaryReplacement
{
boundary
{
".*"
{
type patch;
}
heater_to_bottomAir
{
offset ( 0 0 0 );
@ -54,50 +58,23 @@ dictionaryReplacement
boundaryField
{
".*"
{
type zeroGradient;
value uniform 300;
}
"heater_to_.*"
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
K K;
value uniform 300;
}
minY
{
type fixedValue;
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
{
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 calculated;
}
}
}
@ -144,31 +97,7 @@ dictionaryReplacement
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;
}
@ -181,31 +110,7 @@ dictionaryReplacement
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;
}

View File

@ -18,6 +18,10 @@ dictionaryReplacement
{
boundary
{
".*"
{
type patch;
}
leftSolid_to_bottomAir
{
offset ( 0 0 0 );
@ -47,34 +51,12 @@ dictionaryReplacement
boundaryField
{
minX
".*"
{
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;
}
leftSolid_to_topAir
"leftSolid_to_.*"
{
type compressible::turbulentTemperatureCoupledBaffle;
neighbourFieldName T;
@ -90,29 +72,9 @@ dictionaryReplacement
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 calculated;
}
}
}
@ -123,27 +85,7 @@ dictionaryReplacement
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;
}
@ -156,27 +98,7 @@ dictionaryReplacement
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;
}

View File

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

View File

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

View File

@ -27,33 +27,7 @@ boundaryField
}
farFieldMoving
{
//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;
type slip;
}
fixedWall
{
@ -71,28 +45,7 @@ boundaryField
}
farField
{
//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;
type slip;
}
back
{

View File

@ -17,9 +17,6 @@ FoamFile
application pimpleDyMFoam;
// For surfaceSlip boundary conditions
libs ("libfvMotionSolvers.so");
startFrom startTime;
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 =