From 114de08135ecfb5e42c33fe7ec337f532c27708a Mon Sep 17 00:00:00 2001 From: andy <a.heather@opencfd.co.uk> Date: Wed, 20 Oct 2010 15:15:09 +0100 Subject: [PATCH] ENH: Added copy/clone functionality to coal parcel sub-models --- .../COxidationDiffusionLimitedRate.C | 25 +++++++++++---- .../COxidationDiffusionLimitedRate.H | 18 +++++++++-- .../COxidationKineticDiffusionLimitedRate.C | 27 ++++++++++++---- .../COxidationKineticDiffusionLimitedRate.H | 18 +++++++++-- .../COxidationMurphyShaddix.C | 32 ++++++++++++++----- .../COxidationMurphyShaddix.H | 18 +++++++++-- 6 files changed, 107 insertions(+), 31 deletions(-) diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C index 833566efee3..17b5f36c385 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C @@ -70,6 +70,24 @@ Foam::COxidationDiffusionLimitedRate<CloudType>::COxidationDiffusionLimitedRate } +template<class CloudType> +Foam::COxidationDiffusionLimitedRate<CloudType>::COxidationDiffusionLimitedRate +( + const COxidationDiffusionLimitedRate<CloudType>& srm +) +: + SurfaceReactionModel<CloudType>(srm), + Sb_(srm.Sb_), + D_(srm.D_), + CsLocalId_(srm.CsLocalId_), + O2GlobalId_(srm.O2GlobalId_), + CO2GlobalId_(srm.CO2GlobalId_), + WC_(srm.WC_), + WO2_(srm.WO2_), + HcCO2_(srm.HcCO2_) +{} + + // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template<class CloudType> @@ -80,13 +98,6 @@ Foam::COxidationDiffusionLimitedRate<CloudType>:: // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -template<class CloudType> -bool Foam::COxidationDiffusionLimitedRate<CloudType>::active() const -{ - return true; -} - - template<class CloudType> Foam::scalar Foam::COxidationDiffusionLimitedRate<CloudType>::calculate ( diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.H b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.H index 3caebe1f5aa..7c7d5ad401a 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.H +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.H @@ -105,6 +105,21 @@ public: CloudType& owner ); + //- Construct copy + COxidationDiffusionLimitedRate + ( + const COxidationDiffusionLimitedRate<CloudType>& srm + ); + + //- Construct and return a clone + virtual autoPtr<SurfaceReactionModel<CloudType> > clone() const + { + return autoPtr<SurfaceReactionModel<CloudType> > + ( + new COxidationDiffusionLimitedRate<CloudType>(*this) + ); + } + //- Destructor virtual ~COxidationDiffusionLimitedRate(); @@ -112,9 +127,6 @@ public: // Member Functions - //- Flag to indicate whether model activates surface reaction model - virtual bool active() const; - //- Update surface reactions virtual scalar calculate ( diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.C b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.C index 8e3dc2059e3..5c705a86668 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.C +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.C @@ -78,6 +78,26 @@ COxidationKineticDiffusionLimitedRate } +template<class CloudType> +Foam::COxidationKineticDiffusionLimitedRate<CloudType>:: +COxidationKineticDiffusionLimitedRate +( + const COxidationKineticDiffusionLimitedRate<CloudType>& srm +) +: + SurfaceReactionModel<CloudType>(srm), + Sb_(srm.Sb_), + C1_(srm.C1_), + C2_(srm.C2_), + E_(srm.E_), + CsLocalId_(srm.CsLocalId_), + O2GlobalId_(srm.O2GlobalId_), + CO2GlobalId_(srm.CO2GlobalId_), + WC_(srm.WC_), + WO2_(srm.WO2_) +{} + + // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template<class CloudType> @@ -88,13 +108,6 @@ Foam::COxidationKineticDiffusionLimitedRate<CloudType>:: // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -template<class CloudType> -bool Foam::COxidationKineticDiffusionLimitedRate<CloudType>::active() const -{ - return true; -} - - template<class CloudType> Foam::scalar Foam::COxidationKineticDiffusionLimitedRate<CloudType>::calculate ( diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.H b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.H index ffe9466c046..3d9bf041f17 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.H +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.H @@ -113,6 +113,21 @@ public: CloudType& owner ); + //- Construct copy + COxidationKineticDiffusionLimitedRate + ( + const COxidationKineticDiffusionLimitedRate<CloudType>& srm + ); + + //- Construct and return a clone + virtual autoPtr<SurfaceReactionModel<CloudType> > clone() const + { + return autoPtr<SurfaceReactionModel<CloudType> > + ( + new COxidationKineticDiffusionLimitedRate<CloudType>(*this) + ); + } + //- Destructor virtual ~COxidationKineticDiffusionLimitedRate(); @@ -120,9 +135,6 @@ public: // Member Functions - //- Flag to indicate whether model activates surface reaction model - virtual bool active() const; - //- Update surface reactions virtual scalar calculate ( diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.C b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.C index 4030f6d93c9..93360ef7635 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.C +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.C @@ -75,6 +75,29 @@ Foam::COxidationMurphyShaddix<CloudType>::COxidationMurphyShaddix } +template<class CloudType> +Foam::COxidationMurphyShaddix<CloudType>::COxidationMurphyShaddix +( + const COxidationMurphyShaddix<CloudType>& srm +) +: + SurfaceReactionModel<CloudType>(srm), + D0_(srm.D0_), + rho0_(srm.rho0_), + T0_(srm.T0_), + Dn_(srm.Dn_), + A_(srm.A_), + E_(srm.E_), + n_(srm.n_), + WVol_(srm.WVol_), + CsLocalId_(srm.CsLocalId_), + O2GlobalId_(srm.O2GlobalId_), + CO2GlobalId_(srm.CO2GlobalId_), + WC_(srm.WC_), + WO2_(srm.WO2_) +{} + + // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template<class CloudType> @@ -84,13 +107,6 @@ Foam::COxidationMurphyShaddix<CloudType>::~COxidationMurphyShaddix() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -template<class CloudType> -bool Foam::COxidationMurphyShaddix<CloudType>::active() const -{ - return true; -} - - template<class CloudType> Foam::scalar Foam::COxidationMurphyShaddix<CloudType>::calculate ( @@ -206,7 +222,7 @@ Foam::scalar Foam::COxidationMurphyShaddix<CloudType>::calculate const scalar HC = this->owner().composition().solids().properties()[CsLocalId_].Hf() - + this->owner().composition().solids().properties()[CsLocalId_].cp()*T; + + this->owner().composition().solids().properties()[CsLocalId_].Cp()*T; const scalar HCO2 = this->owner().thermo().carrier().H(CO2GlobalId_, T); const scalar HO2 = this->owner().thermo().carrier().H(O2GlobalId_, T); diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.H b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.H index 599c05bfb35..4d9f6b6f1fd 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.H +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.H @@ -131,6 +131,21 @@ public: CloudType& owner ); + //- Construct copy + COxidationMurphyShaddix + ( + const COxidationMurphyShaddix<CloudType>& srm + ); + + //- Construct and return a clone + virtual autoPtr<SurfaceReactionModel<CloudType> > clone() const + { + return autoPtr<SurfaceReactionModel<CloudType> > + ( + new COxidationMurphyShaddix<CloudType>(*this) + ); + } + //- Destructor virtual ~COxidationMurphyShaddix(); @@ -138,9 +153,6 @@ public: // Member Functions - //- Flag to indicate whether model activates surface reaction model - virtual bool active() const; - //- Update surface reactions virtual scalar calculate ( -- GitLab