ENH: Update cvMesh tutorials.
This commit is contained in:
parent
fd8eebab13
commit
6fcb21987d
@ -6,4 +6,9 @@ cd ${0%/*} || exit 1 # run from this directory
|
||||
|
||||
cleanCase
|
||||
|
||||
rm -rf constant/cellAlignments > /dev/null 2>&1
|
||||
rm -rf constant/targetCellSize > /dev/null 2>&1
|
||||
rm -rf constant/internalDelaunayVertices > /dev/null 2>&1
|
||||
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
|
@ -4,10 +4,8 @@ cd ${0%/*} || exit 1 # run from this directory
|
||||
# Source tutorial run functions
|
||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||
|
||||
runApplication blockMesh
|
||||
runApplication cvMesh
|
||||
#runApplication collapseEdges 1e-10 180 -overwrite
|
||||
runApplication snappyHexMesh -overwrite
|
||||
runApplication checkMesh -constant -allGeometry -allTopology
|
||||
runApplication collapseEdges -latestTime -collapseFaces
|
||||
runApplication checkMesh -latestTime -allGeometry -allTopology
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
|
@ -5,30 +5,15 @@ cd ${0%/*} || exit 1 # run from this directory
|
||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||
|
||||
# Get the number of processors to run on from system/decomposeParDict
|
||||
nProc=`grep numberOfSubdomains system/decomposeParDict \
|
||||
| sed s/"numberOfSubdomains *\(.*\);"/"\1"/`
|
||||
nProc=$(getNumberOfProcessors)
|
||||
|
||||
runApplication blockMesh
|
||||
runApplication decomposePar
|
||||
|
||||
for dir in processor*
|
||||
do
|
||||
if [[ -d $dir ]]
|
||||
then
|
||||
cp -r $dir/constant/polyMesh $dir/constant/polyMesh_background
|
||||
fi
|
||||
done
|
||||
|
||||
runParallel cvMesh $nProc
|
||||
runParallel collapseEdges $nProc -latestTime -collapseFaces
|
||||
runParallel checkMesh $nProc -latestTime -allTopology -allGeometry
|
||||
|
||||
runApplication reconstructParMesh -constant -mergeTol 1e-10
|
||||
runParallel checkMesh $nProc -constant -allGeometry -allTopology
|
||||
|
||||
# To run from the same background mesh as before
|
||||
# for dir in processor*;
|
||||
# do
|
||||
# rm -r $dir/constant/polyMesh
|
||||
# cp -r $dir/constant/polyMesh_background $dir/constant/polyMesh
|
||||
# done
|
||||
runApplication reconstructParMesh -latestTime
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
|
@ -8,7 +8,7 @@
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format binary;
|
||||
format ascii;
|
||||
class polyBoundaryMesh;
|
||||
location "constant/polyMesh";
|
||||
object boundary;
|
||||
|
54
tutorials/mesh/cvMesh/blob/system/collapseDict
Normal file
54
tutorials/mesh/cvMesh/blob/system/collapseDict
Normal file
@ -0,0 +1,54 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: dev |
|
||||
| \\ / A nd | Web: http://www.openfoam.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
|
||||
root "";
|
||||
case "";
|
||||
instance "";
|
||||
local "";
|
||||
|
||||
class dictionary;
|
||||
object collapseDict;
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
collapseEdgesCoeffs
|
||||
{
|
||||
minimumEdgeLength 1e-4;
|
||||
maximumMergeAngle 180;
|
||||
reductionFactor 0.5;
|
||||
}
|
||||
|
||||
|
||||
collapseFacesCoeffs
|
||||
{
|
||||
initialFaceLengthFactor 0.5;
|
||||
reductionFactor 0.5;
|
||||
|
||||
allowEarlyCollapseToPoint on;
|
||||
allowEarlyCollapseCoeff 0.2;
|
||||
guardFraction 0.1;
|
||||
maxCollapseFaceToPointSideLengthCoeff 0.3;
|
||||
}
|
||||
|
||||
|
||||
meshQualityCoeffs
|
||||
{
|
||||
#include "meshQualityDict";
|
||||
maximumIterations 30;
|
||||
maximumSmoothingIterations 1;
|
||||
maxPointErrorCount 5;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -34,11 +34,11 @@ deltaT 1;
|
||||
|
||||
writeControl timeStep;
|
||||
|
||||
writeInterval 1000;
|
||||
writeInterval 80;
|
||||
|
||||
purgeWrite 0;
|
||||
|
||||
writeFormat binary;//ascii;
|
||||
writeFormat ascii;
|
||||
|
||||
writePrecision 12;
|
||||
|
||||
|
@ -86,7 +86,9 @@ surfaceConformation
|
||||
|
||||
surfaceSearchDistanceCoeff 5;
|
||||
|
||||
maxSurfaceProtrusionCoeff 0.1;
|
||||
nearBoundaryDistanceCoeff 5;
|
||||
|
||||
maxSurfaceProtrusionCoeff 0.001;
|
||||
|
||||
maxQuadAngle 125;
|
||||
|
||||
@ -96,34 +98,15 @@ surfaceConformation
|
||||
|
||||
conformationControls
|
||||
{
|
||||
initial
|
||||
{
|
||||
edgeSearchDistCoeff 5;
|
||||
surfacePtReplaceDistCoeff 0.5;
|
||||
surfacePtExclusionDistanceCoeff 0.5;
|
||||
}
|
||||
|
||||
iteration
|
||||
{
|
||||
edgeSearchDistCoeff 1.5;
|
||||
surfacePtReplaceDistCoeff 0.7;
|
||||
}
|
||||
edgeSearchDistCoeff 5;
|
||||
surfacePtReplaceDistCoeff 0.5;
|
||||
surfacePtExclusionDistanceCoeff 0.5;
|
||||
|
||||
maxIterations 15;
|
||||
|
||||
iterationToInitialHitRatioLimit 0.0001;
|
||||
}
|
||||
|
||||
coarseConformationControls
|
||||
{
|
||||
$conformationControls;
|
||||
}
|
||||
|
||||
fineConformationControls
|
||||
{
|
||||
$conformationControls;
|
||||
}
|
||||
|
||||
geometryToConformTo
|
||||
{
|
||||
blob.stl
|
||||
@ -140,12 +123,26 @@ surfaceConformation
|
||||
|
||||
motionControl
|
||||
{
|
||||
defaultCellSize 0.04;
|
||||
defaultCellSize 0.1;
|
||||
|
||||
// Assign a priority to all requests for cell sizes, the highest overrules.
|
||||
defaultPriority 0;
|
||||
//cellShapeControl constantControl;
|
||||
//cellShapeControl fileControl;
|
||||
cellShapeControl surfaceControl;
|
||||
|
||||
cellSizeControlGeometry
|
||||
constantControlCoeffs
|
||||
{
|
||||
cellSize $defaultCellSize;
|
||||
cellAlignment (1 1 0 0 1 0 0 1 1);
|
||||
}
|
||||
|
||||
fileControlCoeffs
|
||||
{
|
||||
pointFile "alignmentPoints";
|
||||
sizesFile "alignmentSizes";
|
||||
alignmentsFile "alignmentTensors";
|
||||
}
|
||||
|
||||
surfaceControlCoeffs
|
||||
{
|
||||
blob.stl
|
||||
{
|
||||
@ -155,22 +152,23 @@ motionControl
|
||||
surfaceCellSizeFunction uniformValue;
|
||||
uniformValueCoeffs
|
||||
{
|
||||
surfaceCellSize 0.04;
|
||||
surfaceCellSize 0.1;
|
||||
}
|
||||
|
||||
cellSizeFunction uniformDistance;
|
||||
uniformDistanceCoeffs
|
||||
{
|
||||
distance 0.1;
|
||||
}
|
||||
linearDistanceCoeffs
|
||||
{
|
||||
distanceCellSize $defaultCellSize;
|
||||
distance 0.1;
|
||||
}
|
||||
cellSizeFunction uniform;
|
||||
uniformCoeffs
|
||||
{}
|
||||
}
|
||||
}
|
||||
|
||||
maxRefinementIterations 1;
|
||||
|
||||
cellAspectRatioControl
|
||||
{
|
||||
aspectRatio 1.0;
|
||||
aspectRatioDirection (1 0 0);
|
||||
}
|
||||
|
||||
relaxationModel adaptiveLinear;
|
||||
|
||||
adaptiveLinearCoeffs
|
||||
@ -183,7 +181,7 @@ motionControl
|
||||
|
||||
timeChecks no;
|
||||
|
||||
maxLoadUnbalance 0.05;
|
||||
maxLoadUnbalance 0.5;
|
||||
|
||||
alignmentSearchSpokes 24;
|
||||
|
||||
@ -215,18 +213,9 @@ motionControl
|
||||
|
||||
polyMeshFiltering
|
||||
{
|
||||
writeTetDualMesh false;
|
||||
filterSizeCoeff 0.2;
|
||||
mergeClosenessCoeff 1e-3;
|
||||
edgeMergeAngle 45;
|
||||
continueFilteringOnBadInitialPolyMesh true;
|
||||
filterErrorReductionCoeff 0.5;
|
||||
filterCountSkipThreshold 4;
|
||||
surfaceStepFaceAngle 80;
|
||||
maxCollapseIterations 25;
|
||||
maxConsecutiveEqualFaceSets 5;
|
||||
edgeCollapseGuardFraction 0.1;
|
||||
maxCollapseFaceToPointSideLengthCoeff 0.35;
|
||||
filterEdges on;
|
||||
filterFaces off;
|
||||
writeTetDualMesh false;
|
||||
}
|
||||
|
||||
|
||||
|
@ -15,10 +15,10 @@ FoamFile
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
numberOfSubdomains 8;
|
||||
numberOfSubdomains 2;
|
||||
|
||||
//method scotch;
|
||||
method ptscotch;
|
||||
method scotch;
|
||||
//method ptscotch;
|
||||
// method hierarchical;
|
||||
|
||||
simpleCoeffs
|
||||
@ -29,7 +29,7 @@ simpleCoeffs
|
||||
|
||||
hierarchicalCoeffs
|
||||
{
|
||||
n ( 2 2 2 );
|
||||
n ( 2 1 1 );
|
||||
delta 0.001;
|
||||
order xyz;
|
||||
}
|
||||
|
@ -4,8 +4,10 @@ cd ${0%/*} || exit 1 # run from this directory
|
||||
# Source tutorial run functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
rm -rf constant/extendedFeatureEdgeMesh flange > /dev/null 2>&1
|
||||
rm -r constant/ccx constant/ccy constant/ccz > /dev/null 2>&1
|
||||
rm -rf constant/extendedFeatureEdgeMesh > /dev/null 2>&1
|
||||
rm -r constant/ccx constant/ccy constant/ccz > /dev/null 2>&1
|
||||
rm -r constant/internalDelaunayVertices constant/targetCellSize > /dev/null 2>&1
|
||||
rm -r 0/ccx 0/ccy 0/ccz > /dev/null 2>&1
|
||||
|
||||
cleanCase
|
||||
|
||||
|
@ -4,10 +4,6 @@ cd ${0%/*} || exit 1 # run from this directory
|
||||
# Source tutorial run functions
|
||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||
|
||||
# Get the number of processors to run on from system/decomposeParDict
|
||||
nProc=`grep numberOfSubdomains system/decomposeParDict \
|
||||
| sed s/"numberOfSubdomains *\(.*\);"/"\1"/`
|
||||
|
||||
runApplication surfaceFeatureExtract
|
||||
|
||||
# Create tight-fitting background mesh
|
||||
@ -16,25 +12,8 @@ runApplication topoSet -dict system/topoSetDict-background
|
||||
mv log.topoSet log.topoSet.background
|
||||
runApplication subsetMesh -cellSet background -patch walls -overwrite
|
||||
|
||||
runApplication decomposePar
|
||||
|
||||
# Backup initial background mesh on each processor
|
||||
for dir in processor*
|
||||
do
|
||||
if [[ -d $dir ]]
|
||||
then
|
||||
cp -r $dir/constant/polyMesh $dir/constant/polyMesh_background
|
||||
fi
|
||||
done
|
||||
|
||||
runParallel cvMesh $nProc
|
||||
#runParallel snappyHexMesh $nProc
|
||||
|
||||
runApplication reconstructParMesh -constant -mergeTol 1e-6
|
||||
|
||||
runApplication topoSet -dict system/topoSetDict-slices
|
||||
mv log.topoSet log.topoSet.slices
|
||||
runApplication writeCellCentres -constant
|
||||
runParallel checkMesh $nProc -constant -allGeometry -allTopology
|
||||
runApplication cvMesh
|
||||
#runApplication collapseEdges -time 100 -collapseFaces
|
||||
runApplication checkMesh -latestTime -allGeometry -allTopology
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
|
25
tutorials/mesh/cvMesh/flange/Allrun-parallel
Executable file
25
tutorials/mesh/cvMesh/flange/Allrun-parallel
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
cd ${0%/*} || exit 1 # run from this directory
|
||||
|
||||
# Source tutorial run functions
|
||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||
|
||||
# Get the number of processors to run on from system/decomposeParDict
|
||||
nProc=$(getNumberOfProcessors)
|
||||
|
||||
runApplication surfaceFeatureExtract
|
||||
|
||||
# Create tight-fitting background mesh
|
||||
runApplication blockMesh
|
||||
runApplication topoSet -dict system/topoSetDict-background
|
||||
mv log.topoSet log.topoSet.background
|
||||
runApplication subsetMesh background -patch walls -overwrite
|
||||
|
||||
runApplication decomposePar
|
||||
|
||||
runParallel cvMesh $nProc
|
||||
runParallel checkMesh $nProc -latestTime -allTopology -allGeometry
|
||||
|
||||
runApplication reconstructParMesh -constant
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
@ -21,7 +21,7 @@ xmax 0.0265;
|
||||
ymin -0.028;
|
||||
ymax 0.023;
|
||||
zmin -0.024;
|
||||
zmax 0.0025;
|
||||
zmax 0.01;
|
||||
|
||||
vertices
|
||||
(
|
||||
|
@ -8,44 +8,20 @@
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format binary;
|
||||
format ascii;
|
||||
class polyBoundaryMesh;
|
||||
location "constant/polyMesh";
|
||||
object boundary;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
5
|
||||
1
|
||||
(
|
||||
flange.obj_patch1
|
||||
walls
|
||||
{
|
||||
type wall;
|
||||
nFaces 24684;
|
||||
startFace 193547;
|
||||
}
|
||||
flange.obj_patch2
|
||||
{
|
||||
type wall;
|
||||
nFaces 1674;
|
||||
startFace 218231;
|
||||
}
|
||||
flange.obj_patch3
|
||||
{
|
||||
type wall;
|
||||
nFaces 438;
|
||||
startFace 219905;
|
||||
}
|
||||
flange.obj_patch4
|
||||
{
|
||||
type wall;
|
||||
nFaces 3595;
|
||||
startFace 220343;
|
||||
}
|
||||
cvMesh_defaultPatch
|
||||
{
|
||||
type wall;
|
||||
nFaces 0;
|
||||
startFace 223938;
|
||||
nFaces 116;
|
||||
startFace 155;
|
||||
}
|
||||
)
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
52
tutorials/mesh/cvMesh/flange/system/collapseDict
Normal file
52
tutorials/mesh/cvMesh/flange/system/collapseDict
Normal file
@ -0,0 +1,52 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: dev |
|
||||
| \\ / A nd | Web: http://www.openfoam.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
|
||||
root "";
|
||||
case "";
|
||||
instance "";
|
||||
local "";
|
||||
|
||||
class dictionary;
|
||||
object collapseDict;
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
collapseEdgesCoeffs
|
||||
{
|
||||
minimumEdgeLength 1e-6;
|
||||
maximumMergeAngle 180;
|
||||
reductionFactor 0.5;
|
||||
}
|
||||
|
||||
collapseFacesCoeffs
|
||||
{
|
||||
initialFaceLengthFactor 0.5;
|
||||
reductionFactor 0.5;
|
||||
|
||||
allowEarlyCollapseToPoint on;
|
||||
allowEarlyCollapseCoeff 0.2;
|
||||
guardFraction 0.1;
|
||||
maxCollapseFaceToPointSideLengthCoeff 0.3;
|
||||
}
|
||||
|
||||
meshQualityCoeffs
|
||||
{
|
||||
#include "meshQualityDict";
|
||||
maximumIterations 30;
|
||||
maximumSmoothingIterations 1;
|
||||
maxPointErrorCount 5;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
@ -22,23 +22,25 @@ FoamFile
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
application cvMesh;
|
||||
|
||||
startFrom startTime;
|
||||
|
||||
startTime 0;
|
||||
|
||||
stopAt endTime;
|
||||
|
||||
endTime 0;
|
||||
endTime 100;
|
||||
|
||||
deltaT 1;
|
||||
|
||||
writeControl timeStep;
|
||||
|
||||
writeInterval 1000;
|
||||
writeInterval 100;
|
||||
|
||||
purgeWrite 0;
|
||||
|
||||
writeFormat binary; //ascii;
|
||||
writeFormat ascii;
|
||||
|
||||
writePrecision 10;
|
||||
|
||||
|
@ -45,52 +45,35 @@ backgroundMeshDecomposition
|
||||
|
||||
surfaceConformation
|
||||
{
|
||||
locationInMesh (0 0 0);
|
||||
locationInMesh (0 0 0);
|
||||
|
||||
pointPairDistanceCoeff 0.1;
|
||||
pointPairDistanceCoeff 0.1;
|
||||
|
||||
mixedFeaturePointPPDistanceCoeff 5.0;
|
||||
|
||||
featurePointExclusionDistanceCoeff 0.65;
|
||||
featurePointExclusionDistanceCoeff 0.7;
|
||||
|
||||
featureEdgeExclusionDistanceCoeff 0.8;
|
||||
featureEdgeExclusionDistanceCoeff 0.7;
|
||||
|
||||
surfaceSearchDistanceCoeff 3;
|
||||
surfaceSearchDistanceCoeff 5;
|
||||
|
||||
maxSurfaceProtrusionCoeff 0.1;
|
||||
maxSurfaceProtrusionCoeff 0.1;
|
||||
|
||||
maxQuadAngle 125;
|
||||
maxQuadAngle 125;
|
||||
|
||||
surfaceConformationRebuildFrequency 10;
|
||||
|
||||
specialiseFeaturePoints on;
|
||||
|
||||
conformationControls
|
||||
{
|
||||
initial
|
||||
{
|
||||
edgeSearchDistCoeff 5;
|
||||
surfacePtReplaceDistCoeff 0.5;
|
||||
surfacePtExclusionDistanceCoeff 0.5;
|
||||
}
|
||||
edgeSearchDistCoeff 5;
|
||||
surfacePtReplaceDistCoeff 0.5;
|
||||
surfacePtExclusionDistanceCoeff 0.5;
|
||||
|
||||
iteration
|
||||
{
|
||||
edgeSearchDistCoeff 2;
|
||||
surfacePtReplaceDistCoeff 0.5;
|
||||
}
|
||||
maxIterations 15;
|
||||
|
||||
maxIterations 15;
|
||||
|
||||
iterationToInitialHitRatioLimit 0.001;
|
||||
}
|
||||
|
||||
coarseConformationControls
|
||||
{
|
||||
$conformationControls;
|
||||
}
|
||||
|
||||
fineConformationControls
|
||||
{
|
||||
$conformationControls;
|
||||
iterationToInitialHitRatioLimit 0.0001;
|
||||
}
|
||||
|
||||
geometryToConformTo
|
||||
@ -134,10 +117,25 @@ motionControl
|
||||
{
|
||||
defaultCellSize 0.001;
|
||||
|
||||
// Assign a priority to all requests for cell sizes, the highest overrules.
|
||||
defaultPriority 0;
|
||||
//cellShapeControl constantControl;
|
||||
//cellShapeControl fileControl;
|
||||
cellShapeControl surfaceControl;
|
||||
|
||||
cellSizeControlGeometry
|
||||
constantControlCoeffs
|
||||
{
|
||||
cellSize 0.05;
|
||||
cellAlignment (1 1 0 0 1 0 0 1 1);
|
||||
}
|
||||
|
||||
fileControlCoeffs
|
||||
{
|
||||
pointFile "";
|
||||
sizesFile "";
|
||||
alignmentsFile "";
|
||||
}
|
||||
|
||||
surfaceControlCoeffs
|
||||
//cellSizeControlGeometry
|
||||
{
|
||||
flange.obj
|
||||
{
|
||||
@ -146,18 +144,20 @@ motionControl
|
||||
surfaceCellSizeFunction uniformValue;
|
||||
uniformValueCoeffs
|
||||
{
|
||||
surfaceCellSize 0.0005;
|
||||
surfaceCellSize 0.001;
|
||||
}
|
||||
|
||||
cellSizeFunction linearDistance;
|
||||
linearDistanceCoeffs
|
||||
{
|
||||
distanceCellSize $defaultCellSize;
|
||||
distance 0.004;
|
||||
}
|
||||
cellSizeFunction uniform;
|
||||
uniformCoeffs{}
|
||||
}
|
||||
}
|
||||
|
||||
cellAspectRatioControl
|
||||
{
|
||||
aspectRatio 1.0;
|
||||
aspectRatioDirection (0 0 0);
|
||||
}
|
||||
|
||||
relaxationModel adaptiveLinear;
|
||||
|
||||
adaptiveLinearCoeffs
|
||||
@ -202,18 +202,9 @@ motionControl
|
||||
|
||||
polyMeshFiltering
|
||||
{
|
||||
writeTetDualMesh false;
|
||||
filterSizeCoeff 0.2;
|
||||
mergeClosenessCoeff 1e-9;
|
||||
continueFilteringOnBadInitialPolyMesh true;
|
||||
filterErrorReductionCoeff 0.5;
|
||||
filterCountSkipThreshold 4;
|
||||
maxCollapseIterations 25;
|
||||
maxConsecutiveEqualFaceSets 5;
|
||||
surfaceStepFaceAngle 90;
|
||||
edgeCollapseGuardFraction 0.0; //0.3;
|
||||
maxCollapseFaceToPointSideLengthCoeff 0.35;
|
||||
edgeMergeAngle 30;
|
||||
filterEdges on;
|
||||
filterFaces on;
|
||||
writeTetDualMesh false;
|
||||
}
|
||||
|
||||
|
||||
@ -222,4 +213,5 @@ meshQualityControls
|
||||
#include "meshQualityDict"
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
@ -15,14 +15,14 @@ FoamFile
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
numberOfSubdomains 4;
|
||||
numberOfSubdomains 8;
|
||||
|
||||
method scotch;
|
||||
//method hierarchical;
|
||||
//method scotch;
|
||||
method hierarchical;
|
||||
|
||||
simpleCoeffs
|
||||
{
|
||||
n ( 2 2 1 );
|
||||
n ( 2 2 2 );
|
||||
delta 0.001;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: dev |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -22,7 +22,7 @@ ddtSchemes
|
||||
|
||||
gradSchemes
|
||||
{
|
||||
default none;
|
||||
default Gauss linear;
|
||||
}
|
||||
|
||||
divSchemes
|
||||
@ -33,6 +33,7 @@ divSchemes
|
||||
laplacianSchemes
|
||||
{
|
||||
default none;
|
||||
laplacian(nn) Gauss linear corrected;
|
||||
}
|
||||
|
||||
interpolationSchemes
|
||||
@ -42,7 +43,7 @@ interpolationSchemes
|
||||
|
||||
snGradSchemes
|
||||
{
|
||||
default none;
|
||||
default corrected;
|
||||
}
|
||||
|
||||
fluxRequired
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: dev |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -17,6 +17,13 @@ FoamFile
|
||||
|
||||
solvers
|
||||
{
|
||||
nn
|
||||
{
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
tolerance 1e-06;
|
||||
relTol 0;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
|
@ -23,7 +23,7 @@ FoamFile
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
//- Maximum non-orthogonality allowed. Set to 180 to disable.
|
||||
maxNonOrtho 65;
|
||||
maxNonOrtho 45;
|
||||
|
||||
//- Max skewness allowed. Set to <0 to disable.
|
||||
maxBoundarySkewness 50;
|
||||
|
@ -24,7 +24,7 @@ flange.obj
|
||||
// than includedAngle as features
|
||||
// - 0 : selects no edges
|
||||
// - 180: selects all edges
|
||||
includedAngle 155;
|
||||
includedAngle 100;
|
||||
}
|
||||
|
||||
|
||||
|
@ -30,12 +30,8 @@ runApplication surfaceOrient \
|
||||
constant/triSurface/domain_clean_orient.stl
|
||||
mv log.surfaceOrient log.surfaceOrient.domain
|
||||
|
||||
runApplication surfaceFeatureExtract
|
||||
mv log.surfaceFeatureExtract log.surfaceFeatureExtract.coneAndSphere_clean
|
||||
|
||||
unset FOAM_SIGFPE
|
||||
runApplication surfaceFeatureExtract
|
||||
mv log.surfaceFeatureExtract log.surfaceFeatureExtract.domain
|
||||
|
||||
# Generate aligned points (in constant/internalDelaunayVertices) and a
|
||||
# mesh from that.
|
||||
|
@ -96,12 +96,12 @@ surfaceConformation
|
||||
// Distance to a feature point within which surface and edge
|
||||
// conformation points are excluded - fraction of the local target
|
||||
// cell size
|
||||
featurePointExclusionDistanceCoeff 0.4;
|
||||
featurePointExclusionDistanceCoeff 0.6;
|
||||
|
||||
// Distance to an existing feature edge conformation location
|
||||
// within which other edge conformation location are excluded -
|
||||
// fraction of the local target cell size
|
||||
featureEdgeExclusionDistanceCoeff 0.2;
|
||||
featureEdgeExclusionDistanceCoeff 0.6;
|
||||
|
||||
// Optimisation: do not check for surface intersection (of dual edges)
|
||||
// for points near to surface.
|
||||
@ -120,6 +120,9 @@ surfaceConformation
|
||||
// Frequency to redo surface conformation (expensive).
|
||||
surfaceConformationRebuildFrequency 10;
|
||||
|
||||
// Specialised feature point handling
|
||||
specialiseFeaturePoints on;
|
||||
|
||||
// Initial and intermediate controls
|
||||
conformationControls
|
||||
{
|
||||
@ -131,7 +134,7 @@ surfaceConformation
|
||||
// conformation should have priority)
|
||||
|
||||
// distance to search for near feature edges
|
||||
edgeSearchDistCoeff 1.1;
|
||||
edgeSearchDistCoeff 2;
|
||||
|
||||
// Proximity to a feature edge where a surface hit is
|
||||
// not created, only the edge conformation is created
|
||||
@ -255,13 +258,49 @@ initialPoints
|
||||
motionControl
|
||||
{
|
||||
// Absolute cell size of back ground mesh. This is the maximum cell size.
|
||||
defaultCellSize 0.1;
|
||||
defaultCellSize 0.05;
|
||||
|
||||
// Assign a priority to all requests for cell sizes, the highest overrules.
|
||||
defaultPriority 0;
|
||||
cellShapeControl surfaceControl;
|
||||
|
||||
cellSizeControlGeometry
|
||||
surfaceControlCoeffs
|
||||
{
|
||||
coneAndSphere
|
||||
{
|
||||
priority 1;
|
||||
mode bothSides;
|
||||
|
||||
surfaceCellSizeFunction uniformValue;
|
||||
uniformValueCoeffs
|
||||
{
|
||||
surfaceCellSize $defaultCellSize;
|
||||
}
|
||||
|
||||
cellSizeFunction uniform;
|
||||
uniformCoeffs
|
||||
{}
|
||||
}
|
||||
|
||||
domain
|
||||
{
|
||||
priority 1;
|
||||
mode bothSides;
|
||||
|
||||
surfaceCellSizeFunction uniformValue;
|
||||
uniformValueCoeffs
|
||||
{
|
||||
surfaceCellSize $defaultCellSize;
|
||||
}
|
||||
|
||||
cellSizeFunction uniform;
|
||||
uniformCoeffs
|
||||
{}
|
||||
}
|
||||
}
|
||||
|
||||
cellAspectRatioControl
|
||||
{
|
||||
aspectRatio 1.0;
|
||||
aspectRatioDirection (0 0 0);
|
||||
}
|
||||
|
||||
// Underrelaxation for point motion. Simulated annealing: starts off at 1
|
||||
@ -343,12 +382,14 @@ polyMeshFiltering
|
||||
{
|
||||
// Upper limit on the size of faces to be filtered.
|
||||
// fraction of the local target cell size
|
||||
filterSizeCoeff 0.2;
|
||||
filterSizeCoeff 0.5;
|
||||
|
||||
// Upper limit on how close two dual vertices can be before
|
||||
// being merged, fraction of the local target cell size
|
||||
mergeClosenessCoeff 1e-9;
|
||||
|
||||
edgeMergeAngle 30;
|
||||
|
||||
// To not filter: set maxNonOrtho to 1 (so check fails) and then
|
||||
// set continueFilteringOnBadInitialPolyMesh to false.
|
||||
continueFilteringOnBadInitialPolyMesh true;
|
||||
@ -384,58 +425,7 @@ polyMeshFiltering
|
||||
}
|
||||
|
||||
|
||||
// Generic mesh quality settings. At any undoable phase these determine
|
||||
// where to undo. Same as in snappyHexMeshDict
|
||||
meshQualityControls
|
||||
{
|
||||
//- Maximum non-orthogonality allowed. Set to 180 to disable.
|
||||
maxNonOrtho 65;
|
||||
|
||||
//- Max skewness allowed. Set to <0 to disable.
|
||||
maxBoundarySkewness 50;
|
||||
maxInternalSkewness 10;
|
||||
|
||||
//- Max concaveness allowed. Is angle (in degrees) below which concavity
|
||||
// is allowed. 0 is straight face, <0 would be convex face.
|
||||
// Set to 180 to disable.
|
||||
maxConcave 80;
|
||||
|
||||
//- Minimum pyramid volume. Is absolute volume of cell pyramid.
|
||||
// Set to a sensible fraction of the smallest cell volume expected.
|
||||
// Set to very negative number (e.g. -1E30) to disable.
|
||||
minVol -1E30;
|
||||
|
||||
//- Minimum quality of the tet formed by the
|
||||
// variable base point minimum decomposition triangles and
|
||||
// the cell centre (so not face-centre decomposition).
|
||||
// This has to be a positive number for tracking
|
||||
// to work. Set to very negative number (e.g. -1E30) to
|
||||
// disable.
|
||||
// <0 = inside out tet,
|
||||
// 0 = flat tet
|
||||
// 1 = regular tet
|
||||
minTetQuality 1e-30;
|
||||
|
||||
//- Minimum absolute face area. Set to <0 to disable.
|
||||
minArea -1;
|
||||
|
||||
//- Minimum face twist. Set to <-1 to disable. dot product of face normal
|
||||
//- and face centre triangles normal
|
||||
minTwist 0.001;
|
||||
|
||||
//- minimum normalised cell determinant
|
||||
//- 1 = hex, <= 0 = folded or flattened illegal cell
|
||||
minDeterminant 0.001;
|
||||
|
||||
//- minFaceWeight (0 -> 0.5)
|
||||
minFaceWeight 0.02;
|
||||
|
||||
//- minVolRatio (0 -> 1)
|
||||
minVolRatio 0.01;
|
||||
|
||||
//must be >0 for Fluent compatibility
|
||||
minTriangleTwist -1;
|
||||
}
|
||||
#include "meshQualityDict";
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
73
tutorials/mesh/cvMesh/simpleShapes/system/meshQualityDict
Normal file
73
tutorials/mesh/cvMesh/simpleShapes/system/meshQualityDict
Normal file
@ -0,0 +1,73 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: dev |
|
||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
|
||||
root "";
|
||||
case "";
|
||||
instance "";
|
||||
local "";
|
||||
|
||||
class dictionary;
|
||||
object meshQualityDict;
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
//- Maximum non-orthogonality allowed. Set to 180 to disable.
|
||||
maxNonOrtho 65;
|
||||
|
||||
//- Max skewness allowed. Set to <0 to disable.
|
||||
maxBoundarySkewness 50;
|
||||
maxInternalSkewness 10;
|
||||
|
||||
//- Max concaveness allowed. Is angle (in degrees) below which concavity
|
||||
// is allowed. 0 is straight face, <0 would be convex face.
|
||||
// Set to 180 to disable.
|
||||
maxConcave 80;
|
||||
|
||||
//- Minimum quality of the tet formed by the face-centre
|
||||
// and variable base point minimum decomposition triangles and
|
||||
// the cell centre. This has to be a positive number for tracking
|
||||
// to work. Set to very negative number (e.g. -1E30) to
|
||||
// disable.
|
||||
// <0 = inside out tet,
|
||||
// 0 = flat tet
|
||||
// 1 = regular tet
|
||||
minTetQuality 1e-30;
|
||||
|
||||
//- Minimum pyramid volume. Is absolute volume of cell pyramid.
|
||||
// Set to a sensible fraction of the smallest cell volume expected.
|
||||
// Set to very negative number (e.g. -1E30) to disable.
|
||||
minVol 0;
|
||||
|
||||
//- Minimum face area. Set to <0 to disable.
|
||||
minArea -1;
|
||||
|
||||
//- Minimum face twist. Set to <-1 to disable. dot product of face normal
|
||||
//- and face centre triangles normal
|
||||
minTwist 0.001;
|
||||
|
||||
//- minimum normalised cell determinant
|
||||
//- 1 = hex, <= 0 = folded or flattened illegal cell
|
||||
minDeterminant 0.001;
|
||||
|
||||
//- minFaceWeight (0 -> 0.5)
|
||||
minFaceWeight 0.02;
|
||||
|
||||
//- minVolRatio (0 -> 1)
|
||||
minVolRatio 0.01;
|
||||
|
||||
//must be >0 for Fluent compatibility
|
||||
minTriangleTwist -1;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
Loading…
Reference in New Issue
Block a user