mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: Deprecated TimeFunction1 usage in favour of Function1
This commit is contained in:
committed by
Mark Olesen
parent
925a2e724b
commit
9194cd5203
@ -56,11 +56,6 @@ void Foam::Function1Types::Polynomial<Type>::checkCoefficients()
|
||||
<< "Polynomial " << this->name() << " cannot be integrated"
|
||||
<< endl;
|
||||
}
|
||||
|
||||
if (this->isTime())
|
||||
{
|
||||
convertTimeBase(this->time());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -50,11 +50,6 @@ Foam::Function1Types::Sine<Type>::Sine
|
||||
{
|
||||
frequency_ = Function1<scalar>::New("frequency", dict);
|
||||
}
|
||||
|
||||
if (this->isTime())
|
||||
{
|
||||
convertTimeBase(this->time());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -134,11 +134,6 @@ void Foam::Function1Types::TableBase<Type>::initialise()
|
||||
prevValue = currValue;
|
||||
++i;
|
||||
}
|
||||
|
||||
if (this->isTime())
|
||||
{
|
||||
convertTimeBase(this->time());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -34,11 +34,6 @@ void Foam::Function1Types::ramp::read(const dictionary& coeffs)
|
||||
{
|
||||
start_ = coeffs.getOrDefault<scalar>("start", 0);
|
||||
coeffs.readEntry("duration", duration_);
|
||||
|
||||
if (isTime())
|
||||
{
|
||||
convertTimeBase(time());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2014-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2018-2020 OpenCFD Ltd.
|
||||
Copyright (C) 2018-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -45,10 +45,10 @@ atmBoundaryLayer::atmBoundaryLayer(const Time& time, const polyPatch& pp)
|
||||
ppMin_((boundBox(pp.points())).min()),
|
||||
time_(time),
|
||||
patch_(pp),
|
||||
flowDir_(time, "flowDir"),
|
||||
zDir_(time, "zDir"),
|
||||
Uref_(time, "Uref"),
|
||||
Zref_(time, "Zref"),
|
||||
flowDir_(nullptr),
|
||||
zDir_(nullptr),
|
||||
Uref_(nullptr),
|
||||
Zref_(nullptr),
|
||||
z0_(nullptr),
|
||||
d_(nullptr)
|
||||
{}
|
||||
@ -72,10 +72,10 @@ atmBoundaryLayer::atmBoundaryLayer
|
||||
ppMin_((boundBox(pp.points())).min()),
|
||||
time_(time),
|
||||
patch_(pp),
|
||||
flowDir_(TimeFunction1<vector>(time, "flowDir", dict)),
|
||||
zDir_(TimeFunction1<vector>(time, "zDir", dict)),
|
||||
Uref_(TimeFunction1<scalar>(time, "Uref", dict)),
|
||||
Zref_(TimeFunction1<scalar>(time, "Zref", dict)),
|
||||
flowDir_(Function1<vector>::New("flowDir", dict, &time)),
|
||||
zDir_(Function1<vector>::New("zDir", dict, &time)),
|
||||
Uref_(Function1<scalar>::New("Uref", dict, &time)),
|
||||
Zref_(Function1<scalar>::New("Zref", dict, &time)),
|
||||
z0_(PatchFunction1<scalar>::New(pp, "z0", dict)),
|
||||
d_(PatchFunction1<scalar>::New(pp, "d", dict))
|
||||
{}
|
||||
@ -96,10 +96,10 @@ atmBoundaryLayer::atmBoundaryLayer
|
||||
ppMin_(abl.ppMin_),
|
||||
time_(abl.time_),
|
||||
patch_(patch.patch()),
|
||||
flowDir_(abl.flowDir_),
|
||||
zDir_(abl.zDir_),
|
||||
Uref_(abl.Uref_),
|
||||
Zref_(abl.Zref_),
|
||||
flowDir_(abl.flowDir_.clone()),
|
||||
zDir_(abl.zDir_.clone()),
|
||||
Uref_(abl.Uref_.clone()),
|
||||
Zref_(abl.Zref_.clone()),
|
||||
z0_(abl.z0_.clone(patch_)),
|
||||
d_(abl.d_.clone(patch_))
|
||||
{}
|
||||
@ -129,13 +129,13 @@ atmBoundaryLayer::atmBoundaryLayer(const atmBoundaryLayer& abl)
|
||||
vector atmBoundaryLayer::flowDir() const
|
||||
{
|
||||
const scalar t = time_.timeOutputValue();
|
||||
const vector dir(flowDir_.value(t));
|
||||
const vector dir(flowDir_->value(t));
|
||||
const scalar magDir = mag(dir);
|
||||
|
||||
if (magDir < SMALL)
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "magnitude of " << flowDir_.name() << " = " << magDir
|
||||
<< "magnitude of " << flowDir_->name() << " = " << magDir
|
||||
<< " vector must be greater than zero"
|
||||
<< abort(FatalError);
|
||||
}
|
||||
@ -147,13 +147,13 @@ vector atmBoundaryLayer::flowDir() const
|
||||
vector atmBoundaryLayer::zDir() const
|
||||
{
|
||||
const scalar t = time_.timeOutputValue();
|
||||
const vector dir(zDir_.value(t));
|
||||
const vector dir(zDir_->value(t));
|
||||
const scalar magDir = mag(dir);
|
||||
|
||||
if (magDir < SMALL)
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "magnitude of " << zDir_.name() << " = " << magDir
|
||||
<< "magnitude of " << zDir_->name() << " = " << magDir
|
||||
<< " vector must be greater than zero"
|
||||
<< abort(FatalError);
|
||||
}
|
||||
@ -165,13 +165,13 @@ vector atmBoundaryLayer::zDir() const
|
||||
tmp<scalarField> atmBoundaryLayer::Ustar(const scalarField& z0) const
|
||||
{
|
||||
const scalar t = time_.timeOutputValue();
|
||||
const scalar Uref = Uref_.value(t);
|
||||
const scalar Zref = Zref_.value(t);
|
||||
const scalar Uref = Uref_->value(t);
|
||||
const scalar Zref = Zref_->value(t);
|
||||
|
||||
if (Zref < 0)
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Negative entry in " << Zref_.name() << " = " << Zref
|
||||
<< "Negative entry in " << Zref_->name() << " = " << Zref
|
||||
<< abort(FatalError);
|
||||
}
|
||||
|
||||
@ -274,10 +274,10 @@ void atmBoundaryLayer::write(Ostream& os) const
|
||||
os.writeEntry("Cmu", Cmu_);
|
||||
os.writeEntry("C1", C1_);
|
||||
os.writeEntry("C2", C2_);
|
||||
flowDir_.writeData(os);
|
||||
zDir_.writeData(os);
|
||||
Uref_.writeData(os);
|
||||
Zref_.writeData(os);
|
||||
flowDir_->writeData(os);
|
||||
zDir_->writeData(os);
|
||||
Uref_->writeData(os);
|
||||
Zref_->writeData(os);
|
||||
if (z0_)
|
||||
{
|
||||
z0_->writeData(os) ;
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2014-2018 OpenFOAM Foundation
|
||||
Copyright (C) 2015-2020 OpenCFD Ltd.
|
||||
Copyright (C) 2015-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -157,12 +157,12 @@ Usage
|
||||
where the entries mean:
|
||||
\table
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
flowDir | Flow direction | TimeFunction1<vector> | yes | -
|
||||
zDir | Ground-normal direction | TimeFunction1<vector> | yes | -
|
||||
flowDir | Flow direction | Function1<vector> | yes | -
|
||||
zDir | Ground-normal direction | Function1<vector> | yes | -
|
||||
Uref | Reference mean streamwise flow speed being used in <!--
|
||||
--> \f$u^*\f$ estimations [m/s] | TimeFunction1<scalar> | yes | -
|
||||
--> \f$u^*\f$ estimations [m/s] | Function1<scalar> | yes | -
|
||||
Zref | Reference height being used in \f$u^*\f$ estimations [m] <!--
|
||||
--> | TimeFunction1<scalar> | yes | -
|
||||
--> | Function1<scalar> | yes | -
|
||||
z0 | Surface roughness length [m] <!--
|
||||
--> | PatchFunction1<scalar> | yes | -
|
||||
d | Displacement height [m] - see Notes <!--
|
||||
@ -217,7 +217,7 @@ SourceFiles
|
||||
#define atmBoundaryLayer_H
|
||||
|
||||
#include "fvPatchFields.H"
|
||||
#include "TimeFunction1.H"
|
||||
#include "Function1.H"
|
||||
#include "PatchFunction1.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -266,16 +266,16 @@ private:
|
||||
const polyPatch& patch_;
|
||||
|
||||
//- Streamwise flow direction
|
||||
TimeFunction1<vector> flowDir_;
|
||||
autoPtr<Function1<vector>> flowDir_;
|
||||
|
||||
//- Direction of the ground-normal coordinate
|
||||
TimeFunction1<vector> zDir_;
|
||||
autoPtr<Function1<vector>> zDir_;
|
||||
|
||||
//- Reference mean streamwise flow speed being used in Ustar estimations
|
||||
TimeFunction1<scalar> Uref_;
|
||||
autoPtr<Function1<scalar>> Uref_;
|
||||
|
||||
//- Reference height being used in Ustar estimations
|
||||
TimeFunction1<scalar> Zref_;
|
||||
autoPtr<Function1<scalar>> Zref_;
|
||||
|
||||
//- Surface roughness length
|
||||
autoPtr<PatchFunction1<scalar>> z0_;
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2020 ENERCON GmbH
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -62,7 +62,7 @@ atmTurbulentHeatFluxTemperatureFvPatchScalarField
|
||||
fixedGradientFvPatchScalarField(p, iF),
|
||||
heatSource_(heatSourceType::POWER),
|
||||
alphaEffName_("undefinedAlphaEff"),
|
||||
Cp0_(db().time(), "Cp0"),
|
||||
Cp0_(nullptr),
|
||||
q_(nullptr)
|
||||
{}
|
||||
|
||||
@ -79,7 +79,7 @@ atmTurbulentHeatFluxTemperatureFvPatchScalarField
|
||||
fixedGradientFvPatchScalarField(ptf, p, iF, mapper),
|
||||
heatSource_(ptf.heatSource_),
|
||||
alphaEffName_(ptf.alphaEffName_),
|
||||
Cp0_(ptf.Cp0_),
|
||||
Cp0_(ptf.Cp0_.clone()),
|
||||
q_(ptf.q_.clone(p.patch()))
|
||||
{}
|
||||
|
||||
@ -103,7 +103,7 @@ atmTurbulentHeatFluxTemperatureFvPatchScalarField
|
||||
)
|
||||
),
|
||||
alphaEffName_(dict.get<word>("alphaEff")),
|
||||
Cp0_(TimeFunction1<scalar>(db().time(), "Cp0", dict)),
|
||||
Cp0_(Function1<scalar>::New("Cp0", dict, &db().time())),
|
||||
q_(PatchFunction1<scalar>::New(p.patch(), "q", dict))
|
||||
{
|
||||
if (dict.found("value") && dict.found("gradient"))
|
||||
@ -189,7 +189,7 @@ void atmTurbulentHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
|
||||
patch().lookupPatchField<volScalarField, scalar>(alphaEffName_);
|
||||
|
||||
const scalar t = db().time().timeOutputValue();
|
||||
const scalar Cp0 = Cp0_.value(t);
|
||||
const scalar Cp0 = Cp0_->value(t);
|
||||
|
||||
if (Cp0 < SMALL)
|
||||
{
|
||||
@ -233,7 +233,7 @@ void atmTurbulentHeatFluxTemperatureFvPatchScalarField::write(Ostream& os) const
|
||||
fixedGradientFvPatchScalarField::write(os);
|
||||
os.writeEntry("heatSource", heatSourceTypeNames[heatSource_]);
|
||||
os.writeEntry("alphaEff", alphaEffName_);
|
||||
Cp0_.writeData(os);
|
||||
Cp0_->writeData(os);
|
||||
q_->writeData(os);
|
||||
writeEntry("value", os);
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2020 ENERCON GmbH
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -67,14 +67,14 @@ Usage
|
||||
alphaEff | Name of turbulent thermal diff. field [kg/m/s] <!--
|
||||
--> | word | yes | -
|
||||
Cp0 | Specific heat capacity [m2/s2/K] <!--
|
||||
--> | TimeFunction1<scalar> | yes | -
|
||||
--> | Function1<scalar> | yes | -
|
||||
q | Heat source value [W (power) or W/m2 (flux)] <!--
|
||||
--> | PatchFunction1<scalar> | yes | -
|
||||
\endtable
|
||||
|
||||
The inherited entries are elaborated in:
|
||||
- \link fixedGradientFvPatchScalarField.H \endlink
|
||||
- \link TimeFunction1.H \endlink
|
||||
- \link Function1.H \endlink
|
||||
- \link PatchFunction1.H \endlink
|
||||
|
||||
Options for the \c heatSource entry:
|
||||
@ -93,7 +93,7 @@ SourceFiles
|
||||
|
||||
#include "fvPatchFields.H"
|
||||
#include "fixedGradientFvPatchFields.H"
|
||||
#include "TimeFunction1.H"
|
||||
#include "Function1.H"
|
||||
#include "PatchFunction1.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -131,7 +131,7 @@ class atmTurbulentHeatFluxTemperatureFvPatchScalarField
|
||||
word alphaEffName_;
|
||||
|
||||
//- Specific heat capacity [m2/s2/K]
|
||||
TimeFunction1<scalar> Cp0_;
|
||||
autoPtr<Function1<scalar>> Cp0_;
|
||||
|
||||
//- Heat power [W] or flux [W/m2]
|
||||
// Divided by density, rho, if used in kinematic form
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2020 ENERCON GmbH
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -73,7 +73,7 @@ atmAlphatkWallFunctionFvPatchScalarField
|
||||
fixedValueFvPatchScalarField(p, iF),
|
||||
Cmu_(0.09),
|
||||
kappa_(0.41),
|
||||
Pr_(db().time(), "Pr"),
|
||||
Pr_(nullptr),
|
||||
Prt_(nullptr),
|
||||
z0_(nullptr)
|
||||
{
|
||||
@ -93,7 +93,7 @@ atmAlphatkWallFunctionFvPatchScalarField
|
||||
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
|
||||
Cmu_(ptf.Cmu_),
|
||||
kappa_(ptf.kappa_),
|
||||
Pr_(ptf.Pr_),
|
||||
Pr_(ptf.Pr_.clone()),
|
||||
Prt_(ptf.Prt_.clone(p.patch())),
|
||||
z0_(ptf.z0_.clone(p.patch()))
|
||||
{
|
||||
@ -128,7 +128,7 @@ atmAlphatkWallFunctionFvPatchScalarField
|
||||
scalarMinMax::ge(SMALL)
|
||||
)
|
||||
),
|
||||
Pr_(TimeFunction1<scalar>(db().time(), "Pr", dict)),
|
||||
Pr_(Function1<scalar>::New("Pr", dict, &db().time())),
|
||||
Prt_(PatchFunction1<scalar>::New(p.patch(), "Prt", dict)),
|
||||
z0_(PatchFunction1<scalar>::New(p.patch(), "z0", dict))
|
||||
{
|
||||
@ -204,7 +204,7 @@ void atmAlphatkWallFunctionFvPatchScalarField::updateCoeffs()
|
||||
const scalar Cmu25 = pow025(Cmu_);
|
||||
|
||||
const scalar t = db().time().timeOutputValue();
|
||||
const scalar Pr = Pr_.value(t);
|
||||
const scalar Pr = Pr_->value(t);
|
||||
|
||||
#ifdef FULLDEBUG
|
||||
if (Pr < VSMALL)
|
||||
@ -289,7 +289,7 @@ void atmAlphatkWallFunctionFvPatchScalarField::write(Ostream& os) const
|
||||
fvPatchField<scalar>::write(os);
|
||||
os.writeEntry("Cmu", Cmu_);
|
||||
os.writeEntry("kappa", kappa_);
|
||||
Pr_.writeData(os);
|
||||
Pr_->writeData(os);
|
||||
Prt_->writeData(os);
|
||||
z0_->writeData(os);
|
||||
writeEntry("value", os);
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2020 ENERCON GmbH
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -67,7 +67,7 @@ Usage
|
||||
\table
|
||||
Property | Description | Type | Reqd | Dflt
|
||||
type | Type name: atmAlphatkWallFunction | word | yes | -
|
||||
Pr | Molecular Prandtl number | TimeFunction1<scalar> | yes | -
|
||||
Pr | Molecular Prandtl number | Function1<scalar> | yes | -
|
||||
Prt | Turbulent Prandtl number | PatchFunction1<scalar> | yes | -
|
||||
z0 | Surface roughness length [m] | PatchFunction1<scalar> | yes | -
|
||||
Cmu | Empirical model constant | scalar | no | 0.09
|
||||
@ -76,7 +76,7 @@ Usage
|
||||
|
||||
The inherited entries are elaborated in:
|
||||
- \link fixedValueFvPatchField.H \endlink
|
||||
- \link TimeFunction1.H \endlink
|
||||
- \link Function1.H \endlink
|
||||
- \link PatchFunction1.H \endlink
|
||||
|
||||
See also
|
||||
@ -91,7 +91,7 @@ SourceFiles
|
||||
#define atmAlphatkWallFunctionFvPatchScalarField_H
|
||||
|
||||
#include "fixedValueFvPatchFields.H"
|
||||
#include "TimeFunction1.H"
|
||||
#include "Function1.H"
|
||||
#include "PatchFunction1.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -120,7 +120,7 @@ protected:
|
||||
const scalar kappa_;
|
||||
|
||||
//- Molecular Prandtl number
|
||||
TimeFunction1<scalar> Pr_;
|
||||
autoPtr<Function1<scalar>> Pr_;
|
||||
|
||||
//- Turbulent Prandtl number field
|
||||
autoPtr<PatchFunction1<scalar>> Prt_;
|
||||
|
||||
@ -27,7 +27,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "ConeInjection.H"
|
||||
#include "TimeFunction1.H"
|
||||
#include "Function1.H"
|
||||
#include "mathematicalConstants.H"
|
||||
#include "unitConversion.H"
|
||||
|
||||
@ -55,38 +55,38 @@ Foam::ConeInjection<CloudType>::ConeInjection
|
||||
),
|
||||
flowRateProfile_
|
||||
(
|
||||
TimeFunction1<scalar>
|
||||
Function1<scalar>::New
|
||||
(
|
||||
owner.db().time(),
|
||||
"flowRateProfile",
|
||||
this->coeffDict()
|
||||
this->coeffDict(),
|
||||
&owner.db().time()
|
||||
)
|
||||
),
|
||||
Umag_
|
||||
(
|
||||
TimeFunction1<scalar>
|
||||
Function1<scalar>::New
|
||||
(
|
||||
owner.db().time(),
|
||||
"Umag",
|
||||
this->coeffDict()
|
||||
this->coeffDict(),
|
||||
&owner.db().time()
|
||||
)
|
||||
),
|
||||
thetaInner_
|
||||
(
|
||||
TimeFunction1<scalar>
|
||||
Function1<scalar>::New
|
||||
(
|
||||
owner.db().time(),
|
||||
"thetaInner",
|
||||
this->coeffDict()
|
||||
this->coeffDict(),
|
||||
&owner.db().time()
|
||||
)
|
||||
),
|
||||
thetaOuter_
|
||||
(
|
||||
TimeFunction1<scalar>
|
||||
Function1<scalar>::New
|
||||
(
|
||||
owner.db().time(),
|
||||
"thetaOuter",
|
||||
this->coeffDict()
|
||||
this->coeffDict(),
|
||||
&owner.db().time()
|
||||
)
|
||||
),
|
||||
sizeDistribution_
|
||||
@ -132,7 +132,7 @@ Foam::ConeInjection<CloudType>::ConeInjection
|
||||
}
|
||||
|
||||
// Set total volume to inject
|
||||
this->volumeTotal_ = flowRateProfile_.integrate(0.0, duration_);
|
||||
this->volumeTotal_ = flowRateProfile_->integrate(0.0, duration_);
|
||||
}
|
||||
|
||||
|
||||
@ -149,10 +149,10 @@ Foam::ConeInjection<CloudType>::ConeInjection
|
||||
injectorTetPts_(im.injectorTetPts_),
|
||||
duration_(im.duration_),
|
||||
parcelsPerInjector_(im.parcelsPerInjector_),
|
||||
flowRateProfile_(im.flowRateProfile_),
|
||||
Umag_(im.Umag_),
|
||||
thetaInner_(im.thetaInner_),
|
||||
thetaOuter_(im.thetaOuter_),
|
||||
flowRateProfile_(im.flowRateProfile_.clone()),
|
||||
Umag_(im.Umag_.clone()),
|
||||
thetaInner_(im.thetaInner_.clone()),
|
||||
thetaOuter_(im.thetaOuter_.clone()),
|
||||
sizeDistribution_(im.sizeDistribution_.clone()),
|
||||
nInjected_(im.nInjected_),
|
||||
injectorOrder_(im.injectorOrder_),
|
||||
@ -220,7 +220,7 @@ Foam::label Foam::ConeInjection<CloudType>::parcelsToInject
|
||||
{
|
||||
if ((time0 >= 0.0) && (time0 < duration_))
|
||||
{
|
||||
const scalar targetVolume = flowRateProfile_.integrate(0, time1);
|
||||
const scalar targetVolume = flowRateProfile_->integrate(0, time1);
|
||||
|
||||
const scalar volumeFraction = targetVolume/this->volumeTotal_;
|
||||
|
||||
@ -243,7 +243,7 @@ Foam::scalar Foam::ConeInjection<CloudType>::volumeToInject
|
||||
{
|
||||
if ((time0 >= 0.0) && (time0 < duration_))
|
||||
{
|
||||
return flowRateProfile_.integrate(time0, time1);
|
||||
return flowRateProfile_->integrate(time0, time1);
|
||||
}
|
||||
|
||||
return 0.0;
|
||||
@ -288,8 +288,8 @@ void Foam::ConeInjection<CloudType>::setProperties
|
||||
|
||||
// Set direction vectors for position i
|
||||
scalar t = time - this->SOI_;
|
||||
scalar ti = thetaInner_.value(t);
|
||||
scalar to = thetaOuter_.value(t);
|
||||
scalar ti = thetaInner_->value(t);
|
||||
scalar to = thetaOuter_->value(t);
|
||||
scalar coneAngle = degToRad(rnd.position<scalar>(ti, to));
|
||||
|
||||
scalar alpha = sin(coneAngle);
|
||||
@ -302,7 +302,7 @@ void Foam::ConeInjection<CloudType>::setProperties
|
||||
dirVec.normalise();
|
||||
|
||||
// Set particle velocity
|
||||
parcel.U() = Umag_.value(t)*dirVec;
|
||||
parcel.U() = Umag_->value(t)*dirVec;
|
||||
|
||||
// Set particle diameter
|
||||
parcel.d() = sizeDistribution_().sample();
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2021-2017 OpenCFD Ltd.
|
||||
Copyright (C) 2017-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -54,7 +54,7 @@ SourceFiles
|
||||
#include "InjectionModel.H"
|
||||
#include "distributionModel.H"
|
||||
#include "vectorList.H"
|
||||
#include "TimeFunction1.H"
|
||||
#include "Function1.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -91,16 +91,16 @@ class ConeInjection
|
||||
const label parcelsPerInjector_;
|
||||
|
||||
//- Flow rate profile relative to SOI []
|
||||
const TimeFunction1<scalar> flowRateProfile_;
|
||||
const autoPtr<Function1<scalar>> flowRateProfile_;
|
||||
|
||||
//- Parcel velocity magnitude relative to SOI [m/s]
|
||||
const TimeFunction1<scalar> Umag_;
|
||||
const autoPtr<Function1<scalar>> Umag_;
|
||||
|
||||
//- Inner half-cone angle relative to SOI [deg]
|
||||
const TimeFunction1<scalar> thetaInner_;
|
||||
const autoPtr<Function1<scalar>> thetaInner_;
|
||||
|
||||
//- Outer half-cone angle relative to SOI [deg]
|
||||
const TimeFunction1<scalar> thetaOuter_;
|
||||
const autoPtr<Function1<scalar>> thetaOuter_;
|
||||
|
||||
//- Parcel size distribution model
|
||||
const autoPtr<distributionModel> sizeDistribution_;
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2015-2020 OpenCFD Ltd.
|
||||
Copyright (C) 2015-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -27,7 +27,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "ConeNozzleInjection.H"
|
||||
#include "TimeFunction1.H"
|
||||
#include "Function1.H"
|
||||
#include "unitConversion.H"
|
||||
#include "distributionModel.H"
|
||||
|
||||
@ -74,7 +74,15 @@ void Foam::ConeNozzleInjection<CloudType>::setInjectionMethod()
|
||||
}
|
||||
case injectionMethod::imMovingPoint:
|
||||
{
|
||||
positionVsTime_.reset(this->coeffDict());
|
||||
positionVsTime_.reset
|
||||
(
|
||||
Function1<vector>::New
|
||||
(
|
||||
"position",
|
||||
this->coeffDict(),
|
||||
&this->owner().db().time()
|
||||
)
|
||||
);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@ -100,12 +108,28 @@ void Foam::ConeNozzleInjection<CloudType>::setFlowType()
|
||||
}
|
||||
case flowType::ftPressureDrivenVelocity:
|
||||
{
|
||||
Pinj_.reset(this->coeffDict());
|
||||
Pinj_.reset
|
||||
(
|
||||
Function1<scalar>::New
|
||||
(
|
||||
"Pinj",
|
||||
this->coeffDict(),
|
||||
&this->owner().db().time()
|
||||
)
|
||||
);
|
||||
break;
|
||||
}
|
||||
case flowType::ftFlowRateAndDischarge:
|
||||
{
|
||||
Cd_.reset(this->coeffDict());
|
||||
Cd_.reset
|
||||
(
|
||||
Function1<scalar>::New
|
||||
(
|
||||
"Cd",
|
||||
this->coeffDict(),
|
||||
&this->owner().db().time()
|
||||
)
|
||||
);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@ -138,7 +162,7 @@ Foam::ConeNozzleInjection<CloudType>::ConeNozzleInjection
|
||||
outerDiameter_(this->coeffDict().getScalar("outerDiameter")),
|
||||
innerDiameter_(this->coeffDict().getScalar("innerDiameter")),
|
||||
duration_(this->coeffDict().getScalar("duration")),
|
||||
positionVsTime_(owner.db().time(), "position"),
|
||||
positionVsTime_(nullptr),
|
||||
position_(Zero),
|
||||
injectorCell_(-1),
|
||||
tetFacei_(-1),
|
||||
@ -147,29 +171,29 @@ Foam::ConeNozzleInjection<CloudType>::ConeNozzleInjection
|
||||
parcelsPerSecond_(this->coeffDict().getScalar("parcelsPerSecond")),
|
||||
flowRateProfile_
|
||||
(
|
||||
TimeFunction1<scalar>
|
||||
Function1<scalar>::New
|
||||
(
|
||||
owner.db().time(),
|
||||
"flowRateProfile",
|
||||
this->coeffDict()
|
||||
this->coeffDict(),
|
||||
&owner.db().time()
|
||||
)
|
||||
),
|
||||
thetaInner_
|
||||
(
|
||||
TimeFunction1<scalar>
|
||||
Function1<scalar>::New
|
||||
(
|
||||
owner.db().time(),
|
||||
"thetaInner",
|
||||
this->coeffDict()
|
||||
this->coeffDict(),
|
||||
&owner.db().time()
|
||||
)
|
||||
),
|
||||
thetaOuter_
|
||||
(
|
||||
TimeFunction1<scalar>
|
||||
Function1<scalar>::New
|
||||
(
|
||||
owner.db().time(),
|
||||
"thetaOuter",
|
||||
this->coeffDict()
|
||||
this->coeffDict(),
|
||||
&owner.db().time()
|
||||
)
|
||||
),
|
||||
sizeDistribution_
|
||||
@ -185,8 +209,8 @@ Foam::ConeNozzleInjection<CloudType>::ConeNozzleInjection
|
||||
normal_(Zero),
|
||||
|
||||
UMag_(0.0),
|
||||
Cd_(owner.db().time(), "Cd"),
|
||||
Pinj_(owner.db().time(), "Pinj")
|
||||
Cd_(nullptr),
|
||||
Pinj_(nullptr)
|
||||
{
|
||||
if (innerDiameter_ >= outerDiameter_)
|
||||
{
|
||||
@ -224,7 +248,7 @@ Foam::ConeNozzleInjection<CloudType>::ConeNozzleInjection
|
||||
tanVec2_ = direction_^tanVec1_;
|
||||
|
||||
// Set total volume to inject
|
||||
this->volumeTotal_ = flowRateProfile_.integrate(0.0, duration_);
|
||||
this->volumeTotal_ = flowRateProfile_->integrate(0.0, duration_);
|
||||
|
||||
updateMesh();
|
||||
}
|
||||
@ -242,23 +266,23 @@ Foam::ConeNozzleInjection<CloudType>::ConeNozzleInjection
|
||||
outerDiameter_(im.outerDiameter_),
|
||||
innerDiameter_(im.innerDiameter_),
|
||||
duration_(im.duration_),
|
||||
positionVsTime_(im.positionVsTime_),
|
||||
positionVsTime_(im.positionVsTime_.clone()),
|
||||
position_(im.position_),
|
||||
injectorCell_(im.injectorCell_),
|
||||
tetFacei_(im.tetFacei_),
|
||||
tetPti_(im.tetPti_),
|
||||
direction_(im.direction_),
|
||||
parcelsPerSecond_(im.parcelsPerSecond_),
|
||||
flowRateProfile_(im.flowRateProfile_),
|
||||
thetaInner_(im.thetaInner_),
|
||||
thetaOuter_(im.thetaOuter_),
|
||||
flowRateProfile_(im.flowRateProfile_.clone()),
|
||||
thetaInner_(im.thetaInner_.clone()),
|
||||
thetaOuter_(im.thetaOuter_.clone()),
|
||||
sizeDistribution_(im.sizeDistribution_.clone()),
|
||||
tanVec1_(im.tanVec1_),
|
||||
tanVec2_(im.tanVec2_),
|
||||
normal_(im.normal_),
|
||||
UMag_(im.UMag_),
|
||||
Cd_(im.Cd_),
|
||||
Pinj_(im.Pinj_)
|
||||
Cd_(im.Cd_.clone()),
|
||||
Pinj_(im.Pinj_.clone())
|
||||
{}
|
||||
|
||||
|
||||
@ -329,7 +353,7 @@ Foam::scalar Foam::ConeNozzleInjection<CloudType>::volumeToInject
|
||||
{
|
||||
if ((time0 >= 0.0) && (time0 < duration_))
|
||||
{
|
||||
return flowRateProfile_.integrate(time0, time1);
|
||||
return flowRateProfile_->integrate(time0, time1);
|
||||
}
|
||||
|
||||
return 0.0;
|
||||
@ -366,7 +390,7 @@ void Foam::ConeNozzleInjection<CloudType>::setPositionAndCell
|
||||
}
|
||||
case injectionMethod::imMovingPoint:
|
||||
{
|
||||
position = positionVsTime_.value(time - this->SOI_);
|
||||
position = positionVsTime_->value(time - this->SOI_);
|
||||
|
||||
this->findCellAtPosition
|
||||
(
|
||||
@ -419,8 +443,8 @@ void Foam::ConeNozzleInjection<CloudType>::setProperties
|
||||
|
||||
// Set particle velocity
|
||||
scalar t = time - this->SOI_;
|
||||
scalar ti = thetaInner_.value(t);
|
||||
scalar to = thetaOuter_.value(t);
|
||||
scalar ti = thetaInner_->value(t);
|
||||
scalar to = thetaOuter_->value(t);
|
||||
scalar coneAngle = degToRad(rndGen.sample01<scalar>()*(to - ti) + ti);
|
||||
|
||||
scalar alpha = sin(coneAngle);
|
||||
@ -442,7 +466,7 @@ void Foam::ConeNozzleInjection<CloudType>::setProperties
|
||||
{
|
||||
scalar pAmbient = this->owner().pAmbient();
|
||||
scalar rho = parcel.rho();
|
||||
scalar UMag = ::sqrt(2.0*(Pinj_.value(t) - pAmbient)/rho);
|
||||
scalar UMag = ::sqrt(2.0*(Pinj_->value(t) - pAmbient)/rho);
|
||||
parcel.U() = UMag*dirVec;
|
||||
break;
|
||||
}
|
||||
@ -452,10 +476,10 @@ void Foam::ConeNozzleInjection<CloudType>::setProperties
|
||||
scalar Ai = 0.25*mathematical::pi*innerDiameter_*innerDiameter_;
|
||||
scalar massFlowRate =
|
||||
this->massTotal()
|
||||
*flowRateProfile_.value(t)
|
||||
*flowRateProfile_->value(t)
|
||||
/this->volumeTotal();
|
||||
|
||||
scalar Umag = massFlowRate/(parcel.rho()*Cd_.value(t)*(Ao - Ai));
|
||||
scalar Umag = massFlowRate/(parcel.rho()*Cd_->value(t)*(Ao - Ai));
|
||||
parcel.U() = Umag*dirVec;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2018 OpenCFD Ltd.
|
||||
Copyright (C) 2018-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -78,7 +78,7 @@ namespace Foam
|
||||
// Forward declaration of classes
|
||||
|
||||
template<class Type>
|
||||
class TimeFunction1;
|
||||
class Function1;
|
||||
|
||||
class distributionModel;
|
||||
|
||||
@ -134,7 +134,7 @@ private:
|
||||
scalar duration_;
|
||||
|
||||
//- Position relative to SOI []
|
||||
TimeFunction1<vector> positionVsTime_;
|
||||
autoPtr<Function1<vector>> positionVsTime_;
|
||||
|
||||
//- Injector position [m]
|
||||
vector position_;
|
||||
@ -155,13 +155,13 @@ private:
|
||||
const label parcelsPerSecond_;
|
||||
|
||||
//- Flow rate profile relative to SOI []
|
||||
const TimeFunction1<scalar> flowRateProfile_;
|
||||
const autoPtr<Function1<scalar>> flowRateProfile_;
|
||||
|
||||
//- Inner half-cone angle relative to SOI [deg]
|
||||
const TimeFunction1<scalar> thetaInner_;
|
||||
const autoPtr<Function1<scalar>> thetaInner_;
|
||||
|
||||
//- Outer half-cone angle relative to SOI [deg]
|
||||
const TimeFunction1<scalar> thetaOuter_;
|
||||
const autoPtr<Function1<scalar>> thetaOuter_;
|
||||
|
||||
//- Parcel size PDF model
|
||||
const autoPtr<distributionModel> sizeDistribution_;
|
||||
@ -185,10 +185,10 @@ private:
|
||||
scalar UMag_;
|
||||
|
||||
//- Discharge coefficient, relative to SOI [m/s]
|
||||
TimeFunction1<scalar> Cd_;
|
||||
autoPtr<Function1<scalar>> Cd_;
|
||||
|
||||
//- Injection pressure [Pa]
|
||||
TimeFunction1<scalar> Pinj_;
|
||||
autoPtr<Function1<scalar>> Pinj_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2015-2020 OpenCFD Ltd.
|
||||
Copyright (C) 2015-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -52,20 +52,20 @@ Foam::InflationInjection<CloudType>::InflationInjection
|
||||
duration_(this->coeffDict().getScalar("duration")),
|
||||
flowRateProfile_
|
||||
(
|
||||
TimeFunction1<scalar>
|
||||
Function1<scalar>::New
|
||||
(
|
||||
owner.db().time(),
|
||||
"flowRateProfile",
|
||||
this->coeffDict()
|
||||
this->coeffDict(),
|
||||
&owner.db().time()
|
||||
)
|
||||
),
|
||||
growthRate_
|
||||
(
|
||||
TimeFunction1<scalar>
|
||||
Function1<scalar>::New
|
||||
(
|
||||
owner.db().time(),
|
||||
"growthRate",
|
||||
this->coeffDict()
|
||||
this->coeffDict(),
|
||||
&owner.db().time()
|
||||
)
|
||||
),
|
||||
newParticles_(),
|
||||
@ -119,7 +119,7 @@ Foam::InflationInjection<CloudType>::InflationInjection
|
||||
}
|
||||
|
||||
// Set total volume/mass to inject
|
||||
this->volumeTotal_ = fraction_*flowRateProfile_.integrate(0.0, duration_);
|
||||
this->volumeTotal_ = fraction_*flowRateProfile_->integrate(0.0, duration_);
|
||||
this->massTotal_ *= fraction_;
|
||||
}
|
||||
|
||||
@ -136,8 +136,8 @@ Foam::InflationInjection<CloudType>::InflationInjection
|
||||
generationCells_(im.generationCells_),
|
||||
inflationCells_(im.inflationCells_),
|
||||
duration_(im.duration_),
|
||||
flowRateProfile_(im.flowRateProfile_),
|
||||
growthRate_(im.growthRate_),
|
||||
flowRateProfile_(im.flowRateProfile_.clone()),
|
||||
growthRate_(im.growthRate_.clone()),
|
||||
newParticles_(im.newParticles_),
|
||||
volumeAccumulator_(im.volumeAccumulator_),
|
||||
fraction_(im.fraction_),
|
||||
@ -180,7 +180,7 @@ Foam::label Foam::InflationInjection<CloudType>::parcelsToInject
|
||||
List<DynamicList<typename CloudType::parcelType*>>& cellOccupancy =
|
||||
this->owner().cellOccupancy();
|
||||
|
||||
scalar gR = growthRate_.value(time1);
|
||||
scalar gR = growthRate_->value(time1);
|
||||
|
||||
scalar dT = time1 - time0;
|
||||
|
||||
@ -215,7 +215,7 @@ Foam::label Foam::InflationInjection<CloudType>::parcelsToInject
|
||||
if ((time0 >= 0.0) && (time0 < duration_))
|
||||
{
|
||||
volumeAccumulator_ +=
|
||||
fraction_*flowRateProfile_.integrate(time0, time1);
|
||||
fraction_*flowRateProfile_->integrate(time0, time1);
|
||||
}
|
||||
|
||||
labelHashSet cellCentresUsed;
|
||||
@ -429,7 +429,7 @@ Foam::scalar Foam::InflationInjection<CloudType>::volumeToInject
|
||||
{
|
||||
if ((time0 >= 0.0) && (time0 < duration_))
|
||||
{
|
||||
return fraction_*flowRateProfile_.integrate(time0, time1);
|
||||
return fraction_*flowRateProfile_->integrate(time0, time1);
|
||||
}
|
||||
|
||||
return 0.0;
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -89,10 +90,10 @@ class InflationInjection
|
||||
scalar duration_;
|
||||
|
||||
//- Flow rate profile relative to SOI [m3/s]
|
||||
TimeFunction1<scalar> flowRateProfile_;
|
||||
autoPtr<Function1<scalar>> flowRateProfile_;
|
||||
|
||||
//- Growth rate of particle diameters towards target [m/s]
|
||||
TimeFunction1<scalar> growthRate_;
|
||||
autoPtr<Function1<scalar>> growthRate_;
|
||||
|
||||
//- Positions, velocities, diameters and target diameters of
|
||||
// new particles after splitting
|
||||
|
||||
@ -266,7 +266,7 @@ Foam::InjectionModel<CloudType>::InjectionModel(CloudType& owner)
|
||||
SOI_(0.0),
|
||||
volumeTotal_(this->template getModelProperty<scalar>("volumeTotal")),
|
||||
massTotal_(0),
|
||||
massFlowRate_(owner.db().time(), "massFlowRate"),
|
||||
massFlowRate_(nullptr),
|
||||
massInjected_(this->template getModelProperty<scalar>("massInjected")),
|
||||
nInjections_(this->template getModelProperty<label>("nInjections")),
|
||||
parcelsAddedTotal_
|
||||
@ -297,7 +297,7 @@ Foam::InjectionModel<CloudType>::InjectionModel
|
||||
SOI_(0.0),
|
||||
volumeTotal_(this->template getModelProperty<scalar>("volumeTotal")),
|
||||
massTotal_(0),
|
||||
massFlowRate_(owner.db().time(), "massFlowRate"),
|
||||
massFlowRate_(nullptr),
|
||||
massInjected_(this->template getModelProperty<scalar>("massInjected")),
|
||||
nInjections_(this->template getModelProperty<scalar>("nInjections")),
|
||||
parcelsAddedTotal_
|
||||
@ -339,8 +339,16 @@ Foam::InjectionModel<CloudType>::InjectionModel
|
||||
}
|
||||
else
|
||||
{
|
||||
massFlowRate_.reset(this->coeffDict());
|
||||
massTotal_ = massFlowRate_.value(owner.db().time().value());
|
||||
massFlowRate_.reset
|
||||
(
|
||||
Function1<scalar>::New
|
||||
(
|
||||
"massFlowRate",
|
||||
this->coeffDict(),
|
||||
&owner.db().time()
|
||||
)
|
||||
);
|
||||
massTotal_ = massFlowRate_->value(owner.db().time().value());
|
||||
this->coeffDict().readIfPresent("SOI", SOI_);
|
||||
}
|
||||
}
|
||||
@ -385,7 +393,7 @@ Foam::InjectionModel<CloudType>::InjectionModel
|
||||
SOI_(im.SOI_),
|
||||
volumeTotal_(im.volumeTotal_),
|
||||
massTotal_(im.massTotal_),
|
||||
massFlowRate_(im.massFlowRate_),
|
||||
massFlowRate_(im.massFlowRate_.clone()),
|
||||
massInjected_(im.massInjected_),
|
||||
nInjections_(im.nInjections_),
|
||||
parcelsAddedTotal_(im.parcelsAddedTotal_),
|
||||
@ -577,7 +585,7 @@ void Foam::InjectionModel<CloudType>::injectSteadyState
|
||||
|
||||
const polyMesh& mesh = this->owner().mesh();
|
||||
|
||||
massTotal_ = massFlowRate_.value(mesh.time().value());
|
||||
massTotal_ = massFlowRate_->value(mesh.time().value());
|
||||
|
||||
// Reset counters
|
||||
time0_ = 0.0;
|
||||
|
||||
@ -59,7 +59,7 @@ SourceFiles
|
||||
#include "runTimeSelectionTables.H"
|
||||
#include "CloudSubModelBase.H"
|
||||
#include "vector.H"
|
||||
#include "TimeFunction1.H"
|
||||
#include "Function1.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -110,7 +110,7 @@ protected:
|
||||
scalar massTotal_;
|
||||
|
||||
//- Mass flow rate profile for steady calculations
|
||||
TimeFunction1<scalar> massFlowRate_;
|
||||
autoPtr<Function1<scalar>> massFlowRate_;
|
||||
|
||||
//- Total mass injected to date [kg]
|
||||
scalar massInjected_;
|
||||
|
||||
@ -27,7 +27,6 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "PatchFlowRateInjection.H"
|
||||
#include "TimeFunction1.H"
|
||||
#include "distributionModel.H"
|
||||
#include "mathematicalConstants.H"
|
||||
#include "surfaceFields.H"
|
||||
@ -49,11 +48,11 @@ Foam::PatchFlowRateInjection<CloudType>::PatchFlowRateInjection
|
||||
duration_(this->coeffDict().getScalar("duration")),
|
||||
concentration_
|
||||
(
|
||||
TimeFunction1<scalar>
|
||||
Function1<scalar>::New
|
||||
(
|
||||
owner.db().time(),
|
||||
"concentration",
|
||||
this->coeffDict()
|
||||
this->coeffDict(),
|
||||
&owner.db().time()
|
||||
)
|
||||
),
|
||||
parcelConcentration_
|
||||
@ -91,7 +90,7 @@ Foam::PatchFlowRateInjection<CloudType>::PatchFlowRateInjection
|
||||
phiName_(im.phiName_),
|
||||
rhoName_(im.rhoName_),
|
||||
duration_(im.duration_),
|
||||
concentration_(im.concentration_),
|
||||
concentration_(im.concentration_.clone()),
|
||||
parcelConcentration_(im.parcelConcentration_),
|
||||
sizeDistribution_(im.sizeDistribution_.clone())
|
||||
{}
|
||||
@ -161,7 +160,7 @@ Foam::label Foam::PatchFlowRateInjection<CloudType>::parcelsToInject
|
||||
{
|
||||
scalar dt = time1 - time0;
|
||||
|
||||
scalar c = concentration_.value(0.5*(time0 + time1));
|
||||
scalar c = concentration_->value(0.5*(time0 + time1));
|
||||
|
||||
scalar nParcels = parcelConcentration_*c*flowRate()*dt;
|
||||
|
||||
@ -201,7 +200,7 @@ Foam::scalar Foam::PatchFlowRateInjection<CloudType>::volumeToInject
|
||||
|
||||
if ((time0 >= 0.0) && (time0 < duration_))
|
||||
{
|
||||
scalar c = concentration_.value(0.5*(time0 + time1));
|
||||
scalar c = concentration_->value(0.5*(time0 + time1));
|
||||
|
||||
volume = c*(time1 - time0)*flowRate();
|
||||
}
|
||||
|
||||
@ -54,7 +54,6 @@ SourceFiles
|
||||
|
||||
#include "InjectionModel.H"
|
||||
#include "patchInjectionBase.H"
|
||||
#include "TimeFunction1.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -85,7 +84,7 @@ class PatchFlowRateInjection
|
||||
scalar duration_;
|
||||
|
||||
//- Concentration profile of particle volume to carrier volume [-]
|
||||
const TimeFunction1<scalar> concentration_;
|
||||
const autoPtr<Function1<scalar>> concentration_;
|
||||
|
||||
//- Parcels to introduce per unit volume flow rate m3 [n/m3]
|
||||
const scalar parcelConcentration_;
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2015-2019 OpenCFD Ltd.
|
||||
Copyright (C) 2015-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -27,7 +27,6 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "PatchInjection.H"
|
||||
#include "TimeFunction1.H"
|
||||
#include "distributionModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
@ -50,11 +49,11 @@ Foam::PatchInjection<CloudType>::PatchInjection
|
||||
U0_(this->coeffDict().lookup("U0")),
|
||||
flowRateProfile_
|
||||
(
|
||||
TimeFunction1<scalar>
|
||||
Function1<scalar>::New
|
||||
(
|
||||
owner.db().time(),
|
||||
"flowRateProfile",
|
||||
this->coeffDict()
|
||||
this->coeffDict(),
|
||||
&owner.db().time()
|
||||
)
|
||||
),
|
||||
sizeDistribution_
|
||||
@ -71,7 +70,7 @@ Foam::PatchInjection<CloudType>::PatchInjection
|
||||
patchInjectionBase::updateMesh(owner.mesh());
|
||||
|
||||
// Set total volume/mass to inject
|
||||
this->volumeTotal_ = flowRateProfile_.integrate(0.0, duration_);
|
||||
this->volumeTotal_ = flowRateProfile_->integrate(0.0, duration_);
|
||||
}
|
||||
|
||||
|
||||
@ -86,7 +85,7 @@ Foam::PatchInjection<CloudType>::PatchInjection
|
||||
duration_(im.duration_),
|
||||
parcelsPerSecond_(im.parcelsPerSecond_),
|
||||
U0_(im.U0_),
|
||||
flowRateProfile_(im.flowRateProfile_),
|
||||
flowRateProfile_(im.flowRateProfile_.clone()),
|
||||
sizeDistribution_(im.sizeDistribution_.clone())
|
||||
{}
|
||||
|
||||
@ -155,7 +154,7 @@ Foam::scalar Foam::PatchInjection<CloudType>::volumeToInject
|
||||
{
|
||||
if ((time0 >= 0.0) && (time0 < duration_))
|
||||
{
|
||||
return flowRateProfile_.integrate(time0, time1);
|
||||
return flowRateProfile_->integrate(time0, time1);
|
||||
}
|
||||
|
||||
return 0.0;
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -59,9 +60,6 @@ SourceFiles
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
template<class Type>
|
||||
class TimeFunction1;
|
||||
|
||||
class distributionModel;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
@ -86,7 +84,7 @@ class PatchInjection
|
||||
const vector U0_;
|
||||
|
||||
//- Flow rate profile relative to SOI []
|
||||
const TimeFunction1<scalar> flowRateProfile_;
|
||||
const autoPtr<Function1<scalar>> flowRateProfile_;
|
||||
|
||||
//- Parcel size distribution model
|
||||
const autoPtr<distributionModel> sizeDistribution_;
|
||||
|
||||
@ -61,7 +61,7 @@ Foam::RBD::restraints::prescribedRotation::prescribedRotation
|
||||
)
|
||||
:
|
||||
restraint(name, dict, model),
|
||||
omegaSet_(model_.time(), "omega"),
|
||||
omegaSet_(nullptr),
|
||||
omega_(Zero),
|
||||
oldMom_(Zero),
|
||||
error0_(Zero),
|
||||
@ -133,7 +133,7 @@ void Foam::RBD::restraints::prescribedRotation::restrain
|
||||
// from the definition of the angular momentum:
|
||||
// moment = Inertia*ddt(omega)
|
||||
|
||||
vector error = omegaSet_.value(model_.time().value()) - omega;
|
||||
vector error = omegaSet_->value(model_.time().value()) - omega;
|
||||
vector integral = integral0_ + error;
|
||||
vector derivative = (error - error0_);
|
||||
|
||||
@ -146,7 +146,7 @@ void Foam::RBD::restraints::prescribedRotation::restrain
|
||||
{
|
||||
Info<< " angle " << theta*sign(a & axis_) << endl
|
||||
<< " omega " << omega << endl
|
||||
<< " wanted " << omegaSet_.value(model_.time().value()) << endl
|
||||
<< " wanted " << omegaSet_->value(model_.time().value()) << endl
|
||||
<< " moment " << moment << endl
|
||||
<< " oldDir " << oldDir << endl
|
||||
<< " newDir " << newDir << endl
|
||||
@ -207,7 +207,7 @@ bool Foam::RBD::restraints::prescribedRotation::read
|
||||
}
|
||||
|
||||
// Read the actual entry
|
||||
omegaSet_.reset(coeffs_);
|
||||
omegaSet_.reset(Function1<vector>::New("omega", coeffs_, &model_.time()));
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -222,7 +222,7 @@ void Foam::RBD::restraints::prescribedRotation::write
|
||||
|
||||
os.writeEntry("referenceOrientation", refQ_);
|
||||
os.writeEntry("axis", axis_);
|
||||
omegaSet_.writeData(os);
|
||||
omegaSet_->writeData(os);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -44,9 +44,9 @@ Usage
|
||||
referenceOrientation | Orientation | no | I
|
||||
axis | Rotation axis (in reference) | yes |
|
||||
omega | Angular velocity (rad/s) | yes |
|
||||
relax | Relax moment with prevoius iter | yes
|
||||
relax | Relax moment with previous iter | yes
|
||||
p | Propoptional corrector for PDI | yes
|
||||
d | Differencial corrector for PDI | yes
|
||||
d | Differential corrector for PDI | yes
|
||||
i | Integral corrector for PDI | yes
|
||||
\endtable
|
||||
|
||||
@ -59,7 +59,7 @@ SourceFiles
|
||||
#define prescribedRotation_H
|
||||
|
||||
#include "rigidBodyRestraint.H"
|
||||
#include "TimeFunction1.H"
|
||||
#include "Function1.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -87,7 +87,7 @@ class prescribedRotation
|
||||
vector axis_;
|
||||
|
||||
//- Rotational velocity [rad/sec]
|
||||
TimeFunction1<vector> omegaSet_;
|
||||
autoPtr<Function1<vector>> omegaSet_;
|
||||
|
||||
//- Cache omega
|
||||
mutable vector omega_;
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2019-2020 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -83,11 +83,11 @@ void Foam::sixDoFRigidBodyMotionRestraints::linearSpringDamper::restrain
|
||||
{
|
||||
anchor_.reset
|
||||
(
|
||||
new TimeFunction1<vector>
|
||||
Function1<vector>::New
|
||||
(
|
||||
motion.time(),
|
||||
"anchor",
|
||||
coeffDict()
|
||||
coeffDict(),
|
||||
&motion.time()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@ -44,7 +44,7 @@ SourceFiles
|
||||
|
||||
#include "sixDoFRigidBodyMotionRestraint.H"
|
||||
#include "point.H"
|
||||
#include "TimeFunction1.H"
|
||||
#include "Function1.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -66,7 +66,7 @@ class linearSpringDamper
|
||||
|
||||
//- Anchor point, where the spring is attached to an immovable
|
||||
// object
|
||||
mutable autoPtr<TimeFunction1<vector>> anchor_;
|
||||
mutable autoPtr<Function1<vector>> anchor_;
|
||||
|
||||
//- Reference point of attachment to the solid body
|
||||
point refAttachmentPt_;
|
||||
|
||||
@ -122,9 +122,11 @@ void Foam::radiation::fvDOM::initialise()
|
||||
{
|
||||
spectralDistributions_.reset
|
||||
(
|
||||
new TimeFunction1<scalarField>
|
||||
Function1<scalarField>::New
|
||||
(
|
||||
mesh_.time(), "spectralDistribution", coeffs_
|
||||
"spectralDistribution",
|
||||
coeffs_,
|
||||
&mesh_.time()
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@ -183,7 +183,7 @@ class fvDOM
|
||||
scalarList spectralDistribution_;
|
||||
|
||||
//- Time-dependent spectral distributions
|
||||
autoPtr<TimeFunction1<scalarField>> spectralDistributions_;
|
||||
autoPtr<Function1<scalarField>> spectralDistributions_;
|
||||
|
||||
//- Solar calculator
|
||||
autoPtr<solarCalculator> solarCalculator_;
|
||||
|
||||
@ -369,9 +369,11 @@ void Foam::radiation::solarLoad::initialise(const dictionary& coeffs)
|
||||
{
|
||||
spectralDistributions_.reset
|
||||
(
|
||||
new TimeFunction1<scalarField>
|
||||
Function1<scalarField>::New
|
||||
(
|
||||
mesh_.time(), "spectralDistribution", coeffs
|
||||
"spectralDistribution",
|
||||
coeffs,
|
||||
&mesh_.time()
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@ -76,7 +76,7 @@ Usage
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
useReflectedRays | Flag to use reflected rays | bool | yes | -
|
||||
spectralDistribution | Spectral distribution for the integrated <!--
|
||||
--> solar heat flux | TimeFunction1\<scalarField\> | yes | -
|
||||
--> solar heat flux | Function1\<scalarField\> | yes | -
|
||||
solidCoupled | Flag to couple solids through mapped <!--
|
||||
--> boundary patch using qr | bool | no | true
|
||||
wallCoupled | Flag to couple wall patches using qr <!--
|
||||
@ -88,7 +88,7 @@ Usage
|
||||
The inherited entries are elaborated in:
|
||||
- \link radiationModel.H \endlink
|
||||
- \link solarCalculator.H \endlink
|
||||
- \link TimeFunction1.H \endlink
|
||||
- \link Function1.H \endlink
|
||||
|
||||
SourceFiles
|
||||
solarLoad.C
|
||||
@ -103,7 +103,7 @@ SourceFiles
|
||||
#include "faceShading.H"
|
||||
#include "faceReflecting.H"
|
||||
#include "solarCalculator.H"
|
||||
#include "TimeFunction1.H"
|
||||
#include "Function1.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -148,7 +148,7 @@ class solarLoad
|
||||
scalarList spectralDistribution_;
|
||||
|
||||
//- Time-dependent spectral distributions
|
||||
autoPtr<TimeFunction1<scalarField>> spectralDistributions_;
|
||||
autoPtr<Function1<scalarField>> spectralDistributions_;
|
||||
|
||||
//- Primary solar radiative heat flux per band [W/m2]
|
||||
PtrList<volScalarField> qprimaryRad_;
|
||||
|
||||
@ -203,21 +203,21 @@ void Foam::solarCalculator::initialise()
|
||||
{
|
||||
directSolarRads_.reset
|
||||
(
|
||||
new TimeFunction1<scalar>
|
||||
Function1<scalar>::New
|
||||
(
|
||||
mesh_.time(),
|
||||
"directSolarRad",
|
||||
dict_
|
||||
dict_,
|
||||
&mesh_.time()
|
||||
)
|
||||
);
|
||||
|
||||
diffuseSolarRads_.reset
|
||||
(
|
||||
new TimeFunction1<scalar>
|
||||
Function1<scalar>::New
|
||||
(
|
||||
mesh_.time(),
|
||||
"diffuseSolarRad",
|
||||
dict_
|
||||
dict_,
|
||||
&mesh_.time()
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@ -122,8 +122,8 @@ Usage
|
||||
solarLoadCoeffs
|
||||
{
|
||||
sunLoadModel timeDependent;
|
||||
directSolarRad <TimeFunction1<scalar>>;
|
||||
diffuseSolarRad <TimeFunction1<scalar>>;
|
||||
directSolarRad <Function1<scalar>>;
|
||||
diffuseSolarRad <Function1<scalar>>;
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
@ -131,10 +131,10 @@ Usage
|
||||
\table
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
directSolarRad | Time-series of direct solar irradiation <!--
|
||||
--> [W/m2] | TimeFunction1\<scalar\> | yes | -
|
||||
--> [W/m2] | Function1\<scalar\> | yes | -
|
||||
diffuseSolarRad | Time-series of diffuse solar irradiation on <!--
|
||||
--> vertical surfaces [W/m2] <!--
|
||||
--> | TimeFunction1\<scalar\> | yes | -
|
||||
--> | Function1\<scalar\> | yes | -
|
||||
\endtable
|
||||
|
||||
|
||||
@ -223,7 +223,7 @@ SourceFiles
|
||||
#include "DynamicField.H"
|
||||
#include "HashSet.H"
|
||||
#include "coordinateSystem.H"
|
||||
#include "TimeFunction1.H"
|
||||
#include "Function1.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -316,10 +316,10 @@ private:
|
||||
// sunLoadModel = timeDependent
|
||||
|
||||
//- Time-series of direct solar irradiation
|
||||
autoPtr<TimeFunction1<scalar>> directSolarRads_;
|
||||
autoPtr<Function1<scalar>> directSolarRads_;
|
||||
|
||||
//- Time-series of diffuse solar irradiation on vertical surfaces
|
||||
autoPtr<TimeFunction1<scalar>> diffuseSolarRads_;
|
||||
autoPtr<Function1<scalar>> diffuseSolarRads_;
|
||||
|
||||
|
||||
// sunLoadModel = fairWeather
|
||||
|
||||
Reference in New Issue
Block a user