From 8cbaa515e4cd04e0fd6c1c4a67b29eb31bbbbadf Mon Sep 17 00:00:00 2001 From: Thomas Lichtenegger Date: Fri, 13 May 2016 13:59:18 +0200 Subject: [PATCH] Add functionality to average particle temperatures. --- .../heatTransferGunn/heatTransferGunn.C | 49 ++++++++++++++----- .../heatTransferGunn/heatTransferGunn.H | 6 +++ 2 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferGunn/heatTransferGunn.C b/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferGunn/heatTransferGunn.C index 663bea00..c9471ab3 100644 --- a/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferGunn/heatTransferGunn.C +++ b/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferGunn/heatTransferGunn.C @@ -63,12 +63,26 @@ heatTransferGunn::heatTransferGunn "particleTemp", sm.mesh().time().timeName(), sm.mesh(), - IOobject::READ_IF_PRESENT, + IOobject::NO_READ, IOobject::AUTO_WRITE ), sm.mesh(), dimensionedScalar("zero", dimensionSet(0,0,0,1,0,0,0), 0.0) ), + partRelTempField_ + ( IOobject + ( + "particleRelTemp", + sm.mesh().time().timeName(), + sm.mesh(), + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + sm.mesh(), + dimensionedScalar("zero", dimensionSet(0,0,0,1,0,0,0), 0.0) + ), + partRefTemp_(0.0), + calcPartTempField_(propsDict_.lookupOrDefault("calcPartTempField",false)), tempFieldName_(propsDict_.lookupOrDefault("tempFieldName","T")), tempField_(sm.mesh().lookupObject (tempFieldName_)), voidfractionFieldName_(propsDict_.lookupOrDefault("voidfractionFieldName","voidfraction")), @@ -90,6 +104,11 @@ heatTransferGunn::heatTransferGunn maxSource_=readScalar(propsDict_.lookup ("maxSource")); Info << "limiting eulerian source field to: " << maxSource_ << endl; } + if (calcPartTempField_) + { + // read ref temp etc + // switch field write options if not already set + } } @@ -123,16 +142,24 @@ void heatTransferGunn::calcEnergyContribution() // get DEM data particleCloud_.dataExchangeM().getData(partTempName_,"scalar-atom",partTemp_); - double **particleWeights=particleCloud_.particleWeights(); - particleCloud_.averagingM().resetWeightFields(); - particleCloud_.averagingM().setScalarAverage - ( - partTempField_, - partTemp_, - particleWeights, - particleCloud_.averagingM().UsWeightField(), - NULL - ); + if(calcPartTempField_) + { + scalar aveTemp(0.0); + partTempField_.internalField() = 0.0; + double **particleWeights=particleCloud_.particleWeights(); + particleCloud_.averagingM().resetWeightFields(); + particleCloud_.averagingM().setScalarAverage + ( + partTempField_, + partTemp_, + particleWeights, + particleCloud_.averagingM().UsWeightField(), + NULL + ); + // check for appropriate averaging function + //aveTemp = gSum(partTempField_ + partRelTempField_ = (partTempField_ - aveTemp) / (aveTemp - partRefTemp_); + } #ifdef compre const volScalarField mufField = particleCloud_.turbulence().mu(); diff --git a/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferGunn/heatTransferGunn.H b/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferGunn/heatTransferGunn.H index 0edd2d75..cf138a80 100644 --- a/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferGunn/heatTransferGunn.H +++ b/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferGunn/heatTransferGunn.H @@ -52,6 +52,12 @@ private: volScalarField QPartFluid_; volScalarField partTempField_; + + volScalarField partRelTempField_; + + scalar partRefTemp_; + + bool calcPartTempField_; word tempFieldName_;