From 4ddf691936fe0bd7173ea2ba6415bea203184b33 Mon Sep 17 00:00:00 2001 From: tmjnijssen Date: Thu, 14 Apr 2022 15:29:10 +0200 Subject: [PATCH 1/4] add transfer of fluid properties to LIGGGHTS --- src/lagrangian/cfdemParticle/Make/files | 1 + .../transferFluidProperties.C | 108 ++++++++++++++++++ .../transferFluidProperties.H | 80 +++++++++++++ src/lagrangian/cfdemParticleComp/Make/files | 1 + 4 files changed, 190 insertions(+) create mode 100644 src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.C create mode 100644 src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.H diff --git a/src/lagrangian/cfdemParticle/Make/files b/src/lagrangian/cfdemParticle/Make/files index 00d33dbd..b0f4449f 100644 --- a/src/lagrangian/cfdemParticle/Make/files +++ b/src/lagrangian/cfdemParticle/Make/files @@ -96,6 +96,7 @@ $(forceModels)/potentialRelaxation/potentialRelaxation.C $(forceModels)/BeetstraDrag/BeetstraDrag.C $(forceModels)/BeetstraDragPoly/BeetstraDragPoly.C $(forceModels)/dSauter/dSauter.C +$(forceModels)/transferFluidProperties/transferFluidProperties.C $(forceModels)/Fines/Fines.C $(forceModels)/Fines/FinesFields.C $(forceModels)/Fines/FanningDynFines.C diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.C b/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.C new file mode 100644 index 00000000..5faf375d --- /dev/null +++ b/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.C @@ -0,0 +1,108 @@ +/*---------------------------------------------------------------------------*\ +License + This 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 3 of the License, or + (at your option) any later version. + This code 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 this code. If not, see . + + Copyright (C) 2015- Thomas Lichtenegger, JKU Linz, Austria + +Description + transfer fluid properties to LIGGGHTS + +SourceFiles + transferFluidProperties.C +\*---------------------------------------------------------------------------*/ + +#include "error.H" + +#include "transferFluidProperties.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +defineTypeNameAndDebug(transferFluidProperties, 0); + +addToRunTimeSelectionTable +( + forceModel, + transferFluidProperties, + dictionary +); + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +// Construct from components +transferFluidProperties::transferFluidProperties +( + const dictionary& dict, + cfdemCloud& sm +) +: + forceModel(dict,sm), + propsDict_(dict.subDict(typeName + "Props")), + verbose_(propsDict_.lookupOrDefault("verbose",false)) +{ + particleCloud_.registerParticleProperty("fluidDensity",1); + particleCloud_.registerParticleProperty("fluidViscosity",1); + + // init force sub model + setForceSubModels(propsDict_); +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +transferFluidProperties::~transferFluidProperties() +{ +} + +// * * * * * * * * * * * * * * * private Member Functions * * * * * * * * * * * * * // + + +// * * * * * * * * * * * * * * * public Member Functions * * * * * * * * * * * * * // + +void transferFluidProperties::setForce() const +{ + double**& fluidDensity_ = particleCloud_.getParticlePropertyRef("fluidDensity"); + double**& fluidViscosity_ = particleCloud_.getParticlePropertyRef("fluidViscosity"); + + const volScalarField& rhoField = forceSubM(0).rhoField(); + const volScalarField& nufField = forceSubM(0).nuField(); + + label cellI = 0; + + for(int index = 0; index < particleCloud_.numberOfParticles(); ++index) + { + cellI = particleCloud_.cellIDs()[index][0]; + if (cellI >= 0) + { + fluidDensity_[index][0] = rhoField[cellI]; + fluidViscosity_[index][0] = nufField[cellI] * rhoField[cellI]; + } + } + + particleCloud_.dataExchangeM().giveData("fluidDensity","scalar-atom",fluidDensity_); + particleCloud_.dataExchangeM().giveData("fluidViscosity","scalar-atom",fluidViscosity_); + + if (verbose_) Info << "give data done" << endl; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.H b/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.H new file mode 100644 index 00000000..9a2853ae --- /dev/null +++ b/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.H @@ -0,0 +1,80 @@ +/*---------------------------------------------------------------------------*\ +License + This 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 3 of the License, or + (at your option) any later version. + This code 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 this code. If not, see . + + Copyright (C) 2015- Thomas Lichtenegger, JKU Linz, Austria + +Description + transfer fluid properties to LIGGGHTS + +SourceFiles + transferFluidProperties.C +\*---------------------------------------------------------------------------*/ + +#ifndef transferFluidProperties_H +#define transferFluidProperties_H + +#include "forceModel.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +/*---------------------------------------------------------------------------*\ + Class transferFluidProperties Declaration +\*---------------------------------------------------------------------------*/ + +class transferFluidProperties +: + public forceModel +{ +private: + + dictionary propsDict_; + + bool verbose_; + +public: + + //- Runtime type information + TypeName("transferFluidProperties"); + + // Constructors + + //- Construct from components + transferFluidProperties + ( + const dictionary& dict, + cfdemCloud& sm + ); + + // Destructor + + ~transferFluidProperties(); + + + // Member Functions + void setForce() const; + +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/cfdemParticleComp/Make/files b/src/lagrangian/cfdemParticleComp/Make/files index 2907a3ea..dfccc6e6 100644 --- a/src/lagrangian/cfdemParticleComp/Make/files +++ b/src/lagrangian/cfdemParticleComp/Make/files @@ -90,6 +90,7 @@ $(forceModels)/directedDiffusiveRelaxation/directedDiffusiveRelaxation.C $(forceModels)/BeetstraDrag/BeetstraDrag.C $(forceModels)/BeetstraDragPoly/BeetstraDragPoly.C $(forceModels)/dSauter/dSauter.C +$(forceModels)/transferFluidProperties/transferFluidProperties.C $(forceModels)/Fines/Fines.C $(forceModels)/Fines/FinesFields.C $(forceModels)/Fines/FanningDynFines.C From d6dab59bfde879c7e3f75db4de1e6d06a8416322 Mon Sep 17 00:00:00 2001 From: tmjnijssen Date: Thu, 14 Apr 2022 15:50:22 +0200 Subject: [PATCH 2/4] add interpolation --- .../transferFluidProperties.C | 31 ++++++++++++++++--- .../transferFluidProperties.H | 3 +- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.C b/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.C index 5faf375d..5c2695d5 100644 --- a/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.C +++ b/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.C @@ -52,14 +52,17 @@ transferFluidProperties::transferFluidProperties ) : forceModel(dict,sm), - propsDict_(dict.subDict(typeName + "Props")), - verbose_(propsDict_.lookupOrDefault("verbose",false)) + propsDict_(dict.subDict(typeName + "Props")) { particleCloud_.registerParticleProperty("fluidDensity",1); particleCloud_.registerParticleProperty("fluidViscosity",1); // init force sub model setForceSubModels(propsDict_); + // define switches which can be read from dict + forceSubM(0).setSwitchesList(SW_VERBOSE,true); // activate search for verbose switch + forceSubM(0).setSwitchesList(SW_INTERPOLATION,true); // activate search for interpolate switch + forceSubM(0).readSwitches(); } @@ -82,22 +85,40 @@ void transferFluidProperties::setForce() const const volScalarField& rhoField = forceSubM(0).rhoField(); const volScalarField& nufField = forceSubM(0).nuField(); + interpolationCellPoint rhoInterpolator_(rhoField); + interpolationCellPoint nufInterpolator_(nufField); + label cellI = 0; + double rho = 0.; + double nuf = 0.; + vector position(0,0,0); for(int index = 0; index < particleCloud_.numberOfParticles(); ++index) { cellI = particleCloud_.cellIDs()[index][0]; if (cellI >= 0) { - fluidDensity_[index][0] = rhoField[cellI]; - fluidViscosity_[index][0] = nufField[cellI] * rhoField[cellI]; + if(forceSubM(0).interpolation()) + { + position = particleCloud_.position(index); + rho = rhoInterpolator_.interpolate(position,cellI); + nuf = nufInterpolator_.interpolate(position,cellI); + } + else + { + rho = rhoField[cellI]; + nuf = nufField[cellI]; + } + + fluidDensity_[index][0] = rho; + fluidViscosity_[index][0] = nuf*rho; } } particleCloud_.dataExchangeM().giveData("fluidDensity","scalar-atom",fluidDensity_); particleCloud_.dataExchangeM().giveData("fluidViscosity","scalar-atom",fluidViscosity_); - if (verbose_) Info << "give data done" << endl; + if (forceSubM(0).verbose()) Info << "give data done" << endl; } diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.H b/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.H index 9a2853ae..1dc52f85 100644 --- a/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.H +++ b/src/lagrangian/cfdemParticle/subModels/forceModel/transferFluidProperties/transferFluidProperties.H @@ -24,6 +24,7 @@ SourceFiles #define transferFluidProperties_H #include "forceModel.H" +#include "interpolationCellPoint.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -42,8 +43,6 @@ private: dictionary propsDict_; - bool verbose_; - public: //- Runtime type information From 57c8c1c7623ea061801c0c83e21ac774840424a8 Mon Sep 17 00:00:00 2001 From: tmjnijssen Date: Thu, 14 Apr 2022 15:50:39 +0200 Subject: [PATCH 3/4] add doc --- doc/CFDEMcoupling_models.txt | 1 + doc/forceModel_transferFluidProperties.txt | 42 ++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 doc/forceModel_transferFluidProperties.txt diff --git a/doc/CFDEMcoupling_models.txt b/doc/CFDEMcoupling_models.txt index 00ce8e28..073082dd 100644 --- a/doc/CFDEMcoupling_models.txt +++ b/doc/CFDEMcoupling_models.txt @@ -124,6 +124,7 @@ particleDeformation, potentialRelaxation, "surfaceTensionForce"_forceModel_surfaceTensionForce.html, terminalVelocity, +"transferFluidProperties"_forceModel_transferFluidProperties.html, turbulentDispersion, turbulentVelocityFluctuations, "virtualMassForce"_forceModel_virtualMassForce.html, diff --git a/doc/forceModel_transferFluidProperties.txt b/doc/forceModel_transferFluidProperties.txt new file mode 100644 index 00000000..8606da78 --- /dev/null +++ b/doc/forceModel_transferFluidProperties.txt @@ -0,0 +1,42 @@ +"CFDEMproject Website"_lws - "Main Page"_main :c + +:link(lws,http://www.cfdem.com) +:link(main,CFDEMcoupling_Manual.html) + +:line + +forceModel transferFluidProperties command :h3 + +[Syntax:] + +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. + +forceModels +( + transferFluidProperties +); +transferFluidPropertiesProps +\{ + verbose switch1; + interpolation switch2; +\} :pre + +{switch1} = (optional, default false) sub model switch, see "forceSubModel"_forceSubModel.html for details :ulb,l +{switch2} = (optional, default false) sub model switch, see "forceSubModel"_forceSubModel.html for details :l +:ule + +[Description:] + +This "force model" does not influence the particles or the flow - it transfer to fluid density and (dynamic) +viscosity from OpenFOAM to LIGGGHTS. + + +[Restrictions:] + +This model requires {fix cfd/coupling/fluidproperties} to work. + +[Related commands:] + +"forceModel"_forceModel.html + From 153d1e353b7cad2b91c497baa2a3374c5353a02d Mon Sep 17 00:00:00 2001 From: Tim MJ Nijssen <37873965+tmjnijssen@users.noreply.github.com> Date: Thu, 17 Nov 2022 14:35:17 +0100 Subject: [PATCH 4/4] rename cfdemSolverMultiphaseScalar/multiphaseMixture to cfdemSolverMultiphaseScalar/multiphaseMixtureScalar --- .../cfdemSolverMultiphaseScalar/Allwclean | 2 +- .../cfdemSolverMultiphaseScalar/Allwmake | 2 +- .../cfdemSolverMultiphaseScalar/Make/options | 2 +- .../cfdemSolverMultiphaseScalar.C | 2 +- .../createFields.H | 2 +- .../Make/files | 2 +- .../Make/options | 0 .../alphaContactAngleFvPatchScalarField.C | 0 .../alphaContactAngleFvPatchScalarField.H | 8 +-- .../multiphaseMixtureScalar.C} | 58 +++++++++---------- .../multiphaseMixtureScalar.H} | 18 +++--- .../phase/phase.C | 0 .../phase/phase.H | 2 +- etc/library-list.txt | 2 +- 14 files changed, 50 insertions(+), 50 deletions(-) rename applications/solvers/cfdemSolverMultiphaseScalar/{multiphaseMixture => multiphaseMixtureScalar}/Make/files (83%) rename applications/solvers/cfdemSolverMultiphaseScalar/{multiphaseMixture => multiphaseMixtureScalar}/Make/options (100%) rename applications/solvers/cfdemSolverMultiphaseScalar/{multiphaseMixture => multiphaseMixtureScalar}/alphaContactAngle/alphaContactAngleFvPatchScalarField.C (100%) rename applications/solvers/cfdemSolverMultiphaseScalar/{multiphaseMixture => multiphaseMixtureScalar}/alphaContactAngle/alphaContactAngleFvPatchScalarField.H (96%) rename applications/solvers/cfdemSolverMultiphaseScalar/{multiphaseMixture/multiphaseMixture.C => multiphaseMixtureScalar/multiphaseMixtureScalar.C} (93%) rename applications/solvers/cfdemSolverMultiphaseScalar/{multiphaseMixture/multiphaseMixture.H => multiphaseMixtureScalar/multiphaseMixtureScalar.H} (96%) rename applications/solvers/cfdemSolverMultiphaseScalar/{multiphaseMixture => multiphaseMixtureScalar}/phase/phase.C (100%) rename applications/solvers/cfdemSolverMultiphaseScalar/{multiphaseMixture => multiphaseMixtureScalar}/phase/phase.H (98%) diff --git a/applications/solvers/cfdemSolverMultiphaseScalar/Allwclean b/applications/solvers/cfdemSolverMultiphaseScalar/Allwclean index 1c8a5a68..8f8e3fe7 100755 --- a/applications/solvers/cfdemSolverMultiphaseScalar/Allwclean +++ b/applications/solvers/cfdemSolverMultiphaseScalar/Allwclean @@ -2,7 +2,7 @@ cd ${0%/*} || exit 1 # Run from this directory set -x -wclean libso multiphaseMixture +wclean libso multiphaseMixtureScalar wclean #------------------------------------------------------------------------------ diff --git a/applications/solvers/cfdemSolverMultiphaseScalar/Allwmake b/applications/solvers/cfdemSolverMultiphaseScalar/Allwmake index fbe71a59..2e60481b 100755 --- a/applications/solvers/cfdemSolverMultiphaseScalar/Allwmake +++ b/applications/solvers/cfdemSolverMultiphaseScalar/Allwmake @@ -6,7 +6,7 @@ targetType=libso . $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments set -x -wmake $targetType multiphaseMixture +wmake $targetType multiphaseMixtureScalar wmake #------------------------------------------------------------------------------ diff --git a/applications/solvers/cfdemSolverMultiphaseScalar/Make/options b/applications/solvers/cfdemSolverMultiphaseScalar/Make/options index 72a134ad..ce909f3b 100644 --- a/applications/solvers/cfdemSolverMultiphaseScalar/Make/options +++ b/applications/solvers/cfdemSolverMultiphaseScalar/Make/options @@ -6,7 +6,7 @@ include $(CFDEM_ADD_LIBS_DIR)/additionalLibs EXE_INC = \ $(PFLAGS) \ -I$(CFDEM_OFVERSION_DIR) \ - -ImultiphaseMixture/lnInclude \ + -ImultiphaseMixtureScalar/lnInclude \ -I$(LIB_SRC)/transportModels \ -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ diff --git a/applications/solvers/cfdemSolverMultiphaseScalar/cfdemSolverMultiphaseScalar.C b/applications/solvers/cfdemSolverMultiphaseScalar/cfdemSolverMultiphaseScalar.C index 504450fc..0ce0ae16 100644 --- a/applications/solvers/cfdemSolverMultiphaseScalar/cfdemSolverMultiphaseScalar.C +++ b/applications/solvers/cfdemSolverMultiphaseScalar/cfdemSolverMultiphaseScalar.C @@ -30,7 +30,7 @@ Description \*---------------------------------------------------------------------------*/ #include "fvCFD.H" -#include "multiphaseMixture.H" +#include "multiphaseMixtureScalar.H" #include "turbulentTransportModel.H" #include "pimpleControl.H" #include "fvOptions.H" diff --git a/applications/solvers/cfdemSolverMultiphaseScalar/createFields.H b/applications/solvers/cfdemSolverMultiphaseScalar/createFields.H index 009bd16d..d3b65ec2 100644 --- a/applications/solvers/cfdemSolverMultiphaseScalar/createFields.H +++ b/applications/solvers/cfdemSolverMultiphaseScalar/createFields.H @@ -88,7 +88,7 @@ surfaceScalarField phi linearInterpolate(U*voidfraction) & mesh.Sf() ); -multiphaseMixture mixture(U, phi, voidfraction); +multiphaseMixtureScalar mixture(U, phi, voidfraction); // Need to store rho for ddt(rho, U) volScalarField rho diff --git a/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/Make/files b/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/Make/files similarity index 83% rename from applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/Make/files rename to applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/Make/files index 998255e4..91bbae6b 100644 --- a/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/Make/files +++ b/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/Make/files @@ -1,5 +1,5 @@ phase/phase.C alphaContactAngle/alphaContactAngleFvPatchScalarField.C -multiphaseMixture.C +multiphaseMixtureScalar.C LIB = $(CFDEM_LIB_DIR)/libcfdemMultiphaseInterFoamScalar diff --git a/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/Make/options b/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/Make/options similarity index 100% rename from applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/Make/options rename to applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/Make/options diff --git a/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/alphaContactAngle/alphaContactAngleFvPatchScalarField.C b/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/alphaContactAngle/alphaContactAngleFvPatchScalarField.C similarity index 100% rename from applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/alphaContactAngle/alphaContactAngleFvPatchScalarField.C rename to applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/alphaContactAngle/alphaContactAngleFvPatchScalarField.C diff --git a/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/alphaContactAngle/alphaContactAngleFvPatchScalarField.H b/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/alphaContactAngle/alphaContactAngleFvPatchScalarField.H similarity index 96% rename from applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/alphaContactAngle/alphaContactAngleFvPatchScalarField.H rename to applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/alphaContactAngle/alphaContactAngleFvPatchScalarField.H index 09249c72..bbad25b3 100644 --- a/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/alphaContactAngle/alphaContactAngleFvPatchScalarField.H +++ b/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/alphaContactAngle/alphaContactAngleFvPatchScalarField.H @@ -26,7 +26,7 @@ Class Description Contact-angle boundary condition for multi-phase interface-capturing - simulations. Used in conjuction with multiphaseMixture. + simulations. Used in conjuction with multiphaseMixtureScalar. SourceFiles alphaContactAngleFvPatchScalarField.C @@ -37,7 +37,7 @@ SourceFiles #define alphaContactAngleFvPatchScalarField_H #include "zeroGradientFvPatchFields.H" -#include "multiphaseMixture.H" +#include "multiphaseMixtureScalar.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -117,8 +117,8 @@ public: typedef HashTable < interfaceThetaProps, - multiphaseMixture::interfacePair, - multiphaseMixture::interfacePair::hash + multiphaseMixtureScalar::interfacePair, + multiphaseMixtureScalar::interfacePair::hash > thetaPropsTable; diff --git a/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/multiphaseMixture.C b/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/multiphaseMixtureScalar.C similarity index 93% rename from applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/multiphaseMixture.C rename to applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/multiphaseMixtureScalar.C index 9d6cc130..0445368f 100644 --- a/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/multiphaseMixture.C +++ b/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/multiphaseMixtureScalar.C @@ -18,7 +18,7 @@ License \*---------------------------------------------------------------------------*/ -#include "multiphaseMixture.H" +#include "multiphaseMixtureScalar.H" #include "alphaContactAngleFvPatchScalarField.H" #include "Time.H" #include "subCycle.H" @@ -31,13 +31,13 @@ License // * * * * * * * * * * * * * * * Static Member Data * * * * * * * * * * * * // -const Foam::scalar Foam::multiphaseMixture::convertToRad = +const Foam::scalar Foam::multiphaseMixtureScalar::convertToRad = Foam::constant::mathematical::pi/180.0; // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // -void Foam::multiphaseMixture::calcAlphas() +void Foam::multiphaseMixtureScalar::calcAlphas() { scalar level = 0.0; alphas_ == 0.0; @@ -51,7 +51,7 @@ void Foam::multiphaseMixture::calcAlphas() Foam::tmp -Foam::multiphaseMixture::calcNu() const +Foam::multiphaseMixtureScalar::calcNu() const { PtrDictionary::const_iterator iter = phases_.begin(); @@ -74,7 +74,7 @@ Foam::multiphaseMixture::calcNu() const } Foam::tmp -Foam::multiphaseMixture::calcStf() const +Foam::multiphaseMixtureScalar::calcStf() const { tmp tstf ( @@ -134,7 +134,7 @@ Foam::multiphaseMixture::calcStf() const // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::multiphaseMixture::multiphaseMixture +Foam::multiphaseMixtureScalar::multiphaseMixtureScalar ( const volVectorField& U, const surfaceScalarField& phi, @@ -230,7 +230,7 @@ Foam::multiphaseMixture::multiphaseMixture // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // Foam::tmp -Foam::multiphaseMixture::rho() const +Foam::multiphaseMixtureScalar::rho() const { PtrDictionary::const_iterator iter = phases_.begin(); @@ -247,7 +247,7 @@ Foam::multiphaseMixture::rho() const Foam::tmp -Foam::multiphaseMixture::rho(const label patchi) const +Foam::multiphaseMixtureScalar::rho(const label patchi) const { PtrDictionary::const_iterator iter = phases_.begin(); @@ -264,9 +264,9 @@ Foam::multiphaseMixture::rho(const label patchi) const Foam::tmp -Foam::multiphaseMixture::mu() const +Foam::multiphaseMixtureScalar::mu() const { - Info << "In multiphasemixture mu()" << endl; + Info << "In multiphaseMixtureScalar mu()" << endl; return rho()*nu(); // PtrDictionary::const_iterator iter = phases_.begin(); @@ -283,7 +283,7 @@ Foam::multiphaseMixture::mu() const Foam::tmp -Foam::multiphaseMixture::mu(const label patchi) const +Foam::multiphaseMixtureScalar::mu(const label patchi) const { PtrDictionary::const_iterator iter = phases_.begin(); @@ -306,7 +306,7 @@ Foam::multiphaseMixture::mu(const label patchi) const Foam::tmp -Foam::multiphaseMixture::muf() const +Foam::multiphaseMixtureScalar::muf() const { return nuf()*fvc::interpolate(rho()); @@ -327,13 +327,13 @@ Foam::multiphaseMixture::muf() const Foam::tmp -Foam::multiphaseMixture::nu() const +Foam::multiphaseMixtureScalar::nu() const { return nu_; } Foam::tmp -Foam::multiphaseMixture::nu(const label patchi) const +Foam::multiphaseMixtureScalar::nu(const label patchi) const { //return nu_.boundaryField()[patchi]; PtrDictionary::const_iterator iter = phases_.begin(); @@ -355,7 +355,7 @@ Foam::multiphaseMixture::nu(const label patchi) const Foam::tmp -Foam::multiphaseMixture::nuf() const +Foam::multiphaseMixtureScalar::nuf() const { //return muf()/fvc::interpolate(rho()); PtrDictionary::const_iterator iter = phases_.begin(); @@ -374,7 +374,7 @@ Foam::multiphaseMixture::nuf() const } Foam::tmp -Foam::multiphaseMixture::Cp() const +Foam::multiphaseMixtureScalar::Cp() const { PtrDictionary::const_iterator iter = phases_.begin(); @@ -395,7 +395,7 @@ Foam::multiphaseMixture::Cp() const } Foam::tmp -Foam::multiphaseMixture::kf() const +Foam::multiphaseMixtureScalar::kf() const { PtrDictionary::const_iterator iter = phases_.begin(); @@ -417,7 +417,7 @@ Foam::multiphaseMixture::kf() const } Foam::tmp -Foam::multiphaseMixture::D() const +Foam::multiphaseMixtureScalar::D() const { PtrDictionary::const_iterator iter = phases_.begin(); @@ -439,7 +439,7 @@ Foam::multiphaseMixture::D() const } Foam::tmp -Foam::multiphaseMixture::Cs() const +Foam::multiphaseMixtureScalar::Cs() const { PtrDictionary::const_iterator iter = phases_.begin(); @@ -456,7 +456,7 @@ Foam::multiphaseMixture::Cs() const } Foam::tmp -Foam::multiphaseMixture::diffusionCorrection() const +Foam::multiphaseMixtureScalar::diffusionCorrection() const { surfaceScalarField numerator @@ -517,7 +517,7 @@ Foam::multiphaseMixture::diffusionCorrection() const return correction; } -void Foam::multiphaseMixture::solve() +void Foam::multiphaseMixtureScalar::solve() { correct(); @@ -570,7 +570,7 @@ void Foam::multiphaseMixture::solve() } -void Foam::multiphaseMixture::correct() +void Foam::multiphaseMixtureScalar::correct() { forAllIter(PtrDictionary, phases_, iter) { @@ -579,7 +579,7 @@ void Foam::multiphaseMixture::correct() } -Foam::tmp Foam::multiphaseMixture::nHatfv +Foam::tmp Foam::multiphaseMixtureScalar::nHatfv ( const volScalarField& alpha1, const volScalarField& alpha2 @@ -605,7 +605,7 @@ Foam::tmp Foam::multiphaseMixture::nHatfv } -Foam::tmp Foam::multiphaseMixture::nHatf +Foam::tmp Foam::multiphaseMixtureScalar::nHatf ( const volScalarField& alpha1, const volScalarField& alpha2 @@ -622,7 +622,7 @@ Foam::tmp Foam::multiphaseMixture::nHatf // The dynamic contact angle is calculated from the component of the // velocity on the direction of the interface, parallel to the wall. -void Foam::multiphaseMixture::correctContactAngle +void Foam::multiphaseMixtureScalar::correctContactAngle ( const phase& alpha1, const phase& alpha2, @@ -726,7 +726,7 @@ void Foam::multiphaseMixture::correctContactAngle } -Foam::tmp Foam::multiphaseMixture::K +Foam::tmp Foam::multiphaseMixtureScalar::K ( const phase& alpha1, const phase& alpha2 @@ -742,7 +742,7 @@ Foam::tmp Foam::multiphaseMixture::K Foam::tmp -Foam::multiphaseMixture::nearInterface() const +Foam::multiphaseMixtureScalar::nearInterface() const { tmp tnearInt ( @@ -768,7 +768,7 @@ Foam::multiphaseMixture::nearInterface() const } -void Foam::multiphaseMixture::solveAlphas +void Foam::multiphaseMixtureScalar::solveAlphas ( const scalar cAlpha ) @@ -901,7 +901,7 @@ void Foam::multiphaseMixture::solveAlphas } -bool Foam::multiphaseMixture::read() +bool Foam::multiphaseMixtureScalar::read() { if (transportModel::read()) { diff --git a/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/multiphaseMixture.H b/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/multiphaseMixtureScalar.H similarity index 96% rename from applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/multiphaseMixture.H rename to applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/multiphaseMixtureScalar.H index 5fe5a939..f1fbd153 100644 --- a/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/multiphaseMixture.H +++ b/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/multiphaseMixtureScalar.H @@ -17,10 +17,10 @@ License Copyright (C) 2018- Mathias Vångö, JKU Linz, Austria Class - multiphaseMixture + multiphaseMixtureScalar Description - This class is based on the OpenFOAM(R) Foam::multiphaseMixture class, + This class is based on the OpenFOAM(R) Foam::multiphaseMixtureScalar class, which is an incompressible multi-phase mixture with built in solution for the phase fractions with interface compression for interface-capturing. It has been extended to include the void fraction in the volume fraction @@ -33,11 +33,11 @@ Description between each phase-pair. SourceFiles - multiphaseMixture.C + multiphaseMixtureScalar.C \*---------------------------------------------------------------------------*/ -#ifndef multiphaseMixture_H -#define multiphaseMixture_H +#ifndef multiphaseMixtureScalar_H +#define multiphaseMixtureScalar_H #include "incompressible/transportModel/transportModel.H" #include "IOdictionary.H" @@ -52,10 +52,10 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class multiphaseMixture Declaration + Class multiphaseMixtureScalar Declaration \*---------------------------------------------------------------------------*/ -class multiphaseMixture +class multiphaseMixtureScalar : public IOdictionary, public transportModel @@ -191,7 +191,7 @@ public: // Constructors //- Construct from components - multiphaseMixture + multiphaseMixtureScalar ( const volVectorField& U, const surfaceScalarField& phi, @@ -200,7 +200,7 @@ public: //- Destructor - virtual ~multiphaseMixture() + virtual ~multiphaseMixtureScalar() {} diff --git a/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/phase/phase.C b/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/phase/phase.C similarity index 100% rename from applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/phase/phase.C rename to applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/phase/phase.C diff --git a/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/phase/phase.H b/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/phase/phase.H similarity index 98% rename from applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/phase/phase.H rename to applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/phase/phase.H index 8237f374..0bab2d57 100644 --- a/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/phase/phase.H +++ b/applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/phase/phase.H @@ -26,7 +26,7 @@ Class Description Single incompressible phase derived from the phase-fraction. - Used as part of the multiPhaseMixture for interface-capturing multi-phase + Used as part of the multiphaseMixtureScalar for interface-capturing multi-phase simulations. SourceFiles diff --git a/etc/library-list.txt b/etc/library-list.txt index aa1be375..d26022e4 100644 --- a/etc/library-list.txt +++ b/etc/library-list.txt @@ -3,4 +3,4 @@ lagrangian/cfdemParticleComp/dir recurrence/dir finiteVolume/dir ../applications/solvers/cfdemSolverMultiphase/multiphaseMixture/dir -../applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixture/dir +../applications/solvers/cfdemSolverMultiphaseScalar/multiphaseMixtureScalar/dir