mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
204 lines
5.5 KiB
C++
204 lines
5.5 KiB
C++
/*--------------------------------*- 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;
|
|
class dictionary;
|
|
object foamyHexMeshDict;
|
|
}
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
// Include defaults parameters from master dictionary
|
|
#include "$WM_PROJECT_DIR/etc/caseDicts/foamyHexMeshDict"
|
|
|
|
geometry
|
|
{
|
|
// Internal shape
|
|
coneAndSphere_clean_orient.obj
|
|
{
|
|
name coneAndSphere;
|
|
type triSurfaceMesh;
|
|
}
|
|
|
|
// Outside of domain
|
|
domain_clean_orient.stl
|
|
{
|
|
name domain;
|
|
type triSurfaceMesh;
|
|
regions
|
|
{
|
|
ascii{ name domain_patch0; }
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// Controls for conforming to the surfaces.
|
|
surfaceConformation
|
|
{
|
|
// A point inside surfaces that is inside mesh.
|
|
locationInMesh (0 -0.5 0);
|
|
|
|
// Geometry to mesh to
|
|
geometryToConformTo
|
|
{
|
|
coneAndSphere
|
|
{
|
|
featureMethod extractFeatures;
|
|
includedAngle 140;
|
|
featureMethod extendedFeatureEdgeMesh;
|
|
extendedFeatureEdgeMesh "coneAndSphere_clean_orient.extendedFeatureEdgeMesh";
|
|
}
|
|
|
|
domain
|
|
{
|
|
featureMethod extractFeatures;
|
|
includedAngle 125;
|
|
featureMethod extendedFeatureEdgeMesh;
|
|
extendedFeatureEdgeMesh "domain_clean_orient.extendedFeatureEdgeMesh";
|
|
}
|
|
}
|
|
|
|
additionalFeatures
|
|
{}
|
|
}
|
|
|
|
|
|
// Controls for seeding initial points and general control of the target
|
|
// cell size (used everywhere)
|
|
initialPoints
|
|
{
|
|
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.
|
|
autoDensityCoeffs
|
|
{
|
|
minCellSizeLimit 0.1;
|
|
// Initial number of refinement levels. Needs to be enough to pick
|
|
// up features due to size ratio. If not enough it will take longer
|
|
// to determine point seeding.
|
|
minLevels 4;
|
|
// Split box if ratio of min to max cell size larger than maxSizeRatio
|
|
maxSizeRatio 5.0;
|
|
// Per box sample 3x3x3 internally
|
|
sampleResolution 3;
|
|
// Additionally per face of the box sample 3
|
|
surfaceSampleResolution 3;
|
|
}
|
|
|
|
uniformGridCoeffs
|
|
{
|
|
// Absolute cell size.
|
|
initialCellSize 0.0015;
|
|
randomiseInitialGrid yes;
|
|
randomPerturbationCoeff 0.02;
|
|
}
|
|
|
|
bodyCentredCubicCoeffs
|
|
{
|
|
initialCellSize 0.0015;
|
|
randomiseInitialGrid no;
|
|
randomPerturbationCoeff 0.1;
|
|
}
|
|
|
|
pointFileCoeffs
|
|
{
|
|
// Reads points from file. Still rejects points that are too
|
|
// close to the surface (minimumSurfaceDistanceCoeff) or on the
|
|
// wrong side of the surfaces.
|
|
pointFile "constant/internalDelaunayVertices";
|
|
}
|
|
}
|
|
|
|
|
|
// Control size of voronoi cells i.e. distance between points. This
|
|
// determines the target cell size which is used everywhere.
|
|
// It determines the cell size given a location. It then uses all
|
|
// the rules
|
|
// - defaultCellSize
|
|
// - cellSizeControlGeometry
|
|
// to determine target cell size. Rule with highest priority wins. If same
|
|
// priority smallest cell size wins.
|
|
motionControl
|
|
{
|
|
// Absolute cell size of back ground mesh. This is the maximum cell size.
|
|
defaultCellSize 0.1;
|
|
|
|
minimumCellSizeCoeff 0;
|
|
|
|
// For background cell size and alignment grid
|
|
maxSmoothingIterations 100;
|
|
|
|
maxRefinementIterations 0;
|
|
|
|
shapeControlFunctions
|
|
{
|
|
coneAndSphere
|
|
{
|
|
type searchableSurfaceControl;
|
|
priority 1;
|
|
mode bothSides;
|
|
|
|
surfaceCellSizeFunction uniformValue;
|
|
uniformValueCoeffs
|
|
{
|
|
surfaceCellSizeCoeff 0.75;
|
|
}
|
|
|
|
cellSizeFunction uniform;
|
|
uniformCoeffs
|
|
{}
|
|
}
|
|
|
|
domain
|
|
{
|
|
type searchableSurfaceControl;
|
|
priority 1;
|
|
mode bothSides;
|
|
|
|
surfaceCellSizeFunction uniformValue;
|
|
uniformValueCoeffs
|
|
{
|
|
surfaceCellSizeCoeff 1;
|
|
}
|
|
|
|
cellSizeFunction uniform;
|
|
uniformCoeffs
|
|
{}
|
|
}
|
|
}
|
|
|
|
// Output lots and lots of .obj files
|
|
objOutput no;
|
|
|
|
// Timing and memory usage.
|
|
timeChecks no;
|
|
}
|
|
|
|
|
|
// After simulation, when converting to polyMesh, filter out small faces/edges.
|
|
// Do not change. See cvControls.H
|
|
polyMeshFiltering
|
|
{
|
|
filterEdges on;
|
|
filterFaces on;
|
|
writeTetDualMesh false;
|
|
}
|
|
|
|
|
|
#include "meshQualityDict";
|
|
|
|
|
|
// ************************************************************************* //
|