Пример #1
0
tmp<volScalarField> standardRadiation::Shs()
{
    tmp<volScalarField> tShs
    (
        new volScalarField
        (
            IOobject
            (
                typeName + "::Shs",
                owner().time().timeName(),
                owner().regionMesh(),
                IOobject::NO_READ,
                IOobject::NO_WRITE
            ),
            owner().regionMesh(),
            dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0),
            zeroGradientFvPatchScalarField::typeName
        )
    );

    scalarField& Shs = tShs();
    const scalarField& QrP = QrPrimary_.internalField();
    const scalarField& delta = delta_.internalField();

    Shs = beta_*(QrP*pos(delta - deltaMin_))*(1.0 - exp(-kappaBar_*delta));

    // Update net Qr on local region
    QrNet_.internalField() = QrP - Shs;
    QrNet_.correctBoundaryConditions();

    return tShs;
}
Пример #2
0
tmp<volScalarField> constantRadiation::Shs()
{
    tmp<volScalarField> tShs
    (
        new volScalarField
        (
            IOobject
            (
                typeName + ":Shs",
                owner().time().timeName(),
                owner().regionMesh(),
                IOobject::NO_READ,
                IOobject::NO_WRITE
            ),
            owner().regionMesh(),
            dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0)
        )
    );

    const scalar time = owner().time().value();

    if ((time >= timeStart_) && (time <= timeStart_ + duration_))
    {
        scalarField& Shs = tShs();
        const scalarField& Qr = QrConst_.internalField();
        const scalarField& alpha = owner_.alpha().internalField();

        Shs = mask_*Qr*alpha*absorptivity_;
    }

    return tShs;
}
tmp<volScalarField> standardRadiation::Shs()
{
    tmp<volScalarField> tShs
    (
        new volScalarField
        (
            IOobject
            (
                typeName + "_Shs",
                owner().time().timeName(),
                owner().regionMesh(),
                IOobject::NO_READ,
                IOobject::NO_WRITE
            ),
            owner().regionMesh(),
            dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0),
            zeroGradientFvPatchScalarField::typeName
        )
    );

    scalarField& Shs = tShs();
    const scalarField& QinP = QinPrimary_.internalField();
    const scalarField& delta = owner_.delta().internalField();
    const scalarField& alpha = owner_.alpha().internalField();

    // kvm, for now assume if surface is wet, then radiation is absorbed by film
    Shs = QinP*alpha;

    return tShs;
}
Пример #4
0
tmp<volScalarField> constantRadiation::Shs()
{
    tmp<volScalarField> tShs
    (
        volScalarField::New
        (
            typeName + ":Shs",
            film().regionMesh(),
            dimensionedScalar(dimMass/pow3(dimTime), 0)
        )
    );

    const scalar time = film().time().value();

    if ((time >= timeStart_) && (time <= timeStart_ + duration_))
    {
        scalarField& Shs = tShs.ref();
        const scalarField& qr = qrConst_;
        const scalarField& alpha = filmModel_.alpha();

        Shs = mask_*qr*alpha*absorptivity_;
    }

    return tShs;
}
tmp<volScalarField> rampingRadiation::Shs()
{
    tmp<volScalarField> tShs
    (
        new volScalarField
        (
            IOobject
            (
                typeName + "_Shs",
                owner().time().timeName(),
                owner().regionMesh(),
                IOobject::NO_READ,
                IOobject::NO_WRITE
            ),
            owner().regionMesh(),
            dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0),
            zeroGradientFvPatchScalarField::typeName
        )
    );

    const scalar time = owner().time().value();

    if ((time >= timeStart_) && (time <= timeStart_ + duration_))
    {

        if(time > rampStartTime_ + rampTimeInterval_ ){
            QrConst_.internalField() += rampStep_;
            rampStartTime_ += rampTimeInterval_;
            Info << "time, QrConst = " << time << ", " << gMax(QrConst_) << endl;
        }

        scalarField& Shs = tShs();
        const scalarField& Qr = QrConst_.internalField();
        // const scalarField& alpha = owner_.alpha().internalField();

        // Shs = mask_*Qr*alpha*absorptivity_;
        Shs = mask_*Qr*absorptivity_;
        // Qin_ is used in turbulentTemperatureRadiationCoupledMixedST 
        // boundary condition
        Qin_.internalField() = mask_*Qr;
        Qin_.correctBoundaryConditions();
    }

    return tShs;
}
Пример #6
0
tmp<volScalarField> standardRadiation::Shs()
{
    tmp<volScalarField> tShs
    (
        new volScalarField
        (
            IOobject
            (
                typeName + "::Shs",
                owner().time().timeName(),
                owner().regionMesh(),
                IOobject::NO_READ,
                IOobject::NO_WRITE
            ),
            owner().regionMesh(),
            dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0),
            zeroGradientFvPatchScalarField::typeName
        )
    );

    scalarField& Shs = tShs();
    /*QrPrimary is radiation from gas phase*/
    const scalarField& QrP = QrPrimary_.internalField();
    const scalarField& delta = delta_.internalField();

    /*Shs is used in film energy equation*/
    /*kvm, for now we assume that water is black to radiation*/
    /*Shs = beta_*(QrP*pos(delta - deltaMin_))*(1.0 - exp(-kappaBar_*delta));*/
    Shs = QrP*pos(delta - deltaMin_); //kvm, for now assume if surface is wet, then radiation is absorbed by film
    QrFilm_.internalField() = Shs;  //kvm, this opens up the film's absorbed radiation to diagnostics
    QrFilm_.correctBoundaryConditions();

    // Update net Qr on local region
    /*QrNet_ is passed on to pyrolysis region (Qr in 0/pyrolysisRegion/Qr) */
    QrNet_.internalField() = QrP - Shs;
    QrNet_.correctBoundaryConditions();

    return tShs;
}
tmp<volScalarField> rampingRadiation::ShsConst() const
{
    tmp<volScalarField> tShs
    (
        new volScalarField
        (
            IOobject
            (
                typeName + "_Shs",
                owner().time().timeName(),
                owner().regionMesh(),
                IOobject::NO_READ,
                IOobject::NO_WRITE
            ),
            owner().regionMesh(),
            dimensionedScalar("zero", dimMass/pow3(dimTime), 0.0),
            zeroGradientFvPatchScalarField::typeName
        )
    );

    const scalar time = owner().time().value();

    if ((time >= timeStart_) && (time <= timeStart_ + duration_))
    {
        scalarField& Shs = tShs();
        const scalarField& Qr = QrConst_.internalField();
        const scalarField& alpha = owner_.alpha().internalField();

        // Shs = mask_*Qr*alpha*absorptivity_;
        Shs = mask_*Qr*absorptivity_;
        // Qin_ is used in turbulentTemperatureRadiationCoupledMixedST 
        // boundary condition
    }

    return tShs;
}
Пример #8
0
tmp<volScalarField> primaryRadiation::Shs()
{
    tmp<volScalarField> tShs
    (
        volScalarField::New
        (
            typeName + ":Shs",
            film().regionMesh(),
            dimensionedScalar(dimMass/pow3(dimTime), 0)
        )
    );

    scalarField& Shs = tShs.ref();
    const scalarField& qinP = qinPrimary_;
    const scalarField& alpha = filmModel_.alpha();

    Shs = qinP*alpha;

    return tShs;
}