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( ADD_DEFINITIONS(
-D$ENV{WM_PRECISION_OPTION} -DWM_$ENV{WM_PRECISION_OPTION}
) )
# Set output library destination to plugin folder # Set output library destination to plugin folder

View File

@ -22,7 +22,7 @@ INCLUDE_DIRECTORIES(
$ENV{ParaView_INST_DIR}/include $ENV{ParaView_INST_DIR}/include
../vtkFoam/lnInclude ../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. # 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*} \ rm -rf constant/polyMesh/{allOwner*,cell*,face*,meshModifiers*} \
constant/polyMesh/{owner*,neighbour*,point*,edge*} \ constant/polyMesh/{owner*,neighbour*,point*,edge*} \
constant/polyMesh/{cellLevel,pointLevel,refinementHistory,surfaceIndex} \ constant/polyMesh/{cellLevel*,pointLevel*,refinementHistory*,surfaceIndex*} \
constant/{cellLevel,pointLevel} \ constant/{cellLevel*,pointLevel*} \
constant/polyMesh/sets/ \ constant/polyMesh/sets/ \
> /dev/null 2>&1 > /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); result = malloc (size);
// initialize to signalling nan // initialize to signalling nan
# ifdef SP # ifdef WM_SP
const uint32_t sNAN = 0x7ff7fffflu; const uint32_t sNAN = 0x7ff7fffflu;

View File

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

View File

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

View File

@ -1,7 +1,7 @@
ParMGridGen = $(WM_THIRD_PARTY_DIR)/ParMGridGen-1.0 ParMGridGen = $(WM_THIRD_PARTY_DIR)/ParMGridGen-1.0
TYPE_REAL= TYPE_REAL=
#if defined(SP) #if defined(WM_SP)
TYPE_REAL=-DTYPE_REAL TYPE_REAL=-DTYPE_REAL
#endif #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> template<class ParcelType>
void Foam::KinematicCloud<ParcelType>::evolve() void Foam::KinematicCloud<ParcelType>::evolve()
{ {
preEvolve();
autoPtr<interpolation<scalar> > rhoInterpolator = autoPtr<interpolation<scalar> > rhoInterpolator =
interpolation<scalar>::New interpolation<scalar>::New
( (
@ -209,11 +232,6 @@ void Foam::KinematicCloud<ParcelType>::evolve()
this->injection().inject(td); this->injection().inject(td);
if (debug)
{
this->writePositions();
}
if (coupled_) if (coupled_)
{ {
resetSourceTerms(); resetSourceTerms();
@ -221,7 +239,7 @@ void Foam::KinematicCloud<ParcelType>::evolve()
Cloud<ParcelType>::move(td); Cloud<ParcelType>::move(td);
this->postProcessing().post(); postEvolve();
} }

View File

@ -184,6 +184,15 @@ protected:
DimensionedField<vector, volMesh> UTrans_; DimensionedField<vector, volMesh> UTrans_;
// Cloud evolution functions
//- Pre-evolve
void preEvolve();
//- Post-evolve
void postEvolve();
public: public:
// Constructors // 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> template<class ParcelType>
void Foam::ReactingCloud<ParcelType>::evolve() void Foam::ReactingCloud<ParcelType>::evolve()
{ {
preEvolve();
const volScalarField& T = this->carrierThermo().T(); const volScalarField& T = this->carrierThermo().T();
const volScalarField cp = this->carrierThermo().Cp(); const volScalarField cp = this->carrierThermo().Cp();
const volScalarField& p = this->carrierThermo().p(); const volScalarField& p = this->carrierThermo().p();
@ -233,11 +249,6 @@ void Foam::ReactingCloud<ParcelType>::evolve()
this->injection().inject(td); this->injection().inject(td);
if (debug)
{
this->writePositions();
}
if (this->coupled()) if (this->coupled())
{ {
resetSourceTerms(); resetSourceTerms();
@ -245,7 +256,7 @@ void Foam::ReactingCloud<ParcelType>::evolve()
Cloud<ParcelType>::move(td); 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: public:
// Constructors // 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> template<class ParcelType>
void Foam::ReactingMultiphaseCloud<ParcelType>::evolve() void Foam::ReactingMultiphaseCloud<ParcelType>::evolve()
{ {
preEvolve();
const volScalarField& T = this->carrierThermo().T(); const volScalarField& T = this->carrierThermo().T();
const volScalarField cp = this->carrierThermo().Cp(); const volScalarField cp = this->carrierThermo().Cp();
const volScalarField& p = this->carrierThermo().p(); const volScalarField& p = this->carrierThermo().p();
@ -187,11 +203,6 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::evolve()
this->injection().inject(td); this->injection().inject(td);
if (debug)
{
this->writePositions();
}
if (this->coupled()) if (this->coupled())
{ {
resetSourceTerms(); resetSourceTerms();
@ -199,7 +210,7 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::evolve()
Cloud<ParcelType>::move(td); Cloud<ParcelType>::move(td);
this->postProcessing().post(); postEvolve();
} }

View File

@ -68,7 +68,7 @@ class ReactingMultiphaseCloud
public ReactingCloud<ParcelType>, public ReactingCloud<ParcelType>,
public reactingMultiphaseCloud public reactingMultiphaseCloud
{ {
// Private Member Functions // Private member functions
//- Disallow default bitwise copy construct //- Disallow default bitwise copy construct
ReactingMultiphaseCloud(const ReactingMultiphaseCloud&); ReactingMultiphaseCloud(const ReactingMultiphaseCloud&);
@ -112,6 +112,17 @@ protected:
scalar dMassSurfaceReaction_; scalar dMassSurfaceReaction_;
// Protected member functions
// Cloud evolution functions
//- Pre-evolve
void preEvolve();
//- Post-evolve
void postEvolve();
public: public:
// Constructors // 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> template<class ParcelType>
void Foam::ThermoCloud<ParcelType>::evolve() void Foam::ThermoCloud<ParcelType>::evolve()
{ {
preEvolve();
const volScalarField& T = carrierThermo_.T(); const volScalarField& T = carrierThermo_.T();
const volScalarField cp = carrierThermo_.Cp(); const volScalarField cp = carrierThermo_.Cp();
@ -192,11 +208,6 @@ void Foam::ThermoCloud<ParcelType>::evolve()
this->injection().inject(td); this->injection().inject(td);
if (debug)
{
this->writePositions();
}
if (this->coupled()) if (this->coupled())
{ {
resetSourceTerms(); resetSourceTerms();
@ -204,7 +215,7 @@ void Foam::ThermoCloud<ParcelType>::evolve()
Cloud<ParcelType>::move(td); Cloud<ParcelType>::move(td);
this->postProcessing().post(); postEvolve();
} }

View File

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

View File

@ -37,6 +37,7 @@ License
#include "KinematicLookupTableInjection.H" #include "KinematicLookupTableInjection.H"
#include "ManualInjection.H" #include "ManualInjection.H"
#include "NoInjection.H" #include "NoInjection.H"
#include "PatchInjection.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -79,6 +80,12 @@ License
NoInjection, \ NoInjection, \
KinematicCloud, \ KinematicCloud, \
ParcelType \ ParcelType \
); \
makeInjectionModelType \
( \
PatchInjection, \
KinematicCloud, \
ParcelType \
); );

View File

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

View File

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

View File

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

View File

@ -42,7 +42,11 @@ Foam::DispersionRASModel<CloudType>::DispersionRASModel
( (
"RASProperties" "RASProperties"
) )
) ),
kPtr_(NULL),
ownK_(false),
epsilonPtr_(NULL),
ownEpsilon_(false)
{} {}
@ -50,7 +54,56 @@ Foam::DispersionRASModel<CloudType>::DispersionRASModel
template<class CloudType> template<class CloudType>
Foam::DispersionRASModel<CloudType>::~DispersionRASModel() 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> public DispersionModel<CloudType>
{ {
// Private data protected:
// Protected data
//- Reference to the compressible turbulence model //- Reference to the compressible turbulence model
const compressible::RASModel& turbulence_; 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: public:
@ -78,6 +94,9 @@ public:
// Member Functions // Member Functions
//- Cache carrier fields
virtual void cacheFields(const bool store);
//- Return const access to the turbulence model //- Return const access to the turbulence model
const compressible::RASModel& turbulence() const const compressible::RASModel& turbulence() const
{ {

View File

@ -35,7 +35,8 @@ Foam::GradientDispersionRAS<CloudType>::GradientDispersionRAS
CloudType& owner CloudType& owner
) )
: :
DispersionRASModel<CloudType>(dict, owner) DispersionRASModel<CloudType>(dict, owner),
gradkPtr_(NULL)
{} {}
@ -43,7 +44,9 @@ Foam::GradientDispersionRAS<CloudType>::GradientDispersionRAS
template<class CloudType> template<class CloudType>
Foam::GradientDispersionRAS<CloudType>::~GradientDispersionRAS() Foam::GradientDispersionRAS<CloudType>::~GradientDispersionRAS()
{} {
cacheFields(false);
}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * 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> template<class CloudType>
Foam::vector Foam::GradientDispersionRAS<CloudType>::update Foam::vector Foam::GradientDispersionRAS<CloudType>::update
( (
@ -68,9 +90,9 @@ Foam::vector Foam::GradientDispersionRAS<CloudType>::update
{ {
const scalar cps = 0.16432; const scalar cps = 0.16432;
const volScalarField& k = this->turbulence().k(); const volScalarField& k = *this->kPtr_;
const volScalarField& epsilon = this->turbulence().epsilon(); const volScalarField& epsilon = *this->epsilonPtr_;
const volVectorField gradk = fvc::grad(k); const volVectorField& gradk = *this->gradkPtr_;
const scalar UrelMag = mag(U - Uc - UTurb); const scalar UrelMag = mag(U - Uc - UTurb);

View File

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

View File

@ -72,10 +72,13 @@ public:
// Member Functions // Member Functions
//- Flag to indicate whether model activates injection model //- 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) //- Update (disperse particles)
vector update virtual vector update
( (
const scalar dt, const scalar dt,
const label celli, const label celli,

View File

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

View File

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

View File

@ -138,7 +138,7 @@ void Foam::ManualInjection<CloudType>::setPositionAndCell
( (
const label parcelI, const label parcelI,
const label, const label,
const scalar time, const scalar,
vector& position, vector& position,
label& cellOwner 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) forAll(TCells, celli)
{ {
const typename MixtureType::thermoType& mixture_ = const typename MixtureType::thermoType& mixture =
this->cellMixture(celli); this->cellMixture(celli);
TCells[celli] = mixture_.TH(hCells[celli], TCells[celli]); TCells[celli] = mixture.TH(hCells[celli], TCells[celli]);
psiCells[celli] = mixture_.psi(pCells[celli], TCells[celli]); psiCells[celli] = mixture.psi(pCells[celli], TCells[celli]);
muCells[celli] = mixture_.mu(TCells[celli]); muCells[celli] = mixture.mu(TCells[celli]);
alphaCells[celli] = mixture_.alpha(TCells[celli]); alphaCells[celli] = mixture.alpha(TCells[celli]);
} }
forAll(T_.boundaryField(), patchi) forAll(T_.boundaryField(), patchi)
@ -68,28 +68,28 @@ void Foam::hPsiMixtureThermo<MixtureType>::calculate()
{ {
forAll(pT, facei) forAll(pT, facei)
{ {
const typename MixtureType::thermoType& mixture_ = const typename MixtureType::thermoType& mixture =
this->patchFaceMixture(patchi, facei); this->patchFaceMixture(patchi, facei);
ph[facei] = mixture_.H(pT[facei]); ph[facei] = mixture.H(pT[facei]);
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]); ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
pmu_[facei] = mixture_.mu(pT[facei]); pmu_[facei] = mixture.mu(pT[facei]);
palpha_[facei] = mixture_.alpha(pT[facei]); palpha_[facei] = mixture.alpha(pT[facei]);
} }
} }
else else
{ {
forAll(pT, facei) forAll(pT, facei)
{ {
const typename MixtureType::thermoType& mixture_ = const typename MixtureType::thermoType& mixture =
this->patchFaceMixture(patchi, facei); 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]); ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
pmu_[facei] = mixture_.mu(pT[facei]); pmu_[facei] = mixture.mu(pT[facei]);
palpha_[facei] = mixture_.alpha(pT[facei]); palpha_[facei] = mixture.alpha(pT[facei]);
} }
} }
} }

View File

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

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 | | \\ / O peration | Version: dev |
| \\ / A nd | Web: http://www.OpenFOAM.org | | \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
@ -10,6 +10,7 @@ FoamFile
version 2.0; version 2.0;
format ascii; format ascii;
class polyBoundaryMesh; class polyBoundaryMesh;
location "constant/polyMesh";
object boundary; object boundary;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 | | \\ / O peration | Version: dev |
| \\ / A nd | Web: http://www.OpenFOAM.org | | \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
@ -10,6 +10,7 @@ FoamFile
version 2.0; version 2.0;
format ascii; format ascii;
class polyBoundaryMesh; class polyBoundaryMesh;
location "constant/polyMesh";
object boundary; object boundary;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 | | \\ / O peration | Version: dev |
| \\ / A nd | Web: http://www.OpenFOAM.org | | \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
@ -10,6 +10,7 @@ FoamFile
version 2.0; version 2.0;
format ascii; format ascii;
class polyBoundaryMesh; class polyBoundaryMesh;
location "constant/polyMesh";
object boundary; object boundary;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -22,28 +23,24 @@ inlet
nFaces 30; nFaces 30;
startFace 24170; startFace 24170;
} }
outlet outlet
{ {
type patch; type patch;
nFaces 57; nFaces 57;
startFace 24200; startFace 24200;
} }
upperWall upperWall
{ {
type wall; type wall;
nFaces 223; nFaces 223;
startFace 24257; startFace 24257;
} }
lowerWall lowerWall
{ {
type wall; type wall;
nFaces 250; nFaces 250;
startFace 24480; startFace 24480;
} }
frontAndBack frontAndBack
{ {
type empty; type empty;

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 | | \\ / O peration | Version: dev |
| \\ / A nd | Web: http://www.OpenFOAM.org | | \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
@ -10,6 +10,7 @@ FoamFile
version 2.0; version 2.0;
format ascii; format ascii;
class polyBoundaryMesh; class polyBoundaryMesh;
location "constant/polyMesh";
object boundary; object boundary;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -22,28 +23,24 @@ inlet
nFaces 30; nFaces 30;
startFace 24170; startFace 24170;
} }
outlet outlet
{ {
type patch; type patch;
nFaces 57; nFaces 57;
startFace 24200; startFace 24200;
} }
upperWall upperWall
{ {
type wall; type wall;
nFaces 223; nFaces 223;
startFace 24257; startFace 24257;
} }
lowerWall lowerWall
{ {
type wall; type wall;
nFaces 250; nFaces 250;
startFace 24480; startFace 24480;
} }
frontAndBack frontAndBack
{ {
type empty; type empty;

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++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 | | \\ / O peration | Version: dev |
| \\ / A nd | Web: http://www.OpenFOAM.org | | \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
@ -10,6 +10,7 @@ FoamFile
version 2.0; version 2.0;
format ascii; format ascii;
class polyBoundaryMesh; class polyBoundaryMesh;
location "constant/polyMesh";
object boundary; object boundary;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -22,28 +23,24 @@ inlet
nFaces 30; nFaces 30;
startFace 24170; startFace 24170;
} }
outlet outlet
{ {
type patch; type patch;
nFaces 57; nFaces 57;
startFace 24200; startFace 24200;
} }
upperWall upperWall
{ {
type wall; type wall;
nFaces 223; nFaces 223;
startFace 24257; startFace 24257;
} }
lowerWall lowerWall
{ {
type wall; type wall;
nFaces 250; nFaces 250;
startFace 24480; startFace 24480;
} }
frontAndBack frontAndBack
{ {
type empty; type empty;

View File

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

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\ /*--------------------------------*- C++ -*----------------------------------*\
| ========= | | | ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 | | \\ / O peration | Version: dev |
| \\ / A nd | Web: http://www.OpenFOAM.org | | \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
@ -10,6 +10,7 @@ FoamFile
version 2.0; version 2.0;
format ascii; format ascii;
class polyBoundaryMesh; class polyBoundaryMesh;
location "constant/polyMesh";
object boundary; object boundary;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -22,14 +23,12 @@ piston
nFaces 1326; nFaces 1326;
startFace 79522; startFace 79522;
} }
liner liner
{ {
type wall; type wall;
nFaces 2710; nFaces 2710;
startFace 80848; startFace 80848;
} }
cylinderHead cylinderHead
{ {
type wall; type wall;

View File

@ -10,7 +10,7 @@ FoamFile
version 2.0; version 2.0;
format ascii; format ascii;
class dictionary; 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 | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 | | \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org | | \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
{ {
version 2.0; version 2.0;
format ascii; format ascii;
class dictionary; class volScalarField;
location "system"; object k;
object decomposeParDict;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 6; #include "initialConditions"
method hierarchical; dimensions [0 2 -2 0 0 0 0];
simpleCoeffs internalField uniform $turbulentKE;
{
n ( 4 1 1 );
delta 0.001;
}
hierarchicalCoeffs
{
n ( 3 2 1 );
delta 0.001;
order xyz;
}
manualCoeffs
{
dataFile "cellDecomposition";
}
metisCoeffs
{
}
#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 | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 | | \\ / O peration | Version: 1.0 |
| \\ / A nd | Web: http://www.OpenFOAM.org | | \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
{ {
version 2.0; version 2.0;
format ascii; format ascii;
root "";
case "";
instance "";
local "";
class dictionary; class dictionary;
object blockMeshDict; object blockMeshDict;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1; convertToMeters 1;
vertices vertices
( (
(-20.29 -10 -4.232e-05) (-5 -4 0)
( 41.71 -10 -4.232e-05) (15 -4 0)
( 41.71 10 -4.232e-05) (15 4 0)
(-20.29 10 -4.232e-05) (-5 4 0)
(-20.29 -10 20) (-5 -4 8)
( 41.71 -10 20) (15 -4 8)
( 41.71 10 20) (15 4 8)
(-20.29 10 20) (-5 4 8)
); );
blocks 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 edges
@ -40,35 +48,27 @@ edges
patches patches
( (
patch maxY patch frontAndBack
( (
(3 7 6 2) (3 7 6 2)
(1 5 4 0)
) )
patch minX patch inlet
( (
(0 4 7 3) (0 4 7 3)
) )
patch maxX patch outlet
( (
(2 6 5 1) (2 6 5 1)
) )
patch minY wall lowerWall
(
(1 5 4 0)
)
patch minZ
( (
(0 3 2 1) (0 3 2 1)
) )
patch maxZ patch upperWall
( (
(4 5 6 7) (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 | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 | | \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org | | \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
@ -10,21 +10,12 @@ FoamFile
version 2.0; version 2.0;
format ascii; format ascii;
class dictionary; class dictionary;
location "system"; object transportProperties;
object fvSolution;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers transportModel Newtonian;
{}
PISO
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
}
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 | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 | | \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org | | \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
@ -10,32 +10,33 @@ FoamFile
version 2.0; version 2.0;
format ascii; format ascii;
class dictionary; class dictionary;
location "system";
object controlDict; object controlDict;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application simpleFoam;
startFrom latestTime; startFrom latestTime;
startTime 0; startTime 0;
stopAt endTime; stopAt endTime;
endTime 100; endTime 500;
deltaT 1; deltaT 1;
writeControl timeStep; writeControl timeStep;
writeInterval 1; writeInterval 100;
purgeWrite 0; purgeWrite 0;
writeFormat ascii; writeFormat ascii;
writePrecision 7; writePrecision 6;
writeCompression uncompressed; writeCompression compressed;
timeFormat general; timeFormat general;
@ -43,5 +44,4 @@ timePrecision 6;
runTimeModifiable yes; 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 | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 | | \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: www.OpenFOAM.org | | \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
@ -10,40 +10,43 @@ FoamFile
version 2.0; version 2.0;
format ascii; format ascii;
class dictionary; class dictionary;
location "system";
object fvSchemes; object fvSchemes;
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes ddtSchemes
{ {
default Euler; default steadyState;
} }
gradSchemes gradSchemes
{ {
default Gauss linear; default Gauss linear;
grad(p) Gauss linear; grad(p) Gauss linear;
grad(U) Gauss linear;
// grad(U) cellLimited Gauss linear 1;
} }
divSchemes divSchemes
{ {
default none; 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 laplacianSchemes
{ {
default none; default Gauss linear corrected;
laplacian(nu,U) Gauss linear corrected; // default Gauss linear limited 0.5;
laplacian(1|A(U),p) Gauss linear corrected; // default Gauss linear limited 0.333;
laplacian(diffusivity,cellMotionU) Gauss linear uncorrected;
} }
interpolationSchemes interpolationSchemes
{ {
default linear; default linear;
interpolate(HbyA) linear; interpolate(U) linear;
} }
snGradSchemes snGradSchemes
@ -57,5 +60,4 @@ fluxRequired
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 | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 | | \\ / O peration | Version: 1.0 |
| \\ / A nd | Web: www.OpenFOAM.org | | \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | | | \\/ M anipulation | |
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
FoamFile FoamFile
{ {
version 2.0; version 2.0;
format ascii; format ascii;
class dictionary; class dictionary;
location "system";
object snappyHexMeshDict; object snappyHexMeshDict;
} }
@ -39,10 +39,11 @@ geometry
refinementBox refinementBox
{ {
type searchableBox; type searchableBox;
min ( -0.3 -0.4 -0.1 ); min (-1.0 -0.7 0.0);
max ( 3 0.4 1.4 ); max ( 8.0 0.7 2.5);
}
} }
};
// Settings for the castellatedMesh generation. // Settings for the castellatedMesh generation.
@ -57,7 +58,6 @@ castellatedMeshControls
// it will do just more refinement iterations to obtain a similar mesh. // it will do just more refinement iterations to obtain a similar mesh.
maxLocalCells 1000000; maxLocalCells 1000000;
// Overall cell limit (approximately). Refinement will stop immediately // Overall cell limit (approximately). Refinement will stop immediately
// upon reaching this number so a refinement level might not complete. // upon reaching this number so a refinement level might not complete.
// Note that this is the number of cells before removing the part which // Note that this is the number of cells before removing the part which
@ -74,7 +74,7 @@ castellatedMeshControls
// Number of buffer layers between different levels. // Number of buffer layers between different levels.
// 1 means normal 2:1 refinement restriction, larger means slower // 1 means normal 2:1 refinement restriction, larger means slower
// refinement. // refinement.
nCellsBetweenLevels 2; nCellsBetweenLevels 3;
@ -127,17 +127,17 @@ castellatedMeshControls
// cells inside the surface get refined up to the level. The surface // cells inside the surface get refined up to the level. The surface
// needs to be closed for this to be possible. // needs to be closed for this to be possible.
// - outside. Same but cells outside. // - outside. Same but cells outside.
refinementRegions refinementRegions
{ {
refinementBox refinementBox
{ {
mode inside; mode inside;
levels ( ( 1e+15 4 ) ); levels ((1E15 4));
} }
} }
// Mesh selection // Mesh selection
// ~~~~~~~~~~~~~~ // ~~~~~~~~~~~~~~
@ -150,6 +150,7 @@ castellatedMeshControls
} }
// Settings for the snapping. // Settings for the snapping.
snapControls snapControls
{ {
@ -171,6 +172,7 @@ snapControls
} }
// Settings for the layer addition. // Settings for the layer addition.
addLayersControls addLayersControls
{ {
@ -181,8 +183,271 @@ addLayersControls
{ {
nSurfaceLayers 1; nSurfaceLayers 1;
} }
motorBike_frt-fairing:001%1
"motorBike_.*" {
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; nSurfaceLayers 1;
} }
@ -239,13 +504,10 @@ addLayersControls
// Create buffer region for new layer terminations // Create buffer region for new layer terminations
nBufferCellsNoExtrude 0; nBufferCellsNoExtrude 0;
// Overall max number of layer addition iterations
nLayerIter 50;
} }
// Generic mesh quality settings. At any undoable phase these determine // Generic mesh quality settings. At any undoable phase these determine
// where to undo. // where to undo.
meshQualityControls meshQualityControls
@ -299,7 +561,6 @@ meshQualityControls
} }
// Advanced // Advanced
// Flags for optional output // Flags for optional output
@ -312,7 +573,7 @@ debug 0;
// Merge tolerance. Is fraction of overall bounding box of initial mesh. // Merge tolerance. Is fraction of overall bounding box of initial mesh.
// Note: the write tolerance needs to be higher than this. // 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; H2O H2O defaultCoeffs;
solidFuelComponents solidComponents
( (
C C
ash ash

View File

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

View File

@ -23,9 +23,13 @@ foamChemistryFile "$FOAM_CASE/chemkin/foam.inp";
foamChemistryThermoFile "$FOAM_CASE/chemkin/foam.dat"; foamChemistryThermoFile "$FOAM_CASE/chemkin/foam.dat";
liquidComponents ( H2O ); liquidComponents
(
H2O
);
solidFuelComponents ( ); solidComponents
();
inertSpecie N2; 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 RANLIB = ranlib
LD = ld LD = ld
GFLAGS = -D$(WM_ARCH) -D$(WM_PRECISION_OPTION) GFLAGS = -D$(WM_ARCH) -DWM_$(WM_PRECISION_OPTION)
GINC = GINC =
GLIBS = -lm GLIBS = -lm
GLIB_LIBS = GLIB_LIBS =