mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: foamyHexMesh: Set no refinement iterations in global dictionary
ENH: foamyHexMesh: Made default region volume type that of it's parent
Foamy surface conformation entries have a "meshableSide" entry which
controls which side of the surface is to be meshed. Typically this is
set "inside" for boundaries and "both" for baffles. A sub-region's
default entry is now taken from it's parent, rather than a specific
value (it was "inside"). This is consistent with how other entries are
handled.
surfaceConformation
{
locationInMesh (0 0 0);
geometryToConformTo
{
baffle
{
featureMethod extractFeatures;
includedAngle 120;
meshableSide both; // <-- per-surface setting
regions
{
disk
{
meshableSide both; // <-- per-region setting*
// *in this example, this entry is not needed, as it
// is taken from the per-surface setting above
}
}
}
// ...
}
}
ENH: foamyHexMesh: Added (reinstated) baffle patches
A patch can now be assigned to a baffle surface. This assignment will
take precedence over any face-zones.
surfaceConformation
{
locationInMesh (0 0 0);
geometryToConformTo
{
disk
{
featureMethod extractFeatures;
includedAngle 120;
meshableSide both; // <-- baffle
patchInfo
{
type wall;
inGroups (walls);
}
}
// ...
}
}
STYLE: foamyHexMesh: Switched off output of all the secondary meshes
This commit is contained in:
committed by
Andrew Heather
parent
4ee0af6b08
commit
66b3934ab6
@ -2227,47 +2227,52 @@ void Foam::conformalVoronoiMesh::createFacesOwnerNeighbourAndPatches
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// if
|
if
|
||||||
// (
|
(
|
||||||
// ptPairs_.isPointPair(vA, vB)
|
!vA->boundaryPoint()
|
||||||
// || ftPtConformer_.featurePointPairs().isPointPair(vA, vB)
|
|| !vB->boundaryPoint()
|
||||||
// )
|
|| ptPairs_.isPointPair(vA, vB)
|
||||||
// {
|
|| ftPtConformer_.featurePointPairs().isPointPair(vA, vB)
|
||||||
patchIndex = geometryToConformTo_.findPatch(ptA, ptB);
|
)
|
||||||
// }
|
|
||||||
|
|
||||||
if (patchIndex != -1)
|
|
||||||
{
|
{
|
||||||
// if
|
patchIndex = geometryToConformTo_.findPatch(ptA, ptB);
|
||||||
// (
|
|
||||||
// vA->boundaryPoint() && vB->boundaryPoint()
|
|
||||||
// && !ptPairs_.isPointPair(vA, vB)
|
|
||||||
// )
|
|
||||||
// {
|
|
||||||
// indirectPatchFace[patchIndex].append(true);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// indirectPatchFace[patchIndex].append(false);
|
|
||||||
// }
|
|
||||||
// patchFaces[patchIndex].append(newDualFace);
|
|
||||||
// patchOwners[patchIndex].append(own);
|
|
||||||
// indirectPatchFace[patchIndex].append(false);
|
|
||||||
//
|
|
||||||
// if
|
|
||||||
// (
|
|
||||||
// labelPair(vB->index(), vB->procIndex())
|
|
||||||
// < labelPair(vA->index(), vA->procIndex())
|
|
||||||
// )
|
|
||||||
// {
|
|
||||||
// patchPPSlaves[patchIndex].append(vB->index());
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// patchPPSlaves[patchIndex].append(vA->index());
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
// else
|
|
||||||
|
if
|
||||||
|
(
|
||||||
|
patchIndex != -1
|
||||||
|
&& geometryToConformTo_.patchInfo().set(patchIndex)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
// baffle faces
|
||||||
|
|
||||||
|
patchFaces[patchIndex].append(newDualFace);
|
||||||
|
patchOwners[patchIndex].append(own);
|
||||||
|
indirectPatchFace[patchIndex].append(false);
|
||||||
|
|
||||||
|
reverse(newDualFace);
|
||||||
|
|
||||||
|
patchFaces[patchIndex].append(newDualFace);
|
||||||
|
patchOwners[patchIndex].append(nei);
|
||||||
|
indirectPatchFace[patchIndex].append(false);
|
||||||
|
|
||||||
|
if
|
||||||
|
(
|
||||||
|
labelPair(vB->index(), vB->procIndex())
|
||||||
|
< labelPair(vA->index(), vA->procIndex())
|
||||||
|
)
|
||||||
|
{
|
||||||
|
patchPPSlaves[patchIndex].append(vB->index());
|
||||||
|
patchPPSlaves[patchIndex].append(vB->index());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
patchPPSlaves[patchIndex].append(vA->index());
|
||||||
|
patchPPSlaves[patchIndex].append(vA->index());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
// internal face
|
// internal face
|
||||||
faces[dualFacei] = newDualFace;
|
faces[dualFacei] = newDualFace;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2017 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -443,7 +443,11 @@ Foam::conformationSurfaces::conformationSurfaces
|
|||||||
regionDict.lookupOrDefault<word>
|
regionDict.lookupOrDefault<word>
|
||||||
(
|
(
|
||||||
"meshableSide",
|
"meshableSide",
|
||||||
"inside"
|
extendedFeatureEdgeMesh::
|
||||||
|
sideVolumeTypeNames_
|
||||||
|
[
|
||||||
|
globalVolumeTypes[surfI]
|
||||||
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|||||||
@ -68,6 +68,8 @@ motionControl
|
|||||||
{
|
{
|
||||||
maxSmoothingIterations 100;
|
maxSmoothingIterations 100;
|
||||||
|
|
||||||
|
maxRefinementIterations 0;
|
||||||
|
|
||||||
cellAspectRatioControl
|
cellAspectRatioControl
|
||||||
{
|
{
|
||||||
aspectRatio 1.0;
|
aspectRatio 1.0;
|
||||||
@ -114,9 +116,9 @@ polyMeshFiltering
|
|||||||
{
|
{
|
||||||
filterEdges on;
|
filterEdges on;
|
||||||
filterFaces off;
|
filterFaces off;
|
||||||
writeTetDualMesh true;
|
writeTetDualMesh false;
|
||||||
writeCellShapeControlMesh true;
|
writeCellShapeControlMesh false;
|
||||||
writeBackgroundMeshDecomposition true;
|
writeBackgroundMeshDecomposition false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user