ENH: snappyHexMesh: add buffer layers before snapping

This commit is contained in:
Mattijs Janssens
2024-12-12 16:13:32 +00:00
parent e7cf8a1d59
commit de5d34787c
231 changed files with 46574 additions and 963 deletions

View File

@ -0,0 +1,78 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2309 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
arch "LSB;label=32;scalar=64";
class pointVectorField;
location "0";
object pointDisplacement;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
internalField uniform (0 0 0);
// Some macros
__surfaceSlipDisplacement
{
type surfaceSlipDisplacement;
value uniform (0 0 0);
geometry
{
box
{
type triSurfaceMesh;
file blockMesh.obj;
}
}
projectMode nearest;
}
__edgeSlipDisplacement
{
type edgeSlipDisplacement;
file "blockMesh.eMesh";
// Underrelax the displacement on edges since conflicts with
// smoothing. TBD.
velocity (1 1 1);
}
boundaryField
{
// Attract to feature lines
wallsEdges
{
${__edgeSlipDisplacement};
}
// Attract to feature lines
boundaryEdges
{
${__edgeSlipDisplacement};
}
// Attract to feature lines
sideEdges
{
${__edgeSlipDisplacement};
}
// Default is to attract to surface
".*"
{
${__surfaceSlipDisplacement};
}
}
// ************************************************************************* //

View File

@ -6,5 +6,11 @@ cd "${0%/*}" || exit # Run from this directory
cleanCase0
rm -rf constant/geometry
rm -rf constant/extendedFeatureEdgeMesh
rm -rf constant/geometry
#- From pointMesh generation
rm -rf constant/pointMesh
rm -rf constant/triSurface
#------------------------------------------------------------------------------

View File

@ -11,8 +11,29 @@ cp -f \
runApplication blockMesh
# See if we can improve the mesh with a bit of smoothing (whilst freezing
# the features)
# - feature-edge attraction conflicts with mesh smoothing so faces with
# three vertices on feature edge get distorted.
#- Analyse mesh and
# - generate pointMesh with additional feature patches
# (in constant/pointMesh/boundary).
# - write .obj file with outside of mesh
mkdir -p constant/triSurface
runApplication surfaceMeshExtract -featureAngle 50 \
constant/triSurface/blockMesh.obj
#- Extract features from surface (original of blockMesh). Writes .eMesh.
runApplication surfaceFeatureExtract
#- Set the initial field
restore0Dir
runApplication $(getApplication)
#- Run mesh smoother
runApplication moveDynamicMesh
#- Check mesh, generate postprocessing fields
runApplication checkMesh -writeFields '(nonOrthoAngle)'
#------------------------------------------------------------------------------

View File

@ -0,0 +1,12 @@
Demos:
- blockMesh:
- snapping to surface
- surface defined by extrusion of line
- surfaceMeshExtract
- generation of additional pointPatches to handle features
- moveDynamicMesh
- point-based smoothers
- feature-attraction through boundary conditions

View File

@ -0,0 +1,29 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs (fvMotionSolvers);
motionSolver displacementPointSmoothing;
displacementPointSmoothingCoeffs
{
pointSmoother geometricElementTransform;
transformationParameter 0.667;
nPointSmootherIter 1;
}
// ************************************************************************* //

View File

@ -14,17 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
libs (blockMesh);
DebugSwitches
{
//project 1;
//searchableExtrudedCircle 1;
//projectCurve 1;
solution 1;
}
application simpleFoam;
application moveDynamicMesh;
startFrom startTime;
@ -32,7 +22,7 @@ startTime 0;
stopAt endTime;
endTime 100;
endTime 10;
deltaT 1;

View File

@ -0,0 +1,33 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object surfaceFeatureExtractDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
blockMesh.obj
{
// How to obtain raw features (extractFromFile || extractFromSurface)
extractionMethod extractFromSurface;
// Mark edges whose adjacent surface normals are at an angle less
// than includedAngle as features
// - 0 : selects no edges
// - 180: selects all edges
includedAngle 130;
// Write features to obj format for postprocessing
writeObj yes;
}
// ************************************************************************* //

View File

@ -0,0 +1,58 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
arch "LSB;label=32;scalar=64";
class volVectorField;
location "1";
object cellDisplacement;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
minX
{
type cellMotion;
value uniform (0 0 0);
}
maxX
{
type cellMotion;
value uniform (0 0 0);
}
minY
{
type cellMotion;
value uniform (0 0 0);
}
maxY
{
type cellMotion;
value uniform (0 0 0);
}
minZ
{
type cellMotion;
value uniform (0 0 0);
}
maxZ
{
type cellMotion;
value uniform (0 0 0);
}
}
// ************************************************************************* //

View File

@ -0,0 +1,81 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2309 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
arch "LSB;label=32;scalar=64";
class pointVectorField;
location "0";
object pointDisplacement;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
minX
{
type surfaceSlipDisplacement;
value uniform (0 0 0);
velocity (0.1 0.1 0.1);
//velocity (100 100 100);
geometry
{
box
{
type triSurfaceMesh;
file box222.obj;
}
}
projectMode nearest;
}
maxX
{
$minX
}
minY
{
$minX
}
maxY
{
$minX
}
minZ
{
$minX
}
maxZ
{
$minX
}
boundaryEdges
{
type edgeSlipDisplacement;
file "box222.eMesh";
//file "box222.extendedFeatureEdgeMesh";
//- Underrelax motion by limiting displacement velocity
velocity (0.1 0.1 0.1);
//velocity (100 100 100);
}
boundaryPoints
{
type pointAttraction;
file "box222.eMesh";
//- Underrelax motion by limiting displacement velocity
velocity (0.1 0.1 0.1);
//velocity (100 100 100);
}
}
// ************************************************************************* //

View File

@ -5,6 +5,14 @@ cd "${0%/*}" || exit # Run from this directory
cleanCase0
rm -rf constant
rm -rf constant/extendedFeatureEdgeMesh
#- From pointMesh generation
rm -rf constant/pointMesh
rm -f constant/triSurface/blockMesh.obj
rm -f constant/triSurface/outside.obj
#- From surfaceFeatureExtract
rm -f constant/triSurface/box222.eMesh
#------------------------------------------------------------------------------

View File

@ -3,6 +3,44 @@ cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
#- Run blockMesh with projection
runApplication blockMesh
# Optional
##- Extrude very thin cells to make it harder. Note: requires a
##- pointSmoother first before doing the displacementLaplacian
#runApplication extrudeMesh
#- Refine some cells
runApplication topoSet
runApplication refineHexMesh c0 -overwrite
#- Generate pointMesh with additional feature patches
# (in constant/pointMesh/boundary). Extracted outside of mesh is not used.
runApplication surfaceMeshExtract -featureAngle 45 \
constant/triSurface/blockMesh.obj
#- Set the initial field
restore0Dir
#- TBD. move triSurfaces to resources
#mkdir -p constant/triSurface
#cp -f \
# "$FOAM_TUTORIALS"/resources/geometry/box222.obj \
# constant/triSurface/
#- Extract features from surface. Writes .eMesh
runApplication surfaceFeatureExtract
##- Morph mesh to the surface (.obj file) and feature-edges (.eMesh file)
#runApplication moveDynamicMesh
runApplication decomposePar
runParallel moveDynamicMesh
runApplication reconstructPar
#------------------------------------------------------------------------------

View File

@ -0,0 +1,53 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs (fvMotionSolvers);
//motionSolver displacementPointSmoothing;
//displacementPointSmoothingCoeffs
//{
// //pointSmoother geometricElementTransform;
// //transformationParameter 0.667;
// pointSmoother laplacian;
//
// nPointSmootherIter 10;
//
// //relaxationFactors (1);
// //meshQuality {}
// //moveInternalFaces true;
//}
motionSolver multiDisplacement;
solvers
{
displacementLaplacian
{
motionSolver displacementLaplacian;
diffusivity uniform;
}
displacementPointSmoothing
{
motionSolver displacementPointSmoothing;
pointSmoother laplacian;
nPointSmootherIter 10;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,79 @@
# Generated by Visualization Toolkit
v -1 -1 -1
v -1 -1 1
v -1 1 -1
v -1 1 1
v 1 -1 -1
v 1 -1 1
v 1 1 -1
v 1 1 1
v -1 -1 -1
v -1 -1 1
v 1 -1 -1
v 1 -1 1
v -1 1 -1
v -1 1 1
v 1 1 -1
v 1 1 1
v -1 -1 -1
v 1 -1 -1
v -1 1 -1
v 1 1 -1
v -1 -1 1
v 1 -1 1
v -1 1 1
v 1 1 1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 -1 0
vn 0 -1 0
vn 0 -1 0
vn 0 -1 0
vn 0 1 0
vn 0 1 0
vn 0 1 0
vn 0 1 0
vn 0 0 -1
vn 0 0 -1
vn 0 0 -1
vn 0 0 -1
vn 0 0 1
vn 0 0 1
vn 0 0 1
vn 0 0 1
vt -0.5 -0.5
vt 1.5 -0.5
vt -0.5 1.5
vt 1.5 1.5
vt 0.5 -0.5
vt -1.5 -0.5
vt 0.5 1.5
vt -1.5 1.5
vt 0.5 0.5
vt 0.5 -1.5
vt -1.5 0.5
vt -1.5 -1.5
vt -0.5 0.5
vt -0.5 -1.5
vt 1.5 0.5
vt 1.5 -1.5
vt 0.5 -0.5
vt -1.5 -0.5
vt 0.5 1.5
vt -1.5 1.5
vt -0.5 -0.5
vt 1.5 -0.5
vt -0.5 1.5
vt 1.5 1.5
f 1/1/1 2/2/2 4/4/4 3/3/3
f 5/5/5 7/7/7 8/8/8 6/6/6
f 9/9/9 11/11/11 12/12/12 10/10/10
f 13/13/13 14/14/14 16/16/16 15/15/15
f 17/17/17 19/19/19 20/20/20 18/18/18
f 21/21/21 22/22/22 24/24/24 23/23/23

View File

@ -0,0 +1,79 @@
# Generated by Visualization Toolkit
v -2 -1 -1
v -2 -1 1
v -2 1 -1
v -2 1 1
v 2 -1 -1
v 2 -1 1
v 2 1 -1
v 2 1 1
v -2 -1 -1
v -2 -1 1
v 2 -1 -1
v 2 -1 1
v -2 1 -1
v -2 1 1
v 2 1 -1
v 2 1 1
v -2 -1 -1
v 2 -1 -1
v -2 1 -1
v 2 1 -1
v -2 -1 1
v 2 -1 1
v -2 1 1
v 2 1 1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 -1 0
vn 0 -1 0
vn 0 -1 0
vn 0 -1 0
vn 0 1 0
vn 0 1 0
vn 0 1 0
vn 0 1 0
vn 0 0 -1
vn 0 0 -1
vn 0 0 -1
vn 0 0 -1
vn 0 0 1
vn 0 0 1
vn 0 0 1
vn 0 0 1
vt -0.5 -0.5
vt 1.5 -0.5
vt -0.5 1.5
vt 1.5 1.5
vt 0.5 -0.5
vt -1.5 -0.5
vt 0.5 1.5
vt -1.5 1.5
vt 1.5 0.5
vt 1.5 -1.5
vt -2.5 0.5
vt -2.5 -1.5
vt -1.5 0.5
vt -1.5 -1.5
vt 2.5 0.5
vt 2.5 -1.5
vt 1.5 -0.5
vt -2.5 -0.5
vt 1.5 1.5
vt -2.5 1.5
vt -1.5 -0.5
vt 2.5 -0.5
vt -1.5 1.5
vt 2.5 1.5
f 1/1/1 2/2/2 4/4/4 3/3/3
f 5/5/5 7/7/7 8/8/8 6/6/6
f 9/9/9 11/11/11 12/12/12 10/10/10
f 13/13/13 14/14/14 16/16/16 15/15/15
f 17/17/17 19/19/19 20/20/20 18/18/18
f 21/21/21 22/22/22 24/24/24 23/23/23

View File

@ -127,16 +127,56 @@ faces
boundary
(
walls
minX
{
type wall;
type patch;
faces
(
(1 0) // block 1: x-min
);
}
maxX
{
type patch;
faces
(
(2 1) // block 2: x-max
);
}
minY
{
type patch;
faces
(
(3 2) // block 3: y-min
);
}
maxY
{
type patch;
faces
(
(4 3) // block 4: y-max
);
}
minZ
{
type patch;
faces
(
(5 4) // block 5: z-min
);
}
maxZ
{
type patch;
faces
(
(6 5) // block 6: z-max
);
}

View File

@ -14,6 +14,11 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
DebugSwitches
{
pointBoundaryMesh 1;
}
application blockMesh;
startFrom startTime;
@ -22,9 +27,9 @@ startTime 0;
stopAt endTime;
endTime 0;
endTime 20;
deltaT 0;
deltaT 1;
writeControl timeStep;

View File

@ -0,0 +1,24 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
note "mesh decomposition control dictionary";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- The total number of domains (mandatory)
numberOfSubdomains 2;
//- The decomposition method (mandatory)
method scotch;
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object extrudeMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// What to extrude:
// patch : from patch of another case ('sourceCase')
// mesh : as above but with original case included
// surface : from externally read surface
constructFrom mesh;
// If construct from patch/mesh:
sourceCase "<case>";
// and one of sourcePatches or sourceFaceZones (but not both):
//sourceFaceZones (someFacesZone);
sourcePatches (".*");
// Flip surface normals before usage. Valid only for extrude from surface or
// patch.
flipNormals false;
//- Linear extrusion in point-normal direction
extrudeModel linearNormal;
nLayers 1;
expansionRatio 1.0;
linearNormalCoeffs
{
thickness 1e-6;
}
// Do front and back need to be merged? Usually only makes sense for 360
// degree wedges.
mergeFaces false;
// Merge small edges. Fraction of bounding box.
mergeTol 0;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -18,19 +18,27 @@ ddtSchemes
{}
gradSchemes
{}
{
default Gauss linear;
}
divSchemes
{}
laplacianSchemes
{}
{
default Gauss linear corrected;
}
interpolationSchemes
{}
{
default linear;
}
snGradSchemes
{}
{
default corrected;
}
// ************************************************************************* //

View File

@ -14,5 +14,20 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"cellDisplacement.*"
{
solver GAMG;
tolerance 1e-08;
relTol 0;
smoother GaussSeidel;
}
}
PIMPLE
{}
// ************************************************************************* //

View File

@ -0,0 +1,33 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object surfaceFeatureExtractDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
box222.obj
{
// How to obtain raw features (extractFromFile || extractFromSurface)
extractionMethod extractFromSurface;
// Mark edges whose adjacent surface normals are at an angle less
// than includedAngle as features
// - 0 : selects no edges
// - 180: selects all edges
includedAngle 135;
// Write features to obj format for postprocessing
writeObj yes;
}
// ************************************************************************* //

View File

@ -0,0 +1,47 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name c0;
type cellSet;
action new;
source boundaryToCell;
}
{
name c0;
type cellSet;
action subset;
source boxToCell;
sourceInfo
{
box (-100 -100 -100) (0 100 100);
}
}
{
name c0;
type cellSet;
action add;
source boxToCell;
sourceInfo
{
box (-0.3 -0.3 -0.3) (0 0 0);
}
}
);
// ************************************************************************* //

View File

@ -0,0 +1,62 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2309 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
arch "LSB;label=32;scalar=64";
class pointVectorField;
location "0";
object pointDisplacement;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
minX
{
type slip;
}
maxX
{
$minX
}
minY
{
$minX
}
maxY
{
$minX
}
minZ
{
$minX
}
maxZ
{
$minX
}
boundaryEdges
{
type uniformFixedValue;
uniformValue table
(
( 0.0 (0 0 0))
( 1.0 (1.0 -1.0 0))
//(10.0 (0 0 0))
);
}
}
// ************************************************************************* //

View File

@ -0,0 +1,17 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
#------------------------------------------------------------------------------
cleanCase
rm -rf constant/extendedFeatureEdgeMesh
#- From pointMesh generation
rm -rf constant/pointMesh
rm -f constant/triSurface/blockMesh.obj
#- From surfaceFeatureExtract
rm -f constant/triSurface/box222.eMesh
#------------------------------------------------------------------------------

View File

@ -0,0 +1,23 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
#- Generate mesh
runApplication blockMesh
runApplication surfaceMeshExtract \
-featureAngle 45 \
-patches '(minX maxY)' \
constant/triSurface/blockMesh.obj
#- For postprocessing: extract new pointPatches as vtk files
setSet <<EOF
pointSet p0 new patchToPoint boundaryEdges
EOF
#- Morph mesh to the surface (.obj file) and feature-edges (.eMesh file)
#- Note: needs point-based motion solver
runApplication moveDynamicMesh
#------------------------------------------------------------------------------

View File

@ -0,0 +1 @@
Testing relaxation of mesh motion

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverFvMesh;
// For point-bcs
motionSolverLibs (fvMotionSolvers);
motionSolver displacementPointSmoothing;
displacementPointSmoothingCoeffs
{
// Use geometricElementTransform to maintain relative sizes
//pointSmoother geometricElementTransform;
//transformationParameter 0.667;
//nPointSmootherIter 10;
pointSmoother laplacian;
nPointSmootherIter 10;
relaxationFactors (1.0 0.8 0.6 0.4 0.2 0.0);
meshQuality
{
#includeEtc "caseDicts/meshQualityDict"
}
}
// ************************************************************************* //

View File

@ -0,0 +1,95 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1;
vertices
(
// Inner block
(-2 -2 -2)
( 2 -2 -2)
( 2 2 -2)
(-2 2 -2)
(-2 -2 2)
( 2 -2 2)
( 2 2 2)
(-2 2 2)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (5 5 4) grading (1 1 1) // Inner block
);
boundary
(
minX
{
type patch;
faces
(
(0 0) // block 0: x-min
);
}
maxX
{
type patch;
faces
(
(0 1) // block 0: x-max
);
}
minY
{
type patch;
faces
(
(0 2) // block 0: y-min
);
}
maxY
{
type patch;
faces
(
(0 3) // block 0: y-max
);
}
minZ
{
type patch;
faces
(
(0 4) // block 0: z-min
);
}
maxZ
{
type patch;
faces
(
(0 5) // block 0: z-max
);
}
);
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
DebugSwitches
{
pointBoundaryMesh 1;
}
application moveDynamicMesh;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 10;
deltaT 1;
writeControl timeStep;
writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
// ************************************************************************* //

View File

@ -0,0 +1,44 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{}
gradSchemes
{
default Gauss linear;
}
divSchemes
{}
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
// ************************************************************************* //

View File

@ -0,0 +1,33 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"cellDisplacement.*"
{
solver GAMG;
tolerance 1e-08;
relTol 0;
smoother GaussSeidel;
}
}
PIMPLE
{}
// ************************************************************************* //

View File

@ -0,0 +1,130 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class pointVectorField;
location "0";
object pointDisplacement;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
internalField uniform (0 0 0);
_surfaceDisplacement
{
type surfaceSlipDisplacement;
value $internalField;
projectMode nearest;
// // if fixedNormal : normal
// projectDirection (0 0 1);
// //- -1 or component to knock out before doing projection
// wedgePlane -1;
// relax 0.5;
//- Underrelax motion by limiting displacement velocity
velocity (100 100 100);
}
boundaryField
{
//#includeEtc "caseDicts/setConstraintTypes"
InletSmall
{
${^_surfaceDisplacement}
geometry
{
InletSmall
{
type triSurfaceMesh;
file "InletSmall.obj";
}
}
}
Outlet
{
${^_surfaceDisplacement}
geometry
{
Outlet
{
type triSurfaceMesh;
file "Outlet.obj";
}
}
}
SmallPipe
{
${^_surfaceDisplacement}
geometry
{
SmallPipe
{
type triSurfaceMesh;
file "SmallPipe.obj";
}
}
}
Inlet
{
${^_surfaceDisplacement}
geometry
{
Inlet
{
type triSurfaceMesh;
file "Inlet.obj";
}
}
}
BigPipe
{
${^_surfaceDisplacement}
geometry
{
BigPipe
{
type triSurfaceMesh;
file "BigPipe.obj";
}
}
}
// Per-patch feature-edges
SmallPipeEdges
{
type edgeSlipDisplacement;
file "SmallPipe.eMesh";
//file "box222.extendedFeatureEdgeMesh";
//- Underrelax motion by limiting displacement velocity
velocity (100 100 100);
}
BigPipeEdges
{
type edgeSlipDisplacement;
file "BigPipe.eMesh";
//file "box222.extendedFeatureEdgeMesh";
//- Underrelax motion by limiting displacement velocity
velocity (100 100 100);
}
// Inter-patch feature-edges
boundaryEdges
{
type edgeSlipDisplacement;
file "geometry.eMesh";
//file "box222.extendedFeatureEdgeMesh";
//- Underrelax motion by limiting displacement velocity
velocity (100 100 100);
}
}
// ************************************************************************* //

View File

@ -0,0 +1,16 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
#------------------------------------------------------------------------------
#cleanCase0
cleanCase
rm -f constant/triSurface/boundary.obj
rm -f constant/triSurface/geometry.eMesh
rm -f constant/triSurface/geometry.obj
rm -f constant/triSurface/blockMesh.obj
rm -f constant/triSurface/outside*.obj
rm -rf constant/extendedFeatureEdgeMesh
#------------------------------------------------------------------------------

View File

@ -0,0 +1,54 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
# Add bit of preprocessing of the surface
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Add all surfaces
runApplication -s BigPipeInlet surfaceAdd \
constant/triSurface/BigPipe.obj constant/triSurface/Inlet.obj \
constant/triSurface/geometry.obj
runApplication -s InletSmall surfaceAdd \
constant/triSurface/geometry.obj constant/triSurface/InletSmall.obj \
constant/triSurface/geometry.obj
runApplication -s Outlet surfaceAdd \
constant/triSurface/geometry.obj constant/triSurface/Outlet.obj \
constant/triSurface/geometry.obj
runApplication -s SmallPipe surfaceAdd \
constant/triSurface/geometry.obj constant/triSurface/SmallPipe.obj \
constant/triSurface/geometry.obj
# Extract features from surface
runApplication surfaceFeatureExtract
# Generate mesh and features
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
runApplication blockMesh
runApplication -s presmooth checkMesh
# Detect feature edges on mesh and generate new point patches from these.
# Note we only are interested in inter-patch features for this particular
# geometry.
runApplication surfaceMeshExtract \
-featureAngle 180 constant/triSurface/blockMesh.obj
# Generate some VTK files for the added point patches
setSet <<POINTPATCH
#pointSet SmallPipeEdges new patchToPoint SmallPipeEdges
#pointSet BigPipeEdges new patchToPoint BigPipeEdges
pointSet boundaryEdges new patchToPoint boundaryEdges
POINTPATCH
# Do mesh motion to conform to surface
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
runApplication moveDynamicMesh
runApplication -s postsmooth checkMesh
#------------------------------------------------------------------------------

View File

@ -0,0 +1,4 @@
Copy of extBlockMesh/tutorial/bendJunction from
https://github.com/Etudes-NG/extBlockMesh
Adapted to use simple OpenFOAM mesh motion solver

View File

@ -0,0 +1,38 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2406 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs (fvMotionSolvers);
//motionSolver displacementSBRStress;
//diffusivity uniform;
motionSolver displacementPointSmoothing;
displacementPointSmoothingCoeffs
{
// Use geometricElementTransform to maintain relative sizes
//pointSmoother geometricElementTransform;
//transformationParameter 0.667;
//nPointSmootherIter 10;
pointSmoother laplacian;
nPointSmootherIter 10;
}
// ************************************************************************* //

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,382 @@
# Wavefront OBJ file
# Regions:
# 0 CATIASTL
#
# points : 188
# triangles : 186
#
v -117.911 9.79717e-15 31.5765
v -117.926 2.6732 31.6185
v -117.926 -2.6732 31.6185
v -117.972 5.34341 31.7443
v -117.972 -5.34341 31.7443
v -118.048 8.00766 31.954
v -118.048 -8.00766 31.954
v -118.155 10.663 32.2472
v -118.155 -10.663 32.2472
v -118.292 13.3063 32.6236
v -118.292 -13.3063 32.6236
v -118.459 15.9349 33.0829
v -118.459 -15.9349 33.0829
v -118.656 18.5456 33.6244
v -118.656 -18.5456 33.6244
v -118.883 21.1356 34.2475
v -118.883 -21.1356 34.2475
v -119.139 23.702 34.9517
v -119.139 -23.702 34.9517
v -119.425 26.242 35.736
v -119.425 -26.242 35.736
v -119.739 28.7526 36.5996
v -119.739 -28.7526 36.5996
v -120.082 31.2311 37.5416
v -120.082 -31.2311 37.5416
v -120.453 33.6748 38.561
v -120.453 -33.6748 38.561
v -120.852 36.0808 39.6564
v -120.852 -36.0808 39.6564
v -121.277 38.4465 40.8268
v -121.277 -38.4465 40.8268
v -121.73 40.7693 42.0708
v -121.73 -40.7693 42.0708
v -122.209 43.0466 43.3871
v -122.209 -43.0466 43.3871
v -122.714 45.2758 44.7742
v -122.714 -45.2758 44.7742
v -123.244 47.4544 46.2304
v -123.244 -47.4544 46.2304
v -123.799 49.58 47.7543
v -123.799 -49.58 47.7543
v -124.378 51.6502 49.344
v -124.378 -51.6502 49.344
v -124.979 53.6628 50.9979
v -124.979 -53.6628 50.9979
v -125.604 55.6154 52.714
v -125.604 -55.6154 52.714
v -126.251 57.5059 54.4905
v -126.251 -57.5059 54.4905
v -126.919 59.3322 56.3254
v -126.919 -59.3322 56.3254
v -127.607 61.0922 58.2165
v -127.607 -61.0922 58.2165
v -128.315 62.784 60.1619
v -128.315 -62.784 60.1619
v -129.042 64.4056 62.1594
v -129.042 -64.4056 62.1594
v -129.787 65.9553 64.2066
v -129.787 -65.9553 64.2066
v -130.549 67.4314 66.3013
v -130.549 -67.4314 66.3013
v -131.328 68.8321 68.4412
v -131.328 -68.8321 68.4412
v -132.123 70.156 70.6239
v -132.123 -70.156 70.6239
v -132.932 71.4015 72.847
v -132.932 -71.4015 72.847
v -133.755 72.5673 75.1079
v -133.755 -72.5673 75.1079
v -134.591 73.652 77.4042
v -134.591 -73.652 77.4042
v -135.438 74.6544 79.7333
v -135.438 -74.6544 79.7333
v -136.297 75.5735 82.0925
v -136.297 -75.5735 82.0925
v -137.166 76.4082 84.4792
v -137.166 -76.4082 84.4792
v -138.044 77.1575 86.8909
v -138.044 -77.1575 86.8909
v -138.929 77.8207 89.3247
v -138.929 -77.8207 89.3247
v -139.822 78.3969 91.778
v -139.822 -78.3969 91.778
v -140.721 78.8856 94.248
v -140.721 -78.8856 94.248
v -141.625 79.2862 96.732
v -141.625 -79.2862 96.732
v -142.533 79.5982 99.2271
v -142.533 -79.5982 99.2271
v -143.445 79.8214 101.731
v -143.445 -79.8214 101.731
v -144.358 79.9553 104.24
v -144.358 -79.9553 104.24
v -145.272 80 106.752
v -145.272 -80 106.752
v -146.187 79.9553 109.264
v -146.187 -79.9553 109.264
v -147.1 79.8214 111.773
v -147.1 -79.8214 111.773
v -148.011 79.5982 114.277
v -148.011 -79.5982 114.277
v -148.919 79.2862 116.772
v -148.919 -79.2862 116.772
v -149.823 78.8856 119.256
v -149.823 -78.8856 119.256
v -150.722 78.3969 121.726
v -150.722 -78.3969 121.726
v -151.615 77.8207 124.179
v -151.615 -77.8207 124.179
v -152.501 77.1575 126.613
v -152.501 -77.1575 126.613
v -153.379 76.4082 129.025
v -153.379 -76.4082 129.025
v -154.248 75.5735 131.411
v -154.248 -75.5735 131.411
v -155.106 74.6544 133.77
v -155.106 -74.6544 133.77
v -155.954 73.652 136.1
v -155.954 -73.652 136.1
v -156.79 72.5673 138.396
v -156.79 -72.5673 138.396
v -157.613 71.4015 140.657
v -157.613 -71.4015 140.657
v -158.422 70.156 142.88
v -158.422 -70.156 142.88
v -159.216 68.8321 145.062
v -159.216 -68.8321 145.062
v -159.995 67.4314 147.202
v -159.995 -67.4314 147.202
v -160.758 65.9553 149.297
v -160.758 -65.9553 149.297
v -161.503 64.4056 151.344
v -161.503 -64.4056 151.344
v -162.23 62.784 153.342
v -162.23 -62.784 153.342
v -162.938 61.0922 155.287
v -162.938 -61.0922 155.287
v -163.626 59.3322 157.178
v -163.626 -59.3322 157.178
v -164.294 57.5059 159.013
v -164.294 -57.5059 159.013
v -164.941 55.6154 160.79
v -164.941 -55.6154 160.79
v -165.565 53.6628 162.506
v -165.565 -53.6628 162.506
v -166.167 51.6502 164.16
v -166.167 -51.6502 164.16
v -166.746 49.58 165.749
v -166.746 -49.58 165.749
v -167.3 47.4544 167.273
v -167.3 -47.4544 167.273
v -167.83 45.2758 168.73
v -167.83 -45.2758 168.73
v -168.335 43.0466 170.117
v -168.335 -43.0466 170.117
v -168.814 40.7693 171.433
v -168.814 -40.7693 171.433
v -169.267 38.4465 172.677
v -169.267 -38.4465 172.677
v -169.693 36.0808 173.847
v -169.693 -36.0808 173.847
v -170.092 33.6748 174.943
v -170.092 -33.6748 174.943
v -170.463 31.2311 175.962
v -170.463 -31.2311 175.962
v -170.806 28.7526 176.904
v -170.806 -28.7526 176.904
v -171.12 26.242 177.768
v -171.12 -26.242 177.768
v -171.405 23.702 178.552
v -171.405 -23.702 178.552
v -171.662 21.1356 179.256
v -171.662 -21.1356 179.256
v -171.889 18.5456 179.879
v -171.889 -18.5456 179.879
v -172.086 15.9349 180.421
v -172.086 -15.9349 180.421
v -172.253 13.3063 180.88
v -172.253 -13.3063 180.88
v -172.39 10.663 181.257
v -172.39 -10.663 181.257
v -172.497 8.00766 181.55
v -172.497 -8.00766 181.55
v -172.573 5.34341 181.759
v -172.573 -5.34341 181.759
v -172.619 2.6732 181.885
v -172.619 -2.6732 181.885
v -172.634 0 181.927
g CATIASTL
f 92 96 94
f 96 92 98
f 98 92 90
f 98 90 100
f 100 90 88
f 100 88 102
f 102 88 86
f 102 86 104
f 104 86 84
f 104 84 106
f 106 84 82
f 106 82 108
f 108 82 80
f 108 80 110
f 110 80 78
f 110 78 112
f 112 78 76
f 112 76 114
f 114 76 74
f 114 74 116
f 116 74 72
f 116 72 118
f 118 72 70
f 118 70 120
f 120 70 68
f 120 68 122
f 122 68 66
f 122 66 124
f 124 66 64
f 124 64 126
f 126 64 62
f 126 62 128
f 128 62 60
f 128 60 130
f 130 60 58
f 130 58 132
f 132 58 56
f 132 56 134
f 134 56 54
f 134 54 136
f 136 54 52
f 136 52 138
f 138 52 50
f 138 50 140
f 140 50 48
f 140 48 142
f 142 48 46
f 142 46 144
f 144 46 44
f 144 44 146
f 146 44 42
f 146 42 148
f 148 42 40
f 148 40 150
f 150 40 38
f 150 38 152
f 152 38 36
f 152 36 154
f 154 36 34
f 154 34 156
f 156 34 32
f 156 32 158
f 158 32 30
f 158 30 160
f 160 30 28
f 160 28 162
f 162 28 26
f 162 26 164
f 164 26 24
f 164 24 166
f 166 24 22
f 166 22 168
f 168 22 20
f 168 20 170
f 170 20 18
f 170 18 172
f 172 18 16
f 172 16 174
f 174 16 14
f 174 14 176
f 176 14 12
f 176 12 178
f 178 12 10
f 178 10 180
f 180 10 8
f 180 8 182
f 182 8 6
f 182 6 184
f 184 6 4
f 184 4 186
f 186 4 2
f 186 2 188
f 188 2 1
f 188 1 187
f 187 1 3
f 187 3 185
f 185 3 5
f 185 5 183
f 183 5 7
f 183 7 181
f 181 7 9
f 181 9 179
f 179 9 11
f 179 11 177
f 177 11 13
f 177 13 175
f 175 13 15
f 175 15 173
f 173 15 17
f 173 17 171
f 171 17 19
f 171 19 169
f 169 19 21
f 169 21 167
f 167 21 23
f 167 23 165
f 165 23 25
f 165 25 163
f 163 25 27
f 163 27 161
f 161 27 29
f 161 29 159
f 159 29 31
f 159 31 157
f 157 31 33
f 157 33 155
f 155 33 35
f 155 35 153
f 153 35 37
f 153 37 151
f 151 37 39
f 151 39 149
f 149 39 41
f 149 41 147
f 147 41 43
f 147 43 145
f 145 43 45
f 145 45 143
f 143 45 47
f 143 47 141
f 141 47 49
f 141 49 139
f 139 49 51
f 139 51 137
f 137 51 53
f 137 53 135
f 135 53 55
f 135 55 133
f 133 55 57
f 133 57 131
f 131 57 59
f 131 59 129
f 129 59 61
f 129 61 127
f 127 61 63
f 127 63 125
f 125 63 65
f 125 65 123
f 123 65 67
f 123 67 121
f 121 67 69
f 121 69 119
f 119 69 71
f 119 71 117
f 117 71 73
f 117 73 115
f 115 73 75
f 115 75 113
f 113 75 77
f 113 77 111
f 111 77 79
f 111 79 109
f 109 79 81
f 109 81 107
f 107 81 83
f 107 83 105
f 105 83 85
f 105 85 103
f 103 85 87
f 103 87 101
f 101 87 89
f 101 89 99
f 99 89 91
f 99 91 97
f 97 91 93
f 97 93 95

View File

@ -0,0 +1,250 @@
# Wavefront OBJ file
# Regions:
# 0 CATIASTL
#
# points : 122
# triangles : 120
#
v 174.966 29.7913 243.719
v 149.662 -12.308 261.438
v 175.49 -29.7086 243.353
v 170.439 -29.9337 246.889
v 150.21 -13.7001 261.054
v 181.086 27.9095 239.435
v 186.01 -24.7091 235.987
v 196.6 1.86591 228.572
v 148.377 -7.95114 262.337
v 187.612 23.2414 234.865
v 180.395 -28.2272 239.918
v 149.975 13.124 261.219
v 192.949 -15.8282 231.128
v 177.46 29.2702 241.973
v 184.497 25.8838 237.046
v 193.329 15.0559 230.862
v 159.649 -25.8838 254.445
v 194.171 -13.124 230.272
v 196.072 6.45146 228.941
v 148.073 -6.45146 262.55
v 193.589 -14.4953 230.68
v 148.243 7.32825 262.432
v 150.817 -15.0559 260.629
v 189.487 21.1678 233.552
v 157.535 -24.1871 255.925
v 164.249 -28.4389 251.224
v 147.546 -1.86591 262.92
v 174.232 -29.8839 244.234
v 151.48 -16.3717 260.165
v 166.686 -29.2702 249.518
v 193.935 13.7001 230.437
v 182.251 27.306 238.619
v 157.113 23.8005 256.221
v 195.16 -10.2806 229.58
v 195.903 -7.32825 229.06
v 188.017 -22.8288 234.581
v 179.194 -28.7128 240.759
v 195.562 -8.81611 229.298
v 167.927 -29.57 248.649
v 147.833 -4.93468 262.719
v 147.603 2.7641 262.88
v 158.136 24.7091 255.504
v 173.706 29.9337 244.602
v 149.451 11.7178 261.586
v 196.18 -5.82096 228.865
v 161.417 27.033 253.207
v 151.197 15.8282 260.363
v 160.757 -26.6302 253.669
v 156.534 -23.2414 256.626
v 147.519 1.22264 262.939
v 196.489 3.40481 228.65
v 191.505 -18.3647 232.139
v 171.704 -29.9966 246.004
v 150.557 14.4953 260.811
v 163.75 28.2272 251.573
v 160.291 26.3275 253.995
v 163.06 -27.9095 252.057
v 147.5 -0.322061 262.952
v 191.948 17.6441 231.829
v 167.408 29.4545 249.012
v 183.855 -26.3275 237.496
v 155.575 -22.2341 257.298
v 168.656 29.7086 248.138
v 147.965 5.82096 262.626
v 171.176 29.98 246.373
v 195.402 9.42973 229.411
v 154.659 -21.1678 257.939
v 188.571 22.2341 234.193
v 162.571 27.6668 252.399
v 187.033 -23.8005 235.27
v 196.627 -1.22264 228.553
v 190.356 20.0453 232.943
v 176.738 -29.4545 242.479
v 169.179 -29.7913 247.772
v 155.187 21.7965 257.569
v 166.172 29.1223 249.878
v 148.583 8.81611 262.193
v 181.575 -27.6668 239.092
v 152.198 -17.6441 259.662
v 194.695 -11.7178 229.905
v 147.657 -3.40481 262.842
v 177.974 -29.1223 241.614
v 172.969 -29.98 245.118
v 183.389 26.6302 237.822
v 196.543 -2.7641 228.611
v 147.752 4.29823 262.775
v 182.729 -27.033 238.284
v 161.895 -27.306 252.872
v 196.646 0.322061 228.539
v 188.958 -21.7965 233.922
v 164.952 28.7128 250.732
v 156.129 22.8288 256.91
v 186.611 24.1871 235.566
v 179.897 28.4389 240.267
v 148.986 10.2806 261.911
v 149.173 -10.8833 261.781
v 158.574 -25.0687 255.198
v 176.219 29.57 242.843
v 148.744 -9.42973 262.081
v 154.291 20.7065 258.197
v 153.789 -20.0453 258.548
v 196.313 4.93468 228.773
v 169.913 29.8839 247.258
v 172.442 29.9966 245.487
v 192.666 16.3717 231.327
v 152.641 18.3647 259.352
v 192.254 -17.1191 231.615
v 184.949 -25.5522 236.73
v 165.458 -28.8929 250.377
v 152.968 -18.8697 259.123
v 195.769 7.95114 229.154
v 153.441 19.5615 258.792
v 190.705 -19.5615 232.699
v 191.178 18.8697 232.368
v 159.197 25.5522 254.762
v 194.484 12.308 230.053
v 178.688 28.8929 241.114
v 189.855 -20.7065 233.294
v 185.572 25.0687 236.294
v 151.892 17.1191 259.876
v 194.973 10.8833 229.711
v 196.394 -4.29823 228.716
g CATIASTL
f 104 65 43
f 43 65 103
f 43 103 1
f 1 103 63
f 1 63 98
f 98 63 60
f 98 60 14
f 14 60 76
f 14 76 117
f 117 76 91
f 117 91 94
f 94 91 55
f 94 55 6
f 6 55 69
f 6 69 32
f 32 69 46
f 32 46 84
f 84 46 56
f 84 56 15
f 15 56 115
f 15 115 119
f 119 115 42
f 119 42 93
f 93 42 33
f 93 33 10
f 10 33 92
f 10 92 68
f 68 92 75
f 68 75 24
f 24 75 100
f 24 100 72
f 72 100 112
f 72 112 114
f 114 112 106
f 114 106 59
f 59 106 120
f 59 120 105
f 105 120 47
f 105 47 16
f 16 47 54
f 16 54 31
f 31 54 12
f 31 12 116
f 116 12 44
f 116 44 121
f 121 44 95
f 121 95 66
f 66 95 77
f 66 77 111
f 111 77 22
f 111 22 19
f 19 22 64
f 19 64 102
f 102 64 86
f 102 86 51
f 51 86 41
f 51 41 8
f 8 41 50
f 8 50 89
f 89 50 58
f 89 58 71
f 71 58 27
f 71 27 85
f 85 27 81
f 85 81 122
f 122 81 40
f 122 40 45
f 45 40 20
f 45 20 35
f 35 20 9
f 35 9 38
f 38 9 99
f 38 99 34
f 34 99 96
f 34 96 80
f 80 96 2
f 80 2 18
f 18 2 5
f 18 5 21
f 21 5 23
f 21 23 13
f 13 23 29
f 13 29 107
f 107 29 79
f 107 79 52
f 52 79 110
f 52 110 113
f 113 110 101
f 113 101 118
f 118 101 67
f 118 67 90
f 90 67 62
f 90 62 36
f 36 62 49
f 36 49 70
f 70 49 25
f 70 25 7
f 7 25 97
f 7 97 108
f 108 97 17
f 108 17 61
f 61 17 48
f 61 48 87
f 87 48 88
f 87 88 78
f 78 88 57
f 78 57 11
f 11 57 26
f 11 26 37
f 37 26 109
f 37 109 82
f 82 109 30
f 82 30 73
f 73 30 39
f 73 39 3
f 3 39 74
f 3 74 28
f 28 74 4
f 28 4 83
f 83 4 53

View File

@ -0,0 +1,382 @@
# Wavefront OBJ file
# Regions:
# 0 CATIASTL
#
# points : 188
# triangles : 186
#
v 70 9.79717e-15 -100
v 70.0447 -2.6732 -100
v 70.0447 2.6732 -100
v 70.1786 -5.34341 -100
v 70.1786 5.34341 -100
v 70.4018 -8.00766 -100
v 70.4018 8.00766 -100
v 70.7138 -10.663 -100
v 70.7138 10.663 -100
v 71.1144 -13.3063 -100
v 71.1144 13.3063 -100
v 71.6031 -15.9349 -100
v 71.6031 15.9349 -100
v 72.1793 -18.5456 -100
v 72.1793 18.5456 -100
v 72.8425 -21.1356 -100
v 72.8425 21.1356 -100
v 73.5918 -23.702 -100
v 73.5918 23.702 -100
v 74.4265 -26.242 -100
v 74.4265 26.242 -100
v 75.3456 -28.7526 -100
v 75.3456 28.7526 -100
v 76.348 -31.2311 -100
v 76.348 31.2311 -100
v 77.4327 -33.6748 -100
v 77.4327 33.6748 -100
v 78.5985 -36.0808 -100
v 78.5985 36.0808 -100
v 79.844 -38.4465 -100
v 79.844 38.4465 -100
v 81.1679 -40.7693 -100
v 81.1679 40.7693 -100
v 82.5686 -43.0466 -100
v 82.5686 43.0466 -100
v 84.0447 -45.2758 -100
v 84.0447 45.2758 -100
v 85.5944 -47.4544 -100
v 85.5944 47.4544 -100
v 87.216 -49.58 -100
v 87.216 49.58 -100
v 88.9078 -51.6502 -100
v 88.9078 51.6502 -100
v 90.6678 -53.6628 -100
v 90.6678 53.6628 -100
v 92.4941 -55.6154 -100
v 92.4941 55.6154 -100
v 94.3846 -57.5059 -100
v 94.3846 57.5059 -100
v 96.3372 -59.3322 -100
v 96.3372 59.3322 -100
v 98.3498 -61.0922 -100
v 98.3498 61.0922 -100
v 100.42 -62.784 -100
v 100.42 62.784 -100
v 102.546 -64.4056 -100
v 102.546 64.4056 -100
v 104.724 -65.9553 -100
v 104.724 65.9553 -100
v 106.953 -67.4314 -100
v 106.953 67.4314 -100
v 109.231 -68.8321 -100
v 109.231 68.8321 -100
v 111.553 -70.156 -100
v 111.553 70.156 -100
v 113.919 -71.4015 -100
v 113.919 71.4015 -100
v 116.325 -72.5673 -100
v 116.325 72.5673 -100
v 118.769 -73.652 -100
v 118.769 73.652 -100
v 121.247 -74.6544 -100
v 121.247 74.6544 -100
v 123.758 -75.5735 -100
v 123.758 75.5735 -100
v 126.298 -76.4082 -100
v 126.298 76.4082 -100
v 128.864 -77.1575 -100
v 128.864 77.1575 -100
v 131.454 -77.8207 -100
v 131.454 77.8207 -100
v 134.065 -78.3969 -100
v 134.065 78.3969 -100
v 136.694 -78.8856 -100
v 136.694 78.8856 -100
v 139.337 -79.2862 -100
v 139.337 79.2862 -100
v 141.992 -79.5982 -100
v 141.992 79.5982 -100
v 144.657 -79.8214 -100
v 144.657 79.8214 -100
v 147.327 79.9553 -100
v 147.327 -79.9553 -100
v 150 80 -100
v 150 -80 -100
v 152.673 79.9553 -100
v 152.673 -79.9553 -100
v 155.343 -79.8214 -100
v 155.343 79.8214 -100
v 158.008 -79.5982 -100
v 158.008 79.5982 -100
v 160.663 -79.2862 -100
v 160.663 79.2862 -100
v 163.306 -78.8856 -100
v 163.306 78.8856 -100
v 165.935 -78.3969 -100
v 165.935 78.3969 -100
v 168.546 -77.8207 -100
v 168.546 77.8207 -100
v 171.136 -77.1575 -100
v 171.136 77.1575 -100
v 173.702 -76.4082 -100
v 173.702 76.4082 -100
v 176.242 -75.5735 -100
v 176.242 75.5735 -100
v 178.753 -74.6544 -100
v 178.753 74.6544 -100
v 181.231 -73.652 -100
v 181.231 73.652 -100
v 183.675 -72.5673 -100
v 183.675 72.5673 -100
v 186.081 -71.4015 -100
v 186.081 71.4015 -100
v 188.447 -70.156 -100
v 188.447 70.156 -100
v 190.769 -68.8321 -100
v 190.769 68.8321 -100
v 193.047 -67.4314 -100
v 193.047 67.4314 -100
v 195.276 -65.9553 -100
v 195.276 65.9553 -100
v 197.454 -64.4056 -100
v 197.454 64.4056 -100
v 199.58 -62.784 -100
v 199.58 62.784 -100
v 201.65 -61.0922 -100
v 201.65 61.0922 -100
v 203.663 -59.3322 -100
v 203.663 59.3322 -100
v 205.615 -57.5059 -100
v 205.615 57.5059 -100
v 207.506 -55.6154 -100
v 207.506 55.6154 -100
v 209.332 -53.6628 -100
v 209.332 53.6628 -100
v 211.092 -51.6502 -100
v 211.092 51.6502 -100
v 212.784 -49.58 -100
v 212.784 49.58 -100
v 214.406 -47.4544 -100
v 214.406 47.4544 -100
v 215.955 -45.2758 -100
v 215.955 45.2758 -100
v 217.431 -43.0466 -100
v 217.431 43.0466 -100
v 218.832 -40.7693 -100
v 218.832 40.7693 -100
v 220.156 -38.4465 -100
v 220.156 38.4465 -100
v 221.402 -36.0808 -100
v 221.402 36.0808 -100
v 222.567 -33.6748 -100
v 222.567 33.6748 -100
v 223.652 -31.2311 -100
v 223.652 31.2311 -100
v 224.654 -28.7526 -100
v 224.654 28.7526 -100
v 225.574 -26.242 -100
v 225.574 26.242 -100
v 226.408 -23.702 -100
v 226.408 23.702 -100
v 227.158 -21.1356 -100
v 227.158 21.1356 -100
v 227.821 -18.5456 -100
v 227.821 18.5456 -100
v 228.397 -15.9349 -100
v 228.397 15.9349 -100
v 228.886 -13.3063 -100
v 228.886 13.3063 -100
v 229.286 -10.663 -100
v 229.286 10.663 -100
v 229.598 -8.00766 -100
v 229.598 8.00766 -100
v 229.821 -5.34341 -100
v 229.821 5.34341 -100
v 229.955 -2.6732 -100
v 229.955 2.6732 -100
v 230 0 -100
g CATIASTL
f 94 96 92
f 95 93 97
f 97 93 90
f 97 90 98
f 98 90 88
f 98 88 100
f 100 88 86
f 100 86 102
f 102 86 84
f 102 84 104
f 104 84 82
f 104 82 106
f 106 82 80
f 106 80 108
f 108 80 78
f 108 78 110
f 110 78 76
f 110 76 112
f 112 76 74
f 112 74 114
f 114 74 72
f 114 72 116
f 116 72 70
f 116 70 118
f 118 70 68
f 118 68 120
f 120 68 66
f 120 66 122
f 122 66 64
f 122 64 124
f 124 64 62
f 124 62 126
f 126 62 60
f 126 60 128
f 128 60 58
f 128 58 130
f 130 58 56
f 130 56 132
f 132 56 54
f 132 54 134
f 134 54 52
f 134 52 136
f 136 52 50
f 136 50 138
f 138 50 48
f 138 48 140
f 140 48 46
f 140 46 142
f 142 46 44
f 142 44 144
f 144 44 42
f 144 42 146
f 146 42 40
f 146 40 148
f 148 40 38
f 148 38 150
f 150 38 36
f 150 36 152
f 152 36 34
f 152 34 154
f 154 34 32
f 154 32 156
f 156 32 30
f 156 30 158
f 158 30 28
f 158 28 160
f 160 28 26
f 160 26 162
f 162 26 24
f 162 24 164
f 164 24 22
f 164 22 166
f 166 22 20
f 166 20 168
f 168 20 18
f 168 18 170
f 170 18 16
f 170 16 172
f 172 16 14
f 172 14 174
f 174 14 12
f 174 12 176
f 176 12 10
f 176 10 178
f 178 10 8
f 178 8 180
f 180 8 6
f 180 6 182
f 182 6 4
f 182 4 184
f 184 4 2
f 184 2 186
f 186 2 1
f 186 1 188
f 188 1 3
f 188 3 187
f 187 3 5
f 187 5 185
f 185 5 7
f 185 7 183
f 183 7 9
f 183 9 181
f 181 9 11
f 181 11 179
f 179 11 13
f 179 13 177
f 177 13 15
f 177 15 175
f 175 15 17
f 175 17 173
f 173 17 19
f 173 19 171
f 171 19 21
f 171 21 169
f 169 21 23
f 169 23 167
f 167 23 25
f 167 25 165
f 165 25 27
f 165 27 163
f 163 27 29
f 163 29 161
f 161 29 31
f 161 31 159
f 159 31 33
f 159 33 157
f 157 33 35
f 157 35 155
f 155 35 37
f 155 37 153
f 153 37 39
f 153 39 151
f 151 39 41
f 151 41 149
f 149 41 43
f 149 43 147
f 147 43 45
f 147 45 145
f 145 45 47
f 145 47 143
f 143 47 49
f 143 49 141
f 141 49 51
f 141 51 139
f 139 51 53
f 139 53 137
f 137 53 55
f 137 55 135
f 135 55 57
f 135 57 133
f 133 57 59
f 133 59 131
f 131 59 61
f 131 61 129
f 129 61 63
f 129 63 127
f 127 63 65
f 127 65 125
f 125 65 67
f 125 67 123
f 123 67 69
f 123 69 121
f 121 69 71
f 121 71 119
f 119 71 73
f 119 73 117
f 117 73 75
f 117 75 115
f 115 75 77
f 115 77 113
f 113 77 79
f 113 79 111
f 111 79 81
f 111 81 109
f 109 81 83
f 109 83 107
f 107 83 85
f 107 85 105
f 105 85 87
f 105 87 103
f 103 87 89
f 103 89 101
f 101 89 91
f 101 91 99
f 99 91 92
f 99 92 96

View File

@ -0,0 +1,536 @@
# Wavefront OBJ file
# Regions:
# 0 CATIASTL
#
# points : 264
# triangles : 264
#
v 129.002 -29.9955 183.325
v 128.148 29.9955 183.923
v 129.334 29.9857 183.096
v 127.819 -29.9857 184.156
v 130.194 -29.9355 182.51
v 126.974 29.9355 184.764
v 130.287 29.9279 182.447
v 126.883 -29.9279 184.831
v 125.958 -29.826 185.512
v 131.244 29.826 181.811
v 131.391 -29.8064 181.714
v 125.816 29.8064 185.617
v 125.045 -29.6803 186.199
v 132.202 29.6803 181.188
v 124.679 29.6089 186.478
v 132.59 -29.6089 180.939
v 133.158 29.4915 180.58
v 124.147 -29.4915 186.889
v 123.565 29.3443 187.344
v 133.784 -29.3443 180.188
v 133.793 29.3421 180.183
v 123.556 -29.3421 187.351
v 134.427 29.1741 179.793
v 122.974 -29.1741 187.813
v 134.972 -29.0143 179.462
v 122.477 29.0143 188.212
v 121.832 -28.7837 188.736
v 135.685 28.7837 179.036
v 121.374 28.6035 189.113
v 136.195 -28.6035 178.735
v 120.948 -28.423 189.467
v 136.674 28.423 178.456
v 120.306 28.1266 190.008
v 137.402 -28.1266 178.037
v 120.088 -28.0192 190.194
v 137.651 28.0192 177.896
v 119.273 27.5863 190.895
v 138.588 -27.5863 177.37
v 138.614 27.5739 177.356
v 119.252 -27.5739 190.914
v 118.44 -27.0887 191.626
v 139.561 27.0887 176.837
v 139.751 -26.9856 176.734
v 118.278 26.9856 191.769
v 117.914 -26.7451 192.094
v 140.18 26.7451 176.503
v 140.791 26.385 176.179
v 117.401 -26.385 192.557
v 117.322 26.3275 192.628
v 140.885 -26.3275 176.129
v 141.397 26.0063 175.861
v 116.895 -26.0063 193.018
v 116.411 25.6208 193.463
v 141.98 -25.6208 175.559
v 116.401 -25.6118 193.473
v 141.994 25.6118 175.553
v 143.043 -24.8634 175.02
v 115.541 24.8634 194.277
v 115.517 -24.8419 194.299
v 143.072 24.8419 175.005
v 114.71 24.0583 195.069
v 144.072 -24.0583 174.51
v 144.115 24.0228 174.488
v 114.675 -24.0228 195.102
v 113.919 23.2083 195.836
v 145.063 -23.2083 174.029
v 113.874 -23.1575 195.88
v 145.12 23.1575 174.002
v 113.168 22.3161 196.576
v 146.016 -22.3161 173.576
v 146.084 22.2488 173.544
v 113.114 -22.2488 196.63
v 112.457 21.3845 197.288
v 146.928 -21.3845 173.152
v 112.396 -21.2997 197.35
v 147.007 21.2997 173.115
v 147.887 20.3127 172.714
v 111.718 -20.3127 198.04
v 111.695 20.2771 198.064
v 147.917 -20.2771 172.701
v 148.368 19.7356 172.499
v 111.351 -19.7356 198.418
v 110.997 -19.1474 198.785
v 148.834 19.1474 172.292
v 148.851 -19.1253 172.284
v 110.984 19.1253 198.798
v 149.289 18.5427 172.091
v 110.653 -18.5427 199.145
v 110.324 17.9325 199.49
v 149.726 -17.9325 171.9
v 110.322 -17.9277 199.493
v 149.73 17.9277 171.899
v 150.542 -16.7021 171.549
v 109.715 16.7021 200.137
v 109.702 -16.675 200.15
v 150.56 16.675 171.542
v 109.156 15.4374 200.738
v 151.298 -15.4374 171.229
v 109.135 -15.3868 200.76
v 151.327 15.3868 171.217
v 151.992 -14.1415 170.94
v 108.646 14.1415 201.291
v 152.03 14.0664 170.924
v 108.619 -14.0664 201.321
v 108.186 12.8177 201.795
v 152.624 -12.8177 170.68
v 108.154 -12.7171 201.831
v 152.669 12.7171 170.662
v 153.191 -11.4687 170.449
v 107.775 11.4687 202.25
v 107.74 -11.3421 202.29
v 153.241 11.3421 170.429
v 153.699 -10.0842 170.245
v 107.41 10.0842 202.657
v 153.746 9.94438 170.226
v 107.376 -9.94438 202.695
v 154.141 -8.67993 170.069
v 107.094 8.67993 203.012
v 154.176 8.55855 170.056
v 107.069 -8.55855 203.04
v 154.515 -7.25883 169.921
v 106.827 7.25883 203.314
v 106.809 -7.15661 203.333
v 154.54 7.15661 169.912
v 154.822 -5.82374 169.801
v 106.608 5.82374 203.561
v 154.838 5.74127 169.795
v 106.597 -5.74127 203.574
v 106.439 4.37752 203.754
v 155.062 -4.37752 169.708
v 155.071 4.31526 169.704
v 106.433 -4.31526 203.761
v 106.318 2.92296 203.892
v 155.233 -2.92296 169.641
v 155.237 2.88126 169.64
v 106.315 -2.88126 203.895
v 155.336 -1.46286 169.601
v 106.245 1.46286 203.975
v 106.244 -1.44195 203.976
v 155.337 1.44195 169.601
v 155.37 1.95944e-14 169.588
v 106.221 1.95944e-14 204.003
v 174.966 29.7913 243.719
v 149.662 -12.308 261.438
v 175.49 -29.7086 243.353
v 170.439 -29.9337 246.889
v 150.21 -13.7001 261.054
v 181.086 27.9095 239.435
v 186.01 -24.7091 235.987
v 196.6 1.86591 228.572
v 148.377 -7.95114 262.337
v 187.612 23.2414 234.865
v 180.395 -28.2272 239.918
v 149.975 13.124 261.219
v 192.949 -15.8282 231.128
v 177.46 29.2702 241.973
v 159.649 -25.8838 254.445
v 184.497 25.8838 237.046
v 193.329 15.0559 230.862
v 194.171 -13.124 230.272
v 148.073 -6.45146 262.55
v 196.072 6.45146 228.941
v 193.589 -14.4953 230.68
v 148.243 7.32825 262.432
v 150.817 -15.0559 260.629
v 189.487 21.1678 233.552
v 157.535 -24.1871 255.925
v 164.249 -28.4389 251.224
v 147.546 -1.86591 262.92
v 174.232 -29.8839 244.234
v 151.48 -16.3717 260.165
v 166.686 -29.2702 249.518
v 193.935 13.7001 230.437
v 182.251 27.306 238.619
v 157.113 23.8005 256.221
v 195.16 -10.2806 229.58
v 195.903 -7.32825 229.06
v 179.194 -28.7128 240.759
v 188.017 -22.8288 234.581
v 195.562 -8.81611 229.298
v 167.927 -29.57 248.649
v 147.833 -4.93468 262.719
v 147.603 2.7641 262.88
v 158.136 24.7091 255.504
v 173.706 29.9337 244.602
v 149.451 11.7178 261.586
v 196.18 -5.82096 228.865
v 161.417 27.033 253.207
v 151.197 15.8282 260.363
v 160.757 -26.6302 253.669
v 156.534 -23.2414 256.626
v 147.519 1.22264 262.939
v 196.489 3.40481 228.65
v 191.505 -18.3647 232.139
v 171.704 -29.9966 246.004
v 150.557 14.4953 260.811
v 163.75 28.2272 251.573
v 160.291 26.3275 253.995
v 163.06 -27.9095 252.057
v 147.5 -0.322061 262.952
v 191.948 17.6441 231.829
v 167.408 29.4545 249.012
v 183.855 -26.3275 237.496
v 155.575 -22.2341 257.298
v 168.656 29.7086 248.138
v 147.965 5.82096 262.626
v 171.176 29.98 246.373
v 195.402 9.42973 229.411
v 154.659 -21.1678 257.939
v 188.571 22.2341 234.193
v 162.571 27.6668 252.399
v 187.033 -23.8005 235.27
v 196.627 -1.22264 228.553
v 190.356 20.0453 232.943
v 176.738 -29.4545 242.479
v 169.179 -29.7913 247.772
v 155.187 21.7965 257.569
v 166.172 29.1223 249.878
v 148.583 8.81611 262.193
v 181.575 -27.6668 239.092
v 152.198 -17.6441 259.662
v 194.695 -11.7178 229.905
v 147.657 -3.40481 262.842
v 177.974 -29.1223 241.614
v 172.969 -29.98 245.118
v 183.389 26.6302 237.822
v 196.543 -2.7641 228.611
v 147.752 4.29823 262.775
v 182.729 -27.033 238.284
v 161.895 -27.306 252.872
v 196.646 0.322061 228.539
v 188.958 -21.7965 233.922
v 156.129 22.8288 256.91
v 164.952 28.7128 250.732
v 186.611 24.1871 235.566
v 179.897 28.4389 240.267
v 148.986 10.2806 261.911
v 149.173 -10.8833 261.781
v 158.574 -25.0687 255.198
v 176.219 29.57 242.843
v 148.744 -9.42973 262.081
v 154.291 20.7065 258.197
v 153.789 -20.0453 258.548
v 196.313 4.93468 228.773
v 169.913 29.8839 247.258
v 172.442 29.9966 245.487
v 192.666 16.3717 231.327
v 152.641 18.3647 259.352
v 192.254 -17.1191 231.615
v 184.949 -25.5522 236.73
v 165.458 -28.8929 250.377
v 152.968 -18.8697 259.123
v 195.769 7.95114 229.154
v 153.441 19.5615 258.792
v 190.705 -19.5615 232.699
v 191.178 18.8697 232.368
v 159.197 25.5522 254.762
v 194.484 12.308 230.053
v 178.688 28.8929 241.114
v 189.855 -20.7065 233.294
v 185.572 25.0687 236.294
v 151.892 17.1191 259.876
v 194.973 10.8833 229.711
v 196.394 -4.29823 228.716
g CATIASTL
f 229 220 38
f 34 38 220
f 220 153 34
f 30 34 153
f 153 178 30
f 25 30 178
f 178 224 25
f 20 25 224
f 224 215 20
f 16 20 215
f 215 145 16
f 11 16 145
f 145 170 11
f 11 170 5
f 5 170 225
f 5 225 1
f 1 225 195
f 1 195 4
f 4 195 146
f 13 9 216
f 216 181 13
f 24 22 172
f 172 251 24
f 24 251 27
f 27 251 168
f 40 35 199
f 199 230 40
f 55 52 157
f 157 239 55
f 55 239 59
f 59 239 167
f 59 167 64
f 64 167 191
f 75 72 204
f 204 209 75
f 78 75 209
f 209 243 78
f 95 91 221
f 221 171 95
f 99 95 171
f 171 165 99
f 104 99 165
f 165 147 104
f 107 104 147
f 147 144 107
f 111 107 144
f 144 238 111
f 116 111 238
f 238 241 116
f 120 116 241
f 241 151 120
f 123 120 151
f 151 161 123
f 128 123 161
f 161 182 128
f 128 182 132
f 132 182 223
f 132 223 136
f 136 223 169
f 136 169 139
f 139 169 200
f 138 192 183
f 138 183 133
f 133 183 228
f 133 228 129
f 164 219 118
f 114 118 219
f 219 237 114
f 110 114 237
f 237 186 110
f 105 110 186
f 186 154 105
f 102 105 154
f 154 196 102
f 97 102 196
f 196 189 97
f 94 97 189
f 189 262 94
f 89 94 262
f 262 248 89
f 86 89 248
f 248 254 86
f 79 86 254
f 254 242 79
f 73 79 242
f 242 217 73
f 69 73 217
f 217 233 69
f 69 233 65
f 65 233 175
f 65 175 61
f 61 175 184
f 61 184 58
f 58 184 257
f 142 139 200
f 142 200 192
f 142 192 138
f 50 203 43
f 43 203 229
f 43 229 38
f 216 9 146
f 146 9 8
f 146 8 4
f 172 22 181
f 181 22 18
f 181 18 13
f 199 35 168
f 168 35 31
f 168 31 27
f 190 45 230
f 230 45 41
f 230 41 40
f 157 52 190
f 190 52 48
f 190 48 45
f 204 72 191
f 191 72 67
f 191 67 64
f 252 83 243
f 243 83 82
f 243 82 78
f 221 91 252
f 252 91 88
f 252 88 83
f 129 228 126
f 126 228 206
f 126 206 122
f 122 206 164
f 122 164 118
f 198 49 257
f 257 49 53
f 257 53 58
f 188 211 37
f 33 37 211
f 211 197 33
f 29 33 197
f 197 234 29
f 26 29 234
f 234 218 26
f 19 26 218
f 218 202 19
f 15 19 202
f 202 205 15
f 12 15 205
f 205 245 12
f 12 245 6
f 6 245 207
f 6 207 2
f 2 207 246
f 2 246 3
f 3 246 185
f 14 10 143
f 143 240 14
f 23 21 156
f 156 259 23
f 23 259 28
f 28 259 236
f 39 36 148
f 148 174 39
f 56 51 158
f 158 261 56
f 56 261 60
f 60 261 235
f 60 235 63
f 63 235 152
f 76 71 210
f 210 166 76
f 77 76 166
f 166 214 77
f 96 92 201
f 201 247 96
f 100 96 247
f 247 159 100
f 103 100 159
f 159 173 103
f 108 103 173
f 173 258 108
f 112 108 258
f 258 263 112
f 115 112 263
f 263 208 115
f 119 115 208
f 208 253 119
f 124 119 253
f 253 162 124
f 127 124 162
f 162 244 127
f 127 244 131
f 131 244 193
f 131 193 135
f 135 193 150
f 135 150 140
f 140 150 231
f 137 213 227
f 137 227 134
f 134 227 264
f 134 264 130
f 177 180 117
f 113 117 180
f 180 176 113
f 109 113 176
f 176 222 109
f 106 109 222
f 222 160 106
f 101 106 160
f 160 163 101
f 98 101 163
f 163 155 98
f 93 98 155
f 155 249 93
f 90 93 249
f 249 194 90
f 85 90 194
f 194 255 85
f 80 85 255
f 255 260 80
f 74 80 260
f 260 232 74
f 70 74 232
f 232 179 70
f 70 179 66
f 66 179 212
f 66 212 62
f 62 212 149
f 62 149 57
f 57 149 250
f 141 140 231
f 141 231 213
f 141 213 137
f 49 198 44
f 44 198 188
f 44 188 37
f 143 10 185
f 185 10 7
f 185 7 3
f 156 21 240
f 240 21 17
f 240 17 14
f 148 36 236
f 236 36 32
f 236 32 28
f 226 46 174
f 174 46 42
f 174 42 39
f 158 51 226
f 226 51 47
f 226 47 46
f 210 71 152
f 152 71 68
f 152 68 63
f 256 84 214
f 214 84 81
f 214 81 77
f 201 92 256
f 256 92 87
f 256 87 84
f 130 264 125
f 125 264 187
f 125 187 121
f 121 187 177
f 121 177 117
f 203 50 250
f 250 50 54
f 250 54 57

View File

@ -0,0 +1,346 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2006 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1;
// Nb of cells
/*
// 2260
d0 5;
d1 1;
d2 2;
d3 10;
d4 3;
d5 10;
d6 2;
d7 2;
d8 2;
d9 5;
*/
// 100000
d0 17;
d1 3;
d2 5;
d3 30;
d4 8;
d5 30;
d6 7;
d7 5;
d8 5;
d9 17;
#inputMode merge
vertices
(
( 163.03320099 -11.03547257 252.075300317) // 0
( 163.03320099 11.03547257 252.075300317) // 1
( 181.112660821 11.03547257 239.415926257) // 2
( 181.112660821 -11.03547257 239.415926257) // 3
( 186.820645067 -25 235.419152659) // 4
( 157.325216744 -25 256.072073914) // 5
( 157.325216744 25 256.072073914) // 6
( 186.820645067 25 235.419152659) // 7
( 121.715728415 28.2842709103 -100) // 8
( 178.28427091 28.2842709103 -100) // 9
( 178.28427091 13.2842713871 -100) // 10
( 178.28427091 -28.2842715846 -100) // 11
( 121.715728415 -28.2842715846 -100) // 12
( 121.715728415 -13.2842713871 -100) // 13
( 206.56854183 -56.568543179 -100) // 14
( 93.4314568307 -56.5685431693 -100) // 15
( 93.4314568307 56.5685418206 -100) // 16
( 206.568541821 56.5685418206 -100) // 17
( 206.568541821 25 -100) // 18
( 121.715728415 13.2842713871 -100) // 19
( 93.4314568307 30 -100) // 20
( 206.568541821 -25 -100) // 21
( 178.28427091 -13.2842713871 -100) // 22
( 93.4314568307 -30 -100) // 23
( 144.25122796 25 174.623724471) // 24
( 114.755799637 25 195.276645725) // 25
( 114.755799637 -25 195.276645725) // 26
( 144.25122796 -25 174.623724471) // 27
( -135.598492956 28.2842709103 80.1733574929) // 28
( -154.946073968 28.2842709103 133.330399444) // 29
( -154.946073968 13.2842713871 133.330399444) // 30
( -154.946073968 -28.2842715846 133.330399444) // 31
( -135.598492956 -28.2842715846 80.1733574929) // 32
( -135.598492956 -13.2842713871 80.1733574929) // 33
( -164.619864362 -56.568543179 159.908920112) // 34
( -125.924702335 -56.5685431693 53.5948362005) // 35
( -125.924702335 56.5685418206 53.5948362005) // 36
( -164.619864359 56.5685418206 159.908920103) // 37
( -164.619864359 25 159.908920103) // 38
( -135.598492956 13.2842713871 80.1733574929) // 39
( -125.924702335 30 53.5948362005) // 40
( -164.619864359 -25 159.908920103) // 41
( -154.946073968 -13.2842713871 133.330399444) // 42
( -125.924702335 -30 53.5948362005) // 43
( 126.07044907 13.2842713871 152.956715912) // 44
( 100.613664182 13.2842713871 170.781748589) // 45
( 89.7088908564 13.2842713871 109.622698279) // 46
( 72.3293929347 13.2842713871 121.791953734) // 47
( 126.07044907 28.2842715846 152.956715912) // 48
( 100.613664182 28.2842715846 170.781748589) // 49
( 89.7088908564 28.2842715846 109.622698279) // 50
( 72.3293929347 28.2842715846 121.791953734) // 51
( 126.07044907 -13.2842713871 152.956715912) // 52
( 100.613664182 -13.2842713871 170.781748589) // 53
( 89.7088908564 -13.2842713871 109.622698279) // 54
( 72.3293929347 -13.2842713871 121.791953734) // 55
( 126.07044907 -28.2842715846 152.956715912) // 56
( 100.613664182 -28.2842715846 170.781748589) // 57
( 89.7088908564 -28.2842715846 109.622698279) // 58
( 72.3293929347 -28.2842715846 121.791953734) // 59
( 144.251227967 -56.568543179 174.623724478) // 60
( 71.5281115328 -56.5685431693 87.9556892035) // 61
( 71.5281115328 56.5685418206 87.9556892035) // 62
( 144.25122796 56.5685418206 174.623724471) // 63
( 71.5281115328 30 87.9556892035) // 64
( 71.5281115328 -30 87.9556892035) // 65
( 114.755799642 -56.568543179 195.276645734) // 66
( 58.1872571424 -56.5685431693 97.2970560138) // 67
( 58.1872571424 56.5685418206 97.2970560138) // 68
( 114.755799637 56.5685418206 195.276645725) // 69
( 58.1872571424 30 97.2970560138) // 70
( 58.1872571424 -30 97.2970560138) // 71
( 138.543243714 -11.03547257 178.620498068) // 72
( 120.463783883 -11.03547257 191.279872128) // 73
( 120.463783883 11.03547257 191.279872128) // 74
( 138.543243714 11.03547257 178.620498068) // 75
( 106.977860404 -6.64213569356 166.32549042) // 76
( 106.977860404 6.64213569356 166.32549042) // 77
( 119.706252848 6.64213569356 157.412974081) // 78
( 119.706252848 -6.64213569356 157.412974081) // 79
( 76.6742674151 -6.64213569356 118.74963987) // 80
( 76.6742674151 6.64213569356 118.74963987) // 81
( 85.364016376 6.64213569356 112.665012142) // 82
( 85.364016376 -6.64213569356 112.665012142) // 83
( 68.1928979352 -15 90.291030906) // 84
( 68.1928979352 15 90.291030906) // 85
( 61.52247074 -15 94.9617143112) // 86
( 61.52247074 15 94.9617143112) // 87
);
edges
(
);
blocks
(
// 0
hex ( 72 75 74 73 3 2 1 0) ($d6 $d8 $d0 ) simpleGrading (1 1 1)
// 1
hex ( 26 27 72 73 5 4 3 0) ($d8 $d1 $d0 ) simpleGrading (1 1 1)
// 2
hex ( 25 26 73 74 6 5 0 1) ($d6 $d1 $d0 ) simpleGrading (1 1 1)
// 3
hex ( 24 25 74 75 7 6 1 2) ($d8 $d1 $d0 ) simpleGrading (1 1 1)
// 4
hex ( 24 75 72 27 7 2 3 4) ($d1 $d6 $d0 ) simpleGrading (1 1 1)
// 5
hex ( 44 46 50 48 10 19 8 9) ($d9 $d2 $d3 ) simpleGrading (1 1 1)
// 6
hex ( 48 50 62 63 9 8 16 17) ($d9 $d4 $d3 ) simpleGrading (1 1 1)
// 7
hex ( 46 64 62 50 19 20 16 8) ($d4 $d2 $d3 ) simpleGrading (1 1 1)
// 8
hex ( 24 44 48 63 18 10 9 17) ($d4 $d2 $d3 ) simpleGrading (1 1 1)
// 9
hex ( 44 52 54 46 10 22 13 19) ($d6 $d9 $d3 ) simpleGrading (1 1 1)
// 10
hex ( 24 27 52 44 18 21 22 10) ($d6 $d4 $d3 ) simpleGrading (1 1 1)
// 11
hex ( 52 56 58 54 22 11 12 13) ($d7 $d9 $d3 ) simpleGrading (1 1 1)
// 12
hex ( 56 60 61 58 11 14 15 12) ($d4 $d9 $d3 ) simpleGrading (1 1 1)
// 13
hex ( 27 60 56 52 21 14 11 22) ($d7 $d4 $d3 ) simpleGrading (1 1 1)
// 14
hex ( 54 58 61 65 13 12 15 23) ($d7 $d4 $d3 ) simpleGrading (1 1 1)
// 15
hex ( 46 54 65 64 19 13 23 20) ($d6 $d4 $d3 ) simpleGrading (1 1 1)
// 16
hex ( 48 63 69 49 44 24 25 45) ($d4 $d8 $d2 ) simpleGrading (1 1 1)
// 17
hex ( 74 75 78 77 25 24 44 45) ($d8 $d4 $d1 ) simpleGrading (1 1 1)
// 18
hex ( 72 79 78 75 27 52 44 24) ($d4 $d6 $d1 ) simpleGrading (1 1 1)
// 19
hex ( 26 53 42 41 25 45 30 38) ($d4 $d5 $d6 ) simpleGrading (1 1 1)
// 20
hex ( 29 49 69 37 30 45 25 38) ($d5 $d4 $d2 ) simpleGrading (1 1 1)
// 21
hex ( 73 74 77 76 26 25 45 53) ($d6 $d4 $d1 ) simpleGrading (1 1 1)
// 22
hex ( 31 57 53 42 34 66 26 41) ($d5 $d7 $d4 ) simpleGrading (1 1 1)
// 23
hex ( 56 57 66 60 52 53 26 27) ($d8 $d4 $d7 ) simpleGrading (1 1 1)
// 24
hex ( 72 73 76 79 27 26 53 52) ($d8 $d4 $d1 ) simpleGrading (1 1 1)
// 25
hex ( 45 49 51 47 30 29 28 39) ($d2 $d9 $d5 ) simpleGrading (1 1 1)
// 26
hex ( 49 69 68 51 29 37 36 28) ($d4 $d9 $d5 ) simpleGrading (1 1 1)
// 27
hex ( 47 51 68 70 39 28 36 40) ($d2 $d4 $d5 ) simpleGrading (1 1 1)
// 28
hex ( 45 47 55 53 30 39 33 42) ($d9 $d6 $d5 ) simpleGrading (1 1 1)
// 29
hex ( 53 55 59 57 42 33 32 31) ($d9 $d7 $d5 ) simpleGrading (1 1 1)
// 30
hex ( 57 59 67 66 31 32 35 34) ($d9 $d4 $d5 ) simpleGrading (1 1 1)
// 31
hex ( 55 71 67 59 33 43 35 32) ($d4 $d7 $d5 ) simpleGrading (1 1 1)
// 32
hex ( 47 70 71 55 39 40 43 33) ($d4 $d6 $d5 ) simpleGrading (1 1 1)
// 33
hex ( 48 49 51 50 44 45 47 46) ($d8 $d9 $d2 ) simpleGrading (1 1 1)
// 34
hex ( 77 78 82 81 45 44 46 47) ($d8 $d9 $d1 ) simpleGrading (1 1 1)
// 35
hex ( 78 79 83 82 44 52 54 46) ($d6 $d9 $d1 ) simpleGrading (1 1 1)
// 36
hex ( 76 77 81 80 53 45 47 55) ($d6 $d9 $d1 ) simpleGrading (1 1 1)
// 37
hex ( 62 68 70 64 50 51 47 46) ($d8 $d2 $d4 ) simpleGrading (1 1 1)
// 38
hex ( 82 83 84 85 46 54 65 64) ($d6 $d4 $d1 ) simpleGrading (1 1 1)
// 39
hex ( 81 82 85 87 47 46 64 70) ($d8 $d4 $d1 ) simpleGrading (1 1 1)
// 40
hex ( 80 81 87 86 55 47 70 71) ($d6 $d4 $d1 ) simpleGrading (1 1 1)
// 41
hex ( 62 63 69 68 50 48 49 51) ($d9 $d8 $d4 ) simpleGrading (1 1 1)
// 42
hex ( 56 58 59 57 52 54 55 53) ($d9 $d8 $d7 ) simpleGrading (1 1 1)
// 43
hex ( 76 80 83 79 53 55 54 52) ($d9 $d8 $d1 ) simpleGrading (1 1 1)
// 44
hex ( 61 65 71 67 58 54 55 59) ($d7 $d8 $d4 ) simpleGrading (1 1 1)
// 45
hex ( 80 86 84 83 55 71 65 54) ($d4 $d8 $d1 ) simpleGrading (1 1 1)
// 46
hex ( 60 61 67 66 56 58 59 57) ($d9 $d8 $d4 ) simpleGrading (1 1 1)
// 47
hex ( 76 79 78 77 73 72 75 74) ($d8 $d6 $d4 ) simpleGrading (1 1 1)
// 48
hex ( 80 83 82 81 76 79 78 77) ($d8 $d6 $d9 ) simpleGrading (1 1 1)
// 49
hex ( 84 85 87 86 83 82 81 80) ($d6 $d8 $d4 ) simpleGrading (1 1 1)
);
boundary
(
InletSmall
{
type patch;
faces
(
( 0 1 2 3) // 0
( 0 3 4 5) // 1
( 0 5 6 1) // 2
( 1 6 7 2) // 3
( 2 7 4 3) // 4
);
}
Outlet
{
type patch;
faces
(
( 8 19 10 9) // 0
( 8 9 17 16) // 1
( 8 16 20 19) // 2
( 9 10 18 17) // 3
( 10 19 13 22) // 4
( 10 22 21 18) // 5
( 11 22 13 12) // 6
( 11 12 15 14) // 7
( 11 14 21 22) // 8
( 12 13 23 15) // 9
( 13 19 20 23) // 10
);
}
SmallPipe
{
type wall;
faces
(
( 4 7 24 27) // 0
( 4 27 26 5) // 1
( 5 26 25 6) // 2
( 6 25 24 7) // 3
);
}
Inlet
{
type patch;
faces
(
( 28 29 30 39) // 0
( 28 36 37 29) // 1
( 28 39 40 36) // 2
( 29 37 38 30) // 3
( 30 42 33 39) // 4
( 30 38 41 42) // 5
( 31 32 33 42) // 6
( 31 34 35 32) // 7
( 31 42 41 34) // 8
( 32 35 43 33) // 9
( 33 43 40 39) // 10
);
}
BigPipe
{
type wall;
faces
(
( 14 21 27 60) // 0
( 14 15 61 60) // 1
( 15 23 65 61) // 2
( 16 17 63 62) // 3
( 16 62 64 20) // 4
( 17 63 24 18) // 5
( 18 24 27 21) // 6
( 20 64 65 23) // 7
( 24 63 69 25) // 8
( 25 69 37 38) // 9
( 25 38 41 26) // 10
( 26 41 34 66) // 11
( 26 66 60 27) // 12
( 34 66 67 35) // 13
( 35 67 71 43) // 14
( 36 68 69 37) // 15
( 36 40 70 68) // 16
( 40 43 71 70) // 17
( 60 61 67 66) // 18
( 61 65 71 67) // 19
( 62 63 69 68) // 20
( 62 68 70 64) // 21
( 64 85 84 65) // 22
( 64 70 87 85) // 23
( 65 84 86 71) // 24
( 70 71 86 87) // 25
( 84 85 87 86) // 26
);
}
);
// ************************************************************************* //

View File

@ -0,0 +1,59 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2006 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
DebugSwitches
{
pointBoundaryMesh 1;
}
application moveDynamicMesh;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 10;
deltaT 1;
writeControl timeStep;
writeInterval 1;
purgeWrite 0;
writeFormat ascii; //binary;
writePrecision 16;
writeCompression false;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep yes;
maxCo 0.1;
maxAlphaCo 0.1;
maxDeltaT 1;
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
note "mesh decomposition control dictionary";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- The total number of domains (mandatory)
numberOfSubdomains 2;
//- The decomposition method (mandatory)
method scotch;
// ************************************************************************* //

View File

@ -0,0 +1,45 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2006 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{}
gradSchemes
{
default Gauss linear;
}
divSchemes
{}
laplacianSchemes
{
default Gauss linear orthogonal;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default orthogonal;
}
// ************************************************************************* //

View File

@ -0,0 +1,33 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2006 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"cellDisplacement.*"
{
solver GAMG;
tolerance 1e-08;
relTol 0;
smoother GaussSeidel;
}
}
PIMPLE
{}
// ************************************************************************* //

View File

@ -0,0 +1,32 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object surfaceFeatureExtractDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
geometry.obj
{
// How to obtain raw features (extractFromFile || extractFromSurface)
extractionMethod extractFromSurface;
// Mark edges whose adjacent surface normals are at an angle less
// than includedAngle as features
// - 0 : selects no edges
// - 180: selects all edges
includedAngle 135;
// Write features to obj format for postprocessing
writeObj yes;
}
// ************************************************************************* //

View File

@ -0,0 +1,68 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2309 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
arch "LSB;label=32;scalar=64";
class pointVectorField;
location "0";
object pointDisplacement;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
movingZone
{
type uniformFixedValue;
uniformValue table
(
( 0.0 (0 0 0))
( 5.0 (0.2 0 0))
(10.0 (0 0 0))
);
}
movingZoneEdges
{
//type slip;
${movingZone}
}
minX
{
type slip;
}
maxX
{
$minX
}
minY
{
$minX
}
maxY
{
$minX
}
minZ
{
$minX
}
maxZ
{
$minX
}
}
// ************************************************************************* //

View File

@ -0,0 +1,17 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
#------------------------------------------------------------------------------
cleanCase
rm -rf constant/extendedFeatureEdgeMesh
#- From pointMesh generation
rm -rf constant/pointMesh
rm -f constant/triSurface/blockMesh.obj
#- From surfaceFeatureExtract
rm -f constant/triSurface/box222.eMesh
#------------------------------------------------------------------------------

View File

@ -0,0 +1,47 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
#- Generate mesh
runApplication blockMesh
#- Create faceZone (on unrotated mesh so is easy to select box of faces)
runApplication topoSet
#- Rotate a bit
#runApplication transformPoints -rotate-z -45
#- Generate pointMesh with additional feature patches
# (in constant/pointMesh/boundary)
# - extracted surface is not used
# - specify illegal patchname so none will be extracted (could use
# '-excludePatches' instead)
# - extract feature points of faceZone
# - additionally extract all points of faceZone (-extractZonePoints)
runApplication surfaceMeshExtract \
-featureAngle 45 \
-patches '(ZZZZZZ)' \
-faceZones '(movingZone)' -extractZonePoints \
constant/triSurface/blockMesh.obj
#- For postprocessing: extract new pointPatches as vtk files
setSet <<EOF
pointSet p0 new patchToPoint movingZone
pointSet p1 new patchToPoint movingZoneEdges
EOF
#- TBD. move triSurfaces to resources
#mkdir -p constant/triSurface
#cp -f \
# "$FOAM_TUTORIALS"/resources/geometry/box222.obj \
# constant/triSurface/
#- Extract features from surface. Writes .eMesh
runApplication surfaceFeatureExtract
#- Morph mesh to the surface (.obj file) and feature-edges (.eMesh file)
#- Note: needs point-based motion solver
runApplication moveDynamicMesh
#------------------------------------------------------------------------------

View File

@ -0,0 +1,2 @@
Demo of applying mesh motion to internal faces. Note: using point-based
motion-solver since no boundary faces to put motion bcs on.

View File

@ -0,0 +1,31 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverFvMesh;
// For point-bcs
motionSolverLibs (fvMotionSolvers);
motionSolver displacementPointSmoothing;
displacementPointSmoothingCoeffs
{
// Use geometricElementTransform to maintain relative sizes
pointSmoother geometricElementTransform;
transformationParameter 0.667;
nPointSmootherIter 10;
}
// ************************************************************************* //

View File

@ -0,0 +1,79 @@
# Generated by Visualization Toolkit
v -1 -1 -1
v -1 -1 1
v -1 1 -1
v -1 1 1
v 1 -1 -1
v 1 -1 1
v 1 1 -1
v 1 1 1
v -1 -1 -1
v -1 -1 1
v 1 -1 -1
v 1 -1 1
v -1 1 -1
v -1 1 1
v 1 1 -1
v 1 1 1
v -1 -1 -1
v 1 -1 -1
v -1 1 -1
v 1 1 -1
v -1 -1 1
v 1 -1 1
v -1 1 1
v 1 1 1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 -1 0
vn 0 -1 0
vn 0 -1 0
vn 0 -1 0
vn 0 1 0
vn 0 1 0
vn 0 1 0
vn 0 1 0
vn 0 0 -1
vn 0 0 -1
vn 0 0 -1
vn 0 0 -1
vn 0 0 1
vn 0 0 1
vn 0 0 1
vn 0 0 1
vt -0.5 -0.5
vt 1.5 -0.5
vt -0.5 1.5
vt 1.5 1.5
vt 0.5 -0.5
vt -1.5 -0.5
vt 0.5 1.5
vt -1.5 1.5
vt 0.5 0.5
vt 0.5 -1.5
vt -1.5 0.5
vt -1.5 -1.5
vt -0.5 0.5
vt -0.5 -1.5
vt 1.5 0.5
vt 1.5 -1.5
vt 0.5 -0.5
vt -1.5 -0.5
vt 0.5 1.5
vt -1.5 1.5
vt -0.5 -0.5
vt 1.5 -0.5
vt -0.5 1.5
vt 1.5 1.5
f 1/1/1 2/2/2 4/4/4 3/3/3
f 5/5/5 7/7/7 8/8/8 6/6/6
f 9/9/9 11/11/11 12/12/12 10/10/10
f 13/13/13 14/14/14 16/16/16 15/15/15
f 17/17/17 19/19/19 20/20/20 18/18/18
f 21/21/21 22/22/22 24/24/24 23/23/23

View File

@ -0,0 +1,95 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1;
vertices
(
// Inner block
(-2 -2 -2)
( 2 -2 -2)
( 2 2 -2)
(-2 2 -2)
(-2 -2 2)
( 2 -2 2)
( 2 2 2)
(-2 2 2)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (20 20 20) grading (1 10 1) // Inner block
);
boundary
(
minX
{
type patch;
faces
(
(0 0) // block 0: x-min
);
}
maxX
{
type patch;
faces
(
(0 1) // block 0: x-max
);
}
minY
{
type patch;
faces
(
(0 2) // block 0: y-min
);
}
maxY
{
type patch;
faces
(
(0 3) // block 0: y-max
);
}
minZ
{
type patch;
faces
(
(0 4) // block 0: z-min
);
}
maxZ
{
type patch;
faces
(
(0 5) // block 0: z-max
);
}
);
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
DebugSwitches
{
pointBoundaryMesh 1;
}
application moveDynamicMesh;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 10;
deltaT 1;
writeControl timeStep;
writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
// ************************************************************************* //

View File

@ -0,0 +1,44 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{}
gradSchemes
{
default Gauss linear;
}
divSchemes
{}
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
// ************************************************************************* //

View File

@ -0,0 +1,33 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"cellDisplacement.*"
{
solver GAMG;
tolerance 1e-08;
relTol 0;
smoother GaussSeidel;
}
}
PIMPLE
{}
// ************************************************************************* //

View File

@ -0,0 +1,33 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object surfaceFeatureExtractDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
box222.obj
{
// How to obtain raw features (extractFromFile || extractFromSurface)
extractionMethod extractFromSurface;
// Mark edges whose adjacent surface normals are at an angle less
// than includedAngle as features
// - 0 : selects no edges
// - 180: selects all edges
includedAngle 135;
// Write features to obj format for postprocessing
writeObj yes;
}
// ************************************************************************* //

View File

@ -0,0 +1,43 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name c0;
type cellSet;
action new;
source boxToCell;
box (-1 -1 -1)(1 1 1);
}
{
name movingZoneFaces;
type faceSet;
action new;
source cellToFace;
set c0;
option outside;
}
{
name movingZone;
type faceZoneSet;
action new;
source setToFaceZone;
faceSet movingZoneFaces;
}
);
// ************************************************************************* //

View File

@ -18,14 +18,14 @@ scale 1;
vertices
(
(-1 -1 -1)
( 2 -1 -1)
( 2 0 -1)
(-1 0 -1)
(-1 -1 1)
( 2 -1 1)
( 2 0 1)
(-1 0 1)
(-1 -0.8 -1)
( 2 -0.8 -1)
( 2 -0.2 -1)
(-1 -0.2 -1)
(-1 -0.8 1)
( 2 -0.8 1)
( 2 -0.2 1)
(-1 -0.2 1)
);
blocks
@ -44,14 +44,30 @@ boundary
type patch;
faces
(
(3 7 6 2)
(1 5 4 0) //back
(2 6 5 1) //outlet
(0 4 7 3) //inlet
(0 3 2 1) //lowerWall
(4 5 6 7) //upperWall
);
}
front
{
type symmetryPlane;
faces
(
(3 7 6 2)
);
}
back
{
type symmetryPlane;
faces
(
(1 5 4 0) //back
);
}
);

View File

@ -5,14 +5,14 @@
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSchemes;
version 2;
format ascii;
class dictionary;
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
@ -20,6 +20,7 @@ ddtSchemes
gradSchemes
{
default Gauss linear;
}
divSchemes
@ -28,14 +29,17 @@ divSchemes
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
wallDist

View File

@ -16,6 +16,13 @@ FoamFile
solvers
{
"cellDisplacement.*"
{
solver GAMG;
tolerance 1e-08;
relTol 0;
smoother GaussSeidel;
}
}

View File

@ -14,6 +14,11 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Type of mesh generation:
// - castellated (default)
// - castellatedBufferLayer
//type castellatedBufferLayer;
// Which of the steps to run
castellatedMesh true;
snap true;
@ -427,6 +432,31 @@ castellatedMeshControls
//nCellZoneErodeIter 2;
}
// Internal macro for mesh-motion solver to use
_meshMotionSolver
{
solver displacementPointSmoothing;
displacementPointSmoothingCoeffs
{
//// Use geometricElementTransform to maintain relative sizes
//pointSmoother geometricElementTransform;
//transformationParameter 0.667;
//nPointSmootherIter 10;
// Use laplacian to untangle problem areas
pointSmoother laplacian;
nPointSmootherIter 10;
//relaxationFactors (1.0 0.8 0.6 0.4 0.2 0.0);
//meshQuality
//{
// #includeEtc "caseDicts/meshQualityDict"
//}
}
}
// Settings for the snapping.
snapControls
{
@ -501,6 +531,10 @@ snapControls
//- Attract points only to the surface they originate from. Default
// false. This can improve snapping of intersecting surfaces.
strictRegionSnap true;
// Motion solver to use (when in castellatedBufferLayer)
${_meshMotionSolver}
}
// Settings for the layer addition.
@ -601,19 +635,27 @@ addLayersControls
// motion solvers. It needs specification of the solver to use and
// its control dictionary.
//meshShrinker displacementMotionSolver;
//solver displacementLaplacian;
//displacementLaplacianCoeffs
//solver multiDisplacement;
//solvers
//{
// diffusivity quadratic inverseDistance
// (
// sphere.stl_firstSolid
// maxY
// );
// displacementLaplacian
// {
// // Note that e.g. displacementLaplacian needs entries in
// // fvSchemes, fvSolution. Also specify a minIter > 1 when
// // solving
// // cellDisplacement since otherwise solution might not be
// // sufficiently accurate on points.
// solver displacementLaplacian;
// diffusivity quadratic inverseDistance
// (
// aerofoil
// );
// }
// displacementPointSmoothing
// {
// ${_meshMotionSolver}
// }
//}
// Note that e.g. displacementLaplacian needs entries in
// fvSchemes, fvSolution. Also specify a minIter > 1 when solving
// cellDisplacement since otherwise solution might not be sufficiently
// accurate on points.
// Medial axis analysis (for use with default displacementMedialAxis)

View File

@ -0,0 +1,10 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
#------------------------------------------------------------------------------
rm -rf constant/extendedFeatureEdgeMesh
rm -rf constant/triSurface/block.eMesh
cleanCase0
#------------------------------------------------------------------------------

View File

@ -0,0 +1,24 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
#mkdir -p constant/triSurface
#cp -f \
# "$FOAM_TUTORIALS"/resources/geometry/flange.stl.gz \
# constant/triSurface
runApplication blockMesh
runApplication surfaceFeatureExtract
runApplication snappyHexMesh
runApplication checkMesh -writeFields '(nonOrthoAngle)'
# Run parallel a bit as well
runApplication decomposePar
runParallel -s parallel snappyHexMesh
runParallel -s parallel checkMesh -writeFields '(nonOrthoAngle)'
#------------------------------------------------------------------------------

View File

@ -0,0 +1,2 @@
- rotated block inside regular blockMesh
- set up to add buffer layers after smoothing outside

View File

@ -0,0 +1,41 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverFvMesh;
solver displacementPointSmoothing;
displacementPointSmoothingCoeffs
{
//// Use geometricElementTransform to maintain relative sizes
//pointSmoother geometricElementTransform;
//transformationParameter 0.667;
//nPointSmootherIter 10;
// Use laplacian to untangle problem areas
pointSmoother laplacian;
nPointSmootherIter 100;
//relaxationFactors (1.0 0.8 0.6 0.4 0.2 0.0);
//meshQuality
//{
// #includeEtc "caseDicts/meshQualityDict"
//}
}
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
nu 0.01;
// ************************************************************************* //

View File

@ -0,0 +1,38 @@
# Wavefront OBJ file written 2024-01-24T16:36:27
o block
# points : 8
# faces : 6
# zones : 6
# 0 maxY (nFaces: 1)
# 1 minX (nFaces: 1)
# 2 minZ (nFaces: 1)
# 3 maxX (nFaces: 1)
# 4 maxZ (nFaces: 1)
# 5 minY (nFaces: 1)
# <points count="8">
v 0 0 0
v -0.5773502691896258 -0.2113248654051871 0.7886751345948129
v -1.154700538379252 0.5773502691896258 0.5773502691896258
v -0.5773502691896258 0.7886751345948129 -0.2113248654051871
v 0.5773502691896258 0.5773502691896258 0.5773502691896258
v 0 1.366025403784439 0.3660254037844388
v -0.5773502691896258 1.154700538379252 1.154700538379252
v 0 0.3660254037844388 1.366025403784439
# </points>
# <faces count="6">
g maxY
f 4 3 7 6
g minX
f 1 2 3 4
g minZ
f 1 4 6 5
g maxX
f 5 6 7 8
g maxZ
f 2 8 7 3
g minY
f 1 5 8 2
# </faces>

View File

@ -0,0 +1,96 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1;
vertices
(
(-2 -1 -1)
( 1 -1 -1)
( 1 2 -1)
(-2 2 -1)
(-2 -1 2)
( 1 -1 2)
( 1 2 2)
(-2 2 2)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (20 20 20) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
minX
{
type wall;
faces
(
(0 4 7 3)
);
}
maxX
{
type wall;
faces
(
(2 6 5 1)
);
}
minY
{
type wall;
faces
(
(1 5 4 0)
);
}
maxY
{
type wall;
faces
(
(3 7 6 2)
);
}
minZ
{
type wall;
faces
(
(0 3 2 1)
);
}
maxZ
{
type wall;
faces
(
(4 5 6 7)
);
}
);
// ************************************************************************* //

View File

@ -0,0 +1,97 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1;
vertices
(
(0 0 0)
(1 0 0)
(1 1 0)
(0 1 0)
(0 0 1)
(1 0 1)
(1 1 1)
(0 1 1)
);
blocks
(
//hex (0 1 2 3 4 5 6 7) (20 20 10) simpleGrading (100 100 1)
hex (0 1 2 3 4 5 6 7) (1 1 1) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
minX
{
type wall;
faces
(
(0 4 7 3)
);
}
maxX
{
type wall;
faces
(
(2 6 5 1)
);
}
minY
{
type wall;
faces
(
(1 5 4 0)
);
}
maxY
{
type wall;
faces
(
(3 7 6 2)
);
}
minZ
{
type wall;
faces
(
(0 3 2 1)
);
}
maxZ
{
type wall;
faces
(
(4 5 6 7)
);
}
);
// ************************************************************************* //

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application snappyHexMesh;
startFrom startTime;
startTime 0;
stopAt writeNow;
endTime 30;
deltaT 1;
writeControl timeStep;
writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 16;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1806 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
note "mesh decomposition control dictionary";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- The total number of domains (mandatory)
numberOfSubdomains 5;
//- The decomposition method (mandatory)
method scotch; //random;
// ************************************************************************* //

View File

@ -0,0 +1,59 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//geometry
//{
// type highAspectRatio;
// minAspect 0;
// maxAspect 0;
//}
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
}
divSchemes
{
default none;
div(phi,U) Gauss linear;
}
laplacianSchemes
{
default Gauss linear orthogonal;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default orthogonal;
}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0.05;
}
pFinal
{
$p;
relTol 0;
}
U
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-05;
relTol 0;
}
}
PISO
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,32 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object meshQualityDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Include defaults parameters from master dictionary
#includeEtc "caseDicts/meshQualityDict"
//maxNonOrtho 180;
//maxConcave 180;
//minVol -1e30;
maxBoundarySkewness -1;
maxInternalSkewness -1;
//minTetQuality -1e30;
//minDeterminant -1e30;
//minTwist -1;
//minFaceWeight -1;
//minVolRatio -1;
//minDeterminant -1;
// ************************************************************************* //

View File

@ -0,0 +1,364 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Type of mesh generation:
// - castellated (default)
// - castellatedBufferLayer
type castellatedBufferLayer;
// Which of the steps to run
castellatedMesh true;
snap true;
addLayers false; //true;
// Geometry. Definition of all surfaces. All surfaces are of class
// searchableSurface.
// Surfaces are used
// - to specify refinement for any mesh cell intersecting it
// - to specify refinement for any mesh cell inside/outside/near
// - to 'snap' the mesh boundary to the surface
geometry
{
block
{
type triSurfaceMesh;
file "block.obj";
}
}
// Settings for the castellatedMesh generation.
castellatedMeshControls
{
// Refinement parameters
// ~~~~~~~~~~~~~~~~~~~~~
// If local number of cells is >= maxLocalCells on any processor
// switches from from refinement followed by balancing
// (current method) to (weighted) balancing before refinement.
maxLocalCells 100000;
// Overall cell limit (approximately). Refinement will stop immediately
// upon reaching this number so a refinement level might not complete.
// Note that this is the number of cells before removing the part which
// is not 'visible' from the keepPoint. The final number of cells might
// actually be a lot less.
maxGlobalCells 2000000;
// The surface refinement loop might spend lots of iterations refining just a
// few cells. This setting will cause refinement to stop if <= minimumRefine
// are selected for refinement. Note: it will at least do one iteration
// (unless the number of cells to refine is 0)
minRefinementCells 0;
// Number of buffer layers between different levels.
// 1 means normal 2:1 refinement restriction, larger means slower
// refinement.
nCellsBetweenLevels 1;
// Explicit feature edge refinement
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Specifies a level for any cell intersected by its edges.
// This is a featureEdgeMesh, read from constant/triSurface for now.
features
(
{
file "block.eMesh";
level 0;
}
);
// Surface based refinement
// ~~~~~~~~~~~~~~~~~~~~~~~~
// Specifies two levels for every surface. The first is the minimum level,
// every cell intersecting a surface gets refined up to the minimum level.
// The second level is the maximum level. Cells that 'see' multiple
// intersections where the intersections make an
// angle > resolveFeatureAngle get refined up to the maximum level.
refinementSurfaces
{
block
{
// Surface-wise min and max refinement level
level (2 2);
faceZone block;
faceType internal;
//addBufferLayers true;
}
}
resolveFeatureAngle 180;
// Region-wise refinement
// ~~~~~~~~~~~~~~~~~~~~~~
// Specifies refinement level for cells in relation to a surface. One of
// three modes
// - distance. 'levels' specifies per distance to the surface the
// wanted refinement level. The distances need to be specified in
// descending order.
// - inside. 'levels' is only one entry and only the level is used. All
// cells inside the surface get refined up to the level. The surface
// needs to be closed for this to be possible.
// - outside. Same but cells outside.
refinementRegions
{
}
// Mesh selection
// ~~~~~~~~~~~~~~
// After refinement patches get added for all refinementSurfaces and
// all cells intersecting the surfaces get put into these patches. The
// section reachable from the locationInMesh is kept.
// NOTE: This point should never be on a face, always inside a cell, even
// after refinement.
// This is an outside point locationInMesh (-0.033 -0.033 0.0033);
locationInMesh (0.00013 0.00013 0.00013); // Inside point
// Whether any faceZones (as specified in the refinementSurfaces)
// are only on the boundary of corresponding cellZones or also allow
// free-standing zone faces. Not used if there are no faceZones.
allowFreeStandingZoneFaces false;
nCellZoneErodeIter -1;
}
// Internal macro for mesh-motion solver to use
_meshMotionSolver
{
solver displacementPointSmoothing;
displacementPointSmoothingCoeffs
{
//// Use geometricElementTransform to maintain relative sizes
//pointSmoother geometricElementTransform;
//transformationParameter 0.667;
//nPointSmootherIter 10;
// Use laplacian to untangle problem areas
pointSmoother laplacian;
nPointSmootherIter 10;
//relaxationFactors (1.0 0.8 0.6 0.4 0.2 0.0);
//meshQuality
//{
// #includeEtc "caseDicts/meshQualityDict"
//}
}
}
// Settings for the snapping.
snapControls
{
//- Number of patch smoothing iterations before finding correspondence
// to surface
nSmoothPatch 3;
//- Relative distance for points to be attracted by surface feature point
// or edge. True distance is this factor times local
// maximum edge length.
tolerance 1.0;
//- When to split face with diagonal attraction:
// 0 : only if perfect alignment (angle = 0) with feature itself
// 180 : always
concaveAngle 180;
//- When to split distorted face: not split if areas would differ too
// much (ideal is equal size i.e. area-ratio 1). -1 : disable check
minAreaRatio -1;
//- Number of mesh displacement relaxation iterations.
nSolveIter 300;
//- Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 5;
// Feature snapping
//- Number of feature edge snapping iterations.
// Leave out altogether to disable.
nFeatureSnapIter 10;
//- Detect (geometric) features by sampling the surface
implicitFeatureSnap true;
//- Use castellatedMeshControls::features
explicitFeatureSnap true;
//- Detect features between multiple surfaces
// (only for explicitFeatureSnap, default = false)
multiRegionFeatureSnap true;
// Motion solver to use
${_meshMotionSolver}
}
// Settings for the layer addition.
addLayersControls
{
// Are the thickness parameters below relative to the undistorted
// size of the refined cell outside layer (true) or absolute sizes (false).
relativeSizes true;
// Per final patch (so not geometry!) the layer information
layers
{
"block_.*"
{
nSurfaceLayers 1;
}
}
// Expansion factor for layer mesh
expansionRatio 1.0;
// Wanted thickness of final added cell layer. If multiple layers
// is the thickness of the layer furthest away from the wall.
// Relative to undistorted size of cell outside layer.
// See relativeSizes parameter.
finalLayerThickness 0.5;
// Minimum thickness of cell layer. If for any reason layer
// cannot be above minThickness do not add layer.
// See relativeSizes parameter.
minThickness 0.1;
// If points get not extruded do nGrow layers of connected faces that are
// also not grown. This helps convergence of the layer addition process
// close to features.
nGrow 0;
// Advanced settings
// When not to extrude surface. 0 is flat surface, 90 is when two faces
// are perpendicular
featureAngle 30;
// Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 5;
// Number of smoothing iterations of surface normals
nSmoothSurfaceNormals 1;
// Number of smoothing iterations of interior mesh movement direction
nSmoothNormals 3;
// Smooth layer thickness over surface patches
nSmoothThickness 10;
// Stop layer growth on highly warped cells
maxFaceThicknessRatio 0.5;
// Reduce layer growth where ratio thickness to medial
// distance is large
maxThicknessToMedialRatio 0.3;
// Angle used to pick up medial axis points
minMedialAxisAngle 90;
// Create buffer region for new layer terminations
nBufferCellsNoExtrude 0;
//- Use displacementMotionSolver to shrink mesh
meshShrinker displacementMotionSolver;
// Motion solver to use
${_meshMotionSolver}
// Overall max number of layer addition iterations. The mesher will exit
// if it reaches this number of iterations; possibly with an illegal
// mesh.
nLayerIter 50;
// Max number of iterations after which relaxed meshQuality controls
// get used. Up to nRelaxIter it uses the settings in meshQualityControls,
// after nRelaxIter it uses the values in meshQualityControls::relaxed.
nRelaxedIter 20;
}
// Generic mesh quality settings. At any undoable phase these determine
// where to undo.
meshQualityControls
{
#include "meshQualityDict"
// Optional : some meshing phases allow usage of relaxed rules.
// See e.g. addLayersControls::nRelaxedIter.
relaxed
{
//- Maximum non-orthogonality allowed. Set to 180 to disable.
maxNonOrtho 75;
}
// Advanced
//- Number of error distribution iterations
nSmoothScale 4;
//- Amount to scale back displacement at error points
errorReduction 0.75;
}
// Advanced
// Write flags
writeFlags
(
// scalarLevels // write volScalarField with cellLevel for postprocessing
// layerSets // write cellSets, faceSets of faces in layer
// layerFields // write volScalarField for layer coverage
);
//debugFlags
//(
// mesh
// attraction
//);
// Merge tolerance. Is fraction of overall bounding box of initial mesh.
// Note: the write tolerance needs to be higher than this.
mergeTolerance 1E-6;
// ************************************************************************* //

View File

@ -0,0 +1,35 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object surfaceFeatureExtractDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
block.obj
{
// How to obtain raw features (extractFromFile || extractFromSurface)
extractionMethod extractFromSurface;
// Mark edges whose adjacent surface normals are at an angle less
// than includedAngle as features
// - 0 : selects no edges
// - 180: selects all edges
includedAngle 150;
// Write options
// Write features to obj format for postprocessing
writeObj yes;
}
// ************************************************************************* //

View File

@ -0,0 +1,9 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
#------------------------------------------------------------------------------
cleanCase0
rm -f *.obj
#------------------------------------------------------------------------------

View File

@ -0,0 +1,12 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
runApplication blockMesh
runApplication snappyHexMesh
runApplication checkMesh -writeFields '(nonOrthoAngle)'
#------------------------------------------------------------------------------

View File

@ -0,0 +1,2 @@
- sphere with inside and outside meshed
- demonstrates buffer layers

View File

@ -0,0 +1,41 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverFvMesh;
solver displacementPointSmoothing;
displacementPointSmoothingCoeffs
{
//// Use geometricElementTransform to maintain relative sizes
//pointSmoother geometricElementTransform;
//transformationParameter 0.667;
//nPointSmootherIter 10;
// Use laplacian to untangle problem areas
pointSmoother laplacian;
nPointSmootherIter 100;
//relaxationFactors (1.0 0.8 0.6 0.4 0.2 0.0);
//meshQuality
//{
// #includeEtc "caseDicts/meshQualityDict"
//}
}
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
nu 0.01;
// ************************************************************************* //

View File

@ -0,0 +1,96 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1;
vertices
(
(-1 -1 -1)
( 1 -1 -1)
( 1 1 -1)
(-1 1 -1)
(-1 -1 1)
( 1 -1 1)
( 1 1 1)
(-1 1 1)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (20 20 20) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
minX
{
type wall;
faces
(
(0 4 7 3)
);
}
maxX
{
type wall;
faces
(
(2 6 5 1)
);
}
minY
{
type wall;
faces
(
(1 5 4 0)
);
}
maxY
{
type wall;
faces
(
(3 7 6 2)
);
}
minZ
{
type wall;
faces
(
(0 3 2 1)
);
}
maxZ
{
type wall;
faces
(
(4 5 6 7)
);
}
);
// ************************************************************************* //

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application snappyHexMesh;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 30;
deltaT 1;
writeControl timeStep;
writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 16;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
// ************************************************************************* //

View File

@ -0,0 +1,30 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1806 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
note "mesh decomposition control dictionary";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
////- The total number of domains (mandatory)
//numberOfSubdomains 2;
//
////- The decomposition method (mandatory)
//method random;
//- The total number of domains (mandatory)
numberOfSubdomains 11;
//- The decomposition method (mandatory)
method scotch;
// ************************************************************************* //

View File

@ -0,0 +1,59 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//geometry
//{
// type highAspectRatio;
// minAspect 0;
// maxAspect 0;
//}
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
}
divSchemes
{
default none;
div(phi,U) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
// ************************************************************************* //

View File

@ -0,0 +1,57 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0.05;
}
pFinal
{
$p;
relTol 0;
}
U
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-05;
relTol 0;
}
cellDisplacement
{
$pFinal;
}
}
PISO
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,32 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object meshQualityDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Include defaults parameters from master dictionary
#includeEtc "caseDicts/meshQualityDict"
//maxNonOrtho 180;
//maxConcave 180;
//minVol -1e30;
maxBoundarySkewness -1;
maxInternalSkewness -1;
//minTetQuality -1e30;
//minDeterminant -1e30;
//minTwist -1;
//minFaceWeight -1;
//minVolRatio -1;
//minDeterminant -1;
// ************************************************************************* //

View File

@ -0,0 +1,380 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2312 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Type of mesh generation:
// - castellated (default)
// - castellatedBufferLayer (adds single layer of cells before snapping)
type castellatedBufferLayer;
// Which of the steps to run
castellatedMesh true;
snap true;
addLayers true;
// Geometry. Definition of all surfaces. All surfaces are of class
// searchableSurface.
// Surfaces are used
// - to specify refinement for any mesh cell intersecting it
// - to specify refinement for any mesh cell inside/outside/near
// - to 'snap' the mesh boundary to the surface
geometry
{
sphere
{
type sphere;
origin (0.0 0 0);
radius 0.5;
}
outside
{
type box;
min (-0.91 -0.91 -0.91);
max ( 0.91 0.91 0.91);
}
}
// Settings for the castellatedMesh generation.
castellatedMeshControls
{
// Refinement parameters
// ~~~~~~~~~~~~~~~~~~~~~
// If local number of cells is >= maxLocalCells on any processor
// switches from from refinement followed by balancing
// (current method) to (weighted) balancing before refinement.
maxLocalCells 100000;
// Overall cell limit (approximately). Refinement will stop immediately
// upon reaching this number so a refinement level might not complete.
// Note that this is the number of cells before removing the part which
// is not 'visible' from the keepPoint. The final number of cells might
// actually be a lot less.
maxGlobalCells 2000000;
// The surface refinement loop might spend lots of iterations refining just a
// few cells. This setting will cause refinement to stop if <= minimumRefine
// are selected for refinement. Note: it will at least do one iteration
// (unless the number of cells to refine is 0)
minRefinementCells 0;
// Number of buffer layers between different levels.
// 1 means normal 2:1 refinement restriction, larger means slower
// refinement.
nCellsBetweenLevels 1;
// Explicit feature edge refinement
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Specifies a level for any cell intersected by its edges.
// This is a featureEdgeMesh, read from constant/triSurface for now.
features
(
);
// Surface based refinement
// ~~~~~~~~~~~~~~~~~~~~~~~~
// Specifies two levels for every surface. The first is the minimum level,
// every cell intersecting a surface gets refined up to the minimum level.
// The second level is the maximum level. Cells that 'see' multiple
// intersections where the intersections make an
// angle > resolveFeatureAngle get refined up to the maximum level.
refinementSurfaces
{
sphere
{
// Surface-wise min and max refinement level
level (1 1);
addBufferLayers true;
}
outside
{
// Surface-wise min and max refinement level
level (1 1);
// Disable buffer layers
addBufferLayers false;
}
}
resolveFeatureAngle 180;
// Region-wise refinement
// ~~~~~~~~~~~~~~~~~~~~~~
// Specifies refinement level for cells in relation to a surface. One of
// three modes
// - distance. 'levels' specifies per distance to the surface the
// wanted refinement level. The distances need to be specified in
// descending order.
// - inside. 'levels' is only one entry and only the level is used. All
// cells inside the surface get refined up to the level. The surface
// needs to be closed for this to be possible.
// - outside. Same but cells outside.
refinementRegions
{
}
// Mesh selection
// ~~~~~~~~~~~~~~
// After refinement patches get added for all refinementSurfaces and
// all cells intersecting the surfaces get put into these patches. The
// section reachable from the locationInMesh is kept.
// NOTE: This point should never be on a face, always inside a cell, even
// after refinement.
// This is an outside point locationInMesh (-0.033 -0.033 0.0033);
locationsInMesh
(
(( 0.001 0.001 0.001) sphere)
(( 0.701 0.701 0.701) outside)
);
// Whether any faceZones (as specified in the refinementSurfaces)
// are only on the boundary of corresponding cellZones or also allow
// free-standing zone faces. Not used if there are no faceZones.
allowFreeStandingZoneFaces false;
}
// Internal macro for mesh-motion solver to use
_meshMotionSolver
{
solver displacementPointSmoothing;
displacementPointSmoothingCoeffs
{
//// Use geometricElementTransform to maintain relative sizes
//pointSmoother geometricElementTransform;
//transformationParameter 0.667;
//nPointSmootherIter 10;
// Use laplacian to untangle problem areas
pointSmoother laplacian;
nPointSmootherIter 10;
//relaxationFactors (1.0 0.8 0.6 0.4 0.2 0.0);
//meshQuality
//{
// #includeEtc "caseDicts/meshQualityDict"
//}
}
}
// Settings for the snapping.
snapControls
{
//- Number of patch smoothing iterations before finding correspondence
// to surface
nSmoothPatch 3;
//- Relative distance for points to be attracted by surface feature point
// or edge. True distance is this factor times local
// maximum edge length.
tolerance 1.0;
//- When to split face with diagonal attraction:
// 0 : only if perfect alignment (angle = 0) with feature itself
// 180 : always
concaveAngle 180;
//- When to split distorted face: not split if areas would differ too
// much (ideal is equal size i.e. area-ratio 1). -1 : disable check
minAreaRatio -1;
//- Number of mesh displacement relaxation iterations.
nSolveIter 10;
//- Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 5;
// Feature snapping
//- Number of feature edge snapping iterations.
// Leave out altogether to disable.
nFeatureSnapIter 10;
//- Detect (geometric) features by sampling the surface
implicitFeatureSnap true;
//- Use castellatedMeshControls::features
explicitFeatureSnap true;
//- Detect features between multiple surfaces
// (only for explicitFeatureSnap, default = false)
multiRegionFeatureSnap true;
// Motion solver to use
${_meshMotionSolver}
}
// Settings for the layer addition.
addLayersControls
{
// Are the thickness parameters below relative to the undistorted
// size of the refined cell outside layer (true) or absolute sizes (false).
relativeSizes true;
// Per final patch (so not geometry!) the layer information
layers
{
"(sphere_to_outside|outside_to_sphere)"
{
nSurfaceLayers 3;
}
}
// Expansion factor for layer mesh
expansionRatio 1.4;
// Wanted thickness of final added cell layer. If multiple layers
// is the thickness of the layer furthest away from the wall.
// Relative to undistorted size of cell outside layer.
// See relativeSizes parameter.
finalLayerThickness 0.5;
// Minimum thickness of cell layer. If for any reason layer
// cannot be above minThickness do not add layer.
// See relativeSizes parameter.
minThickness 0.01;
// If points get not extruded do nGrow layers of connected faces that are
// also not grown. This helps convergence of the layer addition process
// close to features.
nGrow 0;
// Advanced settings
// When not to extrude surface. 0 is flat surface, 90 is when two faces
// are perpendicular
featureAngle 30;
// Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 5;
// Number of smoothing iterations of surface normals
nSmoothSurfaceNormals 1;
// Number of smoothing iterations of interior mesh movement direction
nSmoothNormals 3;
// Smooth layer thickness over surface patches
nSmoothThickness 10;
// Stop layer growth on highly warped cells
maxFaceThicknessRatio 0.5;
// Reduce layer growth where ratio thickness to medial
// distance is large
maxThicknessToMedialRatio 0.3;
// Angle used to pick up medial axis points
minMedialAxisAngle 90;
// Create buffer region for new layer terminations
nBufferCellsNoExtrude 0;
//- Use displacementMotionSolver to shrink mesh
meshShrinker displacementMotionSolver;
// Motion solver to use
${_meshMotionSolver}
// Do some more iterations since shrinking is over a larger distance.
// Note: laplacian smoothing does destroy the cell sizing - maybe use
// the geometricElementTransform smoother instead.
displacementPointSmoothingCoeffs
{
nPointSmootherIter 100;
}
// Overall max number of layer addition iterations. The mesher will exit
// if it reaches this number of iterations; possibly with an illegal
// mesh.
nLayerIter 50;
// Max number of iterations after which relaxed meshQuality controls
// get used. Up to nRelaxIter it uses the settings in meshQualityControls,
// after nRelaxIter it uses the values in meshQualityControls::relaxed.
nRelaxedIter 20;
}
// Generic mesh quality settings. At any undoable phase these determine
// where to undo.
meshQualityControls
{
#include "meshQualityDict"
// Optional : some meshing phases allow usage of relaxed rules.
// See e.g. addLayersControls::nRelaxedIter.
relaxed
{
//- Maximum non-orthogonality allowed. Set to 180 to disable.
maxNonOrtho 75;
}
// Advanced
//- Number of error distribution iterations
nSmoothScale 4;
//- Amount to scale back displacement at error points
errorReduction 0.75;
}
// Advanced
// Write flags
writeFlags
(
// scalarLevels // write volScalarField with cellLevel for postprocessing
// layerSets // write cellSets, faceSets of faces in layer
// layerFields // write volScalarField for layer coverage
);
debugFlags
(
// mesh
// attraction
);
// Merge tolerance. Is fraction of overall bounding box of initial mesh.
// Note: the write tolerance needs to be higher than this.
mergeTolerance 1E-6;
// ************************************************************************* //