diff --git a/applications/solvers/cfdemSolverRhoPimpleChem/Make/options b/applications/solvers/cfdemSolverRhoPimpleChem/Make/options index b2038499..79bf26bb 100644 --- a/applications/solvers/cfdemSolverRhoPimpleChem/Make/options +++ b/applications/solvers/cfdemSolverRhoPimpleChem/Make/options @@ -6,7 +6,6 @@ PFLAGS+= -Dcompre EXE_INC = \ $(PFLAGS) \ - -I../. \ -I$(CFDEM_OFVERSION_DIR) \ -I$(LIB_SRC)/finiteVolume/cfdTools \ -I$(LIB_SRC)/finiteVolume/lnInclude \ @@ -27,7 +26,6 @@ EXE_INC = \ -I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \ -I$(LIB_SRC)/ODE/lnInclude \ -I$(LIB_SRC)/combustionModels/lnInclude \ - -I$(FOAM_SOLVERS)/combustion/reactingFoam \ -Wno-deprecated-copy diff --git a/applications/solvers/cfdemSolverRhoPimpleChem/cfdemSolverRhoPimpleChem.C b/applications/solvers/cfdemSolverRhoPimpleChem/cfdemSolverRhoPimpleChem.C index c4da39ff..dd281b5f 100644 --- a/applications/solvers/cfdemSolverRhoPimpleChem/cfdemSolverRhoPimpleChem.C +++ b/applications/solvers/cfdemSolverRhoPimpleChem/cfdemSolverRhoPimpleChem.C @@ -57,6 +57,8 @@ Description int main(int argc, char *argv[]) { + #include "postProcess.H" + #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" @@ -64,9 +66,10 @@ int main(int argc, char *argv[]) #include "createTimeControls.H" #include "createRDeltaT.H" - #include "createFields.H" - #include "createFvOptions.H" #include "initContinuityErrs.H" + #include "createFields.H" + #include "createFieldRefs.H" + #include "createFvOptions.H" // create cfdemCloud #include "readGravitationalAcceleration.H" diff --git a/applications/solvers/cfdemSolverRhoPimpleChem/createFields.H b/applications/solvers/cfdemSolverRhoPimpleChem/createFields.H index 4cda15ee..d5daf875 100644 --- a/applications/solvers/cfdemSolverRhoPimpleChem/createFields.H +++ b/applications/solvers/cfdemSolverRhoPimpleChem/createFields.H @@ -24,7 +24,7 @@ volScalarField W(thermo.W()); #endif - bool propagateInertSpecie = true; + Switch propagateInertSpecie(true); const word inertSpecie(thermo.lookup("inertSpecie")); @@ -40,9 +40,9 @@ << exit(FatalError); } + Info<< "inert will be bounded in [" << inertLowerBound << "," << inertUpperBound << "]" << endl; + volScalarField& p = thermo.p(); - const volScalarField& T = thermo.T(); - const volScalarField& psi = thermo.psi(); multivariateSurfaceInterpolationScheme::fieldTable fields; diff --git a/applications/solvers/rcfdemSolverBase/createFields.H b/applications/solvers/rcfdemSolverBase/createFields.H index 7088bab5..16b75ff3 100644 --- a/applications/solvers/rcfdemSolverBase/createFields.H +++ b/applications/solvers/rcfdemSolverBase/createFields.H @@ -44,7 +44,7 @@ dimensionedVector("URec", dimensionSet(0, 1, -1, 0, 0), vector::zero) ); - bool updateURec = false; + Switch updateURec(false); if (URec.headerOk()) { updateURec = true; @@ -65,7 +65,7 @@ dimensionedScalar("voidfractionRec", dimensionSet(0, 0, 0, 0, 0), 1.0) ); - bool updateVoidfractionRec = false; + Switch updateVoidfractionRec(false); if (voidfractionRec.headerOk()) { updateVoidfractionRec = true; @@ -86,7 +86,7 @@ dimensionedVector("URec", dimensionSet(0, 1, -1, 0, 0), vector::zero) ); - bool updateUsRec = false; + Switch updateUsRec(false); if (UsRec.headerOk()) { updateUsRec = true; @@ -140,7 +140,7 @@ linearInterpolate(URec*voidfractionRec) & mesh.Sf() ); - bool updatePhiRec = false; + Switch updatePhiRec(false); if (phiRec.headerOk()) { updatePhiRec = true; diff --git a/applications/solvers/rcfdemSolverBase/rcfdemSolverBase.C b/applications/solvers/rcfdemSolverBase/rcfdemSolverBase.C index 0a4f5efb..b2d6993a 100644 --- a/applications/solvers/rcfdemSolverBase/rcfdemSolverBase.C +++ b/applications/solvers/rcfdemSolverBase/rcfdemSolverBase.C @@ -58,7 +58,6 @@ int main(int argc, char *argv[]) #include "createMesh.H" #include "createControl.H" #include "createFields.H" - #include "createFvOptions.H" #include "readGravitationalAcceleration.H" diff --git a/applications/solvers/rcfdemSolverForcedTracers/rcfdemSolverForcedTracers.C b/applications/solvers/rcfdemSolverForcedTracers/rcfdemSolverForcedTracers.C index 9039e038..80a55195 100644 --- a/applications/solvers/rcfdemSolverForcedTracers/rcfdemSolverForcedTracers.C +++ b/applications/solvers/rcfdemSolverForcedTracers/rcfdemSolverForcedTracers.C @@ -51,7 +51,6 @@ int main(int argc, char *argv[]) #include "createMesh.H" #include "createControl.H" #include "createFields.H" - #include "createFvOptions.H" cfdemCloud particleCloud(mesh); recBase recurrenceBase(mesh); diff --git a/applications/solvers/rcfdemSolverRhoSteadyPimple/createFields.H b/applications/solvers/rcfdemSolverRhoSteadyPimple/createFields.H index 164799e8..4a65a741 100644 --- a/applications/solvers/rcfdemSolverRhoSteadyPimple/createFields.H +++ b/applications/solvers/rcfdemSolverRhoSteadyPimple/createFields.H @@ -168,7 +168,7 @@ Info<< "Reading thermophysical properties\n" << endl; linearInterpolate(rho*U*voidfraction) & mesh.Sf() ); - bool transientEEqn(pimple.dict().lookupOrDefault("transientEEqn",false)); + Switch transientEEqn(pimple.dict().lookupOrDefault("transientEEqn",false)); dimensionedScalar rhoMax ( diff --git a/applications/solvers/rcfdemSolverRhoSteadyPimple/rcfdemSolverRhoSteadyPimple.C b/applications/solvers/rcfdemSolverRhoSteadyPimple/rcfdemSolverRhoSteadyPimple.C index 6add71a1..01098c87 100644 --- a/applications/solvers/rcfdemSolverRhoSteadyPimple/rcfdemSolverRhoSteadyPimple.C +++ b/applications/solvers/rcfdemSolverRhoSteadyPimple/rcfdemSolverRhoSteadyPimple.C @@ -63,7 +63,6 @@ int main(int argc, char *argv[]) #include "createControl.H" #include "createTimeControls.H" #include "createRDeltaT.H" - #include "initContinuityErrs.H" #include "createFields.H" #include "createFieldRefs.H" #include "createFvOptions.H" diff --git a/applications/solvers/rcfdemSolverRhoSteadyPimpleChem/createFields.H b/applications/solvers/rcfdemSolverRhoSteadyPimpleChem/createFields.H index 1556801e..e7640d48 100644 --- a/applications/solvers/rcfdemSolverRhoSteadyPimpleChem/createFields.H +++ b/applications/solvers/rcfdemSolverRhoSteadyPimpleChem/createFields.H @@ -24,7 +24,7 @@ Info<< "Reading thermophysical properties\n" << endl; volScalarField W(thermo.W()); #endif - bool propagateInertSpecie(thermo.lookupOrDefault("propagateInertSpecie",true)); + Switch propagateInertSpecie(thermo.lookupOrDefault("propagateInertSpecie",true)); const word inertSpecie(thermo.lookupOrDefault("inertSpecie","none")); @@ -40,9 +40,9 @@ Info<< "Reading thermophysical properties\n" << endl; << exit(FatalError); } + Info<< "inert will be bounded in [" << inertLowerBound << "," << inertUpperBound << "]" << endl; + volScalarField& p = thermo.p(); - const volScalarField& T = thermo.T(); - const volScalarField& psi = thermo.psi(); multivariateSurfaceInterpolationScheme::fieldTable fields; @@ -212,7 +212,7 @@ Info<< "Reading thermophysical properties\n" << endl; linearInterpolate(rho*U*voidfraction) & mesh.Sf() ); - bool transientEEqn(pimple.dict().lookupOrDefault("transientEEqn",false)); + Switch transientEEqn(pimple.dict().lookupOrDefault("transientEEqn",false)); dimensionedScalar rhoMax ( diff --git a/applications/solvers/rcfdemSolverRhoSteadyPimpleChem/rcfdemSolverRhoSteadyPimpleChem.C b/applications/solvers/rcfdemSolverRhoSteadyPimpleChem/rcfdemSolverRhoSteadyPimpleChem.C index 682fc5b0..ef6420eb 100644 --- a/applications/solvers/rcfdemSolverRhoSteadyPimpleChem/rcfdemSolverRhoSteadyPimpleChem.C +++ b/applications/solvers/rcfdemSolverRhoSteadyPimpleChem/rcfdemSolverRhoSteadyPimpleChem.C @@ -73,7 +73,7 @@ int main(int argc, char *argv[]) #include "initContinuityErrs.H" #include "createFields.H" - //#include "createFieldRefs.H" + #include "createFieldRefs.H" #include "createFvOptions.H" // create cfdemCloud diff --git a/applications/solvers/rctfSpeciesTransport/createFields.H b/applications/solvers/rctfSpeciesTransport/createFields.H index 3b6ef0e5..71de9463 100755 --- a/applications/solvers/rctfSpeciesTransport/createFields.H +++ b/applications/solvers/rctfSpeciesTransport/createFields.H @@ -255,7 +255,6 @@ volScalarField alphat fvScalarMatrix CEqn(C, dimless*dimVolume/(dimTime)); - scalar relaxCoeff(0.0); Info<< "reading clockProperties\n" << endl; diff --git a/applications/solvers/rctfSpeciesTransport/rctfSpeciesTransport.C b/applications/solvers/rctfSpeciesTransport/rctfSpeciesTransport.C index 061a0fb2..dea487c9 100755 --- a/applications/solvers/rctfSpeciesTransport/rctfSpeciesTransport.C +++ b/applications/solvers/rctfSpeciesTransport/rctfSpeciesTransport.C @@ -1,6 +1,6 @@ /*---------------------------------------------------------------------------*\ CFDEMcoupling academic - Open Source CFD-DEM coupling - + Contributing authors: Thomas Lichtenegger, Gerhard Holzinger, Sanaz Abbasi Copyright (C) 2015- Johannes Kepler University, Linz @@ -29,11 +29,11 @@ Description for a solver based on recurrence statistics Rules - Solution data to compute the recurrence statistics from, needs to - reside in $CASE_ROOT/dataBase(0...N) + Solution data to compute the recurrence statistics from, needs to + reside in $CASE_ROOT/dataBase(0...N) Time step data in the first dataBase needs to be evenly spaced in time A list of indices for the corresponding incoherent fields to coherent ones - should be provided. + should be provided. \*---------------------------------------------------------------------------*/ @@ -58,10 +58,11 @@ int main(int argc, char *argv[]) #include "createTime.H" #include "createMesh.H" #include "createControl.H" + #include "initContinuityErrs.H" #include "createFields.H" #include "createFvOptions.H" - scalar cumulativeContErr = 0; - + scalar relaxCoeff(0.0); + //create recBases according to a list of recProperties #include "createRecBase.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -83,15 +84,15 @@ int main(int argc, char *argv[]) runTime++; myClock().start(11,"Total"); - + Info<< "Time = " << runTime.timeName() << nl << endl; myClock().start(2,"fieldUpdate"); - + if ( runTime.timeOutputValue() - (recTimeIndex+1)*recTimeStep_ + 1.0e-5 > 0.0 ) { - Info << "Updating fields at run time " << runTime.timeOutputValue() - << " corresponding to recurrence time " << (recTimeIndex+1)*recTimeStep_ << ".\n" << endl; + Info<< "Updating fields at run time " << runTime.timeOutputValue() + << " corresponding to recurrence time " << (recTimeIndex+1)*recTimeStep_ << ".\n" << endl; recBases[0].updateRecFields(); #include "readFields.H" @@ -109,16 +110,16 @@ int main(int argc, char *argv[]) myClock().stop("Total"); runTime.write(); - + Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; + << " ClockTime = " << runTime.elapsedClockTime() << " s" + << nl << endl; myClock().stop("Global"); } - + myClock().evalPar(); myClock().normHist(); diff --git a/applications/solvers/recSolverTurbTransport/createFields.H b/applications/solvers/recSolverTurbTransport/createFields.H index 3b9b3af1..8d520e5c 100755 --- a/applications/solvers/recSolverTurbTransport/createFields.H +++ b/applications/solvers/recSolverTurbTransport/createFields.H @@ -147,7 +147,6 @@ surfaceScalarField phiRec fvScalarMatrix TEqn(T, dimless*dimVolume/(dimTime)); - scalar relaxCoeff(0.0); Info<< "reading clockProperties\n" << endl; diff --git a/applications/solvers/recSolverTurbTransport/recSolverTurbTransport.C b/applications/solvers/recSolverTurbTransport/recSolverTurbTransport.C index a93997a4..81a4bed0 100755 --- a/applications/solvers/recSolverTurbTransport/recSolverTurbTransport.C +++ b/applications/solvers/recSolverTurbTransport/recSolverTurbTransport.C @@ -1,6 +1,6 @@ /*---------------------------------------------------------------------------*\ CFDEMcoupling academic - Open Source CFD-DEM coupling - + Contributing authors: Thomas Lichtenegger, Gerhard Holzinger Copyright (C) 2015- Johannes Kepler University, Linz @@ -29,9 +29,9 @@ Description for a solver based on recurrence statistics Rules - Solution data to compute the recurrence statistics from, needs to - reside in $CASE_ROOT/dataBase - Time step data in dataBase needs to be evenly spaced in time + Solution data to compute the recurrence statistics from, needs to + reside in $CASE_ROOT/dataBase + Time step data in dataBase needs to be evenly spaced in time \*---------------------------------------------------------------------------*/ @@ -55,6 +55,7 @@ int main(int argc, char *argv[]) #include "createControl.H" #include "createFields.H" #include "createFvOptions.H" + scalar relaxCoeff(0.0); recBase recurrenceBase(mesh); @@ -81,8 +82,8 @@ int main(int argc, char *argv[]) if (stepCounter == recTimeStep2CFDTimeStep) { - Info << "Updating fields at run time " << runTime.timeOutputValue() - << " with recTimeIndex " << recTimeIndex << ".\n" << endl; + Info<< "Updating fields at run time " << runTime.timeOutputValue() + << " with recTimeIndex " << recTimeIndex << ".\n" << endl; recurrenceBase.updateRecFields(); #include "readFields.H" recTimeIndex++; @@ -97,15 +98,15 @@ int main(int argc, char *argv[]) myClock().stop("speciesEqn"); runTime.write(); - + Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - + << " ClockTime = " << runTime.elapsedClockTime() << " s" + << nl << endl; + myClock().stop("Global"); } - + myClock().evalPar(); myClock().normHist(); diff --git a/applications/solvers/rtfmSolverSpecies/createFields.H b/applications/solvers/rtfmSolverSpecies/createFields.H index ec395754..d9284074 100644 --- a/applications/solvers/rtfmSolverSpecies/createFields.H +++ b/applications/solvers/rtfmSolverSpecies/createFields.H @@ -132,4 +132,3 @@ T.write(); - scalar relaxCoeff(0.0); diff --git a/applications/solvers/rtfmSolverSpecies/rtfmSolverSpecies.C b/applications/solvers/rtfmSolverSpecies/rtfmSolverSpecies.C index 0096009a..0eab7ab6 100644 --- a/applications/solvers/rtfmSolverSpecies/rtfmSolverSpecies.C +++ b/applications/solvers/rtfmSolverSpecies/rtfmSolverSpecies.C @@ -58,13 +58,14 @@ int main(int argc, char *argv[]) #include "createControl.H" #include "createFields.H" #include "createFvOptions.H" + scalar relaxCoeff(0.0); cfdemCloudRec particleCloud(mesh); recBase recurrenceBase(mesh); // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - Info << "\nCalculating particle trajectories based on recurrence statistics\n" << endl; + Info<< "\nCalculating particle trajectories based on recurrence statistics\n" << endl; label recTimeIndex(0); label stepCounter = 0; @@ -77,7 +78,7 @@ int main(int argc, char *argv[]) // do stuff (every lagrangian time step) particleCloud.clockM().start(1,"Global"); - Info << "Time = " << runTime.timeName() << nl << endl; + Info<< "Time = " << runTime.timeName() << nl << endl; particleCloud.clockM().start(2,"Flow"); #include "TEq.H" @@ -87,8 +88,8 @@ int main(int argc, char *argv[]) if (stepCounter == recTimeStep2CFDTimeStep) { - Info << "Updating fields at run time " << runTime.timeOutputValue() - << " corresponding to recTimeIndex " << recTimeIndex << ".\n" << endl; + Info<< "Updating fields at run time " << runTime.timeOutputValue() + << " corresponding to recTimeIndex " << recTimeIndex << ".\n" << endl; recurrenceBase.updateRecFields(); #include "readFields.H" recTimeIndex++; @@ -102,12 +103,12 @@ int main(int argc, char *argv[]) particleCloud.clockM().stop("Global"); - Info << "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; + Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" + << " ClockTime = " << runTime.elapsedClockTime() << " s" + << nl << endl; } - Info << "End\n" << endl; + Info<< "End\n" << endl; return 0; } diff --git a/doc/CFDEMcoupling_models.txt b/doc/CFDEMcoupling_models.txt index d453fc5d..00ce8e28 100644 --- a/doc/CFDEMcoupling_models.txt +++ b/doc/CFDEMcoupling_models.txt @@ -37,6 +37,7 @@ The "chemistryModels"_chemistryModel.html keyword is used to specify a list of models used for chemical reaction calculations. "diffusionCoefficients"_chemistryModel_diffusionCoefficients.html, +initMultiLayers, "massTransferCoeff"_chemistryModel_massTransferCoeff.html, "off"_chemistryModel_noChemistry.html, "reactantPerParticle"_chemistryModel_reactantPerParticle.html, @@ -65,19 +66,28 @@ that performs the data exchange between the DEM code and the CFD code. "twoWayOne2One"_dataExchangeModel_twoWayOne2One.html :tb(c=2,ea=c) -6.6 Energy models :h4 +6.6 Diffusion coefficient models :h4 + +The {diffCoeffModel} keyword entry specifies the model for the diffusion +coefficient of dissolved spieces in the fluid phase in the presence of particles. + +SyamlalDiffCoeff, +off :tb(c=2,ea=c) + + +6.7 Energy models :h4 The {energyModels} keyword specifies a list of energy models used for e.g. compressible, reacting flows. -heatTransferGranConduction, heatTransferGunn, +heatTransferInterGrain, heatTransferRanzMarshall, reactionHeat, wallHeatTransferYagi :tb(c=2,ea=c) -6.7 Force models :h4 +6.8 Force models :h4 The "forceModels"_forceModel.html keyword specifies a list of models that exert a force on each DEM particle. @@ -87,15 +97,15 @@ a force on each DEM particle. "BeetstraDrag"_forceModel_BeetstraDrag.html, BeetstraDragPoly, "DiFeliceDrag"_forceModel_DiFeliceDrag.html, -"dSauter"_forceModel_dSauter.html, Fines, "GidaspowDrag"_forceModel_GidaspowDrag.html, "KochHillDrag"_forceModel_KochHillDrag.html, "LaEuScalarTemp"_forceModel_LaEuScalarTemp.html, "MeiLift"_forceModel_MeiLift.html, +"ParmarBassetForce"_forceModel_ParmarBassetForce.html, "SchillerNaumannDrag"_forceModel_SchillerNaumannDrag.html, "ShirgaonkarIB"_forceModel_ShirgaonkarIB.html, -dSauter, +"dSauter"_forceModel_dSauter.html, deactivateForce, directedDiffusiveRelaxation, evaluateFluctuations, @@ -113,13 +123,15 @@ particleDeformation, "pdCorrelation"_forceModel_pdCorrelation.html, potentialRelaxation, "surfaceTensionForce"_forceModel_surfaceTensionForce.html, +terminalVelocity, +turbulentDispersion, +turbulentVelocityFluctuations, "virtualMassForce"_forceModel_virtualMassForce.html, -"ParmarBassetForce"_forceModel_ParmarBassetForce.html, "viscForce"_forceModel_viscForce.html, "volWeightedAverage"_forceModel_volWeightedAverage.html :tb(c=2,ea=c) -6.7.1 Force sub-models :h5 +6.8.1 Force sub-models :h5 The "forceSubModels"_forceSubModel.html keyword specifies a list of models that hold settings for a force model. @@ -129,7 +141,7 @@ ScaleForce, scaleForceBoundary :tb(c=2,ea=c) -6.8 LIGGGHTS command models :h4,link(lcm) +6.9 LIGGGHTS command models :h4,link(lcm) The "liggghtsCommandModels"_liggghtsCommandModel.html keyword specifies a list of models that execute LIGGGHTS commands within a CFD run. @@ -140,7 +152,7 @@ of models that execute LIGGGHTS commands within a CFD run. "writeLiggghts"_liggghtsCommandModel_writeLiggghts.html :tb(c=2,ea=c) -6.9 Locate models :h4 +6.10 Locate models :h4 The "locateModel"_locateModel.html keyword entry specifies the model used to search the CFD mesh for the CFD cell corresponding to a given position. @@ -152,7 +164,15 @@ search the CFD mesh for the CFD cell corresponding to a given position. "turboEngine"_locateModel_turboEngineSearch.html :tb(c=2,ea=c) -6.10 Mesh motion models :h4 +6.11 Mass transfer models :h4 + +The {massTransferModels} keyword specifies a list of mass transfer models used +for evaluating species transfer between particles and fluids. + +massTransferGunn :tb(c=2,ea=c) + + +6.12 Mesh motion models :h4 The "meshMotionModel"_meshMotionModel.html keyword entry specifies the model used to manipulate the CFD mesh according to the DEM mesh motion. @@ -160,7 +180,7 @@ used to manipulate the CFD mesh according to the DEM mesh motion. "noMeshMotion"_meshMotionModel_noMeshMotion.html :tb(c=2,ea=c) -6.11 Momentum coupling models :h4 +6.13 Momentum coupling models :h4 The "momCoupleModels"_momCoupleModel.html keyword specifies a list of models used for momentum exchange between DEM and CFD simulation @@ -171,17 +191,18 @@ deactivateCouple, "off"_momCoupleModel_noCouple.html :tb(c=2,ea=c) -6.12 Other force models :h4 +6.14 Other force models :h4 The {otherForceModels} keyword specifies a list of models that exert a force on each DEM particle. expParticleForces, gravity, +secondaryPhaseInducedBuoyancy, weightSecondaryPhase :tb(c=2,ea=c) -6.13 Probe models :h4 +6.15 Probe models :h4 The "probeModel"_probeModel.html keyword entry specifies the probing features in CFDEMcoupling simulations. @@ -190,7 +211,7 @@ CFDEMcoupling simulations. "particleProbe"_probeModel_particleProbe.html :tb(c=2,ea=c) -6.14 Region models :h4 +6.16 Region models :h4 The "regionModel"_regionModel.html keyword entry specifies the model used to select a certain region for coupled simulations. @@ -198,18 +219,18 @@ select a certain region for coupled simulations. "allRegion"_regionModel_allRegion.html :tb(c=2,ea=c) -6.15 Smoothing models :h4 +6.17 Smoothing models :h4 The "smoothingModel"_smoothingModel.html keyword entry specifies the model for smoothing the exchange fields. +"constDiffAndTemporalSmoothing"_smoothingModel_constDiffAndTemporalSmoothing.html, "constDiffSmoothing"_smoothingModel_constDiffSmoothing.html, "off"_smoothingModel_noSmoothing.html, -"temporalSmoothing"_smoothingModel_temporalSmoothing.html, -"constDiffAndTemporalSmoothing"_smoothingModel_constDiffAndTemporalSmoothing.html :tb(c=2,ea=c) +"temporalSmoothing"_smoothingModel_temporalSmoothing.html :tb(c=2,ea=c) -6.16 Thermal conductivity models :h4 +6.18 Thermal conductivity models :h4 The {thermCondModel} keyword entry specifies the model for the thermal conductivity of the fluid phase in the presence of particles. @@ -219,7 +240,7 @@ ZehnerSchluenderThermCond, off :tb(c=2,ea=c) -6.17 Void fraction models :h4 +6.19 Void fraction models :h4 The "voidFractionModel"_voidFractionModel.html keyword entry specifies the model accounting for the volume of the particles in the CFD domain. @@ -232,18 +253,4 @@ accounting for the volume of the particles in the CFD domain. off, trilinear :tb(c=2,ea=c) -6.18 Mass transfer models :h4 - -The {massTransferModels} keyword specifies a list of mass transfer models used evaluating -species transfer between particles and fluids. - -massTransferGunn :tb(c=2,ea=c) - -6.19 Diffusion coefficient models :h4 - -The {diffCoeffModel} keyword entry specifies the model for the diffusion -coefficient of dissolved spieces in the fluid phase in the presence of particles. - -SyamlalDiffCoeff, -off :tb(c=2,ea=c) diff --git a/etc/compileCFDEMcoupling_sol.sh b/etc/compileCFDEMcoupling_sol.sh index 96678146..3dddb15a 100755 --- a/etc/compileCFDEMcoupling_sol.sh +++ b/etc/compileCFDEMcoupling_sol.sh @@ -127,6 +127,8 @@ do sleep 2 done +compileResultAll=0 + if [ ! -f "$CWD/$whitelist" ];then echo "$whitelist does not exist in $CWD" else @@ -164,7 +166,11 @@ else casePath="$CFDEM_SOLVER_DIR/$LINE" #--------------------------------------------------------------------------------# collectLogCFDEMcoupling_sol $logpath $logfileName $casePath + compileResultOne=$(checkLogCFDEMcoupling_sol $logpath $logfileName $casePath) + compileResultAll=$((compileResultAll+compileResultOne)) done done fi +exit $compileResultAll + diff --git a/etc/functions.sh b/etc/functions.sh index cdd88ecb..7f9c1db5 100755 --- a/etc/functions.sh +++ b/etc/functions.sh @@ -695,6 +695,35 @@ collectLogCFDEMcoupling_sol() } #==================================# +#==================================# +#- function to check compile results +#- from logfiles + +checkLogCFDEMcoupling_sol() +{ + #--------------------------------------------------------------------------------# + #- define variables + logpath="$1" + logfileName="$2" + casePath="$3" + #--------------------------------------------------------------------------------# + # read name of solver + SOLVERNAME=$(basename $casePath) + + # read last line of log + LASTLINE=`tac $logpath/$logfileName | egrep -m 1 .` + LASTSTRING=`echo ${LASTLINE##* }` + LASTWORD=$(basename $LASTSTRING) + + # log if compilation was success + if [[ $LASTWORD == $SOLVERNAME ]]; then + echo 0 + else + echo 1 + fi +} +#==================================# + #==================================# #- function to replace a line in a file where text consecutive # the old line must look like: oldWord diff --git a/etc/solver-list.txt b/etc/solver-list.txt index 7c0e1440..9d3bb09d 100644 --- a/etc/solver-list.txt +++ b/etc/solver-list.txt @@ -13,6 +13,6 @@ cfdemSolverPisoScalar/dir cfdemSolverRhoPimpleChem/dir cfdemSolverMultiphase/dir cfdemSolverMultiphaseScalar/dir -rcfdemSolverRhoSteadyPimpleChem/dir rctfSpeciesTransport/dir cfdemSolverPisoFreeStreaming/dir + diff --git a/src/lagrangian/cfdemParticle/derived/cfdemCloudEnergy/cfdemCloudEnergy.C b/src/lagrangian/cfdemParticle/derived/cfdemCloudEnergy/cfdemCloudEnergy.C index 23baab35..228cba96 100644 --- a/src/lagrangian/cfdemParticle/derived/cfdemCloudEnergy/cfdemCloudEnergy.C +++ b/src/lagrangian/cfdemParticle/derived/cfdemCloudEnergy/cfdemCloudEnergy.C @@ -42,7 +42,7 @@ cfdemCloudEnergy::cfdemCloudEnergy : cfdemCloud(mesh), energyModels_(couplingProperties_.lookup("energyModels")), - massTransferModels_(couplingProperties_.lookup("massTransferModels")), + massTransferModels_(couplingProperties_.lookupOrDefault("massTransferModels",wordList::null())), implicitEnergyModel_(false), implicitMassTransferModel_(false), chemistryModels_(couplingProperties_.lookup("chemistryModels")), @@ -193,7 +193,7 @@ const thermCondModel& cfdemCloudEnergy::thermCondM() const diffCoeffModel& cfdemCloudEnergy::diffCoeffM() { return diffCoeffModel_; -} +} void cfdemCloudEnergy::energyContributions(volScalarField& Qsource) { diff --git a/src/lagrangian/cfdemParticle/subModels/diffCoeffModel/diffCoeffModel/diffCoeffModel.C b/src/lagrangian/cfdemParticle/subModels/diffCoeffModel/diffCoeffModel/diffCoeffModel.C index f216bc41..46ff5da2 100644 --- a/src/lagrangian/cfdemParticle/subModels/diffCoeffModel/diffCoeffModel/diffCoeffModel.C +++ b/src/lagrangian/cfdemParticle/subModels/diffCoeffModel/diffCoeffModel/diffCoeffModel.C @@ -73,7 +73,7 @@ diffCoeffModel::diffCoeffModel ) { // build constant fields for single phase case - if (!particleCloud_.multiphase()) + if (!particleCloud_.multiphase() && dict_.found("diffCoeffModel")) { D0Field_ = volScalarField ( diff --git a/src/lagrangian/cfdemParticle/subModels/diffCoeffModel/diffCoeffModel/newDiffCoeffModel.C b/src/lagrangian/cfdemParticle/subModels/diffCoeffModel/diffCoeffModel/newDiffCoeffModel.C index cb27e7e7..0102c59a 100644 --- a/src/lagrangian/cfdemParticle/subModels/diffCoeffModel/diffCoeffModel/newDiffCoeffModel.C +++ b/src/lagrangian/cfdemParticle/subModels/diffCoeffModel/diffCoeffModel/newDiffCoeffModel.C @@ -37,7 +37,7 @@ autoPtr diffCoeffModel::New { word diffCoeffModelType ( - dict.lookup("diffCoeffModel") + dict.lookupOrDefault("diffCoeffModel","off") ); Info<< "Selecting diffCoeffModel " diff --git a/src/recurrence/recModel/standardRecModel/standardRecModel.C b/src/recurrence/recModel/standardRecModel/standardRecModel.C index e8bc6637..36407588 100644 --- a/src/recurrence/recModel/standardRecModel/standardRecModel.C +++ b/src/recurrence/recModel/standardRecModel/standardRecModel.C @@ -189,7 +189,7 @@ void standardRecModel::checkTimeStep() scalar dTRec2dTCFD = recTimeStep_[i] / timeStep_; scalar dTRec2dTCFDshifted = dTRec2dTCFD + 0.5; - recTimeStep2CFDTimeStep_[i] = (label) dTRec2dTCFDshifted; + recTimeStep2CFDTimeStep_[i] = static_cast