mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
restructing - surface reactions to multiphase level + clean-up
This commit is contained in:
@ -22,44 +22,43 @@ clouds/derived/basicReactingMultiphaseCloud/basicReactingMultiphaseCloud.C
|
||||
/* kinematic parcel sub-models */
|
||||
KINEMATICPARCEL=$(DERIVEDPARCELS)/basicKinematicParcel
|
||||
$(KINEMATICPARCEL)/defineBasicKinematicParcel.C
|
||||
$(KINEMATICPARCEL)/makeBasicKinematicParcelDispersionModels.C
|
||||
$(KINEMATICPARCEL)/makeBasicKinematicParcelDragModels.C
|
||||
$(KINEMATICPARCEL)/makeBasicKinematicParcelInjectionModels.C
|
||||
$(KINEMATICPARCEL)/makeBasicKinematicParcelWallInteractionModels.C
|
||||
$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelDispersionModels.C
|
||||
$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelDragModels.C
|
||||
$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelInjectionModels.C
|
||||
$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelWallInteractionModels.C
|
||||
|
||||
/* thermo parcel sub-models */
|
||||
THERMOPARCEL=$(DERIVEDPARCELS)/basicThermoParcel
|
||||
$(THERMOPARCEL)/defineBasicThermoParcel.C
|
||||
$(THERMOPARCEL)/makeBasicThermoParcelDispersionModels.C
|
||||
$(THERMOPARCEL)/makeBasicThermoParcelDragModels.C
|
||||
$(THERMOPARCEL)/makeBasicThermoParcelHeatTransferModels.C
|
||||
$(THERMOPARCEL)/makeBasicThermoParcelInjectionModels.C
|
||||
$(THERMOPARCEL)/makeBasicThermoParcelWallInteractionModels.C
|
||||
$(THERMOPARCEL)/submodels/makeBasicThermoParcelDispersionModels.C
|
||||
$(THERMOPARCEL)/submodels/makeBasicThermoParcelDragModels.C
|
||||
$(THERMOPARCEL)/submodels/makeBasicThermoParcelHeatTransferModels.C
|
||||
$(THERMOPARCEL)/submodels/makeBasicThermoParcelInjectionModels.C
|
||||
$(THERMOPARCEL)/submodels/makeBasicThermoParcelWallInteractionModels.C
|
||||
|
||||
/* reacting parcel sub-models */
|
||||
REACTINGPARCEL=$(DERIVEDPARCELS)/basicReactingParcel
|
||||
$(REACTINGPARCEL)/defineBasicReactingParcel.C
|
||||
$(REACTINGPARCEL)/makeBasicReactingParcelCompositionModels.C
|
||||
$(REACTINGPARCEL)/makeBasicReactingParcelDispersionModels.C
|
||||
$(REACTINGPARCEL)/makeBasicReactingParcelDragModels.C
|
||||
$(REACTINGPARCEL)/makeBasicReactingParcelHeatTransferModels.C
|
||||
$(REACTINGPARCEL)/makeBasicReactingParcelInjectionModels.C
|
||||
$(REACTINGPARCEL)/makeBasicReactingParcelPhaseChangeModels.C
|
||||
$(REACTINGPARCEL)/makeBasicReactingParcelSurfaceReactionModels.C
|
||||
$(REACTINGPARCEL)/makeBasicReactingParcelWallInteractionModels.C
|
||||
$(REACTINGPARCEL)/submodels/makeBasicReactingParcelCompositionModels.C
|
||||
$(REACTINGPARCEL)/submodels/makeBasicReactingParcelDispersionModels.C
|
||||
$(REACTINGPARCEL)/submodels/makeBasicReactingParcelDragModels.C
|
||||
$(REACTINGPARCEL)/submodels/makeBasicReactingParcelHeatTransferModels.C
|
||||
$(REACTINGPARCEL)/submodels/makeBasicReactingParcelInjectionModels.C
|
||||
$(REACTINGPARCEL)/submodels/makeBasicReactingParcelPhaseChangeModels.C
|
||||
$(REACTINGPARCEL)/submodels/makeBasicReactingParcelWallInteractionModels.C
|
||||
|
||||
/* reacting multiphase parcel sub-models */
|
||||
REACTINGMPPARCEL=$(DERIVEDPARCELS)/basicReactingMultiphaseParcel
|
||||
$(REACTINGMPPARCEL)/defineBasicReactingMultiphaseParcel.C
|
||||
$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelCompositionModels.C
|
||||
$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelDevolatilisationModels.C
|
||||
$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelDispersionModels.C
|
||||
$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelDragModels.C
|
||||
$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelHeatTransferModels.C
|
||||
$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelInjectionModels.C
|
||||
$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelPhaseChangeModels.C
|
||||
$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C
|
||||
$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelWallInteractionModels.C
|
||||
$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelCompositionModels.C
|
||||
$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelDevolatilisationModels.C
|
||||
$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelDispersionModels.C
|
||||
$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelDragModels.C
|
||||
$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelHeatTransferModels.C
|
||||
$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelInjectionModels.C
|
||||
$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelPhaseChangeModels.C
|
||||
$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C
|
||||
$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelWallInteractionModels.C
|
||||
|
||||
/* bolt-on models */
|
||||
submodels/addOns/radiation/absorptionEmission/cloudAbsorptionEmission/cloudAbsorptionEmission.C
|
||||
|
||||
@ -253,8 +253,7 @@ void Foam::KinematicCloud<ParcelType>::info() const
|
||||
<< " Current number of parcels = "
|
||||
<< returnReduce(this->size(), sumOp<label>()) << nl
|
||||
<< " Current mass in system = "
|
||||
<< returnReduce(massInSystem(), sumOp<scalar>()) << nl
|
||||
<< endl;
|
||||
<< returnReduce(massInSystem(), sumOp<scalar>()) << nl;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -28,7 +28,6 @@ License
|
||||
|
||||
#include "CompositionModel.H"
|
||||
#include "PhaseChangeModel.H"
|
||||
#include "SurfaceReactionModel.H"
|
||||
|
||||
// * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * * //
|
||||
|
||||
@ -97,15 +96,8 @@ Foam::ReactingCloud<ParcelType>::ReactingCloud
|
||||
*this
|
||||
)
|
||||
),
|
||||
surfaceReactionModel_
|
||||
(
|
||||
SurfaceReactionModel<ReactingCloud<ParcelType> >::New
|
||||
(
|
||||
this->particleProperties(),
|
||||
*this
|
||||
)
|
||||
),
|
||||
rhoTrans_(thermo.composition().Y().size())
|
||||
rhoTrans_(thermo.composition().Y().size()),
|
||||
dMassPhaseChange_(0.0)
|
||||
{
|
||||
// Set storage for mass source fields and initialise to zero
|
||||
forAll(rhoTrans_, i)
|
||||
@ -224,4 +216,21 @@ void Foam::ReactingCloud<ParcelType>::evolve()
|
||||
}
|
||||
|
||||
|
||||
template<class ParcelType>
|
||||
void Foam::ReactingCloud<ParcelType>::info() const
|
||||
{
|
||||
ThermoCloud<ParcelType>::info();
|
||||
|
||||
Info<< " Mass transfer phase change = "
|
||||
<< returnReduce(dMassPhaseChange_, sumOp<scalar>()) << nl;
|
||||
}
|
||||
|
||||
|
||||
template<class ParcelType>
|
||||
void Foam::ReactingCloud<ParcelType>::addToMassPhaseChange(const scalar dMass)
|
||||
{
|
||||
dMassPhaseChange_ += dMass;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -30,7 +30,6 @@ Description
|
||||
- Adds to thermodynamic cloud
|
||||
- Variable composition (single phase)
|
||||
- Phase change
|
||||
- Surface reactions
|
||||
|
||||
SourceFiles
|
||||
ReactingCloudI.H
|
||||
@ -62,9 +61,6 @@ class CompositionModel;
|
||||
template<class CloudType>
|
||||
class PhaseChangeModel;
|
||||
|
||||
template<class CloudType>
|
||||
class SurfaceReactionModel;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class ReactingCloud Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -97,13 +93,6 @@ class ReactingCloud
|
||||
autoPtr<PhaseChangeModel<ReactingCloud<ParcelType> > >
|
||||
phaseChangeModel_;
|
||||
|
||||
//- Reacting surface reaction model
|
||||
autoPtr
|
||||
<
|
||||
SurfaceReactionModel<ReactingCloud<ParcelType> >
|
||||
>
|
||||
surfaceReactionModel_;
|
||||
|
||||
|
||||
// Sources
|
||||
|
||||
@ -111,6 +100,12 @@ class ReactingCloud
|
||||
PtrList<DimensionedField<scalar, volMesh> > rhoTrans_;
|
||||
|
||||
|
||||
// Check
|
||||
|
||||
//- Total mass transferred to continuous phase via phase change
|
||||
scalar dMassPhaseChange_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow default bitwise copy construct
|
||||
@ -168,10 +163,6 @@ public:
|
||||
inline const PhaseChangeModel<ReactingCloud<ParcelType> >&
|
||||
phaseChange() const;
|
||||
|
||||
//- Return reference to reacting surface reaction model
|
||||
inline const SurfaceReactionModel<ReactingCloud<ParcelType> >&
|
||||
surfaceReaction() const;
|
||||
|
||||
|
||||
// Sources
|
||||
|
||||
@ -196,6 +187,15 @@ public:
|
||||
Srho1() const;
|
||||
|
||||
|
||||
// Check
|
||||
|
||||
//- Print cloud information
|
||||
void info() const;
|
||||
|
||||
//- Add to cumulative phase change mass transfer
|
||||
void addToMassPhaseChange(const scalar dMass);
|
||||
|
||||
|
||||
// Cloud evolution functions
|
||||
|
||||
//- Add new parcel
|
||||
|
||||
@ -66,14 +66,6 @@ Foam::ReactingCloud<ParcelType>::phaseChange() const
|
||||
}
|
||||
|
||||
|
||||
template<class ParcelType>
|
||||
inline const Foam::SurfaceReactionModel<Foam::ReactingCloud<ParcelType> >&
|
||||
Foam::ReactingCloud<ParcelType>::surfaceReaction() const
|
||||
{
|
||||
return surfaceReactionModel_;
|
||||
}
|
||||
|
||||
|
||||
template<class ParcelType>
|
||||
inline Foam::DimensionedField<Foam::scalar, Foam::volMesh>&
|
||||
Foam::ReactingCloud<ParcelType>::rhoTrans(const label i)
|
||||
|
||||
@ -26,7 +26,6 @@ License
|
||||
|
||||
#include "ReactingMultiphaseCloud.H"
|
||||
|
||||
#include "CompositionModel.H"
|
||||
#include "DevolatilisationModel.H"
|
||||
#include "SurfaceReactionModel.H"
|
||||
|
||||
@ -93,7 +92,16 @@ Foam::ReactingMultiphaseCloud<ParcelType>::ReactingMultiphaseCloud
|
||||
this->particleProperties(),
|
||||
*this
|
||||
)
|
||||
)
|
||||
),
|
||||
surfaceReactionModel_
|
||||
(
|
||||
SurfaceReactionModel<ReactingMultiphaseCloud<ParcelType> >::New
|
||||
(
|
||||
this->particleProperties(),
|
||||
*this
|
||||
)
|
||||
),
|
||||
dMassDevolatilisation_(0.0)
|
||||
{}
|
||||
|
||||
|
||||
@ -185,4 +193,35 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::evolve()
|
||||
}
|
||||
|
||||
|
||||
template<class ParcelType>
|
||||
void Foam::ReactingMultiphaseCloud<ParcelType>::info() const
|
||||
{
|
||||
ReactingCloud<ParcelType>::info();
|
||||
Info<< " Mass transfer devolatilisation = "
|
||||
<< returnReduce(dMassDevolatilisation_, sumOp<scalar>()) << nl;
|
||||
Info<< " Mass transfer surface reaction = "
|
||||
<< returnReduce(dMassSurfaceReaction_, sumOp<scalar>()) << nl;
|
||||
}
|
||||
|
||||
|
||||
template<class ParcelType>
|
||||
void Foam::ReactingMultiphaseCloud<ParcelType>::addToMassDevolatilisation
|
||||
(
|
||||
const scalar dMass
|
||||
)
|
||||
{
|
||||
dMassDevolatilisation_ += dMass;
|
||||
}
|
||||
|
||||
|
||||
template<class ParcelType>
|
||||
void Foam::ReactingMultiphaseCloud<ParcelType>::addToMassSurfaceReaction
|
||||
(
|
||||
const scalar dMass
|
||||
)
|
||||
{
|
||||
dMassSurfaceReaction_ += dMass;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -28,8 +28,9 @@ Class
|
||||
Description
|
||||
Templated base class for multiphase reacting cloud
|
||||
- Adds to reacting cloud
|
||||
- Devolatilisatsion
|
||||
- multiphase composition
|
||||
- devolatilisatsion
|
||||
- surface reactions
|
||||
|
||||
SourceFiles
|
||||
ReactingMultiphaseCloudI.H
|
||||
@ -53,6 +54,9 @@ namespace Foam
|
||||
template<class CloudType>
|
||||
class DevolatilisationModel;
|
||||
|
||||
template<class CloudType>
|
||||
class SurfaceReactionModel;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class ReactingMultiphaseCloud Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -78,6 +82,23 @@ class ReactingMultiphaseCloud
|
||||
>
|
||||
devolatilisationModel_;
|
||||
|
||||
//- Surface reaction model
|
||||
autoPtr
|
||||
<
|
||||
SurfaceReactionModel<ReactingMultiphaseCloud<ParcelType> >
|
||||
>
|
||||
surfaceReactionModel_;
|
||||
|
||||
|
||||
// Check
|
||||
|
||||
//- Total mass transferred to continuous phase via devolatilisation
|
||||
scalar dMassDevolatilisation_;
|
||||
|
||||
//- Total mass transferred to continuous phase via surface
|
||||
// reactions
|
||||
scalar dMassSurfaceReaction_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
@ -125,6 +146,25 @@ public:
|
||||
>&
|
||||
devolatilisation() const;
|
||||
|
||||
//- Return reference to reacting surface reaction model
|
||||
inline const SurfaceReactionModel
|
||||
<
|
||||
ReactingMultiphaseCloud<ParcelType>
|
||||
>&
|
||||
surfaceReaction() const;
|
||||
|
||||
|
||||
// Check
|
||||
|
||||
//- Print cloud information
|
||||
void info() const;
|
||||
|
||||
//- Add to cumulative volatilisation mass transfer
|
||||
void addToMassDevolatilisation(const scalar dMass);
|
||||
|
||||
//- Add to cumulative surface reaction transfer
|
||||
void addToMassSurfaceReaction(const scalar dMass);
|
||||
|
||||
|
||||
// Cloud evolution functions
|
||||
|
||||
|
||||
@ -37,4 +37,15 @@ Foam::ReactingMultiphaseCloud<ParcelType>::devolatilisation() const
|
||||
}
|
||||
|
||||
|
||||
template<class ParcelType>
|
||||
inline const Foam::SurfaceReactionModel
|
||||
<
|
||||
Foam::ReactingMultiphaseCloud<ParcelType>
|
||||
>&
|
||||
Foam::ReactingMultiphaseCloud<ParcelType>::surfaceReaction() const
|
||||
{
|
||||
return surfaceReactionModel_;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -215,4 +215,11 @@ void Foam::ThermoCloud<ParcelType>::evolve()
|
||||
}
|
||||
|
||||
|
||||
template<class ParcelType>
|
||||
void Foam::ThermoCloud<ParcelType>::info() const
|
||||
{
|
||||
KinematicCloud<ParcelType>::info();
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -197,6 +197,12 @@ public:
|
||||
inline tmp<volScalarField> sigmap() const;
|
||||
|
||||
|
||||
// Check
|
||||
|
||||
//- Print cloud information
|
||||
void info() const;
|
||||
|
||||
|
||||
// Cloud evolution functions
|
||||
|
||||
//- Add new parcel
|
||||
|
||||
@ -402,6 +402,8 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calcDevolatilisation
|
||||
scalar volatileMass = YGas_[i]*dMassTot;
|
||||
dMassMT[id] += volatileMass;
|
||||
}
|
||||
|
||||
td.cloud().addToMassDevolatilisation(dMassTot);
|
||||
}
|
||||
|
||||
|
||||
@ -446,6 +448,8 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calcSurfaceReactions
|
||||
dMassSR,
|
||||
dhRet
|
||||
);
|
||||
|
||||
// TODO: td.cloud().addToMassDevolatilisation(sum(dMassSR));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -61,6 +61,7 @@ void Foam::ReactingParcel<ParcelType>::calcCoupled
|
||||
const scalar np0 = this->nParticle_;
|
||||
const scalar T0 = this->T_;
|
||||
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Initialise transfer terms
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -75,11 +76,6 @@ void Foam::ReactingParcel<ParcelType>::calcCoupled
|
||||
// - components exist in particle already
|
||||
scalarList dMassMT(td.cloud().gases().size(), 0.0);
|
||||
|
||||
// Mass transfer due to surface reactions from particle to carrier phase
|
||||
// - components do not necessarily exist in particle already
|
||||
scalarList dMassSR(td.cloud().gases().size(), 0.0);
|
||||
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Calculate velocity - update U
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -100,23 +96,8 @@ void Foam::ReactingParcel<ParcelType>::calcCoupled
|
||||
scalarField X = td.cliud().composition().X(0, YMixture_);
|
||||
calcPhaseChange(td, dt, T, X, dMassMT);
|
||||
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Calculate surface reactions
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
// Initialise enthalpy retention to zero
|
||||
scalar dhRet = 0.0;
|
||||
|
||||
calcSurfaceReactions(td, dt, celli, T0, T1, dMassMT, dMassSR, dhRet);
|
||||
|
||||
// New total mass
|
||||
const scalar mass1 = mass0 - sum(dMassMT) - sum(dMassSR);
|
||||
|
||||
// Add retained enthalpy from surface reaction to particle and remove
|
||||
// from gas
|
||||
T1 += dhRet/(0.5*(mass0 + mass1)*cp0);
|
||||
dhTrans -= dhRet;
|
||||
const scalar mass1 = mass0 - sum(dMassMT);
|
||||
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -126,7 +107,7 @@ void Foam::ReactingParcel<ParcelType>::calcCoupled
|
||||
// Transfer mass lost from particle to carrier mass source
|
||||
forAll(dMassMT, i)
|
||||
{
|
||||
td.cloud().rhoTrans(i)[celli] += np0*(dMassMT[i] + dMassSR[i]);
|
||||
td.cloud().rhoTrans(i)[celli] += np0*dMassMT[i];
|
||||
}
|
||||
|
||||
// Update momentum transfer
|
||||
@ -194,6 +175,7 @@ void Foam::ReactingParcel<ParcelType>::calcUncoupled
|
||||
const scalar mass0 = this->mass();
|
||||
const scalar cp0 = this->cp_;
|
||||
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Initialise transfer terms
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -208,10 +190,6 @@ void Foam::ReactingParcel<ParcelType>::calcUncoupled
|
||||
// - components exist in particle already
|
||||
scalarList dMassMT(td.cloud().gases().size(), 0.0);
|
||||
|
||||
// Mass transfer due to surface reactions from particle to carrier phase
|
||||
// - components do not necessarily exist in particle already
|
||||
scalarList dMassSR(td.cloud().gases().size(), 0.0);
|
||||
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Calculate velocity - update U
|
||||
@ -231,7 +209,8 @@ void Foam::ReactingParcel<ParcelType>::calcUncoupled
|
||||
// Calculate phase change
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~
|
||||
scalarField X = td.cloud().composition().X(0, YMixture_);
|
||||
calcPhaseChange(td, dt, T, X, dMassMT);
|
||||
scalar dMassPC = calcPhaseChange(td, dt, T, X, dMassMT);
|
||||
T1 -= td.constProps().Lvap()*dMassPC/(0.5*mass0*cp0);
|
||||
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -241,10 +220,8 @@ void Foam::ReactingParcel<ParcelType>::calcUncoupled
|
||||
// Initialise enthalpy retention to zero
|
||||
scalar dhRet = 0.0;
|
||||
|
||||
calcSurfaceReactions(td, dt, celli, T0, T1, dMassMT, dMassSR, dhRet);
|
||||
|
||||
// New total mass
|
||||
const scalar mass1 = mass0 - sum(dMassMT) - sum(dMassSR);
|
||||
const scalar mass1 = mass0 - sum(dMassMT);
|
||||
|
||||
// New specific heat capacity
|
||||
const scalar cp1 = cp0; // TODO: new cp1
|
||||
@ -312,6 +289,7 @@ void Foam::ReactingParcel<ParcelType>::calcPhaseChange
|
||||
dt
|
||||
);
|
||||
|
||||
td.cloud().addToMassPhaseChange(dMassTot);
|
||||
// TODO: Re-calculate mass fractions
|
||||
|
||||
|
||||
|
||||
@ -31,6 +31,8 @@ License
|
||||
#include "GradientDispersionRAS.H"
|
||||
#include "StochasticDispersionRAS.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeDispersionModel(KinematicCloud<basicKinematicParcel>);
|
||||
@ -30,6 +30,8 @@ License
|
||||
#include "NoDrag.H"
|
||||
#include "SphereDrag.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeDragModel(KinematicCloud<basicKinematicParcel>);
|
||||
@ -31,6 +31,8 @@ License
|
||||
#include "ManualInjection.H"
|
||||
#include "ConeInjection.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeInjectionModel(KinematicCloud<basicKinematicParcel>);
|
||||
@ -30,6 +30,8 @@ License
|
||||
#include "Rebound.H"
|
||||
#include "StandardWallInteraction.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeWallInteractionModel(KinematicCloud<basicKinematicParcel>);
|
||||
@ -29,6 +29,8 @@ License
|
||||
|
||||
#include "SingleMixtureFraction.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeCompositionModel
|
||||
@ -31,6 +31,8 @@ License
|
||||
#include "ConstantRateDevolatilisation.H"
|
||||
#include "SingleKineticRateDevolatilisation.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeDevolatilisationModel
|
||||
@ -31,6 +31,8 @@ License
|
||||
#include "GradientDispersionRAS.H"
|
||||
#include "StochasticDispersionRAS.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeDispersionModel(KinematicCloud<basicReactingMultiphaseParcel>);
|
||||
@ -30,6 +30,8 @@ License
|
||||
#include "NoDrag.H"
|
||||
#include "SphereDrag.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeDragModel(KinematicCloud<basicReactingMultiphaseParcel>);
|
||||
@ -30,6 +30,8 @@ License
|
||||
#include "NoHeatTransfer.H"
|
||||
#include "RanzMarshall.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeHeatTransferModel(ThermoCloud<basicReactingMultiphaseParcel>);
|
||||
@ -31,6 +31,8 @@ License
|
||||
#include "ManualInjection.H"
|
||||
#include "ConeInjection.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeInjectionModel(KinematicCloud<basicReactingMultiphaseParcel>);
|
||||
@ -29,6 +29,8 @@ License
|
||||
|
||||
#include "NoPhaseChange.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makePhaseChangeModel
|
||||
@ -25,22 +25,24 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "basicReactingMultiphaseParcel.H"
|
||||
#include "ReactingCloud.H"
|
||||
#include "ReactingMultiphaseCloud.H"
|
||||
|
||||
#include "NoSurfaceReaction.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeSurfaceReactionModel
|
||||
(
|
||||
ReactingCloud<basicReactingMultiphaseParcel>
|
||||
ReactingMultiphaseCloud<basicReactingMultiphaseParcel>
|
||||
);
|
||||
|
||||
// Add instances of surface reaction model to the table
|
||||
makeSurfaceReactionModelType
|
||||
(
|
||||
NoSurfaceReaction,
|
||||
ReactingCloud,
|
||||
ReactingMultiphaseCloud,
|
||||
basicReactingMultiphaseParcel
|
||||
);
|
||||
};
|
||||
@ -30,6 +30,8 @@ License
|
||||
#include "Rebound.H"
|
||||
#include "StandardWallInteraction.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeWallInteractionModel(KinematicCloud<basicReactingMultiphaseParcel>);
|
||||
@ -1,46 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "basicReactingParcel.H"
|
||||
#include "ReactingCloud.H"
|
||||
|
||||
#include "NoSurfaceReaction.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeSurfaceReactionModel(ReactingCloud<basicReactingParcel>);
|
||||
|
||||
// Add instances of surface reaction model to the table
|
||||
makeSurfaceReactionModelType
|
||||
(
|
||||
NoSurfaceReaction,
|
||||
ReactingCloud,
|
||||
basicReactingParcel
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -29,6 +29,8 @@ License
|
||||
|
||||
#include "SinglePhaseMixture.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeCompositionModel(ReactingCloud<basicReactingParcel>);
|
||||
@ -31,6 +31,8 @@ License
|
||||
#include "GradientDispersionRAS.H"
|
||||
#include "StochasticDispersionRAS.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeDispersionModel(KinematicCloud<basicReactingParcel>);
|
||||
@ -30,6 +30,8 @@ License
|
||||
#include "NoDrag.H"
|
||||
#include "SphereDrag.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeDragModel(KinematicCloud<basicReactingParcel>);
|
||||
@ -30,6 +30,8 @@ License
|
||||
#include "NoHeatTransfer.H"
|
||||
#include "RanzMarshall.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeHeatTransferModel(ThermoCloud<basicReactingParcel>);
|
||||
@ -31,6 +31,8 @@ License
|
||||
#include "ManualInjection.H"
|
||||
#include "ConeInjection.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeInjectionModel(KinematicCloud<basicReactingParcel>);
|
||||
@ -29,6 +29,8 @@ License
|
||||
|
||||
#include "NoPhaseChange.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makePhaseChangeModel(ReactingCloud<basicReactingParcel>);
|
||||
@ -30,6 +30,8 @@ License
|
||||
#include "Rebound.H"
|
||||
#include "StandardWallInteraction.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeWallInteractionModel(KinematicCloud<basicReactingParcel>);
|
||||
@ -30,6 +30,8 @@ License
|
||||
#include "GradientDispersionRAS.H"
|
||||
#include "StochasticDispersionRAS.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeDispersionModel(KinematicCloud<basicThermoParcel>);
|
||||
@ -29,6 +29,8 @@ License
|
||||
#include "NoDrag.H"
|
||||
#include "SphereDrag.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeDragModel(KinematicCloud<basicThermoParcel>);
|
||||
@ -29,6 +29,8 @@ License
|
||||
#include "NoHeatTransfer.H"
|
||||
#include "RanzMarshall.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeHeatTransferModel(ThermoCloud<basicThermoParcel>);
|
||||
@ -30,6 +30,8 @@ License
|
||||
#include "ManualInjection.H"
|
||||
#include "ConeInjection.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeInjectionModel(KinematicCloud<basicThermoParcel>);
|
||||
@ -29,6 +29,8 @@ License
|
||||
#include "Rebound.H"
|
||||
#include "StandardWallInteraction.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
makeWallInteractionModel(KinematicCloud<basicThermoParcel>);
|
||||
@ -71,10 +71,10 @@ public:
|
||||
// Member Functions
|
||||
|
||||
//- Flag to indicate whether model activates devolatisation model
|
||||
bool active() const;
|
||||
virtual bool active() const;
|
||||
|
||||
//- Update surface reactions
|
||||
void calculate
|
||||
virtual void calculate
|
||||
(
|
||||
const scalar dt,
|
||||
const label celli,
|
||||
@ -56,7 +56,6 @@ namespace Foam
|
||||
template<class CloudType>
|
||||
class SurfaceReactionModel
|
||||
{
|
||||
|
||||
// Private data
|
||||
|
||||
//- The cloud dictionary
|
||||
@ -129,7 +128,7 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Flag to indicate whether model activates devolatisation model
|
||||
//- Flag to indicate whether model activates surface reaction model
|
||||
virtual bool active() const = 0;
|
||||
|
||||
//- Update surface reactions
|
||||
Reference in New Issue
Block a user