diff --git a/applications/solvers/multiphase/cavitatingFoam/alphavPsi.H b/applications/solvers/multiphase/cavitatingFoam/alphavPsi.H new file mode 100644 index 0000000000..ed799ae4b4 --- /dev/null +++ b/applications/solvers/multiphase/cavitatingFoam/alphavPsi.H @@ -0,0 +1,20 @@ +{ + alphav = + max + ( + min + ( + (rho - rholSat)/(rhovSat - rholSat), + scalar(1) + ), + scalar(0) + ); + alphal = 1.0 - alphav; + + Info<< "max-min alphav: " << max(alphav).value() + << " " << min(alphav).value() << endl; + + psiModel->correct(); + + //Info<< "min a: " << 1.0/sqrt(max(psi)).value() << endl; +} diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C b/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C index 73e9577029..c4453df391 100644 --- a/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C +++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C @@ -72,7 +72,7 @@ int main(int argc, char *argv[]) while (pimple.loop()) { #include "rhoEqn.H" - #include "gammaPsi.H" + #include "alphavPsi.H" #include "UEqn.H" // --- Pressure corrector loop diff --git a/applications/solvers/multiphase/cavitatingFoam/continuityErrs.H b/applications/solvers/multiphase/cavitatingFoam/continuityErrs.H index ce618ee40f..14b0ef7786 100644 --- a/applications/solvers/multiphase/cavitatingFoam/continuityErrs.H +++ b/applications/solvers/multiphase/cavitatingFoam/continuityErrs.H @@ -1,5 +1,5 @@ { - volScalarField thermoRho = psi*p + gamma2*rhol0; + volScalarField thermoRho = psi*p + alphal*rhol0; dimensionedScalar totalMass = fvc::domainIntegrate(rho); diff --git a/applications/solvers/multiphase/cavitatingFoam/createFields.H b/applications/solvers/multiphase/cavitatingFoam/createFields.H index 8958dc3c5e..605c0deece 100644 --- a/applications/solvers/multiphase/cavitatingFoam/createFields.H +++ b/applications/solvers/multiphase/cavitatingFoam/createFields.H @@ -44,19 +44,19 @@ Info<< "Reading transportProperties\n" << endl; - incompressibleTwoPhaseMixture twoPhaseProperties(U, phiv, "gamma"); + incompressibleTwoPhaseMixture twoPhaseProperties(U, phiv); - volScalarField& gamma(twoPhaseProperties.alpha1()); - gamma.oldTime(); + volScalarField& alphav(twoPhaseProperties.alpha1()); + alphav.oldTime(); - volScalarField& gamma2(twoPhaseProperties.alpha2()); + volScalarField& alphal(twoPhaseProperties.alpha2()); Info<< "Creating compressibilityModel\n" << endl; autoPtr psiModel = barotropicCompressibilityModel::New ( thermodynamicProperties, - gamma + alphav ); const volScalarField& psi = psiModel->psi(); @@ -64,8 +64,8 @@ rho == max ( psi*p - + gamma2*rhol0 - + ((gamma*psiv + gamma2*psil) - psi)*pSat, + + alphal*rhol0 + + ((alphav*psiv + alphal*psil) - psi)*pSat, rhoMin ); diff --git a/applications/solvers/multiphase/cavitatingFoam/gammaPsi.H b/applications/solvers/multiphase/cavitatingFoam/gammaPsi.H deleted file mode 100644 index 4edda7336d..0000000000 --- a/applications/solvers/multiphase/cavitatingFoam/gammaPsi.H +++ /dev/null @@ -1,11 +0,0 @@ -{ - gamma = max(min((rho - rholSat)/(rhovSat - rholSat), scalar(1)), scalar(0)); - gamma2 = 1.0 - gamma; - - Info<< "max-min gamma: " << max(gamma).value() - << " " << min(gamma).value() << endl; - - psiModel->correct(); - - //Info<< "min a: " << 1.0/sqrt(max(psi)).value() << endl; -} diff --git a/applications/solvers/multiphase/cavitatingFoam/pEqn.H b/applications/solvers/multiphase/cavitatingFoam/pEqn.H index b2c7d953b5..da43e67ce7 100644 --- a/applications/solvers/multiphase/cavitatingFoam/pEqn.H +++ b/applications/solvers/multiphase/cavitatingFoam/pEqn.H @@ -4,8 +4,8 @@ p = ( rho - - gamma2*rhol0 - - ((gamma*psiv + gamma2*psil) - psi)*pSat + - alphal*rhol0 + - ((alphav*psiv + alphal*psil) - psi)*pSat )/psi; } @@ -29,7 +29,7 @@ fvScalarMatrix pEqn ( fvm::ddt(psi, p) - - (rhol0 + (psil - psiv)*pSat)*fvc::ddt(gamma) - pSat*fvc::ddt(psi) + - (rhol0 + (psil - psiv)*pSat)*fvc::ddt(alphav) - pSat*fvc::ddt(psi) + fvc::div(phiv, rho) + fvc::div(phiGradp) - fvm::laplacian(rAUf, p) @@ -49,18 +49,18 @@ rho == max ( psi*p - + gamma2*rhol0 - + ((gamma*psiv + gamma2*psil) - psi)*pSat, + + alphal*rhol0 + + ((alphav*psiv + alphal*psil) - psi)*pSat, rhoMin ); - #include "gammaPsi.H" + #include "alphavPsi.H" p = ( rho - - gamma2*rhol0 - - ((gamma*psiv + gamma2*psil) - psi)*pSat + - alphal*rhol0 + - ((alphav*psiv + alphal*psil) - psi)*pSat )/psi; p.correctBoundaryConditions(); diff --git a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C index d81f5ccb1f..e9c5322c79 100644 --- a/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C +++ b/applications/solvers/multiphase/compressibleInterFoam/twoPhaseMixtureThermo/twoPhaseMixtureThermo.C @@ -49,12 +49,12 @@ Foam::twoPhaseMixtureThermo::twoPhaseMixtureThermo thermo2_(NULL) { { - volScalarField T1("T" + phase1Name(), T_); + volScalarField T1(IOobject::groupName("T", phase1Name()), T_); T1.write(); } { - volScalarField T2("T" + phase2Name(), T_); + volScalarField T2(IOobject::groupName("T", phase2Name()), T_); T2.write(); } diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C index 0e9e8ae349..f7cc2eae21 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C +++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.C @@ -42,11 +42,10 @@ namespace phaseChangeTwoPhaseMixtures Foam::phaseChangeTwoPhaseMixtures::Kunz::Kunz ( const volVectorField& U, - const surfaceScalarField& phi, - const word& alpha1Name + const surfaceScalarField& phi ) : - phaseChangeTwoPhaseMixture(typeName, U, phi, alpha1Name), + phaseChangeTwoPhaseMixture(typeName, U, phi), UInf_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("UInf")), tInf_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("tInf")), diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.H b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.H index 39ccad5382..f0290efc95 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Kunz/Kunz.H @@ -91,8 +91,7 @@ public: Kunz ( const volVectorField& U, - const surfaceScalarField& phi, - const word& alpha1Name = "alpha1" + const surfaceScalarField& phi ); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C index 87c261da9b..72fdb7245e 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C +++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.C @@ -42,11 +42,10 @@ namespace phaseChangeTwoPhaseMixtures Foam::phaseChangeTwoPhaseMixtures::Merkle::Merkle ( const volVectorField& U, - const surfaceScalarField& phi, - const word& alpha1Name + const surfaceScalarField& phi ) : - phaseChangeTwoPhaseMixture(typeName, U, phi, alpha1Name), + phaseChangeTwoPhaseMixture(typeName, U, phi), UInf_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("UInf")), tInf_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("tInf")), diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.H b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.H index 7dd8e841c8..e675c83df7 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/Merkle/Merkle.H @@ -85,8 +85,7 @@ public: Merkle ( const volVectorField& U, - const surfaceScalarField& phi, - const word& alpha1Name = "alpha1" + const surfaceScalarField& phi ); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C index 36cb56a0c2..f157fa75e0 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C +++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.C @@ -49,11 +49,10 @@ namespace phaseChangeTwoPhaseMixtures Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer::SchnerrSauer ( const volVectorField& U, - const surfaceScalarField& phi, - const word& alpha1Name + const surfaceScalarField& phi ) : - phaseChangeTwoPhaseMixture(typeName, U, phi, alpha1Name), + phaseChangeTwoPhaseMixture(typeName, U, phi), n_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("n")), dNuc_(phaseChangeTwoPhaseMixtureCoeffs_.lookup("dNuc")), diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.H b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.H index beef7fc7fc..ce096105d9 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/SchnerrSauer/SchnerrSauer.H @@ -98,8 +98,7 @@ public: SchnerrSauer ( const volVectorField& U, - const surfaceScalarField& phi, - const word& alpha1Name = "alpha1" + const surfaceScalarField& phi ); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/newPhaseChangeTwoPhaseMixture.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/newPhaseChangeTwoPhaseMixture.C index 08728c8f92..0a86459705 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/newPhaseChangeTwoPhaseMixture.C +++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/newPhaseChangeTwoPhaseMixture.C @@ -32,8 +32,7 @@ Foam::autoPtr Foam::phaseChangeTwoPhaseMixture::New ( const volVectorField& U, - const surfaceScalarField& phi, - const word& alpha1Name + const surfaceScalarField& phi ) { IOdictionary transportPropertiesDict @@ -73,7 +72,7 @@ Foam::phaseChangeTwoPhaseMixture::New << exit(FatalError); } - return autoPtr(cstrIter()(U, phi, alpha1Name)); + return autoPtr(cstrIter()(U, phi)); } diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.C index c08eba9390..d25fbdfec9 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.C +++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.C @@ -39,11 +39,10 @@ Foam::phaseChangeTwoPhaseMixture::phaseChangeTwoPhaseMixture ( const word& type, const volVectorField& U, - const surfaceScalarField& phi, - const word& alpha1Name + const surfaceScalarField& phi ) : - incompressibleTwoPhaseMixture(U, phi, alpha1Name), + incompressibleTwoPhaseMixture(U, phi), phaseChangeTwoPhaseMixtureCoeffs_(subDict(type + "Coeffs")), pSat_(lookup("pSat")) {} diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.H b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.H index e05476390b..227768ac8d 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.H @@ -91,10 +91,9 @@ public: components, ( const volVectorField& U, - const surfaceScalarField& phi, - const word& alpha1Name + const surfaceScalarField& phi ), - (U, phi, alpha1Name) + (U, phi) ); @@ -104,8 +103,7 @@ public: static autoPtr New ( const volVectorField& U, - const surfaceScalarField& phi, - const word& alpha1Name = "alpha1" + const surfaceScalarField& phi ); @@ -116,8 +114,7 @@ public: ( const word& type, const volVectorField& U, - const surfaceScalarField& phi, - const word& alpha1Name = "alpha1" + const surfaceScalarField& phi ); diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqn.H b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqn.H index c68a0e56c5..adca48e965 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqn.H +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaEqn.H @@ -1,5 +1,5 @@ { - word alphaScheme("div(phi,alpha1)"); + word alphaScheme("div(phi,alpha)"); surfaceScalarField phiAlpha ( diff --git a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.C index 72af0d8d9c..1fcc5feb7d 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.C @@ -39,7 +39,8 @@ Foam::variableHeightFlowRateInletVelocityFvPatchVectorField ) : fixedValueFvPatchField(p, iF), - flowRate_(0) + flowRate_(0), + alphaName_("none") {} @@ -53,7 +54,8 @@ Foam::variableHeightFlowRateInletVelocityFvPatchVectorField ) : fixedValueFvPatchField(ptf, p, iF, mapper), - flowRate_(ptf.flowRate_) + flowRate_(ptf.flowRate_), + alphaName_(ptf.alphaName_) {} @@ -66,7 +68,8 @@ Foam::variableHeightFlowRateInletVelocityFvPatchVectorField ) : fixedValueFvPatchField(p, iF, dict), - flowRate_(readScalar(dict.lookup("flowRate"))) + flowRate_(readScalar(dict.lookup("flowRate"))), + alphaName_(dict.lookup("alpha")) {} @@ -77,7 +80,8 @@ Foam::variableHeightFlowRateInletVelocityFvPatchVectorField ) : fixedValueFvPatchField(ptf), - flowRate_(ptf.flowRate_) + flowRate_(ptf.flowRate_), + alphaName_(ptf.alphaName_) {} @@ -89,7 +93,8 @@ Foam::variableHeightFlowRateInletVelocityFvPatchVectorField ) : fixedValueFvPatchField(ptf, iF), - flowRate_(ptf.flowRate_) + flowRate_(ptf.flowRate_), + alphaName_(ptf.alphaName_) {} @@ -104,7 +109,7 @@ void Foam::variableHeightFlowRateInletVelocityFvPatchVectorField } scalarField alphap = - patch().lookupPatchField("alpha1"); + patch().lookupPatchField(alphaName_); alphap = max(alphap, scalar(0)); alphap = min(alphap, scalar(1)); @@ -129,6 +134,8 @@ void Foam::variableHeightFlowRateInletVelocityFvPatchVectorField::write os.writeKeyword("flowRate") << flowRate_ << token::END_STATEMENT << nl; + os.writeKeyword("alpha") << alphaName_ + << token::END_STATEMENT << nl; writeEntry("value", os); } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.H index 10e6a2c889..34742c7567 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.H @@ -39,6 +39,7 @@ Description \table Property | Description | Required | Default value flowRate | volumetric flow rate [m3/s] | yes | + alpha | phase-fraction field | yes | \endtable Example of the boundary condition specification: @@ -47,6 +48,7 @@ Description { type variableHeightFlowRateInletVelocity; flowRate 0.2; + alpha alpha.water; value uniform (0 0 0); // placeholder } \endverbatim @@ -87,6 +89,9 @@ class variableHeightFlowRateInletVelocityFvPatchVectorField //- Inlet integral flow rate scalar flowRate_; + //- Name of the phase-fraction field + word alphaName_; + public: diff --git a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C index b368c44810..8292b9712b 100644 --- a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -234,4 +234,16 @@ void Foam::CollidingCloud::motion(TrackData& td) } +template +void Foam::CollidingCloud::info() +{ + CloudType::info(); + + scalar rotationalKineticEnergy = rotationalKineticEnergyOfSystem(); + reduce(rotationalKineticEnergy, sumOp()); + + Info<< " Rotational kinetic energy = " + << rotationalKineticEnergy << nl; +} + // ************************************************************************* // diff --git a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.H b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.H index c51e6a7bb5..3b42061bf4 100644 --- a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -197,8 +197,13 @@ public: inline CollisionModel >& collision(); + // Check - // Evolution + //- Total rotational kinetic energy in the system + inline scalar rotationalKineticEnergyOfSystem() const; + + + // Cloud evolution functions //- Store the current cloud state void storeState(); @@ -212,6 +217,12 @@ public: //- Particle motion template void motion(TrackData& td); + + + // I-O + + //- Print cloud information + void info(); }; diff --git a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloudI.H b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloudI.H index 19f03d39b1..1dedd5da9c 100644 --- a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloudI.H +++ b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloudI.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -49,4 +49,22 @@ Foam::CollidingCloud::collision() } +template +inline Foam::scalar +Foam::CollidingCloud::rotationalKineticEnergyOfSystem() const +{ + scalar rotationalKineticEnergy = 0.0; + + forAllConstIter(typename CollidingCloud, *this, iter) + { + const parcelType& p = iter(); + + rotationalKineticEnergy += + p.nParticle()*0.5*p.momentOfInertia()*(p.omega() & p.omega()); + } + + return rotationalKineticEnergy; +} + + // ************************************************************************* // diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C index 445775a928..acf9e8c235 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C @@ -864,9 +864,6 @@ void Foam::KinematicCloud::info() scalar linearKineticEnergy = linearKineticEnergyOfSystem(); reduce(linearKineticEnergy, sumOp()); - scalar rotationalKineticEnergy = rotationalKineticEnergyOfSystem(); - reduce(rotationalKineticEnergy, sumOp()); - Info<< "Cloud: " << this->name() << nl << " Current number of parcels = " << returnReduce(this->size(), sumOp