ENH: Update cvMesh tutorials.

This commit is contained in:
laurence 2012-12-11 17:22:49 +00:00
parent fd8eebab13
commit 6fcb21987d
25 changed files with 1910 additions and 464 deletions

View File

@ -6,4 +6,9 @@ cd ${0%/*} || exit 1 # run from this directory
cleanCase 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 # ----------------------------------------------------------------- end-of-file

View File

@ -4,10 +4,8 @@ cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions # Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions . $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication blockMesh
runApplication cvMesh runApplication cvMesh
#runApplication collapseEdges 1e-10 180 -overwrite runApplication collapseEdges -latestTime -collapseFaces
runApplication snappyHexMesh -overwrite runApplication checkMesh -latestTime -allGeometry -allTopology
runApplication checkMesh -constant -allGeometry -allTopology
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -5,30 +5,15 @@ cd ${0%/*} || exit 1 # run from this directory
. $WM_PROJECT_DIR/bin/tools/RunFunctions . $WM_PROJECT_DIR/bin/tools/RunFunctions
# Get the number of processors to run on from system/decomposeParDict # Get the number of processors to run on from system/decomposeParDict
nProc=`grep numberOfSubdomains system/decomposeParDict \ nProc=$(getNumberOfProcessors)
| sed s/"numberOfSubdomains *\(.*\);"/"\1"/`
runApplication blockMesh runApplication blockMesh
runApplication decomposePar 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 cvMesh $nProc
runParallel collapseEdges $nProc -latestTime -collapseFaces
runParallel checkMesh $nProc -latestTime -allTopology -allGeometry
runApplication reconstructParMesh -constant -mergeTol 1e-10 runApplication reconstructParMesh -latestTime
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
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -8,7 +8,7 @@
FoamFile FoamFile
{ {
version 2.0; version 2.0;
format binary; format ascii;
class polyBoundaryMesh; class polyBoundaryMesh;
location "constant/polyMesh"; location "constant/polyMesh";
object boundary; object boundary;

View 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;
}
// ************************************************************************* //

View File

@ -34,11 +34,11 @@ deltaT 1;
writeControl timeStep; writeControl timeStep;
writeInterval 1000; writeInterval 80;
purgeWrite 0; purgeWrite 0;
writeFormat binary;//ascii; writeFormat ascii;
writePrecision 12; writePrecision 12;

View File

@ -86,7 +86,9 @@ surfaceConformation
surfaceSearchDistanceCoeff 5; surfaceSearchDistanceCoeff 5;
maxSurfaceProtrusionCoeff 0.1; nearBoundaryDistanceCoeff 5;
maxSurfaceProtrusionCoeff 0.001;
maxQuadAngle 125; maxQuadAngle 125;
@ -95,35 +97,16 @@ surfaceConformation
specialiseFeaturePoints off; specialiseFeaturePoints off;
conformationControls conformationControls
{
initial
{ {
edgeSearchDistCoeff 5; edgeSearchDistCoeff 5;
surfacePtReplaceDistCoeff 0.5; surfacePtReplaceDistCoeff 0.5;
surfacePtExclusionDistanceCoeff 0.5; surfacePtExclusionDistanceCoeff 0.5;
}
iteration
{
edgeSearchDistCoeff 1.5;
surfacePtReplaceDistCoeff 0.7;
}
maxIterations 15; maxIterations 15;
iterationToInitialHitRatioLimit 0.0001; iterationToInitialHitRatioLimit 0.0001;
} }
coarseConformationControls
{
$conformationControls;
}
fineConformationControls
{
$conformationControls;
}
geometryToConformTo geometryToConformTo
{ {
blob.stl blob.stl
@ -140,12 +123,26 @@ surfaceConformation
motionControl motionControl
{ {
defaultCellSize 0.04; defaultCellSize 0.1;
// Assign a priority to all requests for cell sizes, the highest overrules. //cellShapeControl constantControl;
defaultPriority 0; //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 blob.stl
{ {
@ -155,20 +152,21 @@ motionControl
surfaceCellSizeFunction uniformValue; surfaceCellSizeFunction uniformValue;
uniformValueCoeffs uniformValueCoeffs
{ {
surfaceCellSize 0.04; surfaceCellSize 0.1;
} }
cellSizeFunction uniformDistance; cellSizeFunction uniform;
uniformDistanceCoeffs uniformCoeffs
{}
}
}
maxRefinementIterations 1;
cellAspectRatioControl
{ {
distance 0.1; aspectRatio 1.0;
} aspectRatioDirection (1 0 0);
linearDistanceCoeffs
{
distanceCellSize $defaultCellSize;
distance 0.1;
}
}
} }
relaxationModel adaptiveLinear; relaxationModel adaptiveLinear;
@ -183,7 +181,7 @@ motionControl
timeChecks no; timeChecks no;
maxLoadUnbalance 0.05; maxLoadUnbalance 0.5;
alignmentSearchSpokes 24; alignmentSearchSpokes 24;
@ -215,18 +213,9 @@ motionControl
polyMeshFiltering polyMeshFiltering
{ {
filterEdges on;
filterFaces off;
writeTetDualMesh false; 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;
} }

View File

@ -15,10 +15,10 @@ FoamFile
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 8; numberOfSubdomains 2;
//method scotch; method scotch;
method ptscotch; //method ptscotch;
// method hierarchical; // method hierarchical;
simpleCoeffs simpleCoeffs
@ -29,7 +29,7 @@ simpleCoeffs
hierarchicalCoeffs hierarchicalCoeffs
{ {
n ( 2 2 2 ); n ( 2 1 1 );
delta 0.001; delta 0.001;
order xyz; order xyz;
} }

View File

@ -4,8 +4,10 @@ cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions # Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions . $WM_PROJECT_DIR/bin/tools/CleanFunctions
rm -rf constant/extendedFeatureEdgeMesh flange > /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/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 cleanCase

View File

@ -4,10 +4,6 @@ cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions # Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions . $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 runApplication surfaceFeatureExtract
# Create tight-fitting background mesh # Create tight-fitting background mesh
@ -16,25 +12,8 @@ runApplication topoSet -dict system/topoSetDict-background
mv log.topoSet log.topoSet.background mv log.topoSet log.topoSet.background
runApplication subsetMesh -cellSet background -patch walls -overwrite runApplication subsetMesh -cellSet background -patch walls -overwrite
runApplication decomposePar runApplication cvMesh
#runApplication collapseEdges -time 100 -collapseFaces
# Backup initial background mesh on each processor runApplication checkMesh -latestTime -allGeometry -allTopology
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
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View 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

View File

@ -21,7 +21,7 @@ xmax 0.0265;
ymin -0.028; ymin -0.028;
ymax 0.023; ymax 0.023;
zmin -0.024; zmin -0.024;
zmax 0.0025; zmax 0.01;
vertices vertices
( (

View File

@ -8,44 +8,20 @@
FoamFile FoamFile
{ {
version 2.0; version 2.0;
format binary; format ascii;
class polyBoundaryMesh; class polyBoundaryMesh;
location "constant/polyMesh"; location "constant/polyMesh";
object boundary; object boundary;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
5 1
( (
flange.obj_patch1 walls
{ {
type wall; type wall;
nFaces 24684; nFaces 116;
startFace 193547; startFace 155;
}
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;
} }
) )

File diff suppressed because it is too large Load Diff

View 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;
}
// ************************************************************************* //

View File

@ -22,23 +22,25 @@ FoamFile
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application cvMesh;
startFrom startTime; startFrom startTime;
startTime 0; startTime 0;
stopAt endTime; stopAt endTime;
endTime 0; endTime 100;
deltaT 1; deltaT 1;
writeControl timeStep; writeControl timeStep;
writeInterval 1000; writeInterval 100;
purgeWrite 0; purgeWrite 0;
writeFormat binary; //ascii; writeFormat ascii;
writePrecision 10; writePrecision 10;

View File

@ -51,11 +51,11 @@ surfaceConformation
mixedFeaturePointPPDistanceCoeff 5.0; 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;
@ -63,34 +63,17 @@ surfaceConformation
surfaceConformationRebuildFrequency 10; surfaceConformationRebuildFrequency 10;
specialiseFeaturePoints on;
conformationControls conformationControls
{
initial
{ {
edgeSearchDistCoeff 5; edgeSearchDistCoeff 5;
surfacePtReplaceDistCoeff 0.5; surfacePtReplaceDistCoeff 0.5;
surfacePtExclusionDistanceCoeff 0.5; surfacePtExclusionDistanceCoeff 0.5;
}
iteration
{
edgeSearchDistCoeff 2;
surfacePtReplaceDistCoeff 0.5;
}
maxIterations 15; maxIterations 15;
iterationToInitialHitRatioLimit 0.001; iterationToInitialHitRatioLimit 0.0001;
}
coarseConformationControls
{
$conformationControls;
}
fineConformationControls
{
$conformationControls;
} }
geometryToConformTo geometryToConformTo
@ -134,10 +117,25 @@ motionControl
{ {
defaultCellSize 0.001; defaultCellSize 0.001;
// Assign a priority to all requests for cell sizes, the highest overrules. //cellShapeControl constantControl;
defaultPriority 0; //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 flange.obj
{ {
@ -146,16 +144,18 @@ motionControl
surfaceCellSizeFunction uniformValue; surfaceCellSizeFunction uniformValue;
uniformValueCoeffs uniformValueCoeffs
{ {
surfaceCellSize 0.0005; surfaceCellSize 0.001;
} }
cellSizeFunction linearDistance; cellSizeFunction uniform;
linearDistanceCoeffs uniformCoeffs{}
}
}
cellAspectRatioControl
{ {
distanceCellSize $defaultCellSize; aspectRatio 1.0;
distance 0.004; aspectRatioDirection (0 0 0);
}
}
} }
relaxationModel adaptiveLinear; relaxationModel adaptiveLinear;
@ -202,18 +202,9 @@ motionControl
polyMeshFiltering polyMeshFiltering
{ {
filterEdges on;
filterFaces on;
writeTetDualMesh false; 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;
} }
@ -222,4 +213,5 @@ meshQualityControls
#include "meshQualityDict" #include "meshQualityDict"
} }
// ************************************************************************* // // ************************************************************************* //

View File

@ -15,14 +15,14 @@ FoamFile
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 4; numberOfSubdomains 8;
method scotch; //method scotch;
//method hierarchical; method hierarchical;
simpleCoeffs simpleCoeffs
{ {
n ( 2 2 1 ); n ( 2 2 2 );
delta 0.001; delta 0.001;
} }

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev | | \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org | | \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -22,7 +22,7 @@ ddtSchemes
gradSchemes gradSchemes
{ {
default none; default Gauss linear;
} }
divSchemes divSchemes
@ -33,6 +33,7 @@ divSchemes
laplacianSchemes laplacianSchemes
{ {
default none; default none;
laplacian(nn) Gauss linear corrected;
} }
interpolationSchemes interpolationSchemes
@ -42,7 +43,7 @@ interpolationSchemes
snGradSchemes snGradSchemes
{ {
default none; default corrected;
} }
fluxRequired fluxRequired

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev | | \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org | | \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -17,6 +17,13 @@ FoamFile
solvers solvers
{ {
nn
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}
} }
// ************************************************************************* // // ************************************************************************* //

View File

@ -23,7 +23,7 @@ FoamFile
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- Maximum non-orthogonality allowed. Set to 180 to disable. //- Maximum non-orthogonality allowed. Set to 180 to disable.
maxNonOrtho 65; maxNonOrtho 45;
//- Max skewness allowed. Set to <0 to disable. //- Max skewness allowed. Set to <0 to disable.
maxBoundarySkewness 50; maxBoundarySkewness 50;

View File

@ -24,7 +24,7 @@ flange.obj
// than includedAngle as features // than includedAngle as features
// - 0 : selects no edges // - 0 : selects no edges
// - 180: selects all edges // - 180: selects all edges
includedAngle 155; includedAngle 100;
} }

View File

@ -30,12 +30,8 @@ runApplication surfaceOrient \
constant/triSurface/domain_clean_orient.stl constant/triSurface/domain_clean_orient.stl
mv log.surfaceOrient log.surfaceOrient.domain mv log.surfaceOrient log.surfaceOrient.domain
runApplication surfaceFeatureExtract
mv log.surfaceFeatureExtract log.surfaceFeatureExtract.coneAndSphere_clean
unset FOAM_SIGFPE unset FOAM_SIGFPE
runApplication surfaceFeatureExtract runApplication surfaceFeatureExtract
mv log.surfaceFeatureExtract log.surfaceFeatureExtract.domain
# Generate aligned points (in constant/internalDelaunayVertices) and a # Generate aligned points (in constant/internalDelaunayVertices) and a
# mesh from that. # mesh from that.

View File

@ -96,12 +96,12 @@ surfaceConformation
// Distance to a feature point within which surface and edge // Distance to a feature point within which surface and edge
// conformation points are excluded - fraction of the local target // conformation points are excluded - fraction of the local target
// cell size // cell size
featurePointExclusionDistanceCoeff 0.4; featurePointExclusionDistanceCoeff 0.6;
// Distance to an existing feature edge conformation location // Distance to an existing feature edge conformation location
// within which other edge conformation location are excluded - // within which other edge conformation location are excluded -
// fraction of the local target cell size // fraction of the local target cell size
featureEdgeExclusionDistanceCoeff 0.2; featureEdgeExclusionDistanceCoeff 0.6;
// Optimisation: do not check for surface intersection (of dual edges) // Optimisation: do not check for surface intersection (of dual edges)
// for points near to surface. // for points near to surface.
@ -120,6 +120,9 @@ surfaceConformation
// Frequency to redo surface conformation (expensive). // Frequency to redo surface conformation (expensive).
surfaceConformationRebuildFrequency 10; surfaceConformationRebuildFrequency 10;
// Specialised feature point handling
specialiseFeaturePoints on;
// Initial and intermediate controls // Initial and intermediate controls
conformationControls conformationControls
{ {
@ -131,7 +134,7 @@ surfaceConformation
// conformation should have priority) // conformation should have priority)
// distance to search for near feature edges // distance to search for near feature edges
edgeSearchDistCoeff 1.1; edgeSearchDistCoeff 2;
// Proximity to a feature edge where a surface hit is // Proximity to a feature edge where a surface hit is
// not created, only the edge conformation is created // not created, only the edge conformation is created
@ -255,13 +258,49 @@ initialPoints
motionControl motionControl
{ {
// Absolute cell size of back ground mesh. This is the maximum cell size. // 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. cellShapeControl surfaceControl;
defaultPriority 0;
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 // 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. // Upper limit on the size of faces to be filtered.
// fraction of the local target cell size // fraction of the local target cell size
filterSizeCoeff 0.2; filterSizeCoeff 0.5;
// Upper limit on how close two dual vertices can be before // Upper limit on how close two dual vertices can be before
// being merged, fraction of the local target cell size // being merged, fraction of the local target cell size
mergeClosenessCoeff 1e-9; mergeClosenessCoeff 1e-9;
edgeMergeAngle 30;
// To not filter: set maxNonOrtho to 1 (so check fails) and then // To not filter: set maxNonOrtho to 1 (so check fails) and then
// set continueFilteringOnBadInitialPolyMesh to false. // set continueFilteringOnBadInitialPolyMesh to false.
continueFilteringOnBadInitialPolyMesh true; continueFilteringOnBadInitialPolyMesh true;
@ -384,58 +425,7 @@ polyMeshFiltering
} }
// Generic mesh quality settings. At any undoable phase these determine #include "meshQualityDict";
// 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;
}
// ************************************************************************* // // ************************************************************************* //

View 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;
// ************************************************************************* //