Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-2.3.x

This commit is contained in:
mattijs 2014-04-07 10:33:32 +01:00
commit aaa77df090
16 changed files with 184 additions and 95 deletions

View file

@ -62,7 +62,7 @@ Foam::heatTransferModels::RanzMarshall::~RanzMarshall()
Foam::tmp<Foam::volScalarField>
Foam::heatTransferModels::RanzMarshall::K() const
{
volScalarField Nu(scalar(2) + 0.6*pair_.Re()*cbrt(pair_.Pr()));
volScalarField Nu(scalar(2) + 0.6*sqrt(pair_.Re())*cbrt(pair_.Pr()));
return
6.0

View file

@ -199,7 +199,10 @@ void Foam::JohnsonJacksonParticleSlipFvPatchVectorField::updateCoeffs()
const scalarField nu
(
phased.nu()->boundaryField()[patch().index()]
patch().lookupPatchField<volScalarField, scalar>
(
IOobject::groupName("nut", phased.name())
)
);
word ThetaName(IOobject::groupName("Theta", phased.name()));

View file

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -60,6 +60,20 @@ bool Foam::fileName::isAbsolute() const
}
Foam::fileName& Foam::fileName::toAbsolute()
{
fileName& f = *this;
if (!f.isAbsolute())
{
f = cwd()/f;
f.clean();
}
return f;
}
//
// * remove repeated slashes
// /abc////def --> /abc/def

View file

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -141,11 +141,14 @@ public:
// Interrogation
//- Return the file type: FILE, DIRECTORY or UNDEFINED
Type type() const;
//- Return the file type: FILE, DIRECTORY or UNDEFINED
Type type() const;
//- Return true if file name is absolute
bool isAbsolute() const;
//- Return true if file name is absolute
bool isAbsolute() const;
//- Convert from relative to absolute
fileName& toAbsolute();
// Decomposition

View file

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -154,11 +154,11 @@ Foam::cyclicACMIFvPatchField<Type>::patchNeighbourField() const
const Field<Type>& iField = this->internalField();
const labelUList& nbrFaceCellsCoupled =
cyclicACMIPatch_.cyclicACMIPatch().neighbPatch().faceCells();
const labelUList& nbrFaceCellsNonOverlap =
const labelUList& faceCellsNonOverlap =
cyclicACMIPatch_.cyclicACMIPatch().nonOverlapPatch().faceCells();
Field<Type> pnfCoupled(iField, nbrFaceCellsCoupled);
Field<Type> pnfNonOverlap(iField, nbrFaceCellsNonOverlap);
Field<Type> pfNonOverlap(iField, faceCellsNonOverlap);
tmp<Field<Type> > tpnf
(
@ -167,7 +167,7 @@ Foam::cyclicACMIFvPatchField<Type>::patchNeighbourField() const
cyclicACMIPatch_.interpolate
(
pnfCoupled,
pnfNonOverlap
pfNonOverlap
)
)
);
@ -287,10 +287,14 @@ Foam::tmp<Foam::Field<Type> > Foam::cyclicACMIFvPatchField<Type>::snGrad
template<class Type>
void Foam::cyclicACMIFvPatchField<Type>::updateCoeffs()
{
const scalarField& mask = cyclicACMIPatch_.cyclicACMIPatch().mask();
// update non-overlap patch - some will implement updateCoeffs, and
// others will implement evaluate
// scale neighbour field by (1 - mask)
const scalarField& mask = cyclicACMIPatch_.cyclicACMIPatch().mask();
const fvPatchField<Type>& npf = nonOverlapPatchField();
const_cast<fvPatchField<Type>&>(npf).updateCoeffs(mask);
const_cast<fvPatchField<Type>&>(npf).updateCoeffs(1.0 - mask);
}
@ -300,9 +304,21 @@ void Foam::cyclicACMIFvPatchField<Type>::initEvaluate
const Pstream::commsTypes comms
)
{
// update non-overlap patch
const fvPatchField<Type>& npf = nonOverlapPatchField();
const_cast<fvPatchField<Type>&>(npf).evaluate(comms);
// update non-overlap patch (if not already updated by updateCoeffs)
// scale neighbour field by (1 - mask)
fvPatchField<Type>& npf =
const_cast<fvPatchField<Type>&>(nonOverlapPatchField());
if (!npf.updated())
{
const scalarField& mask = cyclicACMIPatch_.cyclicACMIPatch().mask();
npf.evaluate(comms);
npf *= 1.0 - mask;
}
}
@ -313,13 +329,16 @@ void Foam::cyclicACMIFvPatchField<Type>::evaluate
)
{
// blend contributions from the coupled and non-overlap patches
// neighbour patch field is updated via updateCoeffs or initEvaluate
// and is already scaled by (1 - mask)
const fvPatchField<Type>& npf = nonOverlapPatchField();
coupledFvPatchField<Type>::evaluate(comms);
const Field<Type>& cpf = *this;
const scalarField& mask = cyclicACMIPatch_.cyclicACMIPatch().mask();
Field<Type>::operator=(mask*cpf + (1.0 - mask)*npf);
Field<Type>::operator=(mask*cpf + npf);
fvPatchField<Type>::evaluate();
}
@ -333,7 +352,7 @@ Foam::cyclicACMIFvPatchField<Type>::valueInternalCoeffs
) const
{
// note: do not blend based on mask field
// - when applied this is scaled by the areas which area already scaled
// - when applied this is scaled by the areas which are already scaled
return coupledFvPatchField<Type>::valueInternalCoeffs(w);
}
@ -346,7 +365,7 @@ Foam::cyclicACMIFvPatchField<Type>::valueBoundaryCoeffs
) const
{
// note: do not blend based on mask field
// - when applied this is scaled by the areas which area already scaled
// - when applied this is scaled by the areas which are already scaled
return coupledFvPatchField<Type>::valueBoundaryCoeffs(w);
}
@ -359,7 +378,7 @@ Foam::cyclicACMIFvPatchField<Type>::gradientInternalCoeffs
) const
{
// note: do not blend based on mask field
// - when applied this is scaled by the areas which area already scaled
// - when applied this is scaled by the areas which are already scaled
return coupledFvPatchField<Type>::gradientInternalCoeffs(deltaCoeffs);
}
@ -369,7 +388,7 @@ Foam::tmp<Foam::Field<Type> >
Foam::cyclicACMIFvPatchField<Type>::gradientInternalCoeffs() const
{
// note: do not blend based on mask field
// - when applied this is scaled by the areas which area already scaled
// - when applied this is scaled by the areas which are already scaled
return coupledFvPatchField<Type>::gradientInternalCoeffs();
}
@ -382,7 +401,7 @@ Foam::cyclicACMIFvPatchField<Type>::gradientBoundaryCoeffs
) const
{
// note: do not blend based on mask field
// - when applied this is scaled by the areas which area already scaled
// - when applied this is scaled by the areas which are already scaled
return coupledFvPatchField<Type>::gradientBoundaryCoeffs(deltaCoeffs);
}
@ -392,7 +411,7 @@ Foam::tmp<Foam::Field<Type> >
Foam::cyclicACMIFvPatchField<Type>::gradientBoundaryCoeffs() const
{
// note: do not blend based on mask field
// - when applied this is scaled by the areas which area already scaled
// - when applied this is scaled by the areas which are already scaled
return coupledFvPatchField<Type>::gradientBoundaryCoeffs();
}
@ -403,11 +422,13 @@ void Foam::cyclicACMIFvPatchField<Type>::manipulateMatrix
fvMatrix<Type>& matrix
)
{
// blend contributions from the coupled and non-overlap patches
const scalarField& mask = cyclicACMIPatch_.cyclicACMIPatch().mask();
// nothing to be done by the AMI, but re-direct to non-overlap patch
// with non-overlap patch weights
const fvPatchField<Type>& npf = nonOverlapPatchField();
const scalarField& mask = cyclicACMIPatch_.cyclicACMIPatch().mask();
const_cast<fvPatchField<Type>&>(npf).manipulateMatrix(matrix, mask);
const_cast<fvPatchField<Type>&>(npf).manipulateMatrix(matrix, 1.0 - mask);
}

View file

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -166,9 +166,30 @@ public:
// Evaluation functions
//- Return true if coupled. Note that the underlying patch
// is not coupled() - the points don't align.
// is not coupled() - the points don't align
virtual bool coupled() const;
//- Return true if this patch field fixes a value
// Needed to check if a level has to be specified while solving
// Poissons equations
virtual bool fixesValue() const
{
const scalarField& mask =
cyclicACMIPatch_.cyclicACMIPatch().mask();
if (gMax(mask) > 1e-5)
{
// regions connected
return false;
}
else
{
// fully separated
return nonOverlapPatchField().fixesValue();
}
}
//- Return neighbour coupled internal cell data
virtual tmp<Field<Type> > patchNeighbourField() const;

View file

@ -38,6 +38,10 @@ namespace Foam
namespace compressible
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
scalar epsilonWallFunctionFvPatchScalarField::tolerance_ = 1e-5;
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
void epsilonWallFunctionFvPatchScalarField::checkType()
@ -469,17 +473,17 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs
scalarField& epsilonf = *this;
// only set the values if the weights are < 1 - tolerance
// only set the values if the weights are > tolerance
forAll(weights, faceI)
{
scalar w = weights[faceI];
if (w < 1.0 - 1e-6)
if (w > tolerance_)
{
label cellI = patch().faceCells()[faceI];
G[cellI] = w*G[cellI] + (1.0 - w)*G0[cellI];
epsilon[cellI] = w*epsilon[cellI] + (1.0 - w)*epsilon0[cellI];
G[cellI] = (1.0 - w)*G[cellI] + w*G0[cellI];
epsilon[cellI] = (1.0 - w)*epsilon[cellI] + w*epsilon0[cellI];
epsilonf[faceI] = epsilon[cellI];
}
}
@ -521,16 +525,16 @@ void epsilonWallFunctionFvPatchScalarField::manipulateMatrix
DynamicList<scalar> constraintEpsilon(weights.size());
const labelUList& faceCells = patch().faceCells();
const DimensionedField<scalar, volMesh>& epsilon
= dimensionedInternalField();
const DimensionedField<scalar, volMesh>& epsilon =
dimensionedInternalField();
label nConstrainedCells = 0;
forAll(weights, faceI)
{
// only set the values if the weights are < 1 - tolerance
if (weights[faceI] < (1.0 - 1e-6))
// only set the values if the weights are > tolerance
if (weights[faceI] > tolerance_)
{
nConstrainedCells++;

View file

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -94,6 +94,9 @@ protected:
// Protected data
//- Tolerance used in weighted calculations
static scalar tolerance_;
//- Cmu coefficient
scalar Cmu_;

View file

@ -39,6 +39,10 @@ namespace Foam
namespace compressible
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
scalar omegaWallFunctionFvPatchScalarField::tolerance_ = 1e-5;
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
void omegaWallFunctionFvPatchScalarField::checkType()
@ -81,14 +85,14 @@ void omegaWallFunctionFvPatchScalarField::setMaster()
{
if (isA<omegaWallFunctionFvPatchScalarField>(bf[patchI]))
{
omegaWallFunctionFvPatchScalarField& epf = omegaPatch(patchI);
omegaWallFunctionFvPatchScalarField& opf = omegaPatch(patchI);
if (master == -1)
{
master = patchI;
}
epf.master() = master;
opf.master() = master;
}
}
}
@ -162,10 +166,10 @@ omegaWallFunctionFvPatchScalarField::omegaPatch(const label patchI)
const volScalarField::GeometricBoundaryField& bf = omega.boundaryField();
const omegaWallFunctionFvPatchScalarField& epf =
const omegaWallFunctionFvPatchScalarField& opf =
refCast<const omegaWallFunctionFvPatchScalarField>(bf[patchI]);
return const_cast<omegaWallFunctionFvPatchScalarField&>(epf);
return const_cast<omegaWallFunctionFvPatchScalarField&>(opf);
}
@ -181,11 +185,11 @@ void omegaWallFunctionFvPatchScalarField::calculateTurbulenceFields
{
if (!cornerWeights_[patchI].empty())
{
omegaWallFunctionFvPatchScalarField& epf = omegaPatch(patchI);
omegaWallFunctionFvPatchScalarField& opf = omegaPatch(patchI);
const List<scalar>& w = cornerWeights_[patchI];
epf.calculate(turbulence, w, epf.patch(), G0, omega0);
opf.calculate(turbulence, w, opf.patch(), G0, omega0);
}
}
@ -194,9 +198,9 @@ void omegaWallFunctionFvPatchScalarField::calculateTurbulenceFields
{
if (!cornerWeights_[patchI].empty())
{
omegaWallFunctionFvPatchScalarField& epf = omegaPatch(patchI);
omegaWallFunctionFvPatchScalarField& opf = omegaPatch(patchI);
epf == scalarField(omega0, epf.patch().faceCells());
opf == scalarField(omega0, opf.patch().faceCells());
}
}
}
@ -486,17 +490,17 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs
scalarField& omegaf = *this;
// only set the values if the weights are < 1 - tolerance
// only set the values if the weights are > tolerance_
forAll(weights, faceI)
{
scalar w = weights[faceI];
if (w < 1.0 - 1e-6)
if (w > tolerance_)
{
label cellI = patch().faceCells()[faceI];
G[cellI] = w*G[cellI] + (1.0 - w)*G0[cellI];
omega[cellI] = w*omega[cellI] + (1.0 - w)*omega0[cellI];
G[cellI] = (1.0 - w)*G[cellI] + w*G0[cellI];
omega[cellI] = (1.0 - w)*omega[cellI] + w*omega0[cellI];
omegaf[faceI] = omega[cellI];
}
}
@ -538,16 +542,16 @@ void omegaWallFunctionFvPatchScalarField::manipulateMatrix
DynamicList<scalar> constraintomega(weights.size());
const labelUList& faceCells = patch().faceCells();
const DimensionedField<scalar, volMesh>& omega
= dimensionedInternalField();
const DimensionedField<scalar, volMesh>& omega =
dimensionedInternalField();
label nConstrainedCells = 0;
forAll(weights, faceI)
{
// only set the values if the weights are < 1 - tolerance
if (weights[faceI] < (1.0 - 1e-6))
// only set the values if the weights are > tolerance
if (weights[faceI] > tolerance_)
{
nConstrainedCells++;

View file

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -99,6 +99,9 @@ protected:
// Protected data
//- Tolerance used in weighted calculations
static scalar tolerance_;
//- Cmu coefficient
scalar Cmu_;

View file

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -269,7 +269,7 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
}
}
}
q = (Ta_ - Tp)*(1.0/h_ + totalSolidRes);
q = (Ta_ - Tp)/(1.0/h_ + totalSolidRes);
break;
}
default:
@ -287,7 +287,7 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
{
if (q[i] > 0) //in
{
this->refGrad()[i] = q[i]/KWall[i];
this->refGrad()[i] = q[i]/KWall[i];
this->refValue()[i] = 0.0;
this->valueFraction()[i] = 0.0;
}

View file

@ -38,6 +38,10 @@ namespace Foam
namespace incompressible
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
scalar epsilonWallFunctionFvPatchScalarField::tolerance_ = 1e-5;
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
void epsilonWallFunctionFvPatchScalarField::checkType()
@ -469,17 +473,17 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs
scalarField& epsilonf = *this;
// only set the values if the weights are < 1 - tolerance
// only set the values if the weights are > tolerance
forAll(weights, faceI)
{
scalar w = weights[faceI];
if (w < 1.0 - 1e-6)
if (w > tolerance_)
{
label cellI = patch().faceCells()[faceI];
G[cellI] = w*G[cellI] + (1.0 - w)*G0[cellI];
epsilon[cellI] = w*epsilon[cellI] + (1.0 - w)*epsilon0[cellI];
G[cellI] = (1.0 - w)*G[cellI] + w*G0[cellI];
epsilon[cellI] = (1.0 - w)*epsilon[cellI] + w*epsilon0[cellI];
epsilonf[faceI] = epsilon[cellI];
}
}
@ -521,16 +525,16 @@ void epsilonWallFunctionFvPatchScalarField::manipulateMatrix
DynamicList<scalar> constraintEpsilon(weights.size());
const labelUList& faceCells = patch().faceCells();
const DimensionedField<scalar, volMesh>& epsilon
= dimensionedInternalField();
const DimensionedField<scalar, volMesh>& epsilon =
dimensionedInternalField();
label nConstrainedCells = 0;
forAll(weights, faceI)
{
// only set the values if the weights are < 1 - tolerance
if (weights[faceI] < (1.0 - 1e-6))
// only set the values if the weights are > tolerance
if (weights[faceI] > tolerance_)
{
nConstrainedCells++;

View file

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -94,6 +94,9 @@ protected:
// Protected data
//- Tolerance used in weighted calculations
static scalar tolerance_;
//- Cmu coefficient
scalar Cmu_;

View file

@ -39,6 +39,10 @@ namespace Foam
namespace incompressible
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
scalar omegaWallFunctionFvPatchScalarField::tolerance_ = 1e-5;
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
void omegaWallFunctionFvPatchScalarField::checkType()
@ -81,14 +85,14 @@ void omegaWallFunctionFvPatchScalarField::setMaster()
{
if (isA<omegaWallFunctionFvPatchScalarField>(bf[patchI]))
{
omegaWallFunctionFvPatchScalarField& epf = omegaPatch(patchI);
omegaWallFunctionFvPatchScalarField& opf = omegaPatch(patchI);
if (master == -1)
{
master = patchI;
}
epf.master() = master;
opf.master() = master;
}
}
}
@ -162,10 +166,10 @@ omegaWallFunctionFvPatchScalarField::omegaPatch(const label patchI)
const volScalarField::GeometricBoundaryField& bf = omega.boundaryField();
const omegaWallFunctionFvPatchScalarField& epf =
const omegaWallFunctionFvPatchScalarField& opf =
refCast<const omegaWallFunctionFvPatchScalarField>(bf[patchI]);
return const_cast<omegaWallFunctionFvPatchScalarField&>(epf);
return const_cast<omegaWallFunctionFvPatchScalarField&>(opf);
}
@ -181,11 +185,11 @@ void omegaWallFunctionFvPatchScalarField::calculateTurbulenceFields
{
if (!cornerWeights_[patchI].empty())
{
omegaWallFunctionFvPatchScalarField& epf = omegaPatch(patchI);
omegaWallFunctionFvPatchScalarField& opf = omegaPatch(patchI);
const List<scalar>& w = cornerWeights_[patchI];
epf.calculate(turbulence, w, epf.patch(), G0, omega0);
opf.calculate(turbulence, w, opf.patch(), G0, omega0);
}
}
@ -194,9 +198,9 @@ void omegaWallFunctionFvPatchScalarField::calculateTurbulenceFields
{
if (!cornerWeights_[patchI].empty())
{
omegaWallFunctionFvPatchScalarField& epf = omegaPatch(patchI);
omegaWallFunctionFvPatchScalarField& opf = omegaPatch(patchI);
epf == scalarField(omega0, epf.patch().faceCells());
opf == scalarField(omega0, opf.patch().faceCells());
}
}
}
@ -484,17 +488,17 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs
scalarField& omegaf = *this;
// only set the values if the weights are < 1 - tolerance
// only set the values if the weights are > tolerance
forAll(weights, faceI)
{
scalar w = weights[faceI];
if (w < 1.0 - 1e-6)
if (w > tolerance_)
{
label cellI = patch().faceCells()[faceI];
G[cellI] = w*G[cellI] + (1.0 - w)*G0[cellI];
omega[cellI] = w*omega[cellI] + (1.0 - w)*omega0[cellI];
G[cellI] = (1.0 - w)*G[cellI] + w*G0[cellI];
omega[cellI] = (1.0 - w)*omega[cellI] + w*omega0[cellI];
omegaf[faceI] = omega[cellI];
}
}
@ -536,16 +540,16 @@ void omegaWallFunctionFvPatchScalarField::manipulateMatrix
DynamicList<scalar> constraintomega(weights.size());
const labelUList& faceCells = patch().faceCells();
const DimensionedField<scalar, volMesh>& omega
= dimensionedInternalField();
const DimensionedField<scalar, volMesh>& omega =
dimensionedInternalField();
label nConstrainedCells = 0;
forAll(weights, faceI)
{
// only set the values if the weights are < 1 - tolerance
if (weights[faceI] < (1.0 - 1e-6))
// only set the values if the weights are > tolerance
if (weights[faceI] > tolerance_)
{
nConstrainedCells++;

View file

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -99,6 +99,9 @@ protected:
// Protected data
//- Tolerance used in weighted calculations
static scalar tolerance_;
//- Cmu coefficient
scalar Cmu_;

View file

@ -69,26 +69,25 @@ subModels
model1
{
type patchInjection;
parcelBasisType fixed;
massTotal 40;
SOI 1;
parcelBasisType mass;
patchName inlet;
duration 4;
parcelsPerSecond 100644;
U0 (-10 0 0);
nParticle 500000;
parcelsPerSecond 244462;
flowRateProfile constant 1;
sizeDistribution
{
type normal;
normalDistribution
{
expectation 50e-6;
variance 20e-6;
minValue 10e-6;
maxValue 90e-6;
expectation 100e-6;
variance 25e-6;
minValue 20e-6;
maxValue 180e-6;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 1;
duration 4;
}
}