diff --git a/.gitignore b/.gitignore index b4b35554..2ac20489 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,8 @@ log_* log.* *~ +*.swp +*.swo **/linux*Gcc*/ **/.vscode diff --git a/applications/solvers/cfdemSolverRhoPimple/EEqn.H b/applications/solvers/cfdemSolverRhoPimple/EEqn.H index 08af6a05..fffa1b60 100644 --- a/applications/solvers/cfdemSolverRhoPimple/EEqn.H +++ b/applications/solvers/cfdemSolverRhoPimple/EEqn.H @@ -54,6 +54,9 @@ thermo.correct(); + Info << "Qsource" << max(Qsource).value() << " " << min(Qsource).value() << endl; + Info << "QCoeff" << max(QCoeff).value() << " " << min(QCoeff).value() << endl; + Info << "Cpv" << max(Cpv).value() << " " << min(Cpv).value() << endl; Info<< "T max/min : " << max(T).value() << " " << min(T).value() << endl; particleCloud.clockM().start(31,"energySolve"); diff --git a/applications/solvers/cfdemSolverRhoPimpleChem/EEqn.H b/applications/solvers/cfdemSolverRhoPimpleChem/EEqn.H index 5dfd1a5a..719af09a 100644 --- a/applications/solvers/cfdemSolverRhoPimpleChem/EEqn.H +++ b/applications/solvers/cfdemSolverRhoPimpleChem/EEqn.H @@ -10,8 +10,8 @@ thCond=particleCloud.thermCondM().thermCond(); Cpv = he.name() == "e" ? thermo.Cv() : thermo.Cp(); // correct source for the thermodynamic reference temperature -dimensionedScalar Tref("Tref", dimTemperature, T[0]-he[0]/(Cpv[0]+SMALL)); -Qsource += QCoeff*Tref; +// dimensionedScalar Tref("Tref", dimTemperature, T[0]-he[0]/(Cpv[0]+SMALL)); +// Qsource += QCoeff*Tref; fvScalarMatrix EEqn ( @@ -49,7 +49,13 @@ fvScalarMatrix EEqn thermo.correct(); - Info<< "T max/min : " << max(T).value() << " " << min(T).value() << endl; - Info << "he min/max : " << max(he).value() << " " << min(he).value() << endl; + Info << "Qsource :" << max(Qsource).value() << " " << min(Qsource).value() << endl; + Info << "QCoeff :" << max(QCoeff).value() << " " << min(QCoeff).value() << endl; + Info << "Cpv :" << max(Cpv).value() << " " << min(Cpv).value() << endl; + Info<< "T max/min : " << max(T).value() << " " << min(T).value() << endl; + Info << "he max/min : " << max(he).value() << " " << min(he).value() << endl; + particleCloud.clockM().start(31,"energySolve"); + particleCloud.solve(); + particleCloud.clockM().stop("energySolve"); } diff --git a/applications/solvers/cfdemSolverRhoPimpleChem/cfdemSolverRhoPimpleChem.C b/applications/solvers/cfdemSolverRhoPimpleChem/cfdemSolverRhoPimpleChem.C index 762a1cbc..a634ef7a 100644 --- a/applications/solvers/cfdemSolverRhoPimpleChem/cfdemSolverRhoPimpleChem.C +++ b/applications/solvers/cfdemSolverRhoPimpleChem/cfdemSolverRhoPimpleChem.C @@ -52,7 +52,6 @@ Description int main(int argc, char *argv[]) { -// #include "postProcess.H" #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" @@ -61,7 +60,6 @@ int main(int argc, char *argv[]) #include "createRDeltaT.H" #include "createFields.H" - #include "createFieldRefs.H" #include "createFvOptions.H" #include "initContinuityErrs.H" diff --git a/applications/solvers/cfdemSolverRhoPimpleChem/createFields.H b/applications/solvers/cfdemSolverRhoPimpleChem/createFields.H index 80f4166e..3e10274b 100644 --- a/applications/solvers/cfdemSolverRhoPimpleChem/createFields.H +++ b/applications/solvers/cfdemSolverRhoPimpleChem/createFields.H @@ -8,7 +8,6 @@ ); rhoReactionThermo& thermo = combustion->thermo(); - thermo.validate(args.executable(), "h", "e"); basicSpecieMixture& composition = thermo.composition(); @@ -34,6 +33,8 @@ } volScalarField& p = thermo.p(); + const volScalarField& T = thermo.T(); + const volScalarField& psi = thermo.psi(); multivariateSurfaceInterpolationScheme::fieldTable fields; @@ -57,9 +58,6 @@ ); // kinematic fields - - - Info<< "Reading field U\n" << endl; volVectorField U ( @@ -88,18 +86,8 @@ mesh ); - volScalarField rhoeps - ( - IOobject - ( - "rhoeps", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - rho*voidfraction - ); + volScalarField rhoeps ("rhoeps", rho*voidfraction); + Info<< "\nCreating fluid-particle heat flux field\n" << endl; volScalarField Qsource @@ -282,9 +270,18 @@ mesh, dimensionedScalar("zero",dimensionSet(0, -3, 0, 0, 1),0) ); + + volScalarField dSauter + ( + IOobject + ( + "dSauter", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("zero",dimensionSet(0, 1, 0, 0, 0,0,0),0) + ); //=============================== - - - - // singlePhaseTransportModel laminarTransport(U, phi); - diff --git a/src/lagrangian/cfdemParticle/subModels/chemistryModel/diffusionCoefficients/diffusionCoefficients.C b/src/lagrangian/cfdemParticle/subModels/chemistryModel/diffusionCoefficients/diffusionCoefficients.C index 62695fd1..c2157536 100644 --- a/src/lagrangian/cfdemParticle/subModels/chemistryModel/diffusionCoefficients/diffusionCoefficients.C +++ b/src/lagrangian/cfdemParticle/subModels/chemistryModel/diffusionCoefficients/diffusionCoefficients.C @@ -72,24 +72,12 @@ diffusionCoefficient::diffusionCoefficient P_(sm.mesh().lookupObject(pressureFieldName_)), partPressureName_(propsDict_.lookupOrDefault("partPressureName","partP")), partPressure_(NULL), - densityFieldName_(propsDict_.lookupOrDefault("densityFieldName","rho")), - rho_(sm.mesh().lookupObject (densityFieldName_)), - molarConcFieldName_(propsDict_.lookupOrDefault("totalMoleFieldName","molarConc")), - molarConc_(sm.mesh().lookupObject(molarConcFieldName_)), X_(speciesNames_.size()), diffusantGasNames_(propsDict_.lookup("diffusantGasNames")), diffusionCoefficients_(diffusantGasNames_.size(),NULL), + Xdiffusant_(diffusantGasNames_.size()), initialized_(false) { - if(verbose_) - { - Info << " Reading diffusionCoefficient list: " << diffusantGasNames_ << endl; - for (int i = 0; i < diffusantGasNames_.size(); i++) - { - Info << "Diffusant names: " << diffusantGasNames_[i] << endl; - } - } - particleCloud_.checkCG(false); allocateMyArrays(); createCoeffs(); @@ -108,7 +96,8 @@ diffusionCoefficient::~diffusionCoefficient() } // * * * * * * * * * * * * * * * private Member Functions * * * * * * * * * * * * * // - void diffusionCoefficient::allocateMyArrays() const + +void diffusionCoefficient::allocateMyArrays() const { double initVal=0.0; if (particleCloud_.dataExchangeM().maxNumberOfParticles() > 0) @@ -123,14 +112,11 @@ diffusionCoefficient::~diffusionCoefficient() void diffusionCoefficient::reAllocMyArrays() const { - if (particleCloud_.numberOfParticlesChanged()) + double initVal=0.0; + particleCloud_.dataExchangeM().allocateArray(partPressure_,initVal,1,"nparticles"); + for (int i=0; i (mesh_.lookupObject("X_"+speciesNames_[i])); X_.set(i, &X); - - if(verbose_) - { - Info << " Read species list from: " << specDict_.name() << endl; - Info << " Reading species list: " << speciesNames_ << endl; - Info << " Looking up species fields: " << "X_"+speciesNames_[i] << endl; - Info << "The molar fraction fields (X_i): " << X_[i].name() << nl << endl; - } } + + for (int j = 0; j < diffusantGasNames_.size(); j++) + { + volScalarField& Xdiffusant = const_cast + (mesh_.lookupObject("X_"+diffusantGasNames_[j])); + Xdiffusant_.set(j, &Xdiffusant); + + if (verbose_) + { + Info << " Reading diffusing gas species list: " << diffusantGasNames_ << endl; + Info << " Looking up diffusin gas species fields: " << "X_"+diffusantGasNames_[j] << endl; + Info << " The molar fraction fields (Xdiffusant_i): " << Xdiffusant_[j].name() << nl << endl; + } + } + initialized_ = true; } @@ -168,196 +161,115 @@ void diffusionCoefficient::execute() label cellI=0; scalar Tfluid(0); - scalar rhofluid(0); scalar Pfluid(0); - scalar molarConcfluid(0); scalar Texp(0); scalar dBinary_(0); scalar Xnegative(0); - List Xfluid_(0); - Xfluid_.setSize(speciesNames_.size()); - List XfluidDiffusant_(0); - XfluidDiffusant_.setSize(diffusantGasNames_.size()); - List MixtureBinaryDiffusion_; - MixtureBinaryDiffusion_.setSize(diffusantGasNames_.size()); - List TotalFraction_; - TotalFraction_.setSize(diffusantGasNames_.size()); + List TotalFraction_(diffusantGasNames_.size(),0); - // defining interpolators for T, rho, voidfraction, N + // defining interpolators for T and Pressure interpolationCellPoint TInterpolator_(tempField_); - interpolationCellPoint rhoInterpolator_(rho_); interpolationCellPoint PInterpolator_(P_); - interpolationCellPoint molarConcInterpolator_(molarConc_); for (int index=0; index=0) { if(interpolation_) { - vector position = particleCloud_.position(index); - Tfluid = TInterpolator_.interpolate(position,cellI); - rhofluid = rhoInterpolator_.interpolate(position,cellI); - Pfluid = PInterpolator_.interpolate(position,cellI); - molarConcfluid = molarConcInterpolator_.interpolate(position,cellI); + vector position = particleCloud_.position(index); + Tfluid = TInterpolator_.interpolate(position,cellI); + Pfluid = PInterpolator_.interpolate(position,cellI); } else { - Tfluid = tempField_[cellI]; - rhofluid = rho_[cellI]; - Pfluid = P_[cellI]; - molarConcfluid = molarConc_[cellI]; + Tfluid = tempField_[cellI]; + Pfluid = P_[cellI]; - for (int i = 0; i X_; wordList diffusantGasNames_; mutable List diffusionCoefficients_; + UPtrList Xdiffusant_; + HashTable coeffs; HashTable molWeight; diff --git a/src/lagrangian/cfdemParticle/subModels/chemistryModel/massTransferCoeff/massTransferCoeff.C b/src/lagrangian/cfdemParticle/subModels/chemistryModel/massTransferCoeff/massTransferCoeff.C index a3a3194b..2f49a729 100644 --- a/src/lagrangian/cfdemParticle/subModels/chemistryModel/massTransferCoeff/massTransferCoeff.C +++ b/src/lagrangian/cfdemParticle/subModels/chemistryModel/massTransferCoeff/massTransferCoeff.C @@ -69,6 +69,7 @@ massTransferCoeff::massTransferCoeff scaleDia_(1) { particleCloud_.checkCG(true); + allocateMyArrays(); } // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // @@ -95,12 +96,9 @@ void massTransferCoeff::allocateMyArrays() const void massTransferCoeff::reAllocMyArrays() const { - if (particleCloud_.numberOfParticlesChanged()) - { - double initVal=0.0; - particleCloud_.dataExchangeM().allocateArray(partNu_,initVal,1); - particleCloud_.dataExchangeM().allocateArray(partRe_,initVal,1); - } + double initVal=0.0; + particleCloud_.dataExchangeM().allocateArray(partNu_,initVal,1); + particleCloud_.dataExchangeM().allocateArray(partRe_,initVal,1); } // * * * * * * * * * * * * * * * * Member Fct * * * * * * * * * * * * * * * // @@ -188,10 +186,10 @@ void massTransferCoeff::execute() partRe_[index][0] = Rep; } - if (verbose_ && index >=0 && index < 2) + if (verbose_) { - Info << "Nufield = " << nuf << endl; - Info << "Rep = " << Rep << endl; + Pout << "Nufield = " << nuf << endl; + Pout << "Rep = " << Rep << endl; } } diff --git a/src/lagrangian/cfdemParticle/subModels/chemistryModel/noChemistry/noChemistry.C b/src/lagrangian/cfdemParticle/subModels/chemistryModel/noChemistry/noChemistry.C index 5e4146d7..0eb04f4b 100644 --- a/src/lagrangian/cfdemParticle/subModels/chemistryModel/noChemistry/noChemistry.C +++ b/src/lagrangian/cfdemParticle/subModels/chemistryModel/noChemistry/noChemistry.C @@ -57,8 +57,64 @@ noChemistry::~noChemistry() // * * * * * * * * * * * * * * * * Member Fct * * * * * * * * * * * * * * * // +tmp noChemistry::Smi(label i) const +{ + tmp Smi_ + ( + new volScalarField + ( + IOobject + ( + "smi_", + particleCloud_.mesh().time().timeName(), + particleCloud_.mesh(), + IOobject::NO_READ, + IOobject::NO_WRITE + ), + particleCloud_.mesh(), + dimensionedScalar + ( + "zero", + dimMass/(dimVol*dimTime), + 0.0 + ) + ) + ); + + return Smi_; +} + +tmp noChemistry::Sm() const +{ + tmp Sm_ + ( + new volScalarField + ( + IOobject + ( + "Sm_", + particleCloud_.mesh().time().timeName(), + particleCloud_.mesh(), + IOobject::NO_READ, + IOobject::NO_WRITE + ), + particleCloud_.mesh(), + dimensionedScalar + ( + "zero", + dimMass/(dimVol*dimTime), + 0.0 + ) + ) + ); + + return Sm_; +} + void noChemistry::execute() -{} +{ + //do nothing +} // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/cfdemParticle/subModels/chemistryModel/noChemistry/noChemistry.H b/src/lagrangian/cfdemParticle/subModels/chemistryModel/noChemistry/noChemistry.H index 5f0840ab..c4f7b061 100644 --- a/src/lagrangian/cfdemParticle/subModels/chemistryModel/noChemistry/noChemistry.H +++ b/src/lagrangian/cfdemParticle/subModels/chemistryModel/noChemistry/noChemistry.H @@ -66,6 +66,10 @@ public: void execute(); + tmp Smi(const label i) const; + + tmp Sm() const; + }; diff --git a/src/lagrangian/cfdemParticle/subModels/chemistryModel/reactantPerParticle/reactantPerParticle.C b/src/lagrangian/cfdemParticle/subModels/chemistryModel/reactantPerParticle/reactantPerParticle.C index 1573c68a..0d2151c7 100644 --- a/src/lagrangian/cfdemParticle/subModels/chemistryModel/reactantPerParticle/reactantPerParticle.C +++ b/src/lagrangian/cfdemParticle/subModels/chemistryModel/reactantPerParticle/reactantPerParticle.C @@ -56,6 +56,7 @@ reactantPerParticle::reactantPerParticle chemistryModel(dict,sm), propsDict_(dict.subDict(typeName + "Props")), mesh_(sm.mesh()), + verbose_(propsDict_.lookupOrDefault("verbose",false)), reactantPerParticle_(NULL), voidfractionFieldName_(propsDict_.lookupOrDefault("voidfractionFieldName","voidfraction")), voidfraction_(sm.mesh().lookupObject(voidfractionFieldName_)), @@ -98,11 +99,8 @@ void reactantPerParticle::allocateMyArrays() const void reactantPerParticle::reAllocMyArrays() const { - if (particleCloud_.numberOfParticlesChanged()) - { - double initVal=0.0; - particleCloud_.dataExchangeM().allocateArray(reactantPerParticle_,initVal,1); - } + double initVal=0.0; + particleCloud_.dataExchangeM().allocateArray(reactantPerParticle_,initVal,1); } // * * * * * * * * * * * * * * * * Member Fct * * * * * * * * * * * * * * * // @@ -145,6 +143,8 @@ void reactantPerParticle::execute() particlesPerCell= particlesPerCell_[cellI]; reactantPerParticle_[index][0] = voidfraction * cellvolume / particlesPerCell; } + + if (verbose_) Info << "reactantPerParticle_" << reactantPerParticle_[index][0] << endl; } // give DEM data diff --git a/src/lagrangian/cfdemParticle/subModels/chemistryModel/reactantPerParticle/reactantPerParticle.H b/src/lagrangian/cfdemParticle/subModels/chemistryModel/reactantPerParticle/reactantPerParticle.H index 0fe39037..2e369755 100644 --- a/src/lagrangian/cfdemParticle/subModels/chemistryModel/reactantPerParticle/reactantPerParticle.H +++ b/src/lagrangian/cfdemParticle/subModels/chemistryModel/reactantPerParticle/reactantPerParticle.H @@ -54,6 +54,8 @@ private: const fvMesh& mesh_; + bool verbose_; + mutable double **reactantPerParticle_; word voidfractionFieldName_; diff --git a/src/lagrangian/cfdemParticle/subModels/chemistryModel/species/species.C b/src/lagrangian/cfdemParticle/subModels/chemistryModel/species/species.C index 29493b19..c485a848 100644 --- a/src/lagrangian/cfdemParticle/subModels/chemistryModel/species/species.C +++ b/src/lagrangian/cfdemParticle/subModels/chemistryModel/species/species.C @@ -69,7 +69,7 @@ species::species // create a list from the Species table in the specified species dictionary speciesNames_(specDict_.lookup("species")), mod_spec_names_(speciesNames_.size()), - X_(speciesNames_.size()), //volumeScalarFields + X_(speciesNames_.size()), //volumeScalarFields of molarFractions molarFractions_(speciesNames_.size(),NULL), //the value of molar fractions for every species changeOfSpeciesMass_(speciesNames_.size(),NULL), //the values that are received from DEM with the name of Modified_+species name changeOfSpeciesMassFields_(speciesNames_.size()), //the scalar fields generated with the values from Modified_+species names @@ -125,6 +125,7 @@ species::~species() } // * * * * * * * * * * * * * * * private Member Functions * * * * * * * * * * * * * // + void species::allocateMyArrays() const { double initVal=0.0; @@ -139,25 +140,21 @@ void species::allocateMyArrays() const { particleCloud_.dataExchangeM().allocateArray(molarFractions_[i],initVal,1,"nparticles"); particleCloud_.dataExchangeM().allocateArray(changeOfSpeciesMass_[i],initVal,1,"nparticles"); - } } } void species::reAllocMyArrays() const { - if (particleCloud_.numberOfParticlesChanged()) - { - double initVal=0.0; - particleCloud_.dataExchangeM().allocateArray(partRho_,initVal,1); - particleCloud_.dataExchangeM().allocateArray(partTemp_,initVal,1); - particleCloud_.dataExchangeM().allocateArray(partMolarConc_,initVal,1); + double initVal=0.0; + particleCloud_.dataExchangeM().allocateArray(partRho_,initVal,1); + particleCloud_.dataExchangeM().allocateArray(partTemp_,initVal,1); + particleCloud_.dataExchangeM().allocateArray(partMolarConc_,initVal,1); - for (int i=0; i Xfluid_; scalar voidfraction(1); - Xfluid_.setSize(speciesNames_.size()); scalar molarConcfluid(0); // defining interpolators for T, rho, voidfraction, molarConc @@ -250,53 +243,49 @@ void species::execute() { if(interpolation_) { - vector position = particleCloud_.position(index); - Tfluid = TInterpolator_.interpolate(position,cellI); - rhofluid = rhoInterpolator_.interpolate(position,cellI); - voidfraction = voidfractionInterpolator_.interpolate(position,cellI); - molarConcfluid = molarConcInterpolator_.interpolate(position,cellI); + vector position = particleCloud_.position(index); + Tfluid = TInterpolator_.interpolate(position,cellI); + rhofluid = rhoInterpolator_.interpolate(position,cellI); + voidfraction = voidfractionInterpolator_.interpolate(position,cellI); + molarConcfluid = molarConcInterpolator_.interpolate(position,cellI); } else { - Tfluid = tempField_[cellI]; - rhofluid = rho_[cellI]; - voidfraction = voidfraction_[cellI]; - molarConcfluid = molarConc_[cellI]; - for (int i = 0; i species::Smi (const label i) const diff --git a/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferGunn/heatTransferGunn.C b/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferGunn/heatTransferGunn.C index f81b2cda..3ec830cc 100644 --- a/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferGunn/heatTransferGunn.C +++ b/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferGunn/heatTransferGunn.C @@ -242,6 +242,12 @@ void heatTransferGunn::calcEnergyContribution() // get DEM data particleCloud_.dataExchangeM().getData(partTempName_,"scalar-atom",partTemp_); + if(particleCloud_.cg() > 1.) + { + scaleDia_ = particleCloud_.cg(); + Info << "Heat Transfer Gunn is using scale from liggghts cg = " << scaleDia_ << endl; + } + if(calcPartTempField_) { partTempField_.primitiveFieldRef() = 0.0; @@ -353,18 +359,24 @@ void heatTransferGunn::calcEnergyContribution() partNu_[index][0] = Nup; } - if(particleCloud_.verbose() && index >=0 && index <2) + if(verbose_ && index >=0 && index <2) { - Info << "partHeatFlux = " << partHeatFlux_[index][0] << endl; - Info << "magUr = " << magUr << endl; - Info << "As = " << As << endl; - Info << "muf = " << muf << endl; - Info << "Rep = " << Rep << endl; - Info << "Pr = " << Pr << endl; - Info << "Nup = " << Nup << endl; - Info << "voidfraction = " << voidfraction << endl; - Info << "partTemp_[index][0] = " << partTemp_[index][0] << endl; - Info << "Tfluid = " << Tfluid << endl ; + Pout << "partHeatFlux = " << partHeatFlux_[index][0] << endl; + Pout << "magUr = " << magUr << endl; + Pout << "kf0 = " << kf0_ << endl; + Pout << "Cp = " << Cp_ << endl; + Pout << "rho = " << rho_[cellI] << endl; + Pout << "h = " << h << endl; + Pout << "ds = " << ds << endl; + Pout << "ds_scaled = " << ds_scaled << endl; + Pout << "As = " << As << endl; + Pout << "muf = " << muf << endl; + Pout << "Rep = " << Rep << endl; + Pout << "Pr = " << Pr << endl; + Pout << "Nup = " << Nup << endl; + Pout << "voidfraction = " << voidfraction << endl; + Pout << "partTemp_[index][0] = " << partTemp_[index][0] << endl; + Pout << "Tfluid = " << Tfluid << endl ; } } } @@ -444,6 +456,13 @@ void heatTransferGunn::calcEnergyContribution() } QPartFluid_.correctBoundaryConditions(); + + volScalarField minParticleWeights = particleCloud_.averagingM().UsWeightField(); + Info << "Minimum Particle Weight " << gMin(minParticleWeights) << endl; + Info << "Minimum Particle Temperature: " << gMin(partTempField_) << endl; + Info << "Maximum Particle Temperature: " << gMax(partTempField_) << endl; + Info << "Minimum Fluid Temperature: " << gMin(tempField_) << endl; + Info << "Maximum Fluid Temperature: " << gMax(tempField_) << endl; } void heatTransferGunn::addEnergyContribution(volScalarField& Qsource) const @@ -451,11 +470,11 @@ void heatTransferGunn::addEnergyContribution(volScalarField& Qsource) const Qsource += QPartFluid_; } -void heatTransferGunn::addEnergyCoefficient(volScalarField& Qsource) const +void heatTransferGunn::addEnergyCoefficient(volScalarField& Qcoeff) const { if(implicit_) { - Qsource += QPartFluidCoeff_; + Qcoeff += QPartFluidCoeff_; } } diff --git a/src/lagrangian/cfdemParticle/subModels/energyModel/reactionHeat/reactionHeat.C b/src/lagrangian/cfdemParticle/subModels/energyModel/reactionHeat/reactionHeat.C index 3a243fc7..a5f3e2e1 100644 --- a/src/lagrangian/cfdemParticle/subModels/energyModel/reactionHeat/reactionHeat.C +++ b/src/lagrangian/cfdemParticle/subModels/energyModel/reactionHeat/reactionHeat.C @@ -46,6 +46,7 @@ reactionHeat::reactionHeat energyModel(dict,sm), propsDict_(dict.subDict(typeName + "Props")), interpolation_(propsDict_.lookupOrDefault("interpolation",false)), + verbose_(propsDict_.lookupOrDefault("verbose",false)), mesh_(sm.mesh()), maxSource_(1e30), reactionHeatName_(propsDict_.lookupOrDefault("reactionHeatName","reactionHeat")), @@ -98,6 +99,14 @@ void reactionHeat::calcEnergyContribution() particleCloud_.dataExchangeM().getData(reactionHeatName_,"scalar-atom",reactionHeat_); + for(int index = 0;index < particleCloud_.numberOfParticles(); ++index) + { + if (verbose_ && index>=0 && index < 2) + { + Pout << "reactionHeat = " << reactionHeat_[index][0] << endl; + } + } + reactionHeatField_.primitiveFieldRef() = 0.0; reactionHeatField_.boundaryFieldRef() = 0.0; diff --git a/src/lagrangian/cfdemParticle/subModels/energyModel/reactionHeat/reactionHeat.H b/src/lagrangian/cfdemParticle/subModels/energyModel/reactionHeat/reactionHeat.H index bcd5501e..4ebd7a02 100644 --- a/src/lagrangian/cfdemParticle/subModels/energyModel/reactionHeat/reactionHeat.H +++ b/src/lagrangian/cfdemParticle/subModels/energyModel/reactionHeat/reactionHeat.H @@ -48,6 +48,8 @@ protected: bool interpolation_; + bool verbose_; + const fvMesh& mesh_; scalar maxSource_; diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/Allclean.sh b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/Allclean.sh new file mode 100755 index 00000000..665e1d5d --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/Allclean.sh @@ -0,0 +1,15 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cd CFD +cleanCase +cd - + +rm -f log* + +rm ./DEM/post/dump* + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/Allrun.sh b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/Allrun.sh new file mode 100755 index 00000000..c3465bdf --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/Allrun.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +#===================================================================# +# allrun script for testcase +# M. Efe Kinaci - Sep 2018 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +export casePath + +cd $casePath/CFD/ +blockMesh + +if [ -f "$casePath/DEM/post/restart/liggghts.restart" ]; then + echo "LIGGGHTS init was run before - using existing restart file" +else + #- run DEM in new terminal + $casePath/parDEMrun.sh +fi + +echo "Run Simulation" +bash $casePath/parCFDDEMrun.sh diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/CO b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/CO new file mode 100644 index 00000000..89756f9a --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/CO @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object CO; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.3801847328; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.3801847328; + } + + outlet + { + type zeroGradient; +/* type inletOutlet; + value $internalField; + inletValue uniform 0.;*/ + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/CO2 b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/CO2 new file mode 100644 index 00000000..df317123 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/CO2 @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object CO2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.4376348444; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.4376348444; + } + + outlet + { + type zeroGradient; + /*type inletOutlet; + value $internalField; + inletValue uniform 0.;*/ + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/H2 b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/H2 new file mode 100644 index 00000000..5cfb0ef4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/H2 @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object H2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.0116562393; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.0116562393; + } + + outlet + { + type zeroGradient; +/* type inletOutlet; + value $internalField; + inletValue uniform 0.; */ + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/H2O b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/H2O new file mode 100644 index 00000000..0b6320d0 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/H2O @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object H2O; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.0444583296; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.0444583296; + } + + outlet + { + type zeroGradient; +/* type inletOutlet; + value $internalField; + inletValue uniform 0.; */ + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/Ksl b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/Ksl new file mode 100644 index 00000000..86eabd42 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/Ksl @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object Ksl; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -3 -1 0 0 0 0]; + +internalField uniform 0.0; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/N2 b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/N2 new file mode 100644 index 00000000..26edacef --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/N2 @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object N2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.1260658538; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.1260658538; + } + + outlet + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/Qsource b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/Qsource new file mode 100644 index 00000000..f8bb2a1c --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/Qsource @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object Qsource; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -3 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/T b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/T new file mode 100644 index 00000000..2f2c561e --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/T @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 1023.15; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 1023.15; + } + + outlet + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/Tsource b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/Tsource new file mode 100644 index 00000000..c6c7ceaf --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/Tsource @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object Tsource; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 1 0 0 0]; + +// Tsource[K/s] = q[W/m3]/(rho[kg/m3]*cp[W*s/(kg*K)]) +// Q=10 W +// V=0.01 m3 +// q=1000 W/m3 +// cp=1000 +// rho=1 +// --> Tsource = 1 + +internalField uniform 0; + +boundaryField +{ + side-walls + { + type zeroGradient; + value uniform 0; + } + + inlet + { + type zeroGradient; + value uniform 0; + } + outlet + { + type zeroGradient; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/U b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/U new file mode 100644 index 00000000..18a8f0e7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/U @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0.0 0.0 0.0); + +boundaryField +{ + side-walls + { + type noSlip; + } + inlet + { + type fixedValue; + value uniform (0.0 0.25 0.0); +/* type interstitialInletVelocity; + inletVelocity uniform (0 0.25 0); + alpha voidfraction; + value $internalField; */ + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/Us b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/Us new file mode 100644 index 00000000..541a2ec5 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/Us @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object Us; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/addSource b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/addSource new file mode 100644 index 00000000..c4319a04 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/addSource @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object addSource; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -3 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + side-walls + { + type zeroGradient; + value uniform 0; + } + + inlet + { + type zeroGradient; + value uniform 0; + } + outlet + { + type zeroGradient; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/alphat b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/alphat new file mode 100644 index 00000000..8106e0b0 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/alphat @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/dSauter b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/dSauter new file mode 100644 index 00000000..df79d7e5 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/dSauter @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object dSauter; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 0 0 0 0 0]; + +internalField uniform 0.00022; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/dSmoothing b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/dSmoothing new file mode 100644 index 00000000..501d41e8 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/dSmoothing @@ -0,0 +1,38 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object dSmoothing; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/epsilon b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/epsilon new file mode 100644 index 00000000..dad5dac8 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/epsilon @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 0.003; + +boundaryField +{ + side-walls + { + type epsilonWallFunction; + value uniform 0.003; + } + inlet + { + type zeroGradient; + } + outlet + { + /*type inletOutlet; + inletValue uniform 0.003; + value uniform 0.003;*/ + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/gradT b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/gradT new file mode 100644 index 00000000..1080d101 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/gradT @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object gradT; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 -1 0 1 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/k b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/k new file mode 100644 index 00000000..ce1670ab --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/k @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.001; + +boundaryField +{ + side-walls + { + type kqRWallFunction; + value uniform 0.001; + } + inlet + { + type zeroGradient; + } + outlet + { + /*type inletOutlet; + inletValue uniform 0.001; + value uniform 0.001;*/ + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/mut b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/mut new file mode 100644 index 00000000..f90a472b --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/mut @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object mut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/nut b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/nut new file mode 100644 index 00000000..e76a04cf --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/nut @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + side-walls + { + type fixedValue; + value uniform 0; + } + + inlet + { + type calculated; + value uniform 0; + } + + outlet + { + type calculated; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/p b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/p new file mode 100644 index 00000000..d4f7eccc --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/p @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 140000; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 140000; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/p.org b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/p.org new file mode 100644 index 00000000..84751b08 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/p.org @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 140000; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 140000; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/rho b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/rho new file mode 100644 index 00000000..95e357af --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/rho @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object rho; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -3 0 0 0 0 0]; + +internalField uniform 1.58; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/voidfraction b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/voidfraction new file mode 100644 index 00000000..6365c754 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/voidfraction @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object voidfraction; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + side-walls + { + type zeroGradient; + } + + inlet + { + //type zeroGradient; + type fixedValue; + value uniform 1; + } + + outlet + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/wallQFactor b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/wallQFactor new file mode 100644 index 00000000..71d0d783 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/0/wallQFactor @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object wallQFactor; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + side-walls + { + type fixedValue; + value uniform 1; + } + + inlet + { + type fixedValue; + value uniform 1; + } + + outlet + { + type fixedValue; + value uniform 1; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/chemistryProperties b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/chemistryProperties new file mode 100644 index 00000000..ded6fd22 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/chemistryProperties @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object chemistryProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +chemistry off; //on; + +/* +chemistryType +{ + chemistrySolver noChemistrySolver; + chemistryThermo rho; +} + +initialChemicalTimeStep 1e-07; + +/* +EulerImplicitCoeffs +{ + cTauChem 0.05; + equilibriumRateLimiter off; +} + +odeCoeffs +{ + solver seulex; + eps 0.05; +} */ + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/combustionProperties b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/combustionProperties new file mode 100644 index 00000000..c5b934a4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/combustionProperties @@ -0,0 +1,34 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object combustionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +combustionModel noCombustion; //PaSR; //PaSR; + +active false; //true; + +noCombustionCoeffs +{ +} + + +PaSRCoeffs +{ + Cmix 1.0; + turbulentReaction off; +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/couplingProperties b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/couplingProperties new file mode 100644 index 00000000..2532620b --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/couplingProperties @@ -0,0 +1,355 @@ +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.4 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + + +FoamFile +{ + version 2.0; + format ascii; + + root ""; + case ""; + instance ""; + local ""; + + class dictionary; + object couplingProperties; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +//===========================================================================// +// sub-models & settings + +modelType "A"; // A or B + +couplingInterval 50; + +voidFractionModel divided; + +locateModel engine; //turboEngineM2M;// + +meshMotionModel noMeshMotion; + +regionModel allRegion; + +IOModel basicIO; + +probeModel off; + +dataExchangeModel twoWayMPI;//twoWayM2M;//twoWayFiles;//oneWayVTK;// + +averagingModel dense; + +clockModel off; //standardClock;// + +smoothingModel off;// localPSizeDiffSmoothing;// constDiffSmoothing; // + +forceModels +( + GidaspowDrag + gradPForce + viscForce +); + +energyModels +( + heatTransferGunn + reactionHeat +); + +thermCondModel SyamlalThermCond; + +chemistryModels +( + species + diffusionCoefficients + massTransferCoeff + //off +); + +momCoupleModels +( + implicitCouple +); + +turbulenceModelType "turbulenceProperties";//"LESProperties";// + +//===========================================================================// +// sub-model properties +reactionHeatProps +{ + reactionHeatName "reactionHeat"; + verbose false; +} + +heatTransferGunnProps +{ + partTempName "Temp"; + partHeatFluxName "convectiveHeatFlux"; + calcPartTempField true; + partRefTemp 1023; + implicit true; + verbose false; + interpolation false; +} + +speciesProps +{ + ChemistryFile "$FOAM_CASE/constant/foam.inp"; + Nevery 1; + verbose false; + interpolation false; +} + +diffusionCoefficientsProps +{ + verbose false; + interpolation false; + ChemistryFile "$FOAM_CASE/constant/foam.inp"; + diffusantGasNames ( CO + H2 + ); +} + +massTransferCoeffProps +{ + verbose false; + interpolation false; +} + +reactantPerParticleProps +{ +} + + +SyamlalThermCondProps +{ + voidfractionFieldName "voidfraction"; + rhoFieldName "rho"; +} + +LaEuScalarTempProps +{ + velFieldName "U"; + tempFieldName "T"; + voidfractionFieldName "voidfraction"; + partTempName "Temp"; + partHeatFluxName "convectiveHeatFlux"; + lambda 0.0256; + Cp 1007; +} + +localPSizeDiffSmoothingProps +{ + lowerLimit 0.1; + upperLimit 1e10; + dSmoothingLength 1.5e-3; + Csmoothing 1.0; +} + +constDiffSmoothingProps +{ + lowerLimit 0.1; + upperLimit 1e10; + smoothingLength 1.5e-3; +} + +implicitCoupleProps +{ + velFieldName "U"; + granVelFieldName "Us"; + voidfractionFieldName "voidfraction"; +} + +ArchimedesProps +{ + gravityFieldName "g"; +} + +gradPForceProps +{ + pFieldName "p"; + voidfractionFieldName "voidfraction"; + velocityFieldName "U"; + interpolation true; +} + +viscForceProps +{ + velocityFieldName "U"; + interpolation true; +} + +volWeightedAverageProps +{ + scalarFieldNames + ( + voidfraction + ); + vectorFieldNames + ( + ); + upperThreshold 0.999; + lowerThreshold 0; + verbose true; +} + +totalMomentumExchangeProps +{ + implicitMomExFieldName "Ksl"; + explicitMomExFieldName "none"; + fluidVelFieldName "U"; + granVelFieldName "Us"; +} + +GidaspowDragProps +{ + verbose true; + velFieldName "U"; + granVelFieldName "Us"; + voidfractionFieldName "voidfraction"; + interpolation true; + phi 1; +} + +BeetstraDragProps +{ + velFieldName "U"; + granVelFieldName "Us"; + gravityFieldName "g"; + voidfractionFieldName "voidfraction"; + interpolation false; + useFilteredDragModel ; + useParcelSizeDependentFilteredDrag ; + rhoP 4630.; + dPrim 0.00022; + rho 1.58; + nuf 1.126e-05; + g 9.81; + k 0.05; + aLimit 0.0; + verbose false; +} + +DEMbasedDragProps +{ + velFieldName "U"; + voidfractionFieldName "voidfraction"; +} + +DiFeliceDragProps +{ + //verbose true; + velFieldName "U"; + voidfractionFieldName "voidfraction"; + granVelFieldName "Us"; + interpolation false; +} + +KochHillDragProps +{ + verbose true; + velFieldName "U"; + voidfractionFieldName "voidfraction"; + interpolation false; + //forceSubModels + //( + // ImExCorr + //); + implForceDEM true; + //implForceDEMaccumulated true; + //explicitCorr true; +} + +RongDragProps +{ + verbose true; + velFieldName "U"; + voidfractionFieldName "voidfraction"; + interpolation false; + implForceDEM true; + implForceDEMaccumulated true; + granVelFieldName "Us"; +} + +virtualMassForceProps +{ + velFieldName "U"; +} + +particleCellVolumeProps +{ + upperThreshold 0.999; + lowerThreshold 0.; + verbose true; +} + +fieldStoreProps +{ + scalarFieldNames + ( + ); + + vectorFieldNames + ( + "U" + ); +} + +oneWayVTKProps +{ + couplingFilename "vtk_out%4.4d.vtk"; + maxNumberOfParticles 30000; +} + +twoWayFilesProps +{ + maxNumberOfParticles 10100; +} + +centreProps +{ + alphaMin 0.1; +} + +engineProps +{ + treeSearch true; +} + +turboEngineProps +{ + treeSearch true; +} + +turboEngineM2MProps +{ + turboEngineProps + { + treeSearch true; + } +} + +dividedProps +{ + alphaMin 0.01; + scaleUpVol 1.0; +} + +twoWayMPIProps +{ + liggghtsPath "../DEM/in.liggghts_run"; +} + +twoWayM2MProps +{ + maxNumberOfParticles 10100; + liggghtsPath "../DEM/in.liggghts_run"; +} +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/foam.dat b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/foam.dat new file mode 100644 index 00000000..ff3380e4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/foam.dat @@ -0,0 +1,111 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object foam.dat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +H2 +{ + specie + { + nMoles 1; + molWeight 2.02; + } + thermodynamics + { + Cp 15016.8; + Hf 2.544e+06; + } + transport + { + mu 8.42e-05; + Pr 0.76; + } +} +H2O +{ + specie + { + nMoles 1; + molWeight 18.015; + } + thermodynamics + { + Cp 2304.1; + Hf 2.544e+06; + } + transport + { + mu 1.7e-05; + Pr 0.99; + } +} + +CO +{ + specie + { + nMoles 1; + molWeight 28.01; + } + thermodynamics + { + Cp 1189.14; + Hf 2.544e+06; + } + transport + { + mu 1.66e-05; + Pr 0.792; + } +} + +CO2 +{ + specie + { + nMoles 1; + molWeight 44.01; + } + thermodynamics + { + Cp 1239.98; + Hf 2.544e+06; + } + transport + { + mu 1.37e-05; + Pr 0.69; + } +} + +N2 +{ + specie + { + nMoles 1; + molWeight 28.0134; + } + thermodynamics + { + Cp 1171.6; + Hf 2.544e+06; + } + transport + { + mu 1.66e-05; + Pr 0.69; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/foam.inp b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/foam.inp new file mode 100644 index 00000000..bc4eead8 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/foam.inp @@ -0,0 +1,14 @@ +species +( + CO + CO2 + H2 + H2O + N2 +); + +reactions +{ +} + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/g b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/g new file mode 100644 index 00000000..abca4e14 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/g @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value ( 0 -9.81 0 ); + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/liggghtsCommands b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/liggghtsCommands new file mode 100644 index 00000000..ea16dec7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/liggghtsCommands @@ -0,0 +1,43 @@ +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.4 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + + +FoamFile +{ + version 2.0; + format ascii; + + root ""; + case ""; + instance ""; + local ""; + + class dictionary; + object liggghtsCommands; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +liggghtsCommandModels +( + runLiggghts + writeLiggghts +); +// ************************************************************************* // + +/*runLiggghtsProps +{ + preNo false; +}*/ + +writeLiggghtsProps +{ + writeLast on; + writeName "post/restart/liggghts.restartCFDEM"; + overwrite on; +} diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/polyMesh/blockMeshDict b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/polyMesh/blockMeshDict new file mode 100644 index 00000000..49d6aa87 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/polyMesh/blockMeshDict @@ -0,0 +1,144 @@ +// blockMesh : Block mesh description file +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant/polyMesh"; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + meshGenApp blockMesh; + convertToMeters 1.0; + + //68 mm column diameter + //150 mm length + + + //Width of middle square section + + //how many cells in the square section + //how many cells from square section to perimeter + // how many cells from top to bottom + + vertices + ( + ( 0.017 0.0 0.017) // Vertex fiveoclocksqb = 0 + (-0.017 0.0 0.017) // Vertex sevenoclocksqb = 1 + (-0.017 0.0 -0.017) // Vertex elevenoclocksqb = 2 + ( 0.017 0.0 -0.017) // Vertex oneoclocksqb = 3 + + ( 0.0240416305819187 0.0 0.0240416305387665) // Vertex fiveoclockcb = 4 + (-0.0240416305819187 0.0 0.0240416305387665) // Vertex sevenoclockcb = 5 + (-0.0240416305819187 0.0 -0.0240416305387665) // Vertex elevenoclockcb = 6 + ( 0.0240416305819187 0.0 -0.0240416305387665) // Vertex oneoclockcb = 7 + + ( 0.017 0.150 0.017) // Vertex fiveoclocksqt = 8 + (-0.017 0.150 0.017) // Vertex sevenoclocksqt = 9 + (-0.017 0.150 -0.017) // Vertex elevenoclocksqt = 10 + ( 0.017 0.150 -0.017) // Vertex oneoclocksqt = 11 + + ( 0.0240416305819187 0.150 0.0240416305387665) // Vertex fiveoclockct = 12 + (-0.0240416305819187 0.150 0.0240416305387665) // Vertex sevenoclockct = 13 + (-0.0240416305819187 0.150 -0.0240416305387665) // Vertex elevenoclockct = 14 + ( 0.0240416305819187 0.150 -0.0240416305387665) // Vertex oneoclockct = 15 + ); + + blocks + ( + //square block + hex ( + 1 0 3 2 + 9 8 11 10 + ) + (7 7 24) + simpleGrading (1 1 1) + + //slice1 + hex ( + 5 4 0 1 + 13 12 8 9 + ) + (7 3 24) + simpleGrading (1 1 1) + + //slice2 + hex ( + 1 2 6 5 + 9 10 14 13 + ) + (7 3 24) + simpleGrading (1 1 1) + + //slice3 + hex ( + 2 3 7 6 + 10 11 15 14 + ) + (7 3 24) + simpleGrading (1 1 1) + + //slice4 + hex ( + 3 0 4 7 + 11 8 12 15 + ) + (7 3 24) + simpleGrading (1 1 1) + + ); + + + //create the quarter circles + edges + ( + arc 4 5 (0.0 0.0 0.034) + arc 5 6 (-0.034 0.0 0.0) + arc 6 7 (0.0 0.0 -0.034) + arc 7 4 (0.034 0.0 0.0) + + arc 12 13 (0.0 0.150 0.034) + arc 13 14 (-0.034 0.150 0.0) + arc 14 15 (0.0 0.150 -0.034) + arc 15 12 (0.034 0.150 0.0) + + ); + + patches + ( + patch inlet + ( + (0 3 2 1) + (0 4 7 3) + (4 0 1 5) + (1 2 6 5) + (3 7 6 2) + ) + + patch outlet + ( + (8 11 10 9) + (8 12 15 11) + (12 8 9 13) + (9 10 14 13) + (11 15 14 10) + ) + + wall side-walls + ( + (5 4 12 13) + (5 13 14 6) + (6 14 15 7) + (7 15 12 4) + ) + +); + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/polyMesh/cylinderMesh.m4 b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/polyMesh/cylinderMesh.m4 new file mode 100644 index 00000000..718f7f83 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/polyMesh/cylinderMesh.m4 @@ -0,0 +1,153 @@ +// blockMesh : Block mesh description file +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant/polyMesh"; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + + + meshGenApp blockMesh; + convertToMeters 1.0; + + define(D, 0.068) //68 mm column diameter + define(L, 0.150) //150 mm length + define(PI, 3.14159265) + + define(R, calc(D/2)) + define(CW, calc(D/4)) //Width of middle square section + + define(CX, calc(R*cos((PI/180)*45))) + define(CZ, calc(R*sin((PI/180)*45))) + + define(NPS, 7) //how many cells in the square section + define(NPD, 3) //how many cells from square section to perimeter + define(NPY, 24) // how many cells from top to bottom + + vertices + ( + ( CW 0.0 CW) vlabel(fiveoclocksqb) + (-CW 0.0 CW) vlabel(sevenoclocksqb) + (-CW 0.0 -CW) vlabel(elevenoclocksqb) + ( CW 0.0 -CW) vlabel(oneoclocksqb) + + ( CX 0.0 CZ) vlabel(fiveoclockcb) + (-CX 0.0 CZ) vlabel(sevenoclockcb) + (-CX 0.0 -CZ) vlabel(elevenoclockcb) + ( CX 0.0 -CZ) vlabel(oneoclockcb) + + ( CW L CW) vlabel(fiveoclocksqt) + (-CW L CW) vlabel(sevenoclocksqt) + (-CW L -CW) vlabel(elevenoclocksqt) + ( CW L -CW) vlabel(oneoclocksqt) + + ( CX L CZ) vlabel(fiveoclockct) + (-CX L CZ) vlabel(sevenoclockct) + (-CX L -CZ) vlabel(elevenoclockct) + ( CX L -CZ) vlabel(oneoclockct) + ); + + blocks + ( + //square block + hex ( + sevenoclocksqb fiveoclocksqb oneoclocksqb elevenoclocksqb + sevenoclocksqt fiveoclocksqt oneoclocksqt elevenoclocksqt + ) + (NPS NPS NPY) + simpleGrading (1 1 1) + + //slice1 + hex ( + sevenoclockcb fiveoclockcb fiveoclocksqb sevenoclocksqb + sevenoclockct fiveoclockct fiveoclocksqt sevenoclocksqt + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + //slice2 + hex ( + sevenoclocksqb elevenoclocksqb elevenoclockcb sevenoclockcb + sevenoclocksqt elevenoclocksqt elevenoclockct sevenoclockct + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + //slice3 + hex ( + elevenoclocksqb oneoclocksqb oneoclockcb elevenoclockcb + elevenoclocksqt oneoclocksqt oneoclockct elevenoclockct + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + //slice4 + hex ( + oneoclocksqb fiveoclocksqb fiveoclockcb oneoclockcb + oneoclocksqt fiveoclocksqt fiveoclockct oneoclockct + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + ); + + + //create the quarter circles + edges + ( + arc fiveoclockcb sevenoclockcb (0.0 0.0 R) + arc sevenoclockcb elevenoclockcb (-R 0.0 0.0) + arc elevenoclockcb oneoclockcb (0.0 0.0 -R) + arc oneoclockcb fiveoclockcb (R 0.0 0.0) + + arc fiveoclockct sevenoclockct (0.0 L R) + arc sevenoclockct elevenoclockct (-R L 0.0) + arc elevenoclockct oneoclockct (0.0 L -R) + arc oneoclockct fiveoclockct (R L 0.0) + + ); + + patches + ( + patch inlet + ( + (fiveoclocksqb oneoclocksqb elevenoclocksqb sevenoclocksqb) + (fiveoclocksqb fiveoclockcb oneoclockcb oneoclocksqb) + (fiveoclockcb fiveoclocksqb sevenoclocksqb sevenoclockcb) + (sevenoclocksqb elevenoclocksqb elevenoclockcb sevenoclockcb) + (oneoclocksqb oneoclockcb elevenoclockcb elevenoclocksqb) + ) + + patch outlet + ( + (fiveoclocksqt oneoclocksqt elevenoclocksqt sevenoclocksqt) + (fiveoclocksqt fiveoclockct oneoclockct oneoclocksqt) + (fiveoclockct fiveoclocksqt sevenoclocksqt sevenoclockct) + (sevenoclocksqt elevenoclocksqt elevenoclockct sevenoclockct) + (oneoclocksqt oneoclockct elevenoclockct elevenoclocksqt) + ) + + wall side-walls + ( + (sevenoclockcb fiveoclockcb fiveoclockct sevenoclockct) + (sevenoclockcb sevenoclockct elevenoclockct elevenoclockcb) + (elevenoclockcb elevenoclockct oneoclockct oneoclockcb) + (oneoclockcb oneoclockct fiveoclockct fiveoclockcb) + ) + +); + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/thermophysicalProperties b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/thermophysicalProperties new file mode 100644 index 00000000..be7afe88 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/thermophysicalProperties @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; //hePsiThermo; + mixture reactingMixture; //species and reactions are listed in chemistry file + transport const; //sutherland; //calcualtes viscosity as a function of temperature from Stuherland coefficient As and Ts + thermo hConst; //janaf; + equationOfState perfectGas; + energy sensibleInternalEnergy; //sensibleEnthalpy; + specie specie; +} + +chemistryReader foamChemistryReader; + +foamChemistryThermoFile "$FOAM_CASE/constant/foam.dat"; + +foamChemistryFile "$FOAM_CASE/constant/foam.inp"; + +inertSpecie N2; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/transportProperties b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/transportProperties new file mode 100644 index 00000000..addab824 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/transportProperties @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu nu [ 0 2 -1 0 0 0 0 ] 1.126e-05; + +kf kf [ 1 1 -3 -1 0 0 0 ] 0.0507; // comes from energy model + +Cp Cp [ 0 2 -2 -1 0 0 0 ] 1118.15; // comes from energy model + + +// ******* Non-Newtonian transport properties ************************ // +/*CrossPowerLawCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + m m [ 0 0 1 0 0 0 0 ] 1; + n n [ 0 0 0 0 0 0 0 ] 1; +} + +BirdCarreauCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + k k [ 0 0 1 0 0 0 0 ] 0; + n n [ 0 0 0 0 0 0 0 ] 1; +} +*/ +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/turbulenceProperties b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/turbulenceProperties new file mode 100644 index 00000000..d1156961 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/constant/turbulenceProperties @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/controlDict b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/controlDict new file mode 100644 index 00000000..9b110527 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/controlDict @@ -0,0 +1,229 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application cfdemSolverRhoPimpleChem; + +startFrom startTime; + +startTime 0.0; + +stopAt endTime; + +endTime 120.0; + +deltaT 0.00025; + +writeControl runTime; //timeStep; + +writeInterval 0.25; //5000; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + +adjustTimeStep no; + +maxCo 0.5; + +maxDeltaT 0.1; + + +// ************************************************************************* // +libs +( + "libfieldFunctionObjects.so" +); + +functions +{ + moleFrac + { + type rhoReactionThermoMoleFractions; + } + + probes1 + { + type probes; + + functionObjectLibs ("libsampling.so"); + + #include "probesDict"; + } + + + fieldMinMax_T + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (T); + // Report the location of the field extrema + location yes; + // Type of extrema for rank > 0 primitives + mode magnitude; // magnitude | component + } + + fieldMinMax_Cpv + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (Cpv); + // Report the location of the field extrema + location yes; + // Type of extrema for rank > 0 primitives + mode magnitude; // magnitude | component + } + + fieldMinMax_partTemp + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (partTemp); + location yes; + mode magnitude; + } + + globalMassFrac + { + type volRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep;//outputTime; + writeInterval 1; + log true; + writeFields false; + regionType all; + name c0; + operation weightedVolAverage; + weightField rhoeps; + fields + ( + H2 + H2O + CO2 + CO + N2 + ); + } + + globalMass + { + type volRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep;//outputTime; + writeInterval 1; + log true; + writeFields false; + regionType all; + name c1; + operation volIntegrate; + fields + ( + rhoeps + rho + ); + } + + inflow_GasSpecies + { + type surfaceRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep; + writeInterval 100; + log true; + // Output field values as well + writeFields false; + regionType patch; + name inlet; + operation sum;//areaIntegrate; + + fields + ( + CO + CO2 + H2 + H2O + N2 + ); + } + + inflow_phi + { + type surfaceRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep; + writeInterval 100; + log true; + // Output field values as well + writeFields false; + regionType patch; + name inlet; + operation sum;//areaIntegrate; + + fields + ( + phi + ); + } + + inflow_U + { + type surfaceRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep; + writeInterval 100; + log true; + // Output field values as well + writeFields false; + regionType patch; + name inlet; + operation sum;//areaIntegrate; + + fields + ( + U + ); + } + + outflow_GasSpecies + { + $inflow_GasSpecies; + name outlet; + } + + outflow_phi + { + $inflow_phi; + name outlet; + } + + outflow_U + { + $inflow_U; + name outlet; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/controlDict_test b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/controlDict_test new file mode 100644 index 00000000..392d4c15 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/controlDict_test @@ -0,0 +1,229 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application cfdemSolverRhoPimpleChem; + +startFrom startTime; + +startTime 0.0; + +stopAt endTime; + +endTime 0.12; + +deltaT 0.00025; + +writeControl runTime; //timeStep; + +writeInterval 0.02; //5000; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + +adjustTimeStep no; + +maxCo 0.5; + +maxDeltaT 0.1; + + +// ************************************************************************* // +libs +( + "libfieldFunctionObjects.so" +); + +functions +{ + moleFrac + { + type rhoReactionThermoMoleFractions; + } + + probes1 + { + type probes; + + functionObjectLibs ("libsampling.so"); + + #include "probesDict"; + } + + + fieldMinMax_T + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (T); + // Report the location of the field extrema + location yes; + // Type of extrema for rank > 0 primitives + mode magnitude; // magnitude | component + } + + fieldMinMax_Cpv + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (Cpv); + // Report the location of the field extrema + location yes; + // Type of extrema for rank > 0 primitives + mode magnitude; // magnitude | component + } + + fieldMinMax_partTemp + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (partTemp); + location yes; + mode magnitude; + } + + globalMassFrac + { + type volRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep;//outputTime; + writeInterval 1; + log true; + writeFields false; + regionType all; + name c0; + operation weightedVolAverage; + weightField rhoeps; + fields + ( + H2 + H2O + CO2 + CO + N2 + ); + } + + globalMass + { + type volRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep;//outputTime; + writeInterval 1; + log true; + writeFields false; + regionType all; + name c1; + operation volIntegrate; + fields + ( + rhoeps + rho + ); + } + + inflow_GasSpecies + { + type surfaceRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep; + writeInterval 100; + log true; + // Output field values as well + writeFields false; + regionType patch; + name inlet; + operation sum;//areaIntegrate; + + fields + ( + CO + CO2 + H2 + H2O + N2 + ); + } + + inflow_phi + { + type surfaceRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep; + writeInterval 100; + log true; + // Output field values as well + writeFields false; + regionType patch; + name inlet; + operation sum;//areaIntegrate; + + fields + ( + phi + ); + } + + inflow_U + { + type surfaceRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep; + writeInterval 100; + log true; + // Output field values as well + writeFields false; + regionType patch; + name inlet; + operation sum;//areaIntegrate; + + fields + ( + U + ); + } + + outflow_GasSpecies + { + $inflow_GasSpecies; + name outlet; + } + + outflow_phi + { + $inflow_phi; + name outlet; + } + + outflow_U + { + $inflow_U; + name outlet; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/decomposeParDict b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/decomposeParDict new file mode 100644 index 00000000..4a35b543 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/decomposeParDict @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 4; + +//method scotch; +method simple; + +simpleCoeffs +{ + n (2 1 2); + delta 0.001; +} + +hierarchicalCoeffs +{ + n ( 1 1 1 ); + delta 0.001; + order xyz; +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots ( ); + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/fvOptions b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/fvOptions new file mode 100644 index 00000000..5cec3738 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/fvOptions @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvOptions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +limitedTemperature +{ + type limitTemperature; + active yes; + limitTemperatureCoeffs + { + active yes; + selectionMode all; + Tmin 1020; + Tmax 1500; + } +} \ No newline at end of file diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/fvSchemes b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/fvSchemes new file mode 100644 index 00000000..970b6881 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/fvSchemes @@ -0,0 +1,83 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(p) cellMDLimited leastSquares 0.5; + grad(U) cellMDLimited leastSquares 0.5; //cellLimited Gauss linear 1; // + grad(h) cellMDLimited leastSquares 0.5; + grad(e) cellMDLimited leastSquares 0.5; +} + +divSchemes +{ + default Gauss linear; + + div(phi,U) Gauss limitedLinear 1; //Gauss linear; //Gauss limitedLinear 1; // //Gauss limitedLinearV 1; // + div(phid,p) Gauss limitedLinear 1; //Gauss upwind; //Gauss limitedLinearV 1; + div(phi,K) Gauss limitedLinear 1; + div(phi,h) Gauss limitedLinear 1; //Gauss upwind; + div(phi,k) Gauss limitedLinear 1; //Gauss upwind; + div(phi,epsilon) Gauss limitedLinear 1; //Gauss upwind; + div(U) Gauss limitedLinear 1; + div(phi,Yi_h) Gauss multivariateSelection + { + CO limitedLinear01 1; + H2 limitedLinear01 1; + N2 limitedLinear01 1; + H2O limitedLinear01 1; + CO2 limitedLinear01 1; + h limitedLinear 1; + e limitedLinear 1; + } + // div((muEff*dev2(T(grad(U))))) Gauss linear; + div((viscousTerm*dev2(grad(U).T()))) Gauss linear; + div((thermo:mu*dev(grad(U).T()))) Gauss linear; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(phi,T) Gauss limitedLinear 1; +} + +laplacianSchemes +{ + default Gauss linear corrected; //Gauss linear orthogonal; +} + +interpolationSchemes +{ + default linear; + interpolate(U) linear; +} + +snGradSchemes +{ + default corrected; //orthogonal; +} + +fluxRequired +{ + default no; + p ; +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/fvSolution b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/fvSolution new file mode 100644 index 00000000..00d5f329 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/fvSolution @@ -0,0 +1,132 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +solvers +{ + p + { + solver PCG; + preconditioner DIC; + tolerance 1e-6; + relTol 0.01; + /*solver GAMG; + tolerance 1e-06; + relTol 0.01; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + cacheAgglomeration on; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; */ + } + + pFinal + { + $p; + tolerance 1e-06; + relTol 0; + } + + "(rho|G)" + { + solver PCG; + preconditioner DIC; + tolerance 1e-6; + relTol 0.01; + /*solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-6; + relTol 0.1; + nSweeps 3;*/ + } + + "(rho|G)Final" + { + $rho; + tolerance 1e-06; + relTol 0; + } + + "(U|h|e|R|k|epsilon)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + maxIter 100; + } + + "(U|h|e|R|k|epsilon)Final" + { + $U; + tolerance 1e-05; + relTol 0; + } + + "(Yi|CO|CO2|H2|H2O|N2)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-06; + relTol 0.01; + maxIter 100; + } + + "(Yi|CO|CO2|H2|H2O|N2)Final" + { + $Yi; + tolerance 1e-06; + relTol 0; + maxIter 100; + } + + T + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-8; + relTol 0; + } +} + +PIMPLE +{ + momentumPredictor yes; + nOuterCorrectors 5; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + rhoMin rhoMin [ 1 -3 0 0 0 ] 0.4; + rhoMax rhoMax [ 1 -3 0 0 0 ] 2.0; +} + +relaxationFactors +{ + fields + { + T 0.5; + "(Yi|CO|CO2|H2|H2O|N2)" 0.6; + p 0.6; + } + equations + { + ".*" 0.8; + "(h|e).*" 0.5; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/probesDict b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/probesDict new file mode 100644 index 00000000..f956f8cf --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/CFD/system/probesDict @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \ / O peration | Version: 2.1.x | +| \ / A nd | Web: www.OpenFOAM.org | +| \/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object probesDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + + +fields +( + rho + p + T + Cpv + N2 + CO2 + CO + H2 + H2O + ModSpeciesMassField_N2 + ModSpeciesMassField_CO2 + ModSpeciesMassField_CO + ModSpeciesMassField_H2 + ModSpeciesMassField_H2O + X_CO + X_CO2 + X_H2 + X_N2 + X_H2O + X_N2 + +); + +writeControl timeStep; +writeInterval 10000; + + +// Locations to be probed. +probeLocations +( + (0.03 0.025 0.03) + (0.03 0.05 0.03) + (0.03 0.075 0.03) + (0.03 0.09 0.03) + (0.03 0.12 0.03) +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/DEM/in.liggghts_init b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/DEM/in.liggghts_init new file mode 100644 index 00000000..6fb9060f --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/DEM/in.liggghts_init @@ -0,0 +1,85 @@ +# Particle insertion into domain +coarsegraining 7.0 model_check error +atom_style granular +atom_modify map array + +communicate single vel yes +boundary f f f +newton off + +units si +processors * 1 2 + +region reg block -0.034 0.034 0.000 0.15 -0.034 0.034 +create_box 2 reg + +neighbor 1e-4 bin +neigh_modify delay 0 + +# Material properties required for granular pair styles +fix m1 all property/global youngsModulus peratomtype 5.e6 5.e6 +fix m2 all property/global poissonsRatio peratomtype 0.45 0.45 +fix m3 all property/global coefficientRestitution peratomtypepair 2 0.3 0.3 0.3 0.3 +fix m4 all property/global coefficientFriction peratomtypepair 2 0.5 0.5 0.5 0.5 + +# pair style +pair_style gran model hertz tangential history +pair_coeff * * + +# timestep, gravity +timestep 1e-6 +fix gravi all gravity 9.81 vector 0.0 -1.0 0.0 + +# walls +fix zwalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.000 +fix zwalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.15 +fix cylwalls all wall/gran model hertz tangential history primitive type 1 ycylinder 0.034 0. 0. + +# particle distributions and insertion +region insreg1 cylinder y 0.0 0.0 0.034 0.00 0.15 units box + +#insert Quartz particles +fix pts5 all particletemplate/sphere 61 atom_type 2 density constant 2630 radius constant 0.00025 +fix pdd2 all particledistribution/discrete 1 1 pts5 1.0 + +#insert iron-ore range +fix pts1 all particletemplate/sphere 21 atom_type 1 density constant 4300 radius constant 0.000375 +fix pts2 all particletemplate/sphere 31 atom_type 1 density constant 4300 radius constant 0.000188 +fix pts3 all particletemplate/sphere 41 atom_type 1 density constant 4300 radius constant 0.000125 +fix pts4 all particletemplate/sphere 51 atom_type 1 density constant 4300 radius constant 6.25E-05 + +fix pdd1 all particledistribution/discrete 1 4 pts1 0.228 pts2 0.286 pts3 0.332 pts4 0.154 + +fix ts_check all check/timestep/gran 10 0.1 0.1 + +# apply nve integration to all particles that are inserted as single particles +fix integr all nve/sphere + +fix ins2 all insert/pack seed 5331 distributiontemplate pdd2 & + maxattempt 1000 insert_every once overlapcheck yes all_in yes vel constant 0.0 0.0 0.0 & + region insreg1 mass_in_region 0.2 + +run 150000 + +fix ins1 all insert/pack seed 5330 distributiontemplate pdd1 & + maxattempt 1000 insert_every once overlapcheck yes all_in yes vel constant 0.0 0.0 0.0 & + region insreg1 mass_in_region 0.365 + +# make groups +group ore type 1 +group quartz type 2 + +# screen output +compute rke all erotate/sphere +thermo_style custom step atoms ke c_rke vol +thermo 1000 +thermo_modify lost ignore norm no +compute_modify thermo_temp dynamic yes + +# insert the first particles so that dump is not empty +run 1 +dump dmp all custom 5000 post/dump.liggghts_init id type x y z vx vy vz fx fy fz radius mass + +run 300000 upto + +write_restart ../DEM/post/restart/liggghts.restart diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/DEM/in.liggghts_run b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/DEM/in.liggghts_run new file mode 100644 index 00000000..89aa9d3f --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/DEM/in.liggghts_run @@ -0,0 +1,283 @@ +# chemistry in fluidized bed +log ../DEM/log.liggghts +thermo_log ../DEM/post/thermo.txt + +coarsegraining 7.0 model_check error + +atom_style granular +atom_modify map array +communicate single vel yes + +boundary f f f +newton off + +units si +processors 2 * 2 + +# read the restart file +read_restart ../DEM/post/restart/liggghts.restart + +neighbor 1e-4 bin +neigh_modify delay 0 + +# Material properties required for granular pair styles +fix m1 all property/global youngsModulus peratomtype 5.e6 5.e6 +fix m2 all property/global poissonsRatio peratomtype 0.45 0.45 +fix m3 all property/global coefficientRestitution peratomtypepair 2 0.3 0.3 0.3 0.3 +fix m4 all property/global coefficientFriction peratomtypepair 2 0.5 0.5 0.5 0.5 + +# pair style +pair_style gran model hertz tangential history # Hertzian without cohesion +pair_coeff * * + +# timestep, gravity +timestep 0.000005 +fix gravi all gravity 9.81 vector 0.0 -1.0 0.0 + +# walls +fix zwalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.000 +fix zwalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.15 +fix cylwalls all wall/gran model hertz tangential history primitive type 1 ycylinder 0.034 0. 0. + +# Thermal properties +fix ftco all property/global thermalConductivity peratomtype 1.4 1.4 +fix ftca all property/global thermalCapacity peratomtype 3000 5000 + +# re-make groups +group ore type 1 +group quartz type 2 + +############################################### +fix ts_check all check/timestep/gran 10 0.1 0.1 + +############### +# cfd coupling +fix cfd all couple/cfd couple_every 50 mpi +fix cfd2 all couple/cfd/force + +# apply nve integration to all particles that are inserted as single particles +fix integr all nve/sphere + +#compute kinetic energy of particles to see if they are moving changing +compute KinEn all ke +variable ke_tot equal c_KinEn + +# this one invokes heat transfer calculation, transfers per-particle temperature and adds convective heat flux to particles +fix tconv all couple/cfd/convection T0 1022 + +############### +# this should invoke chemistry +fix cfd3 ore couple/cfd/chemistry n_species 5 species_names H2 H2O CO CO2 N2 n_diff 2 diffusant_names CO H2 + +# Activate for 3-layer unreacted core shrink model +fix cfd5 ore chem/shrink/core speciesA CO molMassA 0.02801 speciesC CO2 molMassC 0.04401 scale_reduction_rate 10.0 screen no +fix cfd6 ore chem/shrink/core speciesA H2 molMassA 0.00202 speciesC H2O molMassC 0.01801 scale_reduction_rate 10.0 screen no + +# Material properties for chemical reaction +fix k0_CO ore property/atom k0_cfd5 vector yes no no 17 25 2700 +fix Ea_CO ore property/atom Ea_cfd5 vector yes no no 69488 95000 130940 + +fix k0_H2 ore property/atom k0_cfd6 vector yes no no 30 23 160 +fix Ea_H2 ore property/atom Ea_cfd6 vector yes no no 63627 85000 105908 + +# particle parameters +fix porosity ore property/atom porosity_ vector yes no no 0.61 0.34 0.19 0.17 +fix tortuosity ore property/global tortuosity_ scalar 3 +fix pore_diameter ore property/global pore_diameter_ scalar 1.e-7 + + +# define layer properties +fix LayerRelRadii ore property/atom relRadii vector yes no no 1.0 0.998 0.995 0.98 + +### define fix for mass layer - initial testing +fix LayerMasses ore property/atom massLayer vector yes no no 0. 0. 0. 0. +fix LayerDennsities ore property/global density_ore vector 7870. 5740. 5170. 5240. + +## define fix for rho_eff and fracRed - initialize as zero +fix fracRed ore property/atom fracRed_ore vector yes no no 0. 0. 0. +fix rhoeff ore property/atom rhoeff vector yes no no 0. 0. 0. 0. + +############### +# Write data into files for post-processing +group part type 1 + +variable np equal count(part) +variable WI equal 100000 +variable time equal time + +compute fr_1 all reduce sum f_fracRed[1] f_fracRed[2] f_fracRed[3] +fix fr_d1 all ave/time 1 1 1 c_fr_1[1] c_fr_1[2] c_fr_1[3] +variable fr_d1_1 equal f_fr_d1[1] +variable fr_d1_2 equal f_fr_d1[2] +variable fr_d1_3 equal f_fr_d1[3] + +# Calculate total fractional reduction to be written into the dump file for postProcessing/graphical representation +variable frOV_d1 equal 1/9*(f_fr_d1[3])+2/9*(f_fr_d1[2])+6/9*(f_fr_d1[1]) + +fix printfr1 all print ${WI} "${time} ${fr_d1_1} ${fr_d1_2} ${fr_d1_3} ${frOV_d1}" file fr_d1.dat title "#time fr_d1_1 fr_d1_2 fr_d1_3 fr_overall_d1" + +variable fr_1_divided equal f_fr_d1[1]/${np} +variable fr_2_divided equal f_fr_d1[2]/${np} +variable fr_3_divided equal f_fr_d1[3]/${np} +variable frOV_divided equal 1/9*v_fr_3_divided+2/9*v_fr_2_divided+6/9*v_fr_1_divided + +fix printfrdividied all print ${WI} "${time} ${fr_1_divided} ${fr_2_divided} ${fr_3_divided} ${frOV_divided}" file frDivided.dat title "#time fr_1 fr_2 fr_3 frOV" + +### Reactant gas mass change ### +compute dma_CO all reduce sum f_dmA_cfd5[1] f_dmA_cfd5[2] f_dmA_cfd5[3] +fix dmA_f_CO all ave/time 1 1 1 c_dma_CO[1] c_dma_CO[2] c_dma_CO[3] +variable dmA_CO_1 equal f_dmA_f_CO[1] +variable dmA_CO_2 equal f_dmA_f_CO[2] +variable dmA_CO_3 equal f_dmA_f_CO[3] + +compute dma_H2 all reduce sum f_dmA_cfd6[1] f_dmA_cfd6[2] f_dmA_cfd6[3] +fix dmA_f_H2 all ave/time 1 1 1 c_dma_H2[1] c_dma_H2[2] c_dma_H2[3] +variable dmA_H2_1 equal f_dmA_f_H2[1] +variable dmA_H2_2 equal f_dmA_f_H2[2] +variable dmA_H2_3 equal f_dmA_f_H2[3] + +### Write Mass change files to file ### +fix printdmA all print ${WI} "${time} ${dmA_CO_1} ${dmA_CO_2} ${dmA_CO_3} ${dmA_H2_1} ${dmA_H2_2} ${dmA_H2_3}" file dmA.dat title "#time dmA_CO_1 dmA_CO_2 dmA_CO_3 dmA_H2_1 dmA_H2_2 dmA_H2_3" + +############### + +compute Aterm_red_CO all reduce sum f_Aterm_cfd5[1] f_Aterm_cfd5[2] f_Aterm_cfd5[3] +fix Aterm1 all ave/time 10 1 10 c_Aterm_red_CO[1] c_Aterm_red_CO[2] c_Aterm_red_CO[3] +variable a_CO_1 equal f_Aterm1[1] +variable a_CO_2 equal f_Aterm1[2] +variable a_CO_3 equal f_Aterm1[3] + +compute Aterm_red_H2 all reduce sum f_Aterm_cfd6[1] f_Aterm_cfd6[2] f_Aterm_cfd6[3] +fix Aterm2 all ave/time 10 1 10 c_Aterm_red_H2[1] c_Aterm_red_H2[2] c_Aterm_red_H2[3] +variable a_H2_1 equal f_Aterm2[1] +variable a_H2_2 equal f_Aterm2[2] +variable a_H2_3 equal f_Aterm2[3] + +compute Bterm_red_CO all reduce sum f_Bterm_cfd5[1] f_Bterm_cfd5[2] f_Bterm_cfd5[3] +fix Bterm1 all ave/time 10 1 10 c_Bterm_red_CO[1] c_Bterm_red_CO[2] c_Bterm_red_CO[3] +variable b_CO_1 equal f_Bterm1[1] +variable b_CO_2 equal f_Bterm1[2] +variable b_CO_3 equal f_Bterm1[3] + +compute Bterm_red_H2 all reduce sum f_Bterm_cfd6[1] f_Bterm_cfd6[2] f_Bterm_cfd6[3] +fix Bterm2 all ave/time 10 1 10 c_Bterm_red_H2[1] c_Bterm_red_H2[2] c_Bterm_red_H2[3] +variable b_H2_1 equal f_Bterm2[1] +variable b_H2_2 equal f_Bterm2[2] +variable b_H2_3 equal f_Bterm2[3] + +compute Massterm_red_CO all reduce sum f_Massterm_cfd5 +fix Massterm1 all ave/time 10 1 10 c_Massterm_red_CO +variable mt_CO equal f_Massterm1 + +compute Massterm_red_H2 all reduce sum f_Massterm_cfd6 +fix Massterm2 all ave/time 10 1 10 c_Massterm_red_H2 +variable mt_H2 equal f_Massterm2 + +fix printAterm all print ${WI} "${time} ${a_CO_1} ${a_CO_2} ${a_CO_3} ${a_H2_1} ${a_H2_2} ${a_H2_3}" file Aterm.dat title "#time a_CO_1 aCO_2 a_CO_3 a_H2_1 a_H2_2 a_H2_3" + +fix printBterm all print ${WI} "${time} ${b_CO_1} ${b_CO_2} ${b_CO_3} ${b_H2_1} ${b_H2_2} ${b_H2_3}" file Bterm.dat title "#time b_CO_1 b_CO_2 b_CO_3 b_H2_1 b_H2_2 b_H2_3" + +fix printMterm all print ${WI} "${time} ${mt_CO} ${mt_H2}" file Mterm.dat title "#time mt_CO mt_H2" + +############### +compute mass_layer all reduce sum f_LayerMasses[1] f_LayerMasses[2] f_LayerMasses[3] f_LayerMasses[4] +fix massLayerPrintout all ave/time 1 1 1 c_mass_layer[1] c_mass_layer[2] c_mass_layer[3] c_mass_layer[4] +variable mL1 equal f_massLayerPrintout[1] +variable mL2 equal f_massLayerPrintout[2] +variable mL3 equal f_massLayerPrintout[3] +variable mL4 equal f_massLayerPrintout[4] + +compute dY_CO all reduce sum f_dY_cfd5[1] f_dY_cfd5[2] f_dY_cfd5[3] +fix dY_CO_Output all ave/time 1 1 1 c_dY_CO[1] c_dY_CO[2] c_dY_CO[3] +variable dY_CO_1 equal f_dY_CO_Output[1] +variable dY_CO_2 equal f_dY_CO_Output[2] +variable dY_CO_3 equal f_dY_CO_Output[3] + +compute dY_H2 all reduce sum f_dY_cfd6[1] f_dY_cfd6[2] f_dY_cfd6[3] +fix dY_H2_Output all ave/time 1 1 1 c_dY_H2[1] c_dY_H2[2] c_dY_H2[3] +variable dY_H2_1 equal f_dY_H2_Output[1] +variable dY_H2_2 equal f_dY_H2_Output[2] +variable dY_H2_3 equal f_dY_H2_Output[3] + +compute xA_CO all reduce sum f_X_CO +fix molarFractionA_CO all ave/time 1 1 1 c_xA_CO +variable xA_CO_1 equal f_molarFractionA_CO + +compute xA_H2 all reduce sum f_X_H2 +fix molarFractionA_H2 all ave/time 1 1 1 c_xA_H2 +variable xA_H2_1 equal f_molarFractionA_H2 + +compute xC_CO2 all reduce sum f_X_CO2 +fix molarFractionC_CO2 all ave/time 1 1 1 c_xC_CO2 +variable xC_CO2_1 equal f_molarFractionC_CO2 + +compute xC_H2O all reduce sum f_X_H2O +fix molarFractionC_H2O all ave/time 1 1 1 c_xC_H2O +variable xC_H2O_1 equal f_molarFractionC_H2O + +fix printMassLayer all print ${WI} "${time} ${mL1} ${mL2} ${mL3} ${mL4}" file MassLayers.dat title "#time mL_Fe mL_w mL_m mL_h" + +fix printdmYLayer all print ${WI} "${time} ${dY_CO_1} ${dY_CO_2} ${dY_CO_3} ${dY_H2_1} ${dY_H2_2} ${dY_H2_3}" file dmY.dat title "#time dY_CO_1 dY_CO_2 dY_CO_3 dY_H2_1 dY_H2_2 dY_H2_3" + +fix molarFractions all print ${WI} "${time} ${xA_CO_1} ${xA_H2_1} ${xC_CO2_1} ${xC_H2O_1}" file molarFractions.dat title "#title x_CO x_H2 x_CO2 x_H2O" + +############### + +compute effDiffBinary_red_CO all reduce sum f_effDiffBinary_cfd5[1] f_effDiffBinary_cfd5[2] f_effDiffBinary_cfd5[3] +fix effDiffBinary1 all ave/time 10 1 10 c_effDiffBinary_red_CO[1] c_effDiffBinary_red_CO[2] c_effDiffBinary_red_CO[3] +variable dij_CO_1 equal f_effDiffBinary1[1] +variable dij_CO_2 equal f_effDiffBinary1[2] +variable dij_CO_3 equal f_effDiffBinary1[3] + +compute effDiffBinary_red_H2 all reduce sum f_effDiffBinary_cfd6[1] f_effDiffBinary_cfd6[2] f_effDiffBinary_cfd6[3] +fix effDiffBinary2 all ave/time 10 1 10 c_effDiffBinary_red_H2[1] c_effDiffBinary_red_H2[2] c_effDiffBinary_red_H2[3] +variable dij_H2_1 equal f_effDiffBinary2[1] +variable dij_H2_2 equal f_effDiffBinary2[2] +variable dij_H2_3 equal f_effDiffBinary2[3] + +compute effDiffKnud_red_CO all reduce sum f_effDiffKnud_cfd5[1] f_effDiffKnud_cfd5[2] f_effDiffKnud_cfd5[3] +fix effDiffKnud1 all ave/time 10 1 10 c_effDiffKnud_red_CO[1] c_effDiffKnud_red_CO[2] c_effDiffKnud_red_CO[3] +variable dik_CO_1 equal f_effDiffKnud1[1] +variable dik_CO_2 equal f_effDiffKnud1[2] +variable dik_CO_3 equal f_effDiffKnud1[3] + +compute effDiffKnud_red_H2 all reduce sum f_effDiffKnud_cfd6[1] f_effDiffKnud_cfd6[2] f_effDiffKnud_cfd6[3] +fix effDiffKnud2 all ave/time 10 1 10 c_effDiffKnud_red_H2[1] c_effDiffKnud_red_H2[2] c_effDiffKnud_red_H2[3] +variable dik_H2_1 equal f_effDiffKnud2[1] +variable dik_H2_2 equal f_effDiffKnud2[2] +variable dik_H2_3 equal f_effDiffKnud2[3] + +fix printDiffTerms all print ${WI} "${time} ${dij_CO_1} ${dij_CO_2} ${dij_CO_3} ${dij_H2_1} ${dij_H2_2} ${dij_H2_3} ${dik_CO_1} ${dik_CO_2} ${dik_CO_3} ${dik_H2_1} ${dik_H2_2} ${dik_H2_3} " file DiffTerm.dat title "#time dij_CO_1 dij_CO_2 dij_CO_3 dij_H2_1 dij_H2_2 dij_H2_3 dik_CO_1 dik_CO_2 dik_CO_3 dik_H2_1 dik_H2_2 dik_H2_3" + +############### + +## Check Layer Radii and Write them to files ### +compute layerRad1 all reduce sum f_LayerRelRadii[1] +fix redRad1 all ave/time 1 1 1 c_layerRad1 +variable rr1 equal f_redRad1 + +compute layerRad2 all reduce sum f_LayerRelRadii[2] +fix redRad2 all ave/time 1 1 1 c_layerRad2 +variable rr2 equal f_redRad2 + +compute layerRad3 all reduce sum f_LayerRelRadii[3] +fix redRad3 all ave/time 1 1 1 c_layerRad3 +variable rr3 equal f_redRad3 + +compute layerRad4 all reduce sum f_LayerRelRadii[4] +fix redRad4 all ave/time 1 1 1 c_layerRad4 +variable rr4 equal f_redRad4 + +fix printRelRadii all print ${WI} "${time} ${rr1} ${rr2} ${rr3} ${rr4}" file relRadii.dat title "#time relRad_1 relRad_2 relRad_3 relRad_4" + +############### +# screen output +compute rke all erotate/sphere +thermo_style custom step atoms ke c_rke vol +thermo 10 +thermo_modify lost ignore norm no +compute_modify thermo_temp dynamic yes + +dump dmp all custom ${WI} ../DEM/post/dump*.liggghts_run id type x y z vx vy vz fx fy fz radius mass f_fracRed[1] f_fracRed[2] f_fracRed[3] + +run 1 diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/DEM/post/restart/.gitignore b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/DEM/post/restart/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/parCFDDEMrun.sh b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/parCFDDEMrun.sh new file mode 100755 index 00000000..43a9e715 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/parCFDDEMrun.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +#===================================================================# +# allrun script for testcase +# M. Efe Kinaci - Sep 2018 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +#--------------------------------------------------------------------------------# +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +logpath=$casePath +headerText="R2_FluidBed" +logfileName="log_$headerText" +solverName="cfdemSolverRhoPimpleChem" #"cfdemSolverPiso" # +nrProcs="4" +machineFileName="none" # yourMachinefileName | none +debugMode="off" # on | off| strict +testHarnessPath="$CFDEM_TEST_HARNESS_PATH" +runOctave="false" +postproc="false" + +#--------------------------------------------------------------------------------# + +#- call function to run a parallel CFD-DEM case +parCFDDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode + + +if [ $runOctave == "true" ] + then + #------------------------------# + # octave + + #- change path + cd octave + + #- rmove old graph + rm cfdemSolverPiso_ErgunTestMPI.eps + + #- run octave + octave totalPressureDrop.m + + #- show plot + evince cfdemSolverPiso_ErgunTestMPI.eps + + #- copy log file to test harness + cp ../../$logfileName $testHarnessPath + cp cfdemSolverPiso_ErgunTestMPI.eps $testHarnessPath +fi + +if [ $postproc == "true" ] + then + + #- keep terminal open (if started in new terminal) + echo "simulation finished? ...press enter to proceed" + read + + #- get VTK data from liggghts dump file + cd $casePath/DEM/post + python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_run + + #- get VTK data from CFD sim + cd $casePath/CFD + reconstructPar + foamToVTK #- serial run of foamToVTK + #source $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/functions.sh #- include functions + #pseudoParallelRun "foamToVTK" $nrPostProcProcessors #- pseudo parallel run of foamToVTK + + #- start paraview + paraview + + #- keep terminal open (if started in new terminal) + echo "...press enter to clean up case" + echo "press Ctr+C to keep data" + read + +fi + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/parDEMrun.sh b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/parDEMrun.sh new file mode 100755 index 00000000..d6d5e95b --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/parDEMrun.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +#===================================================================# +# DEMrun script for testcase +# M. Efe Kinaci - Sep 2018 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +echo "starting DEM run in parallel..." +#--------------------------------------------------------------------------------# +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +logpath="$casePath" +headerText="run_liggghts_init_DEM" +logfileName="log_$headerText" +solverName="in.liggghts_init" +nrProcs=4 +machineFileName="none" +debugMode="off" +#--------------------------------------------------------------------------------# + +#- call function to run DEM case +parDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/postrun.sh b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/postrun.sh new file mode 100755 index 00000000..06624406 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/postrun.sh @@ -0,0 +1,19 @@ +#!/bin/bash +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" + +#- get VTK data from liggghts dump file +cd $casePath/DEM/post +python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_run + +#- get VTK data from CFD sim +cd $casePath/CFD +reconstructPar +foamToVTK + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/prerun.sh b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/prerun.sh new file mode 100755 index 00000000..981b75be --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/prerun.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" + +# check if mesh was built +if [ -f "$casePath/CFD/constant/polyMesh/boundary" ]; then + echo "mesh was built before - using old mesh" +else + echo "mesh needs to be built" + cd $casePath/CFD + blockMesh +fi + +# adapt settings for test harness run +cp $casePath/CFD/system/controlDict_test $casePath/CFD/system/controlDict diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/run.config b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/run.config new file mode 100644 index 00000000..74ab523b --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R2_FB/run.config @@ -0,0 +1,20 @@ +{ + "type" : "CFDEMcoupling", + "runs" : [ + { + "name" : "liggghts-init", + "input_script" : "DEM/in.liggghts_init", + "type" : "liggghts/mpi", + "nprocs" : 4 + }, + { + "name" : "cfdemrun", + "depends_on" : "liggghts-init", + "solver" : "cfdemSolverRhoPimpleChem", + "type" : "CFDEMcoupling/mpi", + "nprocs" : 4, + "pre_scripts" : ["prerun.sh"], + "post_scripts" : ["postrun.sh"] + } + ] +} diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/Allclean.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/Allclean.sh new file mode 100755 index 00000000..b2a417c8 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/Allclean.sh @@ -0,0 +1,18 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cd CFD +cleanCase +cd - + +rm -f log* + +rm -r ./DEM/post +mkdir ./DEM/post +mkdir ./DEM/post/restart +touch ./DEM/post/restart/.gitignore + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/Allrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/Allrun.sh new file mode 100755 index 00000000..0c4e9bba --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/Allrun.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +#===================================================================# +# allrun script for testcase +# M. Efe Kinaci - Sep 2018 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +export casePath + +#cd $casePath/CFD +#blockMesh + +#$casePath/parDEMrun.sh + +#bash $casePath/parCFDDEMrun.sh + +export casePath +# check if mesh was built +if [ -f "$casePath/CFD/constant/polyMesh/points" ]; then + echo "mesh was built before - using old mesh" +else + echo "mesh needs to be built" + cd $casePath/CFD + blockMesh +fi + +if [ -f "$casePath/DEM/post/restart/liggghts.restart" ]; then + echo "LIGGGHTS init was run before - using existing restart file" +else + #- run DEM in new terminal + $casePath/parDEMrun.sh +fi + +#echo "Run Simulation" +#cd $casePath/CFD +#decomposePar +#mpirun -np $nrProcs $solverName -parallel | tee -a $logfileName + +#- run parallel CFD-DEM in new terminal +#gnome-terminal -e "bash $casePath/parCFDDEMrun.sh" +bash $casePath/parCFDDEMrun.sh diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/CO b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/CO new file mode 100644 index 00000000..7e03c32c --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/CO @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object CO; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.3101580355; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.3101580355; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/CO2 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/CO2 new file mode 100644 index 00000000..18d9e015 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/CO2 @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object CO2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.0649770565; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.0649770565; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/H2 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/H2 new file mode 100644 index 00000000..be47edbc --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/H2 @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object H2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.0044735397; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.0044735397; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/H2O b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/H2O new file mode 100644 index 00000000..d05b03b2 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/H2O @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object H20; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/Ksl b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/Ksl new file mode 100644 index 00000000..bc087769 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/Ksl @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object Ksl; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -3 -1 0 0 0 0]; + +internalField uniform 0.0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/N2 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/N2 new file mode 100644 index 00000000..a590dca2 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/N2 @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object N2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.6203913683; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.6203913683; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/Qsource b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/Qsource new file mode 100644 index 00000000..64313b48 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/Qsource @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object Qsource; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -3 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/T b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/T new file mode 100644 index 00000000..5f10e721 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/T @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 1223.15; // 950 + 273.15 + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 1223.15; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/U b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/U new file mode 100644 index 00000000..f50a655f --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/U @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0.011 0 0); + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type fixedValue; + value uniform (0.011 0 0); + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/Us b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/Us new file mode 100644 index 00000000..4e80604a --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/Us @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object Us; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/alphat b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/alphat new file mode 100644 index 00000000..5176c807 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/alphat @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/epsilon b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/epsilon new file mode 100644 index 00000000..9810c397 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/epsilon @@ -0,0 +1,53 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 0.003; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + // If turbulence is present + /* + * type compressible::turbulentMixingLengthDissipationRateInlet; + * mixingLength 0.005; + * value uniform 200; + */ + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/k b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/k new file mode 100644 index 00000000..b076e39a --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/k @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.001; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/mut b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/mut new file mode 100644 index 00000000..612df953 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/mut @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object mut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/nut b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/nut new file mode 100644 index 00000000..0027f055 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/nut @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/p b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/p new file mode 100644 index 00000000..e2d368fc --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/p @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 101325; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/p.org b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/p.org new file mode 100644 index 00000000..3c63a681 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/p.org @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 101325; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/rho b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/rho new file mode 100644 index 00000000..c71cb3a4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/rho @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object rho; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -3 0 0 0 0 0]; + +internalField uniform 1.2415; // [for 33CO 3H2 4CO2 60N2]; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/voidfraction b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/voidfraction new file mode 100644 index 00000000..6f3a5b0b --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/0/voidfraction @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object voidfraction; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/chemistryProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/chemistryProperties new file mode 100644 index 00000000..f95868bd --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/chemistryProperties @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object chemistryProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +chemistry off; //on; + +/* +chemistryType +{ + chemistrySolver ode; + chemistryThermo rho; +} + +initialChemicalTimeStep 1e-07; + +EulerImplicitCoeffs +{ + cTauChem 0.05; + equilibriumRateLimiter off; +} + +odeCoeffs +{ + solver seulex; + eps 0.05; +} */ + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/combustionProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/combustionProperties new file mode 100644 index 00000000..2f51801a --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/combustionProperties @@ -0,0 +1,34 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object combustionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +combustionModel noCombustion; + +active false; //true; + +noCombustionCoeffs +{ +} + + +PaSRCoeffs +{ + Cmix 1.0; + turbulentReaction off; +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/couplingProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/couplingProperties new file mode 100644 index 00000000..0ef093f4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/couplingProperties @@ -0,0 +1,355 @@ +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.4 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + + +FoamFile +{ + version 2.0; + format ascii; + + root ""; + case ""; + instance ""; + local ""; + + class dictionary; + object couplingProperties; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +//===========================================================================// +// sub-models & settings + +modelType "A"; // A or B + +couplingInterval 50; + +voidFractionModel divided;//centre;// + +locateModel engine;//turboEngineM2M;// + +meshMotionModel noMeshMotion; + +regionModel allRegion; + +IOModel basicIO; + +probeModel off; + +dataExchangeModel twoWayMPI; + +averagingModel dilute; //dense;// + +clockModel off;//standardClock; + +smoothingModel off;//localPSizeDiffSmoothing;// constDiffSmoothing; // + +forceModels +( + GidaspowDrag + gradPForce + viscForce +); + +energyModels +( + heatTransferGunn + reactionHeat +); + +thermCondModel SyamlalThermCond; + +chemistryModels +( + species + diffusionCoefficients + massTransferCoeff + // off +); + +momCoupleModels +( + implicitCouple +); + +turbulenceModelType "turbulenceProperties";//"LESProperties";// + +//===========================================================================// +// sub-model properties +reactionHeatProps +{ + reactionHeatName "reactionHeat"; + verbose false; +} + +heatTransferGunnProps +{ + partTempName "Temp"; + partHeatFluxName "convectiveHeatFlux"; + calcPartTempField true; + partRefTemp 1223.15; + implicit true; + verbose false; + interpolation false; +} + +speciesProps +{ + ChemistryFile "$FOAM_CASE/constant/foam.inp"; + Nevery 1; + verbose false; + interpolation false; +} + +diffusionCoefficientsProps +{ + verbose false; + interpolation false; + ChemistryFile "$FOAM_CASE/constant/foam.inp"; + diffusantGasNames ( CO + H2 + ); +} + +massTransferCoeffProps +{ + verbose false; + interpolation false; +} + +reactantPerParticleProps +{ +} + + +SyamlalThermCondProps +{ + voidfractionFieldName "voidfraction"; + rhoFieldName "rho"; +} + +LaEuScalarTempProps +{ + velFieldName "U"; + tempFieldName "T"; + voidfractionFieldName "voidfraction"; + partTempName "Temp"; + partHeatFluxName "convectiveHeatFlux"; + lambda 0.0256; + Cp 1007; +} + +localPSizeDiffSmoothingProps +{ + lowerLimit 0.1; + upperLimit 1e10; + dSmoothingLength 1.5e-3; + Csmoothing 1.0; +} + +constDiffSmoothingProps +{ + lowerLimit 0.1; + upperLimit 1e10; + smoothingLength 1.5e-3; +} + +implicitCoupleProps +{ + velFieldName "U"; + granVelFieldName "Us"; + voidfractionFieldName "voidfraction"; +} + +ArchimedesProps +{ + gravityFieldName "g"; +} + +gradPForceProps +{ + pFieldName "p"; + voidfractionFieldName "voidfraction"; + velocityFieldName "U"; + interpolation true; +} + +viscForceProps +{ + velocityFieldName "U"; + interpolation true; +} + +volWeightedAverageProps +{ + scalarFieldNames + ( + voidfraction + ); + vectorFieldNames + ( + ); + upperThreshold 0.999; + lowerThreshold 0; + verbose true; +} + +totalMomentumExchangeProps +{ + implicitMomExFieldName "Ksl"; + explicitMomExFieldName "none"; + fluidVelFieldName "U"; + granVelFieldName "Us"; +} + +GidaspowDragProps +{ + verbose true; + velFieldName "U"; + granVelFieldName "Us"; + voidfractionFieldName "voidfraction"; + interpolation true; + phi 1; +} + +BeetstraDragProps +{ + velFieldName "U"; + granVelFieldName "Us"; + gravityFieldName "g"; + voidfractionFieldName "voidfraction"; + interpolation false; + useFilteredDragModel; + useParcelSizeDependentFilteredDrag; + rhoP 4630.; + dPrim 0.00022; + rho 1.58; + nuf 1.126e-05; + g 9.81; + k 0.05; + aLimit 0.0; + verbose false; +} + +DEMbasedDragProps +{ + velFieldName "U"; + voidfractionFieldName "voidfraction"; +} + +DiFeliceDragProps +{ + //verbose true; + velFieldName "U"; + voidfractionFieldName "voidfraction"; + granVelFieldName "Us"; + interpolation false; +} + +KochHillDragProps +{ + verbose true; + velFieldName "U"; + voidfractionFieldName "voidfraction"; + interpolation false; + //forceSubModels + //( + // ImExCorr + //); + implForceDEM true; + //implForceDEMaccumulated true; + //explicitCorr true; +} + +RongDragProps +{ + verbose true; + velFieldName "U"; + voidfractionFieldName "voidfraction"; + interpolation false; + implForceDEM true; + implForceDEMaccumulated true; + granVelFieldName "Us"; +} + +virtualMassForceProps +{ + velFieldName "U"; +} + +particleCellVolumeProps +{ + upperThreshold 0.999; + lowerThreshold 0.; + verbose true; +} + +fieldStoreProps +{ + scalarFieldNames + ( + ); + + vectorFieldNames + ( + "U" + ); +} + +oneWayVTKProps +{ + couplingFilename "vtk_out%4.4d.vtk"; + maxNumberOfParticles 30000; +} + +twoWayFilesProps +{ + maxNumberOfParticles 10100; +} + +centreProps +{ + alphaMin 0.1; +} + +engineProps +{ + treeSearch true; +} + +turboEngineProps +{ + treeSearch true; +} + +turboEngineM2MProps +{ + turboEngineProps + { + treeSearch true; + } +} + +dividedProps +{ + alphaMin 0.01; + scaleUpVol 1.0; +} + +twoWayMPIProps +{ + liggghtsPath "../DEM/in.liggghts_run"; +} + +twoWayM2MProps +{ + maxNumberOfParticles 10100; + liggghtsPath "../DEM/in.liggghts_run"; +} +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/foam.dat b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/foam.dat new file mode 100644 index 00000000..5191ec94 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/foam.dat @@ -0,0 +1,111 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object foam.dat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +H2 +{ + specie + { + nMoles 1; + molWeight 2.02; + } + thermodynamics + { + Cp 15016.8; + Hf 2.544e+06; + } + transport + { + mu 8.42e-05; + Pr 0.76; + } +} +H2O +{ + specie + { + nMoles 1; + molWeight 18.015; + } + thermodynamics + { + Cp 2304.1; + Hf 2.544e+06; + } + transport + { + mu 1.7e-05; + Pr 0.99; + } +} + +CO +{ + specie + { + nMoles 1; + molWeight 28.01; + } + thermodynamics + { + Cp 1189.14; + Hf 2.544e+06; + } + transport + { + mu 1.66e-05; + Pr 0.792; + } +} + +CO2 +{ + specie + { + nMoles 1; + molWeight 44.01; + } + thermodynamics + { + Cp 1239.98; + Hf 2.544e+06; + } + transport + { + mu 1.37e-05; + Pr 0.69; + } +} + +N2 +{ + specie + { + nMoles 1; + molWeight 28.0134; + } + thermodynamics + { + Cp 1171.6; + Hf 2.544e+06; + } + transport + { + mu 1.66e-05; + Pr 0.69; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/foam.inp b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/foam.inp new file mode 100644 index 00000000..3c6ddcd0 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/foam.inp @@ -0,0 +1,14 @@ +species +( + H2 + H2O + CO + CO2 + N2 +); + +reactions +{ +} + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/g b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/g new file mode 100644 index 00000000..abca4e14 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/g @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value ( 0 -9.81 0 ); + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/liggghtsCommands b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/liggghtsCommands new file mode 100644 index 00000000..ea16dec7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/liggghtsCommands @@ -0,0 +1,43 @@ +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.4 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + + +FoamFile +{ + version 2.0; + format ascii; + + root ""; + case ""; + instance ""; + local ""; + + class dictionary; + object liggghtsCommands; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +liggghtsCommandModels +( + runLiggghts + writeLiggghts +); +// ************************************************************************* // + +/*runLiggghtsProps +{ + preNo false; +}*/ + +writeLiggghtsProps +{ + writeLast on; + writeName "post/restart/liggghts.restartCFDEM"; + overwrite on; +} diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/polyMesh/blockMeshDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/polyMesh/blockMeshDict new file mode 100644 index 00000000..024f6e99 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/polyMesh/blockMeshDict @@ -0,0 +1,91 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant/polyMesh"; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1.0; + +vertices +( + (0 0 0) + (1.5 0 0) + (1.5 0.5 0) + (0 0.5 0) + (0 0 0.5) + (1.5 0 0.5) + (1.5 0.5 0.5) + (0 0.5 0.5) +); + +blocks +( + hex (0 1 2 3 4 5 6 7)(29 9 9) simpleGrading (1 1 1) + +); + +edges +( +); + +boundary +( + top + { + type wall; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + side-walls + { + type wall; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/polyMesh/cylinderMesh.m4 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/polyMesh/cylinderMesh.m4 new file mode 100644 index 00000000..6df74167 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/polyMesh/cylinderMesh.m4 @@ -0,0 +1,153 @@ +// blockMesh : Block mesh description file +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant/polyMesh"; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + + + meshGenApp blockMesh; + convertToMeters 1; + + define(D, 0.075) //75 mm column diameter + define(L, 0.15) //150 mm length + define(PI, 3.14159265) + + define(R, calc(D/2)) + define(CW, calc(D/4)) //Width of middle square section + + define(CX, calc(R*cos((PI/180)*45))) + define(CZ, calc(R*sin((PI/180)*45))) + + define(NPS, 4) //how many cells in the square section + define(NPD, 2) //how many cells from square section to perimeter + define(NPY, 15) // how many cells from top to bottom + + vertices + ( + ( CW 0.0 CW) vlabel(fiveoclocksqb) + (-CW 0.0 CW) vlabel(sevenoclocksqb) + (-CW 0.0 -CW) vlabel(elevenoclocksqb) + ( CW 0.0 -CW) vlabel(oneoclocksqb) + + ( CX 0.0 CZ) vlabel(fiveoclockcb) + (-CX 0.0 CZ) vlabel(sevenoclockcb) + (-CX 0.0 -CZ) vlabel(elevenoclockcb) + ( CX 0.0 -CZ) vlabel(oneoclockcb) + + ( CW L CW) vlabel(fiveoclocksqt) + (-CW L CW) vlabel(sevenoclocksqt) + (-CW L -CW) vlabel(elevenoclocksqt) + ( CW L -CW) vlabel(oneoclocksqt) + + ( CX L CZ) vlabel(fiveoclockct) + (-CX L CZ) vlabel(sevenoclockct) + (-CX L -CZ) vlabel(elevenoclockct) + ( CX L -CZ) vlabel(oneoclockct) + ); + + blocks + ( + //square block + hex ( + sevenoclocksqb fiveoclocksqb oneoclocksqb elevenoclocksqb + sevenoclocksqt fiveoclocksqt oneoclocksqt elevenoclocksqt + ) + (NPS NPS NPY) + simpleGrading (1 1 1) + + //slice1 + hex ( + sevenoclockcb fiveoclockcb fiveoclocksqb sevenoclocksqb + sevenoclockct fiveoclockct fiveoclocksqt sevenoclocksqt + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + //slice2 + hex ( + sevenoclocksqb elevenoclocksqb elevenoclockcb sevenoclockcb + sevenoclocksqt elevenoclocksqt elevenoclockct sevenoclockct + ) + (NPS NPD NPY) +simpleGrading (1 1 1) + + //slice3 + hex ( + elevenoclocksqb oneoclocksqb oneoclockcb elevenoclockcb + elevenoclocksqt oneoclocksqt oneoclockct elevenoclockct + ) + (NPS NPD NPY) +simpleGrading (1 1 1) + + //slice4 + hex ( + oneoclocksqb fiveoclocksqb fiveoclockcb oneoclockcb + oneoclocksqt fiveoclocksqt fiveoclockct oneoclockct + ) + (NPS NPD NPY) +simpleGrading (1 1 1) + + ); + + + //create the quarter circles + edges + ( + arc fiveoclockcb sevenoclockcb (0.0 0.0 R) + arc sevenoclockcb elevenoclockcb (-R 0.0 0.0) + arc elevenoclockcb oneoclockcb (0.0 0.0 -R) + arc oneoclockcb fiveoclockcb (R 0.0 0.0) + + arc fiveoclockct sevenoclockct (0.0 L R) + arc sevenoclockct elevenoclockct (-R L 0.0) + arc elevenoclockct oneoclockct (0.0 L -R) + arc oneoclockct fiveoclockct (R L 0.0) + + ); + + patches + ( + patch inlet + ( + (fiveoclocksqb oneoclocksqb elevenoclocksqb sevenoclocksqb) + (fiveoclocksqb fiveoclockcb oneoclockcb oneoclocksqb) + (fiveoclockcb fiveoclocksqb sevenoclocksqb sevenoclockcb) + (sevenoclocksqb elevenoclocksqb elevenoclockcb sevenoclockcb) + (oneoclocksqb oneoclockcb elevenoclockcb elevenoclocksqb) + ) + + patch outlet + ( + (fiveoclocksqt oneoclocksqt elevenoclocksqt sevenoclocksqt) + (fiveoclocksqt fiveoclockct oneoclockct oneoclocksqt) + (fiveoclockct fiveoclocksqt sevenoclocksqt sevenoclockct) + (sevenoclocksqt elevenoclocksqt elevenoclockct sevenoclockct) + (oneoclocksqt oneoclockct elevenoclockct elevenoclocksqt) + ) + + wall wall + ( + (sevenoclockcb fiveoclockcb fiveoclockct sevenoclockct) + (sevenoclockcb sevenoclockct elevenoclockct elevenoclockcb) + (elevenoclockcb elevenoclockct oneoclockct oneoclockcb) + (oneoclockcb oneoclockct fiveoclockct fiveoclockcb) + ) + +); + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/thermophysicalProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/thermophysicalProperties new file mode 100644 index 00000000..84303b95 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/thermophysicalProperties @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; + mixture reactingMixture; //species and reactions are listed in chemistry file + transport const; //sutherland; //calcualtes viscosity as a function of temperature from Stuherland coefficient As and Ts + thermo hConst; //janaf; + equationOfState perfectGas; + energy sensibleInternalEnergy; + specie specie; +} + +chemistryReader foamChemistryReader; + +foamChemistryThermoFile "$FOAM_CASE/constant/foam.dat"; + +foamChemistryFile "$FOAM_CASE/constant/foam.inp"; + +inertSpecie N2; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/transportProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/transportProperties new file mode 100644 index 00000000..202ac451 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/transportProperties @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu nu [ 0 2 -1 0 0 0 0 ] 1.4117e-05; // kinematic viscosity of gas mixture + +kf kf [ 1 1 -3 -1 0 0 0 ] 0.0507; // comes from energy model + +Cp Cp [ 0 2 -2 -1 0 0 0 ] 1118.15; // comes from energy model + + +// ******* Non-Newtonian transport properties ************************ // +/*CrossPowerLawCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + m m [ 0 0 1 0 0 0 0 ] 1; + n n [ 0 0 0 0 0 0 0 ] 1; +} + +BirdCarreauCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + k k [ 0 0 1 0 0 0 0 ] 0; + n n [ 0 0 0 0 0 0 0 ] 1; +} +*/ +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/turbulenceProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/turbulenceProperties new file mode 100644 index 00000000..d1156961 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/constant/turbulenceProperties @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/controlDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/controlDict new file mode 100644 index 00000000..746a7dee --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/controlDict @@ -0,0 +1,150 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application cfdemSolverRhoPimpleChem; + +startFrom startTime; + +startTime 0.0; + +stopAt endTime; + +endTime 1200.0; + +deltaT 1; + +writeControl timeStep; + +writeInterval 50; + +purgeWrite 10; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + +adjustTimeStep no; + +maxCo 0.5; + +maxDeltaT 0.1; + + +// ************************************************************************* // + libs +( + "libfieldFunctionObjects.so" +); + +functions +{ + moleFrac + { + type rhoReactionThermoMoleFractions; + } + + probes1 + { + type probes; + + functionObjectLibs ("libsampling.so"); + + #include "probesDict"; + } + + + fieldMinMax_T + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (T); + // Report the location of the field extrema + location yes; + // Type of extrema for rank > 0 primitives + mode magnitude; // magnitude | component + } + + fieldMinMax_Cpv + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (Cpv); + // Report the location of the field extrema + location yes; + // Type of extrema for rank > 0 primitives + mode magnitude; // magnitude | component + } + + fieldMinMax_partTemp + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (partTemp); + location yes; + mode magnitude; + } + + globalMassFrac + { + type volRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep;//outputTime; + writeInterval 1; + log true; + writeFields false; + regionType all; + name c0; + operation weightedVolAverage; + weightField rhoeps; + fields + ( + H2 + CO2 + CO + N2 + H2O + ); + } + + globalMass + { + type volRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep;//outputTime; + writeInterval 1; + log true; + writeFields false; + regionType all; + name c1; + operation volIntegrate; + fields + ( + rhoeps + rho + ); + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/decomposeParDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/decomposeParDict new file mode 100644 index 00000000..c5dcd7c4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/decomposeParDict @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 2; + +//method scotch; +method simple; + +simpleCoeffs +{ + n (2 1 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n ( 1 1 1 ); + delta 0.001; + order xyz; +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots ( ); + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/fvOptions b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/fvOptions new file mode 100644 index 00000000..d021b03e --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/fvOptions @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvOptions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +limitedTemperature +{ + type limitTemperature; + active yes; + limitTemperatureCoeffs + { + active yes; + selectionMode all; + Tmin 1200; + Tmax 2500; + } +} + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/fvSchemes b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/fvSchemes new file mode 100644 index 00000000..1137d70b --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/fvSchemes @@ -0,0 +1,83 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(p) cellMDLimited leastSquares 0.5; + grad(U) cellMDLimited leastSquares 0.5; //cellLimited Gauss linear 1; // + grad(h) cellMDLimited leastSquares 0.5; + grad(e) cellMDLimited leastSquares 0.5; +} + +divSchemes +{ + default Gauss linear; + + div(phi,U) Gauss limitedLinear 1; //Gauss linear; + div(phid,p) Gauss limitedLinear 1; //Gauss upwind; + div(phi,K) Gauss limitedLinear 1; + div(phi,h) Gauss limitedLinear 1; //Gauss upwind; + div(phi,k) Gauss limitedLinear 1; //Gauss upwind; + div(phi,epsilon) Gauss limitedLinear 1; //Gauss upwind; + div(U) Gauss limitedLinear 1; + div(phi,Yi_h) Gauss multivariateSelection + { + CO limitedLinear01 1; + H2 limitedLinear01 1; + N2 limitedLinear01 1; + H2O limitedLinear01 1; + CO2 limitedLinear01 1; + h limitedLinear 1; + e limitedLinear 1; + } + // div((muEff*dev2(T(grad(U))))) Gauss linear; + div((viscousTerm*dev2(grad(U).T()))) Gauss linear; + div((thermo:mu*dev(grad(U).T()))) Gauss linear; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(phi,T) Gauss limitedLinear 1; +} + +laplacianSchemes +{ + default Gauss linear corrected; //Gauss linear orthogonal; +} + +interpolationSchemes +{ + default linear; + interpolate(U) linear; +} + +snGradSchemes +{ + default corrected; //orthogonal; +} + +fluxRequired +{ + default no; + p ; +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/fvSolution b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/fvSolution new file mode 100644 index 00000000..47b89b11 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/fvSolution @@ -0,0 +1,131 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +solvers +{ + p + { + solver PCG; + preconditioner DIC; + tolerance 1e-6; + relTol 0.01; + /*solver GAMG; + tolerance 1e-06; + relTol 0.01; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + cacheAgglomeration on; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; */ + } + + pFinal + { + $p; + tolerance 1e-06; + relTol 0; + } + + "(rho|G)" + { + solver PCG; + preconditioner DIC; + tolerance 1e-6; + relTol 0.01; + /*solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-6; + relTol 0.1; + nSweeps 3;*/ + } + + "(rho|G)Final" + { + $rho; + tolerance 1e-06; + relTol 0; + } + + "(U|h|e|R|k|epsilon)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "(U|h|e|R|k|epsilon)Final" + { + $U; + tolerance 1e-05; + relTol 0; + } + + "(Yi|CO|CO2|H2|H2O|N2)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-06; + relTol 0.01; + maxIter 100; + } + + "(Yi|CO|CO2|H2|H2O|N2)Final" + { + $Yi; + tolerance 1e-06; + relTol 0; + maxIter 100; + } + + T + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-8; + relTol 0; + } +} + +PIMPLE +{ + momentumPredictor yes; + nOuterCorrectors 5; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + rhoMin rhoMin [ 1 -3 0 0 0 ] 0.4; + rhoMax rhoMax [ 1 -3 0 0 0 ] 2.0; +} + +relaxationFactors +{ + fields + { + T 0.5; + "(Yi|CO|CO2|H2|H2O|N2)" 0.6; + p 0.6; + } + equations + { + ".*" 0.8; + "(h|e).*" 0.5; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/probesDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/probesDict new file mode 100644 index 00000000..650dd353 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/CFD/system/probesDict @@ -0,0 +1,54 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.1.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object probesDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + + +fields +( + rho + p + T + Cpv + N2 + CO2 + CO + H2 + H2O + ModSpeciesMassField_N2 + ModSpeciesMassField_CO2 + ModSpeciesMassField_CO + ModSpeciesMassField_H2 + ModSpeciesMassField_H2O + X_CO + X_CO2 + X_H2 + X_N2 + X_H2O +); + +writeControl timeStep; +writeInterval 50; + + +// Locations to be probed. +probeLocations +( + (7.0 2.5 2.5) + (8.0 2.5 2.5) + (1.0 2.5 2.5) +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/DEM/in.liggghts_init b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/DEM/in.liggghts_init new file mode 100644 index 00000000..30fee690 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/DEM/in.liggghts_init @@ -0,0 +1,58 @@ +# Particle insertion into domain +atom_style granular +atom_modify map array +echo both + +communicate single vel yes + +boundary f f f +newton off + +units si +processors 2 1 1 + +region reg block 0. 1.5 0. 0.5 0. 0.5 units box +create_box 1 reg + +neighbor 0.0005 bin +neigh_modify delay 0 + +# Material properties required for granular pair styles +fix m1 all property/global youngsModulus peratomtype 5.e6 +fix m2 all property/global poissonsRatio peratomtype 0.45 +fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3 +fix m4 all property/global coefficientFriction peratomtypepair 1 0.5 + +# pair style +pair_style gran model hertz tangential history # Hertzian without cohesion +pair_coeff * * + +# timestep, gravity +timestep 1e-2 +fix gravi all gravity 0.0 vector 0.0 -1.0 0.0 + +# walls +fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0 +fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 1.5 +fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.0 +fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.5 +fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0 +fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.5 + +# create single particle in a specific spot +create_atoms 1 single 0.75 0.25 0.25 units box +set atom 1 diameter 0.01106028 density 4300 vx 0 vy 0 vz 0 + +# screen output +compute rke all erotate/sphere +thermo_style custom step atoms ke c_rke vol +thermo 1000 +thermo_modify lost ignore norm no +compute_modify thermo_temp dynamic yes + +# insert the first particles so that dump is not empty +run 1 +dump dmp all custom 100 post/dump.liggghts_init id type x y z vx vy vz fx fy fz radius mass + +run 10 upto +write_restart post/restart/liggghts.restart diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/DEM/in.liggghts_run b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/DEM/in.liggghts_run new file mode 100644 index 00000000..9ea6fff7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/DEM/in.liggghts_run @@ -0,0 +1,214 @@ +# single particle chemistry test case +log ../DEM/log.liggghts +thermo_log ../DEM/post/thermo.txt + +atom_style granular +atom_modify map array +communicate single vel yes + +boundary f f f +newton off + +units si +processors 2 1 1 + +# read the restart file +read_restart ../DEM/post/restart/liggghts.restart + +neighbor 0.0005 bin +neigh_modify delay 0 + +# Material properties required for granular pair styles + +fix m1 all property/global youngsModulus peratomtype 5.e6 +fix m2 all property/global poissonsRatio peratomtype 0.45 +fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3 +fix m4 all property/global coefficientFriction peratomtypepair 1 0.5 + +# pair style +pair_style gran model hertz tangential history # Hertzian without cohesion +pair_coeff * * + +# timestep, gravity +timestep 0.02 +fix gravi all gravity 9.81 vector 0.0 -1.0 0.0 + +# walls +fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0 +fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 1.5 +fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.0 +fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.5 +fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0 +fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.5 + +# Thermal properties +fix ftco all property/global thermalConductivity peratomtype 1.4 +fix ftca all property/global thermalCapacity peratomtype 3000 + +############################################### + +# cfd coupling +fix cfd all couple/cfd couple_every 50 mpi +fix cfd2 all couple/cfd/force + +# this one invokes heat transfer calculation, transfers per-particle temperature and adds convective heat flux to particles +fix tconv all couple/cfd/convection T0 1221 + +# this should invoke chemistry +fix cfd3 all couple/cfd/chemistry n_species 5 species_names H2 H2O CO CO2 N2 n_diff 2 diffusant_names CO H2 + +# Activate for 3-layer unreacted core shrink model +fix cfd5 all chem/shrink/core speciesA CO molMassA 0.02801 speciesC CO2 molMassC 0.04401 scale_reduction_rate 10.0 screen yes +fix cfd6 all chem/shrink/core speciesA H2 molMassA 0.00202 speciesC H2O molMassC 0.01801 scale_reduction_rate 10.0 screen yes + +# Chemical properties for unreacted shrink core (activate only when chem/shrink/core is active) +fix k0_CO all property/atom k0_cfd5 vector yes no no 17 25 2700 +fix Ea_CO all property/atom Ea_cfd5 vector yes no no 69488 73674 113859 + +fix k0_H2 all property/atom k0_cfd6 vector yes no no 30 23 160 +fix Ea_H2 all property/atom Ea_cfd6 vector yes no no 63627 71162 92092 + +# particle porosity/tortuosity/pore diameter +fix porosity all property/atom porosity_ vector yes no no 0.65 0.31 0.16 0.15 +fix tortuosity all property/global tortuosity_ scalar 3 +fix pore_diameter all property/global pore_diameter_ scalar 7e-7 + +# define layer properties +fix LayerRelRadii all property/atom relRadii vector yes no no 1.0 0.998 0.995 0.98 + +# define fix for mass layer - initial testing +fix LayerMasses all property/atom massLayer vector yes no no 0. 0. 0. 0. +fix LayerDennsities all property/global density_all vector 7870. 5740. 5170. 5240. + +# define fix for rho_eff and fracRed - initialize as zero +fix fracRed all property/atom fracRed_all vector yes no no 0. 0. 0. +fix rhoeff all property/atom rhoeff vector yes no no 0. 0. 0. 0. + +############### +# Write data into files for post-processing + +variable WI equal 10 +variable time equal time +variable m1 equal mass[1] +variable rp equal radius[1] +variable rho1 equal mass[1]/((4/3)*PI*radius[1]*radius[1]*radius[1]) +fix printmass all print ${WI} "${time} ${m1} ${rho1} ${rp}" file mass_rho_rad.txt title "#time mass rho rad_par" + +# compute kinetic energy of particles to see if they are moving changing +compute KinEn all ke +variable ke_tot equal c_KinEn + +# print total kinetic energy +fix printCompute all print ${WI} "${time} ${ke_tot}" file printKE.txt title "#time ke_tot" + +compute Ea_CO all reduce sum f_Ea_CO[1] f_Ea_CO[2] f_Ea_CO[3] +fix Ea all ave/time 1 1 1 c_Ea_CO[1] c_Ea_CO[2] c_Ea_CO[3] +variable Ea1 equal f_Ea[1] +variable Ea2 equal f_Ea[2] +variable Ea3 equal f_Ea[3] + +compute k0CO all reduce sum f_k0_CO[1] f_k0_CO[2] f_k0_CO[3] +fix k0 all ave/time 1 1 1 c_k0CO[1] c_k0CO[2] c_k0CO[3] +variable k01 equal f_k0[1] +variable k02 equal f_k0[2] +variable k03 equal f_k0[3] + +fix printk0Ea all print ${WI} "${time} ${Ea1} ${Ea2} ${Ea3} ${k01} ${k02} ${k03}" file k0Ea.dat title "#time Ea1 Ea2 Ea3 k01 k02 k03" + +############### +# Print out values affecting chemical reduction into specified folder for given time +# Diffusion Coefficient for CO and H2 + +compute COdiff all reduce sum f_CO_diffCoeff +fix diffField_CO all ave/time 1 1 1 c_COdiff +variable CO_diffCo equal f_diffField_CO + +fix printDCoeff all print ${WI} "${time} ${CO_diffCo}" file DiffCoeff.dat title "#time CO_diffCoeff" + +############### +# Specific Resistance terms depending on reacting gases + +compute ACOd1 all reduce sum f_Aterm_cfd5[1] f_Aterm_cfd5[2] f_Aterm_cfd5[3] +fix ACOd1 all ave/time 1 1 1 c_ACOd1[1] c_ACOd1[2] c_ACOd1[3] +variable a_CO_1 equal f_ACOd1[1] +variable a_CO_2 equal f_ACOd1[2] +variable a_CO_3 equal f_ACOd1[3] + +compute BCOd1 all reduce sum f_Bterm_cfd5[1] f_Bterm_cfd5[2] f_Bterm_cfd5[3] +fix BCOd1 all ave/time 10 1 10 c_BCOd1[1] c_BCOd1[2] c_BCOd1[3] +variable b_CO_1 equal f_BCOd1[1] +variable b_CO_2 equal f_BCOd1[2] +variable b_CO_3 equal f_BCOd1[3] + +compute MCOd1 all reduce sum f_Massterm_cfd5 +fix MTCOd1 all ave/time 10 1 10 c_MCOd1 +variable mt_CO equal f_MTCOd1 + +fix printAterm all print ${WI} "${time} ${a_CO_1} ${a_CO_2} ${a_CO_3}" file Aterm.dat title "#time a_CO_1 aCO_2 a_CO_3" + +fix printBterm all print ${WI} "${time} ${b_CO_1} ${b_CO_2} ${b_CO_3}" file Bterm.dat title "#time b_CO_1 b_CO_2 b_CO_3" + +fix printMassTerm all print ${WI} "${time} ${mt_CO}" file MassTerm.dat title "#time mt_CO" + +# Print out fractional reduction for specific diameter ranges as well as total fractional reduction + +############### +# print out rate change of mass for gaseous reactant +compute dmdot all reduce sum f_dmA_cfd5[1] f_dmA_cfd5[2] f_dmA_cfd5[3] +fix dmA_val all ave/time 1 1 1 c_dmdot[1] c_dmdot[2] c_dmdot[3] +variable dmdot_1 equal f_dmA_val[1] +variable dmdot_2 equal f_dmA_val[2] +variable dmdot_3 equal f_dmA_val[3] + +fix printdmdot all print ${WI} "${time} ${dmdot_1} ${dmdot_2} ${dmdot_3}" file dmdot.dat title "#time dmdot_1 dmdot_2 dmdot_3" + +compute dmdot_H2 all reduce sum f_dmA_cfd6[1] f_dmA_cfd6[2] f_dmA_cfd6[3] +fix dmA_valH2 all ave/time 1 1 1 c_dmdot_H2[1] c_dmdot_H2[2] c_dmdot_H2[3] +variable dmdot_H2_1 equal f_dmA_valH2[1] +variable dmdot_H2_2 equal f_dmA_valH2[2] +variable dmdot_H2_3 equal f_dmA_valH2[3] + +fix printdmdotH2 all print ${WI} "${time} ${dmdot_H2_1} ${dmdot_H2_2} ${dmdot_H2_3}" file dmdotH2.dat title "#time dmdot_1 dmdot_2 dmdot_3" + +compute fr_1 all reduce sum f_fracRed[1] f_fracRed[2] f_fracRed[3] +fix fr_d1 all ave/time 1 1 1 c_fr_1[1] c_fr_1[2] c_fr_1[3] +variable fr_d1_1 equal f_fr_d1[1] +variable fr_d1_2 equal f_fr_d1[2] +variable fr_d1_3 equal f_fr_d1[3] + +# Calculate total fractional reduction to be written into the dump file for postProcessing/graphical representation +variable frOV_d1 equal 1/9*(f_fr_d1[3])+2/9*(f_fr_d1[2])+6/9*(f_fr_d1[1]) + +fix printfr1 all print ${WI} "${time} ${fr_d1_1} ${fr_d1_2} ${fr_d1_3} ${frOV_d1}" file fr_d1.dat title "#time fr_d1_1 fr_d1_2 fr_d1_3 fr_overall_d1" + +############################################### +## Check Layer Radii and Write them to files ### +compute layerRad1 all reduce sum f_LayerRelRadii[1] +fix redRad1 all ave/time 1 1 1 c_layerRad1 +variable rr1 equal f_redRad1 + +compute layerRad2 all reduce sum f_LayerRelRadii[2] +fix redRad2 all ave/time 1 1 1 c_layerRad2 +variable rr2 equal f_redRad2 + +compute layerRad3 all reduce sum f_LayerRelRadii[3] +fix redRad3 all ave/time 1 1 1 c_layerRad3 +variable rr3 equal f_redRad3 + +compute layerRad4 all reduce sum f_LayerRelRadii[4] +fix redRad4 all ave/time 1 1 1 c_layerRad4 +variable rr4 equal f_redRad4 + +fix printRelRadii all print ${WI} "${time} ${rr1} ${rr2} ${rr3} ${rr4}" file relRadii.dat title "#time relRad_1 relRad_2 relRad_3 relRad_4" +############### + +# screen output +compute rke all erotate/sphere +thermo_style custom step atoms ke c_rke vol +thermo 10 +thermo_modify lost ignore norm no +compute_modify thermo_temp dynamic yes + +dump dmp all custom 100 ../DEM/post/dump*.liggghts_run id type x y z vx vy vz fx fy fz radius mass f_fracRed[1] f_fracRed[2] f_fracRed[3] + +run 1 diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/DEM/post/restart/.gitignore b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/DEM/post/restart/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/README b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/README new file mode 100644 index 00000000..098b9828 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/README @@ -0,0 +1,5 @@ +NOTICE::VALIPOUR CORRELATION FOR KEQ + VALIPOUR VALUES FOR Ea + INCREASE DEM TS TO 0.01 + H2 REDUCTION IS ALSO CONSIDERED. + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/parCFDDEMrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/parCFDDEMrun.sh new file mode 100755 index 00000000..e1bff030 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/parCFDDEMrun.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +#===================================================================# +# allrun script for single particle testcase +# M. Efe Kinaci - Sep 2018 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +#--------------------------------------------------------------------------------# +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +logpath=$casePath +headerText="30CO6H2_Hematite" +logfileName="log_$headerText" +solverName="cfdemSolverRhoPimpleChem" +nrProcs="2" +machineFileName="none" # yourMachinefileName | none +debugMode="off" # on | off| strict +testHarnessPath="$CFDEM_TEST_HARNESS_PATH" +runOctave="false" +postproc="false" + +#--------------------------------------------------------------------------------# + +#- call function to run a parallel CFD-DEM case +parCFDDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode + + +if [ $runOctave == "true" ] + then + #------------------------------# + # octave + + #- change path + cd octave + + #- rmove old graph + rm cfdemSolverPiso_ErgunTestMPI.eps + + #- run octave + octave totalPressureDrop.m + + #- show plot + evince cfdemSolverPiso_ErgunTestMPI.eps + + #- copy log file to test harness + cp ../../$logfileName $testHarnessPath + cp cfdemSolverPiso_ErgunTestMPI.eps $testHarnessPath +fi + +if [ $postproc == "true" ] + then + + #- keep terminal open (if started in new terminal) + echo "simulation finished? ...press enter to proceed" + read + + #- get VTK data from liggghts dump file + cd $casePath/DEM/post + python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_run + + #- get VTK data from CFD sim + cd $casePath/CFD + reconstructPar + foamToVTK #- serial run of foamToVTK + #source $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/functions.sh #- include functions + #pseudoParallelRun "foamToVTK" $nrPostProcProcessors #- pseudo parallel run of foamToVTK + + #- start paraview + paraview + + #- keep terminal open (if started in new terminal) + echo "...press enter to clean up case" + echo "press Ctr+C to keep data" + read + +fi + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/parDEMrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/parDEMrun.sh new file mode 100755 index 00000000..c580f12e --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/parDEMrun.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +#===================================================================# +# DEMrun script for testcase +# M. Efe Kinaci - Sep 2018 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +echo "starting DEM run in parallel..." +#--------------------------------------------------------------------------------# +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +logpath="$casePath" +headerText="run_liggghts_init_DEM" +logfileName="log_$headerText" +solverName="in.liggghts_init" +nrProcs=2 +machineFileName="none" +debugMode="off" +#--------------------------------------------------------------------------------# + +#- call function to run DEM case +parDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/postrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/postrun.sh new file mode 100755 index 00000000..06624406 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/postrun.sh @@ -0,0 +1,19 @@ +#!/bin/bash +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" + +#- get VTK data from liggghts dump file +cd $casePath/DEM/post +python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_run + +#- get VTK data from CFD sim +cd $casePath/CFD +reconstructPar +foamToVTK + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/prerun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/prerun.sh new file mode 100755 index 00000000..7b370ae7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/prerun.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" + +# check if mesh was built +if [ -f "$casePath/CFD/constant/polyMesh/boundary" ]; then + echo "mesh was built before - using old mesh" +else + echo "mesh needs to be built" + cd $casePath/CFD + blockMesh +fi \ No newline at end of file diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/run.config b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/run.config new file mode 100644 index 00000000..17e0cac4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/run.config @@ -0,0 +1,20 @@ +{ + "type" : "CFDEMcoupling", + "runs" : [ + { + "name" : "liggghts-init", + "input_script" : "DEM/in.liggghts_init", + "type" : "liggghts/mpi", + "nprocs" : 2 + }, + { + "name" : "cfdemrun", + "depends_on" : "liggghts-init", + "solver" : "cfdemSolverRhoPimpleChem", + "type" : "CFDEMcoupling/mpi", + "nprocs" : 2, + "pre_scripts" : ["prerun.sh"], + "post_scripts" : ["postrun.sh"] + } + ] +} diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/runTestCase b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/runTestCase new file mode 100644 index 00000000..cf006228 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/30CO6H2_Hematite/runTestCase @@ -0,0 +1,19 @@ +#!/bin/bash +#PBS -o fb.out +#PBS -V +#PBS -k oe +#PBS -j oe +#PBS -l nodes=1:ppn=4 +#PBS -l walltime=24:00:00 +#PBS -m ae +#PBS -M mustafa_efe.kinaci@jku.at + +source ~/.bashrc +source /apps/openfoam-4.0/OpenFOAM-4.x-version-4.0/etc/bashrc +source $HOME/CFDEM/CFDEMcoupling/etc/bashrc +module add icc gcc + +caseDir=$HOME/CFDEM/CFDEMcoupling/tutorials/cfdemSolverRhoPimpleChem/test_case +cd $caseDir + +./Allrun.sh diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/Allclean.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/Allclean.sh new file mode 100755 index 00000000..b2a417c8 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/Allclean.sh @@ -0,0 +1,18 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cd CFD +cleanCase +cd - + +rm -f log* + +rm -r ./DEM/post +mkdir ./DEM/post +mkdir ./DEM/post/restart +touch ./DEM/post/restart/.gitignore + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/Allrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/Allrun.sh new file mode 100755 index 00000000..0f5569b2 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/Allrun.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +#===================================================================# +# allrun script for testcase +# M. Efe Kinaci - Sep 2018 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +export casePath + +#cd $casePath/CFD +#blockMesh + +#$casePath/parDEMrun.sh + +#bash $casePath/parCFDDEMrun.sh + +export casePath +# check if mesh was built +if [ -f "$casePath/CFD/constant/polyMesh/points" ]; then + echo "mesh was built before - using old mesh" +else + echo "mesh needs to be built" + cd $casePath/CFD + blockMesh +fi + +if [ -f "$casePath/DEM/post/restart/liggghts.restart" ]; then + echo "LIGGGHTS init was run before - using existing restart file" +else + #- run DEM in new terminal + $casePath/parDEMrun.sh +fi + +#echo "Run Simulation" +#cd $casePath/CFD +#decomposePar +#mpirun -np $nrProcs $solverName -parallel | tee -a $logfileName + +#- run parallel CFD-DEM in new terminal +#gnome-terminal -e "bash $casePath/parCFDDEMrun.sh" +bash $casePath/parCFDDEMrun.sh diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/CO b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/CO new file mode 100644 index 00000000..07c5ce59 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/CO @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object CO; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.3316298524; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.3316298524; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/CO2 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/CO2 new file mode 100644 index 00000000..5b26299b --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/CO2 @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object CO2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.0631593903; // 4%; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.0631593903; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/H2 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/H2 new file mode 100644 index 00000000..1e3e7cda --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/H2 @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object H2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.0021741985; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.0021741985; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/H2O b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/H2O new file mode 100644 index 00000000..d05b03b2 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/H2O @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object H20; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/Ksl b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/Ksl new file mode 100644 index 00000000..bc087769 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/Ksl @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object Ksl; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -3 -1 0 0 0 0]; + +internalField uniform 0.0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/N2 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/N2 new file mode 100644 index 00000000..2d82f511 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/N2 @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object N2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.6030365588; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.6030365588; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/Qsource b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/Qsource new file mode 100644 index 00000000..64313b48 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/Qsource @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object Qsource; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -3 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/T b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/T new file mode 100644 index 00000000..cbc85280 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/T @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 1223.15; // 950 + 273.15 + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 1223.15; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/U b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/U new file mode 100644 index 00000000..f50a655f --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/U @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0.011 0 0); + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type fixedValue; + value uniform (0.011 0 0); + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/Us b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/Us new file mode 100644 index 00000000..a769f873 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/Us @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object Us; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/alphat b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/alphat new file mode 100644 index 00000000..5176c807 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/alphat @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/epsilon b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/epsilon new file mode 100644 index 00000000..9810c397 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/epsilon @@ -0,0 +1,53 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 0.003; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + // If turbulence is present + /* + * type compressible::turbulentMixingLengthDissipationRateInlet; + * mixingLength 0.005; + * value uniform 200; + */ + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/k b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/k new file mode 100644 index 00000000..b076e39a --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/k @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.001; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/mut b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/mut new file mode 100644 index 00000000..612df953 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/mut @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object mut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/nut b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/nut new file mode 100644 index 00000000..0027f055 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/nut @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/p b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/p new file mode 100644 index 00000000..4af5d3be --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/p @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 101325; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/p.org b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/p.org new file mode 100644 index 00000000..af41df32 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/p.org @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 101325; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/rho b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/rho new file mode 100644 index 00000000..54176686 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/rho @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object rho; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -3 0 0 0 0 0]; + +internalField uniform 1.2415; // [for 33CO 3H2 4CO2 60N2]; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/voidfraction b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/voidfraction new file mode 100644 index 00000000..6f3a5b0b --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/0/voidfraction @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object voidfraction; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/chemistryProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/chemistryProperties new file mode 100644 index 00000000..f95868bd --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/chemistryProperties @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object chemistryProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +chemistry off; //on; + +/* +chemistryType +{ + chemistrySolver ode; + chemistryThermo rho; +} + +initialChemicalTimeStep 1e-07; + +EulerImplicitCoeffs +{ + cTauChem 0.05; + equilibriumRateLimiter off; +} + +odeCoeffs +{ + solver seulex; + eps 0.05; +} */ + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/combustionProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/combustionProperties new file mode 100644 index 00000000..c5b934a4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/combustionProperties @@ -0,0 +1,34 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object combustionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +combustionModel noCombustion; //PaSR; //PaSR; + +active false; //true; + +noCombustionCoeffs +{ +} + + +PaSRCoeffs +{ + Cmix 1.0; + turbulentReaction off; +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/couplingProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/couplingProperties new file mode 100644 index 00000000..e85706ff --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/couplingProperties @@ -0,0 +1,338 @@ +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.4 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + + +FoamFile +{ + version 2.0; + format ascii; + + root ""; + case ""; + instance ""; + local ""; + + class dictionary; + object couplingProperties; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +//===========================================================================// +// sub-models & settings + +modelType "A"; // A or B + +couplingInterval 50; + +voidFractionModel divided;//centre;// + +locateModel engine; //turboEngineM2M;// + +meshMotionModel noMeshMotion; + +regionModel allRegion; + +IOModel basicIO; + +probeModel off; + +dataExchangeModel twoWayMPI; + +averagingModel dilute; //dense;// + +clockModel off;//standardClock;// + +smoothingModel off;// localPSizeDiffSmoothing;// constDiffSmoothing; // + +forceModels +( + GidaspowDrag + gradPForce + viscForce +); + +energyModels +( + heatTransferGunn + reactionHeat +); + +thermCondModel SyamlalThermCond; + +chemistryModels +( + species + diffusionCoefficients + massTransferCoeff + // off +); + +momCoupleModels +( + implicitCouple +); + +turbulenceModelType "turbulenceProperties";//"LESProperties";// + +//===========================================================================// +// sub-model properties +reactionHeatProps +{ + reactionHeatName "reactionHeat"; + verbose false; +} + +heatTransferGunnProps +{ + partTempName "Temp"; + partHeatFluxName "convectiveHeatFlux"; + calcPartTempField true; + partRefTemp 1223.15; + implicit true; + verbose false; + interpolation false; +} + +speciesProps +{ + ChemistryFile "$FOAM_CASE/constant/foam.inp"; + Nevery 1; + verbose false; + interpolation false; +} + +diffusionCoefficientsProps +{ + verbose false; + interpolation false; + ChemistryFile "$FOAM_CASE/constant/foam.inp"; + diffusantGasNames ( CO + H2 + ); +} + +massTransferCoeffProps +{ + verbose false; + interpolation false; +} + +reactantPerParticleProps +{ +} + + +SyamlalThermCondProps +{ + voidfractionFieldName "voidfraction"; + rhoFieldName "rho"; +} + +LaEuScalarTempProps +{ + velFieldName "U"; + tempFieldName "T"; + voidfractionFieldName "voidfraction"; + partTempName "Temp"; + partHeatFluxName "convectiveHeatFlux"; + lambda 0.0256; + Cp 1007; +} + +localPSizeDiffSmoothingProps +{ + lowerLimit 0.1; + upperLimit 1e10; + dSmoothingLength 1.5e-3; + Csmoothing 1.0; +} + +constDiffSmoothingProps +{ + lowerLimit 0.1; + upperLimit 1e10; + smoothingLength 1.5e-3; +} + +implicitCoupleProps +{ + velFieldName "U"; + granVelFieldName "Us"; + voidfractionFieldName "voidfraction"; +} + +ArchimedesProps +{ + gravityFieldName "g"; +} + +gradPForceProps +{ + pFieldName "p"; + voidfractionFieldName "voidfraction"; + velocityFieldName "U"; + interpolation true; +} + +viscForceProps +{ + velocityFieldName "U"; + interpolation true; +} + +volWeightedAverageProps +{ + scalarFieldNames + ( + voidfraction + ); + vectorFieldNames + ( + ); + upperThreshold 0.999; + lowerThreshold 0; + verbose true; +} + +totalMomentumExchangeProps +{ + implicitMomExFieldName "Ksl"; + explicitMomExFieldName "none"; + fluidVelFieldName "U"; + granVelFieldName "Us"; +} + +GidaspowDragProps +{ + verbose true; + velFieldName "U"; + granVelFieldName "Us"; + voidfractionFieldName "voidfraction"; + interpolation true; + phi 1; +} + +BeetstraDragProps +{ + velFieldName "U"; + granVelFieldName "Us"; + gravityFieldName "g"; + voidfractionFieldName "voidfraction"; + interpolation false; + useFilteredDragModel ; + useParcelSizeDependentFilteredDrag; + rhoP 4630.; + dPrim 0.00022; + rho 1.58; + nuf 1.126e-05; + g 9.81; + k 0.05; + aLimit 0.0; + verbose false; +} + +DEMbasedDragProps +{ + velFieldName "U"; + voidfractionFieldName "voidfraction"; +} + +DiFeliceDragProps +{ + //verbose true; + velFieldName "U"; + voidfractionFieldName "voidfraction"; + granVelFieldName "Us"; + interpolation false; +} + +KochHillDragProps +{ + verbose true; + velFieldName "U"; + voidfractionFieldName "voidfraction"; + interpolation false; + implForceDEM true; +} + +RongDragProps +{ + verbose true; + velFieldName "U"; + voidfractionFieldName "voidfraction"; + interpolation false; + implForceDEM true; + implForceDEMaccumulated true; + granVelFieldName "Us"; +} + +virtualMassForceProps +{ + velFieldName "U"; +} + +particleCellVolumeProps +{ + upperThreshold 0.999; + lowerThreshold 0.; + verbose true; +} + +fieldStoreProps +{ + scalarFieldNames + ( + ); + + vectorFieldNames + ( + "U" + ); +} + +centreProps +{ + alphaMin 0.1; +} + +engineProps +{ + treeSearch true; +} + +turboEngineProps +{ + treeSearch true; +} + +turboEngineM2MProps +{ + turboEngineProps + { + treeSearch true; + } +} + +dividedProps +{ + alphaMin 0.01; + scaleUpVol 1.0; +} + +twoWayMPIProps +{ + liggghtsPath "../DEM/in.liggghts_run"; +} + +twoWayM2MProps +{ + maxNumberOfParticles 10100; + liggghtsPath "../DEM/in.liggghts_run"; +} +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/foam.dat b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/foam.dat new file mode 100644 index 00000000..ff3380e4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/foam.dat @@ -0,0 +1,111 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object foam.dat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +H2 +{ + specie + { + nMoles 1; + molWeight 2.02; + } + thermodynamics + { + Cp 15016.8; + Hf 2.544e+06; + } + transport + { + mu 8.42e-05; + Pr 0.76; + } +} +H2O +{ + specie + { + nMoles 1; + molWeight 18.015; + } + thermodynamics + { + Cp 2304.1; + Hf 2.544e+06; + } + transport + { + mu 1.7e-05; + Pr 0.99; + } +} + +CO +{ + specie + { + nMoles 1; + molWeight 28.01; + } + thermodynamics + { + Cp 1189.14; + Hf 2.544e+06; + } + transport + { + mu 1.66e-05; + Pr 0.792; + } +} + +CO2 +{ + specie + { + nMoles 1; + molWeight 44.01; + } + thermodynamics + { + Cp 1239.98; + Hf 2.544e+06; + } + transport + { + mu 1.37e-05; + Pr 0.69; + } +} + +N2 +{ + specie + { + nMoles 1; + molWeight 28.0134; + } + thermodynamics + { + Cp 1171.6; + Hf 2.544e+06; + } + transport + { + mu 1.66e-05; + Pr 0.69; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/foam.inp b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/foam.inp new file mode 100644 index 00000000..30c6371b --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/foam.inp @@ -0,0 +1,14 @@ +species +( + H2 + H2O + CO + CO2 + N2 +); + +reactions +{ +} + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/g b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/g new file mode 100644 index 00000000..abca4e14 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/g @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value ( 0 -9.81 0 ); + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/liggghtsCommands b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/liggghtsCommands new file mode 100644 index 00000000..ea16dec7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/liggghtsCommands @@ -0,0 +1,43 @@ +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.4 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + + +FoamFile +{ + version 2.0; + format ascii; + + root ""; + case ""; + instance ""; + local ""; + + class dictionary; + object liggghtsCommands; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +liggghtsCommandModels +( + runLiggghts + writeLiggghts +); +// ************************************************************************* // + +/*runLiggghtsProps +{ + preNo false; +}*/ + +writeLiggghtsProps +{ + writeLast on; + writeName "post/restart/liggghts.restartCFDEM"; + overwrite on; +} diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/polyMesh/blockMeshDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/polyMesh/blockMeshDict new file mode 100644 index 00000000..024f6e99 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/polyMesh/blockMeshDict @@ -0,0 +1,91 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant/polyMesh"; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1.0; + +vertices +( + (0 0 0) + (1.5 0 0) + (1.5 0.5 0) + (0 0.5 0) + (0 0 0.5) + (1.5 0 0.5) + (1.5 0.5 0.5) + (0 0.5 0.5) +); + +blocks +( + hex (0 1 2 3 4 5 6 7)(29 9 9) simpleGrading (1 1 1) + +); + +edges +( +); + +boundary +( + top + { + type wall; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + side-walls + { + type wall; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/polyMesh/cylinderMesh.m4 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/polyMesh/cylinderMesh.m4 new file mode 100644 index 00000000..f04f75be --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/polyMesh/cylinderMesh.m4 @@ -0,0 +1,153 @@ +// blockMesh : Block mesh description file +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant/polyMesh"; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + + + meshGenApp blockMesh; + convertToMeters 1; + + define(D, 0.075) //75 mm column diameter + define(L, 0.15) //150 mm length + define(PI, 3.14159265) + + define(R, calc(D/2)) + define(CW, calc(D/4)) //Width of middle square section + + define(CX, calc(R*cos((PI/180)*45))) + define(CZ, calc(R*sin((PI/180)*45))) + + define(NPS, 4) //how many cells in the square section + define(NPD, 2) //how many cells from square section to perimeter + define(NPY, 15) // how many cells from top to bottom + + vertices + ( + ( CW 0.0 CW) vlabel(fiveoclocksqb) + (-CW 0.0 CW) vlabel(sevenoclocksqb) + (-CW 0.0 -CW) vlabel(elevenoclocksqb) + ( CW 0.0 -CW) vlabel(oneoclocksqb) + + ( CX 0.0 CZ) vlabel(fiveoclockcb) + (-CX 0.0 CZ) vlabel(sevenoclockcb) + (-CX 0.0 -CZ) vlabel(elevenoclockcb) + ( CX 0.0 -CZ) vlabel(oneoclockcb) + + ( CW L CW) vlabel(fiveoclocksqt) + (-CW L CW) vlabel(sevenoclocksqt) + (-CW L -CW) vlabel(elevenoclocksqt) + ( CW L -CW) vlabel(oneoclocksqt) + + ( CX L CZ) vlabel(fiveoclockct) + (-CX L CZ) vlabel(sevenoclockct) + (-CX L -CZ) vlabel(elevenoclockct) + ( CX L -CZ) vlabel(oneoclockct) + ); + + blocks + ( + //square block + hex ( + sevenoclocksqb fiveoclocksqb oneoclocksqb elevenoclocksqb + sevenoclocksqt fiveoclocksqt oneoclocksqt elevenoclocksqt + ) + (NPS NPS NPY) + simpleGrading (1 1 1) + + //slice1 + hex ( + sevenoclockcb fiveoclockcb fiveoclocksqb sevenoclocksqb + sevenoclockct fiveoclockct fiveoclocksqt sevenoclocksqt + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + //slice2 + hex ( + sevenoclocksqb elevenoclocksqb elevenoclockcb sevenoclockcb + sevenoclocksqt elevenoclocksqt elevenoclockct sevenoclockct + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + //slice3 + hex ( + elevenoclocksqb oneoclocksqb oneoclockcb elevenoclockcb + elevenoclocksqt oneoclocksqt oneoclockct elevenoclockct + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + //slice4 + hex ( + oneoclocksqb fiveoclocksqb fiveoclockcb oneoclockcb + oneoclocksqt fiveoclocksqt fiveoclockct oneoclockct + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + ); + + + //create the quarter circles + edges + ( + arc fiveoclockcb sevenoclockcb (0.0 0.0 R) + arc sevenoclockcb elevenoclockcb (-R 0.0 0.0) + arc elevenoclockcb oneoclockcb (0.0 0.0 -R) + arc oneoclockcb fiveoclockcb (R 0.0 0.0) + + arc fiveoclockct sevenoclockct (0.0 L R) + arc sevenoclockct elevenoclockct (-R L 0.0) + arc elevenoclockct oneoclockct (0.0 L -R) + arc oneoclockct fiveoclockct (R L 0.0) + + ); + + patches + ( + patch inlet + ( + (fiveoclocksqb oneoclocksqb elevenoclocksqb sevenoclocksqb) + (fiveoclocksqb fiveoclockcb oneoclockcb oneoclocksqb) + (fiveoclockcb fiveoclocksqb sevenoclocksqb sevenoclockcb) + (sevenoclocksqb elevenoclocksqb elevenoclockcb sevenoclockcb) + (oneoclocksqb oneoclockcb elevenoclockcb elevenoclocksqb) + ) + + patch outlet + ( + (fiveoclocksqt oneoclocksqt elevenoclocksqt sevenoclocksqt) + (fiveoclocksqt fiveoclockct oneoclockct oneoclocksqt) + (fiveoclockct fiveoclocksqt sevenoclocksqt sevenoclockct) + (sevenoclocksqt elevenoclocksqt elevenoclockct sevenoclockct) + (oneoclocksqt oneoclockct elevenoclockct elevenoclocksqt) + ) + + wall wall + ( + (sevenoclockcb fiveoclockcb fiveoclockct sevenoclockct) + (sevenoclockcb sevenoclockct elevenoclockct elevenoclockcb) + (elevenoclockcb elevenoclockct oneoclockct oneoclockcb) + (oneoclockcb oneoclockct fiveoclockct fiveoclockcb) + ) + +); + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/thermophysicalProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/thermophysicalProperties new file mode 100644 index 00000000..e8ab5108 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/thermophysicalProperties @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; //hePsiThermo; // + mixture reactingMixture; //species and reactions are listed in chemistry file + transport const; //sutherland; //calcualtes viscosity as a function of temperature from Stuherland coefficient As and Ts + thermo hConst; //janaf; + equationOfState perfectGas; + energy sensibleInternalEnergy; //sensibleEnthalpy; + specie specie; +} + +chemistryReader foamChemistryReader; + +foamChemistryThermoFile "$FOAM_CASE/constant/foam.dat"; + +foamChemistryFile "$FOAM_CASE/constant/foam.inp"; + +inertSpecie N2; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/transportProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/transportProperties new file mode 100644 index 00000000..269b160e --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/transportProperties @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu nu [ 0 2 -1 0 0 0 0 ] 1.4117e-05; // kinematic viscosity of gas mixture + +kf kf [ 1 1 -3 -1 0 0 0 ] 0.0507; // comes from energy model + +Cp Cp [ 0 2 -2 -1 0 0 0 ] 1118.15; // comes from energy model + + +// ******* Non-Newtonian transport properties ************************ // +/*CrossPowerLawCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + m m [ 0 0 1 0 0 0 0 ] 1; + n n [ 0 0 0 0 0 0 0 ] 1; +} + +BirdCarreauCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + k k [ 0 0 1 0 0 0 0 ] 0; + n n [ 0 0 0 0 0 0 0 ] 1; +} +*/ +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/turbulenceProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/turbulenceProperties new file mode 100644 index 00000000..d1156961 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/constant/turbulenceProperties @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/controlDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/controlDict new file mode 100644 index 00000000..df901edf --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/controlDict @@ -0,0 +1,149 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application cfdemSolverRhoPimpleChem; + +startFrom startTime; + +startTime 0.0; + +stopAt endTime; + +endTime 1200.0; + +deltaT 1; + +writeControl timeStep; + +writeInterval 50; + +purgeWrite 10; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + +adjustTimeStep no; + +maxCo 0.5; + +maxDeltaT 0.1; + + +// ************************************************************************* // + libs ( + "libfieldFunctionObjects.so" + ); + +functions +{ + moleFrac + { + type rhoReactionThermoMoleFractions; + } + + probes1 + { + type probes; + + functionObjectLibs ("libsampling.so"); + + #include "probesDict"; + } + + + fieldMinMax_T + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (T); + // Report the location of the field extrema + location yes; + // Type of extrema for rank > 0 primitives + mode magnitude; // magnitude | component + } + + fieldMinMax_Cpv + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (Cpv); + // Report the location of the field extrema + location yes; + // Type of extrema for rank > 0 primitives + mode magnitude; // magnitude | component + } + + fieldMinMax_partTemp + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (partTemp); + location yes; + mode magnitude; + } + + globalMassFrac + { + type volRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep;//outputTime; + writeInterval 1; + log true; + writeFields false; + regionType all; + name c0; + operation weightedVolAverage; + weightField rhoeps; + fields + ( + H2 + CO2 + CO + N2 + H2O + ); + } + + globalMass + { + type volRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep;//outputTime; + writeInterval 1; + log true; + writeFields false; + regionType all; + name c1; + operation volIntegrate; + fields + ( + rhoeps + rho + ); + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/decomposeParDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/decomposeParDict new file mode 100644 index 00000000..c5dcd7c4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/decomposeParDict @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 2; + +//method scotch; +method simple; + +simpleCoeffs +{ + n (2 1 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n ( 1 1 1 ); + delta 0.001; + order xyz; +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots ( ); + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/fvOptions b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/fvOptions new file mode 100644 index 00000000..fd3e0929 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/fvOptions @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvOptions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +limitedTemperature +{ + type limitTemperature; + active yes; + limitTemperatureCoeffs + { + active yes; + selectionMode all; + Tmin 1200; + Tmax 2500; + } +} + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/fvSchemes b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/fvSchemes new file mode 100644 index 00000000..94b25f7e --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/fvSchemes @@ -0,0 +1,83 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(p) cellMDLimited leastSquares 0.5; + grad(U) cellMDLimited leastSquares 0.5; //cellLimited Gauss linear 1; // + grad(h) cellMDLimited leastSquares 0.5; + grad(e) cellMDLimited leastSquares 0.5; +} + +divSchemes +{ + default Gauss linear; + + div(phi,U) Gauss limitedLinear 1; //Gauss linear; //Gauss limitedLinearV 1; + div(phid,p) Gauss limitedLinear 1; //Gauss upwind; //Gauss limitedLinearV 1; + div(phi,K) Gauss limitedLinear 1; + div(phi,h) Gauss limitedLinear 1; //Gauss upwind; + div(phi,k) Gauss limitedLinear 1; //Gauss upwind; + div(phi,epsilon) Gauss limitedLinear 1; //Gauss upwind; + div(U) Gauss limitedLinear 1; + div(phi,Yi_h) Gauss multivariateSelection + { + CO limitedLinear01 1; + H2 limitedLinear01 1; + N2 limitedLinear01 1; + H2O limitedLinear01 1; + CO2 limitedLinear01 1; + h limitedLinear 1; + e limitedLinear 1; + } + //div((muEff*dev2(T(grad(U))))) Gauss linear; + div((viscousTerm*dev2(grad(U).T()))) Gauss linear; + div((thermo:mu*dev(grad(U).T()))) Gauss linear; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(phi,T) Gauss limitedLinear 1; +} + +laplacianSchemes +{ + default Gauss linear corrected; //Gauss linear orthogonal; +} + +interpolationSchemes +{ + default linear; + interpolate(U) linear; +} + +snGradSchemes +{ + default corrected; //orthogonal; +} + +fluxRequired +{ + default no; + p ; +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/fvSolution b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/fvSolution new file mode 100644 index 00000000..2ebb617d --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/fvSolution @@ -0,0 +1,131 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +solvers +{ + p + { + solver PCG; + preconditioner DIC; + tolerance 1e-6; + relTol 0.01; + /*solver GAMG; + tolerance 1e-06; + relTol 0.01; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + cacheAgglomeration on; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; */ + } + + pFinal + { + $p; + tolerance 1e-06; + relTol 0; + } + + "(rho|G)" + { + solver PCG; + preconditioner DIC; + tolerance 1e-6; + relTol 0.01; + /*solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-6; + relTol 0.1; + nSweeps 3;*/ + } + + "(rho|G)Final" + { + $rho; + tolerance 1e-06; + relTol 0; + } + + "(U|h|e|R|k|epsilon)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "(U|h|e|R|k|epsilon)Final" + { + $U; + tolerance 1e-05; + relTol 0; + } + + "(Yi|CO|CO2|H2|H2O|N2)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-06; + relTol 0.01; + maxIter 100; + } + + "(Yi|CO|CO2|H2|H2O|N2)Final" + { + $Yi; + tolerance 1e-06; + relTol 0; + maxIter 100; + } + + T + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-8; + relTol 0; + } +} + +PIMPLE +{ + momentumPredictor yes; + nOuterCorrectors 5; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + rhoMin rhoMin [ 1 -3 0 0 0 ] 0.4; + rhoMax rhoMax [ 1 -3 0 0 0 ] 2.0; +} + +relaxationFactors +{ + fields + { + T 0.5; + "(Yi|CO|CO2|H2|H2O|N2)" 0.6; + p 0.6; + } + equations + { + ".*" 0.8; + "(h|e).*" 0.5; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/probesDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/probesDict new file mode 100644 index 00000000..650dd353 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/CFD/system/probesDict @@ -0,0 +1,54 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.1.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object probesDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + + +fields +( + rho + p + T + Cpv + N2 + CO2 + CO + H2 + H2O + ModSpeciesMassField_N2 + ModSpeciesMassField_CO2 + ModSpeciesMassField_CO + ModSpeciesMassField_H2 + ModSpeciesMassField_H2O + X_CO + X_CO2 + X_H2 + X_N2 + X_H2O +); + +writeControl timeStep; +writeInterval 50; + + +// Locations to be probed. +probeLocations +( + (7.0 2.5 2.5) + (8.0 2.5 2.5) + (1.0 2.5 2.5) +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/DEM/in.liggghts_init b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/DEM/in.liggghts_init new file mode 100644 index 00000000..161b494d --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/DEM/in.liggghts_init @@ -0,0 +1,59 @@ +# Particle insertion into domain +atom_style granular +atom_modify map array +echo both + +communicate single vel yes + +boundary f f f +newton off + +units si +processors 2 1 1 + +region reg block 0. 1.5 0. 0.5 0. 0.5 units box +create_box 1 reg + +neighbor 0.0005 bin +neigh_modify delay 0 + +# Material properties required for granular pair styles +fix m1 all property/global youngsModulus peratomtype 5.e6 +fix m2 all property/global poissonsRatio peratomtype 0.45 +fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3 +fix m4 all property/global coefficientFriction peratomtypepair 1 0.5 + +# pair style +pair_style gran model hertz tangential history +pair_coeff * * + +# timestep, gravity +timestep 1e-2 +fix gravi all gravity 0.0 vector 0.0 -1.0 0.0 + +# walls +fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0 +fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 1.5 +fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.0 +fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.5 +fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0 +fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.5 + +# create single particle in a specific spot +create_atoms 1 single 0.75 0.25 0.25 units box +set atom 1 diameter 0.01106028 density 4300 vx 0 vy 0 vz 0 + +# screen output +compute rke all erotate/sphere +thermo_style custom step atoms ke c_rke vol +thermo 1000 +thermo_modify lost ignore norm no +compute_modify thermo_temp dynamic yes + +# insert the first particles so that dump is not empty +run 1 +dump dmp all custom 100 post/dump.liggghts_init id type x y z vx vy vz fx fy fz radius mass + +run 10 upto + +write_restart ../DEM/post/restart/liggghts.restart diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/DEM/in.liggghts_run b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/DEM/in.liggghts_run new file mode 100644 index 00000000..768b1abf --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/DEM/in.liggghts_run @@ -0,0 +1,214 @@ +# chemistry test case +log ../DEM/log.liggghts +thermo_log ../DEM/post/thermo.txt + +atom_style granular +atom_modify map array +communicate single vel yes + +boundary f f f +newton off + +units si +processors 2 1 1 + +# read the restart file +read_restart ../DEM/post/restart/liggghts.restart + +neighbor 0.0005 bin +neigh_modify delay 0 + +# Material properties required for granular pair styles + +fix m1 all property/global youngsModulus peratomtype 5.e6 +fix m2 all property/global poissonsRatio peratomtype 0.45 +fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3 +fix m4 all property/global coefficientFriction peratomtypepair 1 0.5 + +# pair style +pair_style gran model hertz tangential history +pair_coeff * * + +# timestep, gravity +timestep 0.02 +fix gravi all gravity 9.81 vector 0.0 -1.0 0.0 + +# walls +fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0 +fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 1.5 +fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.0 +fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.5 +fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0 +fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.5 + +# Thermal properties +fix ftco all property/global thermalConductivity peratomtype 1.4 +fix ftca all property/global thermalCapacity peratomtype 3000 + +############################################### + +# cfd coupling +fix cfd all couple/cfd couple_every 50 mpi +fix cfd2 all couple/cfd/force + +# this one invokes heat transfer calculation, transfers per-particle temperature and adds convective heat flux to particles +fix tconv all couple/cfd/convection T0 1221 + +# this should invoke chemistry +fix cfd3 all couple/cfd/chemistry n_species 5 species_names H2 H2O CO CO2 N2 n_diff 2 diffusant_names CO H2 + +# Activate for 3-layer unreacted core shrink model +fix cfd5 all chem/shrink/core speciesA CO molMassA 0.02801 speciesC CO2 molMassC 0.04401 scale_reduction_rate 10.0 screen yes +fix cfd6 all chem/shrink/core speciesA H2 molMassA 0.00202 speciesC H2O molMassC 0.01801 scale_reduction_rate 10.0 screen yes + +# Chemical properties for unreacted shrink core (activate only when chem/shrink/core is active) +fix k0_CO all property/atom k0_cfd5 vector yes no no 17 25 2700 +fix Ea_CO all property/atom Ea_cfd5 vector yes no no 69488 73674 113859 + +fix k0_H2 all property/atom k0_cfd6 vector yes no no 30 23 160 +fix Ea_H2 all property/atom Ea_cfd6 vector yes no no 63627 71162 92092 + +# particle porosity/tortuosity/pore diameter +fix porosity all property/atom porosity_ vector yes no no 0.65 0.31 0.16 0.15 +fix tortuosity all property/global tortuosity_ scalar 3 +fix pore_diameter all property/global pore_diameter_ scalar 7e-7 + +# define layer properties +fix LayerRelRadii all property/atom relRadii vector yes no no 1.0 0.998 0.995 0.98 + +### define fix for mass layer - initial testing +fix LayerMasses all property/atom massLayer vector yes no no 0. 0. 0. 0. +fix LayerDennsities all property/global density_all vector 7870. 5740. 5170. 5240. + +## define fix for rho_eff and fracRed - initialize as zero +fix fracRed all property/atom fracRed_all vector yes no no 0. 0. 0. +fix rhoeff all property/atom rhoeff vector yes no no 0. 0. 0. 0. + +############### +# Write data into files for post-processing + +variable WI equal 10 +variable time equal time +variable m1 equal mass[1] +variable rp equal radius[1] +variable rho1 equal mass[1]/((4/3)*PI*radius[1]*radius[1]*radius[1]) + +fix printmass all print ${WI} "${time} ${m1} ${rho1} ${rp}" file mass_rho_rad.txt title "#time mass rho rad_par" + +# compute kinetic energy of particles to see if they are moving changing +compute KinEn all ke +variable ke_tot equal c_KinEn + +# print total kinetic energy +fix printCompute all print ${WI} "${time} ${ke_tot}" file printKE.txt title "#time ke_tot" + +compute Ea_CO all reduce sum f_Ea_CO[1] f_Ea_CO[2] f_Ea_CO[3] +fix Ea all ave/time 1 1 1 c_Ea_CO[1] c_Ea_CO[2] c_Ea_CO[3] +variable Ea1 equal f_Ea[1] +variable Ea2 equal f_Ea[2] +variable Ea3 equal f_Ea[3] + +compute k0CO all reduce sum f_k0_CO[1] f_k0_CO[2] f_k0_CO[3] +fix k0 all ave/time 1 1 1 c_k0CO[1] c_k0CO[2] c_k0CO[3] +variable k01 equal f_k0[1] +variable k02 equal f_k0[2] +variable k03 equal f_k0[3] + +fix printk0Ea all print ${WI} "${time} ${Ea1} ${Ea2} ${Ea3} ${k01} ${k02} ${k03}" file k0Ea.dat title "#time Ea1 Ea2 Ea3 k01 k02 k03" + +############### +# Print out values affecting chemical reduction into specified folder for given time +# Diffusion Coefficient for CO and H2 + +compute COdiff all reduce sum f_CO_diffCoeff +fix diffField_CO all ave/time 1 1 1 c_COdiff +variable CO_diffCo equal f_diffField_CO + +fix printDCoeff all print ${WI} "${time} ${CO_diffCo}" file DiffCoeff.dat title "#time CO_diffCoeff" + +############### +# Specific Resistance terms depending on reacting gases + +compute ACOd1 all reduce sum f_Aterm_cfd5[1] f_Aterm_cfd5[2] f_Aterm_cfd5[3] +fix ACOd1 all ave/time 1 1 1 c_ACOd1[1] c_ACOd1[2] c_ACOd1[3] +variable a_CO_1 equal f_ACOd1[1] +variable a_CO_2 equal f_ACOd1[2] +variable a_CO_3 equal f_ACOd1[3] + +compute BCOd1 all reduce sum f_Bterm_cfd5[1] f_Bterm_cfd5[2] f_Bterm_cfd5[3] +fix BCOd1 all ave/time 10 1 10 c_BCOd1[1] c_BCOd1[2] c_BCOd1[3] +variable b_CO_1 equal f_BCOd1[1] +variable b_CO_2 equal f_BCOd1[2] +variable b_CO_3 equal f_BCOd1[3] + +compute MCOd1 all reduce sum f_Massterm_cfd5 +fix MTCOd1 all ave/time 10 1 10 c_MCOd1 +variable mt_CO equal f_MTCOd1 + +fix printAterm all print ${WI} "${time} ${a_CO_1} ${a_CO_2} ${a_CO_3}" file Aterm.dat title "#time a_CO_1 aCO_2 a_CO_3" + +fix printBterm all print ${WI} "${time} ${b_CO_1} ${b_CO_2} ${b_CO_3}" file Bterm.dat title "#time b_CO_1 b_CO_2 b_CO_3" + +fix printMassTerm all print ${WI} "${time} ${mt_CO}" file MassTerm.dat title "#time mt_CO" + +# Print out fractional reduction for specific diameter ranges as well as total fractional reduction + +############### +# print out rate change of mass for gaseous reactant +compute dmdot all reduce sum f_dmA_cfd5[1] f_dmA_cfd5[2] f_dmA_cfd5[3] +fix dmA_val all ave/time 1 1 1 c_dmdot[1] c_dmdot[2] c_dmdot[3] +variable dmdot_1 equal f_dmA_val[1] +variable dmdot_2 equal f_dmA_val[2] +variable dmdot_3 equal f_dmA_val[3] + +fix printdmdot all print ${WI} "${time} ${dmdot_1} ${dmdot_2} ${dmdot_3}" file dmdot.dat title "#time dmdot_1 dmdot_2 dmdot_3" + +compute dmdot_H2 all reduce sum f_dmA_cfd6[1] f_dmA_cfd6[2] f_dmA_cfd6[3] +fix dmA_valH2 all ave/time 1 1 1 c_dmdot_H2[1] c_dmdot_H2[2] c_dmdot_H2[3] +variable dmdot_H2_1 equal f_dmA_valH2[1] +variable dmdot_H2_2 equal f_dmA_valH2[2] +variable dmdot_H2_3 equal f_dmA_valH2[3] + +fix printdmdotH2 all print ${WI} "${time} ${dmdot_H2_1} ${dmdot_H2_2} ${dmdot_H2_3}" file dmdotH2.dat title "#time dmdot_1 dmdot_2 dmdot_3" + +compute fr_1 all reduce sum f_fracRed[1] f_fracRed[2] f_fracRed[3] +fix fr_d1 all ave/time 1 1 1 c_fr_1[1] c_fr_1[2] c_fr_1[3] +variable fr_d1_1 equal f_fr_d1[1] +variable fr_d1_2 equal f_fr_d1[2] +variable fr_d1_3 equal f_fr_d1[3] + +# Calculate total fractional reduction to be written into the dump file for postProcessing/graphical representation +variable frOV_d1 equal 1/9*(f_fr_d1[3])+2/9*(f_fr_d1[2])+6/9*(f_fr_d1[1]) + +fix printfr1 all print ${WI} "${time} ${fr_d1_1} ${fr_d1_2} ${fr_d1_3} ${frOV_d1}" file fr_d1.dat title "#time fr_d1_1 fr_d1_2 fr_d1_3 fr_overall_d1" + +############################################### +## Check Layer Radii and Write them to files ### +compute layerRad1 all reduce sum f_LayerRelRadii[1] +fix redRad1 all ave/time 1 1 1 c_layerRad1 +variable rr1 equal f_redRad1 + +compute layerRad2 all reduce sum f_LayerRelRadii[2] +fix redRad2 all ave/time 1 1 1 c_layerRad2 +variable rr2 equal f_redRad2 + +compute layerRad3 all reduce sum f_LayerRelRadii[3] +fix redRad3 all ave/time 1 1 1 c_layerRad3 +variable rr3 equal f_redRad3 + +compute layerRad4 all reduce sum f_LayerRelRadii[4] +fix redRad4 all ave/time 1 1 1 c_layerRad4 +variable rr4 equal f_redRad4 + +fix printRelRadii all print ${WI} "${time} ${rr1} ${rr2} ${rr3} ${rr4}" file relRadii.dat title "#time relRad_1 relRad_2 relRad_3 relRad_4" +############### + +# screen output +compute rke all erotate/sphere +thermo_style custom step atoms ke c_rke vol +thermo 10 +thermo_modify lost ignore norm no +compute_modify thermo_temp dynamic yes + +dump dmp all custom 100 ../DEM/post/dump*.liggghts_run id type x y z vx vy vz fx fy fz radius mass f_fracRed[1] f_fracRed[2] f_fracRed[3] +run 1 diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/DEM/post/restart/.gitignore b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/DEM/post/restart/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/README b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/README new file mode 100644 index 00000000..098b9828 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/README @@ -0,0 +1,5 @@ +NOTICE::VALIPOUR CORRELATION FOR KEQ + VALIPOUR VALUES FOR Ea + INCREASE DEM TS TO 0.01 + H2 REDUCTION IS ALSO CONSIDERED. + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/parCFDDEMrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/parCFDDEMrun.sh new file mode 100755 index 00000000..d8476cfe --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/parCFDDEMrun.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +#===================================================================# +# allrun script for testcase +# M. Efe Kinaci - Sep 2019 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +#--------------------------------------------------------------------------------# +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +logpath=$casePath +headerText="33CO3H2_Hematite" +logfileName="log_$headerText" +solverName="cfdemSolverRhoPimpleChem" +nrProcs="2" +machineFileName="none" # yourMachinefileName | none +debugMode="off" # on | off| strict +testHarnessPath="$CFDEM_TEST_HARNESS_PATH" +runOctave="false" +postproc="false" + +#--------------------------------------------------------------------------------# + +#- call function to run a parallel CFD-DEM case +parCFDDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode + + +if [ $runOctave == "true" ] + then + #------------------------------# + # octave + + #- change path + cd octave + + #- rmove old graph + rm cfdemSolverPiso_ErgunTestMPI.eps + + #- run octave + octave totalPressureDrop.m + + #- show plot + evince cfdemSolverPiso_ErgunTestMPI.eps + + #- copy log file to test harness + cp ../../$logfileName $testHarnessPath + cp cfdemSolverPiso_ErgunTestMPI.eps $testHarnessPath +fi + +if [ $postproc == "true" ] + then + + #- keep terminal open (if started in new terminal) + echo "simulation finished? ...press enter to proceed" + read + + #- get VTK data from liggghts dump file + cd $casePath/DEM/post + python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_run + + #- get VTK data from CFD sim + cd $casePath/CFD + reconstructPar + foamToVTK #- serial run of foamToVTK + #source $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/functions.sh #- include functions + #pseudoParallelRun "foamToVTK" $nrPostProcProcessors #- pseudo parallel run of foamToVTK + + #- start paraview + paraview + + #- keep terminal open (if started in new terminal) + echo "...press enter to clean up case" + echo "press Ctr+C to keep data" + read + +fi + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/parDEMrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/parDEMrun.sh new file mode 100755 index 00000000..bdf87ec6 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/parDEMrun.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +#===================================================================# +# DEMrun script for testcase +# M. Efe Kinaci - Sep 2019 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +echo "starting DEM run in parallel..." +#--------------------------------------------------------------------------------# +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +logpath="$casePath" +headerText="run_liggghts_init_DEM" +logfileName="log_$headerText" +solverName="in.liggghts_init" +nrProcs=2 +machineFileName="none" +debugMode="off" +#--------------------------------------------------------------------------------# + +#- call function to run DEM case +parDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/postrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/postrun.sh new file mode 100755 index 00000000..06624406 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/postrun.sh @@ -0,0 +1,19 @@ +#!/bin/bash +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" + +#- get VTK data from liggghts dump file +cd $casePath/DEM/post +python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_run + +#- get VTK data from CFD sim +cd $casePath/CFD +reconstructPar +foamToVTK + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/prerun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/prerun.sh new file mode 100755 index 00000000..7b370ae7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/prerun.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" + +# check if mesh was built +if [ -f "$casePath/CFD/constant/polyMesh/boundary" ]; then + echo "mesh was built before - using old mesh" +else + echo "mesh needs to be built" + cd $casePath/CFD + blockMesh +fi \ No newline at end of file diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/run.config b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/run.config new file mode 100644 index 00000000..17e0cac4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/run.config @@ -0,0 +1,20 @@ +{ + "type" : "CFDEMcoupling", + "runs" : [ + { + "name" : "liggghts-init", + "input_script" : "DEM/in.liggghts_init", + "type" : "liggghts/mpi", + "nprocs" : 2 + }, + { + "name" : "cfdemrun", + "depends_on" : "liggghts-init", + "solver" : "cfdemSolverRhoPimpleChem", + "type" : "CFDEMcoupling/mpi", + "nprocs" : 2, + "pre_scripts" : ["prerun.sh"], + "post_scripts" : ["postrun.sh"] + } + ] +} diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/runTestCase b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/runTestCase new file mode 100644 index 00000000..cf006228 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/33CO3H2_Hematite/runTestCase @@ -0,0 +1,19 @@ +#!/bin/bash +#PBS -o fb.out +#PBS -V +#PBS -k oe +#PBS -j oe +#PBS -l nodes=1:ppn=4 +#PBS -l walltime=24:00:00 +#PBS -m ae +#PBS -M mustafa_efe.kinaci@jku.at + +source ~/.bashrc +source /apps/openfoam-4.0/OpenFOAM-4.x-version-4.0/etc/bashrc +source $HOME/CFDEM/CFDEMcoupling/etc/bashrc +module add icc gcc + +caseDir=$HOME/CFDEM/CFDEMcoupling/tutorials/cfdemSolverRhoPimpleChem/test_case +cd $caseDir + +./Allrun.sh diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/Allclean.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/Allclean.sh new file mode 100755 index 00000000..b2a417c8 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/Allclean.sh @@ -0,0 +1,18 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cd CFD +cleanCase +cd - + +rm -f log* + +rm -r ./DEM/post +mkdir ./DEM/post +mkdir ./DEM/post/restart +touch ./DEM/post/restart/.gitignore + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/Allrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/Allrun.sh new file mode 100755 index 00000000..0c4e9bba --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/Allrun.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +#===================================================================# +# allrun script for testcase +# M. Efe Kinaci - Sep 2018 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +export casePath + +#cd $casePath/CFD +#blockMesh + +#$casePath/parDEMrun.sh + +#bash $casePath/parCFDDEMrun.sh + +export casePath +# check if mesh was built +if [ -f "$casePath/CFD/constant/polyMesh/points" ]; then + echo "mesh was built before - using old mesh" +else + echo "mesh needs to be built" + cd $casePath/CFD + blockMesh +fi + +if [ -f "$casePath/DEM/post/restart/liggghts.restart" ]; then + echo "LIGGGHTS init was run before - using existing restart file" +else + #- run DEM in new terminal + $casePath/parDEMrun.sh +fi + +#echo "Run Simulation" +#cd $casePath/CFD +#decomposePar +#mpirun -np $nrProcs $solverName -parallel | tee -a $logfileName + +#- run parallel CFD-DEM in new terminal +#gnome-terminal -e "bash $casePath/parCFDDEMrun.sh" +bash $casePath/parCFDDEMrun.sh diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/CO b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/CO new file mode 100644 index 00000000..cbd11c21 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/CO @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object CO; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.351; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.351; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/CO2 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/CO2 new file mode 100644 index 00000000..3a922f64 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/CO2 @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object CO2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.00614; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/Ksl b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/Ksl new file mode 100644 index 00000000..bc087769 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/Ksl @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object Ksl; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -3 -1 0 0 0 0]; + +internalField uniform 0.0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/N2 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/N2 new file mode 100644 index 00000000..c1466114 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/N2 @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object N2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.5865; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.5865; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/Qsource b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/Qsource new file mode 100644 index 00000000..64313b48 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/Qsource @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object Qsource; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -3 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/T b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/T new file mode 100644 index 00000000..cbc85280 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/T @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 1223.15; // 950 + 273.15 + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 1223.15; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/U b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/U new file mode 100644 index 00000000..f50a655f --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/U @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0.011 0 0); + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type fixedValue; + value uniform (0.011 0 0); + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/Us b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/Us new file mode 100644 index 00000000..4e80604a --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/Us @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object Us; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/alphat b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/alphat new file mode 100644 index 00000000..5176c807 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/alphat @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/epsilon b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/epsilon new file mode 100644 index 00000000..9810c397 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/epsilon @@ -0,0 +1,53 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 0.003; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + // If turbulence is present + /* + * type compressible::turbulentMixingLengthDissipationRateInlet; + * mixingLength 0.005; + * value uniform 200; + */ + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/k b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/k new file mode 100644 index 00000000..b076e39a --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/k @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.001; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/mut b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/mut new file mode 100644 index 00000000..612df953 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/mut @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object mut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/nut b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/nut new file mode 100644 index 00000000..0027f055 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/nut @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/p b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/p new file mode 100644 index 00000000..4af5d3be --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/p @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 101325; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/p.org b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/p.org new file mode 100644 index 00000000..af41df32 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/p.org @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 101325; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/rho b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/rho new file mode 100644 index 00000000..a5f53ea7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/rho @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object rho; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -3 0 0 0 0 0]; + +internalField uniform 1.14; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/voidfraction b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/voidfraction new file mode 100644 index 00000000..6f3a5b0b --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/0/voidfraction @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object voidfraction; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/chemistryProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/chemistryProperties new file mode 100644 index 00000000..f95868bd --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/chemistryProperties @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object chemistryProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +chemistry off; //on; + +/* +chemistryType +{ + chemistrySolver ode; + chemistryThermo rho; +} + +initialChemicalTimeStep 1e-07; + +EulerImplicitCoeffs +{ + cTauChem 0.05; + equilibriumRateLimiter off; +} + +odeCoeffs +{ + solver seulex; + eps 0.05; +} */ + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/combustionProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/combustionProperties new file mode 100644 index 00000000..c5b934a4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/combustionProperties @@ -0,0 +1,34 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object combustionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +combustionModel noCombustion; //PaSR; //PaSR; + +active false; //true; + +noCombustionCoeffs +{ +} + + +PaSRCoeffs +{ + Cmix 1.0; + turbulentReaction off; +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/couplingProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/couplingProperties new file mode 100644 index 00000000..2d83d6f8 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/couplingProperties @@ -0,0 +1,346 @@ +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.4 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + + +FoamFile +{ + version 2.0; + format ascii; + + root ""; + case ""; + instance ""; + local ""; + + class dictionary; + object couplingProperties; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +//===========================================================================// +// sub-models & settings + +modelType "A"; // A or B + +couplingInterval 50; + +voidFractionModel divided;//centre;// + +locateModel engine; //turboEngineM2M;// + +meshMotionModel noMeshMotion; + +regionModel allRegion; + +IOModel basicIO; + +probeModel off; + +dataExchangeModel twoWayMPI; + +averagingModel dilute; //dense;// + +clockModel off;//standardClock;// + +smoothingModel off;// localPSizeDiffSmoothing;// constDiffSmoothing; // + +forceModels +( + GidaspowDrag + gradPForce + viscForce +); + +energyModels +( + heatTransferGunn + reactionHeat +); + +thermCondModel SyamlalThermCond; + +chemistryModels +( + species + diffusionCoefficients + massTransferCoeff + // off +); + +momCoupleModels +( + implicitCouple +); + +turbulenceModelType "turbulenceProperties";//"LESProperties";// + +//===========================================================================// +// sub-model properties +reactionHeatProps +{ + reactionHeatName "reactionHeat"; + verbose false; +} + +heatTransferGunnProps +{ + partTempName "Temp"; + partHeatFluxName "convectiveHeatFlux"; + calcPartTempField true; + partRefTemp 1223.15; + implicit true; + verbose false; + interpolation false; +} + +speciesProps +{ + ChemistryFile "$FOAM_CASE/constant/foam.inp"; + Nevery 1; + verbose false; + interpolation false; +} + +diffusionCoefficientsProps +{ + verbose false; + interpolation false; + ChemistryFile "$FOAM_CASE/constant/foam.inp"; + diffusantGasNames ( CO + ); +} + +massTransferCoeffProps +{ + verbose false; + interpolation false; +} + +reactantPerParticleProps +{ +} + +SyamlalThermCondProps +{ + voidfractionFieldName "voidfraction"; + rhoFieldName "rho"; +} + +LaEuScalarTempProps +{ + velFieldName "U"; + tempFieldName "T"; + voidfractionFieldName "voidfraction"; + partTempName "Temp"; + partHeatFluxName "convectiveHeatFlux"; + lambda 0.0256; + Cp 1007; +} + +localPSizeDiffSmoothingProps +{ + lowerLimit 0.1; + upperLimit 1e10; + dSmoothingLength 1.5e-3; + Csmoothing 1.0; +} + +constDiffSmoothingProps +{ + lowerLimit 0.1; + upperLimit 1e10; + smoothingLength 1.5e-3; +} + +implicitCoupleProps +{ + velFieldName "U"; + granVelFieldName "Us"; + voidfractionFieldName "voidfraction"; +} + +ArchimedesProps +{ + gravityFieldName "g"; +} + +gradPForceProps +{ + pFieldName "p"; + voidfractionFieldName "voidfraction"; + velocityFieldName "U"; + interpolation true; +} + +viscForceProps +{ + velocityFieldName "U"; + interpolation true; +} + +volWeightedAverageProps +{ + scalarFieldNames + ( + voidfraction + ); + vectorFieldNames + ( + ); + upperThreshold 0.999; + lowerThreshold 0; + verbose true; +} + +totalMomentumExchangeProps +{ + implicitMomExFieldName "Ksl"; + explicitMomExFieldName "none"; + fluidVelFieldName "U"; + granVelFieldName "Us"; +} + +GidaspowDragProps +{ + verbose true; + velFieldName "U"; + granVelFieldName "Us"; + voidfractionFieldName "voidfraction"; + interpolation true; + phi 1; +} + +BeetstraDragProps +{ + velFieldName "U"; + granVelFieldName "Us"; + gravityFieldName "g"; + voidfractionFieldName "voidfraction"; + interpolation false; + useFilteredDragModel ; + useParcelSizeDependentFilteredDrag; + rhoP 4630.; + dPrim 0.00022; + rho 1.58; + nuf 1.126e-05; + g 9.81; + k 0.05; + aLimit 0.0; + verbose false; +} + +DEMbasedDragProps +{ + velFieldName "U"; + voidfractionFieldName "voidfraction"; +} + +DiFeliceDragProps +{ + velFieldName "U"; + voidfractionFieldName "voidfraction"; + granVelFieldName "Us"; + interpolation false; +} + +KochHillDragProps +{ + verbose true; + velFieldName "U"; + voidfractionFieldName "voidfraction"; + interpolation false; + implForceDEM true; +} + +RongDragProps +{ + verbose true; + velFieldName "U"; + voidfractionFieldName "voidfraction"; + interpolation false; + implForceDEM true; + implForceDEMaccumulated true; + granVelFieldName "Us"; +} + +virtualMassForceProps +{ + velFieldName "U"; +} + +particleCellVolumeProps +{ + upperThreshold 0.999; + lowerThreshold 0.; + verbose true; +} + +fieldStoreProps +{ + scalarFieldNames + ( + ); + + vectorFieldNames + ( + "U" + ); +} + +oneWayVTKProps +{ + couplingFilename "vtk_out%4.4d.vtk"; + maxNumberOfParticles 30000; +} + +twoWayFilesProps +{ + maxNumberOfParticles 10100; +} + +centreProps +{ + alphaMin 0.1; +} + +engineProps +{ + treeSearch true; +} + +turboEngineProps +{ + treeSearch true; +} + +turboEngineM2MProps +{ + turboEngineProps + { + treeSearch true; + } +} + +dividedProps +{ + alphaMin 0.01; + scaleUpVol 1.0; +} + +twoWayMPIProps +{ + liggghtsPath "../DEM/in.liggghts_run"; +} + +twoWayM2MProps +{ + maxNumberOfParticles 10100; + liggghtsPath "../DEM/in.liggghts_run"; +} +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/foam.dat b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/foam.dat new file mode 100644 index 00000000..aa44b49c --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/foam.dat @@ -0,0 +1,112 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object foam.dat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +H2 +{ + specie + { + nMoles 1; + molWeight 2.02; + } + thermodynamics + { + Cp 15016.8; + Hf 2.544e+06; + } + transport + { + mu 8.42e-05; + Pr 0.76; + } +} + +H2O +{ + specie + { + nMoles 1; + molWeight 18.015; + } + thermodynamics + { + Cp 2304.1; + Hf 2.544e+06; + } + transport + { + mu 1.7e-05; + Pr 0.99; + } +} + +CO +{ + specie + { + nMoles 1; + molWeight 28.01; + } + thermodynamics + { + Cp 1189.14; + Hf 2.544e+06; + } + transport + { + mu 1.66e-05; + Pr 0.792; + } +} + +CO2 +{ + specie + { + nMoles 1; + molWeight 44.01; + } + thermodynamics + { + Cp 1239.98; + Hf 2.544e+06; + } + transport + { + mu 1.37e-05; + Pr 0.69; + } +} + +N2 +{ + specie + { + nMoles 1; + molWeight 28.0134; + } + thermodynamics + { + Cp 1171.6; + Hf 2.544e+06; + } + transport + { + mu 1.66e-05; + Pr 0.69; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/foam.inp b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/foam.inp new file mode 100644 index 00000000..2502dbe4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/foam.inp @@ -0,0 +1,12 @@ +species +( + CO + CO2 + N2 +); + +reactions +{ +} + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/g b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/g new file mode 100644 index 00000000..abca4e14 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/g @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value ( 0 -9.81 0 ); + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/liggghtsCommands b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/liggghtsCommands new file mode 100644 index 00000000..ea16dec7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/liggghtsCommands @@ -0,0 +1,43 @@ +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.4 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + + +FoamFile +{ + version 2.0; + format ascii; + + root ""; + case ""; + instance ""; + local ""; + + class dictionary; + object liggghtsCommands; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +liggghtsCommandModels +( + runLiggghts + writeLiggghts +); +// ************************************************************************* // + +/*runLiggghtsProps +{ + preNo false; +}*/ + +writeLiggghtsProps +{ + writeLast on; + writeName "post/restart/liggghts.restartCFDEM"; + overwrite on; +} diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/polyMesh/blockMeshDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/polyMesh/blockMeshDict new file mode 100644 index 00000000..024f6e99 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/polyMesh/blockMeshDict @@ -0,0 +1,91 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant/polyMesh"; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1.0; + +vertices +( + (0 0 0) + (1.5 0 0) + (1.5 0.5 0) + (0 0.5 0) + (0 0 0.5) + (1.5 0 0.5) + (1.5 0.5 0.5) + (0 0.5 0.5) +); + +blocks +( + hex (0 1 2 3 4 5 6 7)(29 9 9) simpleGrading (1 1 1) + +); + +edges +( +); + +boundary +( + top + { + type wall; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + side-walls + { + type wall; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/polyMesh/cylinderMesh.m4 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/polyMesh/cylinderMesh.m4 new file mode 100644 index 00000000..6049a4cd --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/polyMesh/cylinderMesh.m4 @@ -0,0 +1,153 @@ +// blockMesh : Block mesh description file +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant/polyMesh"; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + + + meshGenApp blockMesh; + convertToMeters 1; + + define(D, 0.075) //75 mm column diameter + define(L, 0.15) //150 mm length + define(PI, 3.14159265) + + define(R, calc(D/2)) + define(CW, calc(D/4)) //Width of middle square section + + define(CX, calc(R*cos((PI/180)*45))) + define(CZ, calc(R*sin((PI/180)*45))) + + define(NPS, 4) //how many cells in the square section + define(NPD, 2) //how many cells from square section to perimeter + define(NPY, 15) // how many cells from top to bottom + + vertices + ( + ( CW 0.0 CW) vlabel(fiveoclocksqb) + (-CW 0.0 CW) vlabel(sevenoclocksqb) + (-CW 0.0 -CW) vlabel(elevenoclocksqb) + ( CW 0.0 -CW) vlabel(oneoclocksqb) + + ( CX 0.0 CZ) vlabel(fiveoclockcb) + (-CX 0.0 CZ) vlabel(sevenoclockcb) + (-CX 0.0 -CZ) vlabel(elevenoclockcb) + ( CX 0.0 -CZ) vlabel(oneoclockcb) + + ( CW L CW) vlabel(fiveoclocksqt) + (-CW L CW) vlabel(sevenoclocksqt) + (-CW L -CW) vlabel(elevenoclocksqt) + ( CW L -CW) vlabel(oneoclocksqt) + + ( CX L CZ) vlabel(fiveoclockct) + (-CX L CZ) vlabel(sevenoclockct) + (-CX L -CZ) vlabel(elevenoclockct) + ( CX L -CZ) vlabel(oneoclockct) + ); + + blocks + ( + //square block + hex ( + sevenoclocksqb fiveoclocksqb oneoclocksqb elevenoclocksqb + sevenoclocksqt fiveoclocksqt oneoclocksqt elevenoclocksqt + ) + (NPS NPS NPY) + simpleGrading (1 1 1) + + //slice1 + hex ( + sevenoclockcb fiveoclockcb fiveoclocksqb sevenoclocksqb + sevenoclockct fiveoclockct fiveoclocksqt sevenoclocksqt + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + //slice2 + hex ( + sevenoclocksqb elevenoclocksqb elevenoclockcb sevenoclockcb + sevenoclocksqt elevenoclocksqt elevenoclockct sevenoclockct + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + //slice3 + hex ( + elevenoclocksqb oneoclocksqb oneoclockcb elevenoclockcb + elevenoclocksqt oneoclocksqt oneoclockct elevenoclockct + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + //slice4 + hex ( + oneoclocksqb fiveoclocksqb fiveoclockcb oneoclockcb + oneoclocksqt fiveoclocksqt fiveoclockct oneoclockct + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + ); + + + //create the quarter circles + edges + ( + arc fiveoclockcb sevenoclockcb (0.0 0.0 R) + arc sevenoclockcb elevenoclockcb (-R 0.0 0.0) + arc elevenoclockcb oneoclockcb (0.0 0.0 -R) + arc oneoclockcb fiveoclockcb (R 0.0 0.0) + + arc fiveoclockct sevenoclockct (0.0 L R) + arc sevenoclockct elevenoclockct (-R L 0.0) + arc elevenoclockct oneoclockct (0.0 L -R) + arc oneoclockct fiveoclockct (R L 0.0) + + ); + + patches + ( + patch inlet + ( + (fiveoclocksqb oneoclocksqb elevenoclocksqb sevenoclocksqb) + (fiveoclocksqb fiveoclockcb oneoclockcb oneoclocksqb) + (fiveoclockcb fiveoclocksqb sevenoclocksqb sevenoclockcb) + (sevenoclocksqb elevenoclocksqb elevenoclockcb sevenoclockcb) + (oneoclocksqb oneoclockcb elevenoclockcb elevenoclocksqb) + ) + + patch outlet + ( + (fiveoclocksqt oneoclocksqt elevenoclocksqt sevenoclocksqt) + (fiveoclocksqt fiveoclockct oneoclockct oneoclocksqt) + (fiveoclockct fiveoclocksqt sevenoclocksqt sevenoclockct) + (sevenoclocksqt elevenoclocksqt elevenoclockct sevenoclockct) + (oneoclocksqt oneoclockct elevenoclockct elevenoclocksqt) + ) + + wall wall + ( + (sevenoclockcb fiveoclockcb fiveoclockct sevenoclockct) + (sevenoclockcb sevenoclockct elevenoclockct elevenoclockcb) + (elevenoclockcb elevenoclockct oneoclockct oneoclockcb) + (oneoclockcb oneoclockct fiveoclockct fiveoclockcb) + ) + +); + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/thermophysicalProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/thermophysicalProperties new file mode 100644 index 00000000..e8ab5108 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/thermophysicalProperties @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; //hePsiThermo; // + mixture reactingMixture; //species and reactions are listed in chemistry file + transport const; //sutherland; //calcualtes viscosity as a function of temperature from Stuherland coefficient As and Ts + thermo hConst; //janaf; + equationOfState perfectGas; + energy sensibleInternalEnergy; //sensibleEnthalpy; + specie specie; +} + +chemistryReader foamChemistryReader; + +foamChemistryThermoFile "$FOAM_CASE/constant/foam.dat"; + +foamChemistryFile "$FOAM_CASE/constant/foam.inp"; + +inertSpecie N2; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/transportProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/transportProperties new file mode 100644 index 00000000..888397f9 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/transportProperties @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu nu [ 0 2 -1 0 0 0 0 ] 1.526e-05; // dnyamic viscosity of CO : 1.74*10^-5 [kg/ms] -- density: 1.14 kg/m3 + // dynamic viscosity of O2 = 2,04-10^-5[kg/ms]; + // density of O2 = 1.4290 [kg/m^3] + // kinematic viscosity of air (o2+n2) = 1.48e-05; + +kf kf [ 1 1 -3 -1 0 0 0 ] 0.0507; // comes from energy model + +Cp Cp [ 0 2 -2 -1 0 0 0 ] 1118.15; // comes from energy model + + +// ******* Non-Newtonian transport properties ************************ // +/*CrossPowerLawCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + m m [ 0 0 1 0 0 0 0 ] 1; + n n [ 0 0 0 0 0 0 0 ] 1; +} + +BirdCarreauCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + k k [ 0 0 1 0 0 0 0 ] 0; + n n [ 0 0 0 0 0 0 0 ] 1; +} +*/ +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/turbulenceProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/turbulenceProperties new file mode 100644 index 00000000..d1156961 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/constant/turbulenceProperties @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/controlDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/controlDict new file mode 100644 index 00000000..ed6639af --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/controlDict @@ -0,0 +1,148 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application cfdemSolverRhoPimpleChem; + +startFrom startTime; + +startTime 0.0; + +stopAt endTime; + +endTime 1200.0; + +deltaT 1; + +writeControl timeStep; + +writeInterval 50; + +purgeWrite 10; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + +adjustTimeStep no; + +maxCo 0.5; + +maxDeltaT 0.1; + + +// ************************************************************************* // +libs +( + "libfieldFunctionObjects.so" +); + +functions +{ + moleFrac + { + type rhoReactionThermoMoleFractions; + } + + probes1 + { + type probes; + + functionObjectLibs ("libsampling.so"); + + #include "probesDict"; + } + + + fieldMinMax_T + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (T); + // Report the location of the field extrema + location yes; + // Type of extrema for rank > 0 primitives + mode magnitude; // magnitude | component + } + + fieldMinMax_Cpv + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (Cpv); + // Report the location of the field extrema + location yes; + // Type of extrema for rank > 0 primitives + mode magnitude; // magnitude | component + } + + fieldMinMax_partTemp + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (partTemp); + location yes; + mode magnitude; + } + + globalMassFrac + { + type volRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep;//outputTime; + writeInterval 1; + log true; + writeFields false; + regionType all; + name c0; + operation weightedVolAverage; + weightField rhoeps; + fields + ( + CO2 + CO + N2 + ); + } + + globalMass + { + type volRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep;//outputTime; + writeInterval 1; + log true; + writeFields false; + regionType all; + name c1; + operation volIntegrate; + fields + ( + rhoeps + rho + ); + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/decomposeParDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/decomposeParDict new file mode 100644 index 00000000..62a9d302 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/decomposeParDict @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 2; + +method simple; + +simpleCoeffs +{ + n (2 1 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n ( 1 1 1 ); + delta 0.001; + order xyz; +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots ( ); + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/fvOptions b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/fvOptions new file mode 100644 index 00000000..fd3e0929 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/fvOptions @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvOptions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +limitedTemperature +{ + type limitTemperature; + active yes; + limitTemperatureCoeffs + { + active yes; + selectionMode all; + Tmin 1200; + Tmax 2500; + } +} + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/fvSchemes b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/fvSchemes new file mode 100644 index 00000000..fed2bdf5 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/fvSchemes @@ -0,0 +1,83 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(p) cellMDLimited leastSquares 0.5; + grad(U) cellMDLimited leastSquares 0.5; //cellLimited Gauss linear 1; // + grad(h) cellMDLimited leastSquares 0.5; + grad(e) cellMDLimited leastSquares 0.5; +} + +divSchemes +{ + default Gauss linear; + + div(phi,U) Gauss limitedLinear 1; //Gauss linear; //Gauss limitedLinearV 1; + div(phid,p) Gauss limitedLinear 1; //Gauss upwind; //Gauss limitedLinearV 1; + div(phi,K) Gauss limitedLinear 1; + div(phi,h) Gauss limitedLinear 1; //Gauss upwind; + div(phi,k) Gauss limitedLinear 1; //Gauss upwind; + div(phi,epsilon) Gauss limitedLinear 1; //Gauss upwind; + div(U) Gauss limitedLinear 1; + div(phi,Yi_h) Gauss multivariateSelection + { + CO limitedLinear01 1; + H2 limitedLinear01 1; + N2 limitedLinear01 1; + H2O limitedLinear01 1; + CO2 limitedLinear01 1; + h limitedLinear 1; + e limitedLinear 1; + } + // div((muEff*dev2(T(grad(U))))) Gauss linear; + div((viscousTerm*dev2(grad(U).T()))) Gauss linear; + div((thermo:mu*dev(grad(U).T()))) Gauss linear; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(phi,T) Gauss limitedLinear 1; +} + +laplacianSchemes +{ + default Gauss linear corrected; //Gauss linear orthogonal; +} + +interpolationSchemes +{ + default linear; + interpolate(U) linear; +} + +snGradSchemes +{ + default corrected; //orthogonal; +} + +fluxRequired +{ + default no; + p ; +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/fvSolution b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/fvSolution new file mode 100644 index 00000000..2b3f9225 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/fvSolution @@ -0,0 +1,131 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +solvers +{ + p + { + solver PCG; + preconditioner DIC; + tolerance 1e-6; + relTol 0.01; + /*solver GAMG; + tolerance 1e-06; + relTol 0.01; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + cacheAgglomeration on; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; */ + } + + pFinal + { + $p; + tolerance 1e-06; + relTol 0; + } + + "(rho|G)" + { + solver PCG; + preconditioner DIC; + tolerance 1e-6; + relTol 0.01; + /*solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-6; + relTol 0.1; + nSweeps 3;*/ + } + + "(rho|G)Final" + { + $rho; + tolerance 1e-06; + relTol 0; + } + + "(U|h|e|R|k|epsilon)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "(U|h|e|R|k|epsilon)Final" + { + $U; + tolerance 1e-05; + relTol 0; + } + + "(Yi|CO|CO2|H2|H2O|N2)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-06; + relTol 0.01; + maxIter 100; + } + + "(Yi|CO|CO2|H2|H2O|N2)Final" + { + $Yi; + tolerance 1e-06; + relTol 0; + maxIter 100; + } + + T + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-8; + relTol 0; + } +} + +PIMPLE +{ + momentumPredictor yes; + nOuterCorrectors 5; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + rhoMin rhoMin [ 1 -3 0 0 0 ] 0.4; + rhoMax rhoMax [ 1 -3 0 0 0 ] 2.0; +} + +relaxationFactors +{ + fields + { + T 0.5; + "(Yi|CO|CO2|H2|H2O|N2)" 0.6; + p 0.6; + } + equations + { + ".*" 0.8; + "(h|e).*" 0.5; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/probesDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/probesDict new file mode 100644 index 00000000..a916d4ea --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/CFD/system/probesDict @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.1.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object probesDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + + +fields +( + rho + p + T + Cpv + N2 + CO2 + CO + ModSpeciesMassField_N2 + ModSpeciesMassField_CO2 + ModSpeciesMassField_CO + X_CO + X_CO2 +); + +writeControl timeStep; +writeInterval 50; + + +// Locations to be probed. +probeLocations +( + (7.0 2.5 2.5) + (8.0 2.5 2.5) + (1.0 2.5 2.5) +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/DEM/in.liggghts_init b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/DEM/in.liggghts_init new file mode 100644 index 00000000..c56b3306 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/DEM/in.liggghts_init @@ -0,0 +1,58 @@ +# Particle insertion into domain +atom_style granular +atom_modify map array +echo both + +communicate single vel yes + +boundary f f f +newton off + +units si +processors 2 1 1 + +region reg block 0. 1.5 0. 0.5 0. 0.5 units box +create_box 1 reg + +neighbor 0.0005 bin +neigh_modify delay 0 + +# Material properties required for granular pair styles +fix m1 all property/global youngsModulus peratomtype 5.e6 +fix m2 all property/global poissonsRatio peratomtype 0.45 +fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3 +fix m4 all property/global coefficientFriction peratomtypepair 1 0.5 + +# pair style +pair_style gran model hertz tangential history +pair_coeff * * + +# timestep, gravity +timestep 1e-2 +fix gravi all gravity 0.0 vector 0.0 -1.0 0.0 + +# walls +fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0 +fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 1.5 +fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.0 +fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.5 +fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0 +fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.5 + +# create single particle in a specific spot +create_atoms 1 single 0.75 0.25 0.25 units box +set atom 1 diameter 0.01106028 density 4300 vx 0 vy 0 vz 0 + +# screen output +compute rke all erotate/sphere +thermo_style custom step atoms ke c_rke vol +thermo 1000 +thermo_modify lost ignore norm no +compute_modify thermo_temp dynamic yes + +# insert the first particles so that dump is not empty +run 1 +dump dmp all custom 100 ../DEM/post/dump.liggghts_init id type x y z vx vy vz fx fy fz radius mass + +run 10 upto +write_restart ../DEM/post/restart/liggghts.restart diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/DEM/in.liggghts_run b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/DEM/in.liggghts_run new file mode 100644 index 00000000..d8b43f82 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/DEM/in.liggghts_run @@ -0,0 +1,203 @@ +# chemistry test case +log ../DEM/log.liggghts +thermo_log ../DEM/post/thermo.txt + +atom_style granular +atom_modify map array +communicate single vel yes + +boundary f f f +newton off + +units si +processors 2 1 1 + +# read the restart file +read_restart ../DEM/post/restart/liggghts.restart + +neighbor 0.0005 bin +neigh_modify delay 0 + +# Material properties required for granular pair styles + +fix m1 all property/global youngsModulus peratomtype 5.e6 +fix m2 all property/global poissonsRatio peratomtype 0.45 +fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3 +fix m4 all property/global coefficientFriction peratomtypepair 1 0.5 + +# pair style +pair_style gran model hertz tangential history +pair_coeff * * + +# timestep, gravity +timestep 0.02 +fix gravi all gravity 9.81 vector 0.0 -1.0 0.0 + +# walls +fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0 +fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 1.5 +fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.0 +fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.5 +fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0 +fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.5 + +# Thermal properties +fix ftco all property/global thermalConductivity peratomtype 1.4 +fix ftca all property/global thermalCapacity peratomtype 3000 + +############################################### + +# cfd coupling +fix cfd all couple/cfd couple_every 50 mpi +fix cfd2 all couple/cfd/force + +# this one invokes heat transfer calculation, transfers per-particle temperature and adds convective heat flux to particles +fix tconv all couple/cfd/convection T0 1221 + +# this should invoke chemistry +fix cfd3 all couple/cfd/chemistry n_species 3 species_names CO CO2 N2 n_diff 1 diffusant_names CO + +# Activate for 3-layer unreacted core shrink model +fix cfd5 all chem/shrink/core speciesA CO molMassA 0.02801 speciesC CO2 molMassC 0.04401 scale_reduction_rate 10.0 screen yes + +# Chemical properties for unreacted shrink core (activate only when chem/shrink/core is active) +fix k0_CO all property/atom k0_cfd5 vector yes no no 17 25 2700 +fix Ea_CO all property/atom Ea_cfd5 vector yes no no 69488 73674 113859 + +# particle porosity/tortuosity/pore diameter +fix porosity all property/atom porosity_ vector yes no no 0.65 0.31 0.16 0.15 +fix tortuosity all property/global tortuosity_ scalar 3 +fix pore_diameter all property/global pore_diameter_ scalar 5.5e-7 + +# define layer properties +fix LayerRelRadii all property/atom relRadii vector yes no no 1.0 0.998 0.995 0.98 + +### define fix for mass layer - initial testing +fix LayerMasses all property/atom massLayer vector yes no no 0. 0. 0. 0. +fix LayerDennsities all property/global density_all vector 7870. 5740. 5170. 5240. + +## define fix for rho_eff and fracRed - initialize as zero +fix fracRed all property/atom fracRed_all vector yes no no 0. 0. 0. +fix rhoeff all property/atom rhoeff vector yes no no 0. 0. 0. 0. + +############### +# Write data into files for post-processing + +variable WI equal 10 +variable time equal time +variable m1 equal mass[1] +variable rp equal radius[1] +variable rho1 equal mass[1]/((4/3)*PI*radius[1]*radius[1]*radius[1]) + +fix printmass all print ${WI} "${time} ${m1} ${rho1} ${rp}" file mass_rho_rad.txt title "#time mass rho rad_par" + +# compute kinetic energy of particles to see if they are moving changing +compute KinEn all ke +variable ke_tot equal c_KinEn + +# print total kinetic energy +fix printCompute all print ${WI} "${time} ${ke_tot}" file printKE.txt title "#time ke_tot" + +compute Ea_CO all reduce sum f_Ea_CO[1] f_Ea_CO[2] f_Ea_CO[3] +fix Ea all ave/time 1 1 1 c_Ea_CO[1] c_Ea_CO[2] c_Ea_CO[3] +variable Ea1 equal f_Ea[1] +variable Ea2 equal f_Ea[2] +variable Ea3 equal f_Ea[3] + +compute k0CO all reduce sum f_k0_CO[1] f_k0_CO[2] f_k0_CO[3] +fix k0 all ave/time 1 1 1 c_k0CO[1] c_k0CO[2] c_k0CO[3] +variable k01 equal f_k0[1] +variable k02 equal f_k0[2] +variable k03 equal f_k0[3] + +fix printk0Ea all print ${WI} "${time} ${Ea1} ${Ea2} ${Ea3} ${k01} ${k02} ${k03}" file k0Ea.dat title "#time Ea1 Ea2 Ea3 k01 k02 k03" + +############### +# Print out values affecting chemical reduction into specified folder for given time +# Diffusion Coefficient for CO and H2 + +compute COdiff all reduce sum f_CO_diffCoeff +fix diffField_CO all ave/time 1 1 1 c_COdiff +variable CO_diffCo equal f_diffField_CO + +fix printDCoeff all print ${WI} "${time} ${CO_diffCo}" file DiffCoeff.dat title "#time CO_diffCoeff" + +############### +# Specific Resistance terms depending on reacting gases + +compute ACOd1 all reduce sum f_Aterm_cfd5[1] f_Aterm_cfd5[2] f_Aterm_cfd5[3] +fix ACOd1 all ave/time 1 1 1 c_ACOd1[1] c_ACOd1[2] c_ACOd1[3] +variable a_CO_1 equal f_ACOd1[1] +variable a_CO_2 equal f_ACOd1[2] +variable a_CO_3 equal f_ACOd1[3] + +compute BCOd1 all reduce sum f_Bterm_cfd5[1] f_Bterm_cfd5[2] f_Bterm_cfd5[3] +fix BCOd1 all ave/time 10 1 10 c_BCOd1[1] c_BCOd1[2] c_BCOd1[3] +variable b_CO_1 equal f_BCOd1[1] +variable b_CO_2 equal f_BCOd1[2] +variable b_CO_3 equal f_BCOd1[3] + +compute MCOd1 all reduce sum f_Massterm_cfd5 +fix MTCOd1 all ave/time 10 1 10 c_MCOd1 +variable mt_CO equal f_MTCOd1 + +fix printAterm all print ${WI} "${time} ${a_CO_1} ${a_CO_2} ${a_CO_3}" file Aterm.dat title "#time a_CO_1 aCO_2 a_CO_3" + +fix printBterm all print ${WI} "${time} ${b_CO_1} ${b_CO_2} ${b_CO_3}" file Bterm.dat title "#time b_CO_1 b_CO_2 b_CO_3" + +fix printMassTerm all print ${WI} "${time} ${mt_CO}" file MassTerm.dat title "#time mt_CO" + +# Print out fractional reduction for specific diameter ranges as well as total fractional reduction + +############### +# print out rate change of mass for gaseous reactant +compute dmdot all reduce sum f_dmA_cfd5[1] f_dmA_cfd5[2] f_dmA_cfd5[3] +fix dmA_val all ave/time 1 1 1 c_dmdot[1] c_dmdot[2] c_dmdot[3] +variable dmdot_1 equal f_dmA_val[1] +variable dmdot_2 equal f_dmA_val[2] +variable dmdot_3 equal f_dmA_val[3] + +fix printdmdot all print ${WI} "${time} ${dmdot_1} ${dmdot_2} ${dmdot_3}" file dmdot.dat title "#time dmdot_1 dmdot_2 dmdot_3" + +compute fr_1 all reduce sum f_fracRed[1] f_fracRed[2] f_fracRed[3] +fix fr_d1 all ave/time 1 1 1 c_fr_1[1] c_fr_1[2] c_fr_1[3] +variable fr_d1_1 equal f_fr_d1[1] +variable fr_d1_2 equal f_fr_d1[2] +variable fr_d1_3 equal f_fr_d1[3] + +# Calculate total fractional reduction to be written into the dump file for postProcessing/graphical representation +variable frOV_d1 equal 1/9*(f_fr_d1[3])+2/9*(f_fr_d1[2])+6/9*(f_fr_d1[1]) + +fix printfr1 all print ${WI} "${time} ${fr_d1_1} ${fr_d1_2} ${fr_d1_3} ${frOV_d1}" file fr_d1.dat title "#time fr_d1_1 fr_d1_2 fr_d1_3 fr_overall_d1" + +############################################### +## Check Layer Radii and Write them to files ### +compute layerRad1 all reduce sum f_LayerRelRadii[1] +fix redRad1 all ave/time 1 1 1 c_layerRad1 +variable rr1 equal f_redRad1 + +compute layerRad2 all reduce sum f_LayerRelRadii[2] +fix redRad2 all ave/time 1 1 1 c_layerRad2 +variable rr2 equal f_redRad2 + +compute layerRad3 all reduce sum f_LayerRelRadii[3] +fix redRad3 all ave/time 1 1 1 c_layerRad3 +variable rr3 equal f_redRad3 + +compute layerRad4 all reduce sum f_LayerRelRadii[4] +fix redRad4 all ave/time 1 1 1 c_layerRad4 +variable rr4 equal f_redRad4 + +fix printRelRadii all print ${WI} "${time} ${rr1} ${rr2} ${rr3} ${rr4}" file relRadii.dat title "#time relRad_1 relRad_2 relRad_3 relRad_4" +############### + +# screen output +compute rke all erotate/sphere +thermo_style custom step atoms ke c_rke vol +thermo 10 +thermo_modify lost ignore norm no +compute_modify thermo_temp dynamic yes + +dump dmp all custom 100 ../DEM/post/dump*.liggghts_run id type x y z vx vy vz fx fy fz radius mass f_fracRed[1] f_fracRed[2] f_fracRed[3] + +run 1 diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/DEM/post/restart/.gitignore b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/DEM/post/restart/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/parCFDDEMrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/parCFDDEMrun.sh new file mode 100755 index 00000000..eb51a21a --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/parCFDDEMrun.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +#===================================================================# +# allrun script for testcase +# M. Efe Kinaci - Sep 2018 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +#--------------------------------------------------------------------------------# +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +logpath=$casePath +headerText="GOD0k1" +logfileName="log_$headerText" +solverName="cfdemSolverRhoPimpleChem" +nrProcs="2" +machineFileName="none" # yourMachinefileName | none +debugMode="off" # on | off| strict +testHarnessPath="$CFDEM_TEST_HARNESS_PATH" +runOctave="false" +postproc="false" + +#--------------------------------------------------------------------------------# + +#- call function to run a parallel CFD-DEM case +parCFDDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode + + +if [ $runOctave == "true" ] + then + #------------------------------# + # octave + + #- change path + cd octave + + #- rmove old graph + rm cfdemSolverPiso_ErgunTestMPI.eps + + #- run octave + octave totalPressureDrop.m + + #- show plot + evince cfdemSolverPiso_ErgunTestMPI.eps + + #- copy log file to test harness + cp ../../$logfileName $testHarnessPath + cp cfdemSolverPiso_ErgunTestMPI.eps $testHarnessPath +fi + +if [ $postproc == "true" ] + then + + #- keep terminal open (if started in new terminal) + echo "simulation finished? ...press enter to proceed" + read + + #- get VTK data from liggghts dump file + cd $casePath/DEM/post + python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_run + + #- get VTK data from CFD sim + cd $casePath/CFD + reconstructPar + foamToVTK #- serial run of foamToVTK + #source $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/functions.sh #- include functions + #pseudoParallelRun "foamToVTK" $nrPostProcProcessors #- pseudo parallel run of foamToVTK + + #- start paraview + paraview + + #- keep terminal open (if started in new terminal) + echo "...press enter to clean up case" + echo "press Ctr+C to keep data" + read + +fi + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/parDEMrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/parDEMrun.sh new file mode 100755 index 00000000..c580f12e --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/parDEMrun.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +#===================================================================# +# DEMrun script for testcase +# M. Efe Kinaci - Sep 2018 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +echo "starting DEM run in parallel..." +#--------------------------------------------------------------------------------# +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +logpath="$casePath" +headerText="run_liggghts_init_DEM" +logfileName="log_$headerText" +solverName="in.liggghts_init" +nrProcs=2 +machineFileName="none" +debugMode="off" +#--------------------------------------------------------------------------------# + +#- call function to run DEM case +parDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/postrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/postrun.sh new file mode 100755 index 00000000..06624406 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/postrun.sh @@ -0,0 +1,19 @@ +#!/bin/bash +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" + +#- get VTK data from liggghts dump file +cd $casePath/DEM/post +python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_run + +#- get VTK data from CFD sim +cd $casePath/CFD +reconstructPar +foamToVTK + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/prerun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/prerun.sh new file mode 100755 index 00000000..7b370ae7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/prerun.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" + +# check if mesh was built +if [ -f "$casePath/CFD/constant/polyMesh/boundary" ]; then + echo "mesh was built before - using old mesh" +else + echo "mesh needs to be built" + cd $casePath/CFD + blockMesh +fi \ No newline at end of file diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/run.config b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/run.config new file mode 100644 index 00000000..17e0cac4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/GOD0k1_Hematite/run.config @@ -0,0 +1,20 @@ +{ + "type" : "CFDEMcoupling", + "runs" : [ + { + "name" : "liggghts-init", + "input_script" : "DEM/in.liggghts_init", + "type" : "liggghts/mpi", + "nprocs" : 2 + }, + { + "name" : "cfdemrun", + "depends_on" : "liggghts-init", + "solver" : "cfdemSolverRhoPimpleChem", + "type" : "CFDEMcoupling/mpi", + "nprocs" : 2, + "pre_scripts" : ["prerun.sh"], + "post_scripts" : ["postrun.sh"] + } + ] +} diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/Allclean.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/Allclean.sh new file mode 100755 index 00000000..b2a417c8 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/Allclean.sh @@ -0,0 +1,18 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cd CFD +cleanCase +cd - + +rm -f log* + +rm -r ./DEM/post +mkdir ./DEM/post +mkdir ./DEM/post/restart +touch ./DEM/post/restart/.gitignore + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/Allrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/Allrun.sh new file mode 100755 index 00000000..59cfd7cd --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/Allrun.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +#===================================================================# +# allrun script for testcase +# M. Efe Kinaci - Sep 2019 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +export casePath + +#cd $casePath/CFD +#blockMesh + +#$casePath/parDEMrun.sh + +#bash $casePath/parCFDDEMrun.sh + +export casePath +# check if mesh was built +if [ -f "$casePath/CFD/constant/polyMesh/points" ]; then + echo "mesh was built before - using old mesh" +else + echo "mesh needs to be built" + cd $casePath/CFD + blockMesh +fi + +if [ -f "$casePath/DEM/post/restart/liggghts.restart" ]; then + echo "LIGGGHTS init was run before - using existing restart file" +else + #- run DEM in new terminal + $casePath/parDEMrun.sh +fi + +#echo "Run Simulation" +#cd $casePath/CFD +#decomposePar +#mpirun -np $nrProcs $solverName -parallel | tee -a $logfileName + +#- run parallel CFD-DEM in new terminal +#gnome-terminal -e "bash $casePath/parCFDDEMrun.sh" +bash $casePath/parCFDDEMrun.sh diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/CO b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/CO new file mode 100644 index 00000000..415c788d --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/CO @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object CO; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.4; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.4; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/CO2 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/CO2 new file mode 100644 index 00000000..18dca4ec --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/CO2 @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object CO2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/Ksl b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/Ksl new file mode 100644 index 00000000..bc087769 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/Ksl @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object Ksl; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -3 -1 0 0 0 0]; + +internalField uniform 0.0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/N2 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/N2 new file mode 100644 index 00000000..d3a54927 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/N2 @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object N2; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.6; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 0.6; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/Qsource b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/Qsource new file mode 100644 index 00000000..64313b48 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/Qsource @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object Qsource; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -3 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/T b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/T new file mode 100644 index 00000000..cbc85280 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/T @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 1223.15; // 950 + 273.15 + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value uniform 1223.15; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/U b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/U new file mode 100644 index 00000000..f50a655f --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/U @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0.011 0 0); + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type fixedValue; + value uniform (0.011 0 0); + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/Us b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/Us new file mode 100644 index 00000000..4e80604a --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/Us @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object Us; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/alphat b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/alphat new file mode 100644 index 00000000..5176c807 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/alphat @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/epsilon b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/epsilon new file mode 100644 index 00000000..9810c397 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/epsilon @@ -0,0 +1,53 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 0.003; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + // If turbulence is present + /* + * type compressible::turbulentMixingLengthDissipationRateInlet; + * mixingLength 0.005; + * value uniform 200; + */ + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/k b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/k new file mode 100644 index 00000000..b076e39a --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/k @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.001; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/mut b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/mut new file mode 100644 index 00000000..612df953 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/mut @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object mut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/nut b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/nut new file mode 100644 index 00000000..0027f055 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/nut @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/p b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/p new file mode 100644 index 00000000..e2d368fc --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/p @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325; + +boundaryField +{ + top + { + type zeroGradient; + } + bottom + { + type zeroGradient; + } + side-walls + { + type zeroGradient; + } + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 101325; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/p.org b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/p.org new file mode 100644 index 00000000..3c63a681 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/p.org @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 101325; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/rho b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/rho new file mode 100644 index 00000000..a5f53ea7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/rho @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object rho; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -3 0 0 0 0 0]; + +internalField uniform 1.14; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/voidfraction b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/voidfraction new file mode 100644 index 00000000..6f3a5b0b --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/0/voidfraction @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object voidfraction; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + top + { + type zeroGradient; + } + + bottom + { + type zeroGradient; + } + + side-walls + { + type zeroGradient; + } + + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/chemistryProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/chemistryProperties new file mode 100644 index 00000000..f95868bd --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/chemistryProperties @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object chemistryProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +chemistry off; //on; + +/* +chemistryType +{ + chemistrySolver ode; + chemistryThermo rho; +} + +initialChemicalTimeStep 1e-07; + +EulerImplicitCoeffs +{ + cTauChem 0.05; + equilibriumRateLimiter off; +} + +odeCoeffs +{ + solver seulex; + eps 0.05; +} */ + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/combustionProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/combustionProperties new file mode 100644 index 00000000..c5b934a4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/combustionProperties @@ -0,0 +1,34 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object combustionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +combustionModel noCombustion; //PaSR; //PaSR; + +active false; //true; + +noCombustionCoeffs +{ +} + + +PaSRCoeffs +{ + Cmix 1.0; + turbulentReaction off; +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/couplingProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/couplingProperties new file mode 100644 index 00000000..f20a7276 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/couplingProperties @@ -0,0 +1,346 @@ +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.4 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + + +FoamFile +{ + version 2.0; + format ascii; + + root ""; + case ""; + instance ""; + local ""; + + class dictionary; + object couplingProperties; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +//===========================================================================// +// sub-models & settings + +modelType "A"; // A or B + +couplingInterval 50; + +voidFractionModel divided;//centre;// + +locateModel engine; //turboEngineM2M;// + +meshMotionModel noMeshMotion; + +regionModel allRegion; + +IOModel basicIO; + +probeModel off; + +dataExchangeModel twoWayMPI; + +averagingModel dilute; //dense;// + +clockModel off;//standardClock;// + +smoothingModel off;// localPSizeDiffSmoothing;// constDiffSmoothing; // + +forceModels +( + GidaspowDrag + gradPForce + viscForce +); + +energyModels +( + heatTransferGunn + reactionHeat +); + +thermCondModel SyamlalThermCond; + +chemistryModels +( + species + diffusionCoefficients + massTransferCoeff + // off +); + +momCoupleModels +( + implicitCouple +); + +turbulenceModelType "turbulenceProperties";//"LESProperties";// + +//===========================================================================// +// sub-model properties +reactionHeatProps +{ + reactionHeatName "reactionHeat"; + verbose false; +} + +heatTransferGunnProps +{ + partTempName "Temp"; + partHeatFluxName "convectiveHeatFlux"; + calcPartTempField true; + partRefTemp 1223.15; + implicit true; + verbose false; + interpolation false; +} + +speciesProps +{ + ChemistryFile "$FOAM_CASE/constant/foam.inp"; + Nevery 1; + verbose false; + interpolation false; +} + +diffusionCoefficientsProps +{ + verbose false; + interpolation false; + ChemistryFile "$FOAM_CASE/constant/foam.inp"; + diffusantGasNames ( CO + ); +} + +massTransferCoeffProps +{ + verbose false; + interpolation false; +} + +reactantPerParticleProps +{ +} + +SyamlalThermCondProps +{ + voidfractionFieldName "voidfraction"; + rhoFieldName "rho"; +} + +LaEuScalarTempProps +{ + velFieldName "U"; + tempFieldName "T"; + voidfractionFieldName "voidfraction"; + partTempName "Temp"; + partHeatFluxName "convectiveHeatFlux"; + lambda 0.0256; + Cp 1007; +} + +localPSizeDiffSmoothingProps +{ + lowerLimit 0.1; + upperLimit 1e10; + dSmoothingLength 1.5e-3; + Csmoothing 1.0; +} + +constDiffSmoothingProps +{ + lowerLimit 0.1; + upperLimit 1e10; + smoothingLength 1.5e-3; +} + +implicitCoupleProps +{ + velFieldName "U"; + granVelFieldName "Us"; + voidfractionFieldName "voidfraction"; +} + +ArchimedesProps +{ + gravityFieldName "g"; +} + +gradPForceProps +{ + pFieldName "p"; + voidfractionFieldName "voidfraction"; + velocityFieldName "U"; + interpolation true; +} + +viscForceProps +{ + velocityFieldName "U"; + interpolation true; +} + +volWeightedAverageProps +{ + scalarFieldNames + ( + voidfraction + ); + vectorFieldNames + ( + ); + upperThreshold 0.999; + lowerThreshold 0; + verbose true; +} + +totalMomentumExchangeProps +{ + implicitMomExFieldName "Ksl"; + explicitMomExFieldName "none"; + fluidVelFieldName "U"; + granVelFieldName "Us"; +} + +GidaspowDragProps +{ + verbose true; + velFieldName "U"; + granVelFieldName "Us"; + voidfractionFieldName "voidfraction"; + interpolation true; + phi 1; +} + +BeetstraDragProps +{ + velFieldName "U"; + granVelFieldName "Us"; + gravityFieldName "g"; + voidfractionFieldName "voidfraction"; + interpolation false; + useFilteredDragModel ; + useParcelSizeDependentFilteredDrag; + rhoP 4630.; + dPrim 0.00022; + rho 1.58; + nuf 1.126e-05; + g 9.81; + k 0.05; + aLimit 0.0; + verbose false; +} + +DEMbasedDragProps +{ + velFieldName "U"; + voidfractionFieldName "voidfraction"; +} + +DiFeliceDragProps +{ + velFieldName "U"; + voidfractionFieldName "voidfraction"; + granVelFieldName "Us"; + interpolation false; +} + +KochHillDragProps +{ + verbose true; + velFieldName "U"; + voidfractionFieldName "voidfraction"; + interpolation false; + implForceDEM true; +} + +RongDragProps +{ + verbose true; + velFieldName "U"; + voidfractionFieldName "voidfraction"; + interpolation false; + implForceDEM true; + implForceDEMaccumulated true; + granVelFieldName "Us"; +} + +virtualMassForceProps +{ + velFieldName "U"; +} + +particleCellVolumeProps +{ + upperThreshold 0.999; + lowerThreshold 0.; + verbose true; +} + +fieldStoreProps +{ + scalarFieldNames + ( + ); + + vectorFieldNames + ( + "U" + ); +} + +oneWayVTKProps +{ + couplingFilename "vtk_out%4.4d.vtk"; + maxNumberOfParticles 30000; +} + +twoWayFilesProps +{ + maxNumberOfParticles 10100; +} + +centreProps +{ + alphaMin 0.1; +} + +engineProps +{ + treeSearch true; +} + +turboEngineProps +{ + treeSearch true; +} + +turboEngineM2MProps +{ + turboEngineProps + { + treeSearch true; + } +} + +dividedProps +{ + alphaMin 0.01; + scaleUpVol 1.0; +} + +twoWayMPIProps +{ + liggghtsPath "../DEM/in.liggghts_run"; +} + +twoWayM2MProps +{ + maxNumberOfParticles 10100; + liggghtsPath "../DEM/in.liggghts_run"; +} +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/foam.dat b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/foam.dat new file mode 100644 index 00000000..aa44b49c --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/foam.dat @@ -0,0 +1,112 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object foam.dat; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +H2 +{ + specie + { + nMoles 1; + molWeight 2.02; + } + thermodynamics + { + Cp 15016.8; + Hf 2.544e+06; + } + transport + { + mu 8.42e-05; + Pr 0.76; + } +} + +H2O +{ + specie + { + nMoles 1; + molWeight 18.015; + } + thermodynamics + { + Cp 2304.1; + Hf 2.544e+06; + } + transport + { + mu 1.7e-05; + Pr 0.99; + } +} + +CO +{ + specie + { + nMoles 1; + molWeight 28.01; + } + thermodynamics + { + Cp 1189.14; + Hf 2.544e+06; + } + transport + { + mu 1.66e-05; + Pr 0.792; + } +} + +CO2 +{ + specie + { + nMoles 1; + molWeight 44.01; + } + thermodynamics + { + Cp 1239.98; + Hf 2.544e+06; + } + transport + { + mu 1.37e-05; + Pr 0.69; + } +} + +N2 +{ + specie + { + nMoles 1; + molWeight 28.0134; + } + thermodynamics + { + Cp 1171.6; + Hf 2.544e+06; + } + transport + { + mu 1.66e-05; + Pr 0.69; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/foam.inp b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/foam.inp new file mode 100644 index 00000000..2502dbe4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/foam.inp @@ -0,0 +1,12 @@ +species +( + CO + CO2 + N2 +); + +reactions +{ +} + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/g b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/g new file mode 100644 index 00000000..abca4e14 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/g @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value ( 0 -9.81 0 ); + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/liggghtsCommands b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/liggghtsCommands new file mode 100644 index 00000000..ea16dec7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/liggghtsCommands @@ -0,0 +1,43 @@ +/*---------------------------------------------------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.4 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + + +FoamFile +{ + version 2.0; + format ascii; + + root ""; + case ""; + instance ""; + local ""; + + class dictionary; + object liggghtsCommands; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +liggghtsCommandModels +( + runLiggghts + writeLiggghts +); +// ************************************************************************* // + +/*runLiggghtsProps +{ + preNo false; +}*/ + +writeLiggghtsProps +{ + writeLast on; + writeName "post/restart/liggghts.restartCFDEM"; + overwrite on; +} diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/polyMesh/blockMeshDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/polyMesh/blockMeshDict new file mode 100644 index 00000000..024f6e99 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/polyMesh/blockMeshDict @@ -0,0 +1,91 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant/polyMesh"; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1.0; + +vertices +( + (0 0 0) + (1.5 0 0) + (1.5 0.5 0) + (0 0.5 0) + (0 0 0.5) + (1.5 0 0.5) + (1.5 0.5 0.5) + (0 0.5 0.5) +); + +blocks +( + hex (0 1 2 3 4 5 6 7)(29 9 9) simpleGrading (1 1 1) + +); + +edges +( +); + +boundary +( + top + { + type wall; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + side-walls + { + type wall; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/polyMesh/cylinderMesh.m4 b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/polyMesh/cylinderMesh.m4 new file mode 100644 index 00000000..3c1c3606 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/polyMesh/cylinderMesh.m4 @@ -0,0 +1,153 @@ +// blockMesh : Block mesh description file +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant/polyMesh"; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + + + meshGenApp blockMesh; + convertToMeters 1; + + define(D, 0.075) //75 mm column diameter + define(L, 0.15) //150 mm length + define(PI, 3.14159265) + + define(R, calc(D/2)) + define(CW, calc(D/4)) //Width of middle square section + + define(CX, calc(R*cos((PI/180)*45))) + define(CZ, calc(R*sin((PI/180)*45))) + + define(NPS, 4) //how many cells in the square section + define(NPD, 2) //how many cells from square section to perimeter + define(NPY, 15) // how many cells from top to bottom + + vertices + ( + ( CW 0.0 CW) vlabel(fiveoclocksqb) + (-CW 0.0 CW) vlabel(sevenoclocksqb) + (-CW 0.0 -CW) vlabel(elevenoclocksqb) + ( CW 0.0 -CW) vlabel(oneoclocksqb) + + ( CX 0.0 CZ) vlabel(fiveoclockcb) + (-CX 0.0 CZ) vlabel(sevenoclockcb) + (-CX 0.0 -CZ) vlabel(elevenoclockcb) + ( CX 0.0 -CZ) vlabel(oneoclockcb) + + ( CW L CW) vlabel(fiveoclocksqt) + (-CW L CW) vlabel(sevenoclocksqt) + (-CW L -CW) vlabel(elevenoclocksqt) + ( CW L -CW) vlabel(oneoclocksqt) + + ( CX L CZ) vlabel(fiveoclockct) + (-CX L CZ) vlabel(sevenoclockct) + (-CX L -CZ) vlabel(elevenoclockct) + ( CX L -CZ) vlabel(oneoclockct) + ); + + blocks + ( + //square block + hex ( + sevenoclocksqb fiveoclocksqb oneoclocksqb elevenoclocksqb + sevenoclocksqt fiveoclocksqt oneoclocksqt elevenoclocksqt + ) + (NPS NPS NPY) + simpleGrading (1 1 1) + + //slice1 + hex ( + sevenoclockcb fiveoclockcb fiveoclocksqb sevenoclocksqb + sevenoclockct fiveoclockct fiveoclocksqt sevenoclocksqt + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + //slice2 + hex ( + sevenoclocksqb elevenoclocksqb elevenoclockcb sevenoclockcb + sevenoclocksqt elevenoclocksqt elevenoclockct sevenoclockct + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + //slice3 + hex ( + elevenoclocksqb oneoclocksqb oneoclockcb elevenoclockcb + elevenoclocksqt oneoclocksqt oneoclockct elevenoclockct + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + //slice4 + hex ( + oneoclocksqb fiveoclocksqb fiveoclockcb oneoclockcb + oneoclocksqt fiveoclocksqt fiveoclockct oneoclockct + ) + (NPS NPD NPY) + simpleGrading (1 1 1) + + ); + + + //create the quarter circles + edges + ( + arc fiveoclockcb sevenoclockcb (0.0 0.0 R) + arc sevenoclockcb elevenoclockcb (-R 0.0 0.0) + arc elevenoclockcb oneoclockcb (0.0 0.0 -R) + arc oneoclockcb fiveoclockcb (R 0.0 0.0) + + arc fiveoclockct sevenoclockct (0.0 L R) + arc sevenoclockct elevenoclockct (-R L 0.0) + arc elevenoclockct oneoclockct (0.0 L -R) + arc oneoclockct fiveoclockct (R L 0.0) + + ); + + patches + ( + patch inlet + ( + (fiveoclocksqb oneoclocksqb elevenoclocksqb sevenoclocksqb) + (fiveoclocksqb fiveoclockcb oneoclockcb oneoclocksqb) + (fiveoclockcb fiveoclocksqb sevenoclocksqb sevenoclockcb) + (sevenoclocksqb elevenoclocksqb elevenoclockcb sevenoclockcb) + (oneoclocksqb oneoclockcb elevenoclockcb elevenoclocksqb) + ) + + patch outlet + ( + (fiveoclocksqt oneoclocksqt elevenoclocksqt sevenoclocksqt) + (fiveoclocksqt fiveoclockct oneoclockct oneoclocksqt) + (fiveoclockct fiveoclocksqt sevenoclocksqt sevenoclockct) + (sevenoclocksqt elevenoclocksqt elevenoclockct sevenoclockct) + (oneoclocksqt oneoclockct elevenoclockct elevenoclocksqt) + ) + + wall wall + ( + (sevenoclockcb fiveoclockcb fiveoclockct sevenoclockct) + (sevenoclockcb sevenoclockct elevenoclockct elevenoclockcb) + (elevenoclockcb elevenoclockct oneoclockct oneoclockcb) + (oneoclockcb oneoclockct fiveoclockct fiveoclockcb) + ) + +); + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/thermophysicalProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/thermophysicalProperties new file mode 100644 index 00000000..e8ab5108 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/thermophysicalProperties @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heRhoThermo; //hePsiThermo; // + mixture reactingMixture; //species and reactions are listed in chemistry file + transport const; //sutherland; //calcualtes viscosity as a function of temperature from Stuherland coefficient As and Ts + thermo hConst; //janaf; + equationOfState perfectGas; + energy sensibleInternalEnergy; //sensibleEnthalpy; + specie specie; +} + +chemistryReader foamChemistryReader; + +foamChemistryThermoFile "$FOAM_CASE/constant/foam.dat"; + +foamChemistryFile "$FOAM_CASE/constant/foam.inp"; + +inertSpecie N2; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/transportProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/transportProperties new file mode 100644 index 00000000..888397f9 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/transportProperties @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.6 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu nu [ 0 2 -1 0 0 0 0 ] 1.526e-05; // dnyamic viscosity of CO : 1.74*10^-5 [kg/ms] -- density: 1.14 kg/m3 + // dynamic viscosity of O2 = 2,04-10^-5[kg/ms]; + // density of O2 = 1.4290 [kg/m^3] + // kinematic viscosity of air (o2+n2) = 1.48e-05; + +kf kf [ 1 1 -3 -1 0 0 0 ] 0.0507; // comes from energy model + +Cp Cp [ 0 2 -2 -1 0 0 0 ] 1118.15; // comes from energy model + + +// ******* Non-Newtonian transport properties ************************ // +/*CrossPowerLawCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + m m [ 0 0 1 0 0 0 0 ] 1; + n n [ 0 0 0 0 0 0 0 ] 1; +} + +BirdCarreauCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + k k [ 0 0 1 0 0 0 0 ] 0; + n n [ 0 0 0 0 0 0 0 ] 1; +} +*/ +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/turbulenceProperties b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/turbulenceProperties new file mode 100644 index 00000000..d1156961 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/constant/turbulenceProperties @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/controlDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/controlDict new file mode 100644 index 00000000..d2261a1e --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/controlDict @@ -0,0 +1,148 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application cfdemSolverRhoPimpleChem; + +startFrom startTime; + +startTime 0.0; + +stopAt endTime; + +endTime 1200.0; + +deltaT 1; + +writeControl timeStep; + +writeInterval 50; + +purgeWrite 10; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + +adjustTimeStep no; + +maxCo 0.5; + +maxDeltaT 0.1; + + +// ************************************************************************* // +libs +( + "libfieldFunctionObjects.so" +); + +functions +{ + moleFrac + { + type rhoReactionThermoMoleFractions; + } + + probes1 + { + type probes; + + functionObjectLibs ("libsampling.so"); + + #include "probesDict"; + } + + + fieldMinMax_T + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (T); + // Report the location of the field extrema + location yes; + // Type of extrema for rank > 0 primitives + mode magnitude; // magnitude | component + } + + fieldMinMax_Cpv + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (Cpv); + // Report the location of the field extrema + location yes; + // Type of extrema for rank > 0 primitives + mode magnitude; // magnitude | component + } + + fieldMinMax_partTemp + { + type fieldMinMax; + libs ("libfieldFunctionObjects.so"); + fields (partTemp); + location yes; + mode magnitude; + } + + globalMassFrac + { + type volRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep;//outputTime; + writeInterval 1; + log true; + writeFields false; + regionType all; + name c0; + operation weightedVolAverage; + weightField rhoeps; + fields + ( + CO2 + CO + N2 + ); + } + + globalMass + { + type volRegion; + libs ("libfieldFunctionObjects.so"); + writeControl timeStep;//outputTime; + writeInterval 1; + log true; + writeFields false; + regionType all; + name c1; + operation volIntegrate; + fields + ( + rhoeps + rho + ); + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/decomposeParDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/decomposeParDict new file mode 100644 index 00000000..62a9d302 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/decomposeParDict @@ -0,0 +1,45 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 2; + +method simple; + +simpleCoeffs +{ + n (2 1 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n ( 1 1 1 ); + delta 0.001; + order xyz; +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots ( ); + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/fvOptions b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/fvOptions new file mode 100644 index 00000000..fd3e0929 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/fvOptions @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvOptions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +limitedTemperature +{ + type limitTemperature; + active yes; + limitTemperatureCoeffs + { + active yes; + selectionMode all; + Tmin 1200; + Tmax 2500; + } +} + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/fvSchemes b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/fvSchemes new file mode 100644 index 00000000..54b4ebaa --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/fvSchemes @@ -0,0 +1,83 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(p) cellMDLimited leastSquares 0.5; + grad(U) cellMDLimited leastSquares 0.5; //cellLimited Gauss linear 1; // + grad(h) cellMDLimited leastSquares 0.5; + grad(e) cellMDLimited leastSquares 0.5; +} + +divSchemes +{ + default Gauss linear; + + div(phi,U) Gauss limitedLinear 1; //Gauss linear; //Gauss limitedLinearV 1; + div(phid,p) Gauss limitedLinear 1; //Gauss upwind; //Gauss limitedLinearV 1; + div(phi,K) Gauss limitedLinear 1; + div(phi,h) Gauss limitedLinear 1; //Gauss upwind; + div(phi,k) Gauss limitedLinear 1; //Gauss upwind; + div(phi,epsilon) Gauss limitedLinear 1; //Gauss upwind; + div(U) Gauss limitedLinear 1; + div(phi,Yi_h) Gauss multivariateSelection + { + CO limitedLinear01 1; + H2 limitedLinear01 1; + N2 limitedLinear01 1; + H2O limitedLinear01 1; + CO2 limitedLinear01 1; + h limitedLinear 1; + e limitedLinear 1; + } + // div((muEff*dev2(T(grad(U))))) Gauss linear; + div((viscousTerm*dev2(grad(U).T()))) Gauss linear; + div((thermo:mu*dev(grad(U).T()))) Gauss linear; + div((nuEff*dev2(T(grad(U))))) Gauss linear; + div(phi,T) Gauss limitedLinear 1; +} + +laplacianSchemes +{ + default Gauss linear corrected; //Gauss linear orthogonal; +} + +interpolationSchemes +{ + default linear; + interpolate(U) linear; +} + +snGradSchemes +{ + default corrected; //orthogonal; +} + +fluxRequired +{ + default no; + p ; +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/fvSolution b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/fvSolution new file mode 100644 index 00000000..2b3f9225 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/fvSolution @@ -0,0 +1,131 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +solvers +{ + p + { + solver PCG; + preconditioner DIC; + tolerance 1e-6; + relTol 0.01; + /*solver GAMG; + tolerance 1e-06; + relTol 0.01; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + cacheAgglomeration on; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; */ + } + + pFinal + { + $p; + tolerance 1e-06; + relTol 0; + } + + "(rho|G)" + { + solver PCG; + preconditioner DIC; + tolerance 1e-6; + relTol 0.01; + /*solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-6; + relTol 0.1; + nSweeps 3;*/ + } + + "(rho|G)Final" + { + $rho; + tolerance 1e-06; + relTol 0; + } + + "(U|h|e|R|k|epsilon)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "(U|h|e|R|k|epsilon)Final" + { + $U; + tolerance 1e-05; + relTol 0; + } + + "(Yi|CO|CO2|H2|H2O|N2)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-06; + relTol 0.01; + maxIter 100; + } + + "(Yi|CO|CO2|H2|H2O|N2)Final" + { + $Yi; + tolerance 1e-06; + relTol 0; + maxIter 100; + } + + T + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-8; + relTol 0; + } +} + +PIMPLE +{ + momentumPredictor yes; + nOuterCorrectors 5; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + rhoMin rhoMin [ 1 -3 0 0 0 ] 0.4; + rhoMax rhoMax [ 1 -3 0 0 0 ] 2.0; +} + +relaxationFactors +{ + fields + { + T 0.5; + "(Yi|CO|CO2|H2|H2O|N2)" 0.6; + p 0.6; + } + equations + { + ".*" 0.8; + "(h|e).*" 0.5; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/probesDict b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/probesDict new file mode 100644 index 00000000..a916d4ea --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/CFD/system/probesDict @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.1.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object probesDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + + +fields +( + rho + p + T + Cpv + N2 + CO2 + CO + ModSpeciesMassField_N2 + ModSpeciesMassField_CO2 + ModSpeciesMassField_CO + X_CO + X_CO2 +); + +writeControl timeStep; +writeInterval 50; + + +// Locations to be probed. +probeLocations +( + (7.0 2.5 2.5) + (8.0 2.5 2.5) + (1.0 2.5 2.5) +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/DEM/in.liggghts_init b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/DEM/in.liggghts_init new file mode 100644 index 00000000..60a70170 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/DEM/in.liggghts_init @@ -0,0 +1,59 @@ +# Particle insertion into domain +atom_style granular +atom_modify map array +echo both + +communicate single vel yes + +boundary f f f +newton off + +units si +processors 2 1 1 + +region reg block 0. 1.5 0. 0.5 0. 0.5 units box +create_box 1 reg + +neighbor 0.0005 bin +neigh_modify delay 0 + +# Material properties required for granular pair styles +fix m1 all property/global youngsModulus peratomtype 5.e6 +fix m2 all property/global poissonsRatio peratomtype 0.45 +fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3 +fix m4 all property/global coefficientFriction peratomtypepair 1 0.5 + +# pair style +pair_style gran model hertz tangential history +pair_coeff * * + +# timestep, gravity +timestep 1e-2 +fix gravi all gravity 0.0 vector 0.0 -1.0 0.0 + +# walls +fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0 +fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 1.5 +fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.0 +fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.5 +fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0 +fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.5 + +# create single particle in a specific spot +create_atoms 1 single 0.75 0.25 0.25 units box +set atom 1 diameter 0.01106028 density 4300 vx 0 vy 0 vz 0 + +# screen output +compute rke all erotate/sphere +thermo_style custom step atoms ke c_rke vol +thermo 1000 +thermo_modify lost ignore norm no +compute_modify thermo_temp dynamic yes + +# insert the first particles so that dump is not empty +run 1 +dump dmp all custom 100 ../DEM/post/dump.liggghts_init id type x y z vx vy vz fx fy fz radius mass + +run 10 upto + +write_restart ../DEM/post/restart/liggghts.restart diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/DEM/in.liggghts_run b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/DEM/in.liggghts_run new file mode 100644 index 00000000..673786b7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/DEM/in.liggghts_run @@ -0,0 +1,203 @@ +# chemistry test case +log ../DEM/log.liggghts +thermo_log ../DEM/post/thermo.txt + +atom_style granular +atom_modify map array +communicate single vel yes + +boundary f f f +newton off + +units si +processors 2 1 1 + +# read the restart file +read_restart ../DEM/post/restart/liggghts.restart + +neighbor 0.0005 bin +neigh_modify delay 0 + +# Material properties required for granular pair styles + +fix m1 all property/global youngsModulus peratomtype 5.e6 +fix m2 all property/global poissonsRatio peratomtype 0.45 +fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3 +fix m4 all property/global coefficientFriction peratomtypepair 1 0.5 + +# pair style +pair_style gran model hertz tangential history +pair_coeff * * + +# timestep, gravity +timestep 0.02 +fix gravi all gravity 9.81 vector 0.0 -1.0 0.0 + +# walls +fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0 +fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 1.5 +fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.0 +fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.5 +fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0 +fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.5 + +# Thermal properties +fix ftco all property/global thermalConductivity peratomtype 1.4 +fix ftca all property/global thermalCapacity peratomtype 3000 + +############################################### + +# cfd coupling +fix cfd all couple/cfd couple_every 50 mpi +fix cfd2 all couple/cfd/force + +# this one invokes heat transfer calculation, transfers per-particle temperature and adds convective heat flux to particles +fix tconv all couple/cfd/convection T0 1221 + +# this should invoke chemistry +fix cfd3 all couple/cfd/chemistry n_species 3 species_names CO CO2 N2 n_diff 1 diffusant_names CO + +# Activate for 3-layer unreacted core shrink model +fix cfd5 all chem/shrink/core speciesA CO molMassA 0.02801 speciesC CO2 molMassC 0.04401 scale_reduction_rate 10.0 screen yes + +# Chemical properties for unreacted shrink core (activate only when chem/shrink/core is active) +fix k0_CO all property/atom k0_cfd5 vector yes no no 17 25 2700 +fix Ea_CO all property/atom Ea_cfd5 vector yes no no 69488 73674 113859 + +# particle porosity/tortuosity/pore diameter +fix porosity all property/atom porosity_ vector yes no no 0.65 0.31 0.16 0.15 +fix tortuosity all property/global tortuosity_ scalar 3 +fix pore_diameter all property/global pore_diameter_ scalar 5.5e-7 + +# define layer properties +fix LayerRelRadii all property/atom relRadii vector yes no no 1.0 0.998 0.995 0.98 + +### define fix for mass layer - initial testing +fix LayerMasses all property/atom massLayer vector yes no no 0. 0. 0. 0. +fix LayerDennsities all property/global density_all vector 7870. 5740. 5170. 5240. + +## define fix for rho_eff and fracRed - initialize as zero +fix fracRed all property/atom fracRed_all vector yes no no 0. 0. 0. +fix rhoeff all property/atom rhoeff vector yes no no 0. 0. 0. 0. + +############### +# Write data into files for post-processing + +variable WI equal 10 +variable time equal time +variable m1 equal mass[1] +variable rp equal radius[1] +variable rho1 equal mass[1]/((4/3)*PI*radius[1]*radius[1]*radius[1]) + +fix printmass all print ${WI} "${time} ${m1} ${rho1} ${rp}" file mass_rho_rad.txt title "#time mass rho rad_par" + +# compute kinetic energy of particles to see if they are moving changing +compute KinEn all ke +variable ke_tot equal c_KinEn + +# print total kinetic energy +fix printCompute all print ${WI} "${time} ${ke_tot}" file printKE.txt title "#time ke_tot" + +compute Ea_CO all reduce sum f_Ea_CO[1] f_Ea_CO[2] f_Ea_CO[3] +fix Ea all ave/time 1 1 1 c_Ea_CO[1] c_Ea_CO[2] c_Ea_CO[3] +variable Ea1 equal f_Ea[1] +variable Ea2 equal f_Ea[2] +variable Ea3 equal f_Ea[3] + +compute k0CO all reduce sum f_k0_CO[1] f_k0_CO[2] f_k0_CO[3] +fix k0 all ave/time 1 1 1 c_k0CO[1] c_k0CO[2] c_k0CO[3] +variable k01 equal f_k0[1] +variable k02 equal f_k0[2] +variable k03 equal f_k0[3] + +fix printk0Ea all print ${WI} "${time} ${Ea1} ${Ea2} ${Ea3} ${k01} ${k02} ${k03}" file k0Ea.dat title "#time Ea1 Ea2 Ea3 k01 k02 k03" + +############### +# Print out values affecting chemical reduction into specified folder for given time +# Diffusion Coefficient for CO and H2 + +compute COdiff all reduce sum f_CO_diffCoeff +fix diffField_CO all ave/time 1 1 1 c_COdiff +variable CO_diffCo equal f_diffField_CO + +fix printDCoeff all print ${WI} "${time} ${CO_diffCo}" file DiffCoeff.dat title "#time CO_diffCoeff" + +############### +# Specific Resistance terms depending on reacting gases + +compute ACOd1 all reduce sum f_Aterm_cfd5[1] f_Aterm_cfd5[2] f_Aterm_cfd5[3] +fix ACOd1 all ave/time 1 1 1 c_ACOd1[1] c_ACOd1[2] c_ACOd1[3] +variable a_CO_1 equal f_ACOd1[1] +variable a_CO_2 equal f_ACOd1[2] +variable a_CO_3 equal f_ACOd1[3] + +compute BCOd1 all reduce sum f_Bterm_cfd5[1] f_Bterm_cfd5[2] f_Bterm_cfd5[3] +fix BCOd1 all ave/time 10 1 10 c_BCOd1[1] c_BCOd1[2] c_BCOd1[3] +variable b_CO_1 equal f_BCOd1[1] +variable b_CO_2 equal f_BCOd1[2] +variable b_CO_3 equal f_BCOd1[3] + +compute MCOd1 all reduce sum f_Massterm_cfd5 +fix MTCOd1 all ave/time 10 1 10 c_MCOd1 +variable mt_CO equal f_MTCOd1 + +fix printAterm all print ${WI} "${time} ${a_CO_1} ${a_CO_2} ${a_CO_3}" file Aterm.dat title "#time a_CO_1 aCO_2 a_CO_3" + +fix printBterm all print ${WI} "${time} ${b_CO_1} ${b_CO_2} ${b_CO_3}" file Bterm.dat title "#time b_CO_1 b_CO_2 b_CO_3" + +fix printMassTerm all print ${WI} "${time} ${mt_CO}" file MassTerm.dat title "#time mt_CO" + +# Print out fractional reduction for specific diameter ranges as well as total fractional reduction + +############### +# print out rate change of mass for gaseous reactant +compute dmdot all reduce sum f_dmA_cfd5[1] f_dmA_cfd5[2] f_dmA_cfd5[3] +fix dmA_val all ave/time 1 1 1 c_dmdot[1] c_dmdot[2] c_dmdot[3] +variable dmdot_1 equal f_dmA_val[1] +variable dmdot_2 equal f_dmA_val[2] +variable dmdot_3 equal f_dmA_val[3] + +fix printdmdot all print ${WI} "${time} ${dmdot_1} ${dmdot_2} ${dmdot_3}" file dmdot.dat title "#time dmdot_1 dmdot_2 dmdot_3" + +compute fr_1 all reduce sum f_fracRed[1] f_fracRed[2] f_fracRed[3] +fix fr_d1 all ave/time 1 1 1 c_fr_1[1] c_fr_1[2] c_fr_1[3] +variable fr_d1_1 equal f_fr_d1[1] +variable fr_d1_2 equal f_fr_d1[2] +variable fr_d1_3 equal f_fr_d1[3] + +# Calculate total fractional reduction to be written into the dump file for postProcessing/graphical representation +variable frOV_d1 equal 1/9*(f_fr_d1[3])+2/9*(f_fr_d1[2])+6/9*(f_fr_d1[1]) + +fix printfr1 all print ${WI} "${time} ${fr_d1_1} ${fr_d1_2} ${fr_d1_3} ${frOV_d1}" file fr_d1.dat title "#time fr_d1_1 fr_d1_2 fr_d1_3 fr_overall_d1" + +############################################### +## Check Layer Radii and Write them to files ### +compute layerRad1 all reduce sum f_LayerRelRadii[1] +fix redRad1 all ave/time 1 1 1 c_layerRad1 +variable rr1 equal f_redRad1 + +compute layerRad2 all reduce sum f_LayerRelRadii[2] +fix redRad2 all ave/time 1 1 1 c_layerRad2 +variable rr2 equal f_redRad2 + +compute layerRad3 all reduce sum f_LayerRelRadii[3] +fix redRad3 all ave/time 1 1 1 c_layerRad3 +variable rr3 equal f_redRad3 + +compute layerRad4 all reduce sum f_LayerRelRadii[4] +fix redRad4 all ave/time 1 1 1 c_layerRad4 +variable rr4 equal f_redRad4 + +fix printRelRadii all print ${WI} "${time} ${rr1} ${rr2} ${rr3} ${rr4}" file relRadii.dat title "#time relRad_1 relRad_2 relRad_3 relRad_4" +############### + +# screen output +compute rke all erotate/sphere +thermo_style custom step atoms ke c_rke vol +thermo 10 +thermo_modify lost ignore norm no +compute_modify thermo_temp dynamic yes + +dump dmp all custom 100 ../DEM/post/dump*.liggghts_run id type x y z vx vy vz fx fy fz radius mass f_fracRed[1] f_fracRed[2] f_fracRed[3] + +run 1 diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/DEM/post/restart/.gitignore b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/DEM/post/restart/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/README b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/README new file mode 100644 index 00000000..bec3c204 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/README @@ -0,0 +1,6 @@ +Keq W-> Fe + Keq_ = exp(2744.63/T-2.946); + M-> W + Keq_ = exp(-3585.64/T+4.58); + H-> M + Keq_ = exp(3968.37/T+3.94); diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/grepScript.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/grepScript.sh new file mode 100755 index 00000000..ed6b811b --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/grepScript.sh @@ -0,0 +1,16 @@ +#!/bin/bash +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" + +cd $casePath +grep -E 'pdensity' log_ISO4695 > pdensity.txt +grep -E 'porosity' log_ISO4695 > porosity.txt +grep -E 'active layers' log_ISO4695 > activeLayers.txt +grep -E 'rhoeff_' log_ISO4695 > rhoeff.txt +grep -E 'pmass' log_ISO4695 > pmass.txt +grep -E 'pdensity after mass reduction =' log_ISO4695 > densityARed.txt diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/parCFDDEMrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/parCFDDEMrun.sh new file mode 100755 index 00000000..68acebf8 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/parCFDDEMrun.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +#===================================================================# +# allrun script for testcase +# M. Efe Kinaci - Sep 2019 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +#--------------------------------------------------------------------------------# +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +logpath=$casePath +headerText="ISO4695" +logfileName="log_$headerText" +solverName="cfdemSolverRhoPimpleChem" +nrProcs="2" +machineFileName="none" # yourMachinefileName | none +debugMode="off" # on | off| strict +testHarnessPath="$CFDEM_TEST_HARNESS_PATH" +runOctave="false" +postproc="false" + +#--------------------------------------------------------------------------------# + +#- call function to run a parallel CFD-DEM case +parCFDDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode + + +if [ $runOctave == "true" ] + then + #------------------------------# + # octave + + #- change path + cd octave + + #- rmove old graph + rm cfdemSolverPiso_ErgunTestMPI.eps + + #- run octave + octave totalPressureDrop.m + + #- show plot + evince cfdemSolverPiso_ErgunTestMPI.eps + + #- copy log file to test harness + cp ../../$logfileName $testHarnessPath + cp cfdemSolverPiso_ErgunTestMPI.eps $testHarnessPath +fi + +if [ $postproc == "true" ] + then + + #- keep terminal open (if started in new terminal) + echo "simulation finished? ...press enter to proceed" + read + + #- get VTK data from liggghts dump file + cd $casePath/DEM/post + python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_run + + #- get VTK data from CFD sim + cd $casePath/CFD + reconstructPar + foamToVTK #- serial run of foamToVTK + #source $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/functions.sh #- include functions + #pseudoParallelRun "foamToVTK" $nrPostProcProcessors #- pseudo parallel run of foamToVTK + + #- start paraview + paraview + + #- keep terminal open (if started in new terminal) + echo "...press enter to clean up case" + echo "press Ctr+C to keep data" + read + +fi + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/parDEMrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/parDEMrun.sh new file mode 100755 index 00000000..bdf87ec6 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/parDEMrun.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +#===================================================================# +# DEMrun script for testcase +# M. Efe Kinaci - Sep 2019 +#===================================================================# + +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +echo "starting DEM run in parallel..." +#--------------------------------------------------------------------------------# +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" +logpath="$casePath" +headerText="run_liggghts_init_DEM" +logfileName="log_$headerText" +solverName="in.liggghts_init" +nrProcs=2 +machineFileName="none" +debugMode="off" +#--------------------------------------------------------------------------------# + +#- call function to run DEM case +parDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/postrun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/postrun.sh new file mode 100755 index 00000000..06624406 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/postrun.sh @@ -0,0 +1,19 @@ +#!/bin/bash +#- source CFDEM env vars +. ~/.bashrc + +#- include functions +source $CFDEM_PROJECT_DIR/etc/functions.sh + +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" + +#- get VTK data from liggghts dump file +cd $casePath/DEM/post +python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_run + +#- get VTK data from CFD sim +cd $casePath/CFD +reconstructPar +foamToVTK + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/prerun.sh b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/prerun.sh new file mode 100755 index 00000000..7b370ae7 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/prerun.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +#- define variables +casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" + +# check if mesh was built +if [ -f "$casePath/CFD/constant/polyMesh/boundary" ]; then + echo "mesh was built before - using old mesh" +else + echo "mesh needs to be built" + cd $casePath/CFD + blockMesh +fi \ No newline at end of file diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/run.config b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/run.config new file mode 100644 index 00000000..17e0cac4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/run.config @@ -0,0 +1,20 @@ +{ + "type" : "CFDEMcoupling", + "runs" : [ + { + "name" : "liggghts-init", + "input_script" : "DEM/in.liggghts_init", + "type" : "liggghts/mpi", + "nprocs" : 2 + }, + { + "name" : "cfdemrun", + "depends_on" : "liggghts-init", + "solver" : "cfdemSolverRhoPimpleChem", + "type" : "CFDEMcoupling/mpi", + "nprocs" : 2, + "pre_scripts" : ["prerun.sh"], + "post_scripts" : ["postrun.sh"] + } + ] +} diff --git a/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/runLiseScript b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/runLiseScript new file mode 100644 index 00000000..06278633 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/SingleParticleCases/ISO4695/runLiseScript @@ -0,0 +1,19 @@ +#!/bin/bash +#PBS -o fb.out +#PBS -V +#PBS -k oe +#PBS -j oe +#PBS -l nodes=1:ppn=4 +#PBS -l walltime=24:00:00 +#PBS -m ae +#PBS -M mustafa_efe.kinaci@jku.at + +source ~/.bashrc +source /apps/openfoam-4.0/OpenFOAM-4.x-version-4.0/etc/bashrc +source $HOME/CFDEM/CFDEMcoupling/etc/bashrc +module add icc gcc + +caseDir=$HOME/CFDEM/CFDEMcoupling/tutorials/cfdemSolverRhoPimpleChem/ISO4695 +cd $caseDir + +./Allrun.sh