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:
@ -70,6 +70,8 @@ int main(int argc, char *argv[])
|
||||
+ turbulence->divDevReff(U)
|
||||
);
|
||||
|
||||
UEqn.relax();
|
||||
|
||||
if (momentumPredictor)
|
||||
{
|
||||
solve(UEqn == -fvc::grad(p));
|
||||
|
||||
@ -37,7 +37,14 @@
|
||||
- fvm::laplacian(rUAf, p)
|
||||
);
|
||||
|
||||
pEqn.solve();
|
||||
if (corr == nCorr-1 && nonOrth == nNonOrthCorr)
|
||||
{
|
||||
pEqn.solve(mesh.solver(p.name() + "Final"));
|
||||
}
|
||||
else
|
||||
{
|
||||
pEqn.solve(mesh.solver(p.name()));
|
||||
}
|
||||
|
||||
if (nonOrth == nNonOrthCorr)
|
||||
{
|
||||
|
||||
@ -1,13 +1,16 @@
|
||||
surfaceScalarField muf =
|
||||
surfaceScalarField muEff
|
||||
(
|
||||
"muEff",
|
||||
twoPhaseProperties.muf()
|
||||
+ fvc::interpolate(rho*turbulence->nut());
|
||||
+ fvc::interpolate(rho*turbulence->nut())
|
||||
);
|
||||
|
||||
fvVectorMatrix UEqn
|
||||
(
|
||||
fvm::ddt(rho, U)
|
||||
+ fvm::div(rhoPhi, U)
|
||||
- fvm::laplacian(muf, U)
|
||||
- (fvc::grad(U) & fvc::grad(muf))
|
||||
- fvm::laplacian(muEff, U)
|
||||
- (fvc::grad(U) & fvc::grad(muEff))
|
||||
//- fvc::div(muf*(mesh.Sf() & fvc::interpolate(fvc::grad(U)().T())))
|
||||
);
|
||||
|
||||
|
||||
@ -12,7 +12,9 @@
|
||||
surfaceScalarField phic = mag(phi/mesh.magSf());
|
||||
phic = min(interface.cAlpha()*phic, max(phic));
|
||||
|
||||
fvc::makeAbsolute(phi, U);
|
||||
volScalarField divU = fvc::div(phi);
|
||||
fvc::makeRelative(phi, U);
|
||||
|
||||
if (nAlphaSubCycles > 1)
|
||||
{
|
||||
|
||||
@ -38,6 +38,26 @@
|
||||
- fvm::laplacian(rUAf, pd)
|
||||
);
|
||||
|
||||
if
|
||||
(
|
||||
oCorr == nOuterCorr-1
|
||||
&& corr == nCorr-1
|
||||
&& nonOrth == nNonOrthCorr
|
||||
)
|
||||
{
|
||||
solve
|
||||
(
|
||||
(
|
||||
max(alpha1, scalar(0))*(psi1/rho1)
|
||||
+ max(alpha2, scalar(0))*(psi2/rho2)
|
||||
)
|
||||
*pdEqnComp()
|
||||
+ pdEqnIncomp,
|
||||
mesh.solver(pd.name() + "Final")
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
solve
|
||||
(
|
||||
(
|
||||
@ -47,6 +67,7 @@
|
||||
*pdEqnComp()
|
||||
+ pdEqnIncomp
|
||||
);
|
||||
}
|
||||
|
||||
if (nonOrth == nNonOrthCorr)
|
||||
{
|
||||
@ -62,7 +83,8 @@
|
||||
|
||||
p = max
|
||||
(
|
||||
(pd + gh*(alpha1*rho10 + alpha2*rho20))/(1.0 - gh*(alpha1*psi1 + alpha2*psi2)),
|
||||
(pd + gh*(alpha1*rho10 + alpha2*rho20))
|
||||
/(1.0 - gh*(alpha1*psi1 + alpha2*psi2)),
|
||||
pMin
|
||||
);
|
||||
|
||||
|
||||
@ -1,15 +1,18 @@
|
||||
surfaceScalarField muf =
|
||||
surfaceScalarField muEff
|
||||
(
|
||||
"muEff",
|
||||
twoPhaseProperties->muf()
|
||||
+ fvc::interpolate(rho*turbulence->nut());
|
||||
+ fvc::interpolate(rho*turbulence->nut())
|
||||
);
|
||||
|
||||
fvVectorMatrix UEqn
|
||||
(
|
||||
fvm::ddt(rho, U)
|
||||
+ fvm::div(rhoPhi, U)
|
||||
- fvm::Sp(fvc::ddt(rho) + fvc::div(rhoPhi), U)
|
||||
- fvm::laplacian(muf, U)
|
||||
- (fvc::grad(U) & fvc::grad(muf))
|
||||
//- fvc::div(muf*(fvc::interpolate(dev2(fvc::grad(U))) & mesh.Sf()))
|
||||
- fvm::laplacian(muEff, U)
|
||||
- (fvc::grad(U) & fvc::grad(muEff))
|
||||
//- fvc::div(muEff*(fvc::interpolate(dev2(fvc::grad(U))) & mesh.Sf()))
|
||||
);
|
||||
|
||||
UEqn.relax();
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
22
tutorials/buoyantFoam/hotRoom/constant/turbulenceProperties
Normal file
22
tutorials/buoyantFoam/hotRoom/constant/turbulenceProperties
Normal file
@ -0,0 +1,22 @@
|
||||
/*--------------------------------*- 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 turbulenceProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
//simulationType laminar;
|
||||
simulationType RASModel;
|
||||
//simulationType LESModel;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -16,7 +16,9 @@ FoamFile
|
||||
|
||||
LESModel laminar;
|
||||
|
||||
delta smooth;
|
||||
turbulence off;
|
||||
|
||||
delta cubeRootVol;
|
||||
|
||||
laminarCoeffs
|
||||
{
|
||||
@ -1,15 +1,16 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: dev |
|
||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
| \\ / O peration | Version: dev-09ca1eb6b56f |
|
||||
| \\ / A nd | |
|
||||
| \\/ M anipulation | www.OpenFOAM.org |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class polyBoundaryMesh;
|
||||
location "constant/polyMesh";
|
||||
object boundary;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -0,0 +1,22 @@
|
||||
/*--------------------------------*- 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 turbulenceProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
//simulationType laminar;
|
||||
//simulationType RASModel;
|
||||
simulationType LESModel;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -120,7 +120,7 @@ PISO
|
||||
nNonOrthogonalCorrectors 0;
|
||||
nAlphaCorr 1;
|
||||
nAlphaSubCycles 1;
|
||||
cGamma 1;
|
||||
cAlpha 1;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -16,7 +16,9 @@ FoamFile
|
||||
|
||||
LESModel laminar;
|
||||
|
||||
delta smooth;
|
||||
turbulence off;
|
||||
|
||||
delta cubeRootVol;
|
||||
|
||||
laminarCoeffs
|
||||
{
|
||||
@ -1,15 +1,16 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: dev |
|
||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||
| \\/ M anipulation | |
|
||||
| \\ / O peration | Version: dev-09ca1eb6b56f |
|
||||
| \\ / A nd | |
|
||||
| \\/ M anipulation | www.OpenFOAM.org |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class polyBoundaryMesh;
|
||||
location "constant/polyMesh";
|
||||
object boundary;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -0,0 +1,22 @@
|
||||
/*--------------------------------*- 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 turbulenceProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
//simulationType laminar;
|
||||
//simulationType RASModel;
|
||||
simulationType LESModel;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -120,7 +120,7 @@ PISO
|
||||
nNonOrthogonalCorrectors 0;
|
||||
nAlphaCorr 1;
|
||||
nAlphaSubCycles 1;
|
||||
cGamma 1;
|
||||
cAlpha 1;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,10 +1,10 @@
|
||||
.SUFFIXES: .Cver
|
||||
|
||||
#
|
||||
# update version string
|
||||
# update version string in C++ file and in $WM_PROJECT_DIR/.build file
|
||||
#
|
||||
Cvertoo = \
|
||||
sed s/WM_PROJECT_VERSION/\"$(shell wmakePrintBuild)\"/ $$SOURCE > $*.C; \
|
||||
sed 's/WM_PROJECT_VERSION/$(shell wmakePrintBuild -update)/' $$SOURCE > $*.C; \
|
||||
$(CC) $(c++FLAGS) -c $*.C -o $@
|
||||
|
||||
.Cver.dep:
|
||||
|
||||
@ -35,10 +35,15 @@ Script=${0##*/}
|
||||
usage() {
|
||||
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
||||
cat<<USAGE
|
||||
usage: $Script
|
||||
usage: $Script [OPTION]
|
||||
options:
|
||||
-check check the git head commit vs. \$WM_PROJECT_DIR/.build
|
||||
(exit code 0 for no changes)
|
||||
-update update the \$WM_PROJECT_DIR/.build from the git information
|
||||
-version VER specify an alternative version
|
||||
|
||||
Print the version used when building the project, in this order of precedence:
|
||||
* git description
|
||||
* the git head commit (prefixed with \$WM_PROJECT_VERSION)
|
||||
* \$WM_PROJECT_DIR/.build
|
||||
* \$WM_PROJECT_VERSION
|
||||
|
||||
@ -47,11 +52,33 @@ USAGE
|
||||
}
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# provide immediate help
|
||||
if [ "$1" = "-h" -o "$1" = "-help" ]
|
||||
then
|
||||
unset checkOnly update version
|
||||
|
||||
# parse options
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
-h | -help)
|
||||
usage
|
||||
fi
|
||||
;;
|
||||
-check)
|
||||
checkOnly=true
|
||||
shift
|
||||
;;
|
||||
-update)
|
||||
update=true
|
||||
shift
|
||||
;;
|
||||
-version)
|
||||
[ "$#" -ge 2 ] || usage "'$1' option requires an argument"
|
||||
version=$2
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
usage "unknown option/argument: '$*'"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -61,15 +88,25 @@ fi
|
||||
build="$WM_PROJECT_DIR/.build"
|
||||
previous=$(tail -1 $build 2>/dev/null)
|
||||
|
||||
#
|
||||
# building under git
|
||||
# note: could also use --abbrev=32 for maximum resolution
|
||||
#
|
||||
version=$(git describe --always --tags 2>/dev/null)
|
||||
if [ $? -eq 0 ]
|
||||
if [ -n "$version" ]
|
||||
then
|
||||
# update persistent build tag (this could be made optional or removed)
|
||||
if [ "$version" != "$previous" ]
|
||||
# specified a version - no error possible
|
||||
rc=0
|
||||
else
|
||||
# building under git (get the head SHA1)
|
||||
version=$(git show-ref --hash=12 --head refs/heads/master 2>/dev/null)
|
||||
rc=$?
|
||||
|
||||
# prefix with WM_PROJECT_VERSION
|
||||
if [ $rc -eq 0 ]
|
||||
then
|
||||
version="${WM_PROJECT_VERSION}-$version"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# update persistent build tag if possible
|
||||
if [ $rc -eq 0 -a -n "$update" -a "$version" != "$previous" ]
|
||||
then
|
||||
if [ -w "$build" -a \( -w "$WM_PROJECT_DIR" -o ! -e "$build" \) ]
|
||||
then
|
||||
@ -77,19 +114,38 @@ then
|
||||
fi
|
||||
fi
|
||||
|
||||
echo $version
|
||||
|
||||
# check git vs. persistent build tag - no output
|
||||
if [ -n "$checkOnly" ]
|
||||
then
|
||||
if [ $rc -eq 0 ]
|
||||
then
|
||||
test "$version" = "$previous"
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ]
|
||||
then
|
||||
echo "same version as previous build"
|
||||
else
|
||||
echo "version changed from previous build"
|
||||
fi
|
||||
else
|
||||
echo "no git description found"
|
||||
fi
|
||||
exit $rc
|
||||
fi
|
||||
|
||||
|
||||
if [ $rc -eq 0 ]
|
||||
then
|
||||
# output the git information or the -version version
|
||||
echo $version
|
||||
elif [ -n "$previous" ]
|
||||
then
|
||||
|
||||
# use previous build tag
|
||||
echo $previous
|
||||
|
||||
else
|
||||
|
||||
# fallback to WM_PROJECT_VERSION
|
||||
# fallback to WM_PROJECT_VERSION alone
|
||||
echo ${WM_PROJECT_VERSION:-unknown}
|
||||
|
||||
fi
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user