mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of ssh://noisy/home/noisy3/OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -2,8 +2,8 @@
|
||||
cd ${0%/*} || exit 1 # run from this directory
|
||||
set -x
|
||||
|
||||
# force update of Foam::FOAMversion string (git tag or $WM_PROJECT_VERSION)
|
||||
/bin/rm -f OpenFOAM/Make/$WM_OPTIONS/global.? 2>/dev/null
|
||||
# update Foam::FOAMversion string if required
|
||||
wmakePrintBuild -check || /bin/rm -f OpenFOAM/Make/$WM_OPTIONS/global.? 2>/dev/null
|
||||
|
||||
wmakeLnInclude -f OpenFOAM
|
||||
wmakeLnInclude -f OSspecific/$WM_OS
|
||||
|
||||
@ -23,20 +23,19 @@ License
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Description
|
||||
Define the globals used in the FOAM library. It is important that these
|
||||
are constructed in the appropriate order to avoid the use of unconstructed
|
||||
data in the global namespace.
|
||||
Define the globals used in the OpenFOAM library.
|
||||
It is important that these are constructed in the appropriate order to
|
||||
avoid the use of unconstructed data in the global namespace.
|
||||
|
||||
This file has the extension .ver to force it to be parsed by the script
|
||||
which converts WM_PROJECT_VERSION into the appropriate version number
|
||||
string.
|
||||
This file has the extension .Cver to trigger a Makefile rule that converts
|
||||
WM_PROJECT_VERSION into the appropriate version string.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
#include "foamVersion.H"
|
||||
|
||||
const char* const Foam::FOAMversion = WM_PROJECT_VERSION;
|
||||
const char* const Foam::FOAMversion = "WM_PROJECT_VERSION";
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
// Setup an error handler for the global new operator
|
||||
@ -51,7 +50,7 @@ const char* const Foam::FOAMversion = WM_PROJECT_VERSION;
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "JobInfo.H"
|
||||
bool Foam::JobInfo::constructed = false;
|
||||
bool Foam::JobInfo::constructed(false);
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
// Global error definitions (initialised by construction)
|
||||
|
||||
@ -175,9 +175,8 @@ void turbulentInletFvPatchField<Type>::updateCoeffs()
|
||||
ranGen_.randomise(randomField[facei]);
|
||||
}
|
||||
|
||||
// Correction-factor proposed by Yi Wang to compensate for the loss
|
||||
// of RMS fluctuation due to the temporal correlation introduced by
|
||||
// the alpha parameter.
|
||||
// Correction-factor to compensate for the loss of RMS fluctuation
|
||||
// due to the temporal correlation introduced by the alpha parameter.
|
||||
scalar rmsCorr = sqrt(12*(2*alpha_ - sqr(alpha_)))/alpha_;
|
||||
|
||||
patchField =
|
||||
@ -206,6 +205,7 @@ void turbulentInletFvPatchField<Type>::write(Ostream& os) const
|
||||
os.writeKeyword("fluctuationScale")
|
||||
<< fluctuationScale_ << token::END_STATEMENT << nl;
|
||||
referenceField_.writeEntry("referenceField", os);
|
||||
os.writeKeyword("alpha") << alpha_ << token::END_STATEMENT << nl;
|
||||
this->writeEntry("value", os);
|
||||
}
|
||||
|
||||
|
||||
@ -63,7 +63,6 @@ class turbulentInletFvPatchField
|
||||
:
|
||||
public fixedValueFvPatchField<Type>
|
||||
{
|
||||
|
||||
// Private data
|
||||
|
||||
Random ranGen_;
|
||||
|
||||
@ -35,65 +35,6 @@ License
|
||||
|
||||
// * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * * //
|
||||
|
||||
template<class ParcelType>
|
||||
void Foam::KinematicCloud<ParcelType>::setInjectorCellAndPosition
|
||||
(
|
||||
label& pCell,
|
||||
vector& pPosition
|
||||
)
|
||||
{
|
||||
const vector originalPosition = pPosition;
|
||||
|
||||
bool foundCell = false;
|
||||
|
||||
pCell = mesh_.findCell(pPosition);
|
||||
|
||||
if (pCell >= 0)
|
||||
{
|
||||
const vector& C = mesh_.C()[pCell];
|
||||
pPosition += 1.0e-6*(C - pPosition);
|
||||
|
||||
foundCell = mesh_.pointInCell
|
||||
(
|
||||
pPosition,
|
||||
pCell
|
||||
);
|
||||
}
|
||||
reduce(foundCell, orOp<bool>());
|
||||
|
||||
// Last chance - find nearest cell and try that one
|
||||
// - the point is probably on an edge
|
||||
if (!foundCell)
|
||||
{
|
||||
pCell = mesh_.findNearestCell(pPosition);
|
||||
|
||||
if (pCell >= 0)
|
||||
{
|
||||
const vector& C = mesh_.C()[pCell];
|
||||
pPosition += 1.0e-6*(C - pPosition);
|
||||
|
||||
foundCell = mesh_.pointInCell
|
||||
(
|
||||
pPosition,
|
||||
pCell
|
||||
);
|
||||
}
|
||||
reduce(foundCell, orOp<bool>());
|
||||
}
|
||||
|
||||
if (!foundCell)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"void KinematicCloud<ParcelType>::findInjectorCell"
|
||||
"(label&, vector&)"
|
||||
)<< "Cannot find parcel injection cell. "
|
||||
<< "Parcel position = " << originalPosition << nl
|
||||
<< abort(FatalError);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
template<class ParcelType>
|
||||
Foam::scalar Foam::KinematicCloud<ParcelType>::setNumberOfParticles
|
||||
(
|
||||
@ -324,7 +265,7 @@ void Foam::KinematicCloud<ParcelType>::evolve()
|
||||
g_.value()
|
||||
);
|
||||
|
||||
inject(td);
|
||||
inject();
|
||||
|
||||
if (coupled_)
|
||||
{
|
||||
@ -336,15 +277,11 @@ void Foam::KinematicCloud<ParcelType>::evolve()
|
||||
|
||||
|
||||
template<class ParcelType>
|
||||
template<class TrackingData>
|
||||
void Foam::KinematicCloud<ParcelType>::inject
|
||||
(
|
||||
TrackingData& td
|
||||
)
|
||||
void Foam::KinematicCloud<ParcelType>::inject()
|
||||
{
|
||||
scalar time = this->db().time().value();
|
||||
|
||||
scalar pRho = td.constProps().rho0();
|
||||
scalar pRho = constProps_.rho0();
|
||||
|
||||
this->injection().prepareForNextTimeStep(time0_, time);
|
||||
|
||||
@ -419,21 +356,21 @@ void Foam::KinematicCloud<ParcelType>::inject
|
||||
|
||||
// Determine the injection cell
|
||||
label pCell = -1;
|
||||
setInjectorCellAndPosition(pCell, pPosition);
|
||||
this->injection().findInjectorCellAndPosition(pCell, pPosition);
|
||||
|
||||
if (pCell >= 0)
|
||||
{
|
||||
// construct the parcel that is to be injected
|
||||
ParcelType* pPtr = new ParcelType
|
||||
(
|
||||
td.cloud(),
|
||||
*this,
|
||||
parcelTypeId_,
|
||||
pPosition,
|
||||
pCell,
|
||||
pDiameter,
|
||||
pU,
|
||||
pNumberOfParticles,
|
||||
td.constProps()
|
||||
constProps_
|
||||
);
|
||||
|
||||
scalar dt = time - timeInj;
|
||||
@ -441,7 +378,7 @@ void Foam::KinematicCloud<ParcelType>::inject
|
||||
pPtr->stepFraction() = (this->db().time().deltaT().value() - dt)
|
||||
/this->time().deltaT().value();
|
||||
|
||||
this->injectParcel(td, pPtr);
|
||||
this->injectParcel(pPtr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -455,12 +392,7 @@ void Foam::KinematicCloud<ParcelType>::inject
|
||||
|
||||
|
||||
template<class ParcelType>
|
||||
template<class TrackingData>
|
||||
void Foam::KinematicCloud<ParcelType>::injectParcel
|
||||
(
|
||||
TrackingData& td,
|
||||
ParcelType* p
|
||||
)
|
||||
void Foam::KinematicCloud<ParcelType>::injectParcel(ParcelType* p)
|
||||
{
|
||||
addParticle(p);
|
||||
nParcelsAdded_++;
|
||||
|
||||
@ -223,13 +223,6 @@ protected:
|
||||
|
||||
// Protected member functions
|
||||
|
||||
//- Set parcel position and cell into which parcel is introduced
|
||||
void setInjectorCellAndPosition
|
||||
(
|
||||
label& pCell,
|
||||
vector& pPosition
|
||||
);
|
||||
|
||||
//- Set the number of particles per parcel
|
||||
scalar setNumberOfParticles
|
||||
(
|
||||
@ -241,16 +234,10 @@ protected:
|
||||
);
|
||||
|
||||
//- Inject more parcels
|
||||
template<class TrackingData>
|
||||
void inject(TrackingData& td);
|
||||
void inject();
|
||||
|
||||
//- Inject parcel if it is valid - delete otherwise
|
||||
template<class TrackingData>
|
||||
void injectParcel
|
||||
(
|
||||
TrackingData& td,
|
||||
ParcelType* p
|
||||
);
|
||||
void injectParcel(ParcelType* p);
|
||||
|
||||
//- Post-injection checks
|
||||
void postInjectCheck();
|
||||
|
||||
@ -174,7 +174,7 @@ void Foam::ReactingCloud<ParcelType>::evolve()
|
||||
this->g().value()
|
||||
);
|
||||
|
||||
inject(td);
|
||||
inject();
|
||||
|
||||
if (this->coupled())
|
||||
{
|
||||
@ -186,15 +186,11 @@ void Foam::ReactingCloud<ParcelType>::evolve()
|
||||
|
||||
|
||||
template<class ParcelType>
|
||||
template<class TrackingData>
|
||||
void Foam::ReactingCloud<ParcelType>::inject
|
||||
(
|
||||
TrackingData& td
|
||||
)
|
||||
void Foam::ReactingCloud<ParcelType>::inject()
|
||||
{
|
||||
scalar time = this->db().time().value();
|
||||
|
||||
scalar pRho = td.constProps().rho0();
|
||||
scalar pRho = this->constProps().rho0();
|
||||
|
||||
this->injection().prepareForNextTimeStep(this->time0(), time);
|
||||
|
||||
@ -269,14 +265,14 @@ void Foam::ReactingCloud<ParcelType>::inject
|
||||
|
||||
// Determine the injection cell
|
||||
label pCell = -1;
|
||||
this->setInjectorCellAndPosition(pCell, pPosition);
|
||||
this->injection().findInjectorCellAndPosition(pCell, pPosition);
|
||||
|
||||
if (pCell >= 0)
|
||||
{
|
||||
// construct the parcel that is to be injected
|
||||
ParcelType* pPtr = new ParcelType
|
||||
(
|
||||
td.cloud(),
|
||||
*this,
|
||||
this->parcelTypeId(),
|
||||
pPosition,
|
||||
pCell,
|
||||
@ -287,7 +283,7 @@ void Foam::ReactingCloud<ParcelType>::inject
|
||||
composition().YLiquid0(),
|
||||
composition().YSolid0(),
|
||||
composition().YMixture0(),
|
||||
td.constProps()
|
||||
this->constProps()
|
||||
);
|
||||
|
||||
scalar dt = time - timeInj;
|
||||
@ -295,7 +291,7 @@ void Foam::ReactingCloud<ParcelType>::inject
|
||||
pPtr->stepFraction() = (this->db().time().deltaT().value() - dt)
|
||||
/this->db().time().deltaT().value();
|
||||
|
||||
this->injectParcel(td, pPtr);
|
||||
this->injectParcel(pPtr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -117,8 +117,7 @@ class ReactingCloud
|
||||
protected:
|
||||
|
||||
//- Inject more parcels
|
||||
template<class TrackingData>
|
||||
void inject(TrackingData& td);
|
||||
void inject();
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -159,6 +159,57 @@ void Foam::InjectionModel<CloudType>::prepareForNextTimeStep
|
||||
}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
void Foam::InjectionModel<CloudType>::findInjectorCellAndPosition
|
||||
(
|
||||
label& cellI,
|
||||
vector& position
|
||||
)
|
||||
{
|
||||
const vector p0 = position;
|
||||
|
||||
bool foundCell = false;
|
||||
|
||||
cellI = owner_.mesh().findCell(position);
|
||||
|
||||
if (cellI >= 0)
|
||||
{
|
||||
const vector& C = owner_.mesh().C()[cellI];
|
||||
position += 1.0e-6*(C - position);
|
||||
|
||||
foundCell = owner_.mesh().pointInCell(position, cellI);
|
||||
}
|
||||
reduce(foundCell, orOp<bool>());
|
||||
|
||||
// Last chance - find nearest cell and try that one
|
||||
// - the point is probably on an edge
|
||||
if (!foundCell)
|
||||
{
|
||||
cellI = owner_.mesh().findNearestCell(position);
|
||||
|
||||
if (cellI >= 0)
|
||||
{
|
||||
const vector& C = owner_.mesh().C()[cellI];
|
||||
position += 1.0e-6*(C - position);
|
||||
|
||||
foundCell = owner_.mesh().pointInCell(position, cellI);
|
||||
}
|
||||
reduce(foundCell, orOp<bool>());
|
||||
}
|
||||
|
||||
if (!foundCell)
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"InjectionModel<CloudType>::setInjectorCellAndPosition"
|
||||
"(label&, vector&)"
|
||||
)<< "Cannot find parcel injection cell. "
|
||||
<< "Parcel position = " << p0 << nl
|
||||
<< abort(FatalError);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "NewInjectionModel.C"
|
||||
|
||||
@ -208,6 +208,14 @@ public:
|
||||
|
||||
// Injection geometry
|
||||
|
||||
//- Find the cell that contains the injector position
|
||||
// Will modify position slightly towards the owner cell centroid
|
||||
virtual void findInjectorCellAndPosition
|
||||
(
|
||||
label& cellI,
|
||||
vector& position
|
||||
);
|
||||
|
||||
//- Return the injection position
|
||||
virtual vector position
|
||||
(
|
||||
|
||||
@ -3,10 +3,8 @@ cd ${0%/*} || exit 1 # run from this directory
|
||||
set -x
|
||||
|
||||
wmake libo postCalc
|
||||
wmake libso forces
|
||||
wmake libso fieldAverage
|
||||
wmake libso foamCalcFunctions
|
||||
wmake libso minMaxFields
|
||||
wmake libso systemCall
|
||||
|
||||
(cd functionObjects && ./Allwmake)
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
|
||||
10
src/postProcessing/functionObjects/Allwmake
Executable file
10
src/postProcessing/functionObjects/Allwmake
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
cd ${0%/*} || exit 1 # run from this directory
|
||||
set -x
|
||||
|
||||
wmake libso fieldAverage
|
||||
wmake libso forces
|
||||
wmake libso minMaxFields
|
||||
wmake libso systemCall
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
@ -88,7 +88,7 @@ autoPtr<turbulenceModel> turbulenceModel::New
|
||||
)
|
||||
);
|
||||
|
||||
turbulencePropertiesDict.lookup("turbulenceModel")
|
||||
turbulencePropertiesDict.lookup("simulationType")
|
||||
>> turbulenceModelTypeName;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user