ENH: Rename initialPointsMethod autoDensity. Other tidying.

This commit is contained in:
graham 2011-06-17 16:46:01 +01:00
parent 7a1a6a9323
commit cce4d312da
8 changed files with 286 additions and 655 deletions

View File

@ -109,14 +109,17 @@ initialPoints
{
minimumSurfaceDistanceCoeff 0.55;
initialPointsMethod densityWeightedStochastic;
initialPointsMethod autoDensity;
// initialPointsMethod uniformGrid;
// initialPointsMethod bodyCentredCubic;
// initialPointsMethod pointFile;
densityWeightedStochasticDetails
autoDensityDetails
{
totalVolume 1.56e-05;
minLevels 1;
maxSizeRatio 2.0;
sampleResolution 5;
surfaceSampleResolution 5;
}
uniformGridDetails

View File

@ -109,30 +109,8 @@ initialPoints
{
minimumSurfaceDistanceCoeff 0.55;
// initialPointsMethod densityWeightedStochastic;
// initialPointsMethod uniformGrid;
// initialPointsMethod bodyCentredCubic;
initialPointsMethod pointFile;
densityWeightedStochasticDetails
{
totalVolume 1.56e-05;
}
uniformGridDetails
{
initialCellSize 0.0015;
randomiseInitialGrid yes;
randomPerturbationCoeff 0.02;
}
bodyCentredCubicDetails
{
initialCellSize 0.0015;
randomiseInitialGrid no;
randomPerturbationCoeff 0.1;
}
pointFileDetails
{
pointFile "constant/internalDelaunayVertices";

View File

@ -6,18 +6,10 @@ cd ${0%/*} || exit 1 # run from this directory
# Generate aligned points (in constant/internalDelaunayVertices) and a
# mesh from that.
#cp system/controlDict-generatePoints system/controlDict
#cp system/cvMeshDict-generatePoints system/cvMeshDict
runApplication surfaceFeatureExtract constant/triSurface/coneAndSphere.obj coneAndSphere -includedAngle 125
runApplication surfaceFeatureExtract constant/triSurface/domain.stl domain -includedAngle 125
runApplication cvMesh
# Use pre-generated aligned points (constant/internalDelaunayVertices)
# to generate a mesh
# cp system/controlDict-usePoints system/controlDict
# cp system/cvMeshDict-usePoints system/cvMeshDict
# runApplication cvMesh
# Generate some sets for a bit of mesh inspection
runApplication topoSet

View File

@ -1,54 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 80;
deltaT 1;
writeControl timeStep;
writeInterval 1000; //10 to see the meshing steps
purgeWrite 0;
writeFormat ascii;
writePrecision 10;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

View File

@ -1,54 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 0;
deltaT 1;
writeControl timeStep;
writeInterval 1000; //10 to see the meshing steps
purgeWrite 0;
writeFormat ascii;
writePrecision 10;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

View File

@ -1 +0,0 @@
cvMeshDict-generatePoints

View File

@ -0,0 +1,280 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object cvMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Important:
// ----------
// Any scalar with a name <name>Coeff specifies a value that will be implemented
// as a faction of the local target cell size
// Any scalar with a name <name>Size specifies an absolute size.
// Geometry. Definition of all surfaces. All surfaces are of class
// searchableSurface.
// Surfaces need to be (almost) closed - use closedTriSurfaceMesh
// if they are not topologically closed. Surfaces need to be oriented so
// the space to be meshed is always on the inside of all surfaces. Use e.g.
// surfaceOrient.
geometry
{
// Internal shape
coneAndSphere.obj
{
name coneAndSphere;
type triSurfaceMesh;
tolerance 0.00001;
}
// // Internal shape
// coneAndSphere
// {
// type searchableSurfaceWithGaps;
// surface coneAndSphere.obj;
// gap 0.001;
// }
// Bounds of domain
domain.stl
{
type triSurfaceMesh;
}
}
surfaceConformation
{
// Point that is inside wanted part of geometry.
locationInMesh (0 -0.5 0);
// Balance this between
// - very low distance: little chance of interference from other
// surfaces
// - largish distance: less non-orthogonality in final cell
// (circumcentre far away from centroid)
pointPairDistanceCoeff 0.1;
mixedFeaturePointPPDistanceCoeff 5.0;
featurePointExclusionDistanceCoeff 0.4;
featureEdgeExclusionDistanceCoeff 0.2;
surfaceSearchDistanceCoeff 2.5;
maxSurfaceProtrusionCoeff 0.1;
maxQuadAngle 125;
surfaceConformationRebuildFrequency 10;
coarseConformationControls
{
initial
{
edgeSearchDistCoeff 1.1;
surfacePtReplaceDistCoeff 0.5;
}
iteration
{
edgeSearchDistCoeff 1.25;
surfacePtReplaceDistCoeff 0.7;
}
maxIterations 15;
iterationToInitialHitRatioLimit 0.001;
}
fineConformationControls
{
initial
{
edgeSearchDistCoeff 1.1;
surfacePtReplaceDistCoeff 0.5;
}
iteration
{
edgeSearchDistCoeff 1.25;
surfacePtReplaceDistCoeff 0.7;
}
maxIterations 15;
iterationToInitialHitRatioLimit 0.001;
}
geometryToConformTo
{
coneAndSphere
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "coneAndSphere.extendedFeatureEdgeMesh";
}
domain.stl
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "domain.extendedFeatureEdgeMesh";
}
}
additionalFeatures {}
}
initialPoints
{
// Do not place point closer than minimumSurfaceDistanceCoeff
// to the surface. Is fraction of local target cell size (see below)
minimumSurfaceDistanceCoeff 0.55;
initialPointsMethod autoDensity;
// initialPointsMethod uniformGrid;
// initialPointsMethod bodyCentredCubic;
// initialPointsMethod pointFile;
// Take boundbox of all geometry. Samples with this box. If too much
// samples (due to target cell size) in box split box.
autoDensityDetails
{
// Number of refinement levels. Needs to be enough to pick up features
// due to size ratio.
minLevels 2;
// Split box if ratio of min to max size larger than maxSizeRatio
maxSizeRatio 5.0;
// Per box sample 3x3x3 internally
sampleResolution 3;
// Additionally per face of the box sample 3
surfaceSampleResolution 3;
}
uniformGridDetails
{
initialCellSize 0.0015;
randomiseInitialGrid yes;
randomPerturbationCoeff 0.02;
}
bodyCentredCubicDetails
{
initialCellSize 0.0015;
randomiseInitialGrid no;
randomPerturbationCoeff 0.1;
}
pointFileDetails
{
pointFile "constant/internalDelaunayVertices";
}
}
motionControl
{
defaultCellSize 0.1;
// Assign a priority to all requests for cell sizes, the highest overrules.
defaultPriority 0;
cellSizeControlGeometry
{
}
relaxationModel adaptiveLinear;
adaptiveLinearCoeffs
{
relaxationStart 1.0;
relaxationEnd 0.0;
}
objOutput no;
timeChecks yes;
alignmentSearchSpokes 36;
alignmentAcceptanceAngle 48;
sizeAndAlignmentRebuildFrequency 20;
pointInsertionCriteria
{
cellCentreDistCoeff 1.75;
faceAreaRatioCoeff 0.0025;
acceptanceAngle 21.5;
}
pointRemovalCriteria
{
cellCentreDistCoeff 0.65;
}
faceAreaWeightModel piecewiseLinearRamp;
piecewiseLinearRampCoeffs
{
lowerAreaFraction 0.5;
upperAreaFraction 1.0;
}
}
polyMeshFiltering
{
filterSizeCoeff 0.2;
mergeClosenessCoeff 1e-4;
continueFilteringOnBadInitialPolyMesh true;
filterErrorReductionCoeff 0.5;
filterCountSkipThreshold 4;
maxCollapseIterations 25;
maxConsecutiveEqualFaceSets 5;
surfaceStepFaceAngle 80;
edgeCollapseGuardFraction 0.3;
maxCollapseFaceToPointSideLengthCoeff 0.35;
}
meshQualityControls
{
maxNonOrtho 65;
maxBoundarySkewness 50;
maxInternalSkewness 10;
maxConcave 80;
minTetQuality 1e-30;
minVol 0;
minArea -1;
minTwist 0.02;
minDeterminant 0.001;
minFaceWeight 0.02;
minVolRatio 0.01;
minTriangleTwist -1;
}
// ************************************************************************* //

View File

@ -1,287 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object cvMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Important:
// ----------
// Any scalar with a name <name>Coeff specifies a value that will be implemented
// as a faction of the local target cell size
// Any scalar with a name <name>Size specifies an absolute size.
// Geometry. Definition of all surfaces. All surfaces are of class
// searchableSurface.
// Surfaces need to be (almost) closed - use closedTriSurfaceMesh
// if they are not topologically closed. Surfaces need to be oriented so
// the space to be meshed is always on the inside of all surfaces. Use e.g.
// surfaceOrient.
geometry
{
// Internal shape
coneAndSphere.obj
{
name coneAndSphere;
type triSurfaceMesh;
tolerance 0.00001;
}
// // Internal shape
// coneAndSphere
// {
// type searchableSurfaceWithGaps;
// surface coneAndSphere.obj;
// gap 0.001;
// }
// Bounds of domain
domain.stl
{
type triSurfaceMesh;
}
}
surfaceConformation
{
// Point that is inside wanted part of geometry.
locationInMesh (0 -0.5 0);
// Balance this between
// - very low distance: little chance of interference from other
// surfaces
// - largish distance: less non-orthogonality in final cell
// (circumcentre far away from centroid)
pointPairDistanceCoeff 0.1;
mixedFeaturePointPPDistanceCoeff 5.0;
featurePointExclusionDistanceCoeff 0.4;
featureEdgeExclusionDistanceCoeff 0.2;
surfaceSearchDistanceCoeff 2.5;
maxSurfaceProtrusionCoeff 0.1;
maxQuadAngle 125;
surfaceConformationRebuildFrequency 10;
coarseConformationControls
{
initial
{
edgeSearchDistCoeff 1.1;
surfacePtReplaceDistCoeff 0.5;
}
iteration
{
edgeSearchDistCoeff 1.25;
surfacePtReplaceDistCoeff 0.7;
}
maxIterations 15;
iterationToInitialHitRatioLimit 0.001;
}
fineConformationControls
{
initial
{
edgeSearchDistCoeff 1.1;
surfacePtReplaceDistCoeff 0.5;
}
iteration
{
edgeSearchDistCoeff 1.25;
surfacePtReplaceDistCoeff 0.7;
}
maxIterations 15;
iterationToInitialHitRatioLimit 0.001;
}
geometryToConformTo
{
coneAndSphere
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "coneAndSphere.extendedFeatureEdgeMesh";
}
domain.stl
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "domain.extendedFeatureEdgeMesh";
}
}
additionalFeatures {}
}
initialPoints
{
// Do not place point closer than minimumSurfaceDistanceCoeff
// to the surface. Is fraction of local target cell size (see below)
minimumSurfaceDistanceCoeff 0.55;
initialPointsMethod hierarchicalDensityWeightedStochastic;
//initialPointsMethod densityWeightedStochastic;
// initialPointsMethod uniformGrid;
// initialPointsMethod bodyCentredCubic;
// initialPointsMethod pointFile;
// Take boundbox of all geometry. Samples with this box. If too much
// samples (due to target cell size) in box split box.
hierarchicalDensityWeightedStochasticDetails
{
// Number of refinement levels. Needs to be enough to pick up features
// due to size ratio.
minLevels 2;
// Split box if ratio of min to max size larger than maxSizeRatio
maxSizeRatio 5.0;
// Per box sample 3x3x3 internally
sampleResolution 3;
// Additionally per face of the box sample 3
surfaceSampleResolution 3;
}
densityWeightedStochasticDetails
{
totalVolume 1.56e-05;
}
uniformGridDetails
{
initialCellSize 0.0015;
randomiseInitialGrid yes;
randomPerturbationCoeff 0.02;
}
bodyCentredCubicDetails
{
initialCellSize 0.0015;
randomiseInitialGrid no;
randomPerturbationCoeff 0.1;
}
pointFileDetails
{
pointFile "constant/internalDelaunayVertices";
}
}
motionControl
{
defaultCellSize 0.1;
// Assign a priority to all requests for cell sizes, the highest overrules.
defaultPriority 0;
cellSizeControlGeometry
{
}
relaxationModel adaptiveLinear;
adaptiveLinearCoeffs
{
relaxationStart 1.0;
relaxationEnd 0.0;
}
objOutput no;
timeChecks yes;
alignmentSearchSpokes 36;
alignmentAcceptanceAngle 48;
sizeAndAlignmentRebuildFrequency 20;
pointInsertionCriteria
{
cellCentreDistCoeff 1.75;
faceAreaRatioCoeff 0.0025;
acceptanceAngle 21.5;
}
pointRemovalCriteria
{
cellCentreDistCoeff 0.65;
}
faceAreaWeightModel piecewiseLinearRamp;
piecewiseLinearRampCoeffs
{
lowerAreaFraction 0.5;
upperAreaFraction 1.0;
}
}
polyMeshFiltering
{
filterSizeCoeff 0.2;
mergeClosenessCoeff 1e-4;
continueFilteringOnBadInitialPolyMesh true;
filterErrorReductionCoeff 0.5;
filterCountSkipThreshold 4;
maxCollapseIterations 25;
maxConsecutiveEqualFaceSets 5;
surfaceStepFaceAngle 80;
edgeCollapseGuardFraction 0.3;
maxCollapseFaceToPointSideLengthCoeff 0.35;
}
meshQualityControls
{
maxNonOrtho 65;
maxBoundarySkewness 50;
maxInternalSkewness 10;
maxConcave 80;
minTetQuality 1e-30;
minVol 0;
minArea -1;
minTwist 0.02;
minDeterminant 0.001;
minFaceWeight 0.02;
minVolRatio 0.01;
minTriangleTwist -1;
}
// ************************************************************************* //

View File

@ -1,226 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ 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
geometry
{
flange.obj
{
type triSurfaceMesh;
}
}
surfaceConformation
{
locationInMesh (0 0 0);
pointPairDistanceCoeff 0.1;
mixedFeaturePointPPDistanceCoeff 5.0;
featurePointExclusionDistanceCoeff 0.4;
featureEdgeExclusionDistanceCoeff 0.2;
surfaceSearchDistanceCoeff 2.5;
maxSurfaceProtrusionCoeff 0.1;
maxQuadAngle 125;
surfaceConformationRebuildFrequency 10;
coarseConformationControls
{
initial
{
edgeSearchDistCoeff 1.1;
surfacePtReplaceDistCoeff 0.5;
}
iteration
{
edgeSearchDistCoeff 1.25;
surfacePtReplaceDistCoeff 0.7;
}
maxIterations 15;
iterationToInitialHitRatioLimit 0.001;
}
fineConformationControls
{
initial
{
edgeSearchDistCoeff 1.1;
surfacePtReplaceDistCoeff 0.5;
}
iteration
{
edgeSearchDistCoeff 1.25;
surfacePtReplaceDistCoeff 0.7;
}
maxIterations 15;
iterationToInitialHitRatioLimit 0.001;
}
geometryToConformTo
{
flange.obj
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "flange.extendedFeatureEdgeMesh";
}
}
additionalFeatures {}
}
initialPoints
{
minimumSurfaceDistanceCoeff 0.55;
// initialPointsMethod densityWeightedStochastic;
// initialPointsMethod uniformGrid;
// initialPointsMethod bodyCentredCubic;
initialPointsMethod pointFile;
densityWeightedStochasticDetails
{
totalVolume 1.56e-05;
}
uniformGridDetails
{
initialCellSize 0.0015;
randomiseInitialGrid yes;
randomPerturbationCoeff 0.02;
}
bodyCentredCubicDetails
{
initialCellSize 0.0015;
randomiseInitialGrid no;
randomPerturbationCoeff 0.1;
}
pointFileDetails
{
pointFile "constant/internalDelaunayVertices";
}
}
motionControl
{
defaultCellSize 0.00075;
// Assign a priority to all requests for cell sizes, the highest overrules.
defaultPriority 0;
cellSizeControlGeometry
{
}
relaxationModel adaptiveLinear;
adaptiveLinearCoeffs
{
relaxationStart 1.0;
relaxationEnd 0.0;
}
objOutput no;
timeChecks yes;
alignmentSearchSpokes 36;
alignmentAcceptanceAngle 48;
sizeAndAlignmentRebuildFrequency 20;
pointInsertionCriteria
{
cellCentreDistCoeff 1.75;
faceAreaRatioCoeff 0.0025;
acceptanceAngle 21.5;
}
pointRemovalCriteria
{
cellCentreDistCoeff 0.65;
}
faceAreaWeightModel piecewiseLinearRamp;
piecewiseLinearRampCoeffs
{
lowerAreaFraction 0.5;
upperAreaFraction 1.0;
}
}
polyMeshFiltering
{
filterSizeCoeff 0.2;
mergeClosenessCoeff 1e-4;
continueFilteringOnBadInitialPolyMesh true;
filterErrorReductionCoeff 0.5;
filterCountSkipThreshold 4;
maxCollapseIterations 25;
maxConsecutiveEqualFaceSets 5;
surfaceStepFaceAngle 80;
edgeCollapseGuardFraction 0.3;
maxCollapseFaceToPointSideLengthCoeff 0.35;
}
meshQualityControls
{
maxNonOrtho 65;
maxBoundarySkewness 50;
maxInternalSkewness 10;
maxConcave 80;
minTetQuality 1e-30;
minVol 0;
minArea -1;
minTwist 0.02;
minDeterminant 0.001;
minFaceWeight 0.02;
minVolRatio 0.01;
minTriangleTwist -1;
}
// ************************************************************************* //