Commit 986532b1 authored by laurence's avatar laurence
Browse files

ENH: cvMesh: Update tutorials

parent 58c11b12
......@@ -5,49 +5,79 @@
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object collapseDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
controlMeshQuality on;
collapseEdgesCoeffs
{
minimumEdgeLength 1e-4;
// Edges shorter than this absolute value will be merged
minimumEdgeLength 1e-6;
// The maximum angle between two edges that share a point attached to
// no other edges
maximumMergeAngle 180;
reductionFactor 0.5;
}
collapseFacesCoeffs
{
// The initial face length factor
initialFaceLengthFactor 0.5;
reductionFactor 0.5;
// If the face can't be collapsed to an edge, and it has a span less than
// the target face length multiplied by this coefficient, collapse it
// to a point.
maxCollapseFaceToPointSideLengthCoeff 0.3;
// Allow early collapse of edges to a point
allowEarlyCollapseToPoint on;
// Fraction to premultiply maxCollapseFaceToPointSideLengthCoeff by if
// allowEarlyCollapseToPoint is enabled
allowEarlyCollapseCoeff 0.2;
// Defining how close to the midpoint (M) of the projected
// vertices line a projected vertex (X) can be before making this
// an invalid edge collapse
//
// X---X-g----------------M----X-----------g----X--X
//
// Only allow a collapse if all projected vertices are outwith
// guardFraction (g) of the distance form the face centre to the
// furthest vertex in the considered direction
guardFraction 0.1;
maxCollapseFaceToPointSideLengthCoeff 0.3;
}
meshQualityCoeffs
controlMeshQualityCoeffs
{
// Name of the dictionary that has the mesh quality coefficients used
// by motionSmoother::checkMesh
#include "meshQualityDict";
// The amount that minimumEdgeLength will be reduced by for each
// edge if that edge's collapse generates a poor quality face
edgeReductionFactor 0.5;
// The amount that initialFaceLengthFactor will be reduced by for each
// face if its collapse generates a poor quality face
faceReductionFactor 0.5;
// Maximum number of smoothing iterations for the reductionFactors
maximumSmoothingIterations 2;
// Maximum number of outer iterations is mesh quality checking is enabled
maximumIterations 10;
maximumSmoothingIterations 1;
maxPointErrorCount 5;
// Maximum number of iterations deletion of a point can cause a bad face
// to be constructed before it is forced to not be deleted
maxPointErrorCount 3;
}
......
......@@ -5,21 +5,13 @@
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object cvMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Any scalar with a name <name>Coeff specifies a value that will be implemented
......@@ -29,6 +21,7 @@ geometry
{
blob.stl
{
name blob;
type triSurfaceMesh;
}
......@@ -54,29 +47,29 @@ initialPoints
{
minimumSurfaceDistanceCoeff 0.55;
initialPointsMethod autoDensity;
initialPointsMethod autoDensity;
// initialPointsMethod pointFile;
autoDensityCoeffs
{
minLevels 0;
maxSizeRatio 5.0;
sampleResolution 5;
minLevels 0;
maxSizeRatio 5.0;
sampleResolution 5;
surfaceSampleResolution 5;
}
pointFileCoeffs
{
pointFile "constant/internalDelaunayVertices";
pointFile "constant/internalDelaunayVertices";
}
}
surfaceConformation
{
locationInMesh (0.1 0.1 0.2);
locationInMesh (0.1 0.1 0.2);
pointPairDistanceCoeff 0.1;
pointPairDistanceCoeff 0.1;
mixedFeaturePointPPDistanceCoeff 5.0;
......@@ -84,17 +77,17 @@ surfaceConformation
featureEdgeExclusionDistanceCoeff 0.2;
surfaceSearchDistanceCoeff 5;
surfaceSearchDistanceCoeff 5;
nearBoundaryDistanceCoeff 5;
nearBoundaryDistanceCoeff 5;
maxSurfaceProtrusionCoeff 0.001;
maxSurfaceProtrusionCoeff 0.001;
maxQuadAngle 125;
maxQuadAngle 125;
surfaceConformationRebuildFrequency 10;
specialiseFeaturePoints off;
specialiseFeaturePoints off;
conformationControls
{
......@@ -102,51 +95,62 @@ surfaceConformation
surfacePtReplaceDistCoeff 0.5;
surfacePtExclusionDistanceCoeff 0.5;
maxIterations 15;
maxIterations 15;
iterationToInitialHitRatioLimit 0.0001;
}
geometryToConformTo
{
blob.stl
blob
{
featureMethod none;
}
}
additionalFeatures
{
}
{}
}
motionControl
{
defaultCellSize 0.1;
defaultCellSize 0.1;
minimumCellSizeCoeff 0;
maxSmoothingIterations 0;
maxRefinementIterations 0;
shapeControlFunctions
{
blob.stl
/* blob*/
/* {*/
/* type searchableSurfaceControl;*/
/* priority 1;*/
/* mode bothSides;*/
/* surfaceCellSizeFunction uniformValue;*/
/* uniformValueCoeffs*/
/* {*/
/* surfaceCellSizeCoeff 1;*/
/* }*/
/* cellSizeFunction uniform;*/
/* uniformCoeffs*/
/* {}*/
/* }*/
fileControl
{
type searchableSurfaceControl;
type fileControl;
priority 1;
mode bothSides;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSize $defaultCellSize;
}
cellSizeFunction uniform;
uniformCoeffs
{}
pointsFile "points";
sizesFile "sizes";
alignmentsFile "alignments";
}
}
maxRefinementIterations 1;
cellAspectRatioControl
{
aspectRatio 1.0;
......
......@@ -5,21 +5,13 @@
| \\ / 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.
......
......@@ -5,47 +5,79 @@
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object collapseDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
controlMeshQuality on;
collapseEdgesCoeffs
{
// Edges shorter than this absolute value will be merged
minimumEdgeLength 1e-6;
// The maximum angle between two edges that share a point attached to
// no other edges
maximumMergeAngle 180;
reductionFactor 0.5;
}
collapseFacesCoeffs
{
// The initial face length factor
initialFaceLengthFactor 0.5;
reductionFactor 0.5;
// If the face can't be collapsed to an edge, and it has a span less than
// the target face length multiplied by this coefficient, collapse it
// to a point.
maxCollapseFaceToPointSideLengthCoeff 0.3;
// Allow early collapse of edges to a point
allowEarlyCollapseToPoint on;
// Fraction to premultiply maxCollapseFaceToPointSideLengthCoeff by if
// allowEarlyCollapseToPoint is enabled
allowEarlyCollapseCoeff 0.2;
// Defining how close to the midpoint (M) of the projected
// vertices line a projected vertex (X) can be before making this
// an invalid edge collapse
//
// X---X-g----------------M----X-----------g----X--X
//
// Only allow a collapse if all projected vertices are outwith
// guardFraction (g) of the distance form the face centre to the
// furthest vertex in the considered direction
guardFraction 0.1;
maxCollapseFaceToPointSideLengthCoeff 0.3;
}
meshQualityCoeffs
controlMeshQualityCoeffs
{
// Name of the dictionary that has the mesh quality coefficients used
// by motionSmoother::checkMesh
#include "meshQualityDict";
// The amount that minimumEdgeLength will be reduced by for each
// edge if that edge's collapse generates a poor quality face
edgeReductionFactor 0.5;
// The amount that initialFaceLengthFactor will be reduced by for each
// face if its collapse generates a poor quality face
faceReductionFactor 0.5;
// Maximum number of smoothing iterations for the reductionFactors
maximumSmoothingIterations 2;
// Maximum number of outer iterations is mesh quality checking is enabled
maximumIterations 10;
maximumSmoothingIterations 1;
maxPointErrorCount 5;
// Maximum number of iterations deletion of a point can cause a bad face
// to be constructed before it is forced to not be deleted
maxPointErrorCount 3;
}
......
......@@ -5,30 +5,23 @@
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object cvMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Any scalar with a name <name>Coeff specifies a value that will be implemented
// as a faction of the local target cell size
// as a faction of the target cell size
geometry
{
flange.obj
{
name flange;
type triSurfaceMesh;
}
}
......@@ -78,7 +71,7 @@ surfaceConformation
geometryToConformTo
{
flange.obj
flange
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "flange.extendedFeatureEdgeMesh";
......@@ -86,8 +79,7 @@ surfaceConformation
}
additionalFeatures
{
}
{}
}
......@@ -96,13 +88,12 @@ initialPoints
minimumSurfaceDistanceCoeff 0.55;
initialPointsMethod autoDensity;
//initialPointsMethod pointFile;
autoDensityCoeffs
{
minLevels 1;
maxSizeRatio 3.0;
sampleResolution 4;
minLevels 2;
maxSizeRatio 3.0;
sampleResolution 4;
surfaceSampleResolution 5;
}
......@@ -115,38 +106,58 @@ initialPoints
motionControl
{
defaultCellSize 0.001;
defaultCellSize 0.0008;
minimumCellSizeCoeff 0;
// For background cell size and alignment grid
maxSmoothingIterations 100;
maxRefinementIterations 5;
shapeControlFunctions
{
flange.obj
flange
{
type searchableSurfaceControl;
priority 1;
mode inside;
surfaceCellSizeFunction uniformValue;
type searchableSurfaceControl;
priority 1;
mode inside;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSize $defaultCellSize;
surfaceCellSizeCoeff 1;
}
cellSizeFunction surfaceOffsetLinearDistance;
surfaceOffsetLinearDistanceCoeffs
{
distanceCellSizeCoeff 1;
surfaceOffsetCoeff 2.5;
linearDistanceCoeff 2.5;
}
cellSizeFunction uniform;
uniformCoeffs{}
}
/* fileControl*/
/* {*/
/* type fileControl;*/
/* priority 1;*/
/* pointsFile "points";*/
/* sizesFile "sizes";*/
/* alignmentsFile "alignments";*/
/* }*/
}
cellAspectRatioControl
{
aspectRatio 1.0;
aspectRatioDirection (0 0 0);
aspectRatio 1.0;
aspectRatioDirection (0 0 0);
}
relaxationModel adaptiveLinear;
relaxationModel adaptiveLinear;
adaptiveLinearCoeffs
{
relaxationStart 1.0;
relaxationEnd 0.0;
relaxationStart 0.5;
relaxationEnd 0.0;
}
objOutput no;
......@@ -170,10 +181,10 @@ motionControl
pointRemovalCriteria
{
cellCentreDistCoeff 0.65;
cellCentreDistCoeff 0.65;
}
faceAreaWeightModel piecewiseLinearRamp;
faceAreaWeightModel piecewiseLinearRamp;
piecewiseLinearRampCoeffs
{
......
......@@ -5,21 +5,13 @@
| \\ / 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.
......
......@@ -5,47 +5,79 @@
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object collapseDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
controlMeshQuality on;
collapseEdgesCoeffs
{
// Edges shorter than this absolute value will be merged
minimumEdgeLength 1e-6;
// The maximum angle between two edges that share a point attached to
// no other edges
maximumMergeAngle 180;
reductionFactor 0.5;
}
collapseFacesCoeffs
{
// The initial face length factor
initialFaceLengthFactor 0.5;
reductionFactor 0.5;
// If the face can't be collapsed to an edge, and it has a span less than
// the target face length multiplied by this coefficient, collapse it
// to a point.
maxCollapseFaceToPointSideLengthCoeff 0.3;
// Allow early collapse of edges to a point
allowEarlyCollapseToPoint on;
// Fraction to premultiply maxCollapseFaceToPointSideLengthCoeff by if
// allowEarlyCollapseToPoint is enabled
allowEarlyCollapseCoeff 0.2;
// Defining how close to the midpoint (M) of the projected
// vertices line a projected vertex (X) can be before making this
// an invalid edge collapse
//
// X---X-g----------------M----X-----------g----X--X
//
// Only allow a collapse if all projected vertices are outwith
// guardFraction (g) of the distance form the face centre to the
// furthest vertex in the considered direction
guardFraction 0.1;
maxCollapseFaceToPointSideLengthCoeff 0.3;
}
meshQualityCoeffs
controlMeshQualityCoeffs
{
// Name of the dictionary that has the mesh quality coefficients used
// by motionSmoother::checkMesh
#include "meshQualityDict";
maximumIterations 30;
maximumSmoothingIterations 1;
maxPointErrorCount 5;
// The amount that minimumEdgeLength will be reduced by for each
// edge if that edge's collapse generates a poor quality face
edgeReductionFactor 0.5;
// The amount that initialFaceLengthFactor will be reduced by for each
// face if its collapse generates a poor quality face
faceReductionFactor 0.5;