Merge remote-tracking branch 'origin/nextRelease' into nr/MacOSX_fixes
This commit is contained in:
commit
47e3ce10c1
28 changed files with 2324 additions and 0 deletions
|
@ -0,0 +1,3 @@
|
|||
icoDyMIbFoam.C
|
||||
|
||||
EXE = $(FOAM_APPBIN)/icoDyMIbFoam
|
|
@ -0,0 +1,15 @@
|
|||
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 \
|
||||
-llduSolvers
|
|
@ -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);
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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 )
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
movingImmersedBoundary/movingImmersedBoundary.C
|
||||
immersedBoundarySolidBodyMotionFvMesh/immersedBoundarySolidBodyMotionFvMesh.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libimmersedBoundaryDynamicFvMesh
|
|
@ -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
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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
|
||||
|
||||
// ************************************************************************* //
|
52
tutorials/immersedBoundary/movingCylinderInChannelIco/.gitignore
vendored
Normal file
52
tutorials/immersedBoundary/movingCylinderInChannelIco/.gitignore
vendored
Normal 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
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
9
tutorials/immersedBoundary/movingCylinderInChannelIco/Allclean
Executable file
9
tutorials/immersedBoundary/movingCylinderInChannelIco/Allclean
Executable 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
|
15
tutorials/immersedBoundary/movingCylinderInChannelIco/Allrun
Executable file
15
tutorials/immersedBoundary/movingCylinderInChannelIco/Allrun
Executable 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
|
|
@ -0,0 +1,43 @@
|
|||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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
|
||||
(
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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;
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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)
|
||||
)
|
||||
|
|
@ -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
|
|
@ -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
|
||||
(
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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;
|
||||
}
|
||||
)
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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;
|
||||
}
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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
|
||||
(
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
|
@ -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
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
Reference in a new issue