reacting*EulerFoam: Renamed massTransfer models diffusiveMassTransfer

There are now many types of mass transfer, so massTransfer is now too
generic a term for what these models do. These models generate a
diffusivity which when multiplied by a concentration difference results
in mass transfer, hence the new name.

This change is not backwards compatible. Cases running the interface
composition system will need "massTransfer" entries renamed to
"diffusiveMassTransfer".
This commit is contained in:
Will Bainbridge
2019-09-19 11:49:26 +01:00
parent 9cbc90110d
commit 396c552949
15 changed files with 116 additions and 102 deletions

View File

@ -1,7 +1,7 @@
massTransferModels/massTransferModel/massTransferModel.C
massTransferModels/massTransferModel/newMassTransferModel.C
massTransferModels/Frossling/Frossling.C
massTransferModels/sphericalMassTransfer/sphericalMassTransfer.C
diffusiveMassTransferModels/diffusiveMassTransferModel/diffusiveMassTransferModel.C
diffusiveMassTransferModels/diffusiveMassTransferModel/newDiffusiveMassTransferModel.C
diffusiveMassTransferModels/Frossling/Frossling.C
diffusiveMassTransferModels/sphericalDiffusiveMassTransfer/sphericalDiffusiveMassTransfer.C
surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C
surfaceTensionModels/surfaceTensionModel/newSurfaceTensionModel.C

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2015-2018 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2015-2019 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,37 +31,42 @@ License
namespace Foam
{
namespace massTransferModels
namespace diffusiveMassTransferModels
{
defineTypeNameAndDebug(Frossling, 0);
addToRunTimeSelectionTable(massTransferModel, Frossling, dictionary);
addToRunTimeSelectionTable
(
diffusiveMassTransferModel,
Frossling,
dictionary
);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::massTransferModels::Frossling::Frossling
Foam::diffusiveMassTransferModels::Frossling::Frossling
(
const dictionary& dict,
const phasePair& pair
)
:
massTransferModel(dict, pair),
diffusiveMassTransferModel(dict, pair),
Le_("Le", dimless, dict)
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::massTransferModels::Frossling::~Frossling()
Foam::diffusiveMassTransferModels::Frossling::~Frossling()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField>
Foam::massTransferModels::Frossling::K() const
Foam::diffusiveMassTransferModels::Frossling::K() const
{
volScalarField Sh(2 + 0.552*sqrt(pair_.Re())*cbrt(Le_*pair_.Pr()));

View File

@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::massTransferModels::Frossling
Foam::diffusiveMassTransferModels::Frossling
Description
Frossling correlation for turbulent mass transfer from the surface of a
@ -36,7 +36,7 @@ SourceFiles
#ifndef Frossling_H
#define Frossling_H
#include "massTransferModel.H"
#include "diffusiveMassTransferModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -45,7 +45,7 @@ namespace Foam
class phasePair;
namespace massTransferModels
namespace diffusiveMassTransferModels
{
/*---------------------------------------------------------------------------*\
@ -54,7 +54,7 @@ namespace massTransferModels
class Frossling
:
public massTransferModel
public diffusiveMassTransferModel
{
// Private Data
@ -91,7 +91,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace massTransferModels
} // End namespace diffusiveMassTransferModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2015-2018 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2015-2019 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -23,7 +23,7 @@ License
\*---------------------------------------------------------------------------*/
#include "massTransferModel.H"
#include "diffusiveMassTransferModel.H"
#include "phasePair.H"
#include "BlendedInterfacialModel.H"
@ -31,17 +31,21 @@ License
namespace Foam
{
defineTypeNameAndDebug(massTransferModel, 0);
defineBlendedInterfacialModelTypeNameAndDebug(massTransferModel, 0);
defineRunTimeSelectionTable(massTransferModel, dictionary);
defineTypeNameAndDebug(diffusiveMassTransferModel, 0);
defineBlendedInterfacialModelTypeNameAndDebug
(
diffusiveMassTransferModel,
0
);
defineRunTimeSelectionTable(diffusiveMassTransferModel, dictionary);
}
const Foam::dimensionSet Foam::massTransferModel::dimK(0, -2, 0, 0, 0);
const Foam::dimensionSet Foam::diffusiveMassTransferModel::dimK(0, -2, 0, 0, 0);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::massTransferModel::massTransferModel
Foam::diffusiveMassTransferModel::diffusiveMassTransferModel
(
const dictionary& dict,
const phasePair& pair
@ -53,7 +57,7 @@ Foam::massTransferModel::massTransferModel
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::massTransferModel::~massTransferModel()
Foam::diffusiveMassTransferModel::~diffusiveMassTransferModel()
{}

View File

@ -22,17 +22,17 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::massTransferModel
Foam::diffusiveMassTransferModel
Description
SourceFiles
massTransferModel.C
diffusiveMassTransferModel.C
\*---------------------------------------------------------------------------*/
#ifndef massTransferModel_H
#define massTransferModel_H
#ifndef diffusiveMassTransferModel_H
#define diffusiveMassTransferModel_H
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -46,10 +46,10 @@ namespace Foam
class phasePair;
/*---------------------------------------------------------------------------*\
Class massTransferModel Declaration
Class diffusiveMassTransferModel Declaration
\*---------------------------------------------------------------------------*/
class massTransferModel
class diffusiveMassTransferModel
{
protected:
@ -62,7 +62,7 @@ protected:
public:
//- Runtime type information
TypeName("massTransferModel");
TypeName("diffusiveMassTransferModel");
// Declare runtime construction
@ -70,7 +70,7 @@ public:
declareRunTimeSelectionTable
(
autoPtr,
massTransferModel,
diffusiveMassTransferModel,
dictionary,
(
const dictionary& dict,
@ -89,7 +89,7 @@ public:
// Constructors
//- Construct from a dictionary and a phase pair
massTransferModel
diffusiveMassTransferModel
(
const dictionary& dict,
const phasePair& pair
@ -97,12 +97,12 @@ public:
//- Destructor
virtual ~massTransferModel();
virtual ~diffusiveMassTransferModel();
// Selectors
static autoPtr<massTransferModel> New
static autoPtr<diffusiveMassTransferModel> New
(
const dictionary& dict,
const phasePair& pair

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2015-2018 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2015-2019 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -23,31 +23,32 @@ License
\*---------------------------------------------------------------------------*/
#include "massTransferModel.H"
#include "diffusiveMassTransferModel.H"
#include "phasePair.H"
// * * * * * * * * * * * * * * * * Selector * * * * * * * * * * * * * * * * //
Foam::autoPtr<Foam::massTransferModel> Foam::massTransferModel::New
Foam::autoPtr<Foam::diffusiveMassTransferModel>
Foam::diffusiveMassTransferModel::New
(
const dictionary& dict,
const phasePair& pair
)
{
word massTransferModelType(dict.lookup("type"));
word diffusiveMassTransferModelType(dict.lookup("type"));
Info<< "Selecting massTransferModel for "
<< pair << ": " << massTransferModelType << endl;
Info<< "Selecting diffusiveMassTransferModel for "
<< pair << ": " << diffusiveMassTransferModelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(massTransferModelType);
dictionaryConstructorTablePtr_->find(diffusiveMassTransferModelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
FatalErrorInFunction
<< "Unknown massTransferModelType type "
<< massTransferModelType << endl << endl
<< "Valid massTransferModel types are : " << endl
<< "Unknown diffusiveMassTransferModelType type "
<< diffusiveMassTransferModelType << endl << endl
<< "Valid diffusiveMassTransferModel types are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2015-2018 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2015-2019 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -23,7 +23,7 @@ License
\*---------------------------------------------------------------------------*/
#include "sphericalMassTransfer.H"
#include "sphericalDiffusiveMassTransfer.H"
#include "phasePair.H"
#include "addToRunTimeSelectionTable.H"
@ -31,13 +31,13 @@ License
namespace Foam
{
namespace massTransferModels
namespace diffusiveMassTransferModels
{
defineTypeNameAndDebug(sphericalMassTransfer, 0);
defineTypeNameAndDebug(sphericalDiffusiveMassTransfer, 0);
addToRunTimeSelectionTable
(
massTransferModel,
sphericalMassTransfer,
diffusiveMassTransferModel,
sphericalDiffusiveMassTransfer,
dictionary
);
}
@ -46,27 +46,29 @@ namespace massTransferModels
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::massTransferModels::sphericalMassTransfer::sphericalMassTransfer
Foam::diffusiveMassTransferModels::sphericalDiffusiveMassTransfer::
sphericalDiffusiveMassTransfer
(
const dictionary& dict,
const phasePair& pair
)
:
massTransferModel(dict, pair),
diffusiveMassTransferModel(dict, pair),
Le_("Le", dimless, dict)
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::massTransferModels::sphericalMassTransfer::~sphericalMassTransfer()
Foam::diffusiveMassTransferModels::sphericalDiffusiveMassTransfer::
~sphericalDiffusiveMassTransfer()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField>
Foam::massTransferModels::sphericalMassTransfer::K() const
Foam::diffusiveMassTransferModels::sphericalDiffusiveMassTransfer::K() const
{
return 60*pair_.dispersed()/sqr(pair_.dispersed().d());
}

View File

@ -22,21 +22,21 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::massTransferModels::sphericalMassTransfer
Foam::diffusiveMassTransferModels::sphericalDiffusiveMassTransfer
Description
Model which applies an analytical solution for mass transfer from the
surface of a sphere to the fluid within the sphere.
SourceFiles
sphericalMassTransfer.C
sphericalDiffusiveMassTransfer.C
\*---------------------------------------------------------------------------*/
#ifndef sphericalMassTransfer_H
#define sphericalMassTransfer_H
#ifndef sphericalDiffusiveMassTransfer_H
#define sphericalDiffusiveMassTransfer_H
#include "massTransferModel.H"
#include "diffusiveMassTransferModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -45,16 +45,16 @@ namespace Foam
class phasePair;
namespace massTransferModels
namespace diffusiveMassTransferModels
{
/*---------------------------------------------------------------------------*\
Class sphericalMassTransfer Declaration
Class sphericalDiffusiveMassTransfer Declaration
\*---------------------------------------------------------------------------*/
class sphericalMassTransfer
class sphericalDiffusiveMassTransfer
:
public massTransferModel
public diffusiveMassTransferModel
{
// Private Data
@ -71,7 +71,7 @@ public:
// Constructors
//- Construct from components
sphericalMassTransfer
sphericalDiffusiveMassTransfer
(
const dictionary& dict,
const phasePair& pair
@ -79,7 +79,7 @@ public:
//- Destructor
virtual ~sphericalMassTransfer();
virtual ~sphericalDiffusiveMassTransfer();
// Member Functions
@ -91,7 +91,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace massTransferModels
} // End namespace diffusiveMassTransferModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -25,7 +25,8 @@ License
#include "InterfaceCompositionPhaseChangePhaseSystem.H"
#include "interfaceCompositionModel.H"
#include "massTransferModel.H"
#include "diffusiveMassTransferModel.H"
#include "heatTransferModel.H"
#include "fvmSup.H"
// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * //
@ -166,8 +167,8 @@ InterfaceCompositionPhaseChangePhaseSystem
this->generatePairsAndSubModels
(
"massTransfer",
massTransferModels_,
"diffusiveMassTransfer",
diffusiveMassTransferModels_,
false
);
@ -202,33 +203,33 @@ InterfaceCompositionPhaseChangePhaseSystem
if (!this->phasePairs_.found(key))
{
FatalErrorInFunction
<< "A mass transfer model the " << key << " pair is not "
<< "specified. This is required by the corresponding interface "
<< "composition model."
<< "A diffusive mass transfer model the " << key
<< " pair is not specified. This is required by the "
<< "corresponding interface composition model."
<< exit(FatalError);
}
const phasePair& uoPair = this->phasePairs_[key];
if (!massTransferModels_[uoPair][uoPair.index(phase)].valid())
if (!diffusiveMassTransferModels_[uoPair][uoPair.index(phase)].valid())
{
FatalErrorInFunction
<< "A mass transfer model for the " << pair.phase1().name()
<< " side of the " << uoPair << " pair is not "
<< "specified. This is required by the corresponding interface "
<< "composition model."
<< "A diffusive mass transfer model for the "
<< pair.phase1().name() << " side of the " << uoPair
<< " pair is not specified. This is required by the "
<< "corresponding interface composition model."
<< exit(FatalError);
}
}
forAllConstIter
(
massTransferModelTable,
massTransferModels_,
massTransferModelIter
diffusiveMassTransferModelTable,
diffusiveMassTransferModels_,
diffusiveMassTransferModelIter
)
{
const phasePair& pair =
this->phasePairs_[massTransferModelIter.key()];
this->phasePairs_[diffusiveMassTransferModelIter.key()];
if (!this->heatTransferModels_.found(pair))
{
@ -444,7 +445,8 @@ correct()
const volScalarField K
(
massTransferModels_[unorderedPair][unorderedPair.index(phase)]->K()
diffusiveMassTransferModels_
[unorderedPair][unorderedPair.index(phase)]->K()
);
forAllConstIter(hashedWordList, compositionModel.species(), memberIter)
@ -528,7 +530,7 @@ correctInterfaceThermo()
{
this->interfaceCompositionModels_[key12]->addMDotL
(
massTransferModels_[pair].first()->K(),
diffusiveMassTransferModels_[pair].first()->K(),
Tf,
mDotL.ref(),
mDotLPrime.ref()
@ -538,7 +540,7 @@ correctInterfaceThermo()
{
this->interfaceCompositionModels_[key21]->addMDotL
(
massTransferModels_[pair].second()->K(),
diffusiveMassTransferModels_[pair].second()->K(),
Tf,
mDotL.ref(),
mDotLPrime.ref()

View File

@ -48,7 +48,7 @@ namespace Foam
{
class interfaceCompositionModel;
class massTransferModel;
class diffusiveMassTransferModel;
/*---------------------------------------------------------------------------*\
Class InterfaceCompositionPhaseChangePhaseSystem Declaration
@ -72,10 +72,10 @@ private:
typedef HashTable
<
Pair<autoPtr<BlendedInterfacialModel<massTransferModel>>>,
Pair<autoPtr<BlendedInterfacialModel<diffusiveMassTransferModel>>>,
phasePairKey,
phasePairKey::hash
> massTransferModelTable;
> diffusiveMassTransferModelTable;
// Private data
@ -86,7 +86,7 @@ private:
const label nInterfaceCorrectors_;
//- Mass transfer models
massTransferModelTable massTransferModels_;
diffusiveMassTransferModelTable diffusiveMassTransferModels_;
//- Interface composition models
interfaceCompositionModelTable interfaceCompositionModels_;

View File

@ -149,7 +149,7 @@ heatTransfer.liquid
}
);
massTransfer.gas
diffusiveMassTransfer.gas
(
(liquid in gas)
{
@ -158,7 +158,7 @@ massTransfer.gas
}
);
massTransfer.liquid
diffusiveMassTransfer.liquid
(
(liquid in gas)
{

View File

@ -111,7 +111,7 @@ heatTransfer.liquid
}
);
massTransfer.gas
diffusiveMassTransfer.gas
(
(liquid in gas)
{
@ -120,7 +120,7 @@ massTransfer.gas
}
);
massTransfer.liquid
diffusiveMassTransfer.liquid
(
);

View File

@ -65,7 +65,7 @@ blending
minPartlyContinuousAlpha.liquid 0;
}
massTransfer
diffusiveMassTransfer
{
$heatTransfer;
}
@ -177,7 +177,7 @@ heatTransfer.liquid
}
);
massTransfer.gas
diffusiveMassTransfer.gas
(
(gas in liquid)
{
@ -192,7 +192,7 @@ massTransfer.gas
}
);
massTransfer.liquid
diffusiveMassTransfer.liquid
(
);

View File

@ -65,7 +65,7 @@ blending
minFullyContinuousAlpha.liquid 1;
}
massTransfer
diffusiveMassTransfer
{
$heatTransfer;
}
@ -177,7 +177,7 @@ heatTransfer.liquid
}
);
massTransfer.gas
diffusiveMassTransfer.gas
(
(gas in liquid)
{
@ -192,7 +192,7 @@ massTransfer.gas
}
);
massTransfer.liquid
diffusiveMassTransfer.liquid
(
(gas in liquid)
{

View File

@ -66,7 +66,7 @@ blending
minPartlyContinuousAlpha.liquid 0;
}
massTransfer
diffusiveMassTransfer
{
$heatTransfer;
}
@ -186,7 +186,7 @@ heatTransfer.liquid
}
);
massTransfer.gas
diffusiveMassTransfer.gas
(
(gas in liquid)
{
@ -201,7 +201,7 @@ massTransfer.gas
}
);
massTransfer.liquid
diffusiveMassTransfer.liquid
(
(gas in liquid)
{