TUT: multiphase: replace boatAndPropeller with rigidBodyHull

This commit is contained in:
Kutalmis Bercin 2021-06-18 16:24:09 +01:00 committed by Sergio Ferraris
parent 7d42501107
commit 57304aeaf6
60 changed files with 1699 additions and 1234 deletions

View File

@ -1,76 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 0.1;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
"overset.*"
{
type overset;
value uniform 1;
}
hullWall
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0.1;
}
propellerWall
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0.1;
}
rudderWall
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0.1;
}
atmosphere
{
type inletOutlet;
inletValue uniform 0.1;
value uniform 0.1;
}
defaultFaces
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0.1;
}
}
// ************************************************************************* //

View File

@ -1,75 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
"overset.*"
{
type overset;
value uniform 1;
}
hullWall
{
type nutkWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
propellerWall
{
type nutkWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
rudderWall
{
type nutkWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
atmosphere
{
type calculated;
value uniform 0;
}
defaultFaces
{
type nutkWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
}
// ************************************************************************* //

View File

@ -1,42 +0,0 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
runApplication blockMesh
#runApplication -s 1 topoSet -dict system/topoSetDictRefine
#runApplication -s 1 refineMesh -overwrite -dict system/refineMeshDict
runApplication -s 1 topoSet -dict system/topoSetDictRefine
runApplication -s 1 refineMesh -overwrite -dict system/refineMeshDict.2
runApplication -s 2 topoSet -dict system/topoSetDictRefine
runApplication -s 2 refineMesh -overwrite -dict system/refineMeshDict.2
runApplication -s 7 topoSet -dict system/topoSetDictRefine.3
runApplication -s 7 refineMesh -overwrite -dict system/refineMeshDict.2
runApplication -s 8 topoSet -dict system/topoSetDictRefine.4
runApplication -s 8 refineMesh -overwrite -dict system/refineMeshDict.2
# Select cellSets
runApplication -s hull topoSet -dict system/topoSetDictHull
runApplication -s hull subsetMesh keepBox -patch hullWall -overwrite
# Select cellSets
runApplication -s propeller topoSet -dict system/topoSetDictPropeller
runApplication -s propeller subsetMesh keepBox -patch propellerWall -overwrite
# Select cellSets
runApplication -s rudder topoSet -dict system/topoSetDictRudder
runApplication -s rudder subsetMesh keepBox -patch rudderWall -overwrite
restore0Dir
# Use cellSets to write zoneID
runApplication -s 1 setFields -dict system/setFieldsDict
runApplication -s 2 setFields -dict system/setFieldsDictWaterLevel
touch boatAndPropeller.foam
#------------------------------------------------------------------------------

View File

@ -1,161 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
motionSolverLibs (rigidBodyMeshMotion);
dynamicFvMesh dynamicOversetFvMesh;
motionSolver rigidBodyMotion;
report on;
solver
{
type Newmark;
//gamma 0.1; // Velocity integration coefficient
//beta 0.1; // Position integration coefficient
}
accelerationRelaxation 0.4;
// prescribedRotation requires some sub-iterations to converge faster
// to desired value of omega.
nIter 3;
bodies
{
hull
{
type rigidBody;
parent root;
// To get Tensor of Inertia (symmetrical) use surfaceInertia
// here hull is empty shell
mass 0.552;
inertia (0.0033 0 0 0.01 0 0.0095);
centreOfMass (0.2857 -0.07 0); // relative to the centreOfMass
// of parent body
// (here root = global coord system)
// Transformation tensor and centre of rotation (CoR)
transform (1 0 0 0 1 0 0 0 1) (0.2857 -0.07 0);
joint
{
// These constrains are applied only to body hull,
// other bodies need to have their own set
// Constraints used for faster run
type composite;
joints
(
{
type Px; // Allow translation in X -
}
{
type Ry; // Allow rotation along Y axis
// (local - body CS)
}
);
}
patches (hullWall);
innerDistance 100; // With overset we want to avoid the mesh
// deformation so have large innerDistance
outerDistance 200;
}
propeller
{
type rigidBody;
parent hull;
centreOfMass (-0.2847 0.03 0); // Relative to parent CoM
mass 0.0288;
inertia (7.6e-6 0 0 4.2e-6 0 4.2e-6);
// transform and CoR - relative to parent CoR
transform (1 0 0 0 1 0 0 0 1) (-0.2757 0.03 0);
patches (propellerWall);
innerDistance 100;
outerDistance 200;
joint
{
type Rx;
}
}
rudder
{
type rigidBody;
parent hull;
centreOfMass (-0.3602 -0.0055 0);
mass 0.0746;
inertia (3.3e-5 0 0 4.7e-6 0 3.4e-5);
// transform and CoR - relative to parent CoR
transform (1 0 0 0 1 0 0 0 1) (-0.3487 -0.04 0);
patches (rudderWall);
innerDistance 100;
outerDistance 200;
joint
{
type Ry;
}
}
}
restraints
{
rudderRotation
{
type prescribedRotation;
body rudder;
referenceOrientation (1 0 0 0 1 0 0 0 1);
axis (0 1 0); // Axis of rotation
relax 0.5;
p 0.5;
i 0.5;
d 0.5;
omega sine; // Function1 entry
omegaCoeffs
{
frequency 4;
amplitude 0.2;
scale (0 1 0);
level (0 1 0);
}
}
propellerRotation
{
type prescribedRotation;
body propeller;
referenceOrientation (1 0 0 0 1 0 0 0 1);
axis (1 0 0);
relax 0.5;
p 0.5;
i 0.5;
d 0.5;
omega table
(
(0 (0 0 0))
(1 (16 0 0))
);
}
}
// ************************************************************************* //

View File

@ -1,152 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1;
vertices
(
// backgroundMesh
( -0.50 -0.5 -0.7) // 0
( 1.00 -0.5 -0.7)
( 1.00 0.5 -0.7)
( -0.50 0.5 -0.7)
( -0.50 -0.5 0.7) // 4
( 1.00 -0.5 0.7)
( 1.00 0.5 0.7)
( -0.50 0.5 0.7)
// hullBox
( 0.045 -0.14 -0.15) // 8
( 0.60 -0.14 -0.15)
( 0.60 0.10 -0.15) // 10
( 0.045 0.10 -0.15)
( 0.045 -0.14 0.15) // 12
( 0.60 -0.14 0.15)
( 0.60 0.10 0.15) // 14
( 0.045 0.10 0.15)
// propeller
( -0.02 -0.08 -0.04) // 16
( 0.04 -0.08 -0.04)
( 0.04 0.00 -0.04) // 18
( -0.02 0.00 -0.04)
( -0.02 -0.08 0.04) // 20
( 0.04 -0.08 0.04)
( 0.04 0.00 0.04) // 22
( -0.02 0.00 0.04)
// rudder
( -0.10 -0.14 -0.02) // 24
( -0.04 -0.14 -0.02)
( -0.04 -0.02 -0.02) // 26
( -0.10 -0.02 -0.02)
( -0.10 -0.14 0.02) // 28
( -0.04 -0.14 0.02)
( -0.04 -0.02 0.02) // 30
( -0.10 -0.02 0.02)
);
blocks
(
// hex (0 1 2 3 4 5 6 7) background (60 40 56)
// simpleGrading (1 1 1) // coarser mesh cell size 0.025 m
hex (0 1 2 3 4 5 6 7) background (75 50 70)
simpleGrading (1 1 1) // cell size 0.02 m
hex (8 9 10 11 12 13 14 15) hullBox (32 16 16) simpleGrading (1 1 1)
hex (16 17 18 19 20 21 22 23) propeller (10 20 20) simpleGrading (1 1 1)
hex (24 25 26 27 28 29 30 31) rudder (20 22 11) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
overset1 //oversetHull
{
type overset;
faces
(
( 8 12 15 11)
(10 14 13 9)
(11 15 14 10)
( 9 13 12 8)
( 9 8 11 10)
(12 13 14 15)
);
}
overset2 //oversetPropeller
{
type overset;
faces
(
(16 20 23 19)
(18 22 21 17)
(19 23 22 18)
(17 21 20 16)
(20 21 22 23)
(19 18 17 16)
);
}
overset3 //oversetRudder
{
type overset;
faces
(
(24 28 31 27)
(26 30 29 25)
(28 29 30 31)
(25 24 27 26)
(27 31 30 26)
(24 25 29 28)
);
}
// Populated by subsetMesh
hullWall
{
type wall;
faces ();
}
propellerWall
{
type wall;
faces ();
}
rudderWall
{
type wall;
faces ();
}
atmosphere
{
type patch;
faces
(
(3 7 6 2)
// (1 5 4 0)
);
}
defaultFaces
{
type wall;
faces
();
}
);
// ************************************************************************* //

View File

@ -1,103 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name bgr0; // all around bgr
type cellSet;
action new;
source zoneToCell;
zone background;
}
{
name hullBox0; // all around bgr
type cellSet;
action new;
source zoneToCell;
zone hullBox;
}
{
name propeller0; // all around bgr
type cellSet;
action new;
source zoneToCell;
zone propeller;
}
{
name rudder0; // all around bgr
type cellSet;
action new;
source zoneToCell;
zone rudder;
}
{
name box; //all cells
type cellSet;
action new;
source cellToCell;
set hullBox0;
}
{
name box; // hole in mesh
type cellSet;
action subset;
source boxToCell;
boxes
(
(0.12 -0.082 -0.1)(0.52 0.052 0.1) //hullBox
);
}
{
name box;
type cellSet;
action invert;
}
{
name keepBox; //all cells
type cellSet;
action new;
source cellToCell;
set box;
}
{
name keepBox; //all cells
type cellSet;
action add;
source cellToCell;
set propeller0;
}
{
name keepBox; //all cells
type cellSet;
action add;
source cellToCell;
set rudder0;
}
{
name keepBox; //all cells
type cellSet;
action add;
source cellToCell;
set bgr0;
}
);
// ************************************************************************* //

View File

@ -1,103 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name bgr0; // all around bgr
type cellSet;
action new;
source zoneToCell;
zone background;
}
{
name hullBox0; // all around hull
type cellSet;
action new;
source zoneToCell;
zone hullBox;
}
{
name propeller0; // all around propeller
type cellSet;
action new;
source zoneToCell;
zone propeller;
}
{
name rudder0; // all around rudder
type cellSet;
action new;
source zoneToCell;
zone rudder;
}
{
name box; //all cells
type cellSet;
action new;
source cellToCell;
set propeller0;
}
{
name box; // hole in mesh
type cellSet;
action subset;
source boxToCell;
boxes
(
(0.005 -0.061 -0.0199)( 0.018 -0.0199 0.0199) //propeller
);
}
{
name box;
type cellSet;
action invert;
}
{
name keepBox; //all cells
type cellSet;
action new;
source cellToCell;
set box;
}
{
name keepBox; //all cells
type cellSet;
action add;
source cellToCell;
set rudder0;
}
{
name keepBox; //all cells
type cellSet;
action add;
source cellToCell;
set hullBox0;
}
{
name keepBox; //all cells
type cellSet;
action add;
source cellToCell;
set bgr0;
}
);
// ************************************************************************* //

View File

@ -1,39 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name refineSet; // background around hullBox
type cellSet;
action new;
source zoneToCell;
zone background;
}
{
name refineSet;
type cellSet;
action subset;
source boxToCell;
boxes
(
(0.05 -0.2 -0.2)(0.8 0.2 0.2)
);
}
);
// ************************************************************************* //

View File

@ -1,103 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name bgr0; // all around bgr
type cellSet;
action new;
source zoneToCell;
zone background;
}
{
name hullBox0; // all around hull
type cellSet;
action new;
source zoneToCell;
zone hullBox;
}
{
name propeller0; // all around propeller
type cellSet;
action new;
source zoneToCell;
zone propeller;
}
{
name rudder0; // all around rudder
type cellSet;
action new;
source zoneToCell;
zone rudder;
}
{
name box; //all cells
type cellSet;
action new;
source cellToCell;
set rudder0;
}
{
name box; // hole in mesh
type cellSet;
action subset;
source boxToCell;
boxes
(
(-0.09 -0.12 -0.00499)(-0.059 -0.03 0.00499) //rudder
);
}
{
name box;
type cellSet;
action invert;
}
{
name keepBox; //all cells
type cellSet;
action new;
source cellToCell;
set box;
}
{
name keepBox; //all cells
type cellSet;
action add;
source cellToCell;
set propeller0;
}
{
name keepBox; //all cells
type cellSet;
action add;
source cellToCell;
set hullBox0;
}
{
name keepBox; //all cells
type cellSet;
action add;
source cellToCell;
set bgr0;
}
);
// ************************************************************************* //

View File

@ -0,0 +1,11 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
#-----------------------------------------------------------------------------
(cd overset-1 && ./Allclean)
(cd overset-2 && ./Allclean)
(cd background && ./Allclean)
#------------------------------------------------------------------------------

View File

@ -0,0 +1,11 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
#-----------------------------------------------------------------------------
(cd overset-1 && ./Allrun)
(cd overset-2 && ./Allrun)
(cd background && ./Allrun)
#------------------------------------------------------------------------------

View File

@ -22,29 +22,34 @@ boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
defaultFaces
{
type uniformFixedValue;
uniformValue (0 0 0);
}
"(hullWall|propellerWall|rudderWall)"
"(BLADES|HUB_DISK|HUB|HUB_COVER|HULL*.*)"
{
type movingWallVelocity;
value uniform (0 0 0);
}
atmosphere
inlet
{
type pressureInletOutletVelocity;
value uniform (0 0 0);
type fixedValue;
value $internalField;
}
"overset.*"
outlet
{
type overset;
patchType overset;
type inletOutlet;
value uniform (0 0 0);
inletValue uniform (0 0 0 );
}
"(atmosphere)"
{
type pressureInletOutletVelocity;
value $internalField;
}
"(overset-1|oversetPatch)"
{
type overset;
}
}

View File

@ -22,35 +22,22 @@ boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
"overset.*"
"(outlet|inlet)"
{
type overset;
value uniform 1;
}
hullWall
{
type zeroGradient;
}
propellerWall
{
type zeroGradient;
}
rudderWall
{
type zeroGradient;
type variableHeightFlowRate;
lowerBound 0;
upperBound 1;
value $internalField;
}
atmosphere
{
type inletOutlet;
inletValue uniform 0;
value uniform 0;
inletValue $internalField;
value $internalField;
}
defaultFaces
"(BLADES|HUB_DISK|HUB|HUB_COVER|HULL).*"
{
type zeroGradient;
}

View File

@ -1,70 +1,57 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object zoneID;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
overset1
{
type overset;
value uniform 0;
}
overset2
{
type overset;
value uniform 0;
}
overset3
{
type overset;
value uniform 0;
}
hullWall
{
type zeroGradient;
}
propellerWall
{
type zeroGradient;
}
rudderWall
{
type zeroGradient;
}
atmosphere
{
type zeroGradient;
}
defaultFaces
{
type zeroGradient;
}
}
// ************************************************************************* //
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 6.9e-5;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
inlet
{
type fixedValue;
value $internalField;
}
"(atmosphere|outlet)"
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
"(HULL*.*)"
{
type epsilonWallFunction;
value $internalField;
}
"(BLADES|HUB_DISK|HUB)"
{
type epsilonWallFunction;
value $internalField;
}
"(overset-1|oversetPatch)"
{
type overset;
}
}
// ************************************************************************* //

View File

@ -16,47 +16,40 @@ FoamFile
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0.01;
internalField uniform 0.00521;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
"overset.*"
inlet
{
type overset;
value uniform 1;
type fixedValue;
value $internalField;
}
hullWall
{
type kqRWallFunction;
value uniform 0.01;
}
propellerWall
{
type kqRWallFunction;
value uniform 0.01;
}
rudderWall
{
type kqRWallFunction;
value uniform 0.01;
}
atmosphere
"(atmosphere|outlet)"
{
type inletOutlet;
inletValue uniform 0.01;
value uniform 0.01;
inletValue $internalField;
value $internalField;
}
defaultFaces
"(HULL*.*)"
{
type kqRWallFunction;
value uniform 0.01;
value $internalField;
}
"(BLADES|HUB_DISK|HUB)"
{
type kqRWallFunction;
value $internalField;
}
"(overset-1|oversetPatch)"
{
type overset;
}
}

View File

@ -9,55 +9,40 @@ FoamFile
{
version 2.0;
format ascii;
class pointScalarField;
object motionScale;
class volScalarField;
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
internalField uniform 1e-05;
boundaryField
{
overset1
#includeEtc "caseDicts/setConstraintTypes"
outlet
{
type calculated;
value $internalField;
}
overset2
"(atmosphere|inlet)"
{
type calculated;
value $internalField;
}
overset3
"(BLADES|HUB_DISK|HUB|HUB_COVER|HULL*.*)"
{
type calculated;
type nutkWallFunction;
value $internalField;
}
hullWall
"(overset-1|oversetPatch)"
{
type calculated;
}
propellerWall
{
type calculated;
}
rudderWall
{
type calculated;
}
atmosphere
{
type calculated;
}
defaultFaces
{
type calculated;
type overset;
}
}

View File

@ -22,32 +22,33 @@ boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
"(hullWall|propellerWall|rudderWall|defaultFaces)"
inlet
{
type fixedFluxPressure;
value $internalField;
}
atmosphere
"(atmosphere|outlet)"
{
type totalPressure;
p0 uniform 0;
U U;
phi phi;
rho rho;
psi none;
gamma 1;
value uniform 0;
p0 $internalField;
}
defaultFaces
"(HULL*.*)"
{
type fixedFluxPressure;
value $internalField;
}
"overset.*"
"(BLADES|HUB_DISK|HUB)"
{
patchType overset;
type fixedFluxPressure;
type fixedFluxPressure;
value $internalField;
}
"(overset-1|oversetPatch)"
{
type overset;
}
}

View File

@ -20,13 +20,15 @@ internalField uniform (0 0 0);
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
".*"
{
type uniformFixedValue;
uniformValue (0 0 0);
type fixedValue;
value uniform (0 0 0);
}
"(hullWall|propellerWall|rudderWall)"
"(HULL_DISK|HULL|BLADES|HUB_DISK|HUB)"
{
type calculated;
value uniform (0 0 0);
@ -38,23 +40,11 @@ boundaryField
type zeroGradient;
}
"overset.*"
overset-1
{
patchType overset;
type zeroGradient;
}
atmosphere
{
type fixedValue;
value uniform (0 0 0);
}
defaultFaces
{
type fixedValue;
value uniform (0 0 0);
}
}

View File

@ -0,0 +1,32 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object zoneID;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
".*"
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,31 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
./Allrun.pre
restore0Dir
runApplication -s 1 \
mergeMeshes . ../overset-1 -overwrite
runApplication -s 2 \
mergeMeshes . ../overset-2 -overwrite
runApplication createPatch -overwrite
runApplication -s 1 topoSet
runApplication setFields
runApplication -s 2 \
topoSet -dict system/topoSetDict.cHullProp
runApplication decomposePar -force
runParallel $(getApplication)
runParallel redistributePar -reconstruct -overwrite
#------------------------------------------------------------------------------

View File

@ -3,10 +3,8 @@ cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
./Allrun.pre
runApplication blockMesh
runApplication decomposePar
runParallel $(getApplication)
runApplication snappyHexMesh -overwrite
#------------------------------------------------------------------------------

View File

@ -0,0 +1,124 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicOversetFvMesh;
solvers
{
VF
{
motionSolverLibs (libfvMotionSolvers);
motionSolver solidBody;
solidBodyMotionFunction drivenLinearMotion;
cellSet c0;
cOfGdisplacement CofG;
}
boat_propeller
{
motionSolverLibs (librigidBodyMeshMotion);
motionSolver rigidBodyMotion;
report on;
cellSet cHullProp;
cOfGdisplacement CofG;
bodyIdCofG 1;
solver
{
type Newmark;
}
accelerationRelaxation 0.8;
accelerationDamping 0.9;
nIter 3;
bodies
{
hull
{
type rigidBody;
parent root;
mass 2787;
centreOfMass (0.178 0 0.3323);
inertia (564 0 0 8535 0 8535);
// Transformation tensor and centre of rotation
transform (1 0 0 0 1 0 0 0 1) (0.178 0 0.3323);
joint
{
type composite;
joints
(
{
type Pxyz;
}
{
type Ry;
}
);
}
patches
(
HULL
HULL_DISK
);
innerDistance 100;
outerDistance 200;
}
propeller
{
type rigidBody;
parent hull;
centreOfMass (-3.405396 -0.000044 0.129544);
mass 0.3;
transform (1 0 0 0 1 0 0 0 1) (-3.583 -0.000044 -0.202706);
inertia (0.000556833 0 0 0.36905863 0 0.36858374);
patches
(
BLADES
HUB
HUB_DISK
);
innerDistance 100;
outerDistance 200;
joint
{
type Rx;
}
}
}
restraints
{
force
{
type externalForce;
body hull;
location (-3.386 0 0.21);
force table
(
(0 (500 0 0))
(10 (2000 0 0))
(20 (2000 0 0))
);
}
}
}
}
// ************************************************************************* //

View File

@ -15,7 +15,7 @@ FoamFile
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value (0 -9.81 0);
value (0 0 -9.81);
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class uniformDimensionedScalarField;
object hRef;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
value 0.4125;
// ************************************************************************* //

View File

@ -19,8 +19,8 @@ phases (water air);
water
{
transportModel Newtonian;
nu 1e-06;
rho 998.2;
nu 1.09e-06;
rho 998.8;
}
air
@ -30,7 +30,7 @@ air
rho 1;
}
sigma 0;
sigma 0;
// ************************************************************************* //

View File

@ -16,9 +16,11 @@ FoamFile
simulationType RAS;
density variable;
RAS
{
RASModel kEpsilon;
RASModel realizableKE;
turbulence on;

View File

@ -0,0 +1,93 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1;
vertices
(
( -7 -3 -1.8 )
( 7 -3 -1.8 )
( 7 3 -1.8 )
( -7 3 -1.8 )
( -7 -3 2.8 )
( 7 -3 2.8 )
( 7 3 2.8 )
( -7 3 2.8 )
);
blocks
(
hex (0 1 2 3 4 5 6 7) ( 120 51 39 ) simpleGrading ( 1 1 1 )
);
edges
(
);
boundary
(
outlet
{
type patch;
faces
(
(0 4 7 3)
);
}
inlet
{
type patch;
faces
(
(1 2 6 5)
);
}
ymin
{
type symmetry;
faces
(
(0 1 5 4)
);
}
ymax
{
type symmetry;
faces
(
(3 7 6 2)
);
}
zmin
{
type symmetry;
faces
(
(0 3 2 1)
);
}
atmosphere
{
type patch;
faces
(
(4 5 6 7)
);
}
);
// ************************************************************************* //

View File

@ -14,58 +14,53 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
libs
(
overset
rigidBodyDynamics
fvMotionSolvers
);
libs (overset rigidBodyDynamics);
application overInterDyMFoam;
startFrom startTime;
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 1.5;
endTime 4;
deltaT 0.001;
deltaT 1e-5;
writeControl adjustable;
writeControl adjustableRunTime;
writeInterval 0.1;
writeInterval 0.25;
purgeWrite 0;
writeFormat binary;
writePrecision 10;
writePrecision 8;
writeCompression off;
timeFormat general;
timePrecision 6;
timePrecision 8;
runTimeModifiable true;
runTimeModifiable yes;
adjustTimeStep yes;
maxCo 4.0;
maxAlphaCo 15;
maxAlphaCo 5.0;
maxCo 70;
maxDeltaT 1;
functions
{
minMax
minMax1
{
type fieldMinMax;
libs (fieldFunctionObjects);
fields (U);
libs (fieldFunctionObjects);
type fieldMinMax;
fields (U p);
}
}

View File

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object createPatchDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
pointSync false;
patches
(
{
name oversetPatch;
patchInfo
{
type overset;
value uniform 0;
}
constructFrom patches;
patches (MRF_REGION);
}
);
// ************************************************************************* //

View File

@ -14,13 +14,13 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 8;
numberOfSubdomains 5;
method hierarchical;
coeffs
{
n (2 2 2);
n (5 1 1);
}

View File

@ -0,0 +1,26 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvOptions;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
damp
{
type velocityDampingConstraint;
active true;
selectionMode all;
UMax 14;
}
// ************************************************************************* //

View File

@ -21,25 +21,27 @@ ddtSchemes
gradSchemes
{
default Gauss linear;
default Gauss linear;
limitedGrad cellLimited Gauss linear 1;
}
divSchemes
{
div(rhoPhi,U) Gauss upwind;
div(U) Gauss linear;
div(phi,alpha) Gauss vanLeer;
div(phirb,alpha) Gauss linear;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
div(rhoPhi,U) Gauss upwind;
div(phi,alpha) Gauss vanLeer;
div(phirb,alpha) Gauss linear;
div(phi,k) Gauss upwind;
div(phi,epsilon) Gauss upwind;
div(phi,omega) Gauss upwind;
turbulence Gauss linearUpwind limitedGrad;
div(phi,k) $turbulence;
div(phi,omega) $turbulence;
div(phi,epsilon) $turbulence;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear uncorrected;
default Gauss linear corrected;
}
interpolationSchemes
@ -49,12 +51,27 @@ interpolationSchemes
snGradSchemes
{
default uncorrected;
default corrected;
}
fluxRequired
{
default no;
pcorr ;
p ;
yPsi ;
}
oversetInterpolation
{
method inverseDistance;
method trackingInverseDistance;
searchBoxDivisions
(
(500 500 500)
(500 500 500)
(500 500 500)
);
}
oversetInterpolationSuppressed
@ -63,8 +80,9 @@ oversetInterpolationSuppressed
surfaceIntegrate(phiHbyA);
}
fluxRequired
wallDist
{
method Poisson;
}

View File

@ -20,34 +20,27 @@ solvers
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
tolerance 1e-09;
relTol 0;
maxIter 300;
maxIter 200;
}
"alpha.water.*"
{
nAlphaCorr 3;
nAlphaCorr 2;
nAlphaSubCycles 2;
cAlpha 1;
icAlpha 0;
MULESCorr yes;
nLimiterIter 5;
nLimiterIter 10;
alphaApplyPrevCorr no;
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-8;
relTol 0;
}
"pcorr.*"
{
solver PCG;
preconditioner DIC;
tolerance 1e-9;
tolerance 1e-12;
relTol 0;
minIter 1;
}
p_rgh
@ -55,68 +48,88 @@ solvers
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-9;
relTol 0.01;
}
Phi
{
$p_rgh;
relTol 0.05;
}
p_rghFinal
{
$p_rgh;
relTol 0;
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-9;
relTol 0.0;
}
"(U|k|omega|epsilon).*"
pcorr
{
$p;
solver PBiCGStab;
preconditioner DIC;
}
pcorrFinal
{
$pcorr;
}
yPsi
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-5;
relTol 0.0;
}
"(U|h)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-08;
tolerance 1e-6;
relTol 0.1;
}
"(UFinal|hFinal)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-7;
relTol 0.0;
}
"(k|omega|epsilon|kFinal|epsilonFinal|omegaFinal)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-6;
relTol 0.01;
}
"(rho|rhoFinal)"
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-6;
relTol 0;
}
}
PIMPLE
{
momentumPredictor no;
nOuterCorrectors 2;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
ddtCorr yes;
correctPhi no;
massFluxInterpolation no;
moveMeshOuterCorrectors no;
turbOnFinalIterOnly yes;
correctPhi no;
oversetAdjustPhi no;
}
potentialFlow
{
nNonOrthogonalCorrectors 2;
PhiRefCell 0;
PhiRefValue 0;
ddtCorr false;
momentumPredictor false;
}
relaxationFactors
{
fields
{
}
equations
{
".*" 1;
".*" 1;
}
}
cache
{
grad(U);
}
// ************************************************************************* //

View File

@ -17,6 +17,7 @@ FoamFile
defaultFieldValues
(
volScalarFieldValue zoneID 123
volScalarFieldValue alpha.water 0
);
regions
@ -25,7 +26,7 @@ regions
// (does zerogradient on boundaries)
cellToCell
{
set bgr0;
set c0;
fieldValues
(
@ -35,17 +36,7 @@ regions
cellToCell
{
set hullBox0;
fieldValues
(
volScalarFieldValue zoneID 1
);
}
cellToCell
{
set propeller0;
set c1;
fieldValues
(
@ -55,11 +46,23 @@ regions
cellToCell
{
set rudder0;
set c2;
fieldValues
(
volScalarFieldValue zoneID 3
volScalarFieldValue zoneID 1
);
}
// Set cell values
// (does zerogradient on boundaries)
boxToCell
{
box (-1000 -1000 -1000) (1000 1000 0.4125);
fieldValues
(
volScalarFieldValue alpha.water 1
);
}
);

View File

@ -0,0 +1,122 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
castellatedMesh true;
snap true;
addLayers false;
geometry
{
BoxRefinement_1
{
type searchableBox ;
min (-3.8 -0.8 -0.2 );
max (3.8 0.8 0.75 );
}
};
castellatedMeshControls
{
maxLocalCells 200000000;
maxGlobalCells 300000000;
minRefinementCells 20;
nCellsBetweenLevels 4;
maxLoadUnbalance 0.1;
allowFreeStandingZoneFaces true;
resolveFeatureAngle 30;
features
(
);
refinementSurfaces
{
}
refinementRegions
{
BoxRefinement_1
{
mode inside;
levels ((1 1));
}
}
locationInMesh ( 0 0 0 ) ;
}
snapControls
{
tolerance 2;
implicitFeatureSnap false;
explicitFeatureSnap true;
multiRegionFeatureSnap true;
detectNearSurfacesSnap true;
nSmoothPatch 3;
nSolveIter 50;
nRelaxIter 5;
nFeatureSnapIter 10;
nSmoothInternal 3;
nFaceSplitInterval 5;
}
addLayersControls
{
}
meshQualityControls
{
minVol 1e-13;
minTetQuality 1e-16;
minArea 1e-13;
minTwist 0.05;
minDeterminant 1e-06;
minFaceWeight 0.02;
minVolRatio 0.01;
minTriangleTwist -1;
minFlatness 0.5;
maxNonOrtho 70;
maxBoundarySkewness 20;
maxInternalSkewness 4;
maxConcave 80;
nSmoothScale 4;
errorReduction 0.75;
relaxed
{
minVol 1e-30;
minTetQuality 1e-30;
minArea 1e-30;
minTwist 0.001;
minDeterminant 1e-06;
minFaceWeight 1e-06;
minVolRatio 0.01;
minTriangleTwist -1;
minFlatness 0.5;
maxNonOrtho 75;
maxBoundarySkewness 20;
maxInternalSkewness 8;
maxConcave 80;
nSmoothScale 4;
errorReduction 0.75;
}
}
mergeTolerance 1e-08;
debug 0;
// ************************************************************************* //

View File

@ -17,21 +17,54 @@ FoamFile
actions
(
{
name refineSet; // all around hullBox
name c0;
type cellSet;
action new;
source zoneToCell;
zone hullBox;
source regionsToCell;
sourceInfo
{
insidePoints ((-6 0 0.0));
}
}
{
name refineSet;
name c1;
type cellSet;
action subset;
source boxToCell;
boxes
(
(0.05 -0.2 -0.2)(0.8 0.2 0.2)
);
action new;
source cellToCell;
sourceInfo
{
set c0;
}
}
{
name c1;
type cellSet;
action invert;
}
{
name c2;
type cellSet;
action new;
source regionsToCell;
sourceInfo
{
set c1;
insidePoints ((-3.4 0.1 0.1));
}
}
{
name c1;
type cellSet;
action delete;
source cellToCell;
sourceInfo
{
set c2;
}
}
);

View File

@ -17,21 +17,25 @@ FoamFile
actions
(
{
name refineSet; // all around hullBox
name cHullProp;
type cellSet;
action new;
source zoneToCell;
zone hullBox;
source cellToCell;
sourceInfo
{
set c1;
}
}
{
name refineSet;
name cHullProp;
type cellSet;
action subset;
source boxToCell;
boxes
(
(0 -0.2 -0.2)(0.04 0.2 0.2)
);
action add;
source cellToCell;
sourceInfo
{
set c2;
}
}
);

View File

@ -5,6 +5,6 @@ cd "${0%/*}" || exit # Run from this directory
cleanCase0
rm -f constant/cellInterpolationWeight
rm -rf constant
#------------------------------------------------------------------------------

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/rigidBodyHull/HULL.obj.gz \
constant/triSurface/
runApplication blockMesh
runApplication surfaceFeatureExtract
runApplication decomposePar
runParallel snappyHexMesh -overwrite
runParallel redistributePar -reconstruct -constant -overwrite
runApplication renumberMesh -constant -overwrite
#------------------------------------------------------------------------------

View File

@ -10,27 +10,46 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
object topoSetDict;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
scale 1;
vertices
(
( -4.99979 -1.20038 -0.400296 )
( 5 -1.20038 -0.400296 )
( 5 1.20038 -0.400296 )
( -4.99979 1.20038 -0.400296 )
( -4.99979 -1.20038 1.10002 )
( 5 -1.20038 1.10002 )
( 5 1.20038 1.10002 )
( -4.99979 1.20038 1.10002 )
);
blocks
(
hex (0 1 2 3 4 5 6 7) ( 85 20 12 ) simpleGrading ( 1 1 1 )
);
edges
(
);
boundary
(
overset-1
{
name refineSet; // all around bgr
type cellSet;
action new;
source zoneToCell;
zone background;
}
{
name refineSet;
type cellSet;
action subset;
source boxToCell;
boxes
type overset;
faces
(
(-0.2 -0.2 -0.2)(0.04 0.2 0.2) //hullBox
(0 4 7 3)
(1 2 6 5)
(0 1 5 4)
(3 7 6 2)
(0 3 2 1)
(4 5 6 7)
);
}
);

View File

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

View File

@ -10,27 +10,18 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
object refineMeshDict;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
set refineSet;
numberOfSubdomains 8;
coordinateSystem global;
method hierarchical;
globalCoeffs
coeffs
{
tan1 (1 0 0);
tan2 (0 1 0);
n (8 1 1);
}
directions ( tan1 tan2 );
useHexTopology no;
geometricCut yes;
writeMesh no;
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,18 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// ************************************************************************* //

View File

@ -0,0 +1,196 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
castellatedMesh true;
snap true;
addLayers false;
geometry
{
HULL.obj
{
type triSurfaceMesh;
name HULL ;
regions
{
HULL
{
name HULL;
}
HULL_DISK
{
name HULL_DISK;
}
}
}
BoxRefinement_1
{
type searchableBox ;
min ( -3.60318 -0.20025 -0.039084 );
max ( -3.20311 0.20025 0.395883 );
}
BoxRefinement_3_hub
{
type searchableBox ;
min ( -3.54 -0.12 0.010);
max ( -3.34 0.12 0.26);
}
};
castellatedMeshControls
{
maxLocalCells 200000000;
maxGlobalCells 300000000;
minRefinementCells 20;
nCellsBetweenLevels 2;
maxLoadUnbalance 0.1;
allowFreeStandingZoneFaces true;
resolveFeatureAngle 30;
features
(
{
file "HULL.eMesh" ;
level 0 ;
}
);
refinementSurfaces
{
HULL
{
level (0 0);
regions
{
HULL
{
level (2 2);
}
HULL_DISK
{
level (2 2);
}
}
}
}
refinementRegions
{
BoxRefinement_1
{
mode inside;
levels ((0 2));
}
BoxRefinement_3_hub
{
mode inside;
levels ((5 5));
}
}
locationInMesh ( 4.3245044 0.88143855 0.86520574 ) ;
}
snapControls
{
tolerance 2;
implicitFeatureSnap false;
explicitFeatureSnap true;
multiRegionFeatureSnap true;
detectNearSurfacesSnap true;
nSmoothPatch 3;
nSolveIter 50;
nRelaxIter 5;
nFeatureSnapIter 10;
nSmoothInternal 3;
nFaceSplitInterval 5;
}
addLayersControls
{
layers
{
"(HULL_DISK|HULL)"
{
nSurfaceLayers 4;
}
}
relativeSizes true ;
expansionRatio 1.1 ;
firstLayerThickness 0.2 ;
featureAngle 85;
slipFeatureAngle 30;
nGrow 0;
nBufferCellsNoExtrude 0;
minMedianAxisAngle 90;
maxFaceThicknessRatio 0.2;
maxThicknessToMedialRatio 0.3;
minThickness 1e-06;
nLayerIter 50;
nRelaxIter 5;
nSmoothSurfaceNormals 10;
nSmoothNormals 3;
nSmoothThickness 10;
nRelaxedIter 10;
nMedialAxisIter 10;
}
meshQualityControls
{
minVol 1e-20;
minTetQuality 1e-20;
minArea 1e-20;
minTwist 0.05;
minDeterminant 1e-06;
minFaceWeight 0.02;
minVolRatio 0.01;
minTriangleTwist -1;
minFlatness 0.5;
maxNonOrtho 70;
maxBoundarySkewness 20;
maxInternalSkewness 4;
maxConcave 80;
nSmoothScale 4;
errorReduction 0.75;
relaxed
{
minVol 1e-30;
minTetQuality 1e-30;
minArea 1e-30;
minTwist 0.001;
minDeterminant 1e-06;
minFaceWeight 1e-06;
minVolRatio 0.01;
minTriangleTwist -1;
minFlatness 0.5;
maxNonOrtho 75;
maxBoundarySkewness 20;
maxInternalSkewness 8;
maxConcave 80;
nSmoothScale 4;
errorReduction 0.75;
}
}
mergeTolerance 1e-08;
debug 0;
// ************************************************************************* //

View File

@ -0,0 +1,29 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object surfaceFeatureExtractDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
HULL.obj
{
extractionMethod extractFromSurface;
writeObj yes;
extractFromSurfaceCoeffs
{
includedAngle 150;
}
}
// ************************************************************************* //

View File

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

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/rigidBodyHull/{BLADES,HUB,MRF_REGION}.obj.gz \
constant/triSurface/
runApplication blockMesh
runApplication surfaceFeatureExtract
runApplication decomposePar
runParallel snappyHexMesh -overwrite
runParallel redistributePar -reconstruct -constant -overwrite
runApplication renumberMesh -constant -overwrite
#------------------------------------------------------------------------------

View File

@ -0,0 +1,100 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1;
xmin -3.60;
xmax -3.35;
ymin -0.2;
ymax 0.2;
zmin -0.05;
zmax 0.3;
vertices
(
( $xmin $ymin $zmin )
( $xmax $ymin $zmin )
( $xmax $ymax $zmin )
( $xmin $ymax $zmin )
( $xmin $ymin $zmax )
( $xmax $ymin $zmax )
( $xmax $ymax $zmax )
( $xmin $ymax $zmax )
);
blocks
(
hex (0 1 2 3 4 5 6 7) ( 20 26 20 ) simpleGrading ( 1 1 1 )
);
edges
(
);
boundary
(
XMin
{
type patch;
faces
(
(0 4 7 3)
);
}
XMax
{
type patch;
faces
(
(1 2 6 5)
);
}
YMin
{
type symmetry;
faces
(
(0 1 5 4)
);
}
YMax
{
type symmetry;
faces
(
(3 7 6 2)
);
}
ZMin
{
type wall;
faces
(
(0 3 2 1)
);
}
ZMax
{
type patch;
faces
(
(4 5 6 7)
);
}
);
// ************************************************************************* //

View File

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

View File

@ -10,27 +10,18 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
object refineMeshDict;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
set refineSet;
numberOfSubdomains 8;
coordinateSystem global;
method hierarchical;
globalCoeffs
coeffs
{
tan1 (1 0 0);
tan2 (0 1 0);
n (8 1 1);
}
directions ( tan1 tan2 normal);
useHexTopology no;
geometricCut yes;
writeMesh no;
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,18 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// ************************************************************************* //

View File

@ -0,0 +1,205 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
castellatedMesh true;
snap true;
addLayers false;
geometry
{
BLADES.obj
{
type triSurfaceMesh;
name BLADES;
}
HUB.obj
{
type triSurfaceMesh;
name HUB;
regions
{
HUB { name HUB; }
HUB_DISK { name HUB_DISK; }
}
}
MRF_REGION.obj
{
type triSurfaceMesh;
name MRF_REGION;
}
BoxRefinement_3
{
type searchableBox ;
min ( -4 -0.135 0.0085 );
max ( -3.3 0.135 0.26 );
}
};
castellatedMeshControls
{
maxLocalCells 200000000;
maxGlobalCells 300000000;
minRefinementCells 20;
nCellsBetweenLevels 2;
maxLoadUnbalance 0.1;
allowFreeStandingZoneFaces true;
resolveFeatureAngle 30;
features
(
{
file "HUB.eMesh" ;
level 0 ;
}
{
file "BLADES.eMesh" ;
level 0 ;
}
{
file "MRF_REGION.eMesh" ;
level 0 ;
}
);
refinementSurfaces
{
MRF_REGION
{
level (2 2);
}
HUB
{
level (2 2);
}
BLADES
{
level (2 4);
}
}
refinementRegions
{
}
locationInMesh (-3.50 0.0 0.23);
}
snapControls
{
tolerance 4;
implicitFeatureSnap true;
explicitFeatureSnap false;
multiRegionFeatureSnap true;
nSmoothPatch 5;
nSolveIter 100;
nRelaxIter 5;
nFeatureSnapIter 15;
nSmoothInternal 3;
}
addLayersControls
{
layers
{
HUB
{
nSurfaceLayers 3;
firstLayerThickness 0.2;
expansionRatio 1.2;
}
BLADES
{
nSurfaceLayers 3;
firstLayerThickness 0.2;
expansionRatio 1.2;
}
HUB_DISK
{
nSurfaceLayers 3;
firstLayerThickness 0.1;
expansionRatio 1.2;
}
}
relativeSizes true ;
expansionRatio 1.2 ;
firstLayerThickness 0.1 ;
featureAngle 85;
slipFeatureAngle 30;
nGrow 0;
nBufferCellsNoExtrude 0;
minMedianAxisAngle 90;
maxFaceThicknessRatio 0.2;
maxThicknessToMedialRatio 0.3;
minThickness 1e-06;
nLayerIter 50;
nRelaxIter 5;
nSmoothSurfaceNormals 10;
nSmoothNormals 3;
nSmoothThickness 10;
nRelaxedIter 10;
nMedialAxisIter 10;
}
meshQualityControls
{
minVol 1e-25;
minTetQuality 1e-25;
minArea 1e-20;
minTwist 0.001;
minDeterminant 1e-06;
minFaceWeight 0.05;
minVolRatio 0.001;
minTriangleTwist -1;
minFlatness 0.5;
maxNonOrtho 70;
maxBoundarySkewness 20;
maxInternalSkewness 4;
maxConcave 80;
nSmoothScale 4;
errorReduction 0.75;
maxNonOrtho 70;
relaxed
{
minVol 1e-30;
minTetQuality 1e-30;
minArea 1e-30;
minTwist 0.001;
minDeterminant 1e-06;
minFaceWeight 1e-06;
minVolRatio 0.01;
minTriangleTwist -1;
minFlatness 0.5;
maxNonOrtho 75;
maxBoundarySkewness 20;
maxInternalSkewness 8;
maxConcave 80;
nSmoothScale 4;
errorReduction 0.75;
}
}
mergeTolerance 1e-08;
debug 0;
// ************************************************************************* //

View File

@ -10,35 +10,43 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
object setFieldsDict;
object surfaceFeatureExtractDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
defaultFieldValues
(
volScalarFieldValue alpha.water 0
);
HUB.obj
{
extractionMethod extractFromSurface;
writeObj yes;
regions
(
boxToCell
extractFromSurfaceCoeffs
{
box ( -100 -100 -100 ) ( 100 0.0 100 );
fieldValues
(
volScalarFieldValue alpha.water 1
);
includedAngle 150;
}
}
boxToFace
BLADES.obj
{
extractionMethod extractFromSurface;
writeObj yes;
extractFromSurfaceCoeffs
{
box ( -100 -100 -100 ) ( 100 0.0 100 );
fieldValues
(
volScalarFieldValue alpha.water 1
);
includedAngle 150;
}
);
}
MRF_REGION.obj
{
extractionMethod extractFromSurface;
writeObj yes;
extractFromSurfaceCoeffs
{
includedAngle 150;
}
}
// ************************************************************************* //

Binary file not shown.

Binary file not shown.