mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: shm: support for automatic faceZones
This commit is contained in:
committed by
Andrew Heather
parent
0c7140c967
commit
b8c2c0acf6
14
tutorials/mesh/snappyHexMesh/faceZoneRegions/Allclean
Executable file
14
tutorials/mesh/snappyHexMesh/faceZoneRegions/Allclean
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
cd ${0%/*} || exit 1 # Run from this directory
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions # Tutorial clean functions
|
||||
|
||||
cleanCase
|
||||
|
||||
# Remove surface and features
|
||||
rm -rf constant/extendedFeatureEdgeMesh > /dev/null 2>&1
|
||||
rm -f constant/triSurface/rotatingZone.eMesh > /dev/null 2>&1
|
||||
rm -f constant/triSurface/fixed.eMesh > /dev/null 2>&1
|
||||
rm -f 0/pointLevel > /dev/null 2>&1
|
||||
rm -f 0/cellLevel > /dev/null 2>&1
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
10
tutorials/mesh/snappyHexMesh/faceZoneRegions/Allrun
Executable file
10
tutorials/mesh/snappyHexMesh/faceZoneRegions/Allrun
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
cd ${0%/*} || exit 1 # Run from this directory
|
||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
|
||||
|
||||
# Meshing
|
||||
runApplication blockMesh
|
||||
runApplication surfaceFeatureExtract
|
||||
runApplication snappyHexMesh
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
2
tutorials/mesh/snappyHexMesh/faceZoneRegions/README.txt
Normal file
2
tutorials/mesh/snappyHexMesh/faceZoneRegions/README.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Block (as cellZone) inside cylinder. Demonstrates naming faceZones
|
||||
on outside of the cellZone according to surface name, surface region.
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,68 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1906 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object blockMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
backgroundMesh
|
||||
{
|
||||
xMin -1.26;
|
||||
xMax 1.26;
|
||||
yMin -2.01;
|
||||
yMax 2.01;
|
||||
zMin -1.26;
|
||||
zMax 1.26;
|
||||
xCells 12;
|
||||
yCells 22;
|
||||
zCells 12;
|
||||
}
|
||||
|
||||
scale 1;
|
||||
|
||||
vertices
|
||||
(
|
||||
($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMin)
|
||||
($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMin)
|
||||
($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMin)
|
||||
($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMin)
|
||||
|
||||
($:backgroundMesh.xMin $:backgroundMesh.yMin $:backgroundMesh.zMax)
|
||||
($:backgroundMesh.xMax $:backgroundMesh.yMin $:backgroundMesh.zMax)
|
||||
($:backgroundMesh.xMax $:backgroundMesh.yMax $:backgroundMesh.zMax)
|
||||
($:backgroundMesh.xMin $:backgroundMesh.yMax $:backgroundMesh.zMax)
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
hex (0 1 2 3 4 5 6 7)
|
||||
(
|
||||
$:backgroundMesh.xCells
|
||||
$:backgroundMesh.yCells
|
||||
$:backgroundMesh.zCells
|
||||
)
|
||||
simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
edges
|
||||
(
|
||||
);
|
||||
|
||||
boundary
|
||||
(
|
||||
);
|
||||
|
||||
mergePatchPairs
|
||||
(
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,47 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1906 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object controlDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
application simpleFoam;
|
||||
|
||||
startFrom startTime;
|
||||
|
||||
startTime 0;
|
||||
|
||||
stopAt endTime;
|
||||
|
||||
endTime 1000;
|
||||
|
||||
deltaT 1;
|
||||
|
||||
writeControl timeStep;
|
||||
|
||||
writeInterval 50;
|
||||
|
||||
purgeWrite 0;
|
||||
|
||||
writeFormat ascii;
|
||||
|
||||
writePrecision 8;
|
||||
|
||||
writeCompression off;
|
||||
|
||||
timeFormat general;
|
||||
|
||||
timePrecision 6;
|
||||
|
||||
runTimeModifiable true;
|
||||
|
||||
// ************************************************************************* //
|
||||
102
tutorials/mesh/snappyHexMesh/faceZoneRegions/system/fvOptions
Normal file
102
tutorials/mesh/snappyHexMesh/faceZoneRegions/system/fvOptions
Normal file
@ -0,0 +1,102 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1906 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object fvOptions;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
disk
|
||||
{
|
||||
type rotorDisk;
|
||||
|
||||
selectionMode cellZone;
|
||||
cellZone rotatingZone;
|
||||
|
||||
fields (U); // Names of fields on which to apply source
|
||||
nBlades 3; // Number of blades
|
||||
tipEffect 0.96; // Normalised radius above which lift = 0
|
||||
|
||||
inletFlowType local; // Inlet flow type specification
|
||||
inletVelocity (0 1 0);
|
||||
|
||||
geometryMode specified;
|
||||
|
||||
origin (0 0 0);
|
||||
axis (0 1 0);
|
||||
|
||||
refDirection (0 0 1); // Reference direction
|
||||
// - used as reference for psi angle
|
||||
rpm 1000;
|
||||
//pointAbove (0 0 0.25);
|
||||
|
||||
trimModel fixedTrim; // fixed || targetForce
|
||||
|
||||
rhoRef 1000;
|
||||
rhoInf 1;
|
||||
|
||||
fixedTrimCoeffs
|
||||
{
|
||||
theta0 0;
|
||||
theta1c 0;
|
||||
theta1s 0;
|
||||
}
|
||||
|
||||
flapCoeffs
|
||||
{
|
||||
beta0 0; // Coning angle [deg]
|
||||
beta1c 0; // Lateral flapping coeff (cos coeff)
|
||||
beta2s 0; // Longitudinal flapping coeff (sin coeff)
|
||||
}
|
||||
|
||||
blade
|
||||
{
|
||||
data
|
||||
(
|
||||
(profile1 (0.1 -6 0.02))
|
||||
(profile1 (0.25 -6 0.02))
|
||||
);
|
||||
}
|
||||
|
||||
profiles
|
||||
{
|
||||
profile1
|
||||
{
|
||||
type lookup;
|
||||
data
|
||||
(
|
||||
(-90 0.21 1.45)
|
||||
(-18 0.21 1.45)
|
||||
(-16 0.165 1.3)
|
||||
(-14 0.125 1.1)
|
||||
(-12 0.092 0.95)
|
||||
(-10 0.07 0.8)
|
||||
(-8 0.05 0.64)
|
||||
(-6 0.04 0.5)
|
||||
(-4 0.028 0.32)
|
||||
(-2 0.022 0.18)
|
||||
(0 0.02 0)
|
||||
(2 0.022 0.18)
|
||||
(4 0.028 0.32)
|
||||
(6 0.04 0.5)
|
||||
(8 0.05 0.64)
|
||||
(10 0.07 0.8)
|
||||
(12 0.092 0.95)
|
||||
(14 0.125 1.1)
|
||||
(16 0.165 1.3)
|
||||
(18 0.21 1.45)
|
||||
(90 0.21 1.45)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,66 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1906 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object fvSchemes;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
ddtSchemes
|
||||
{
|
||||
default steadyState;
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
{
|
||||
default Gauss linear;
|
||||
|
||||
limited cellLimited Gauss linear 1;
|
||||
grad(U) $limited;
|
||||
grad(k) $limited;
|
||||
grad(omega) $limited;
|
||||
}
|
||||
|
||||
divSchemes
|
||||
{
|
||||
default none;
|
||||
|
||||
div(phi,U) bounded Gauss linearUpwind unlimited;
|
||||
|
||||
turbulence bounded Gauss linearUpwind limited;
|
||||
div(phi,k) $turbulence;
|
||||
div(phi,omega) $turbulence;
|
||||
div(phi,epsilon) $turbulence;
|
||||
div((nuEff*dev(T(grad(U))))) Gauss linear;
|
||||
div((nuEff*dev2(T(grad(U))))) Gauss linear;
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
{
|
||||
default Gauss linear corrected;
|
||||
}
|
||||
|
||||
interpolationSchemes
|
||||
{
|
||||
default linear;
|
||||
}
|
||||
|
||||
snGradSchemes
|
||||
{
|
||||
default corrected;
|
||||
}
|
||||
|
||||
wallDist
|
||||
{
|
||||
method meshWave;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,58 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1906 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object fvSolution;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
solvers
|
||||
{
|
||||
p
|
||||
{
|
||||
solver GAMG;
|
||||
smoother GaussSeidel;
|
||||
tolerance 1e-6;
|
||||
relTol 0.1;
|
||||
}
|
||||
|
||||
"(U|k|omega|epsilon)"
|
||||
{
|
||||
solver smoothSolver;
|
||||
smoother symGaussSeidel;
|
||||
tolerance 1e-6;
|
||||
relTol 0.1;
|
||||
}
|
||||
}
|
||||
|
||||
SIMPLE
|
||||
{
|
||||
nNonOrthogonalCorrectors 0;
|
||||
consistent yes;
|
||||
|
||||
residualControl
|
||||
{
|
||||
U 1e-4;
|
||||
p 1e-3;
|
||||
"(k|epsilon|omega)" 1e-3;
|
||||
}
|
||||
}
|
||||
|
||||
relaxationFactors
|
||||
{
|
||||
equations
|
||||
{
|
||||
U 0.95;
|
||||
"(k|omega|epsilon)" 0.95;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,22 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1906 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object meshQualityDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#includeEtc "caseDicts/mesh/generation/meshQualityDict.cfg"
|
||||
|
||||
//- minFaceWeight (0 -> 0.5)
|
||||
//minFaceWeight 0.02;
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,166 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1906 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object snappyHexMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#includeEtc "caseDicts/mesh/generation/snappyHexMeshDict.cfg"
|
||||
|
||||
castellatedMesh on;
|
||||
snap on;
|
||||
addLayers off;
|
||||
|
||||
geometry
|
||||
{
|
||||
dummy
|
||||
{
|
||||
type box;
|
||||
min (0 0 0);
|
||||
max (1 1 1);
|
||||
}
|
||||
fixed.obj
|
||||
{
|
||||
// Rename some of the regions inside the obj file
|
||||
type triSurfaceMesh;
|
||||
name fixed;
|
||||
regions
|
||||
{
|
||||
patch0 { name slipWall; }
|
||||
patch1 { name outlet; }
|
||||
patch2 { name inlet; }
|
||||
}
|
||||
}
|
||||
|
||||
box-randomAligned.stl
|
||||
{
|
||||
// Rename some of the regions inside the obj file
|
||||
type triSurfaceMesh;
|
||||
name rotatingZone;
|
||||
regions
|
||||
{
|
||||
front { name myFront; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
castellatedMeshControls
|
||||
{
|
||||
features
|
||||
(
|
||||
{ file "fixed.eMesh"; level 2; }
|
||||
{ file "rotatingZone.eMesh"; level 4; }
|
||||
);
|
||||
|
||||
refinementSurfaces
|
||||
{
|
||||
fixed
|
||||
{
|
||||
level (2 2);
|
||||
patchInfo { type wall; }
|
||||
inGroups (fixed);
|
||||
|
||||
// Override per-patch information
|
||||
regions
|
||||
{
|
||||
patch0
|
||||
{
|
||||
level (3 3);
|
||||
patchInfo { type patch; }
|
||||
}
|
||||
|
||||
patch1
|
||||
{
|
||||
level (2 2);
|
||||
patchInfo { type patch; }
|
||||
}
|
||||
|
||||
patch2
|
||||
{
|
||||
level (2 2);
|
||||
patchInfo { type patch; }
|
||||
}
|
||||
}
|
||||
}
|
||||
rotatingZone
|
||||
{
|
||||
level (4 4);
|
||||
|
||||
// How to handle faceZones
|
||||
// a. no faceZone. No keyword 'faceZone' or 'faceZoneNaming'
|
||||
// b. single user-specified faceZone:
|
||||
// faceZone myZone;
|
||||
// c. faceZones according to the surface/region:
|
||||
// faceZoneNaming region;
|
||||
|
||||
// c. faceZones according to the surface/region
|
||||
faceZoneNaming region;
|
||||
|
||||
cellZone rotatingZone;
|
||||
cellZoneInside inside;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
refinementRegions
|
||||
{
|
||||
fixed
|
||||
{
|
||||
mode inside;
|
||||
levels ((1e-5 1));
|
||||
}
|
||||
rotatingZone
|
||||
{
|
||||
mode inside;
|
||||
levels ((1e-5 4));
|
||||
}
|
||||
}
|
||||
|
||||
locationInMesh (1e-5 -1e-2 1e-5);// Offset from (0 0 0) to avoid
|
||||
// coinciding with face or edge and keep
|
||||
// away from disk itself
|
||||
|
||||
allowFreeStandingZoneFaces false;
|
||||
|
||||
// Optional: switch off topological test for cells to-be-squashed
|
||||
// and use geometric test instead
|
||||
useTopologicalSnapDetection false;
|
||||
}
|
||||
|
||||
snapControls
|
||||
{
|
||||
tolerance 1.0;
|
||||
implicitFeatureSnap true;
|
||||
strictRegionSnap true;
|
||||
}
|
||||
|
||||
addLayersControls
|
||||
{
|
||||
layers
|
||||
{
|
||||
}
|
||||
|
||||
relativeSizes true; // false, usually with firstLayerThickness
|
||||
expansionRatio 1.2;
|
||||
finalLayerThickness 0.5;
|
||||
minThickness 1e-3;
|
||||
}
|
||||
|
||||
meshQualityControls
|
||||
{
|
||||
// minTetQuality -1e+30;
|
||||
}
|
||||
|
||||
|
||||
mergeTolerance 1e-6;
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,27 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1906 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object surfaceFeatureExtractDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
fixed.obj
|
||||
{
|
||||
#includeEtc "caseDicts/surface/surfaceFeatureExtractDict.cfg"
|
||||
}
|
||||
|
||||
rotatingZone.obj
|
||||
{
|
||||
#includeEtc "caseDicts/surface/surfaceFeatureExtractDict.cfg"
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
Reference in New Issue
Block a user