Dynamic immersed boundary capability with an example moving immersed boundary mesh and tutorial

This commit is contained in:
Hrvoje Jasak 2015-09-30 09:48:55 +01:00
parent 6a7fda29a9
commit a3cd647cf9
28 changed files with 3181 additions and 0 deletions

View file

@ -0,0 +1,3 @@
icoDyMIbFoam.C
EXE = $(FOAM_APPBIN)/icoDyMIbFoam

View file

@ -0,0 +1,16 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/immersedBoundary/immersedBoundary/lnInclude \
-I$(LIB_SRC)/dynamicMesh/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/dynamicMesh/lnInclude \
-I./lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lmeshTools \
-limmersedBoundary \
-ldynamicFvMesh \
-ldynamicMesh \
-L$(FOAM_USER_LIBBIN) -loversetMesh \
-llduSolvers

View file

@ -0,0 +1,52 @@
Info<< "Reading transportProperties\n" << endl;
IOdictionary transportProperties
(
IOobject
(
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE
)
);
dimensionedScalar nu
(
transportProperties.lookup("nu")
);
Info<< "Reading field p\n" << endl;
volScalarField p
(
IOobject
(
"p",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
Info<< "Reading field U\n" << endl;
volVectorField U
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
# include "createPhi.H"
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell(p, mesh.solutionDict().subDict("PIMPLE"), pRefCell, pRefValue);

View file

@ -0,0 +1,141 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright held by original author
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Application
icoDyMOversetFoam
Description
Transient solver for incompressible, laminar flow of Newtonian fluids
with dynamic mesh and immersed boundary mesh support.
Author
Hrvoje Jasak, Wikki Ltd. All rights reserved
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "dynamicFvMesh.H"
#include "immersedBoundaryFvPatch.H"
#include "immersedBoundaryAdjustPhi.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
# include "setRootCase.H"
# include "createTime.H"
# include "createDynamicFvMesh.H"
# include "createFields.H"
# include "initContinuityErrs.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
while (runTime.loop())
{
Info<< "Time = " << runTime.timeName() << nl << endl;
// Make the fluxes absolute
fvc::makeAbsolute(phi, U);
bool meshChanged = mesh.update();
reduce(meshChanged, orOp<bool>());
Info<< "Mesh update" << meshChanged << endl;
# include "createIbMasks.H"
// Make the fluxes relative to the mesh motion
fvc::makeRelative(phi, U);
# include "readPIMPLEControls.H"
# include "CourantNo.H"
// Pressure-velocity corrector
int oCorr = 0;
do
{
fvVectorMatrix UEqn
(
fvm::ddt(U)
+ fvm::div(phi, U)
- fvm::laplacian(nu, U)
);
solve(UEqn == -fvc::grad(p));
// --- PISO loop
for (int corr = 0; corr < nCorr; corr++)
{
volScalarField rUA = 1.0/UEqn.A();
U = rUA*UEqn.H();
// Immersed boundary update
U.correctBoundaryConditions();
phi = faceIbMask*(fvc::interpolate(U) & mesh.Sf());
// Adjust immersed boundary fluxes
immersedBoundaryAdjustPhi(phi, U);
adjustPhi(phi, U, p);
for (int nonOrth = 0; nonOrth <= nNonOrthCorr; nonOrth++)
{
fvScalarMatrix pEqn
(
fvm::laplacian(rUA, p) == fvc::div(phi)
);
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve();
if (nonOrth == nNonOrthCorr)
{
phi -= pEqn.flux();
}
}
# include "immersedBoundaryContinuityErrs.H"
// Make the fluxes relative to the mesh motion
fvc::makeRelative(phi, U);
U -= rUA*fvc::grad(p);
U.correctBoundaryConditions();
}
} while (++oCorr < nOuterCorr);
runTime.write();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
}
Info<< "End\n" << endl;
return(0);
}
// ************************************************************************* //

View file

@ -77,6 +77,7 @@ wmake libso dbns
wmake libso immersedBoundary/immersedBoundary
wmake libso immersedBoundary/immersedBoundaryTurbulence
wmake libso immersedBoundary/immersedBoundaryForce
wmake libso immersedBoundary/immersedBoundaryDynamicMesh
( cd cudaSolvers ; ./Allwmake )

View file

@ -0,0 +1,4 @@
movingImmersedBoundary/movingImmersedBoundary.C
immersedBoundarySolidBodyMotionFvMesh/immersedBoundarySolidBodyMotionFvMesh.C
LIB = $(FOAM_LIBBIN)/libimmersedBoundaryDynamicFvMesh

View file

@ -0,0 +1,18 @@
EXE_INC = \
-I$(LIB_SRC)/immersedBoundary/immersedBoundary/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/surfMesh/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/dynamicMesh/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/meshMotion/solidBodyMotion/lnInclude \
EXE_LIBS = \
-limmersedBoundary \
-lfiniteVolume \
-lmeshTools \
-lsurfMesh \
-lsampling \
-ldynamicMesh \
-ldynamicFvMesh \
-lsolidBodyMotion

View file

@ -0,0 +1,119 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright held by original author
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
\*---------------------------------------------------------------------------*/
#include "immersedBoundarySolidBodyMotionFvMesh.H"
#include "addToRunTimeSelectionTable.H"
#include "volFields.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
defineTypeNameAndDebug(immersedBoundarySolidBodyMotionFvMesh, 0);
addToRunTimeSelectionTable
(
dynamicFvMesh,
immersedBoundarySolidBodyMotionFvMesh,
IOobject
);
}
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::immersedBoundarySolidBodyMotionFvMesh::
immersedBoundarySolidBodyMotionFvMesh
(
const IOobject& io
)
:
dynamicFvMesh(io),
dynamicMeshCoeffs_
(
IOdictionary
(
IOobject
(
"dynamicMeshDict",
time().constant(),
*this,
IOobject::MUST_READ,
IOobject::NO_WRITE
)
).subDict(typeName + "Coeffs")
),
ibMotions_()
{
// Read motion function for all regions
PtrList<entry> motionDicts(dynamicMeshCoeffs_.lookup("motionFunctions"));
ibMotions_.setSize(motionDicts.size());
forAll (motionDicts, mI)
{
ibMotions_.set
(
mI,
new movingImmersedBoundary
(
motionDicts[mI].keyword(),
*this,
motionDicts[mI].dict()
)
);
}
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::immersedBoundarySolidBodyMotionFvMesh::
~immersedBoundarySolidBodyMotionFvMesh()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
bool Foam::immersedBoundarySolidBodyMotionFvMesh::update()
{
forAll (ibMotions_, ibI)
{
ibMotions_[ibI].movePoints();
}
// Force flux and addressing recalculation as in topo change
pointField newAllPoints = allPoints();
movePoints(newAllPoints);
return true;
}
// ************************************************************************* //

View file

@ -0,0 +1,112 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright held by original author
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
Foam::immersedBoundarySolidBodyMotionFvMesh
Description
Solid-body motion of the immersed boundary mesh specified by a
run-time selectable motion function for each immersed boundary surface
SourceFiles
immersedBoundarySolidBodyMotionFvMesh.C
\*---------------------------------------------------------------------------*/
#ifndef immersedBoundarySolidBodyMotionFvMesh_H
#define immersedBoundarySolidBodyMotionFvMesh_H
#include "dynamicFvMesh.H"
#include "dictionary.H"
#include "movingImmersedBoundary.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class immersedBoundarySolidBodyMotionFvMesh Declaration
\*---------------------------------------------------------------------------*/
class immersedBoundarySolidBodyMotionFvMesh
:
public dynamicFvMesh
{
// Private data
//- Dictionary of motion control parameters
dictionary dynamicMeshCoeffs_;
//- Immersed boundary motion control function
PtrList<movingImmersedBoundary> ibMotions_;
// Private Member Functions
//- Disallow default bitwise copy construct
immersedBoundarySolidBodyMotionFvMesh
(
const immersedBoundarySolidBodyMotionFvMesh&
);
//- Disallow default bitwise assignment
void operator=
(
const immersedBoundarySolidBodyMotionFvMesh&
);
public:
//- Runtime type information
TypeName("immersedBoundarySolidBodyMotionFvMesh");
// Constructors
//- Construct from IOobject
explicit immersedBoundarySolidBodyMotionFvMesh(const IOobject& io);
// Destructor
virtual ~immersedBoundarySolidBodyMotionFvMesh();
// Member Functions
//- Update the mesh for both mesh motion and topology change
virtual bool update();
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View file

@ -0,0 +1,98 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | foam-extend: Open Source CFD
\\ / O peration |
\\ / A nd | For copyright notice see file Copyright
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of foam-extend.
foam-extend is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
foam-extend is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "movingImmersedBoundary.H"
#include "immersedBoundaryPolyPatch.H"
#include "transformField.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::movingImmersedBoundary::movingImmersedBoundary
(
const word& name,
const fvMesh& mesh,
const dictionary& dict
)
:
name_(name),
mesh_(mesh),
sbmfPtr_(solidBodyMotionFunction::New(dict, mesh.time())),
refIbSurface_
(
IOobject
(
name + ".ftr",
mesh.time().constant(), // instance
"triSurface", // local
mesh, // registry
IOobject::MUST_READ,
IOobject::NO_WRITE
)
)
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::movingImmersedBoundary::~movingImmersedBoundary()
{}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
void Foam::movingImmersedBoundary::movePoints() const
{
// Get ibMesh from patch
const label patchID = mesh().boundaryMesh().findPatchID(name());
if (patchID < 0)
{
FatalErrorIn
(
"void movingImmersedBoundary::movePoints() const"
) << "Patch " << name() << " not found. Available patch names: "
<< mesh().boundaryMesh().names()
<< abort(FatalError);
}
const immersedBoundaryPolyPatch& cibPatch =
refCast<const immersedBoundaryPolyPatch>
(
mesh().boundaryMesh()[patchID]
);
// Get non-const reference to patch
immersedBoundaryPolyPatch& ibPatch =
const_cast<immersedBoundaryPolyPatch&>(cibPatch);
// Move points
ibPatch.moveTriSurfacePoints
(
transform(sbmfPtr_->transformation(), refIbSurface_.points())
);
}
// ************************************************************************* //

View file

@ -0,0 +1,121 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | foam-extend: Open Source CFD
\\ / O peration |
\\ / A nd | For copyright notice see file Copyright
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of foam-extend.
foam-extend is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
foam-extend is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::movingImmersedBoundary
Description
Moving immesed boundary. Motion is prescribed using a solid body motion
function.
SourceFiles
movingImmersedBoundary.C
\*---------------------------------------------------------------------------*/
#ifndef movingImmersedBoundary_H
#define movingImmersedBoundary_H
#include "fvMesh.H"
#include "solidBodyMotionFunction.H"
#include "triSurfaceMesh.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class movingImmersedBoundary Declaration
\*---------------------------------------------------------------------------*/
class movingImmersedBoundary
{
// Private data
//- Patch name
const word name_;
//- Mesh reference
const fvMesh& mesh_;
//- Overset region motion control function
autoPtr<solidBodyMotionFunction> sbmfPtr_;
//- Reference tri surface mesh position
triSurfaceMesh refIbSurface_;
// Private Member Functions
//- Disallow default bitwise copy construct
movingImmersedBoundary(const movingImmersedBoundary&);
//- Disallow default bitwise assignment
void operator=(const movingImmersedBoundary&);
public:
// Constructors
//- Construct from dictionary
movingImmersedBoundary
(
const word& name,
const fvMesh& mesh,
const dictionary& dict
);
//- Destructor
~movingImmersedBoundary();
// Member Functions
//- Return name
const word& name() const
{
return name_;
}
//- Return mesh
const fvMesh& mesh() const
{
return mesh_;
}
//- Move immersed boundary patch points
void movePoints() const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View file

@ -0,0 +1,52 @@
# git-ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# editor and misc backup files - anywhere
*~
.*~
*.bak
*.bak[0-9][0-9]
*.orig
*.orig[0-9][0-9]
\#*\#
# file-browser settings - anywhere
.directory
# CVS recovered versions - anywhere
.#*
# SVN directories - anywhere
.svn/
# OpenFOAM results
[1-9]*/
!/0/
processor*
*/polyMesh/*
!*/polyMesh/blockMeshDict
cellToRegion*
log*
# packages - anywhere
*.tar.bz2
*.tar.gz
*.tar
*.tgz
*.gtgz
# Pictures and movies
*.png
*.jpg
*.jpeg
*.bmp
*.png
*.avi
*.mp4
*.mpg
#end-of-file

View file

@ -0,0 +1,65 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (1 0 0);
boundaryField
{
ibCylinder
{
type immersedBoundary;
refValue uniform (0 0 0);
refGradient uniform (0 0 0);
fixesValue yes;
setDeadCellValue yes;
deadCellValue (0 0 0);
}
in
{
type fixedValue;
value uniform (1 0 0);
}
out
{
type inletOutlet;
inletValue uniform (0 0 0);
value uniform (1 0 0);
}
top
{
type fixedValue;
value uniform (0 0 0);
}
bottom
{
type fixedValue;
value uniform (0 0 0);
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //

View file

@ -0,0 +1,65 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
ibCylinder
{
type immersedBoundary;
refValue uniform 0;
refGradient uniform 0;
fixesValue no;
setDeadCellValue yes;
deadCellValue 0;
value uniform 0;
}
in
{
type zeroGradient;
}
out
{
// type zeroGradient;
type fixedValue;
value uniform 0;
}
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //

View file

@ -0,0 +1,9 @@
#!/bin/sh
# Source tutorial clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase
\rm -rf 0
\rm -f constant/polyMesh/boundary

View file

@ -0,0 +1,15 @@
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Get application name
application="icoDyMIbFoam"
runApplication blockMesh
\cp save/boundary constant/polyMesh/
mkdir 0
\cp -f 0_org/* 0/
runApplication potentialIbFoam
runApplication $application

View file

@ -0,0 +1,899 @@
+
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// dynamicFvMesh staticFvMesh;
dynamicFvMesh immersedBoundarySolidBodyMotionFvMesh;
immersedBoundarySolidBodyMotionFvMeshCoeffs
{
motionFunctions
(
ibCylinder
{
// solidBodyMotionFunction translation;
// translationCoeffs
// {
// velocity (0.1 0 0);
// }
solidBodyMotionFunction linearOscillation;
linearOscillationCoeffs
{
amplitude (0.5 0 0);
period 2.5;
}
}
);
}
// ************************************************************************* //

View file

@ -0,0 +1,69 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
vertices
(
(-1 -0.5 0)
(2 -0.5 0)
(2 0.5 0)
(-1 0.5 0)
(-1 -0.5 0.1)
(2 -0.5 0.1)
(2 0.5 0.1)
(-1 0.5 0.1)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (75 25 1) simpleGrading (1 1 1)
);
edges
(
);
patches
(
patch in
(
(0 4 7 3)
)
patch out
(
(2 6 5 1)
)
patch top
(
(3 7 6 2)
)
patch bottom
(
(1 5 4 0)
)
empty frontAndBack
(
(0 3 2 1)
(4 5 6 7)
)
);
mergePatchPairs
(
);
// ************************************************************************* //

View file

@ -0,0 +1,19 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
nu nu [0 2 -1 0 0 0 0] 0.01;
// ************************************************************************* //

View file

@ -0,0 +1,210 @@
1
(
cylinder
empty
)
96
(
(0.176776 -0.176776 0)
(0.176776 0.176776 0)
(-0.176776 0.176776 0)
(-0.176776 -0.176776 0)
(0.241481 -0.064705 0)
(0.241481 0.064705 0)
(0.064705 0.241481 0)
(-0.064705 0.241481 0)
(-0.241481 0.064705 0)
(-0.241481 -0.064705 0)
(0.064705 -0.241481 0)
(-0.064705 -0.241481 0)
(0.216506 -0.125 0)
(0.216506 0.125 0)
(0.125 0.216506 0)
(-0.125 0.216506 0)
(-0.216506 0.125 0)
(-0.216506 -0.125 0)
(0.125 -0.216506 0)
(-0.125 -0.216506 0)
(0.247861 -0.0326315 0)
(0.247861 0.0326315 0)
(0.0326315 0.247861 0)
(-0.0326315 0.247861 0)
(-0.247861 0.0326315 0)
(-0.247861 -0.0326315 0)
(0.0326315 -0.247861 0)
(-0.0326315 -0.247861 0)
(0.25 8.32665e-17 0)
(-8.32665e-17 0.25 0)
(-0.25 -8.32665e-17 0)
(8.32665e-17 -0.25 0)
(0.198338 -0.152191 0)
(0.198338 0.152191 0)
(0.152191 0.198338 0)
(-0.152191 0.198338 0)
(-0.198338 0.152191 0)
(-0.198338 -0.152191 0)
(0.152191 -0.198338 0)
(-0.152191 -0.198338 0)
(0.23097 -0.095671 0)
(0.23097 0.095671 0)
(0.095671 0.23097 0)
(-0.095671 0.23097 0)
(-0.23097 0.095671 0)
(-0.23097 -0.095671 0)
(0.095671 -0.23097 0)
(-0.095671 -0.23097 0)
(0.176776 -0.176776 0.1)
(0.176776 0.176776 0.1)
(-0.176776 0.176776 0.1)
(-0.176776 -0.176776 0.1)
(0.241481 -0.064705 0.1)
(0.241481 0.064705 0.1)
(0.064705 0.241481 0.1)
(-0.064705 0.241481 0.1)
(-0.241481 0.064705 0.1)
(-0.241481 -0.064705 0.1)
(0.064705 -0.241481 0.1)
(-0.064705 -0.241481 0.1)
(0.216506 -0.125 0.1)
(0.216506 0.125 0.1)
(0.125 0.216506 0.1)
(-0.125 0.216506 0.1)
(-0.216506 0.125 0.1)
(-0.216506 -0.125 0.1)
(0.125 -0.216506 0.1)
(-0.125 -0.216506 0.1)
(0.247861 -0.0326315 0.1)
(0.247861 0.0326315 0.1)
(0.0326315 0.247861 0.1)
(-0.0326315 0.247861 0.1)
(-0.247861 0.0326315 0.1)
(-0.247861 -0.0326315 0.1)
(0.0326315 -0.247861 0.1)
(-0.0326315 -0.247861 0.1)
(0.25 -8.32665e-17 0.1)
(8.32665e-17 0.25 0.1)
(-0.25 8.32665e-17 0.1)
(-8.32665e-17 -0.25 0.1)
(0.198338 -0.152191 0.1)
(0.198338 0.152191 0.1)
(0.152191 0.198338 0.1)
(-0.152191 0.198338 0.1)
(-0.198338 0.152191 0.1)
(-0.198338 -0.152191 0.1)
(0.152191 -0.198338 0.1)
(-0.152191 -0.198338 0.1)
(0.23097 -0.095671 0.1)
(0.23097 0.095671 0.1)
(0.095671 0.23097 0.1)
(-0.095671 0.23097 0.1)
(-0.23097 0.095671 0.1)
(-0.23097 -0.095671 0.1)
(0.095671 -0.23097 0.1)
(-0.095671 -0.23097 0.1)
)
96
(
((0 32 80) 0)
((80 48 0) 0)
((32 12 60) 0)
((60 80 32) 0)
((12 40 88) 0)
((88 60 12) 0)
((40 4 52) 0)
((52 88 40) 0)
((4 20 68) 0)
((68 52 4) 0)
((76 68 20) 0)
((20 28 76) 0)
((28 21 69) 0)
((69 76 28) 0)
((21 5 53) 0)
((53 69 21) 0)
((5 41 89) 0)
((89 53 5) 0)
((41 13 61) 0)
((61 89 41) 0)
((13 33 81) 0)
((81 61 13) 0)
((33 1 49) 0)
((49 81 33) 0)
((1 34 82) 0)
((82 49 1) 0)
((34 14 62) 0)
((62 82 34) 0)
((14 42 90) 0)
((90 62 14) 0)
((42 6 54) 0)
((54 90 42) 0)
((6 22 70) 0)
((70 54 6) 0)
((77 70 22) 0)
((22 29 77) 0)
((29 23 71) 0)
((71 77 29) 0)
((23 7 55) 0)
((55 71 23) 0)
((7 43 91) 0)
((91 55 7) 0)
((43 15 63) 0)
((63 91 43) 0)
((15 35 83) 0)
((83 63 15) 0)
((35 2 50) 0)
((50 83 35) 0)
((2 36 84) 0)
((84 50 2) 0)
((36 16 64) 0)
((64 84 36) 0)
((16 44 92) 0)
((92 64 16) 0)
((44 8 56) 0)
((56 92 44) 0)
((8 24 72) 0)
((72 56 8) 0)
((78 72 24) 0)
((24 30 78) 0)
((30 25 73) 0)
((73 78 30) 0)
((25 9 57) 0)
((57 73 25) 0)
((9 45 93) 0)
((93 57 9) 0)
((45 17 65) 0)
((65 93 45) 0)
((17 37 85) 0)
((85 65 17) 0)
((37 3 51) 0)
((51 85 37) 0)
((0 48 86) 0)
((86 38 0) 0)
((38 86 66) 0)
((66 18 38) 0)
((18 66 94) 0)
((94 46 18) 0)
((46 94 58) 0)
((58 10 46) 0)
((10 58 74) 0)
((74 26 10) 0)
((31 26 74) 0)
((74 79 31) 0)
((79 75 27) 0)
((27 31 79) 0)
((27 75 59) 0)
((59 11 27) 0)
((11 59 95) 0)
((95 47 11) 0)
((47 95 67) 0)
((67 19 47) 0)
((19 67 87) 0)
((87 39 19) 0)
((39 87 51) 0)
((51 3 39) 0)
)

View file

@ -0,0 +1,674 @@
solid cylinder
facet normal 0.75183 -0.659357 0
outer loop
vertex 0.176776 -0.176776 0
vertex 0.198338 -0.152191 0
vertex 0.198338 -0.152191 0.1
endloop
endfacet
facet normal 0.75183 -0.659357 0
outer loop
vertex 0.198338 -0.152191 0.1
vertex 0.176776 -0.176776 0.1
vertex 0.176776 -0.176776 0
endloop
endfacet
facet normal 0.831471 -0.555568 0
outer loop
vertex 0.198338 -0.152191 0
vertex 0.216506 -0.125 0
vertex 0.216506 -0.125 0.1
endloop
endfacet
facet normal 0.831471 -0.555568 0
outer loop
vertex 0.216506 -0.125 0.1
vertex 0.198338 -0.152191 0.1
vertex 0.198338 -0.152191 0
endloop
endfacet
facet normal 0.896872 -0.44229 0
outer loop
vertex 0.216506 -0.125 0
vertex 0.23097 -0.095671 0
vertex 0.23097 -0.095671 0.1
endloop
endfacet
facet normal 0.896872 -0.44229 0
outer loop
vertex 0.23097 -0.095671 0.1
vertex 0.216506 -0.125 0.1
vertex 0.216506 -0.125 0
endloop
endfacet
facet normal 0.94693 -0.321438 0
outer loop
vertex 0.23097 -0.095671 0
vertex 0.241481 -0.064705 0
vertex 0.241481 -0.064705 0.1
endloop
endfacet
facet normal 0.94693 -0.321438 0
outer loop
vertex 0.241481 -0.064705 0.1
vertex 0.23097 -0.095671 0.1
vertex 0.23097 -0.095671 0
endloop
endfacet
facet normal 0.980787 -0.195081 0
outer loop
vertex 0.241481 -0.064705 0
vertex 0.247861 -0.0326315 0
vertex 0.247861 -0.0326315 0.1
endloop
endfacet
facet normal 0.980787 -0.195081 0
outer loop
vertex 0.247861 -0.0326315 0.1
vertex 0.241481 -0.064705 0.1
vertex 0.241481 -0.064705 0
endloop
endfacet
facet normal 0.997858 -0.0654097 0
outer loop
vertex 0.25 -8.32665e-17 0.1
vertex 0.247861 -0.0326315 0.1
vertex 0.247861 -0.0326315 0
endloop
endfacet
facet normal 0.997858 -0.0654097 -1.07752e-16
outer loop
vertex 0.247861 -0.0326315 0
vertex 0.25 8.32665e-17 0
vertex 0.25 -8.32665e-17 0.1
endloop
endfacet
facet normal 0.997858 0.0654097 0
outer loop
vertex 0.25 8.32665e-17 0
vertex 0.247861 0.0326315 0
vertex 0.247861 0.0326315 0.1
endloop
endfacet
facet normal 0.997858 0.0654097 1.07752e-16
outer loop
vertex 0.247861 0.0326315 0.1
vertex 0.25 -8.32665e-17 0.1
vertex 0.25 8.32665e-17 0
endloop
endfacet
facet normal 0.980787 0.195081 0
outer loop
vertex 0.247861 0.0326315 0
vertex 0.241481 0.064705 0
vertex 0.241481 0.064705 0.1
endloop
endfacet
facet normal 0.980787 0.195081 0
outer loop
vertex 0.241481 0.064705 0.1
vertex 0.247861 0.0326315 0.1
vertex 0.247861 0.0326315 0
endloop
endfacet
facet normal 0.94693 0.321438 0
outer loop
vertex 0.241481 0.064705 0
vertex 0.23097 0.095671 0
vertex 0.23097 0.095671 0.1
endloop
endfacet
facet normal 0.94693 0.321438 0
outer loop
vertex 0.23097 0.095671 0.1
vertex 0.241481 0.064705 0.1
vertex 0.241481 0.064705 0
endloop
endfacet
facet normal 0.896872 0.44229 0
outer loop
vertex 0.23097 0.095671 0
vertex 0.216506 0.125 0
vertex 0.216506 0.125 0.1
endloop
endfacet
facet normal 0.896872 0.44229 0
outer loop
vertex 0.216506 0.125 0.1
vertex 0.23097 0.095671 0.1
vertex 0.23097 0.095671 0
endloop
endfacet
facet normal 0.831471 0.555568 0
outer loop
vertex 0.216506 0.125 0
vertex 0.198338 0.152191 0
vertex 0.198338 0.152191 0.1
endloop
endfacet
facet normal 0.831471 0.555568 0
outer loop
vertex 0.198338 0.152191 0.1
vertex 0.216506 0.125 0.1
vertex 0.216506 0.125 0
endloop
endfacet
facet normal 0.75183 0.659357 0
outer loop
vertex 0.198338 0.152191 0
vertex 0.176776 0.176776 0
vertex 0.176776 0.176776 0.1
endloop
endfacet
facet normal 0.75183 0.659357 0
outer loop
vertex 0.176776 0.176776 0.1
vertex 0.198338 0.152191 0.1
vertex 0.198338 0.152191 0
endloop
endfacet
facet normal 0.659357 0.75183 0
outer loop
vertex 0.176776 0.176776 0
vertex 0.152191 0.198338 0
vertex 0.152191 0.198338 0.1
endloop
endfacet
facet normal 0.659357 0.75183 0
outer loop
vertex 0.152191 0.198338 0.1
vertex 0.176776 0.176776 0.1
vertex 0.176776 0.176776 0
endloop
endfacet
facet normal 0.555568 0.831471 0
outer loop
vertex 0.152191 0.198338 0
vertex 0.125 0.216506 0
vertex 0.125 0.216506 0.1
endloop
endfacet
facet normal 0.555568 0.831471 0
outer loop
vertex 0.125 0.216506 0.1
vertex 0.152191 0.198338 0.1
vertex 0.152191 0.198338 0
endloop
endfacet
facet normal 0.44229 0.896872 0
outer loop
vertex 0.125 0.216506 0
vertex 0.095671 0.23097 0
vertex 0.095671 0.23097 0.1
endloop
endfacet
facet normal 0.44229 0.896872 0
outer loop
vertex 0.095671 0.23097 0.1
vertex 0.125 0.216506 0.1
vertex 0.125 0.216506 0
endloop
endfacet
facet normal 0.321438 0.94693 0
outer loop
vertex 0.095671 0.23097 0
vertex 0.064705 0.241481 0
vertex 0.064705 0.241481 0.1
endloop
endfacet
facet normal 0.321438 0.94693 0
outer loop
vertex 0.064705 0.241481 0.1
vertex 0.095671 0.23097 0.1
vertex 0.095671 0.23097 0
endloop
endfacet
facet normal 0.195081 0.980787 0
outer loop
vertex 0.064705 0.241481 0
vertex 0.0326315 0.247861 0
vertex 0.0326315 0.247861 0.1
endloop
endfacet
facet normal 0.195081 0.980787 0
outer loop
vertex 0.0326315 0.247861 0.1
vertex 0.064705 0.241481 0.1
vertex 0.064705 0.241481 0
endloop
endfacet
facet normal 0.0654097 0.997858 0
outer loop
vertex 8.32665e-17 0.25 0.1
vertex 0.0326315 0.247861 0.1
vertex 0.0326315 0.247861 0
endloop
endfacet
facet normal 0.0654097 0.997858 -1.07752e-16
outer loop
vertex 0.0326315 0.247861 0
vertex -8.32665e-17 0.25 0
vertex 8.32665e-17 0.25 0.1
endloop
endfacet
facet normal -0.0654097 0.997858 0
outer loop
vertex -8.32665e-17 0.25 0
vertex -0.0326315 0.247861 0
vertex -0.0326315 0.247861 0.1
endloop
endfacet
facet normal -0.0654097 0.997858 1.07752e-16
outer loop
vertex -0.0326315 0.247861 0.1
vertex 8.32665e-17 0.25 0.1
vertex -8.32665e-17 0.25 0
endloop
endfacet
facet normal -0.195081 0.980787 0
outer loop
vertex -0.0326315 0.247861 0
vertex -0.064705 0.241481 0
vertex -0.064705 0.241481 0.1
endloop
endfacet
facet normal -0.195081 0.980787 0
outer loop
vertex -0.064705 0.241481 0.1
vertex -0.0326315 0.247861 0.1
vertex -0.0326315 0.247861 0
endloop
endfacet
facet normal -0.321438 0.94693 0
outer loop
vertex -0.064705 0.241481 0
vertex -0.095671 0.23097 0
vertex -0.095671 0.23097 0.1
endloop
endfacet
facet normal -0.321438 0.94693 0
outer loop
vertex -0.095671 0.23097 0.1
vertex -0.064705 0.241481 0.1
vertex -0.064705 0.241481 0
endloop
endfacet
facet normal -0.44229 0.896872 0
outer loop
vertex -0.095671 0.23097 0
vertex -0.125 0.216506 0
vertex -0.125 0.216506 0.1
endloop
endfacet
facet normal -0.44229 0.896872 0
outer loop
vertex -0.125 0.216506 0.1
vertex -0.095671 0.23097 0.1
vertex -0.095671 0.23097 0
endloop
endfacet
facet normal -0.555568 0.831471 0
outer loop
vertex -0.125 0.216506 0
vertex -0.152191 0.198338 0
vertex -0.152191 0.198338 0.1
endloop
endfacet
facet normal -0.555568 0.831471 0
outer loop
vertex -0.152191 0.198338 0.1
vertex -0.125 0.216506 0.1
vertex -0.125 0.216506 0
endloop
endfacet
facet normal -0.659357 0.75183 0
outer loop
vertex -0.152191 0.198338 0
vertex -0.176776 0.176776 0
vertex -0.176776 0.176776 0.1
endloop
endfacet
facet normal -0.659357 0.75183 0
outer loop
vertex -0.176776 0.176776 0.1
vertex -0.152191 0.198338 0.1
vertex -0.152191 0.198338 0
endloop
endfacet
facet normal -0.75183 0.659357 0
outer loop
vertex -0.176776 0.176776 0
vertex -0.198338 0.152191 0
vertex -0.198338 0.152191 0.1
endloop
endfacet
facet normal -0.75183 0.659357 0
outer loop
vertex -0.198338 0.152191 0.1
vertex -0.176776 0.176776 0.1
vertex -0.176776 0.176776 0
endloop
endfacet
facet normal -0.831471 0.555568 0
outer loop
vertex -0.198338 0.152191 0
vertex -0.216506 0.125 0
vertex -0.216506 0.125 0.1
endloop
endfacet
facet normal -0.831471 0.555568 0
outer loop
vertex -0.216506 0.125 0.1
vertex -0.198338 0.152191 0.1
vertex -0.198338 0.152191 0
endloop
endfacet
facet normal -0.896872 0.44229 0
outer loop
vertex -0.216506 0.125 0
vertex -0.23097 0.095671 0
vertex -0.23097 0.095671 0.1
endloop
endfacet
facet normal -0.896872 0.44229 0
outer loop
vertex -0.23097 0.095671 0.1
vertex -0.216506 0.125 0.1
vertex -0.216506 0.125 0
endloop
endfacet
facet normal -0.94693 0.321438 0
outer loop
vertex -0.23097 0.095671 0
vertex -0.241481 0.064705 0
vertex -0.241481 0.064705 0.1
endloop
endfacet
facet normal -0.94693 0.321438 0
outer loop
vertex -0.241481 0.064705 0.1
vertex -0.23097 0.095671 0.1
vertex -0.23097 0.095671 0
endloop
endfacet
facet normal -0.980787 0.195081 0
outer loop
vertex -0.241481 0.064705 0
vertex -0.247861 0.0326315 0
vertex -0.247861 0.0326315 0.1
endloop
endfacet
facet normal -0.980787 0.195081 0
outer loop
vertex -0.247861 0.0326315 0.1
vertex -0.241481 0.064705 0.1
vertex -0.241481 0.064705 0
endloop
endfacet
facet normal -0.997858 0.0654097 0
outer loop
vertex -0.25 8.32665e-17 0.1
vertex -0.247861 0.0326315 0.1
vertex -0.247861 0.0326315 0
endloop
endfacet
facet normal -0.997858 0.0654097 -1.07752e-16
outer loop
vertex -0.247861 0.0326315 0
vertex -0.25 -8.32665e-17 0
vertex -0.25 8.32665e-17 0.1
endloop
endfacet
facet normal -0.997858 -0.0654097 0
outer loop
vertex -0.25 -8.32665e-17 0
vertex -0.247861 -0.0326315 0
vertex -0.247861 -0.0326315 0.1
endloop
endfacet
facet normal -0.997858 -0.0654097 1.07752e-16
outer loop
vertex -0.247861 -0.0326315 0.1
vertex -0.25 8.32665e-17 0.1
vertex -0.25 -8.32665e-17 0
endloop
endfacet
facet normal -0.980787 -0.195081 0
outer loop
vertex -0.247861 -0.0326315 0
vertex -0.241481 -0.064705 0
vertex -0.241481 -0.064705 0.1
endloop
endfacet
facet normal -0.980787 -0.195081 0
outer loop
vertex -0.241481 -0.064705 0.1
vertex -0.247861 -0.0326315 0.1
vertex -0.247861 -0.0326315 0
endloop
endfacet
facet normal -0.94693 -0.321438 0
outer loop
vertex -0.241481 -0.064705 0
vertex -0.23097 -0.095671 0
vertex -0.23097 -0.095671 0.1
endloop
endfacet
facet normal -0.94693 -0.321438 0
outer loop
vertex -0.23097 -0.095671 0.1
vertex -0.241481 -0.064705 0.1
vertex -0.241481 -0.064705 0
endloop
endfacet
facet normal -0.896872 -0.44229 0
outer loop
vertex -0.23097 -0.095671 0
vertex -0.216506 -0.125 0
vertex -0.216506 -0.125 0.1
endloop
endfacet
facet normal -0.896872 -0.44229 0
outer loop
vertex -0.216506 -0.125 0.1
vertex -0.23097 -0.095671 0.1
vertex -0.23097 -0.095671 0
endloop
endfacet
facet normal -0.831471 -0.555568 0
outer loop
vertex -0.216506 -0.125 0
vertex -0.198338 -0.152191 0
vertex -0.198338 -0.152191 0.1
endloop
endfacet
facet normal -0.831471 -0.555568 0
outer loop
vertex -0.198338 -0.152191 0.1
vertex -0.216506 -0.125 0.1
vertex -0.216506 -0.125 0
endloop
endfacet
facet normal -0.75183 -0.659357 0
outer loop
vertex -0.198338 -0.152191 0
vertex -0.176776 -0.176776 0
vertex -0.176776 -0.176776 0.1
endloop
endfacet
facet normal -0.75183 -0.659357 0
outer loop
vertex -0.176776 -0.176776 0.1
vertex -0.198338 -0.152191 0.1
vertex -0.198338 -0.152191 0
endloop
endfacet
facet normal 0.659357 -0.75183 0
outer loop
vertex 0.176776 -0.176776 0
vertex 0.176776 -0.176776 0.1
vertex 0.152191 -0.198338 0.1
endloop
endfacet
facet normal 0.659357 -0.75183 0
outer loop
vertex 0.152191 -0.198338 0.1
vertex 0.152191 -0.198338 0
vertex 0.176776 -0.176776 0
endloop
endfacet
facet normal 0.555568 -0.831471 0
outer loop
vertex 0.152191 -0.198338 0
vertex 0.152191 -0.198338 0.1
vertex 0.125 -0.216506 0.1
endloop
endfacet
facet normal 0.555568 -0.831471 0
outer loop
vertex 0.125 -0.216506 0.1
vertex 0.125 -0.216506 0
vertex 0.152191 -0.198338 0
endloop
endfacet
facet normal 0.44229 -0.896872 0
outer loop
vertex 0.125 -0.216506 0
vertex 0.125 -0.216506 0.1
vertex 0.095671 -0.23097 0.1
endloop
endfacet
facet normal 0.44229 -0.896872 0
outer loop
vertex 0.095671 -0.23097 0.1
vertex 0.095671 -0.23097 0
vertex 0.125 -0.216506 0
endloop
endfacet
facet normal 0.321438 -0.94693 0
outer loop
vertex 0.095671 -0.23097 0
vertex 0.095671 -0.23097 0.1
vertex 0.064705 -0.241481 0.1
endloop
endfacet
facet normal 0.321438 -0.94693 0
outer loop
vertex 0.064705 -0.241481 0.1
vertex 0.064705 -0.241481 0
vertex 0.095671 -0.23097 0
endloop
endfacet
facet normal 0.195081 -0.980787 0
outer loop
vertex 0.064705 -0.241481 0
vertex 0.064705 -0.241481 0.1
vertex 0.0326315 -0.247861 0.1
endloop
endfacet
facet normal 0.195081 -0.980787 0
outer loop
vertex 0.0326315 -0.247861 0.1
vertex 0.0326315 -0.247861 0
vertex 0.064705 -0.241481 0
endloop
endfacet
facet normal 0.0654097 -0.997858 0
outer loop
vertex 8.32665e-17 -0.25 0
vertex 0.0326315 -0.247861 0
vertex 0.0326315 -0.247861 0.1
endloop
endfacet
facet normal 0.0654097 -0.997858 1.07752e-16
outer loop
vertex 0.0326315 -0.247861 0.1
vertex -8.32665e-17 -0.25 0.1
vertex 8.32665e-17 -0.25 0
endloop
endfacet
facet normal -0.0654097 -0.997858 0
outer loop
vertex -8.32665e-17 -0.25 0.1
vertex -0.0326315 -0.247861 0.1
vertex -0.0326315 -0.247861 0
endloop
endfacet
facet normal -0.0654097 -0.997858 -1.07752e-16
outer loop
vertex -0.0326315 -0.247861 0
vertex 8.32665e-17 -0.25 0
vertex -8.32665e-17 -0.25 0.1
endloop
endfacet
facet normal -0.195081 -0.980787 0
outer loop
vertex -0.0326315 -0.247861 0
vertex -0.0326315 -0.247861 0.1
vertex -0.064705 -0.241481 0.1
endloop
endfacet
facet normal -0.195081 -0.980787 -0
outer loop
vertex -0.064705 -0.241481 0.1
vertex -0.064705 -0.241481 0
vertex -0.0326315 -0.247861 0
endloop
endfacet
facet normal -0.321438 -0.94693 0
outer loop
vertex -0.064705 -0.241481 0
vertex -0.064705 -0.241481 0.1
vertex -0.095671 -0.23097 0.1
endloop
endfacet
facet normal -0.321438 -0.94693 -0
outer loop
vertex -0.095671 -0.23097 0.1
vertex -0.095671 -0.23097 0
vertex -0.064705 -0.241481 0
endloop
endfacet
facet normal -0.44229 -0.896872 0
outer loop
vertex -0.095671 -0.23097 0
vertex -0.095671 -0.23097 0.1
vertex -0.125 -0.216506 0.1
endloop
endfacet
facet normal -0.44229 -0.896872 -0
outer loop
vertex -0.125 -0.216506 0.1
vertex -0.125 -0.216506 0
vertex -0.095671 -0.23097 0
endloop
endfacet
facet normal -0.555568 -0.831471 0
outer loop
vertex -0.125 -0.216506 0
vertex -0.125 -0.216506 0.1
vertex -0.152191 -0.198338 0.1
endloop
endfacet
facet normal -0.555568 -0.831471 -0
outer loop
vertex -0.152191 -0.198338 0.1
vertex -0.152191 -0.198338 0
vertex -0.125 -0.216506 0
endloop
endfacet
facet normal -0.659357 -0.75183 0
outer loop
vertex -0.152191 -0.198338 0
vertex -0.152191 -0.198338 0.1
vertex -0.176776 -0.176776 0.1
endloop
endfacet
facet normal -0.659357 -0.75183 -0
outer loop
vertex -0.176776 -0.176776 0.1
vertex -0.176776 -0.176776 0
vertex -0.152191 -0.198338 0
endloop
endfacet
endsolid cylinder

View file

@ -0,0 +1,69 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
vertices
(
(-1 -0.5 0)
(2 -0.5 0)
(2 0.5 0)
(-1 0.5 0)
(-1 -0.5 0.1)
(2 -0.5 0.1)
(2 0.5 0.1)
(-1 0.5 0.1)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (75 25 1) simpleGrading (1 1 1)
);
edges
(
);
patches
(
patch in
(
(0 4 7 3)
)
patch out
(
(2 6 5 1)
)
patch top
(
(3 7 6 2)
)
patch bottom
(
(1 5 4 0)
)
empty frontAndBack
(
(0 3 2 1)
(4 5 6 7)
)
);
mergePatchPairs
(
);
// ************************************************************************* //

View file

@ -0,0 +1,60 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
6
(
ibCylinder
{
type immersedBoundary;
nFaces 0;
startFace 3650;
internalFlow no;
}
in
{
type patch;
nFaces 25;
startFace 3650;
}
out
{
type patch;
nFaces 25;
startFace 3675;
}
top
{
type patch;
nFaces 75;
startFace 3700;
}
bottom
{
type patch;
nFaces 75;
startFace 3775;
}
frontAndBack
{
type empty;
nFaces 3750;
startFace 3850;
}
)
// ************************************************************************* //

View file

@ -0,0 +1,83 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application icoDyMFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 5;
deltaT 0.01;
writeControl runTime;
writeInterval 0.2;
// writeControl timeStep;
// writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression compressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.2;
libs
(
"libimmersedBoundary.so"
"libimmersedBoundaryDynamicFvMesh.so"
);
functions
(
forces
{
type immersedBoundaryForces;
functionObjectLibs ("libimmersedBoundaryForceFunctionObject.so");
outputControl timeStep;
outputInterval 1;
patches ( ibCylinder );
pName p;
UName U;
rhoName rhoInf;
rhoInf 1;
log true;
CofR ( 0 0 0 );
Aref 0.05;
Uref 1;
}
);
// ************************************************************************* //

View file

@ -0,0 +1,50 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 10;
method simple;
simpleCoeffs
{
n (5 2 1);
delta 0.001;
}
hierarchicalCoeffs
{
n (1 1 1);
delta 0.001;
order xyz;
}
metisCoeffs
{
processorWeights 4(1 1 1 1);
}
manualCoeffs
{
dataFile "cellDecomposition";
}
distributed no;
roots
(
);
// ************************************************************************* //

View file

@ -0,0 +1,59 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
}
divSchemes
{
default none;
div(phi,U) Gauss upwind;
}
laplacianSchemes
{
default none;
laplacian(nu,U) Gauss linear corrected;
laplacian((1|A(U)),p) Gauss linear corrected;
laplacian(1,p) Gauss linear corrected;
}
interpolationSchemes
{
default linear;
interpolate(HbyA) linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
p;
}
// ************************************************************************* //

View file

@ -0,0 +1,68 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver amgSolver;
cycle W-cycle;
policy PAMG;
nPreSweeps 2;
nPostSweeps 2;
groupSize 4;
minCoarseEqns 4;
nMaxLevels 100;
scale on;
smoother symGaussSeidel;
minIter 1;
maxIter 100;
tolerance 1e-7;
relTol 0.01;
}
U
{
solver BiCGStab;
preconditioner ILU0;
minIter 1;
maxIter 1000;
tolerance 1e-08;
relTol 0;
}
}
SIMPLE
{
nNonOrthogonalCorrectors 5;
pRefPoint (0 -0.45 0.05);
pRefValue 0;
}
PIMPLE
{
nOuterCorrectors 1;
nCorrectors 4;
nNonOrthogonalCorrectors 0;
pRefPoint (0 -0.45 0.05);
pRefValue 0;
}
// ************************************************************************* //

View file

@ -0,0 +1,30 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.2 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object mapFieldsDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// List of pairs of source/target patches for mapping
patchMap
(
// lid movingWall
);
// List of target patches cutting the source domain (these need to be
// handled specially e.g. interpolated from internal values)
cuttingPatches
(
// fixedWalls
);
// ************************************************************************* //