Merge branch 'master' into testLoop/MartinBeaudoin
This commit is contained in:
commit
6c89f28e58
76 changed files with 732 additions and 470 deletions
|
@ -0,0 +1,3 @@
|
|||
icoDyMFoam.C
|
||||
|
||||
EXE = $(FOAM_APPBIN)/icoDyMFoam
|
13
applications/solvers/incompressible/icoDyMFoam/Make/options
Normal file
13
applications/solvers/incompressible/icoDyMFoam/Make/options
Normal file
|
@ -0,0 +1,13 @@
|
|||
EXE_INC = \
|
||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-ldynamicFvMesh \
|
||||
-ldynamicMesh \
|
||||
-lengine \
|
||||
-lmeshTools \
|
||||
-lfiniteVolume \
|
||||
-llduSolvers
|
11
applications/solvers/incompressible/icoDyMFoam/UEqn.H
Normal file
11
applications/solvers/incompressible/icoDyMFoam/UEqn.H
Normal file
|
@ -0,0 +1,11 @@
|
|||
fvVectorMatrix UEqn
|
||||
(
|
||||
fvm::ddt(U)
|
||||
+ fvm::div(phi, U)
|
||||
- fvm::laplacian(nu, U)
|
||||
);
|
||||
|
||||
if (momentumPredictor)
|
||||
{
|
||||
solve(UEqn == -fvc::grad(p));
|
||||
}
|
47
applications/solvers/incompressible/icoDyMFoam/correctPhi.H
Normal file
47
applications/solvers/incompressible/icoDyMFoam/correctPhi.H
Normal file
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
wordList pcorrTypes(p.boundaryField().types());
|
||||
|
||||
for (label i=0; i<p.boundaryField().size(); i++)
|
||||
{
|
||||
if (p.boundaryField()[i].fixesValue())
|
||||
{
|
||||
pcorrTypes[i] = fixedValueFvPatchScalarField::typeName;
|
||||
}
|
||||
}
|
||||
|
||||
volScalarField pcorr
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"pcorr",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar("pcorr", p.dimensions(), 0.0),
|
||||
pcorrTypes
|
||||
);
|
||||
|
||||
for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||
{
|
||||
fvScalarMatrix pcorrEqn
|
||||
(
|
||||
fvm::laplacian(rAU, pcorr) == fvc::div(phi)
|
||||
);
|
||||
|
||||
pcorrEqn.setReference(pRefCell, pRefValue);
|
||||
pcorrEqn.solve();
|
||||
|
||||
if (nonOrth == nNonOrthCorr)
|
||||
{
|
||||
phi -= pcorrEqn.flux();
|
||||
}
|
||||
|
||||
// Fluxes are corrected to absolute velocity and further corrected
|
||||
// later. HJ, 6/Feb/2009
|
||||
}
|
||||
}
|
||||
|
||||
#include "continuityErrs.H"
|
|
@ -0,0 +1,90 @@
|
|||
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("PISO"), pRefCell, pRefValue);
|
||||
|
||||
|
||||
Info<< "Reading field rAU if present\n" << endl;
|
||||
volScalarField rAU
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"rAU",
|
||||
runTime.timeName(),
|
||||
mesh,
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh,
|
||||
runTime.deltaT(),
|
||||
zeroGradientFvPatchScalarField::typeName
|
||||
);
|
||||
|
||||
|
||||
{
|
||||
const dictionary& piso = mesh.solutionDict().subDict("PISO");
|
||||
|
||||
bool momentumPredictor = true;
|
||||
if (piso.found("momentumPredictor"))
|
||||
{
|
||||
momentumPredictor = Switch(piso.lookup("momentumPredictor"));
|
||||
}
|
||||
|
||||
bool momentumPredictorSave = momentumPredictor;
|
||||
momentumPredictor = false;
|
||||
# include "UEqn.H"
|
||||
momentumPredictor = momentumPredictorSave;
|
||||
|
||||
rAU = 1.0/UEqn.A();
|
||||
}
|
149
applications/solvers/incompressible/icoDyMFoam/icoDyMFoam.C
Normal file
149
applications/solvers/incompressible/icoDyMFoam/icoDyMFoam.C
Normal file
|
@ -0,0 +1,149 @@
|
|||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / 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
|
||||
icoDyMFoam
|
||||
|
||||
Description
|
||||
Transient solver for incompressible, laminar flow of Newtonian fluids
|
||||
with dynamic mesh.
|
||||
|
||||
Author
|
||||
Hrvoje Jasak, Wikki Ltd. All rights reserved.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "fvCFD.H"
|
||||
#include "dynamicFvMesh.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
# include "setRootCase.H"
|
||||
# include "createTime.H"
|
||||
# include "createDynamicFvMesh.H"
|
||||
# include "initContinuityErrs.H"
|
||||
# include "initTotalVolume.H"
|
||||
# include "createFields.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
Info<< "\nStarting time loop\n" << endl;
|
||||
|
||||
while (runTime.run())
|
||||
{
|
||||
# include "readControls.H"
|
||||
# include "checkTotalVolume.H"
|
||||
# include "CourantNo.H"
|
||||
|
||||
# include "setDeltaT.H"
|
||||
|
||||
// Make the fluxes absolute
|
||||
fvc::makeAbsolute(phi, U);
|
||||
|
||||
runTime++;
|
||||
|
||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||
|
||||
bool meshChanged = mesh.update();
|
||||
|
||||
# include "volContinuity.H"
|
||||
|
||||
if (correctPhi && meshChanged)
|
||||
{
|
||||
// Fluxes will be corrected to absolute velocity
|
||||
// HJ, 6/Feb/2009
|
||||
# include "correctPhi.H"
|
||||
}
|
||||
|
||||
// Make the fluxes relative to the mesh motion
|
||||
fvc::makeRelative(phi, U);
|
||||
|
||||
if (meshChanged)
|
||||
{
|
||||
# include "CourantNo.H"
|
||||
}
|
||||
|
||||
# include "UEqn.H"
|
||||
|
||||
// --- PISO loop
|
||||
|
||||
for (int corr=0; corr<nCorr; corr++)
|
||||
{
|
||||
rAU = 1.0/UEqn.A();
|
||||
|
||||
U = rAU*UEqn.H();
|
||||
phi = (fvc::interpolate(U) & mesh.Sf());
|
||||
//+ fvc::ddtPhiCorr(rAU, U, phi);
|
||||
|
||||
adjustPhi(phi, U, p);
|
||||
|
||||
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||
{
|
||||
fvScalarMatrix pEqn
|
||||
(
|
||||
fvm::laplacian(rAU, p) == fvc::div(phi)
|
||||
);
|
||||
|
||||
pEqn.setReference(pRefCell, pRefValue);
|
||||
|
||||
if (corr == nCorr - 1 && nonOrth == nNonOrthCorr)
|
||||
{
|
||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
||||
}
|
||||
else
|
||||
{
|
||||
pEqn.solve(mesh.solver(p.name()));
|
||||
}
|
||||
|
||||
if (nonOrth == nNonOrthCorr)
|
||||
{
|
||||
phi -= pEqn.flux();
|
||||
}
|
||||
}
|
||||
|
||||
# include "continuityErrs.H"
|
||||
|
||||
// Make the fluxes relative to the mesh motion
|
||||
fvc::makeRelative(phi, U);
|
||||
|
||||
U -= rAU*fvc::grad(p);
|
||||
U.correctBoundaryConditions();
|
||||
}
|
||||
|
||||
runTime.write();
|
||||
|
||||
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
|
||||
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
|
||||
<< nl << endl;
|
||||
}
|
||||
|
||||
Info<< "End\n" << endl;
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
|
@ -0,0 +1,14 @@
|
|||
# include "readTimeControls.H"
|
||||
# include "readPISOControls.H"
|
||||
|
||||
bool correctPhi = false;
|
||||
if (piso.found("correctPhi"))
|
||||
{
|
||||
correctPhi = Switch(piso.lookup("correctPhi"));
|
||||
}
|
||||
|
||||
bool checkMeshCourantNo = false;
|
||||
if (piso.found("checkMeshCourantNo"))
|
||||
{
|
||||
checkMeshCourantNo = Switch(piso.lookup("checkMeshCourantNo"));
|
||||
}
|
|
@ -24,12 +24,6 @@
|
|||
pcorrTypes
|
||||
);
|
||||
|
||||
# include "continuityErrs.H"
|
||||
|
||||
// Flux predictor
|
||||
phi = (fvc::interpolate(U) & mesh.Sf());
|
||||
rAU == runTime.deltaT();
|
||||
|
||||
for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
|
||||
{
|
||||
fvScalarMatrix pcorrEqn
|
||||
|
@ -50,4 +44,4 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
#include "continuityErrs.H"
|
||||
|
|
|
@ -54,17 +54,37 @@
|
|||
scalar pRefValue = 0.0;
|
||||
setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue);
|
||||
|
||||
scalar totalVolume = sum(mesh.V()).value();
|
||||
|
||||
Info<< "Reading field rAU if present\n" << endl;
|
||||
volScalarField rAU
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"rAU",
|
||||
runTime.timeName(),
|
||||
mesh
|
||||
mesh,
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
),
|
||||
mesh,
|
||||
runTime.deltaT(),
|
||||
zeroGradientFvPatchScalarField::typeName
|
||||
);
|
||||
|
||||
|
||||
{
|
||||
const dictionary& piso = mesh.solutionDict().subDict("PISO");
|
||||
|
||||
bool momentumPredictor = true;
|
||||
if (piso.found("momentumPredictor"))
|
||||
{
|
||||
momentumPredictor = Switch(piso.lookup("momentumPredictor"));
|
||||
}
|
||||
|
||||
bool momentumPredictorSave = momentumPredictor;
|
||||
momentumPredictor = false;
|
||||
# include "UEqn.H"
|
||||
momentumPredictor = momentumPredictorSave;
|
||||
|
||||
rAU = 1.0/UEqn.A();
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ int main(int argc, char *argv[])
|
|||
# include "createTime.H"
|
||||
# include "createDynamicFvMesh.H"
|
||||
# include "initContinuityErrs.H"
|
||||
# include "initTotalVolume.H"
|
||||
# include "createFields.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
|
|
@ -55,7 +55,7 @@ cleanTimeDirectories ()
|
|||
zeros=`printf %0${nZeros}d 0`
|
||||
nZeros=$(($nZeros + 1))
|
||||
done
|
||||
rm -rf ./{[1-9]*,-[1-9]*,log,log.*,log-*,logSummary.*,.fxLock,*.xml,ParaView*,paraFoam*,*.OpenFOAM} > /dev/null 2>&1
|
||||
rm -rf ./[1-9]* ./-[1-9]* ./log ./log.* ./log-* ./logSummary.* ./.fxLock ./*.xml ./ParaView* ./paraFoam* ./*.OpenFOAM > /dev/null 2>&1
|
||||
}
|
||||
|
||||
cleanCase ()
|
||||
|
@ -66,10 +66,20 @@ cleanCase ()
|
|||
rm -rf forces* > /dev/null 2>&1
|
||||
|
||||
rm -rf system/machines \
|
||||
constant/polyMesh/{allOwner*,cell*,face*,meshModifiers*} \
|
||||
constant/polyMesh/{owner*,neighbour*,point*,edge*} \
|
||||
constant/polyMesh/{cellLevel*,pointLevel*,refinementHistory*,surfaceIndex*} \
|
||||
constant/{cellToRegion,cellLevel*,pointLevel*} \
|
||||
constant/polyMesh/allOwner* \
|
||||
constant/polyMesh/cell* \
|
||||
constant/polyMesh/face* \
|
||||
constant/polyMesh/meshModifiers* \
|
||||
constant/polyMesh/owner* \
|
||||
constant/polyMesh/neighbour* \
|
||||
constant/polyMesh/point* \
|
||||
constant/polyMesh/edge* \
|
||||
constant/polyMesh/zoneToPatchName \
|
||||
constant/polyMesh/cellLevel* \
|
||||
constant/polyMesh/pointLevel* \
|
||||
constant/polyMesh/refinementHistory*, \
|
||||
constant/polyMesh/surfaceIndex* \
|
||||
constant/cellToRegion \
|
||||
constant/polyMesh/sets/ \
|
||||
VTK \
|
||||
> /dev/null 2>&1
|
||||
|
|
|
@ -65,6 +65,12 @@ compileApplication ()
|
|||
wmake $1
|
||||
}
|
||||
|
||||
compileLibrary ()
|
||||
{
|
||||
echo "Compiling $1 application"
|
||||
wmake libso $1
|
||||
}
|
||||
|
||||
cloneCase ()
|
||||
{
|
||||
if [ -d $2 ] ; then
|
||||
|
|
|
@ -912,6 +912,8 @@ Tolerances
|
|||
|
||||
// Thermophysical models
|
||||
specieThermoTol 1e-4;
|
||||
speciesThermoTJump 20;
|
||||
speciesThermoMaxIter 100;
|
||||
|
||||
// Intersection tolerance
|
||||
intersectionPlanarTol 0.2;
|
||||
|
|
|
@ -81,10 +81,11 @@ protected:
|
|||
|
||||
//- Face restriction addressing array.
|
||||
// Maps from the finer to the coarser level.
|
||||
// Positive indices map the finer faces which form part of the boundary
|
||||
// of the coarser cells to the corresponding coarser cell face.
|
||||
// Positive indices map the finer faces which form part of the
|
||||
// boundary of the coarser cells to the corresponding coarser
|
||||
// cell face.
|
||||
// Negative indices map the finer faces which are internal to the
|
||||
// coarser cells to minus the corresponding coarser cell index minus 1.
|
||||
// coarser cells to minus the corresponding coarser cell index minus 1
|
||||
PtrList<labelList> faceRestrictAddressing_;
|
||||
|
||||
//- Hierarchy of mesh addressing
|
||||
|
|
|
@ -73,7 +73,7 @@ class pointMesh
|
|||
public:
|
||||
|
||||
// Declare name of the class and its debug switch
|
||||
ClassName("pointMesh");
|
||||
TypeName("pointMesh");
|
||||
|
||||
typedef pointMesh Mesh;
|
||||
typedef pointBoundaryMesh BoundaryMesh;
|
||||
|
|
|
@ -1226,7 +1226,6 @@ void Foam::polyMesh::setOldPoints
|
|||
oldPointsPtr_ = new pointField::subField(oldAllPoints(), nPoints());
|
||||
curMotionTimeIndex_ = 0;
|
||||
primitiveMesh::clearGeom();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ License
|
|||
#include "primitiveMesh.H"
|
||||
#include "globalMeshData.H"
|
||||
#include "demandDrivenData.H"
|
||||
#include "meshObjectBase.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
|
@ -90,6 +91,9 @@ void Foam::polyMesh::clearGeom()
|
|||
// Reset valid directions (could change with rotation)
|
||||
geometricD_ = Vector<label>::zero;
|
||||
solutionD_ = Vector<label>::zero;
|
||||
|
||||
// Move points all mesh objects. HJ, 13/Oct/2010
|
||||
meshObjectBase::allMovePoints(*this);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -27,6 +27,8 @@ License
|
|||
#include "polyMesh.H"
|
||||
#include "Time.H"
|
||||
#include "cellIOList.H"
|
||||
#include "meshObjectBase.H"
|
||||
#include "mapPolyMesh.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
|
@ -394,6 +396,11 @@ Foam::polyMesh::readUpdateState Foam::polyMesh::readUpdate()
|
|||
cellZones_.set(czI, newCellZones[czI].clone(cellZones_));
|
||||
}
|
||||
|
||||
// Instantiate a dummy mapPolyMesh
|
||||
autoPtr<mapPolyMesh> mapPtr(new mapPolyMesh(*this));
|
||||
|
||||
// Execute dummy topo change on all mesh objects
|
||||
meshObjectBase::allUpdateTopology(*this, mapPtr());
|
||||
|
||||
if (boundaryChanged)
|
||||
{
|
||||
|
@ -440,6 +447,9 @@ Foam::polyMesh::readUpdateState Foam::polyMesh::readUpdate()
|
|||
geometricD_ = Vector<label>::zero;
|
||||
solutionD_ = Vector<label>::zero;
|
||||
|
||||
// Move points in all mesh objects
|
||||
meshObjectBase::allMovePoints<polyMesh>(*this);
|
||||
|
||||
return polyMesh::POINTS_MOVED;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -577,7 +577,7 @@ Foam::label Foam::directTopoChange::getCellOrder
|
|||
// Now we have new-to-old in newOrder.
|
||||
newOrder.setSize(cellInOrder);
|
||||
|
||||
// Invert to get old-to-new. Make sure removed (i.e. unmapped) cells are -1.
|
||||
// Invert to get old-to-new. Make sure removed (i.e. unmapped) cells are -1
|
||||
oldToNew = invert(cellCellAddressing.size(), newOrder);
|
||||
|
||||
return cellInOrder;
|
||||
|
@ -1487,7 +1487,8 @@ void Foam::directTopoChange::resetZones
|
|||
{
|
||||
if (newZoneAddr[i] < pointMap_.size())
|
||||
{
|
||||
curPzRnb[i] = oldZone.whichPoint(pointMap_[newZoneAddr[i]]);
|
||||
curPzRnb[i] =
|
||||
oldZone.whichPoint(pointMap_[newZoneAddr[i]]);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2034,6 +2035,7 @@ void Foam::directTopoChange::compactAndReorder
|
|||
{
|
||||
//HR 22.11.09: Fixes error when faceZone is empty
|
||||
label maxFaceIndex = -1;
|
||||
|
||||
if ( mesh.faceZones()[zoneI].size() > 0 )
|
||||
{
|
||||
maxFaceIndex = max(mesh.faceZones()[zoneI]);
|
||||
|
@ -2211,8 +2213,8 @@ void Foam::directTopoChange::addMesh
|
|||
const pointZoneMesh& pointZones = mesh.pointZones();
|
||||
|
||||
// Resize
|
||||
points_.setSize(points_.size() + points.size());
|
||||
pointMap_.setSize(pointMap_.size() + points.size());
|
||||
points_.setCapacity(points_.size() + points.size());
|
||||
pointMap_.setCapacity(pointMap_.size() + points.size());
|
||||
pointZone_.resize(pointZone_.size() + points.size()/100);
|
||||
|
||||
// Precalc offset zones
|
||||
|
@ -2251,11 +2253,11 @@ void Foam::directTopoChange::addMesh
|
|||
// always equals nCells
|
||||
label nAllCells = mesh.nCells();
|
||||
|
||||
cellMap_.setSize(cellMap_.size() + nAllCells);
|
||||
cellMap_.setCapacity(cellMap_.size() + nAllCells);
|
||||
cellFromPoint_.resize(cellFromPoint_.size() + nAllCells/100);
|
||||
cellFromEdge_.resize(cellFromEdge_.size() + nAllCells/100);
|
||||
cellFromFace_.resize(cellFromFace_.size() + nAllCells/100);
|
||||
cellZone_.setSize(cellZone_.size() + nAllCells);
|
||||
cellZone_.setCapacity(cellZone_.size() + nAllCells);
|
||||
|
||||
|
||||
// Precalc offset zones
|
||||
|
@ -2311,11 +2313,11 @@ void Foam::directTopoChange::addMesh
|
|||
// Resize
|
||||
label nAllFaces = mesh.faces().size();
|
||||
|
||||
faces_.setSize(faces_.size() + nAllFaces);
|
||||
region_.setSize(region_.size() + nAllFaces);
|
||||
faceOwner_.setSize(faceOwner_.size() + nAllFaces);
|
||||
faceNeighbour_.setSize(faceNeighbour_.size() + nAllFaces);
|
||||
faceMap_.setSize(faceMap_.size() + nAllFaces);
|
||||
faces_.setCapacity(faces_.size() + nAllFaces);
|
||||
region_.setCapacity(region_.size() + nAllFaces);
|
||||
faceOwner_.setCapacity(faceOwner_.size() + nAllFaces);
|
||||
faceNeighbour_.setCapacity(faceNeighbour_.size() + nAllFaces);
|
||||
faceMap_.setCapacity(faceMap_.size() + nAllFaces);
|
||||
faceFromPoint_.resize(faceFromPoint_.size() + nAllFaces/100);
|
||||
faceFromEdge_.resize(faceFromEdge_.size() + nAllFaces/100);
|
||||
flipFaceFlux_.resize(flipFaceFlux_.size() + nAllFaces/100);
|
||||
|
|
|
@ -59,6 +59,7 @@ void boundMinMax
|
|||
const dimensionedScalar& vsf1
|
||||
);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
|
|
@ -37,7 +37,6 @@ License
|
|||
#include "MapFvFields.H"
|
||||
#include "fvMeshMapper.H"
|
||||
#include "mapClouds.H"
|
||||
#include "meshObjectBase.H"
|
||||
|
||||
#include "volPointInterpolation.H"
|
||||
#include "extendedLeastSquaresVectors.H"
|
||||
|
@ -78,9 +77,8 @@ void Foam::fvMesh::clearGeom()
|
|||
// needs to be saved.
|
||||
|
||||
// Geometry dependent object updated through call-back
|
||||
// "Reserve" optional delete. Reconsider
|
||||
// and handled by polyMesh
|
||||
// HJ, 29/Aug/2010
|
||||
// meshObjectBase::allDelete(*this);
|
||||
}
|
||||
|
||||
|
||||
|
@ -89,9 +87,8 @@ void Foam::fvMesh::clearAddressing()
|
|||
deleteDemandDrivenData(lduPtr_);
|
||||
|
||||
// Geometry dependent object updated through call-back
|
||||
// "Reserve" optional delete. Reconsider
|
||||
// and handled by polyMesh
|
||||
// HJ, 29/Aug/2010
|
||||
// meshObjectBase::allDelete(*this);
|
||||
}
|
||||
|
||||
|
||||
|
@ -528,9 +525,6 @@ void Foam::fvMesh::syncUpdateMesh()
|
|||
// This is a temporary solution
|
||||
surfaceInterpolation::movePoints();
|
||||
|
||||
// Instantiate a dummy mapPolyMesh
|
||||
autoPtr<mapPolyMesh> mapPtr(new mapPolyMesh(*this));
|
||||
|
||||
// Function object update moved to polyMesh
|
||||
// HJ, 29/Aug/2010
|
||||
}
|
||||
|
|
|
@ -81,7 +81,7 @@ class volPointInterpolation
|
|||
public:
|
||||
|
||||
// Declare name of the class and its debug switch
|
||||
ClassName("volPointInterpolation");
|
||||
TypeName("volPointInterpolation");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
|
|
@ -74,7 +74,7 @@ Foam::bicgSolver::bicgSolver
|
|||
coupleBouCoeffs,
|
||||
coupleIntCoeffs,
|
||||
interfaces,
|
||||
dict.subDict("preconditioner")
|
||||
dict
|
||||
)
|
||||
)
|
||||
{}
|
||||
|
|
|
@ -78,7 +78,7 @@ Foam::bicgStabSolver::bicgStabSolver
|
|||
coupleBouCoeffs,
|
||||
coupleIntCoeffs,
|
||||
interfaces,
|
||||
dict.subDict("preconditioner")
|
||||
dict
|
||||
)
|
||||
)
|
||||
{}
|
||||
|
|
|
@ -74,7 +74,7 @@ Foam::cgSolver::cgSolver
|
|||
coupleBouCoeffs,
|
||||
coupleIntCoeffs,
|
||||
interfaces,
|
||||
dict.subDict("preconditioner")
|
||||
dict
|
||||
)
|
||||
)
|
||||
{}
|
||||
|
|
|
@ -146,7 +146,7 @@ Foam::deflationSolver::deflationSolver
|
|||
coupleBouCoeffs,
|
||||
coupleIntCoeffs,
|
||||
interfaces,
|
||||
dict.subDict("preconditioner")
|
||||
dict
|
||||
)
|
||||
),
|
||||
rpmOrder_(readLabel(dict.lookup("rpmOrder"))),
|
||||
|
|
|
@ -109,7 +109,7 @@ Foam::gmresSolver::gmresSolver
|
|||
coupleBouCoeffs,
|
||||
coupleIntCoeffs,
|
||||
interfaces,
|
||||
dict.subDict("preconditioner")
|
||||
dict
|
||||
)
|
||||
),
|
||||
nDirs_(readLabel(dict.lookup("nDirections")))
|
||||
|
|
|
@ -114,10 +114,12 @@ private:
|
|||
// Private member functions
|
||||
|
||||
//- Check given temperature is within the range of the fitted coeffs
|
||||
inline void checkT(const scalar T) const;
|
||||
// Note: bounding T within range. HJ, 12/Oct/2010
|
||||
inline void checkT(scalar& T) const;
|
||||
|
||||
//- Return the coefficients corresponding to the given temperature
|
||||
inline const coeffArray& coeffs(const scalar T) const;
|
||||
// Note: bounding T within range. HJ, 12/Oct/2010
|
||||
inline const coeffArray& coeffs(scalar& T) const;
|
||||
|
||||
|
||||
public:
|
||||
|
@ -145,19 +147,23 @@ public:
|
|||
// Member Functions
|
||||
|
||||
//- Heat capacity at constant pressure [J/(kmol K)]
|
||||
inline scalar cp(const scalar T) const;
|
||||
// Note: bounding T within range. HJ, 12/Oct/2010
|
||||
inline scalar cp(scalar T) const;
|
||||
|
||||
//- Enthalpy [J/kmol]
|
||||
inline scalar h(const scalar T) const;
|
||||
// Note: bounding T within range. HJ, 12/Oct/2010
|
||||
inline scalar h(scalar T) const;
|
||||
|
||||
//- Sensible enthalpy [J/kmol]
|
||||
inline scalar hs(const scalar T) const;
|
||||
// Note: bounding T within range. HJ, 12/Oct/2010
|
||||
inline scalar hs(scalar T) const;
|
||||
|
||||
//- Chemical enthalpy [J/kmol]
|
||||
inline scalar hc() const;
|
||||
|
||||
//- Entropy [J/(kmol K)]
|
||||
inline scalar s(const scalar T) const;
|
||||
// Note: bounding T within range. HJ, 12/Oct/2010
|
||||
inline scalar s(scalar T) const;
|
||||
|
||||
|
||||
// Member operators
|
||||
|
|
|
@ -54,17 +54,21 @@ inline Foam::janafThermo<equationOfState>::janafThermo
|
|||
|
||||
|
||||
template<class equationOfState>
|
||||
inline void Foam::janafThermo<equationOfState>::checkT(const scalar T) const
|
||||
inline void Foam::janafThermo<equationOfState>::checkT(scalar& T) const
|
||||
{
|
||||
if (T < Tlow_ || T > Thigh_)
|
||||
{
|
||||
FatalErrorIn
|
||||
// Improvements: graceful exit with recovery. HJ, 11/Oct/2010
|
||||
InfoIn
|
||||
(
|
||||
"janafThermo<equationOfState>::checkT(const scalar T) const"
|
||||
"janafThermo<equationOfState>::checkT(scalar& T) const"
|
||||
) << "attempt to use janafThermo<equationOfState>"
|
||||
" out of temperature range "
|
||||
<< Tlow_ << " -> " << Thigh_ << "; T = " << T
|
||||
<< abort(FatalError);
|
||||
<< endl;
|
||||
|
||||
// Bracket T to avoid out-of-range error
|
||||
T = Foam::min(Thigh_, Foam::max(T, Tlow_));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -73,9 +77,11 @@ template<class equationOfState>
|
|||
inline const typename Foam::janafThermo<equationOfState>::coeffArray&
|
||||
Foam::janafThermo<equationOfState>::coeffs
|
||||
(
|
||||
const scalar T
|
||||
scalar& T
|
||||
) const
|
||||
{
|
||||
// Note: T will be bounded by checkT in coeffs(T). No longer const
|
||||
// HJ, 12/Oct/2010
|
||||
checkT(T);
|
||||
|
||||
if (T < Tcommon_)
|
||||
|
@ -103,7 +109,7 @@ inline Foam::janafThermo<equationOfState>::janafThermo
|
|||
Thigh_(jt.Thigh_),
|
||||
Tcommon_(jt.Tcommon_)
|
||||
{
|
||||
for (register label coefLabel=0; coefLabel<nCoeffs_; coefLabel++)
|
||||
for (register label coefLabel = 0; coefLabel < nCoeffs_; coefLabel++)
|
||||
{
|
||||
highCpCoeffs_[coefLabel] = jt.highCpCoeffs_[coefLabel];
|
||||
lowCpCoeffs_[coefLabel] = jt.lowCpCoeffs_[coefLabel];
|
||||
|
@ -116,7 +122,7 @@ inline Foam::janafThermo<equationOfState>::janafThermo
|
|||
template<class equationOfState>
|
||||
inline Foam::scalar Foam::janafThermo<equationOfState>::cp
|
||||
(
|
||||
const scalar T
|
||||
scalar T
|
||||
) const
|
||||
{
|
||||
const coeffArray& a = coeffs(T);
|
||||
|
@ -127,7 +133,7 @@ inline Foam::scalar Foam::janafThermo<equationOfState>::cp
|
|||
template<class equationOfState>
|
||||
inline Foam::scalar Foam::janafThermo<equationOfState>::h
|
||||
(
|
||||
const scalar T
|
||||
scalar T
|
||||
) const
|
||||
{
|
||||
const coeffArray& a = coeffs(T);
|
||||
|
@ -142,7 +148,7 @@ inline Foam::scalar Foam::janafThermo<equationOfState>::h
|
|||
template<class equationOfState>
|
||||
inline Foam::scalar Foam::janafThermo<equationOfState>::hs
|
||||
(
|
||||
const scalar T
|
||||
scalar T
|
||||
) const
|
||||
{
|
||||
return h(T) - hc();
|
||||
|
@ -167,9 +173,12 @@ inline Foam::scalar Foam::janafThermo<equationOfState>::hc() const
|
|||
template<class equationOfState>
|
||||
inline Foam::scalar Foam::janafThermo<equationOfState>::s
|
||||
(
|
||||
const scalar T
|
||||
scalar T
|
||||
) const
|
||||
{
|
||||
// Note: T will be bounded by checkT in coeffs(T). No longer const
|
||||
// HJ, 12/Oct/2010
|
||||
|
||||
const coeffArray& a = coeffs(T);
|
||||
return
|
||||
this->RR*
|
||||
|
|
|
@ -41,6 +41,13 @@ const Foam::scalar Foam::specieThermo<thermo>::tol_
|
|||
);
|
||||
|
||||
|
||||
template<class thermo>
|
||||
const Foam::scalar Foam::specieThermo<thermo>::TJump_
|
||||
(
|
||||
debug::tolerances("speciesThermoTJump", 20)
|
||||
);
|
||||
|
||||
|
||||
template<class thermo>
|
||||
const int Foam::specieThermo<thermo>::maxIter_
|
||||
(
|
||||
|
|
|
@ -98,13 +98,16 @@ class specieThermo
|
|||
//- Convergence tolerance of energy -> temperature inversion functions
|
||||
static const scalar tol_;
|
||||
|
||||
//- Max temperature jump of energy -> temperature inversion functions
|
||||
static const scalar TJump_;
|
||||
|
||||
//- Max number of iterations in energy->temperature inversion functions
|
||||
static const int maxIter_;
|
||||
|
||||
|
||||
// Private member functions
|
||||
|
||||
//- return the temperature corresponding to the value of the
|
||||
//- Return the temperature corresponding to the value of the
|
||||
// thermodynamic property f, given the function f = F(T) and dF(T)/dT
|
||||
inline scalar T
|
||||
(
|
||||
|
@ -131,7 +134,7 @@ public:
|
|||
|
||||
// Member Functions
|
||||
|
||||
// Fundamaental properties
|
||||
// Fundamental properties
|
||||
// (These functions must be provided in derived types)
|
||||
|
||||
// Heat capacity at constant pressure [J/(kmol K)]
|
||||
|
|
|
@ -54,19 +54,29 @@ inline Foam::scalar Foam::specieThermo<thermo>::T
|
|||
|
||||
do
|
||||
{
|
||||
// Limit the temperature jump in a single corrector to TJump_
|
||||
// HJ, 12/Oct/2010
|
||||
|
||||
Test = Tnew;
|
||||
Tnew = Test - ((this->*F)(Test) - f)/(this->*dFdT)(Test);
|
||||
Tnew = Test
|
||||
- Foam::min(((this->*F)(Test) - f)/(this->*dFdT)(Test), TJump_);
|
||||
|
||||
if (iter++ > maxIter_)
|
||||
{
|
||||
FatalErrorIn
|
||||
// Improvements: graceful exit with recovery. HJ, 11/Oct/2010
|
||||
InfoIn
|
||||
(
|
||||
"specieThermo<thermo>::T(scalar f, scalar T0, "
|
||||
"scalar (specieThermo<thermo>::*F)(const scalar) const, "
|
||||
"scalar (specieThermo<thermo>::*dFdT)(const scalar) const"
|
||||
") const"
|
||||
) << "Maximum number of iterations exceeded"
|
||||
<< abort(FatalError);
|
||||
) << "Maximum number of iterations exceeded. Rescue by HJ"
|
||||
<< endl;
|
||||
|
||||
// Use value where dFdT is calculated using T0. HJ, 11/Oct/2010
|
||||
Tnew = f/(this->*dFdT)(T0);
|
||||
|
||||
return Tnew;
|
||||
}
|
||||
|
||||
} while (mag(Tnew - Test) > Ttol);
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
currDir=`pwd`
|
||||
application=`basename $currDir`
|
||||
cases="springDamper sixDOFmotion"
|
||||
|
||||
tutorialPath=`dirname $0`/..
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
for case in $cases
|
||||
do
|
||||
cleanCase $case
|
||||
rm $case/*.dat
|
||||
done
|
|
@ -1,13 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
currDir=`pwd`
|
||||
application=`basename $currDir`
|
||||
cases="springDamper sixDOFmotion"
|
||||
|
||||
tutorialPath=`dirname $0`/..
|
||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||
|
||||
for case in $cases
|
||||
do
|
||||
(cd $case; runApplication $application)
|
||||
done
|
7
tutorials/basic/sixDOFSolver/sixDOFmotion/Allclean
Executable file
7
tutorials/basic/sixDOFSolver/sixDOFmotion/Allclean
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
rm -f *.dat
|
7
tutorials/basic/sixDOFSolver/sixDOFmotion/Allrun
Executable file
7
tutorials/basic/sixDOFSolver/sixDOFmotion/Allrun
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
# Source tutorial run functions
|
||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||
|
||||
application="sixDOFSolver"
|
||||
|
||||
runApplication $application
|
7
tutorials/basic/sixDOFSolver/springDamper/Allclean
Executable file
7
tutorials/basic/sixDOFSolver/springDamper/Allclean
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
rm -f *.dat
|
7
tutorials/basic/sixDOFSolver/springDamper/Allrun
Executable file
7
tutorials/basic/sixDOFSolver/springDamper/Allrun
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
# Source tutorial run functions
|
||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||
|
||||
application="sixDOFSolver"
|
||||
|
||||
runApplication $application
|
|
@ -1,52 +0,0 @@
|
|||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.5-dev |
|
||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class polyBoundaryMesh;
|
||||
location "constant/polyMesh";
|
||||
object boundary;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
5
|
||||
(
|
||||
impellerWall
|
||||
{
|
||||
type wall;
|
||||
nFaces 68;
|
||||
startFace 1040;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type wall;
|
||||
nFaces 84;
|
||||
startFace 1108;
|
||||
}
|
||||
insideSlider
|
||||
{
|
||||
type patch;
|
||||
nFaces 36;
|
||||
startFace 1192;
|
||||
}
|
||||
outsideSlider
|
||||
{
|
||||
type patch;
|
||||
nFaces 36;
|
||||
startFace 1228;
|
||||
}
|
||||
defaultFaces
|
||||
{
|
||||
type empty;
|
||||
nFaces 1152;
|
||||
startFace 1264;
|
||||
}
|
||||
)
|
||||
|
||||
// ************************************************************************* //
|
|
@ -10,12 +10,6 @@ FoamFile
|
|||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
|
||||
root "";
|
||||
case "";
|
||||
instance "";
|
||||
local "";
|
||||
|
||||
class dictionary;
|
||||
object fvSolution;
|
||||
}
|
||||
|
@ -24,12 +18,10 @@ FoamFile
|
|||
|
||||
solvers
|
||||
{
|
||||
pcorr PCG
|
||||
pcorr
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DIC;
|
||||
}
|
||||
solver BiCGStab;
|
||||
preconditioner DILU;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
|
@ -37,59 +29,41 @@ solvers
|
|||
relTol 0;
|
||||
};
|
||||
|
||||
p PCG
|
||||
p
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DIC;
|
||||
}
|
||||
solver CG;
|
||||
preconditioner Cholesky;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
tolerance 1e-06;
|
||||
relTol 0.05;
|
||||
tolerance 1e-07;
|
||||
relTol 0.0;
|
||||
};
|
||||
|
||||
pFinal PCG
|
||||
pFinal
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DIC;
|
||||
}
|
||||
solver CG;
|
||||
preconditioner Cholesky;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
tolerance 1e-06;
|
||||
tolerance 1e-07;
|
||||
relTol 0;
|
||||
};
|
||||
|
||||
U PBiCG
|
||||
U
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DILU;
|
||||
}
|
||||
solver BiCGStab;
|
||||
preconditioner DILU;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
tolerance 1e-05;
|
||||
relTol 0;
|
||||
};
|
||||
|
||||
cellMotionUx PCG
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DIC;
|
||||
}
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
tolerance 1e-08;
|
||||
tolerance 1e-07;
|
||||
relTol 0;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
PISO
|
||||
{
|
||||
nCorrectors 4;
|
||||
|
|
|
@ -5,5 +5,5 @@
|
|||
|
||||
cleanCase
|
||||
rm -rf VTK
|
||||
rm constant/polyMesh/boundary
|
||||
rm -f constant/polyMesh/boundary
|
||||
rm -rf constant/polyMesh/sets
|
|
@ -62,7 +62,7 @@ functions
|
|||
phi phi;
|
||||
|
||||
// Where to load it from (if not already in solver)
|
||||
functionObjectLibs ("libsampling.so");
|
||||
functionObjectLibs ("libcheckFunctionObjects.so");
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
@ -18,12 +18,10 @@ FoamFile
|
|||
|
||||
solvers
|
||||
{
|
||||
pcorr BiCGStab
|
||||
pcorr
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DILU;
|
||||
}
|
||||
solver BiCGStab;
|
||||
preconditioner DILU;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
|
@ -31,12 +29,10 @@ solvers
|
|||
relTol 0;
|
||||
};
|
||||
|
||||
p BiCGStab
|
||||
p
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DILU;
|
||||
}
|
||||
solver CG;
|
||||
preconditioner Cholesky;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
|
@ -44,12 +40,10 @@ solvers
|
|||
relTol 0.0;
|
||||
};
|
||||
|
||||
pFinal BiCGStab
|
||||
pFinal
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DILU;
|
||||
}
|
||||
solver CG;
|
||||
preconditioner Cholesky;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
|
@ -57,12 +51,10 @@ solvers
|
|||
relTol 0;
|
||||
};
|
||||
|
||||
U BiCGStab
|
||||
U
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DILU;
|
||||
}
|
||||
solver BiCGStab;
|
||||
preconditioner DILU;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
|
@ -71,6 +63,7 @@ solvers
|
|||
};
|
||||
}
|
||||
|
||||
|
||||
PISO
|
||||
{
|
||||
nCorrectors 4;
|
||||
|
|
|
@ -25,7 +25,7 @@ License
|
|||
Author
|
||||
Frank Bos, TU Delft. All rights reserved.
|
||||
|
||||
\*----------------------------------------------------------------------------*/
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "RBFMotionFunctionObject.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
@ -56,8 +56,7 @@ Foam::RBFMotionFunctionObject::RBFMotionFunctionObject
|
|||
const dictionary& dict
|
||||
)
|
||||
:
|
||||
functionObject(),
|
||||
name_(name),
|
||||
functionObject(name),
|
||||
time_(t),
|
||||
regionName_(polyMesh::defaultRegion),
|
||||
rotationAmplitude_(readScalar(dict.lookup("rotationAmplitude"))),
|
||||
|
|
|
@ -58,9 +58,6 @@ class RBFMotionFunctionObject
|
|||
{
|
||||
// Private data
|
||||
|
||||
//- Name
|
||||
const word name_;
|
||||
|
||||
//- Reference to main object registry
|
||||
const Time& time_;
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.5-dev |
|
||||
| \\ / A nd | Revision: 1708 |
|
||||
| \\/ M anipulation | Web: http://www.OpenFOAM.org |
|
||||
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
|
||||
| \\ / O peration | Version: 1.6-ext |
|
||||
| \\ / A nd | Web: www.extend-project.de |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
|
|
|
@ -18,32 +18,29 @@ FoamFile
|
|||
|
||||
solvers
|
||||
{
|
||||
p CG
|
||||
p
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DIC;
|
||||
}
|
||||
solver CG;
|
||||
preconditioner DIC;
|
||||
|
||||
tolerance 1e-06;
|
||||
relTol 0;
|
||||
};
|
||||
|
||||
pFinal CG
|
||||
pFinal
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DIC;
|
||||
}
|
||||
solver CG;
|
||||
preconditioner DIC;
|
||||
|
||||
tolerance 1e-06;
|
||||
relTol 0;
|
||||
};
|
||||
|
||||
U BiCGStab
|
||||
U
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DILU;
|
||||
}
|
||||
solver BiCGStab;
|
||||
preconditioner DILU;
|
||||
|
||||
tolerance 1e-7;
|
||||
relTol 0;
|
||||
};
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
|
||||
| \\ / O peration | Version: 1.6-ext |
|
||||
| \\ / A nd | Web: www.extend-project.de |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
|
@ -10,6 +10,7 @@ FoamFile
|
|||
version 2.0;
|
||||
format binary;
|
||||
class polyBoundaryMesh;
|
||||
location "constant/polyMesh";
|
||||
object boundary;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
|
|
@ -16,29 +16,33 @@ FoamFile
|
|||
|
||||
solvers
|
||||
{
|
||||
pcorr PCG
|
||||
pcorr
|
||||
{
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
tolerance 1e-02;
|
||||
relTol 0;
|
||||
};
|
||||
|
||||
p PCG
|
||||
p
|
||||
{
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
tolerance 1e-06;
|
||||
relTol 0.05;
|
||||
};
|
||||
|
||||
pFinal PCG
|
||||
pFinal
|
||||
{
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
tolerance 1e-06;
|
||||
relTol 0;
|
||||
};
|
||||
|
||||
U PBiCG
|
||||
U
|
||||
{
|
||||
solver PBiCG;
|
||||
preconditioner DILU;
|
||||
tolerance 1e-05;
|
||||
relTol 0;
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object tetFemSolution;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
solvers
|
||||
{
|
||||
motionU ICCG 1e-06 0;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
8
tutorials/incompressible/icoDyMFoam/movingConeMotion/Allclean
Executable file
8
tutorials/incompressible/icoDyMFoam/movingConeMotion/Allclean
Executable file
|
@ -0,0 +1,8 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
rm -f 0/motionGamma
|
||||
( cd setMotionMovingCone ; wclean )
|
11
tutorials/incompressible/icoDyMFoam/movingConeMotion/Allrun
Executable file
11
tutorials/incompressible/icoDyMFoam/movingConeMotion/Allrun
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
# Source tutorial run functions
|
||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||
|
||||
# Get application name from directory
|
||||
application="icoDyMFoam"
|
||||
|
||||
compileApplication setMotionMovingCone
|
||||
runApplication setMotionMovingCone
|
||||
runApplication blockMesh
|
||||
runApplication $application
|
|
@ -1,84 +1,70 @@
|
|||
/*---------------------------------------------------------------------------*\
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.4.1 |
|
||||
| \\ / A nd | Web: http://www.openfoam.org |
|
||||
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
|
||||
| \\ / O peration | Version: 1.6-ext |
|
||||
| \\ / A nd | Web: www.extend-project.de |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
|
||||
root "/home/hjasak/OpenFOAM/OpenFOAM-1.4.1/tutorials/icoDyMFoam";
|
||||
case "movingConeMotion";
|
||||
instance "constant";
|
||||
local "polyMesh";
|
||||
|
||||
class polyBoundaryMesh;
|
||||
location "constant/polyMesh";
|
||||
object boundary;
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
8
|
||||
(
|
||||
movingWall
|
||||
{
|
||||
movingWall
|
||||
{
|
||||
type wall;
|
||||
nFaces 85;
|
||||
startFace 3665;
|
||||
}
|
||||
|
||||
farFieldMoving
|
||||
{
|
||||
}
|
||||
farFieldMoving
|
||||
{
|
||||
type patch;
|
||||
nFaces 50;
|
||||
startFace 3750;
|
||||
}
|
||||
|
||||
fixedWall
|
||||
{
|
||||
}
|
||||
fixedWall
|
||||
{
|
||||
type wall;
|
||||
nFaces 35;
|
||||
startFace 3800;
|
||||
}
|
||||
|
||||
axis
|
||||
{
|
||||
}
|
||||
axis
|
||||
{
|
||||
type empty;
|
||||
nFaces 0;
|
||||
startFace 3835;
|
||||
}
|
||||
|
||||
left
|
||||
{
|
||||
}
|
||||
left
|
||||
{
|
||||
type patch;
|
||||
nFaces 30;
|
||||
startFace 3835;
|
||||
}
|
||||
|
||||
farField
|
||||
{
|
||||
}
|
||||
farField
|
||||
{
|
||||
type patch;
|
||||
nFaces 35;
|
||||
startFace 3865;
|
||||
}
|
||||
|
||||
back
|
||||
{
|
||||
}
|
||||
back
|
||||
{
|
||||
type wedge;
|
||||
nFaces 1900;
|
||||
startFace 3900;
|
||||
}
|
||||
|
||||
front
|
||||
{
|
||||
}
|
||||
front
|
||||
{
|
||||
type wedge;
|
||||
nFaces 1900;
|
||||
startFace 5800;
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
// ************************************************************************* //
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/*---------------------------------------------------------------------------*\
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.4 |
|
||||
|
@ -10,12 +10,6 @@ FoamFile
|
|||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
|
||||
root "";
|
||||
case "";
|
||||
instance "";
|
||||
local "";
|
||||
|
||||
class dictionary;
|
||||
object fvSolution;
|
||||
}
|
||||
|
@ -24,12 +18,10 @@ FoamFile
|
|||
|
||||
solvers
|
||||
{
|
||||
pcorr PCG
|
||||
pcorr
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DIC;
|
||||
}
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
|
@ -37,12 +29,10 @@ solvers
|
|||
relTol 0;
|
||||
};
|
||||
|
||||
p PCG
|
||||
p
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DIC;
|
||||
}
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
|
@ -50,12 +40,10 @@ solvers
|
|||
relTol 0.05;
|
||||
};
|
||||
|
||||
pFinal PCG
|
||||
pFinal
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DIC;
|
||||
}
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
|
@ -63,33 +51,19 @@ solvers
|
|||
relTol 0;
|
||||
};
|
||||
|
||||
U PBiCG
|
||||
U
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DILU;
|
||||
}
|
||||
solver PBiCG;
|
||||
preconditioner DILU;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
tolerance 1e-05;
|
||||
relTol 0;
|
||||
};
|
||||
|
||||
cellMotionUx PCG
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DIC;
|
||||
}
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
tolerance 1e-08;
|
||||
relTol 0;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
PISO
|
||||
{
|
||||
nCorrectors 2;
|
||||
|
|
|
@ -18,8 +18,9 @@ FoamFile
|
|||
|
||||
solvers
|
||||
{
|
||||
motionU amgSolver
|
||||
motionU
|
||||
{
|
||||
solver amgSolver;
|
||||
cycle W-cycle;
|
||||
policy AAMG;
|
||||
nPreSweeps 0;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.5-dev |
|
||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
|
||||
| \\ / O peration | Version: 1.6-ext |
|
||||
| \\ / A nd | Web: www.extend-project.de |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
|
|
|
@ -18,12 +18,10 @@ FoamFile
|
|||
|
||||
solvers
|
||||
{
|
||||
pcorr PCG
|
||||
pcorr
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DIC;
|
||||
}
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
|
@ -31,12 +29,10 @@ solvers
|
|||
relTol 0;
|
||||
};
|
||||
|
||||
p PCG
|
||||
p
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DIC;
|
||||
}
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
|
@ -44,12 +40,10 @@ solvers
|
|||
relTol 0.0;
|
||||
};
|
||||
|
||||
pFinal PCG
|
||||
pFinal
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DIC;
|
||||
}
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
|
@ -57,12 +51,10 @@ solvers
|
|||
relTol 0;
|
||||
};
|
||||
|
||||
U PBiCG
|
||||
U
|
||||
{
|
||||
preconditioner
|
||||
{
|
||||
type DILU;
|
||||
}
|
||||
solver PBiCG;
|
||||
preconditioner DILU;
|
||||
|
||||
minIter 0;
|
||||
maxIter 1000;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
|
||||
| \\ / O peration | Version: 1.6-ext |
|
||||
| \\ / A nd | Web: www.extend-project.de |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
|
@ -10,6 +10,7 @@ FoamFile
|
|||
version 2.0;
|
||||
format ascii;
|
||||
class polyBoundaryMesh;
|
||||
location "constant/polyMesh";
|
||||
object boundary;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
|
||||
| \\ / O peration | Version: 1.6-ext |
|
||||
| \\ / A nd | Web: www.extend-project.de |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
|
@ -10,6 +10,7 @@ FoamFile
|
|||
version 2.0;
|
||||
format ascii;
|
||||
class polyBoundaryMesh;
|
||||
location "constant/polyMesh";
|
||||
object boundary;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
|
||||
| \\ / O peration | Version: 1.6-ext |
|
||||
| \\ / A nd | Web: www.extend-project.de |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
|
@ -10,6 +10,7 @@ FoamFile
|
|||
version 2.0;
|
||||
format ascii;
|
||||
class polyBoundaryMesh;
|
||||
location "constant/polyMesh";
|
||||
object boundary;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 1.5 |
|
||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
|
||||
| \\ / O peration | Version: 1.6-ext |
|
||||
| \\ / A nd | Web: www.extend-project.de |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
|
@ -10,6 +10,7 @@ FoamFile
|
|||
version 2.0;
|
||||
format ascii;
|
||||
class polyBoundaryMesh;
|
||||
location "constant/polyMesh";
|
||||
object boundary;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
|
|
@ -3,7 +3,5 @@
|
|||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
rm -R -f sets
|
||||
echo "done!"
|
||||
|
||||
cleanCase
|
||||
rm -rf sets
|
||||
|
|
|
@ -3,6 +3,5 @@
|
|||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
echo "done!"
|
||||
cleanCase
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
rm -R -f sets
|
||||
echo "done!"
|
||||
cleanCase
|
||||
rm -rf sets
|
||||
|
||||
|
|
|
@ -3,6 +3,5 @@
|
|||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
echo "done!"
|
||||
cleanCase
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
rm -R -f sets
|
||||
echo "done!"
|
||||
cleanCase
|
||||
rm -rf sets
|
||||
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
echo "done!"
|
||||
cleanCase
|
||||
echo "done!"
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
rm -R -f sets
|
||||
echo "done!"
|
||||
cleanCase
|
||||
rm -R -f sets
|
||||
|
||||
|
|
|
@ -3,6 +3,5 @@
|
|||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
echo "done!"
|
||||
cleanCase
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
rm -R -f sets
|
||||
echo "done!"
|
||||
cleanCase
|
||||
rm -Rf sets
|
||||
|
||||
|
|
|
@ -3,6 +3,5 @@
|
|||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
echo "done!"
|
||||
cleanCase
|
||||
|
||||
|
|
|
@ -3,6 +3,5 @@
|
|||
# Source tutorial clean functions
|
||||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
echo "done!"
|
||||
cleanCase
|
||||
|
||||
|
|
|
@ -4,5 +4,4 @@
|
|||
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
|
||||
cleanCase
|
||||
echo "done!"
|
||||
|
||||
|
|
Reference in a new issue