parent
1a55829ef9
commit
a74b9ca763
@ -98,11 +98,13 @@ void matchPatchFaces
|
||||
const labelList& patchesj,
|
||||
|
||||
DynamicList<labelList>& interfaceMesh0,
|
||||
DynamicList<label>& interfaceSource0,
|
||||
DynamicList<labelList>& interfacePatch0,
|
||||
DynamicList<wordList>& interfaceNames0,
|
||||
DynamicList<List<DynamicList<label>>>& interfaceFaces0,
|
||||
|
||||
DynamicList<labelList>& interfaceMesh1,
|
||||
DynamicList<label>& interfaceSource1,
|
||||
DynamicList<labelList>& interfacePatch1,
|
||||
DynamicList<wordList>& interfaceNames1,
|
||||
DynamicList<List<DynamicList<label>>>& interfaceFaces1
|
||||
@ -136,8 +138,10 @@ void matchPatchFaces
|
||||
|
||||
Info<< "Introducing interface " << inti << " between"
|
||||
<< " mesh " << meshes[meshi].name()
|
||||
//<< " source:" << sourcei
|
||||
<< " patch " << ppi.name()
|
||||
<< " and mesh " << meshes[meshj].name()
|
||||
//<< " source:" << sourcej
|
||||
<< " patch " << ppj.name()
|
||||
<< endl;
|
||||
|
||||
@ -149,6 +153,8 @@ void matchPatchFaces
|
||||
intMesh0.setSize(nSourcei, -1);
|
||||
intMesh0[sourcei] = meshi;
|
||||
|
||||
interfaceSource0.append(sourcei);
|
||||
|
||||
interfacePatch0.append(labelList());
|
||||
auto& intPatch0 = interfacePatch0.last();
|
||||
intPatch0.setSize(nSourcei, -1);
|
||||
@ -157,15 +163,11 @@ void matchPatchFaces
|
||||
interfaceNames0.append(wordList());
|
||||
auto& intNames0 = interfaceNames0.last();
|
||||
intNames0.setSize(nSourcei);
|
||||
//intNames0[sourcei] =
|
||||
// meshes[meshi].name()
|
||||
// + "_to_"
|
||||
// + meshes[meshj].name();
|
||||
intNames0[sourcei] =
|
||||
patchName(entryName, meshes[meshi], meshes[meshj]);
|
||||
|
||||
|
||||
// Mesh 0
|
||||
// Mesh 1
|
||||
//~~~~~~~
|
||||
|
||||
interfaceMesh1.append(labelList());
|
||||
@ -173,6 +175,8 @@ void matchPatchFaces
|
||||
intMesh1.setSize(nSourcej, -1);
|
||||
intMesh1[sourcej] = meshj;
|
||||
|
||||
interfaceSource1.append(sourcej);
|
||||
|
||||
interfacePatch1.append(labelList());
|
||||
auto& intPatch1 = interfacePatch1.last();
|
||||
intPatch1.setSize(nSourcej, -1);
|
||||
@ -181,10 +185,6 @@ void matchPatchFaces
|
||||
interfaceNames1.append(wordList());
|
||||
auto& intNames1 = interfaceNames1.last();
|
||||
intNames1.setSize(nSourcej);
|
||||
//intNames1[sourcej] =
|
||||
// meshes[meshj].name()
|
||||
// + "_to_"
|
||||
// + meshes[meshi].name();
|
||||
intNames1[sourcej] =
|
||||
patchName(entryName, meshes[meshj], meshes[meshi]);
|
||||
|
||||
@ -283,11 +283,13 @@ void matchPatchFaces
|
||||
List<PtrList<dictionary>> patchInfoDicts,
|
||||
|
||||
DynamicList<labelList>& interfaceMesh0,
|
||||
DynamicList<label>& interfaceSource0,
|
||||
DynamicList<labelList>& interfacePatch0,
|
||||
DynamicList<List<DynamicList<label>>>& interfaceFaces0,
|
||||
DynamicList<wordList>& interfaceNames0,
|
||||
|
||||
DynamicList<labelList>& interfaceMesh1,
|
||||
DynamicList<label>& interfaceSource1,
|
||||
DynamicList<labelList>& interfacePatch1,
|
||||
DynamicList<List<DynamicList<label>>>& interfaceFaces1,
|
||||
DynamicList<wordList>& interfaceNames1
|
||||
@ -338,11 +340,13 @@ void matchPatchFaces
|
||||
patchesj,
|
||||
|
||||
interfaceMesh0,
|
||||
interfaceSource0,
|
||||
interfacePatch0,
|
||||
interfaceNames0,
|
||||
interfaceFaces0,
|
||||
|
||||
interfaceMesh1,
|
||||
interfaceSource1,
|
||||
interfacePatch1,
|
||||
interfaceNames1,
|
||||
interfaceFaces1
|
||||
@ -413,10 +417,23 @@ void changePatchID
|
||||
|
||||
if (!isRepatchedBoundary.set(facei-mesh.nInternalFaces()))
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Face " << facei << " is already marked to be moved"
|
||||
<< " to patch " << meshMod.region()[facei]
|
||||
<< exit(FatalError);
|
||||
static label nWarnings = 0;
|
||||
if (nWarnings == 0)
|
||||
{
|
||||
const label newPatchi = meshMod.region()[facei];
|
||||
//FatalErrorInFunction
|
||||
WarningInFunction
|
||||
<< "Face " << facei
|
||||
<< " at " << mesh.faceCentres()[facei]
|
||||
<< " marked for patch " << patchID
|
||||
<< " name " << mesh.boundaryMesh()[patchID].name()
|
||||
<< " is already marked for patch " << newPatchi
|
||||
<< " name " << mesh.boundaryMesh()[newPatchi].name()
|
||||
<< ". Suppressing further warnings"
|
||||
//<< exit(FatalError);
|
||||
<< endl;
|
||||
}
|
||||
nWarnings++;
|
||||
}
|
||||
|
||||
changePatchID(mesh, facei, patchID, meshMod);
|
||||
@ -721,7 +738,6 @@ int main(int argc, char *argv[])
|
||||
);
|
||||
|
||||
#include "addOverwriteOption.H"
|
||||
//#include "addRegionOption.H"
|
||||
#include "addAllRegionOptions.H"
|
||||
|
||||
argList::addOption("dict", "file", "Alternative createPatchDict");
|
||||
@ -780,17 +796,25 @@ int main(int argc, char *argv[])
|
||||
forAll(patchSources, sourcei)
|
||||
{
|
||||
const auto& pDict = patchSources[sourcei];
|
||||
patchNames[meshi][sourcei] = pDict.get<word>("name");
|
||||
patchNames[meshi][sourcei] = pDict.getOrDefault<word>
|
||||
(
|
||||
"name",
|
||||
word::null,
|
||||
keyType::LITERAL
|
||||
);
|
||||
|
||||
patchInfoDicts[meshi].set
|
||||
(
|
||||
sourcei,
|
||||
new dictionary(pDict.subDict("patchInfo"))
|
||||
);
|
||||
const dictionary& patchDict = patchInfoDicts[meshi][sourcei];
|
||||
dictionary& patchDict = patchInfoDicts[meshi][sourcei];
|
||||
if (patchDict.found("AMIMethod"))
|
||||
{
|
||||
matchMethods[meshi][sourcei] = patchDict.get<word>("AMIMethod");
|
||||
// Disable full matching since we're trying to use AMIMethod to
|
||||
// find out actual overlap
|
||||
patchDict.add("requireMatch", false);
|
||||
}
|
||||
|
||||
wordRes matchNames;
|
||||
@ -817,9 +841,11 @@ int main(int argc, char *argv[])
|
||||
// It matches all mesh against each other. Lower numbered mesh gets
|
||||
// postfix 0, higher numbered mesh postfix 1.
|
||||
|
||||
// Per interface, per mesh, per patchSource:
|
||||
// Per interface, per patchSource:
|
||||
// 1. the lower numbered mesh
|
||||
DynamicList<labelList> interfaceMesh0;
|
||||
// 1b. the source index (i.e. the patch dictionary)
|
||||
DynamicList<label> interfaceSource0;
|
||||
// 2. the patch on the interfaceMesh0
|
||||
DynamicList<labelList> interfacePatch0;
|
||||
// 3. the facelabels on the interfaceMesh0
|
||||
@ -829,6 +855,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
// Same for the higher numbered mesh
|
||||
DynamicList<labelList> interfaceMesh1;
|
||||
DynamicList<label> interfaceSource1;
|
||||
DynamicList<labelList> interfacePatch1;
|
||||
DynamicList<List<DynamicList<label>>> interfaceFaces1;
|
||||
DynamicList<wordList> interfaceNames1;
|
||||
@ -843,15 +870,17 @@ int main(int argc, char *argv[])
|
||||
interRegionSources,
|
||||
patchNames,
|
||||
matchPatchIDs,
|
||||
matchMethods, //faceAreaWeightAMI2D::typeName,
|
||||
matchMethods,
|
||||
patchInfoDicts,
|
||||
|
||||
interfaceMesh0,
|
||||
interfaceSource0,
|
||||
interfacePatch0,
|
||||
interfaceFaces0,
|
||||
interfaceNames0,
|
||||
|
||||
interfaceMesh1,
|
||||
interfaceSource1,
|
||||
interfacePatch1,
|
||||
interfaceFaces1,
|
||||
interfaceNames1
|
||||
@ -859,6 +888,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Read fields
|
||||
List<PtrList<volScalarField>> vsFlds(meshes.size());
|
||||
List<PtrList<volVectorField>> vvFlds(meshes.size());
|
||||
@ -914,6 +944,9 @@ int main(int argc, char *argv[])
|
||||
forAll(meshes, meshi)
|
||||
{
|
||||
fvMesh& mesh = meshes[meshi];
|
||||
|
||||
Info<< "\n\nAdding patches to mesh " << mesh.name() << nl << endl;
|
||||
|
||||
const polyBoundaryMesh& patches = mesh.boundaryMesh();
|
||||
const dictionary& dict = dicts[meshi];
|
||||
|
||||
@ -933,11 +966,20 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
const dictionary& dict = patchSources[sourcei];
|
||||
const word sourceType(dict.get<word>("constructFrom"));
|
||||
const word patchName(dict.get<word>("name"));
|
||||
const word patchName
|
||||
(
|
||||
dict.getOrDefault<word>
|
||||
(
|
||||
"name",
|
||||
word::null,
|
||||
keyType::LITERAL
|
||||
)
|
||||
);
|
||||
|
||||
dictionary patchDict(dict.subDict("patchInfo"));
|
||||
dictionary patchDict(patchInfoDicts[meshi][sourcei]);
|
||||
patchDict.set("nFaces", 0);
|
||||
patchDict.set("startFace", 0); //startFacei);
|
||||
patchDict.set("startFace", 0); // Gets overwritten
|
||||
|
||||
|
||||
if (sourceType == "autoPatch")
|
||||
{
|
||||
@ -951,42 +993,45 @@ int main(int argc, char *argv[])
|
||||
const labelList& allMeshes1 = interfaceMesh1[inti];
|
||||
const wordList& allNames1 = interfaceNames1[inti];
|
||||
|
||||
forAll(allMeshes0, sourcei)
|
||||
if
|
||||
(
|
||||
interfaceSource0[inti] == sourcei
|
||||
&& allMeshes0[sourcei] == meshi
|
||||
)
|
||||
{
|
||||
if (allMeshes0[sourcei] == meshi)
|
||||
// Current mesh is mesh0. mesh1 is the remote mesh.
|
||||
const label sourcej = interfaceSource1[inti];
|
||||
const word& patchName = allNames0[sourcei];
|
||||
if (patches.findPatchID(patchName) == -1)
|
||||
{
|
||||
const auto& mesh1 = meshes[allMeshes1[sourcei]];
|
||||
const word& patchName = allNames0[sourcei];
|
||||
if (patches.findPatchID(patchName) == -1)
|
||||
{
|
||||
dictionary allDict(patchDict);
|
||||
allDict.set("sampleRegion", mesh1.name());
|
||||
const auto& destPatch = allNames1[sourcei];
|
||||
allDict.set("samplePatch", destPatch);
|
||||
allDict.set("neighbourPatch", destPatch);
|
||||
dictionary allDict(patchDict);
|
||||
const auto& mesh1 = meshes[allMeshes1[sourcej]];
|
||||
allDict.set("sampleRegion", mesh1.name());
|
||||
const auto& destPatch = allNames1[sourcej];
|
||||
allDict.set("samplePatch", destPatch);
|
||||
allDict.set("neighbourPatch", destPatch);
|
||||
|
||||
Info<< "Adding new patch " << patchName
|
||||
<< " from " << allDict << endl;
|
||||
Info<< "Adding new patch " << patchName
|
||||
<< " from " << allDict << endl;
|
||||
|
||||
autoPtr<polyPatch> ppPtr
|
||||
autoPtr<polyPatch> ppPtr
|
||||
(
|
||||
polyPatch::New
|
||||
(
|
||||
polyPatch::New
|
||||
(
|
||||
patchName,
|
||||
allDict,
|
||||
0, // overwritten
|
||||
patches
|
||||
)
|
||||
);
|
||||
fvMeshTools::addPatch
|
||||
(
|
||||
mesh,
|
||||
ppPtr(),
|
||||
patchDict.subOrEmptyDict("patchFields"),
|
||||
calculatedFvPatchScalarField::typeName,
|
||||
true
|
||||
);
|
||||
}
|
||||
patchName,
|
||||
allDict,
|
||||
0, // overwritten
|
||||
patches
|
||||
)
|
||||
);
|
||||
fvMeshTools::addPatch
|
||||
(
|
||||
mesh,
|
||||
ppPtr(),
|
||||
patchDict.subOrEmptyDict("patchFields"),
|
||||
calculatedFvPatchScalarField::typeName,
|
||||
true
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -998,42 +1043,46 @@ int main(int argc, char *argv[])
|
||||
const labelList& allMeshes1 = interfaceMesh1[inti];
|
||||
const wordList& allNames1 = interfaceNames1[inti];
|
||||
|
||||
forAll(allMeshes1, sourcei)
|
||||
if
|
||||
(
|
||||
interfaceSource1[inti] == sourcei
|
||||
&& allMeshes1[sourcei] == meshi
|
||||
)
|
||||
{
|
||||
if (allMeshes1[sourcei] == meshi)
|
||||
// Current mesh is mesh1. mesh0 is the remote mesh.
|
||||
|
||||
const label sourcej = interfaceSource0[inti];
|
||||
const word& patchName = allNames1[sourcei];
|
||||
if (patches.findPatchID(patchName) == -1)
|
||||
{
|
||||
const auto& mesh0 = meshes[allMeshes0[sourcei]];
|
||||
const word& patchName = allNames1[sourcei];
|
||||
if (patches.findPatchID(patchName) == -1)
|
||||
{
|
||||
dictionary allDict(patchDict);
|
||||
const auto& destPatch = allNames0[sourcei];
|
||||
allDict.set("sampleRegion", mesh0.name());
|
||||
allDict.set("samplePatch", destPatch);
|
||||
allDict.set("neighbourPatch", destPatch);
|
||||
dictionary allDict(patchDict);
|
||||
const auto& destPatch = allNames0[sourcej];
|
||||
const auto& mesh0 = meshes[allMeshes0[sourcej]];
|
||||
allDict.set("sampleRegion", mesh0.name());
|
||||
allDict.set("samplePatch", destPatch);
|
||||
allDict.set("neighbourPatch", destPatch);
|
||||
|
||||
Info<< "Adding new patch " << patchName
|
||||
<< " from " << allDict << endl;
|
||||
Info<< "Adding new patch " << patchName
|
||||
<< " from " << allDict << endl;
|
||||
|
||||
autoPtr<polyPatch> ppPtr
|
||||
autoPtr<polyPatch> ppPtr
|
||||
(
|
||||
polyPatch::New
|
||||
(
|
||||
polyPatch::New
|
||||
(
|
||||
patchName,
|
||||
allDict,
|
||||
0, // overwritten
|
||||
patches
|
||||
)
|
||||
);
|
||||
fvMeshTools::addPatch
|
||||
(
|
||||
mesh,
|
||||
ppPtr(),
|
||||
patchDict.subOrEmptyDict("patchFields"),
|
||||
calculatedFvPatchScalarField::typeName,
|
||||
true
|
||||
);
|
||||
}
|
||||
patchName,
|
||||
allDict,
|
||||
0, // overwritten
|
||||
patches
|
||||
)
|
||||
);
|
||||
fvMeshTools::addPatch
|
||||
(
|
||||
mesh,
|
||||
ppPtr(),
|
||||
patchDict.subOrEmptyDict("patchFields"),
|
||||
calculatedFvPatchScalarField::typeName,
|
||||
true
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1077,6 +1126,10 @@ int main(int argc, char *argv[])
|
||||
forAll(meshes, meshi)
|
||||
{
|
||||
fvMesh& mesh = meshes[meshi];
|
||||
|
||||
Info<< "\n\nRepatching mesh " << mesh.name() << nl << endl;
|
||||
|
||||
|
||||
const polyBoundaryMesh& patches = mesh.boundaryMesh();
|
||||
const dictionary& dict = dicts[meshi];
|
||||
|
||||
@ -1096,7 +1149,15 @@ int main(int argc, char *argv[])
|
||||
forAll(patchSources, sourcei)
|
||||
{
|
||||
const dictionary& dict = patchSources[sourcei];
|
||||
const word patchName(dict.get<word>("name"));
|
||||
const word patchName
|
||||
(
|
||||
dict.getOrDefault<word>
|
||||
(
|
||||
"name",
|
||||
word::null,
|
||||
keyType::LITERAL
|
||||
)
|
||||
);
|
||||
const word sourceType(dict.get<word>("constructFrom"));
|
||||
|
||||
if (sourceType == "autoPatch")
|
||||
@ -1111,49 +1172,57 @@ int main(int argc, char *argv[])
|
||||
const wordList& allNames1 = interfaceNames1[inti];
|
||||
const auto& allFaces1 = interfaceFaces1[inti];
|
||||
|
||||
forAll(allMeshes0, sourcei)
|
||||
if
|
||||
(
|
||||
interfaceSource0[inti] == sourcei
|
||||
&& allMeshes0[sourcei] == meshi
|
||||
)
|
||||
{
|
||||
if (allMeshes0[sourcei] == meshi)
|
||||
{
|
||||
const label destPatchi =
|
||||
patches.findPatchID(allNames0[sourcei], false);
|
||||
// Current mesh is mesh0. mesh1 is the remote mesh.
|
||||
|
||||
Pout<< "Matched mesh:" << mesh.name()
|
||||
<< " to mesh:"
|
||||
<< meshes[allMeshes1[sourcei]].name()
|
||||
<< " through:" << allNames0[sourcei] << endl;
|
||||
const label destPatchi =
|
||||
patches.findPatchID(allNames0[sourcei], false);
|
||||
|
||||
changePatchID
|
||||
(
|
||||
mesh,
|
||||
allFaces0[sourcei],
|
||||
destPatchi,
|
||||
isRepatchedBoundary,
|
||||
meshMod
|
||||
);
|
||||
}
|
||||
//const auto& mesh1 =
|
||||
// meshes[allMeshes1[interfaceSource1[inti]]];
|
||||
//Pout<< "Matched mesh:" << mesh.name()
|
||||
// << " to mesh:" << mesh1.name()
|
||||
// << " through:" << allNames0[sourcei] << endl;
|
||||
|
||||
changePatchID
|
||||
(
|
||||
mesh,
|
||||
allFaces0[sourcei],
|
||||
destPatchi,
|
||||
isRepatchedBoundary,
|
||||
meshMod
|
||||
);
|
||||
}
|
||||
forAll(allMeshes1, sourcei)
|
||||
if
|
||||
(
|
||||
interfaceSource1[inti] == sourcei
|
||||
&& allMeshes1[sourcei] == meshi
|
||||
)
|
||||
{
|
||||
if (allMeshes1[sourcei] == meshi)
|
||||
{
|
||||
const label destPatchi =
|
||||
patches.findPatchID(allNames1[sourcei], false);
|
||||
// Current mesh is mesh1. mesh0 is the remote mesh.
|
||||
|
||||
Pout<< "Matched mesh:" << mesh.name()
|
||||
<< " to mesh:"
|
||||
<< meshes[allMeshes0[sourcei]].name()
|
||||
<< " through:" << allNames1[sourcei] << endl;
|
||||
const label destPatchi =
|
||||
patches.findPatchID(allNames1[sourcei], false);
|
||||
|
||||
changePatchID
|
||||
(
|
||||
mesh,
|
||||
allFaces1[sourcei],
|
||||
destPatchi,
|
||||
isRepatchedBoundary,
|
||||
meshMod
|
||||
);
|
||||
}
|
||||
//const auto& mesh0 =
|
||||
// meshes[allMeshes0[interfaceSource0[inti]]];
|
||||
//Pout<< "Matched mesh:" << mesh.name()
|
||||
// << " to mesh:" << mesh0.name()
|
||||
// << " through:" << allNames1[sourcei] << endl;
|
||||
|
||||
changePatchID
|
||||
(
|
||||
mesh,
|
||||
allFaces1[sourcei],
|
||||
destPatchi,
|
||||
isRepatchedBoundary,
|
||||
meshMod
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1213,7 +1282,6 @@ int main(int argc, char *argv[])
|
||||
<< exit(FatalError);
|
||||
}
|
||||
}
|
||||
Info<< endl;
|
||||
|
||||
|
||||
// Change mesh, use inflation to reforce calculation of transformation
|
||||
@ -1398,10 +1466,6 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
dumpCyclicMatch("final_", mesh);
|
||||
}
|
||||
|
||||
|
||||
// Set the precision of the points data to 10
|
||||
IOstream::defaultPrecision(max(10u, IOstream::defaultPrecision()));
|
||||
}
|
||||
|
||||
if (!overwrite)
|
||||
@ -1418,11 +1482,14 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
// Set the precision of the points data to 10
|
||||
IOstream::defaultPrecision(max(10u, IOstream::defaultPrecision()));
|
||||
|
||||
// Write resulting mesh
|
||||
forAll(meshes, meshi)
|
||||
{
|
||||
fvMesh& mesh = meshes[meshi];
|
||||
Info<< "Writing repatched mesh " << mesh.name()
|
||||
Info<< "\n\nWriting repatched mesh " << mesh.name()
|
||||
<< " to " << runTime.timeName() << nl << endl;
|
||||
mesh.clearOut(); // remove meshPhi
|
||||
mesh.write();
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,65 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
arch "LSB;label=32;scalar=64";
|
||||
class volScalarField;
|
||||
location "0/bottomWater";
|
||||
object T;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [ 0 0 0 1 0 0 0 ];
|
||||
|
||||
internalField uniform 300;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
minX
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
maxX
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
minY
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue 600;
|
||||
}
|
||||
minZ
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
maxZ
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
group_solid
|
||||
{
|
||||
type compressible::turbulentTemperatureRadCoupledMixed;
|
||||
value uniform 300;
|
||||
Tnbr T;
|
||||
kappaMethod solidThermo;
|
||||
}
|
||||
group_fluid
|
||||
{
|
||||
type compressible::turbulentTemperatureRadCoupledMixed;
|
||||
value uniform 300;
|
||||
Tnbr T;
|
||||
kappaMethod solidThermo;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,35 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
arch "LSB;label=32;scalar=64";
|
||||
class volScalarField;
|
||||
location "0/bottomWater";
|
||||
object p;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [ 1 -1 -2 0 0 0 0 ];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
".*"
|
||||
{
|
||||
type calculated;
|
||||
value uniform 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,60 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
arch "LSB;label=32;scalar=64";
|
||||
class volScalarField;
|
||||
location "0/bottomWater";
|
||||
object T;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [ 0 0 0 1 0 0 0 ];
|
||||
|
||||
internalField uniform 300;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
minX
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
maxX
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
minZ
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
maxZ
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
group_solid
|
||||
{
|
||||
type compressible::turbulentTemperatureRadCoupledMixed;
|
||||
value uniform 300;
|
||||
Tnbr T;
|
||||
kappaMethod solidThermo;
|
||||
}
|
||||
group_fluid
|
||||
{
|
||||
type compressible::turbulentTemperatureRadCoupledMixed;
|
||||
value uniform 300;
|
||||
Tnbr T;
|
||||
kappaMethod solidThermo;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,35 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
arch "LSB;label=32;scalar=64";
|
||||
class volScalarField;
|
||||
location "0/bottomWater";
|
||||
object p;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [ 1 -1 -2 0 0 0 0 ];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
".*"
|
||||
{
|
||||
type calculated;
|
||||
value uniform 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,60 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
arch "LSB;label=32;scalar=64";
|
||||
class volScalarField;
|
||||
location "0/bottomWater";
|
||||
object T;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [ 0 0 0 1 0 0 0 ];
|
||||
|
||||
internalField uniform 300;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
minX
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
maxX
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
minZ
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
maxZ
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
group_solid
|
||||
{
|
||||
type compressible::turbulentTemperatureRadCoupledMixed;
|
||||
value uniform 300;
|
||||
Tnbr T;
|
||||
kappaMethod solidThermo;
|
||||
}
|
||||
group_fluid
|
||||
{
|
||||
type compressible::turbulentTemperatureRadCoupledMixed;
|
||||
value uniform 300;
|
||||
Tnbr T;
|
||||
kappaMethod solidThermo;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,35 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
arch "LSB;label=32;scalar=64";
|
||||
class volScalarField;
|
||||
location "0/bottomWater";
|
||||
object p;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [ 1 -1 -2 0 0 0 0 ];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
".*"
|
||||
{
|
||||
type calculated;
|
||||
value uniform 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,67 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
arch "LSB;label=32;scalar=64";
|
||||
class volScalarField;
|
||||
location "0/topAir";
|
||||
object T;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [ 0 0 0 1 0 0 0 ];
|
||||
|
||||
internalField uniform 300;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
maxY
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
minX
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue 300;
|
||||
}
|
||||
maxX
|
||||
{
|
||||
type inletOutlet;
|
||||
value uniform 300;
|
||||
inletValue uniform 300;
|
||||
}
|
||||
minZ
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
maxZ
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
group_solid
|
||||
{
|
||||
type compressible::turbulentTemperatureRadCoupledMixed;
|
||||
value uniform 300;
|
||||
Tnbr T;
|
||||
kappaMethod fluidThermo;
|
||||
}
|
||||
group_fluid
|
||||
{
|
||||
type compressible::turbulentTemperatureRadCoupledMixed;
|
||||
value uniform 300;
|
||||
Tnbr T;
|
||||
kappaMethod fluidThermo;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,61 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
arch "LSB;label=32;scalar=64";
|
||||
class volVectorField;
|
||||
location "0/topAir";
|
||||
object U;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [ 0 1 -1 0 0 0 0 ];
|
||||
|
||||
internalField uniform ( 0.1 0 0 );
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
maxY
|
||||
{
|
||||
type noSlip;
|
||||
}
|
||||
minX
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue ( 0.1 0 0 );
|
||||
}
|
||||
maxX
|
||||
{
|
||||
type inletOutlet;
|
||||
value uniform ( 0.1 0 0 );
|
||||
inletValue uniform ( 0 0 0 );
|
||||
}
|
||||
minZ
|
||||
{
|
||||
type noSlip;
|
||||
}
|
||||
maxZ
|
||||
{
|
||||
type noSlip;
|
||||
}
|
||||
group_solid
|
||||
{
|
||||
type noSlip;
|
||||
}
|
||||
group_fluid
|
||||
{
|
||||
type noSlip;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,66 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
arch "LSB;label=32;scalar=64";
|
||||
class volScalarField;
|
||||
location "0/topAir";
|
||||
object epsilon;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [ 0 2 -3 0 0 0 0 ];
|
||||
|
||||
internalField uniform 0.01;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
maxY
|
||||
{
|
||||
type epsilonWallFunction;
|
||||
value uniform 0.01;
|
||||
}
|
||||
minX
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue 0.01;
|
||||
}
|
||||
maxX
|
||||
{
|
||||
type inletOutlet;
|
||||
value uniform 0.01;
|
||||
inletValue uniform 0.01;
|
||||
}
|
||||
minZ
|
||||
{
|
||||
type epsilonWallFunction;
|
||||
value uniform 0.01;
|
||||
}
|
||||
maxZ
|
||||
{
|
||||
type epsilonWallFunction;
|
||||
value uniform 0.01;
|
||||
}
|
||||
group_solid
|
||||
{
|
||||
type epsilonWallFunction;
|
||||
value uniform 0.01;
|
||||
}
|
||||
group_fluid
|
||||
{
|
||||
type epsilonWallFunction;
|
||||
value uniform 0.01;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,66 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
arch "LSB;label=32;scalar=64";
|
||||
class volScalarField;
|
||||
location "0/topAir";
|
||||
object k;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [ 0 2 -2 0 0 0 0 ];
|
||||
|
||||
internalField uniform 0.1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
maxY
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value uniform 0.1;
|
||||
}
|
||||
minX
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue 0.1;
|
||||
}
|
||||
maxX
|
||||
{
|
||||
type inletOutlet;
|
||||
value uniform 0.1;
|
||||
inletValue uniform 0.1;
|
||||
}
|
||||
minZ
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value uniform 0.1;
|
||||
}
|
||||
maxZ
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value uniform 0.1;
|
||||
}
|
||||
group_solid
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value uniform 0.1;
|
||||
}
|
||||
group_fluid
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value uniform 0.1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,65 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
arch "LSB;label=32;scalar=64";
|
||||
class volScalarField;
|
||||
location "0/topAir";
|
||||
object p;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [ 1 -1 -2 0 0 0 0 ];
|
||||
|
||||
internalField uniform 100000;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
maxY
|
||||
{
|
||||
type calculated;
|
||||
value uniform 100000;
|
||||
}
|
||||
minX
|
||||
{
|
||||
type calculated;
|
||||
value uniform 100000;
|
||||
}
|
||||
maxX
|
||||
{
|
||||
type calculated;
|
||||
value uniform 100000;
|
||||
}
|
||||
minZ
|
||||
{
|
||||
type calculated;
|
||||
value uniform 100000;
|
||||
}
|
||||
maxZ
|
||||
{
|
||||
type calculated;
|
||||
value uniform 100000;
|
||||
}
|
||||
group_solid
|
||||
{
|
||||
type calculated;
|
||||
value uniform 100000;
|
||||
}
|
||||
group_fluid
|
||||
{
|
||||
type calculated;
|
||||
value uniform 100000;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,65 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
arch "LSB;label=32;scalar=64";
|
||||
class volScalarField;
|
||||
location "0/topAir";
|
||||
object p_rgh;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [ 1 -1 -2 0 0 0 0 ];
|
||||
|
||||
internalField uniform 100000;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
maxY
|
||||
{
|
||||
type fixedFluxPressure;
|
||||
value uniform 100000;
|
||||
}
|
||||
minX
|
||||
{
|
||||
type fixedFluxPressure;
|
||||
value uniform 100000;
|
||||
}
|
||||
maxX
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue 100000;
|
||||
}
|
||||
minZ
|
||||
{
|
||||
type fixedFluxPressure;
|
||||
value uniform 100000;
|
||||
}
|
||||
maxZ
|
||||
{
|
||||
type fixedFluxPressure;
|
||||
value uniform 100000;
|
||||
}
|
||||
group_solid
|
||||
{
|
||||
type fixedFluxPressure;
|
||||
value uniform 100000;
|
||||
}
|
||||
group_fluid
|
||||
{
|
||||
type fixedFluxPressure;
|
||||
value uniform 100000;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
12
tutorials/mesh/createPatch/multiRegionHeater_autoPatch/Allclean
Executable file
12
tutorials/mesh/createPatch/multiRegionHeater_autoPatch/Allclean
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
cleanCase0
|
||||
rm -r constant/bottomSolid/polyMesh
|
||||
rm -r constant/leftSolid/polyMesh
|
||||
rm -r constant/rightSolid/polyMesh
|
||||
rm -r constant/topAir/polyMesh
|
||||
|
||||
#------------------------------------------------------------------------------
|
20
tutorials/mesh/createPatch/multiRegionHeater_autoPatch/Allrun
Executable file
20
tutorials/mesh/createPatch/multiRegionHeater_autoPatch/Allrun
Executable file
@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
runApplication ./Allrun.pre
|
||||
|
||||
#-- Run on single processor
|
||||
#runApplication $(getApplication)
|
||||
|
||||
# Decompose
|
||||
runApplication decomposePar -allRegions
|
||||
|
||||
# Run
|
||||
runParallel $(getApplication)
|
||||
|
||||
# Reconstruct
|
||||
runApplication reconstructPar -allRegions
|
||||
|
||||
#------------------------------------------------------------------------------
|
25
tutorials/mesh/createPatch/multiRegionHeater_autoPatch/Allrun.pre
Executable file
25
tutorials/mesh/createPatch/multiRegionHeater_autoPatch/Allrun.pre
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
for region in $(foamListRegions)
|
||||
do
|
||||
runApplication -s $region blockMesh -region $region
|
||||
done
|
||||
|
||||
#- createPatch creates patchFields out of dictionary only but only then
|
||||
# moves faces to it. Hence most of its state (refValue, valueFraction etc)
|
||||
# will not be sized. Make sure to not to fail construction so disable
|
||||
# floating point error checking
|
||||
#unset FOAM_SIGFPE
|
||||
runApplication createPatch -allRegions -overwrite
|
||||
|
||||
restore0Dir
|
||||
|
||||
echo
|
||||
echo "Use paraFoam -touch-all to create files for paraview post-processing"
|
||||
echo
|
||||
echo "End"
|
||||
|
||||
#------------------------------------------------------------------------------
|
@ -0,0 +1,4 @@
|
||||
2022-02-24: Testcase for:
|
||||
- createPatch with autoPatch functionality
|
||||
- AMIMethod limiting the search distance
|
||||
- use of patch groups to ease set-up
|
@ -0,0 +1,22 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object radiationProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
radiation off;
|
||||
|
||||
radiationModel none;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,50 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object thermophysicalProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
thermoType
|
||||
{
|
||||
type heSolidThermo;
|
||||
mixture pureMixture;
|
||||
transport constIso;
|
||||
thermo hConst;
|
||||
equationOfState rhoConst;
|
||||
specie specie;
|
||||
energy sensibleEnthalpy;
|
||||
}
|
||||
|
||||
mixture
|
||||
{
|
||||
specie
|
||||
{
|
||||
molWeight 50;
|
||||
}
|
||||
transport
|
||||
{
|
||||
kappa 80;
|
||||
}
|
||||
thermodynamics
|
||||
{
|
||||
Hf 0;
|
||||
Cp 450;
|
||||
}
|
||||
equationOfState
|
||||
{
|
||||
rho 8000;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,21 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class uniformDimensionedVectorField;
|
||||
object g;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 1 -2 0 0 0 0];
|
||||
value (0 -9.81 0);
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1 @@
|
||||
../bottomSolid/radiationProperties
|
@ -0,0 +1 @@
|
||||
../bottomSolid/thermophysicalProperties
|
@ -0,0 +1,24 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object regionProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
regions
|
||||
(
|
||||
fluid (topAir)
|
||||
solid (bottomSolid leftSolid rightSolid)
|
||||
);
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1 @@
|
||||
../bottomSolid/radiationProperties
|
@ -0,0 +1 @@
|
||||
../bottomSolid/thermophysicalProperties
|
@ -0,0 +1,22 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object radiationProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
radiation off;
|
||||
|
||||
radiationModel none;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,47 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object thermophysicalProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
thermoType
|
||||
{
|
||||
type heRhoThermo;
|
||||
mixture pureMixture;
|
||||
transport const;
|
||||
thermo hConst;
|
||||
equationOfState perfectGas;
|
||||
specie specie;
|
||||
energy sensibleEnthalpy;
|
||||
}
|
||||
|
||||
mixture
|
||||
{
|
||||
specie
|
||||
{
|
||||
molWeight 28.9;
|
||||
}
|
||||
thermodynamics
|
||||
{
|
||||
Cp 1000;
|
||||
Hf 0;
|
||||
}
|
||||
transport
|
||||
{
|
||||
mu 1.8e-05;
|
||||
Pr 0.7;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,20 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object turbulenceProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
simulationType laminar;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,2 @@
|
||||
- fvSolution is used for outer correctors specification.
|
||||
- fvSchemes is only so that pre-processing activities can proceed
|
@ -0,0 +1,93 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object blockMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
scale 1;
|
||||
|
||||
vertices
|
||||
(
|
||||
(-0.1 -0.04 -0.05)
|
||||
( 0.1 -0.04 -0.05)
|
||||
( 0.1 0.00 -0.05)
|
||||
(-0.1 0.00 -0.05)
|
||||
(-0.1 -0.04 0.05)
|
||||
( 0.1 -0.04 0.05)
|
||||
( 0.1 0.00 0.05)
|
||||
(-0.1 0.00 0.05)
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
hex (0 1 2 3 4 5 6 7) (10 4 1) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
edges
|
||||
(
|
||||
);
|
||||
|
||||
boundary
|
||||
(
|
||||
minX
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 4 7 3)
|
||||
);
|
||||
}
|
||||
maxX
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(2 6 5 1)
|
||||
);
|
||||
}
|
||||
minY
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(1 5 4 0)
|
||||
);
|
||||
}
|
||||
maxY
|
||||
{
|
||||
type patch;
|
||||
inGroups (group_solid);
|
||||
faces
|
||||
(
|
||||
(3 7 6 2)
|
||||
);
|
||||
}
|
||||
minZ
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 3 2 1)
|
||||
);
|
||||
}
|
||||
maxZ
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(4 5 6 7)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,163 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2106 |
|
||||
| \\ / A nd | Website: 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.
|
||||
// - always: remove zero-sized (non-coupled) patches (that were not added)
|
||||
|
||||
// 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
|
||||
(
|
||||
// Patches to couple to solids
|
||||
{
|
||||
// Dictionary to construct new patch from
|
||||
patchInfo
|
||||
{
|
||||
type mappedPatch;
|
||||
inGroups (group_solid);
|
||||
sampleMode nearestPatchFaceAMI;
|
||||
|
||||
AMIMethod faceAreaWeightAMI;
|
||||
maxDistance2 1e-6; // max (square) distance
|
||||
minCosAngle 0.5; // min alignment
|
||||
|
||||
// Overwritten
|
||||
//sampleRegion otherRegion;
|
||||
//samplePatch otherPatch;
|
||||
|
||||
//- Optional override of added patchfields. If not specified
|
||||
// any added patchfields are of type calculated.
|
||||
patchFields
|
||||
{
|
||||
////- Problem is with patch fields that need additional
|
||||
//// state. Patches get created with 0 faces and
|
||||
//// then mapped to the correct size. The autoMap generally
|
||||
//// does not know value to give the new faces.
|
||||
//T
|
||||
//{
|
||||
// type compressible::turbulentTemperatureRadCoupledMixed;
|
||||
// Tnbr T;
|
||||
// kappaMethod solidThermo;
|
||||
// value uniform 300;
|
||||
// refValue uniform 300;
|
||||
// valueFraction uniform 1;
|
||||
// refGradient uniform 0;
|
||||
//}
|
||||
//p
|
||||
//{
|
||||
// type calculated;
|
||||
// value uniform 100000;
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
// How to select the faces:
|
||||
// - set : specify faceSet in 'set'
|
||||
// - patches : specify names in 'patches'
|
||||
// - autoPatch : attempts automatic patching of the specified
|
||||
// candidates in 'patches'.
|
||||
// - single region : match in the region itself
|
||||
// - multi regions : match in between regions only
|
||||
constructFrom autoPatch;
|
||||
|
||||
// If constructFrom = patches or autoPatch: names of patches.
|
||||
// Wildcards&patchGroups allowed.
|
||||
patches (group_solid);
|
||||
}
|
||||
|
||||
|
||||
// Patches to couple to fluids
|
||||
{
|
||||
// Dictionary to construct new patch from
|
||||
patchInfo
|
||||
{
|
||||
type mappedPatch;
|
||||
inGroups (group_fluid);
|
||||
sampleMode nearestPatchFaceAMI;
|
||||
|
||||
AMIMethod faceAreaWeightAMI;
|
||||
maxDistance2 1e-6; // max (square) distance
|
||||
minCosAngle 0.5; // min alignment
|
||||
|
||||
// Overwritten
|
||||
//sampleRegion otherRegion;
|
||||
//samplePatch otherPatch;
|
||||
|
||||
//- Optional override of added patchfields. If not specified
|
||||
// any added patchfields are of type calculated.
|
||||
patchFields
|
||||
{
|
||||
//- Problem is with patch fields that need additional
|
||||
// state. Patches get created with 0 faces and
|
||||
// then mapped to the correct size. The autoMap genrally
|
||||
// does not know value to give the new faces.
|
||||
//T
|
||||
//{
|
||||
// type compressible::turbulentTemperatureRadCoupledMixed;
|
||||
// Tnbr T;
|
||||
// kappaMethod solidThermo;
|
||||
// value uniform 300;
|
||||
//}
|
||||
//p
|
||||
//{
|
||||
// type calculated;
|
||||
// value uniform 100000;
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
// How to select the faces:
|
||||
// - set : specify faceSet in 'set'
|
||||
// - patches : specify names in 'patches'
|
||||
// - autoPatch : attempts automatic patching of the specified
|
||||
// candidates in 'patches'.
|
||||
// - single region : match in the region itself
|
||||
// - multi regions : match in between regions only
|
||||
constructFrom autoPatch;
|
||||
|
||||
// If constructFrom = patches or autoPatch: names of patches.
|
||||
// Wildcards&patchGroups allowed.
|
||||
patches (group_fluid);
|
||||
}
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,49 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object fvSchemes;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
ddtSchemes
|
||||
{
|
||||
default Euler;
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
{
|
||||
default Gauss linear;
|
||||
}
|
||||
|
||||
divSchemes
|
||||
{
|
||||
default none;
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
{
|
||||
default none;
|
||||
laplacian(alpha,h) Gauss linear corrected;
|
||||
}
|
||||
|
||||
interpolationSchemes
|
||||
{
|
||||
default linear;
|
||||
}
|
||||
|
||||
snGradSchemes
|
||||
{
|
||||
default corrected;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,41 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object fvSolution;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
solvers
|
||||
{
|
||||
h
|
||||
{
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
tolerance 1e-06;
|
||||
relTol 0.1;
|
||||
}
|
||||
|
||||
hFinal
|
||||
{
|
||||
$h;
|
||||
tolerance 1e-06;
|
||||
relTol 0;
|
||||
}
|
||||
}
|
||||
|
||||
PIMPLE
|
||||
{
|
||||
nNonOrthogonalCorrectors 0;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,60 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object controlDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
application chtMultiRegionFoam;
|
||||
|
||||
startFrom startTime;
|
||||
|
||||
startTime 0;
|
||||
|
||||
stopAt endTime;
|
||||
|
||||
endTime 100;
|
||||
|
||||
deltaT 0.001;
|
||||
|
||||
writeControl adjustable;
|
||||
|
||||
writeInterval 10;
|
||||
|
||||
purgeWrite 0;
|
||||
|
||||
writeFormat ascii;
|
||||
|
||||
writePrecision 8;
|
||||
|
||||
writeCompression off;
|
||||
|
||||
timeFormat general;
|
||||
|
||||
timePrecision 6;
|
||||
|
||||
runTimeModifiable yes;
|
||||
|
||||
maxCo 0.6;
|
||||
|
||||
// Maximum diffusion number
|
||||
maxDi 10.0;
|
||||
|
||||
adjustTimeStep yes;
|
||||
|
||||
functions
|
||||
{
|
||||
#include "vtkWrite"
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,42 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object fvSchemes;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
ddtSchemes
|
||||
{
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
{
|
||||
}
|
||||
|
||||
divSchemes
|
||||
{
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
{
|
||||
}
|
||||
|
||||
interpolationSchemes
|
||||
{
|
||||
}
|
||||
|
||||
snGradSchemes
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,23 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object fvSolution;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
PIMPLE
|
||||
{
|
||||
nOuterCorrectors 1;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,95 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object blockMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
scale 1;
|
||||
|
||||
vertices
|
||||
(
|
||||
(-0.1 0.00 -0.05)
|
||||
( 0.0 0.00 -0.05)
|
||||
( 0.0 0.01 -0.05)
|
||||
(-0.1 0.01 -0.05)
|
||||
(-0.1 0.00 0.05)
|
||||
( 0.0 0.00 0.05)
|
||||
( 0.0 0.01 0.05)
|
||||
(-0.1 0.01 0.05)
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
hex (0 1 2 3 4 5 6 7) (10 4 1) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
edges
|
||||
(
|
||||
);
|
||||
|
||||
boundary
|
||||
(
|
||||
minX
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 4 7 3)
|
||||
);
|
||||
}
|
||||
maxX
|
||||
{
|
||||
type patch;
|
||||
inGroups (group_solid);
|
||||
faces
|
||||
(
|
||||
(2 6 5 1)
|
||||
);
|
||||
}
|
||||
minY
|
||||
{
|
||||
type patch;
|
||||
inGroups (group_solid);
|
||||
faces
|
||||
(
|
||||
(1 5 4 0)
|
||||
);
|
||||
}
|
||||
maxY
|
||||
{
|
||||
type patch;
|
||||
inGroups (group_fluid);
|
||||
faces
|
||||
(
|
||||
(3 7 6 2)
|
||||
);
|
||||
}
|
||||
minZ
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 3 2 1)
|
||||
);
|
||||
}
|
||||
maxZ
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(4 5 6 7)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1 @@
|
||||
../bottomSolid/createPatchDict
|
@ -0,0 +1 @@
|
||||
../bottomSolid/fvSchemes
|
@ -0,0 +1 @@
|
||||
../bottomSolid/fvSolution
|
@ -0,0 +1,95 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object blockMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
scale 1;
|
||||
|
||||
vertices
|
||||
(
|
||||
(-0.0 0.00 -0.05)
|
||||
( 0.1 0.00 -0.05)
|
||||
( 0.1 0.01 -0.05)
|
||||
(-0.0 0.01 -0.05)
|
||||
(-0.0 0.00 0.05)
|
||||
( 0.1 0.00 0.05)
|
||||
( 0.1 0.01 0.05)
|
||||
(-0.0 0.01 0.05)
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
hex (0 1 2 3 4 5 6 7) (10 4 1) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
edges
|
||||
(
|
||||
);
|
||||
|
||||
boundary
|
||||
(
|
||||
minX
|
||||
{
|
||||
type patch;
|
||||
inGroups (group_solid);
|
||||
faces
|
||||
(
|
||||
(0 4 7 3)
|
||||
);
|
||||
}
|
||||
maxX
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(2 6 5 1)
|
||||
);
|
||||
}
|
||||
minY
|
||||
{
|
||||
type patch;
|
||||
inGroups (group_solid);
|
||||
faces
|
||||
(
|
||||
(1 5 4 0)
|
||||
);
|
||||
}
|
||||
maxY
|
||||
{
|
||||
type patch;
|
||||
inGroups (group_fluid);
|
||||
faces
|
||||
(
|
||||
(3 7 6 2)
|
||||
);
|
||||
}
|
||||
minZ
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 3 2 1)
|
||||
);
|
||||
}
|
||||
maxZ
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(4 5 6 7)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1 @@
|
||||
../bottomSolid/createPatchDict
|
@ -0,0 +1 @@
|
||||
../bottomSolid/fvSchemes
|
@ -0,0 +1 @@
|
||||
../bottomSolid/fvSolution
|
@ -0,0 +1,93 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object blockMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
scale 1;
|
||||
|
||||
vertices
|
||||
(
|
||||
(-0.1 0.01 -0.05)
|
||||
( 0.1 0.01 -0.05)
|
||||
( 0.1 0.04 -0.05)
|
||||
(-0.1 0.04 -0.05)
|
||||
(-0.1 0.01 0.05)
|
||||
( 0.1 0.01 0.05)
|
||||
( 0.1 0.04 0.05)
|
||||
(-0.1 0.04 0.05)
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
hex (0 1 2 3 4 5 6 7) (20 4 10) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
edges
|
||||
(
|
||||
);
|
||||
|
||||
boundary
|
||||
(
|
||||
minX
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 4 7 3)
|
||||
);
|
||||
}
|
||||
maxX
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(2 6 5 1)
|
||||
);
|
||||
}
|
||||
minY
|
||||
{
|
||||
type patch;
|
||||
inGroups (group_fluid);
|
||||
faces
|
||||
(
|
||||
(1 5 4 0)
|
||||
);
|
||||
}
|
||||
maxY
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(3 7 6 2)
|
||||
);
|
||||
}
|
||||
minZ
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 3 2 1)
|
||||
);
|
||||
}
|
||||
maxZ
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(4 5 6 7)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,99 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2106 |
|
||||
| \\ / A nd | Website: 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.
|
||||
// - always: remove zero-sized (non-coupled) patches (that were not added)
|
||||
|
||||
// 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
|
||||
(
|
||||
{
|
||||
// Dictionary to construct new patch from
|
||||
patchInfo
|
||||
{
|
||||
type mappedPatch;
|
||||
inGroups (group_fluid);
|
||||
sampleMode nearestPatchFaceAMI;
|
||||
|
||||
AMIMethod faceAreaWeightAMI;
|
||||
maxDistance2 1e-6; // max (square) distance
|
||||
minCosAngle 0.5; // min alignment
|
||||
|
||||
// Overwritten
|
||||
//sampleRegion otherRegion;
|
||||
//samplePatch otherPatch;
|
||||
|
||||
//- Optional override of added patchfields. If not specified
|
||||
// any added patchfields are of type calculated.
|
||||
patchFields
|
||||
{
|
||||
//- Problem is with patch fields that need additional
|
||||
// state. Patches get created with 0 faces and
|
||||
// then mapped to the correct size. The autoMap genrally
|
||||
// does not know value to give the new faces.
|
||||
//T
|
||||
//{
|
||||
// type compressible::turbulentTemperatureRadCoupledMixed;
|
||||
// Tnbr T;
|
||||
// kappaMethod solidThermo;
|
||||
// value uniform 300;
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
// How to select the faces:
|
||||
// - set : specify faceSet in 'set'
|
||||
// - patches : specify names in 'patches'
|
||||
// - autoPatch : attempts automatic patching of the specified
|
||||
// candidates in 'patches'.
|
||||
// - single region : match in the region itself
|
||||
// - multi regions : match in between regions only
|
||||
constructFrom autoPatch;
|
||||
|
||||
// If constructFrom = patches or autoPatch: names of patches.
|
||||
// Wildcards&patchGroups allowed.
|
||||
patches (group_fluid);
|
||||
}
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,61 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object fvSchemes;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
ddtSchemes
|
||||
{
|
||||
default Euler;
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
{
|
||||
default Gauss linear;
|
||||
}
|
||||
|
||||
divSchemes
|
||||
{
|
||||
default none;
|
||||
|
||||
div(phi,U) Gauss upwind;
|
||||
|
||||
div(phi,K) Gauss linear;
|
||||
div(phi,h) Gauss upwind;
|
||||
|
||||
turbulence Gauss upwind;
|
||||
div(phi,k) $turbulence;
|
||||
div(phi,epsilon) $turbulence;
|
||||
div(phi,R) $turbulence;
|
||||
div(R) Gauss linear;
|
||||
|
||||
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
{
|
||||
default Gauss linear corrected;
|
||||
}
|
||||
|
||||
interpolationSchemes
|
||||
{
|
||||
default linear;
|
||||
}
|
||||
|
||||
snGradSchemes
|
||||
{
|
||||
default corrected;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,82 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2112 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object fvSolution;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
solvers
|
||||
{
|
||||
rho
|
||||
{
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
tolerance 1e-7;
|
||||
relTol 0.1;
|
||||
}
|
||||
|
||||
rhoFinal
|
||||
{
|
||||
$rho;
|
||||
tolerance 1e-7;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
p_rgh
|
||||
{
|
||||
solver GAMG;
|
||||
tolerance 1e-7;
|
||||
relTol 0.01;
|
||||
smoother GaussSeidel;
|
||||
}
|
||||
|
||||
p_rghFinal
|
||||
{
|
||||
$p_rgh;
|
||||
tolerance 1e-7;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
"(U|h|k|epsilon|R)"
|
||||
{
|
||||
solver PBiCGStab;
|
||||
preconditioner DILU;
|
||||
tolerance 1e-7;
|
||||
relTol 0.1;
|
||||
}
|
||||
|
||||
"(U|h|k|epsilon|R)Final"
|
||||
{
|
||||
$U;
|
||||
tolerance 1e-7;
|
||||
relTol 0;
|
||||
}
|
||||
}
|
||||
|
||||
PIMPLE
|
||||
{
|
||||
momentumPredictor yes;
|
||||
nCorrectors 2;
|
||||
nNonOrthogonalCorrectors 0;
|
||||
}
|
||||
|
||||
relaxationFactors
|
||||
{
|
||||
equations
|
||||
{
|
||||
"h.*" 1;
|
||||
"U.*" 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -0,0 +1,61 @@
|
||||
// -*- C++ -*-
|
||||
// Use the vtkWrite function object
|
||||
|
||||
vtkWrite
|
||||
{
|
||||
type vtkWrite;
|
||||
libs (utilityFunctionObjects);
|
||||
log true;
|
||||
|
||||
writeControl writeTime;
|
||||
writeInterval 1;
|
||||
|
||||
regions (".*");
|
||||
|
||||
internal true;
|
||||
|
||||
boundary true;
|
||||
|
||||
single false;
|
||||
|
||||
interpolate true;
|
||||
|
||||
// Fields to output (words or regex)
|
||||
fields (".*");
|
||||
|
||||
//- Output format (ascii | binary) - Default=binary
|
||||
// format binary;
|
||||
|
||||
//- Use legacy output format - Default=false
|
||||
// legacy false;
|
||||
|
||||
//- Output directory name - Default="postProcessing/<name>"
|
||||
// directory "VTK";
|
||||
|
||||
//- Write cell ids as field - Default=true
|
||||
writeIds false;
|
||||
}
|
||||
|
||||
|
||||
// Solid walls only
|
||||
walls
|
||||
{
|
||||
type vtkWrite;
|
||||
libs (utilityFunctionObjects);
|
||||
log true;
|
||||
|
||||
writeControl writeTime;
|
||||
writeInterval 1;
|
||||
|
||||
internal false;
|
||||
|
||||
// single true;
|
||||
|
||||
regions ( heater "(?i).*solid" );
|
||||
patches ( "(?i).*solid_to.*" "heater.*(Air|Water)" );
|
||||
|
||||
fields (T);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
Loading…
Reference in New Issue
Block a user