Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev

Added softlinks for:

	tutorials/mesh/snappyHexMesh/iglooWithFridges
	tutorials/mesh/snappyHexMesh/motorBike
This commit is contained in:
mattijs
2009-07-07 16:02:52 +01:00
86 changed files with 2467 additions and 383 deletions

View File

@ -23,7 +23,7 @@ INCLUDE_DIRECTORIES(
)
ADD_DEFINITIONS(
-D$ENV{WM_PRECISION_OPTION}
-DWM_$ENV{WM_PRECISION_OPTION}
)
# Set output library destination to plugin folder

View File

@ -22,7 +22,7 @@ INCLUDE_DIRECTORIES(
$ENV{ParaView_INST_DIR}/include
../vtkFoam/lnInclude
)
ADD_DEFINITIONS(-D$ENV{WM_PRECISION_OPTION})
ADD_DEFINITIONS(-DWM_$ENV{WM_PRECISION_OPTION})
#-----------------------------------------------------------------------------
# Most users should not need to change anything below this line.

View File

@ -64,8 +64,8 @@ cleanCase ()
rm -rf constant/polyMesh/{allOwner*,cell*,face*,meshModifiers*} \
constant/polyMesh/{owner*,neighbour*,point*,edge*} \
constant/polyMesh/{cellLevel,pointLevel,refinementHistory,surfaceIndex} \
constant/{cellLevel,pointLevel} \
constant/polyMesh/{cellLevel*,pointLevel*,refinementHistory*,surfaceIndex*} \
constant/{cellLevel*,pointLevel*} \
constant/polyMesh/sets/ \
> /dev/null 2>&1

View File

@ -68,7 +68,7 @@ void* Foam::sigFpe::my_malloc_hook(size_t size, const void *caller)
result = malloc (size);
// initialize to signalling nan
# ifdef SP
# ifdef WM_SP
const uint32_t sNAN = 0x7ff7fffflu;

View File

@ -27,7 +27,7 @@ Typedef
Description
Single floating point number identical to float or double depending on
whether SP or DP is defined.
whether WM_SP or WM_DP is defined.
SourceFiles
scalar.C
@ -42,7 +42,7 @@ SourceFiles
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#if defined(SP)
#if defined(WM_SP)
// Define scalar as a float
@ -60,7 +60,7 @@ namespace Foam
scalar readScalar(Istream& is);
}
#elif defined(DP)
#elif defined(WM_DP)
// Define scalar as a double

View File

@ -34,9 +34,9 @@ License
#include <cstdlib>
#include <csignal>
#if defined(SP)
#if defined(WM_SP)
# define MPI_SCALAR MPI_FLOAT
#elif defined(DP)
#elif defined(WM_DP)
# define MPI_SCALAR MPI_DOUBLE
#endif

View File

@ -1,7 +1,7 @@
ParMGridGen = $(WM_THIRD_PARTY_DIR)/ParMGridGen-1.0
TYPE_REAL=
#if defined(SP)
#if defined(WM_SP)
TYPE_REAL=-DTYPE_REAL
#endif

View File

@ -173,9 +173,32 @@ void Foam::KinematicCloud<ParcelType>::resetSourceTerms()
}
template<class ParcelType>
void Foam::KinematicCloud<ParcelType>::preEvolve()
{
this->dispersion().cacheFields(true);
}
template<class ParcelType>
void Foam::KinematicCloud<ParcelType>::postEvolve()
{
if (debug)
{
this->writePositions();
}
this->dispersion().cacheFields(false);
this->postProcessing().post();
}
template<class ParcelType>
void Foam::KinematicCloud<ParcelType>::evolve()
{
preEvolve();
autoPtr<interpolation<scalar> > rhoInterpolator =
interpolation<scalar>::New
(
@ -209,11 +232,6 @@ void Foam::KinematicCloud<ParcelType>::evolve()
this->injection().inject(td);
if (debug)
{
this->writePositions();
}
if (coupled_)
{
resetSourceTerms();
@ -221,7 +239,7 @@ void Foam::KinematicCloud<ParcelType>::evolve()
Cloud<ParcelType>::move(td);
this->postProcessing().post();
postEvolve();
}

View File

@ -184,6 +184,15 @@ protected:
DimensionedField<vector, volMesh> UTrans_;
// Cloud evolution functions
//- Pre-evolve
void preEvolve();
//- Post-evolve
void postEvolve();
public:
// Constructors

View File

@ -175,9 +175,25 @@ void Foam::ReactingCloud<ParcelType>::resetSourceTerms()
}
template<class ParcelType>
void Foam::ReactingCloud<ParcelType>::preEvolve()
{
ThermoCloud<ParcelType>::preEvolve();
}
template<class ParcelType>
void Foam::ReactingCloud<ParcelType>::postEvolve()
{
ThermoCloud<ParcelType>::postEvolve();
}
template<class ParcelType>
void Foam::ReactingCloud<ParcelType>::evolve()
{
preEvolve();
const volScalarField& T = this->carrierThermo().T();
const volScalarField cp = this->carrierThermo().Cp();
const volScalarField& p = this->carrierThermo().p();
@ -233,11 +249,6 @@ void Foam::ReactingCloud<ParcelType>::evolve()
this->injection().inject(td);
if (debug)
{
this->writePositions();
}
if (this->coupled())
{
resetSourceTerms();
@ -245,7 +256,7 @@ void Foam::ReactingCloud<ParcelType>::evolve()
Cloud<ParcelType>::move(td);
this->postProcessing().post();
postEvolve();
}

View File

@ -132,6 +132,15 @@ protected:
);
// Cloud evolution functions
//- Pre-evolve
void preEvolve();
//- Post-evolve
void postEvolve();
public:
// Constructors

View File

@ -129,9 +129,25 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::resetSourceTerms()
}
template<class ParcelType>
void Foam::ReactingMultiphaseCloud<ParcelType>::preEvolve()
{
ReactingCloud<ParcelType>::preEvolve();
}
template<class ParcelType>
void Foam::ReactingMultiphaseCloud<ParcelType>::postEvolve()
{
ReactingCloud<ParcelType>::postEvolve();
}
template<class ParcelType>
void Foam::ReactingMultiphaseCloud<ParcelType>::evolve()
{
preEvolve();
const volScalarField& T = this->carrierThermo().T();
const volScalarField cp = this->carrierThermo().Cp();
const volScalarField& p = this->carrierThermo().p();
@ -187,11 +203,6 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::evolve()
this->injection().inject(td);
if (debug)
{
this->writePositions();
}
if (this->coupled())
{
resetSourceTerms();
@ -199,7 +210,7 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::evolve()
Cloud<ParcelType>::move(td);
this->postProcessing().post();
postEvolve();
}

View File

@ -68,7 +68,7 @@ class ReactingMultiphaseCloud
public ReactingCloud<ParcelType>,
public reactingMultiphaseCloud
{
// Private Member Functions
// Private member functions
//- Disallow default bitwise copy construct
ReactingMultiphaseCloud(const ReactingMultiphaseCloud&);
@ -112,6 +112,17 @@ protected:
scalar dMassSurfaceReaction_;
// Protected member functions
// Cloud evolution functions
//- Pre-evolve
void preEvolve();
//- Post-evolve
void postEvolve();
public:
// Constructors

View File

@ -142,9 +142,25 @@ void Foam::ThermoCloud<ParcelType>::resetSourceTerms()
}
template<class ParcelType>
void Foam::ThermoCloud<ParcelType>::preEvolve()
{
KinematicCloud<ParcelType>::preEvolve();
}
template<class ParcelType>
void Foam::ThermoCloud<ParcelType>::postEvolve()
{
KinematicCloud<ParcelType>::postEvolve();
}
template<class ParcelType>
void Foam::ThermoCloud<ParcelType>::evolve()
{
preEvolve();
const volScalarField& T = carrierThermo_.T();
const volScalarField cp = carrierThermo_.Cp();
@ -192,11 +208,6 @@ void Foam::ThermoCloud<ParcelType>::evolve()
this->injection().inject(td);
if (debug)
{
this->writePositions();
}
if (this->coupled())
{
resetSourceTerms();
@ -204,7 +215,7 @@ void Foam::ThermoCloud<ParcelType>::evolve()
Cloud<ParcelType>::move(td);
this->postProcessing().post();
postEvolve();
}

View File

@ -118,6 +118,17 @@ protected:
DimensionedField<scalar, volMesh> hcTrans_;
// Protected member functions
// Cloud evolution functions
//- Pre-evolve
void preEvolve();
//- Post-evolve
void postEvolve();
public:
// Constructors

View File

@ -37,10 +37,11 @@ License
#include "KinematicLookupTableInjection.H"
#include "ManualInjection.H"
#include "NoInjection.H"
#include "PatchInjection.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeParcelInjectionModels(ParcelType) \
#define makeParcelInjectionModels(ParcelType) \
\
makeInjectionModel(KinematicCloud<ParcelType>); \
\
@ -79,6 +80,12 @@ License
NoInjection, \
KinematicCloud, \
ParcelType \
); \
makeInjectionModelType \
( \
PatchInjection, \
KinematicCloud, \
ParcelType \
);

View File

@ -37,6 +37,7 @@ License
#include "FieldActivatedInjection.H"
#include "ManualInjection.H"
#include "NoInjection.H"
#include "PatchInjection.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -100,6 +101,13 @@ License
ParcelType, \
ThermoType \
); \
makeInjectionModelThermoType \
( \
PatchInjection, \
KinematicCloud, \
ParcelType, \
ThermoType \
); \
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -37,6 +37,7 @@ License
#include "FieldActivatedInjection.H"
#include "ManualInjection.H"
#include "NoInjection.H"
#include "PatchInjection.H"
#include "ReactingLookupTableInjection.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -102,6 +103,13 @@ License
ThermoType \
); \
makeInjectionModelThermoType \
( \
PatchInjection, \
KinematicCloud, \
ParcelType, \
ThermoType \
); \
makeInjectionModelThermoType \
( \
ReactingLookupTableInjection, \
KinematicCloud, \

View File

@ -121,6 +121,9 @@ public:
//- Flag to indicate whether model activates injection model
virtual bool active() const = 0;
//- Cache carrier fields
virtual void cacheFields(const bool store) = 0;
//- Update (disperse particles)
virtual vector update
(

View File

@ -42,7 +42,11 @@ Foam::DispersionRASModel<CloudType>::DispersionRASModel
(
"RASProperties"
)
)
),
kPtr_(NULL),
ownK_(false),
epsilonPtr_(NULL),
ownEpsilon_(false)
{}
@ -50,7 +54,56 @@ Foam::DispersionRASModel<CloudType>::DispersionRASModel
template<class CloudType>
Foam::DispersionRASModel<CloudType>::~DispersionRASModel()
{}
{
cacheFields(false);
}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class CloudType>
void Foam::DispersionRASModel<CloudType>::cacheFields(const bool store)
{
if (store)
{
tmp<volScalarField> tk = this->turbulence().k();
if (tk.isTmp())
{
kPtr_ = tk.ptr();
ownK_ = true;
}
else
{
kPtr_ = tk.operator->();
ownK_ = false;
}
tmp<volScalarField> tepsilon = this->turbulence().epsilon();
if (tepsilon.isTmp())
{
epsilonPtr_ = tepsilon.ptr();
ownEpsilon_ = true;
}
else
{
epsilonPtr_ = tepsilon.operator->();
ownEpsilon_ = false;
}
}
else
{
if (ownK_ && kPtr_)
{
delete kPtr_;
ownK_ = false;
}
if (ownEpsilon_ && epsilonPtr_)
{
delete epsilonPtr_;
ownEpsilon_ = false;
}
}
}
// ************************************************************************* //

View File

@ -50,11 +50,27 @@ class DispersionRASModel
:
public DispersionModel<CloudType>
{
// Private data
protected:
// Protected data
//- Reference to the compressible turbulence model
const compressible::RASModel& turbulence_;
// Locally cached turbulence fields
//- Turbulence k
const volScalarField* kPtr_;
//- Take ownership of the k field
bool ownK_;
//- Turbulence epsilon
const volScalarField* epsilonPtr_;
//- Take ownership of the epsilon field
bool ownEpsilon_;
public:
@ -78,6 +94,9 @@ public:
// Member Functions
//- Cache carrier fields
virtual void cacheFields(const bool store);
//- Return const access to the turbulence model
const compressible::RASModel& turbulence() const
{

View File

@ -35,7 +35,8 @@ Foam::GradientDispersionRAS<CloudType>::GradientDispersionRAS
CloudType& owner
)
:
DispersionRASModel<CloudType>(dict, owner)
DispersionRASModel<CloudType>(dict, owner),
gradkPtr_(NULL)
{}
@ -43,7 +44,9 @@ Foam::GradientDispersionRAS<CloudType>::GradientDispersionRAS
template<class CloudType>
Foam::GradientDispersionRAS<CloudType>::~GradientDispersionRAS()
{}
{
cacheFields(false);
}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
@ -55,6 +58,25 @@ bool Foam::GradientDispersionRAS<CloudType>::active() const
}
template<class CloudType>
void Foam::GradientDispersionRAS<CloudType>::cacheFields(const bool store)
{
DispersionRASModel<CloudType>::cacheFields(store);
if (store)
{
gradkPtr_ = fvc::grad(*this->kPtr_).ptr();
}
else
{
if (gradkPtr_)
{
delete gradkPtr_;
}
}
}
template<class CloudType>
Foam::vector Foam::GradientDispersionRAS<CloudType>::update
(
@ -68,9 +90,9 @@ Foam::vector Foam::GradientDispersionRAS<CloudType>::update
{
const scalar cps = 0.16432;
const volScalarField& k = this->turbulence().k();
const volScalarField& epsilon = this->turbulence().epsilon();
const volVectorField gradk = fvc::grad(k);
const volScalarField& k = *this->kPtr_;
const volScalarField& epsilon = *this->epsilonPtr_;
const volVectorField& gradk = *this->gradkPtr_;
const scalar UrelMag = mag(U - Uc - UTurb);

View File

@ -51,6 +51,14 @@ class GradientDispersionRAS
:
public DispersionRASModel<CloudType>
{
protected:
// Locally cached turbulence fields
//- Gradient of k
const volVectorField* gradkPtr_;
public:
//- Runtime type information
@ -76,8 +84,11 @@ public:
//- Flag to indicate whether model activates injection model
bool active() const;
//- Cache carrier fields
virtual void cacheFields(const bool store);
//- Update (disperse particles)
vector update
virtual vector update
(
const scalar dt,
const label celli,

View File

@ -55,6 +55,13 @@ bool Foam::NoDispersion<CloudType>::active() const
}
template<class CloudType>
void Foam::NoDispersion<CloudType>::cacheFields(const bool)
{
// do nothing
}
template<class CloudType>
Foam::vector Foam::NoDispersion<CloudType>::update
(

View File

@ -72,10 +72,13 @@ public:
// Member Functions
//- Flag to indicate whether model activates injection model
bool active() const;
virtual bool active() const;
//- Cache carrier fields
virtual void cacheFields(const bool store);
//- Update (disperse particles)
vector update
virtual vector update
(
const scalar dt,
const label celli,

View File

@ -68,8 +68,8 @@ Foam::vector Foam::StochasticDispersionRAS<CloudType>::update
{
const scalar cps = 0.16432;
const volScalarField& k = this->turbulence().k();
const volScalarField& epsilon = this->turbulence().epsilon();
const volScalarField& k = *this->kPtr_;
const volScalarField& epsilon = *this->epsilonPtr_;
const scalar UrelMag = mag(U - Uc - UTurb);

View File

@ -74,10 +74,10 @@ public:
// Member Functions
//- Flag to indicate whether model activates injection model
bool active() const;
virtual bool active() const;
//- Update (disperse particles)
vector update
virtual vector update
(
const scalar dt,
const label celli,

View File

@ -138,7 +138,7 @@ void Foam::ManualInjection<CloudType>::setPositionAndCell
(
const label parcelI,
const label,
const scalar time,
const scalar,
vector& position,
label& cellOwner
)

View File

@ -0,0 +1,206 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd.
\\/ 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 "PatchInjection.H"
#include "DataEntry.H"
#include "pdf.H"
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
template<class CloudType>
Foam::label Foam::PatchInjection<CloudType>::parcelsToInject
(
const scalar time0,
const scalar time1
) const
{
if ((time0 >= 0.0) && (time0 < duration_))
{
return round(fraction_*(time1 - time0)*parcelsPerSecond_);
}
else
{
return 0;
}
}
template<class CloudType>
Foam::scalar Foam::PatchInjection<CloudType>::volumeToInject
(
const scalar time0,
const scalar time1
) const
{
if ((time0 >= 0.0) && (time0 < duration_))
{
return fraction_*volumeFlowRate_().integrate(time0, time1);
}
else
{
return 0.0;
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class CloudType>
Foam::PatchInjection<CloudType>::PatchInjection
(
const dictionary& dict,
CloudType& owner
)
:
InjectionModel<CloudType>(dict, owner, typeName),
patchName_(this->coeffDict().lookup("patchName")),
duration_(readScalar(this->coeffDict().lookup("duration"))),
parcelsPerSecond_
(
readScalar(this->coeffDict().lookup("parcelsPerSecond"))
),
U0_(this->coeffDict().lookup("U0")),
volumeFlowRate_
(
DataEntry<scalar>::New
(
"volumeFlowRate",
this->coeffDict()
)
),
parcelPDF_
(
pdf::New
(
this->coeffDict().subDict("parcelPDF"),
owner.rndGen()
)
),
cellOwners_(),
fraction_(1.0)
{
label patchId = owner.mesh().boundaryMesh().findPatchID(patchName_);
if (patchId < 0)
{
FatalErrorIn
(
"PatchInjection<CloudType>::PatchInjection"
"("
"const dictionary&, "
"CloudType&"
")"
) << "Requested patch " << patchName_ << " not found" << nl
<< "Available patches are: " << owner.mesh().boundaryMesh().names()
<< nl << exit(FatalError);
}
const polyPatch& patch = owner.mesh().boundaryMesh()[patchId];
cellOwners_ = patch.faceCells();
label patchSize = cellOwners_.size();
label totalPatchSize = patchSize;
reduce(totalPatchSize, sumOp<scalar>());
fraction_ = patchSize/totalPatchSize;
// Set total volume to inject
this->volumeTotal_ = fraction_*volumeFlowRate_().integrate(0.0, duration_);
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
template<class CloudType>
Foam::PatchInjection<CloudType>::~PatchInjection()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class CloudType>
bool Foam::PatchInjection<CloudType>::active() const
{
return true;
}
template<class CloudType>
Foam::scalar Foam::PatchInjection<CloudType>::timeEnd() const
{
return this->SOI_ + duration_;
}
template<class CloudType>
void Foam::PatchInjection<CloudType>::setPositionAndCell
(
const label,
const label,
const scalar,
vector& position,
label& cellOwner
)
{
label cellI = this->owner().rndGen().integer(0, cellOwners_.size() - 1);
cellOwner = cellOwners_[cellI];
position = this->owner().mesh().C()[cellOwner];
}
template<class CloudType>
void Foam::PatchInjection<CloudType>::setProperties
(
const label,
const label,
const scalar,
typename CloudType::parcelType& parcel
)
{
// set particle velocity
parcel.U() = U0_;
// set particle diameter
parcel.d() = parcelPDF_->sample();
}
template<class CloudType>
bool Foam::PatchInjection<CloudType>::fullyDescribed() const
{
return false;
}
template<class CloudType>
bool Foam::PatchInjection<CloudType>::validInjection(const label)
{
return true;
}
// ************************************************************************* //

View File

@ -0,0 +1,187 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2009-2009 OpenCFD Ltd.
\\/ 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::PatchInjection
Description
Patch injection
- User specifies
- Total mass to inject
- Name of patch
- Injection duration
- Initial parcel velocity
- Injection volume flow rate
- Parcel diameters obtained by PDF model
- Parcels injected at cell centres adjacent to patch
SourceFiles
PatchInjection.C
\*---------------------------------------------------------------------------*/
#ifndef PatchInjection_H
#define PatchInjection_H
#include "InjectionModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
template<class Type>
class DataEntry;
class pdf;
/*---------------------------------------------------------------------------*\
Class PatchInjection Declaration
\*---------------------------------------------------------------------------*/
template<class CloudType>
class PatchInjection
:
public InjectionModel<CloudType>
{
// Private data
//- Name of patch
const word patchName_;
//- Injection duration [s]
const scalar duration_;
//- Number of parcels to introduce per second []
const label parcelsPerSecond_;
//- Initial parcel velocity [m/s]
const vector U0_;
//- Volume flow rate of parcels to introduce relative to SOI [m^3/s]
const autoPtr<DataEntry<scalar> > volumeFlowRate_;
//- Parcel size PDF model
const autoPtr<pdf> parcelPDF_;
//- Cell owners
labelList cellOwners_;
//- Fraction of injection controlled by this processor
scalar fraction_;
protected:
// Protected member functions
//- Number of parcels to introduce over the time step relative to SOI
label parcelsToInject
(
const scalar time0,
const scalar time1
) const;
//- Volume of parcels to introduce over the time step relative to SOI
scalar volumeToInject
(
const scalar time0,
const scalar time1
) const;
public:
//- Runtime type information
TypeName("PatchInjection");
// Constructors
//- Construct from dictionary
PatchInjection
(
const dictionary& dict,
CloudType& owner
);
//- Destructor
virtual ~PatchInjection();
// Member Functions
//- Flag to indicate whether model activates injection model
bool active() const;
//- Return the end-of-injection time
scalar timeEnd() const;
// Injection geometry
//- Set the injection position and owner cell
virtual void setPositionAndCell
(
const label parcelI,
const label nParcels,
const scalar time,
vector& position,
label& cellOwner
);
virtual void setProperties
(
const label parcelI,
const label nParcels,
const scalar time,
typename CloudType::parcelType& parcel
);
//- Flag to identify whether model fully describes the parcel
virtual bool fullyDescribed() const;
//- Return flag to identify whether or not injection of parcelI is
// permitted
virtual bool validInjection(const label parcelI);
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository
# include "PatchInjection.C"
#endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -43,14 +43,14 @@ void Foam::hPsiMixtureThermo<MixtureType>::calculate()
forAll(TCells, celli)
{
const typename MixtureType::thermoType& mixture_ =
const typename MixtureType::thermoType& mixture =
this->cellMixture(celli);
TCells[celli] = mixture_.TH(hCells[celli], TCells[celli]);
psiCells[celli] = mixture_.psi(pCells[celli], TCells[celli]);
TCells[celli] = mixture.TH(hCells[celli], TCells[celli]);
psiCells[celli] = mixture.psi(pCells[celli], TCells[celli]);
muCells[celli] = mixture_.mu(TCells[celli]);
alphaCells[celli] = mixture_.alpha(TCells[celli]);
muCells[celli] = mixture.mu(TCells[celli]);
alphaCells[celli] = mixture.alpha(TCells[celli]);
}
forAll(T_.boundaryField(), patchi)
@ -68,28 +68,28 @@ void Foam::hPsiMixtureThermo<MixtureType>::calculate()
{
forAll(pT, facei)
{
const typename MixtureType::thermoType& mixture_ =
const typename MixtureType::thermoType& mixture =
this->patchFaceMixture(patchi, facei);
ph[facei] = mixture_.H(pT[facei]);
ph[facei] = mixture.H(pT[facei]);
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
pmu_[facei] = mixture_.mu(pT[facei]);
palpha_[facei] = mixture_.alpha(pT[facei]);
ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
pmu_[facei] = mixture.mu(pT[facei]);
palpha_[facei] = mixture.alpha(pT[facei]);
}
}
else
{
forAll(pT, facei)
{
const typename MixtureType::thermoType& mixture_ =
const typename MixtureType::thermoType& mixture =
this->patchFaceMixture(patchi, facei);
pT[facei] = mixture_.TH(ph[facei], pT[facei]);
pT[facei] = mixture.TH(ph[facei], pT[facei]);
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
pmu_[facei] = mixture_.mu(pT[facei]);
palpha_[facei] = mixture_.alpha(pT[facei]);
ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
pmu_[facei] = mixture.mu(pT[facei]);
palpha_[facei] = mixture.alpha(pT[facei]);
}
}
}

View File

@ -44,15 +44,15 @@ void Foam::hRhoMixtureThermo<MixtureType>::calculate()
forAll(TCells, celli)
{
const typename MixtureType::thermoType& mixture_ =
const typename MixtureType::thermoType& mixture =
this->cellMixture(celli);
TCells[celli] = mixture_.TH(hCells[celli], TCells[celli]);
psiCells[celli] = mixture_.psi(pCells[celli], TCells[celli]);
rhoCells[celli] = mixture_.rho(pCells[celli], TCells[celli]);
TCells[celli] = mixture.TH(hCells[celli], TCells[celli]);
psiCells[celli] = mixture.psi(pCells[celli], TCells[celli]);
rhoCells[celli] = mixture.rho(pCells[celli], TCells[celli]);
muCells[celli] = mixture_.mu(TCells[celli]);
alphaCells[celli] = mixture_.alpha(TCells[celli]);
muCells[celli] = mixture.mu(TCells[celli]);
alphaCells[celli] = mixture.alpha(TCells[celli]);
}
forAll(T_.boundaryField(), patchi)
@ -71,30 +71,30 @@ void Foam::hRhoMixtureThermo<MixtureType>::calculate()
{
forAll(pT, facei)
{
const typename MixtureType::thermoType& mixture_ =
const typename MixtureType::thermoType& mixture =
this->patchFaceMixture(patchi, facei);
ph[facei] = mixture_.H(pT[facei]);
ph[facei] = mixture.H(pT[facei]);
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
prho[facei] = mixture_.rho(pp[facei], pT[facei]);
pmu_[facei] = mixture_.mu(pT[facei]);
palpha_[facei] = mixture_.alpha(pT[facei]);
ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
prho[facei] = mixture.rho(pp[facei], pT[facei]);
pmu_[facei] = mixture.mu(pT[facei]);
palpha_[facei] = mixture.alpha(pT[facei]);
}
}
else
{
forAll(pT, facei)
{
const typename MixtureType::thermoType& mixture_ =
const typename MixtureType::thermoType& mixture =
this->patchFaceMixture(patchi, facei);
pT[facei] = mixture_.TH(ph[facei], pT[facei]);
pT[facei] = mixture.TH(ph[facei], pT[facei]);
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
prho[facei] = mixture_.rho(pp[facei], pT[facei]);
pmu_[facei] = mixture_.mu(pT[facei]);
palpha_[facei] = mixture_.alpha(pT[facei]);
ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
prho[facei] = mixture.rho(pp[facei], pT[facei]);
pmu_[facei] = mixture.mu(pT[facei]);
palpha_[facei] = mixture.alpha(pT[facei]);
}
}
}

View File

@ -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 |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,6 +10,7 @@ FoamFile
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -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 |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,6 +10,7 @@ FoamFile
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -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 |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,46 +10,43 @@ FoamFile
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
5
(
inlet
{
type patch;
nFaces 30;
startFace 24170;
}
outlet
{
type patch;
nFaces 57;
startFace 24200;
}
upperWall
{
type wall;
nFaces 223;
startFace 24257;
}
lowerWall
{
type wall;
nFaces 250;
startFace 24480;
}
frontAndBack
{
type empty;
nFaces 24450;
startFace 24730;
}
inlet
{
type patch;
nFaces 30;
startFace 24170;
}
outlet
{
type patch;
nFaces 57;
startFace 24200;
}
upperWall
{
type wall;
nFaces 223;
startFace 24257;
}
lowerWall
{
type wall;
nFaces 250;
startFace 24480;
}
frontAndBack
{
type empty;
nFaces 24450;
startFace 24730;
}
)
// ************************************************************************* //

View File

@ -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 |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,46 +10,43 @@ FoamFile
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
5
(
inlet
{
type patch;
nFaces 30;
startFace 24170;
}
outlet
{
type patch;
nFaces 57;
startFace 24200;
}
upperWall
{
type wall;
nFaces 223;
startFace 24257;
}
lowerWall
{
type wall;
nFaces 250;
startFace 24480;
}
frontAndBack
{
type empty;
nFaces 24450;
startFace 24730;
}
inlet
{
type patch;
nFaces 30;
startFace 24170;
}
outlet
{
type patch;
nFaces 57;
startFace 24200;
}
upperWall
{
type wall;
nFaces 223;
startFace 24257;
}
lowerWall
{
type wall;
nFaces 250;
startFace 24480;
}
frontAndBack
{
type empty;
nFaces 24450;
startFace 24730;
}
)
// ************************************************************************* //

View File

@ -1,17 +0,0 @@
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Get application name from directory
application="XiFoam"
cases=" \
pitzDaily \
pitzDaily3D
"
for i in $cases; do
blockMesh -case $i
$application -case $i
done

View File

@ -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 |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,46 +10,43 @@ FoamFile
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
5
(
inlet
{
type patch;
nFaces 30;
startFace 24170;
}
outlet
{
type patch;
nFaces 57;
startFace 24200;
}
upperWall
{
type wall;
nFaces 223;
startFace 24257;
}
lowerWall
{
type wall;
nFaces 250;
startFace 24480;
}
frontAndBack
{
type empty;
nFaces 24450;
startFace 24730;
}
inlet
{
type patch;
nFaces 30;
startFace 24170;
}
outlet
{
type patch;
nFaces 57;
startFace 24200;
}
upperWall
{
type wall;
nFaces 223;
startFace 24257;
}
lowerWall
{
type wall;
nFaces 250;
startFace 24480;
}
frontAndBack
{
type empty;
nFaces 24450;
startFace 24730;
}
)
// ************************************************************************* //

View File

@ -1,7 +1,7 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/

View File

@ -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 |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,32 +10,31 @@ FoamFile
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
3
(
piston
{
type wall;
nFaces 1326;
startFace 79522;
}
liner
{
type wall;
nFaces 2710;
startFace 80848;
}
cylinderHead
{
type wall;
nFaces 2184;
startFace 83558;
}
piston
{
type wall;
nFaces 1326;
startFace 79522;
}
liner
{
type wall;
nFaces 2710;
startFace 80848;
}
cylinderHead
{
type wall;
nFaces 2184;
startFace 83558;
}
)
// ************************************************************************* //

View File

@ -10,7 +10,7 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
object snappyHexMeshDict;
object autoHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,51 @@
/*--------------------------------*- 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 volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "initialConditions"
dimensions [0 1 -1 0 0 0 0];
internalField uniform $flowVelocity;
boundaryField
{
#include "fixedInlet"
outlet
{
type inletOutlet;
inletValue uniform (0 0 0);
value $internalField;
}
lowerWall
{
type fixedValue;
value uniform (20 0 0);
}
"motorBike_.*"
{
type fixedValue;
value uniform (0 0 0);
}
#include "frontBackUpperPatches"
}
// ************************************************************************* //

View File

@ -0,0 +1,15 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
inlet
{
type fixedValue;
value $internalField;
}
// ************************************************************************* //

View File

@ -0,0 +1,19 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
upperWall
{
type slip;
}
frontAndBack
{
type slip;
}
// ************************************************************************* //

View File

@ -0,0 +1,15 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
flowVelocity (20 0 0);
pressure 0;
turbulentKE 0.24;
turbulentOmega 1.78;
#inputMode merge
// ************************************************************************* //

View File

@ -2,44 +2,24 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object decomposeParDict;
class volScalarField;
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 6;
#include "initialConditions"
method hierarchical;
dimensions [0 2 -2 0 0 0 0];
simpleCoeffs
{
n ( 4 1 1 );
delta 0.001;
}
hierarchicalCoeffs
{
n ( 3 2 1 );
delta 0.001;
order xyz;
}
manualCoeffs
{
dataFile "cellDecomposition";
}
metisCoeffs
{
}
internalField uniform $turbulentKE;
#include "turbulentBoundaryField"
// ************************************************************************* //

View File

@ -0,0 +1,62 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
frontAndBack
{
type calculated;
value uniform 0;
}
inlet
{
type calculated;
value uniform 0;
}
outlet
{
type calculated;
value uniform 0;
}
lowerWall
{
type nutWallFunction;
value uniform 0;
}
upperWall
{
type calculated;
value uniform 0;
}
"motorBike_.*"
{
type nutWallFunction;
value uniform 0;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 volScalarField;
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "initialConditions"
dimensions [0 0 -1 0 0 0 0];
internalField uniform $turbulentOmega;
#include "turbulentBoundaryField"
// ************************************************************************* //

View File

@ -0,0 +1,49 @@
/*--------------------------------*- 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 volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "initialConditions"
dimensions [0 2 -2 0 0 0 0];
internalField uniform $pressure;
boundaryField
{
inlet
{
type zeroGradient;
}
outlet
{
type fixedValue;
value $internalField;
}
lowerWall
{
type zeroGradient;
}
"motorBike_.*"
{
type zeroGradient;
}
#include "frontBackUpperPatches"
}
// ************************************************************************* //

View File

@ -0,0 +1,33 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
boundaryField
{
#include "fixedInlet"
outlet
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
lowerWall
{
type kQRWallFunction;
}
"motorBike_.*"
{
type kQRWallFunction;
}
#include "frontBackUpperPatches"
}
// ************************************************************************* //

View File

@ -0,0 +1,8 @@
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication blockMesh
runApplication snappyHexMesh -overwrite
runApplication simpleFoam

View File

@ -0,0 +1,200 @@
/*--------------------------------*- 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 RASProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RASModel kOmegaSST;
turbulence on;
printCoeffs on;
laminarCoeffs
{
}
kEpsilonCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphaEps 0.76923;
}
RNGkEpsilonCoeffs
{
Cmu 0.0845;
C1 1.42;
C2 1.68;
alphak 1.39;
alphaEps 1.39;
eta0 4.38;
beta 0.012;
}
realizableKECoeffs
{
Cmu 0.09;
A0 4.0;
C2 1.9;
alphak 1;
alphaEps 0.833333;
}
kOmegaSSTCoeffs
{
alphaK1 0.85034;
alphaK2 1.0;
alphaOmega1 0.5;
alphaOmega2 0.85616;
gamma1 0.5532;
gamma2 0.4403;
beta1 0.0750;
beta2 0.0828;
betaStar 0.09;
a1 0.31;
c1 10;
Cmu 0.09;
}
NonlinearKEShihCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphak 1;
alphaEps 0.76932;
A1 1.25;
A2 1000;
Ctau1 -4;
Ctau2 13;
Ctau3 -2;
alphaKsi 0.9;
}
LienCubicKECoeffs
{
C1 1.44;
C2 1.92;
alphak 1;
alphaEps 0.76923;
A1 1.25;
A2 1000;
Ctau1 -4;
Ctau2 13;
Ctau3 -2;
alphaKsi 0.9;
}
QZetaCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphaZeta 0.76923;
anisotropic no;
}
LaunderSharmaKECoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphaEps 0.76923;
}
LamBremhorstKECoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphaEps 0.76923;
}
LienCubicKELowReCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphak 1;
alphaEps 0.76923;
A1 1.25;
A2 1000;
Ctau1 -4;
Ctau2 13;
Ctau3 -2;
alphaKsi 0.9;
Am 0.016;
Aepsilon 0.263;
Amu 0.00222;
}
LienLeschzinerLowReCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphak 1;
alphaEps 0.76923;
Am 0.016;
Aepsilon 0.263;
Amu 0.00222;
}
LRRCoeffs
{
Cmu 0.09;
Clrr1 1.8;
Clrr2 0.6;
C1 1.44;
C2 1.92;
Cs 0.25;
Ceps 0.15;
alphaEps 0.76923;
}
LaunderGibsonRSTMCoeffs
{
Cmu 0.09;
Clg1 1.8;
Clg2 0.6;
C1 1.44;
C2 1.92;
C1Ref 0.5;
C2Ref 0.3;
Cs 0.25;
Ceps 0.15;
alphaEps 0.76923;
alphaR 1.22;
}
SpalartAllmarasCoeffs
{
alphaNut 1.5;
Cb1 0.1355;
Cb2 0.622;
Cw2 0.3;
Cw3 2;
Cv1 7.1;
Cv2 5.0;
}
wallFunctionCoeffs
{
kappa 0.4187;
E 9;
}
// ************************************************************************* //

View File

@ -1,37 +1,45 @@
/*--------------------------------*- C++ -*----------------------------------*\
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / O peration | Version: 1.0 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
vertices
(
(-20.29 -10 -4.232e-05)
( 41.71 -10 -4.232e-05)
( 41.71 10 -4.232e-05)
(-20.29 10 -4.232e-05)
(-20.29 -10 20)
( 41.71 -10 20)
( 41.71 10 20)
(-20.29 10 20)
(-5 -4 0)
(15 -4 0)
(15 4 0)
(-5 4 0)
(-5 -4 8)
(15 -4 8)
(15 4 8)
(-5 4 8)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (60 20 20) simpleGrading (1 1 1)
hex (0 1 2 3 4 5 6 7) (20 8 8) simpleGrading (1 1 1)
);
edges
@ -40,35 +48,27 @@ edges
patches
(
patch maxY
patch frontAndBack
(
(3 7 6 2)
(1 5 4 0)
)
patch minX
patch inlet
(
(0 4 7 3)
)
patch maxX
patch outlet
(
(2 6 5 1)
)
patch minY
(
(1 5 4 0)
)
patch minZ
wall lowerWall
(
(0 3 2 1)
)
patch maxZ
patch upperWall
(
(4 5 6 7)
)
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,454 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
72
(
frontAndBack
{
type patch;
nFaces 320;
startFace 955219;
}
inlet
{
type patch;
nFaces 64;
startFace 955539;
}
outlet
{
type patch;
nFaces 64;
startFace 955603;
}
lowerWall
{
type wall;
nFaces 5330;
startFace 955667;
}
upperWall
{
type patch;
nFaces 160;
startFace 960997;
}
motorBike_frt-fairing:001%1
{
type wall;
nFaces 9726;
startFace 961157;
}
motorBike_windshield:002%2
{
type wall;
nFaces 86;
startFace 970883;
}
motorBike_rr-wh-rim:005%5
{
type wall;
nFaces 186;
startFace 970969;
}
motorBike_rr-wh-rim:010%10
{
type wall;
nFaces 355;
startFace 971155;
}
motorBike_fr-wh-rim:011%11
{
type wall;
nFaces 594;
startFace 971510;
}
motorBike_fr-wh-brake-disk:012%12
{
type wall;
nFaces 55;
startFace 972104;
}
motorBike_frame:016-shadow%13
{
type wall;
nFaces 163;
startFace 972159;
}
motorBike_rear-susp:014%14
{
type wall;
nFaces 1300;
startFace 972322;
}
motorBike_rear-susp:014-shadow%15
{
type wall;
nFaces 166;
startFace 973622;
}
motorBike_frame:016%16
{
type wall;
nFaces 21;
startFace 973788;
}
motorBike_rr-wh-rim:005-shadow%17
{
type wall;
nFaces 25;
startFace 973809;
}
motorBike_rr-wh-chain-hub:022%22
{
type wall;
nFaces 161;
startFace 973834;
}
motorBike_rearseat%24
{
type wall;
nFaces 543;
startFace 973995;
}
motorBike_frt-fairing%25
{
type wall;
nFaces 927;
startFace 974538;
}
motorBike_windshield%26
{
type wall;
nFaces 821;
startFace 975465;
}
motorBike_headlights%27
{
type wall;
nFaces 280;
startFace 976286;
}
motorBike_driversseat%28
{
type wall;
nFaces 457;
startFace 976566;
}
motorBike_rear-body%29
{
type wall;
nFaces 3081;
startFace 977023;
}
motorBike_fuel-tank%30
{
type wall;
nFaces 1512;
startFace 980104;
}
motorBike_exhaust%31
{
type wall;
nFaces 3516;
startFace 981616;
}
motorBike_rr-wh-rim%32
{
type wall;
nFaces 2128;
startFace 985132;
}
motorBike_fr-mud-guard%33
{
type wall;
nFaces 1096;
startFace 987260;
}
motorBike_fr-wh-rim%34
{
type wall;
nFaces 954;
startFace 988356;
}
motorBike_fr-wh-brake-disk%35
{
type wall;
nFaces 533;
startFace 989310;
}
motorBike_fr-brake-caliper%36
{
type wall;
nFaces 199;
startFace 989843;
}
motorBike_fr-wh-tyre%37
{
type wall;
nFaces 1855;
startFace 990042;
}
motorBike_hbars%38
{
type wall;
nFaces 745;
startFace 991897;
}
motorBike_fr-forks%39
{
type wall;
nFaces 1637;
startFace 992642;
}
motorBike_chain%40
{
type wall;
nFaces 484;
startFace 994279;
}
motorBike_rr-wh-tyre%41
{
type wall;
nFaces 3022;
startFace 994763;
}
motorBike_square-dial%42
{
type wall;
nFaces 9;
startFace 997785;
}
motorBike_round-dial%43
{
type wall;
nFaces 24;
startFace 997794;
}
motorBike_dial-holder%44
{
type wall;
nFaces 120;
startFace 997818;
}
motorBike_rear-susp%45
{
type wall;
nFaces 2050;
startFace 997938;
}
motorBike_rear-brake-lights%46
{
type wall;
nFaces 75;
startFace 999988;
}
motorBike_rear-light-bracket%47
{
type wall;
nFaces 226;
startFace 1000063;
}
motorBike_frame%48
{
type wall;
nFaces 2849;
startFace 1000289;
}
motorBike_rear-mud-guard%49
{
type wall;
nFaces 1177;
startFace 1003138;
}
motorBike_rear-susp-spring-damp%50
{
type wall;
nFaces 138;
startFace 1004315;
}
motorBike_fairing-inner-plate%51
{
type wall;
nFaces 551;
startFace 1004453;
}
motorBike_clutch-housing%52
{
type wall;
nFaces 1199;
startFace 1005004;
}
motorBike_radiator%53
{
type wall;
nFaces 51;
startFace 1006203;
}
motorBike_water-pipe%54
{
type wall;
nFaces 112;
startFace 1006254;
}
motorBike_water-pump%55
{
type wall;
nFaces 96;
startFace 1006366;
}
motorBike_engine%56
{
type wall;
nFaces 2963;
startFace 1006462;
}
motorBike_rear-shock-link%57
{
type wall;
nFaces 33;
startFace 1009425;
}
motorBike_rear-brake-fluid-pot-bracket%58
{
type wall;
nFaces 63;
startFace 1009458;
}
motorBike_rear-brake-fluid-pot%59
{
type wall;
nFaces 59;
startFace 1009521;
}
motorBike_footpeg%60
{
type wall;
nFaces 103;
startFace 1009580;
}
motorBike_rr-wh-chain-hub%61
{
type wall;
nFaces 160;
startFace 1009683;
}
motorBike_rear-brake-caliper%62
{
type wall;
nFaces 158;
startFace 1009843;
}
motorBike_rider-helmet%65
{
type wall;
nFaces 964;
startFace 1010001;
}
motorBike_rider-visor%66
{
type wall;
nFaces 170;
startFace 1010965;
}
motorBike_rider-boots%67
{
type wall;
nFaces 1657;
startFace 1011135;
}
motorBike_rider-gloves%68
{
type wall;
nFaces 436;
startFace 1012792;
}
motorBike_rider-body%69
{
type wall;
nFaces 7207;
startFace 1013228;
}
motorBike_frame:0%70
{
type wall;
nFaces 52;
startFace 1020435;
}
motorBike_frt-fairing:001-shadow%74
{
type wall;
nFaces 1340;
startFace 1020487;
}
motorBike_windshield-shadow%75
{
type wall;
nFaces 111;
startFace 1021827;
}
motorBike_fr-mud-guard-shadow%81
{
type wall;
nFaces 135;
startFace 1021938;
}
motorBike_fr-wh-brake-disk-shadow%83
{
type wall;
nFaces 77;
startFace 1022073;
}
motorBike_rear-mud-guard-shadow%84
{
type wall;
nFaces 143;
startFace 1022150;
}
motorBike_rear-susp-spring-damp-shadow%85
{
type wall;
nFaces 15;
startFace 1022293;
}
motorBike_radiator-shadow%86
{
type wall;
nFaces 12;
startFace 1022308;
}
motorBike_rear-shock-link-shadow%87
{
type wall;
nFaces 7;
startFace 1022320;
}
motorBike_rear-brake-fluid-pot-bracket-shadow%88
{
type wall;
nFaces 6;
startFace 1022327;
}
motorBike_rr-wh-chain-hub-shadow%89
{
type wall;
nFaces 24;
startFace 1022333;
}
)
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,21 +10,12 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{}
PISO
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
}
transportModel Newtonian;
nu nu [0 2 -1 0 0 0 0] 1.5e-05;
// ************************************************************************* //

View File

@ -0,0 +1,174 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
turbulenceModel SpalartAllmaras;
turbulence on;
laminarCoeffs
{
}
kEpsilonCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
}
RNGkEpsilonCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.0845;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.42;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.68;
alphak alphaK [ 0 0 0 0 0 0 0 ] 1.39;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 1.39;
eta0 eta0 [ 0 0 0 0 0 0 0 ] 4.38;
beta beta [ 0 0 0 0 0 0 0 ] 0.012;
}
NonlinearKEShihCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphak alphak [ 0 0 0 0 0 0 0 ] 1;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76932;
A1 A1 [ 0 0 0 0 0 0 0 ] 1.25;
A2 A2 [ 0 0 0 0 0 0 0 ] 1000;
Ctau1 Ctau1 [ 0 0 0 0 0 0 0 ] -4;
Ctau2 Ctau2 [ 0 0 0 0 0 0 0 ] 13;
Ctau3 Ctau3 [ 0 0 0 0 0 0 0 ] -2;
alphaKsi alphaKsi [ 0 0 0 0 0 0 0 ] 0.9;
}
LienCubicKECoeffs
{
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphak alphak [ 0 0 0 0 0 0 0 ] 1;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
A1 A1 [ 0 0 0 0 0 0 0 ] 1.25;
A2 A2 [ 0 0 0 0 0 0 0 ] 1000;
Ctau1 Ctau1 [ 0 0 0 0 0 0 0 ] -4;
Ctau2 Ctau2 [ 0 0 0 0 0 0 0 ] 13;
Ctau3 Ctau3 [ 0 0 0 0 0 0 0 ] -2;
alphaKsi alphaKsi [ 0 0 0 0 0 0 0 ] 0.9;
}
QZetaCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphaZeta alphaZeta [ 0 0 0 0 0 0 0 ] 0.76923;
anisotropic no;
}
LaunderSharmaKECoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
}
LamBremhorstKECoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
}
LienCubicKELowReCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphak alphak [ 0 0 0 0 0 0 0 ] 1;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
A1 A1 [ 0 0 0 0 0 0 0 ] 1.25;
A2 A2 [ 0 0 0 0 0 0 0 ] 1000;
Ctau1 Ctau1 [ 0 0 0 0 0 0 0 ] -4;
Ctau2 Ctau2 [ 0 0 0 0 0 0 0 ] 13;
Ctau3 Ctau3 [ 0 0 0 0 0 0 0 ] -2;
alphaKsi alphaKsi [ 0 0 0 0 0 0 0 ] 0.9;
Am Am [ 0 0 0 0 0 0 0 ] 0.016;
Aepsilon Aepsilon [ 0 0 0 0 0 0 0 ] 0.263;
Amu Amu [ 0 0 0 0 0 0 0 ] 0.00222;
}
LienLeschzinerLowReCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphak alphak [ 0 0 0 0 0 0 0 ] 1;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
Am Am [ 0 0 0 0 0 0 0 ] 0.016;
Aepsilon Aepsilon [ 0 0 0 0 0 0 0 ] 0.263;
Amu Amu [ 0 0 0 0 0 0 0 ] 0.00222;
}
LRRCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
Clrr1 Clrr1 [ 0 0 0 0 0 0 0 ] 1.8;
Clrr2 Clrr2 [ 0 0 0 0 0 0 0 ] 0.6;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
Cs Cs [ 0 0 0 0 0 0 0 ] 0.25;
Ceps Ceps [ 0 0 0 0 0 0 0 ] 0.15;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
}
LaunderGibsonRSTMCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
Clg1 Clg1 [ 0 0 0 0 0 0 0 ] 1.8;
Clg2 Clg2 [ 0 0 0 0 0 0 0 ] 0.6;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
C1Ref C1Ref [ 0 0 0 0 0 0 0 ] 0.5;
C2Ref C2Ref [ 0 0 0 0 0 0 0 ] 0.3;
Cs Cs [ 0 0 0 0 0 0 0 ] 0.25;
Ceps Ceps [ 0 0 0 0 0 0 0 ] 0.15;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
alphaR alphaR [ 0 0 0 0 0 0 0 ] 1.22;
}
SpalartAllmarasCoeffs
{
alphaNut alphaNut [ 0 0 0 0 0 0 0 ] 1.5;
Cb1 Cb1 [ 0 0 0 0 0 0 0 ] 0.1355;
Cb2 Cb2 [ 0 0 0 0 0 0 0 ] 0.622;
Cw2 Cw2 [ 0 0 0 0 0 0 0 ] 0.3;
Cw3 Cw3 [ 0 0 0 0 0 0 0 ] 2;
Cv1 Cv1 [ 0 0 0 0 0 0 0 ] 7.1;
Cv2 Cv2 [ 0 0 0 0 0 0 0 ] 5;
}
wallFunctionCoeffs
{
kappa kappa [ 0 0 0 0 0 0 0 ] 0.4187;
E E [ 0 0 0 0 0 0 0 ] 9;
}
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,32 +10,33 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application simpleFoam;
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 100;
endTime 500;
deltaT 1;
writeControl timeStep;
writeInterval 1;
writeInterval 100;
purgeWrite 0;
writeFormat ascii;
writePrecision 7;
writePrecision 6;
writeCompression uncompressed;
writeCompression compressed;
timeFormat general;
@ -43,5 +44,4 @@ timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

View File

@ -0,0 +1,65 @@
// The FOAM Project // File: decomposeParDict
/*
-------------------------------------------------------------------------------
========= | dictionary
\\ / |
\\ / | Name: decomposeParDict
\\ / | Family: FoamX configuration file
\\/ |
F ield | FOAM version: 2.1
O peration | Product of Nabla Ltd.
A and |
M anipulation | Email: Enquiries@Nabla.co.uk
-------------------------------------------------------------------------------
*/
// FoamX Case Dictionary.
FoamFile
{
version 2.0;
format ascii;
root "/home/penfold/mattijs/foam/mattijs2.1/run/icoFoam";
case "cavity";
instance "system";
local "";
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 6;
method hierarchical;
//method metis;
//method parMetis;
simpleCoeffs
{
n (4 1 1);
delta 0.001;
}
hierarchicalCoeffs
{
n (3 2 1);
delta 0.001;
order xyz;
}
manualCoeffs
{
dataFile "cellDecomposition";
}
metisCoeffs
{
//n (5 1 1);
//cellWeightsFile "constant/cellWeightsFile";
}
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -10,40 +10,43 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
default steadyState;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
grad(U) Gauss linear;
// grad(U) cellLimited Gauss linear 1;
}
divSchemes
{
default none;
div(phi,U) Gauss linear;
div(phi,U) Gauss linearUpwindV Gauss linear;
div(phi,k) Gauss upwind;
div(phi,omega) Gauss upwind;
div((nuEff*dev(grad(U).T()))) Gauss linear;
}
laplacianSchemes
{
default none;
laplacian(nu,U) Gauss linear corrected;
laplacian(1|A(U),p) Gauss linear corrected;
laplacian(diffusivity,cellMotionU) Gauss linear uncorrected;
default Gauss linear corrected;
// default Gauss linear limited 0.5;
// default Gauss linear limited 0.333;
}
interpolationSchemes
{
default linear;
interpolate(HbyA) linear;
interpolate(U) linear;
}
snGradSchemes
@ -54,8 +57,7 @@ snGradSchemes
fluxRequired
{
default no;
p ;
p;
}
// ************************************************************************* //

View File

@ -0,0 +1,74 @@
/*--------------------------------*- 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 fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver GAMG;
tolerance 1e-7;
relTol 0.1;
smoother GaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
cacheAgglomeration on;
agglomerator faceAreaPair;
nCellsInCoarsestLevel 10;
mergeLevels 1;
};
U
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-8;
relTol 0.1;
nSweeps 1;
};
k
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-8;
relTol 0.1;
nSweeps 1;
};
omega
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-8;
relTol 0.1;
nSweeps 1;
};
}
SIMPLE
{
nNonOrthogonalCorrectors 0;
}
relaxationFactors
{
p 0.3;
U 0.7;
k 0.7;
omega 0.7;
}
// ************************************************************************* //

View File

@ -1,16 +1,16 @@
/*--------------------------------*- C++ -*----------------------------------*\
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\ / O peration | Version: 1.0 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object snappyHexMeshDict;
}
@ -32,17 +32,18 @@ geometry
{
motorBike.stl
{
type triSurfaceMesh;
name motorBike;
type triSurfaceMesh;
name motorBike;
}
refinementBox
{
type searchableBox;
min ( -0.3 -0.4 -0.1 );
max ( 3 0.4 1.4 );
type searchableBox;
min (-1.0 -0.7 0.0);
max ( 8.0 0.7 2.5);
}
}
};
// Settings for the castellatedMesh generation.
@ -55,15 +56,14 @@ castellatedMeshControls
// While refining maximum number of cells per processor. This is basically
// the number of cells that fit on a processor. If you choose this too small
// it will do just more refinement iterations to obtain a similar mesh.
maxLocalCells 1000000;
maxLocalCells 1000000;
// Overall cell limit (approximately). Refinement will stop immediately
// upon reaching this number so a refinement level might not complete.
// Note that this is the number of cells before removing the part which
// is not 'visible' from the keepPoint. The final number of cells might
// actually be a lot less.
maxGlobalCells 2000000;
maxGlobalCells 2000000;
// The surface refinement loop might spend lots of iterations refining just a
// few cells. This setting will cause refinement to stop if <= minimumRefine
@ -74,7 +74,7 @@ castellatedMeshControls
// Number of buffer layers between different levels.
// 1 means normal 2:1 refinement restriction, larger means slower
// refinement.
nCellsBetweenLevels 2;
nCellsBetweenLevels 3;
@ -107,7 +107,7 @@ castellatedMeshControls
motorBike
{
// Surface-wise min and max refinement level
level ( 5 6 );
level (5 6);
}
}
@ -127,17 +127,17 @@ castellatedMeshControls
// cells inside the surface get refined up to the level. The surface
// needs to be closed for this to be possible.
// - outside. Same but cells outside.
refinementRegions
{
refinementBox
{
mode inside;
levels ( ( 1e+15 4 ) );
mode inside;
levels ((1E15 4));
}
}
// Mesh selection
// ~~~~~~~~~~~~~~
@ -146,16 +146,17 @@ castellatedMeshControls
// section reachable from the locationInMesh is kept.
// NOTE: This point should never be on a face, always inside a cell, even
// after refinement.
locationInMesh ( 3 3 0.43 );
locationInMesh (3 3 0.43);
}
// Settings for the snapping.
snapControls
{
//- Number of patch smoothing iterations before finding correspondence
// to surface
nSmoothPatch 3;
nSmoothPatch 3;
//- Relative distance for points to be attracted by surface feature point
// or edge. True distance is this factor times local
@ -163,14 +164,15 @@ snapControls
tolerance 4.0;
//- Number of mesh displacement relaxation iterations.
nSolveIter 30;
nSolveIter 30;
//- Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 5;
nRelaxIter 5;
}
// Settings for the layer addition.
addLayersControls
{
@ -179,12 +181,275 @@ addLayersControls
{
minZ
{
nSurfaceLayers 1;
nSurfaceLayers 1;
}
"motorBike_.*"
motorBike_frt-fairing:001%1
{
nSurfaceLayers 1;
nSurfaceLayers 1;
}
motorBike_windshield:002%2
{
nSurfaceLayers 1;
}
motorBike_rr-wh-rim:005%5
{
nSurfaceLayers 1;
}
motorBike_rr-wh-rim:010%10
{
nSurfaceLayers 1;
}
motorBike_fr-wh-rim:011%11
{
nSurfaceLayers 1;
}
motorBike_fr-wh-brake-disk:012%12
{
nSurfaceLayers 1;
}
motorBike_frame:016-shadow%13
{
nSurfaceLayers 1;
}
motorBike_rear-susp:014%14
{
nSurfaceLayers 1;
}
motorBike_rear-susp:014-shadow%15
{
nSurfaceLayers 1;
}
motorBike_frame:016%16
{
nSurfaceLayers 1;
}
motorBike_rr-wh-rim:005-shadow%17
{
nSurfaceLayers 1;
}
motorBike_rr-wh-chain-hub:022%22
{
nSurfaceLayers 1;
}
motorBike_rearseat%24
{
nSurfaceLayers 1;
}
motorBike_frt-fairing%25
{
nSurfaceLayers 1;
}
motorBike_windshield%26
{
nSurfaceLayers 1;
}
motorBike_headlights%27
{
nSurfaceLayers 1;
}
motorBike_driversseat%28
{
nSurfaceLayers 1;
}
motorBike_rear-body%29
{
nSurfaceLayers 1;
}
motorBike_fuel-tank%30
{
nSurfaceLayers 1;
}
motorBike_exhaust%31
{
nSurfaceLayers 1;
}
motorBike_rr-wh-rim%32
{
nSurfaceLayers 1;
}
motorBike_fr-mud-guard%33
{
nSurfaceLayers 1;
}
motorBike_fr-wh-rim%34
{
nSurfaceLayers 1;
}
motorBike_fr-wh-brake-disk%35
{
nSurfaceLayers 1;
}
motorBike_fr-brake-caliper%36
{
nSurfaceLayers 1;
}
motorBike_fr-wh-tyre%37
{
nSurfaceLayers 1;
}
motorBike_hbars%38
{
nSurfaceLayers 1;
}
motorBike_fr-forks%39
{
nSurfaceLayers 1;
}
motorBike_chain%40
{
nSurfaceLayers 1;
}
motorBike_rr-wh-tyre%41
{
nSurfaceLayers 1;
}
motorBike_square-dial%42
{
nSurfaceLayers 1;
}
motorBike_round-dial%43
{
nSurfaceLayers 1;
}
motorBike_dial-holder%44
{
nSurfaceLayers 1;
}
motorBike_rear-susp%45
{
nSurfaceLayers 1;
}
motorBike_rear-brake-lights%46
{
nSurfaceLayers 1;
}
motorBike_rear-light-bracket%47
{
nSurfaceLayers 1;
}
motorBike_frame%48
{
nSurfaceLayers 1;
}
motorBike_rear-mud-guard%49
{
nSurfaceLayers 1;
}
motorBike_rear-susp-spring-damp%50
{
nSurfaceLayers 1;
}
motorBike_fairing-inner-plate%51
{
nSurfaceLayers 1;
}
motorBike_clutch-housing%52
{
nSurfaceLayers 1;
}
motorBike_radiator%53
{
nSurfaceLayers 1;
}
motorBike_water-pipe%54
{
nSurfaceLayers 1;
}
motorBike_water-pump%55
{
nSurfaceLayers 1;
}
motorBike_engine%56
{
nSurfaceLayers 1;
}
motorBike_rear-shock-link%57
{
nSurfaceLayers 1;
}
motorBike_rear-brake-fluid-pot-bracket%58
{
nSurfaceLayers 1;
}
motorBike_rear-brake-fluid-pot%59
{
nSurfaceLayers 1;
}
motorBike_footpeg%60
{
nSurfaceLayers 1;
}
motorBike_rr-wh-chain-hub%61
{
nSurfaceLayers 1;
}
motorBike_rear-brake-caliper%62
{
nSurfaceLayers 1;
}
motorBike_rider-helmet%65
{
nSurfaceLayers 1;
}
motorBike_rider-visor%66
{
nSurfaceLayers 1;
}
motorBike_rider-boots%67
{
nSurfaceLayers 1;
}
motorBike_rider-gloves%68
{
nSurfaceLayers 1;
}
motorBike_rider-body%69
{
nSurfaceLayers 1;
}
motorBike_frame:0%70
{
nSurfaceLayers 1;
}
motorBike_frt-fairing:001-shadow%74
{
nSurfaceLayers 1;
}
motorBike_windshield-shadow%75
{
nSurfaceLayers 1;
}
motorBike_fr-mud-guard-shadow%81
{
nSurfaceLayers 1;
}
motorBike_fr-wh-brake-disk-shadow%83
{
nSurfaceLayers 1;
}
motorBike_rear-mud-guard-shadow%84
{
nSurfaceLayers 1;
}
motorBike_rear-susp-spring-damp-shadow%85
{
nSurfaceLayers 1;
}
motorBike_radiator-shadow%86
{
nSurfaceLayers 1;
}
motorBike_rear-shock-link-shadow%87
{
nSurfaceLayers 1;
}
motorBike_rear-brake-fluid-pot-bracket-shadow%88
{
nSurfaceLayers 1;
}
motorBike_rr-wh-chain-hub-shadow%89
{
nSurfaceLayers 1;
}
}
@ -200,29 +465,29 @@ addLayersControls
//- Minimum thickness of cell layer. If for any reason layer
// cannot be above minThickness do not add layer.
// Relative to undistorted size of cell outside layer.
minThickness 0.1;
minThickness 0.1;
//- If points get not extruded do nGrow layers of connected faces that are
// also not grown. This helps convergence of the layer addition process
// close to features.
nGrow 1;
nGrow 1;
// Advanced settings
//- When not to extrude surface. 0 is flat surface, 90 is when two faces
// make straight angle.
featureAngle 30;
featureAngle 30;
//- Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 3;
nRelaxIter 3;
// Number of smoothing iterations of surface normals
nSmoothSurfaceNormals 1;
// Number of smoothing iterations of interior mesh movement direction
nSmoothNormals 3;
nSmoothNormals 3;
// Smooth layer thickness over surface patches
nSmoothThickness 10;
@ -239,19 +504,16 @@ addLayersControls
// Create buffer region for new layer terminations
nBufferCellsNoExtrude 0;
// Overall max number of layer addition iterations
nLayerIter 50;
}
// Generic mesh quality settings. At any undoable phase these determine
// where to undo.
meshQualityControls
{
//- Maximum non-orthogonality allowed. Set to 180 to disable.
maxNonOrtho 65;
maxNonOrtho 65;
//- Max skewness allowed. Set to <0 to disable.
maxBoundarySkewness 20;
@ -260,31 +522,31 @@ meshQualityControls
//- Max concaveness allowed. Is angle (in degrees) below which concavity
// is allowed. 0 is straight face, <0 would be convex face.
// Set to 180 to disable.
maxConcave 80;
maxConcave 80;
//- Minimum projected area v.s. actual area. Set to -1 to disable.
minFlatness 0.5;
minFlatness 0.5;
//- Minimum pyramid volume. Is absolute volume of cell pyramid.
// Set to very negative number (e.g. -1E30) to disable.
minVol 1e-13;
minVol 1e-13;
//- Minimum face area. Set to <0 to disable.
minArea -1;
minArea -1;
//- Minimum face twist. Set to <-1 to disable. dot product of face normal
//- and face centre triangles normal
minTwist 0.02;
minTwist 0.02;
//- minimum normalised cell determinant
//- 1 = hex, <= 0 = folded or flattened illegal cell
minDeterminant 0.001;
minDeterminant 0.001;
//- minFaceWeight (0 -> 0.5)
minFaceWeight 0.02;
minFaceWeight 0.02;
//- minVolRatio (0 -> 1)
minVolRatio 0.01;
minVolRatio 0.01;
//must be >0 for Fluent compatibility
minTriangleTwist -1;
@ -293,13 +555,12 @@ meshQualityControls
// Advanced
//- Number of error distribution iterations
nSmoothScale 4;
nSmoothScale 4;
//- amount to scale back displacement at error points
errorReduction 0.75;
errorReduction 0.75;
}
// Advanced
// Flags for optional output
@ -307,12 +568,12 @@ meshQualityControls
// 1 : write intermediate meshes
// 2 : write volScalarField with cellLevel for postprocessing
// 4 : write current intersections as .obj files
debug 0;
debug 0;
// Merge tolerance. Is fraction of overall bounding box of initial mesh.
// Note: the write tolerance needs to be higher than this.
mergeTolerance 1e-06;
mergeTolerance 1E-6;
// ************************************************************************* //

View File

@ -32,7 +32,7 @@ liquidComponents
H2O H2O defaultCoeffs;
solidFuelComponents
solidComponents
(
C
ash

View File

@ -29,7 +29,7 @@ liquidComponents
);
H2O H2O defaultCoeffs;
solidFuelComponents
solidComponents
(
);

View File

@ -23,9 +23,13 @@ foamChemistryFile "$FOAM_CASE/chemkin/foam.inp";
foamChemistryThermoFile "$FOAM_CASE/chemkin/foam.dat";
liquidComponents ( H2O );
liquidComponents
(
H2O
);
solidFuelComponents ( );
solidComponents
();
inertSpecie N2;

View File

View File

@ -0,0 +1 @@
../../heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges

View File

@ -0,0 +1 @@
../../incompressible/simpleFoam/motorBike

View File

@ -3,7 +3,7 @@ ARFLAGS = cr
RANLIB = ranlib
LD = ld
GFLAGS = -D$(WM_ARCH) -D$(WM_PRECISION_OPTION)
GINC =
GFLAGS = -D$(WM_ARCH) -DWM_$(WM_PRECISION_OPTION)
GINC =
GLIBS = -lm
GLIB_LIBS =
GLIB_LIBS =