Skip to content
Snippets Groups Projects
Commit a0a13075 authored by mattijs's avatar mattijs
Browse files

ENH: propeller: updated for new snappyHexMesh faceType capability

parent 1dc92070
Branches
Tags
No related merge requests found
Showing
with 80 additions and 273 deletions
......@@ -21,6 +21,9 @@ internalField uniform (0 0 0);
boundaryField
{
//- Set patchGroups for constraint patches
#include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
inlet
{
type fixedValue;
......@@ -34,7 +37,7 @@ boundaryField
value uniform (0 0 0);
}
outerCylinder
innerCylinder
{
type fixedValue;
value uniform (0 0 0);
......
......@@ -21,6 +21,9 @@ internalField uniform 0.0495;
boundaryField
{
//- Set patchGroups for constraint patches
#include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
inlet
{
type fixedValue;
......@@ -34,13 +37,7 @@ boundaryField
value $internalField;
}
outerCylinder
{
type epsilonWallFunction;
value $internalField;
}
"propeller.*"
wall
{
type epsilonWallFunction;
value $internalField;
......
......@@ -21,6 +21,9 @@ internalField uniform 0.06;
boundaryField
{
//- Set patchGroups for constraint patches
#include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
inlet
{
type fixedValue;
......@@ -34,13 +37,7 @@ boundaryField
value $internalField;
}
outerCylinder
{
type kqRWallFunction;
value $internalField;
}
"propeller.*"
wall
{
type kqRWallFunction;
value $internalField;
......
......@@ -21,6 +21,9 @@ internalField uniform 0;
boundaryField
{
//- Set patchGroups for constraint patches
#include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
inlet
{
type calculated;
......@@ -33,13 +36,7 @@ boundaryField
value uniform 0;
}
outerCylinder
{
type nutkWallFunction;
value uniform 0;
}
"propeller.*"
wall
{
type nutkWallFunction;
value uniform 0;
......
......@@ -21,6 +21,9 @@ internalField uniform 0;
boundaryField
{
//- Set patchGroups for constraint patches
#include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
inlet
{
type zeroGradient;
......@@ -32,12 +35,7 @@ boundaryField
value uniform 0;
}
outerCylinder
{
type zeroGradient;
}
"propeller.*"
wall
{
type zeroGradient;
}
......
......@@ -22,34 +22,21 @@ cp -rf 0.org 0
# - generate face/cell sets and zones
#runApplication setSet -batch removeRedundantZones.setSet
#mv log.setSet log.removeRedundantZones.setSet
runApplication topoSet -dict system/removeRedundantZones.topoSetDict
mv log.topoSet log.removeRedundantZones.topoSet
#runApplication setSet -batch createInletOutletSets.setSet
#mv log.setSet log.createInletOutletSets.setSet
runApplication topoSet -dict system/createInletOutletSets.topoSetDict
mv log.topoSet log.createInletOutletSets.topoSet
#runApplication setSet -batch createAMIFaces.setSet
#mv log.setSet log.createAMIFaces.setSet
runApplication topoSet -dict system/createAMIFaces.topoSetDict
mv log.topoSet log.createAMIFaces.topoSet
#mv log.topoSet log.createInletOutletSets.topoSet
# - create the inlet/outlet patches
# - create the inlet/outlet and AMI patches
runApplication createPatch -overwrite
# - apply the initial fields
cp -rf 0.org 0
# - test by running moveDynamicMes
#runApplication moveDynamicMesh -checkAMI
# - create the AMI faces by creating baffles, and then splitting the mesh
runApplication createBaffles -overwrite
# - apply the initial fields
runApplication mergeOrSplitBaffles -split -overwrite
cp -rf 0.org 0
......@@ -32,11 +32,14 @@ stopAt endTime;
endTime 0.1;
deltaT 1e-5;
writeControl adjustableRunTime;
writeInterval 0.001;
////- For testing with moveDynamicMesh
//deltaT 0.01;
//writeControl timeStep;
//writeInterval 1;
purgeWrite 0;
writeFormat binary;
......
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name innerCylinderSmall;
type cellSet;
action new;
source cylinderToCell;
sourceInfo
{
p1 (0 -0.08 0);
p2 (0 0.06 0);
radius 0.12;
}
}
{
name outerCells;
type cellSet;
action new;
source cellToCell;
sourceInfo
{
set innerCylinderSmall;
}
}
{
name outerCells;
type cellSet;
action invert;
}
{
name innerCylinderSmall;
type cellZoneSet;
action new;
source setToCellZone;
sourceInfo
{
set innerCylinderSmall;
}
}
{
name innerCylinderSmallFace;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set innerCylinderSmall;
option all;
}
}
{
name innerCylinderSmallFace;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set outerCells;
option all;
}
}
{
name innerCylinderSmall;
type faceZoneSet;
action new;
source setsToFaceZone;
sourceInfo
{
faceSet innerCylinderSmallFace;
cellSet innerCylinderSmall;
}
}
// Dummy faceSet for creating initial patches
{
name dummyFaces;
type faceSet;
action new;
source labelToFace;
sourceInfo
{
value ();
}
}
);
// ************************************************************************* //
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object createBafflesDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Whether to convert internal faces only (so leave boundary faces intact).
// This is only relevant if your face selection type can pick up boundary
// faces.
internalFacesOnly true;
// Baffles to create.
baffles
{
baffleFaces
{
//- Use predefined faceZone to select faces and orientation.
type faceZone;
zoneName innerCylinderSmall;
patches
{
master
{
//- Master side patch
name AMI1;
type cyclicAMI;
matchTolerance 0.0001;
neighbourPatch AMI2;
transform noOrdering;
}
slave
{
//- Slave side patch
name AMI2;
type cyclicAMI;
matchTolerance 0.0001;
neighbourPatch AMI1;
transform noOrdering;
}
}
}
}
// ************************************************************************* //
......@@ -24,7 +24,7 @@ actions
source patchToFace;
sourceInfo
{
name outerCylinder;
name innerCylinder;
}
}
......
......@@ -23,27 +23,50 @@ pointSync false;
patches
(
{
name inlet;
//- Master side patch
name AMI1;
patchInfo
{
type cyclicAMI;
matchTolerance 0.0001;
neighbourPatch AMI2;
transform noOrdering;
}
constructFrom patches;
patches (innerCylinderSmall);
}
{
//- Slave side patch
name AMI2;
patchInfo
{
type patch;
type cyclicAMI;
matchTolerance 0.0001;
neighbourPatch AMI1;
transform noOrdering;
}
constructFrom patches;
patches (innerCylinderSmall_slave);
}
constructFrom set;
{
name inlet;
patchInfo
{
type patch;
}
constructFrom set;
set inletFaces;
}
{
name outlet;
patchInfo
{
type patch;
}
constructFrom set;
set outletFaces;
}
);
......
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name innerCylinder;
type cellZoneSet;
action remove;
}
{
name innerCylinderSmall;
type cellZoneSet;
action remove;
}
);
// ************************************************************************* //
......@@ -204,13 +204,12 @@ castellatedMeshControls
innerCylinder
{
level (2 3);
cellZone innerCylinder;
faceZone innerCylinder;
cellZoneInside inside;
}
innerCylinderSmall
{
level (4 4);
faceType boundary;
cellZone innerCylinderSmall;
faceZone innerCylinderSmall;
cellZoneInside inside;
......@@ -288,7 +287,7 @@ castellatedMeshControls
// 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 true;
allowFreeStandingZoneFaces false;
}
......@@ -312,10 +311,22 @@ snapControls
// before upon reaching a correct mesh.
nRelaxIter 5;
//- Highly experimental and wip: number of feature edge snapping
// iterations. Leave out altogether to disable.
// Do not use here since mesh resolution too low and baffles present
nFeatureSnapIter 20;
// Feature snapping
// Number of feature edge snapping iterations.
// Leave out altogether to disable.
nFeatureSnapIter 10;
// Detect (geometric only) features by sampling the surface
// (default=false).
implicitFeatureSnap true;
// Use castellatedMeshControls::features (default = true)
explicitFeatureSnap false;
// Detect features between multiple surfaces
// (only for explicitFeatureSnap, default = false)
multiRegionFeatureSnap true;
}
......@@ -466,15 +477,6 @@ meshQualityControls
}
// Advanced
// Flags for optional output
// 0 : only write final meshes
// 1 : write intermediate meshes
// 2 : write volScalarField with cellLevel for postprocessing
// 4 : write current intersections as .obj files
debug 0;
// Merge tolerance. Is fraction of overall bounding box of initial mesh.
// Note: the write tolerance needs to be higher than this.
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment