CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Programming & Development

error adding void fraction into the solver & Error when chemistry is on

Register Blogs Community New Posts Updated Threads Search

Like Tree1Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 25, 2015, 09:47
Default error adding void fraction into the solver & Error when chemistry is on
  #1
New Member
 
César Augusto Corrêa Miguéis
Join Date: Nov 2013
Location: Rio de Janeiro, Brasil
Posts: 26
Rep Power: 12
cmigueis is on a distinguished road
Hi Shuai! Did you have any progress?

I started to modify the coalChemistryFoam code to include the void fraction into the transport equations. In the coalChemistryFoam.c file I included the following code:

Code:
// Update continuous phase volume fraction field
        alpha = max(1.0 - coalCloud.theta() - limestoneCloud.theta(), 0.01);
        alpha.correctBoundaryConditions();
        alphaf = fvc::interpolate(alpha);
        alphaPhi = alphaf*phi;
that I adapted from the DPMFoam solver. The cloudName.theta() return the volumetric fraction of particles in the cell, so the alpha is the void fraction of the cell.

So, I modified the UEqn.h file into this (I'm gonna show only the modified part):

Code:
fvVectorMatrix UEqn
    (
        fvm::ddt(rho*alpha, U)
      + fvm::div(alphaPhi, U)
      + alpha*fvc::grad(p)
      + alpha*turbulence->divDevRhoReff(U)
      + alpha*rho.dimensionedInternalField()*g
     ==
        coalParcels.SU(U)
      + limestoneParcels.SU(U)
      + fvOptions(rho, U)
    );
The continuity equation looks like:

Code:
    {
    fvScalarMatrix rhoEqn
    (
        fvm::ddt(alpha,rho)
      + fvc::div(alpha,phi)
      ==
        coalParcels.Srho(rho)
    limestoneParcels.Srho(rho)
      + fvOptions(rho)
    );

    fvOptions.constrain(rhoEqn);

    rhoEqn.solve();

    fvOptions.correct(rho);
}

    );
Now I'm trying tho modify the energy equation, but I'm having a hard time trying to understand the code (I've already modified the temporal and the convective terms of the internal energy and the kinetic energy).
Code:
{
    volScalarField& he = thermo.he(); 

    fvScalarMatrix EEqn
    (
        fvm::ddt(alpha*rho, he) + mvConvection->fvmDiv(alphaPhi, he)
      + fvc::ddt(alpha*rho, K) + fvc::div(alphaPhi, K)
      + (
            he.name() == "e"
          ? fvc::div
            (
                fvc::absolute(phi/fvc::interpolate(rho), U),
                p,
                "div(phiv,p)"
            )
          : -dpdt
        )
      - fvm::laplacian(turbulence->alphaEff(), he)
     ==
        combustion->Sh()
      + coalParcels.Sh(he)
      + limestoneParcels.Sh(he)
      + radiation->Sh(thermo)
      + fvOptions(rho, he)
    );
Seems to me that this code should represent the Energy Equation in the for of the equation 12 in the article about the energy equation in the CFD DIrect ( http://cfd.direct/openfoam/energy-equation/ )



I'm stucked in this part:

Code:
+ (
            he.name() == "e"
          ? fvc::div
            (
                fvc::absolute(phi/fvc::interpolate(rho), U),
                p,
                "div(phiv,p)"
            )
          : -dpdt
        )
Can someone explain the code above? Which part of Eq. 12 (assuming that is the form of Eq 12 indeed) it represents?

Thanks in advance to everybody and regards from Brazil!

[ Moderator note: Moved from this thread: http://www.cfd-online.com/Forums/ope...ification.html - Reason: consolidation of the ongoing development ]
__________________
César Miguéis
Mechanical Engineer
MSc. Student at COPPE/UFRJ

Last edited by wyldckat; December 19, 2015 at 14:37. Reason: see "Moderator note:"
cmigueis is offline   Reply With Quote

Old   December 7, 2015, 09:46
Default
  #2
New Member
 
César Augusto Corrêa Miguéis
Join Date: Nov 2013
Location: Rio de Janeiro, Brasil
Posts: 26
Rep Power: 12
cmigueis is on a distinguished road
Hi everybody! I understood that part of the code in the EEqn file. It works like an if statement, depending if you are using the internal energy or the enthalpy form of the equation.

But I decided to give a few steps back and changed back the transport equations files and the coalCollidingChemistryFoam.c file to its original forms (without the void fraction term).

Than, using the DDPMFoam createFields.H file, I added the following code to my createFields.H file (in my coalCollidingChemistryFoam solver):

Code:
volScalarField alphac
    (
        IOobject
        (
            "alpha",
            runTime.timeName(),
            mesh,
            IOobject::READ_IF_PRESENT,
            IOobject::AUTO_WRITE
        ),
        mesh,
        dimensionedScalar("0", dimless, 0)
    );
	
    // Update alphac from the particle locations
    alphac = max(1.0 - coalCloud.theta() - limestoneCloud.theta(), 0.01);
    alphac.correctBoundaryConditions();

    surfaceScalarField alphaf("alphaf", fvc::interpolate(alphac));
    surfaceScalarField alphaPhi("alphaPhi", alphacf*phi);
Since both coalCloud and limestoneCloud are also KinematicCloud, the theta() function returns the particle volume fraction of the cell, right? This is the part of the code that defines the theta function, in the KinematicCloudI.H file:

Code:
template<class CloudType>
inline const Foam::tmp<Foam::volScalarField>
Foam::KinematicCloud<CloudType>::theta() const
{
    tmp<volScalarField> ttheta
    (
        new volScalarField
        (
            IOobject
            (
                this->name() + ":theta",
                this->db().time().timeName(),
                this->db(),
                IOobject::NO_READ,
                IOobject::NO_WRITE,
                false
            ),
            mesh_,
            dimensionedScalar("zero", dimless, 0.0),
            zeroGradientFvPatchScalarField::typeName
        )
    );

    volScalarField& theta = ttheta();
    forAllConstIter(typename KinematicCloud<CloudType>, *this, iter)
    {
        const parcelType& p = iter();
        const label cellI = p.cell();

        theta[cellI] += p.nParticle()*p.volume();
    }

    theta.internalField() /= mesh_.V();
    theta.correctBoundaryConditions();

    return ttheta;
}
But when I try to recompile the solver, I keep getting this error:

Code:
In file included from coalCollidingChemistryFoam.C:60:0:
createFields.H: In function ‘int main(int, char**)’:
createFields.H:158:33: error: expected primary-expression before ‘.’ token
     alphac = max(1.0 - coalCloud.theta() - limestoneCloud.theta(), 0.01);
                                 ^
createFields.H:158:58: error: expected primary-expression before ‘.’ token
     alphac = max(1.0 - coalCloud.theta() - limestoneCloud.theta(), 0.01);
Can someone explain what am I doing wrong?
__________________
César Miguéis
Mechanical Engineer
MSc. Student at COPPE/UFRJ
cmigueis is offline   Reply With Quote

Old   December 10, 2015, 11:06
Default Error when chemistry is on
  #3
New Member
 
César Augusto Corrêa Miguéis
Join Date: Nov 2013
Location: Rio de Janeiro, Brasil
Posts: 26
Rep Power: 12
cmigueis is on a distinguished road
Hi everybody! I'm facing some problems trying to use a modified version of the coalChemistryFoam. Actually, the only modification is that I added de coliidingcloud functionalty to the existing clouds in the solver. When I try to run a test case with the chemistry off (in the chemistryProperties dictionary) the simulation seems to run fine, but I got this awkward segmentation fault message at the end of the simulation (I'm running with the debug mode on, I don't know if this is normal in this case):

Code:
Courant Number mean: 0.0005176025851 max: 0.0009561949486
Time = 0.51


Solving 2-D cloud coalCloud1
Cloud: coalCloud1
    Current number of parcels       = 0
    Current mass in system          = 0
    Linear momentum                 = (0 0 0)
   |Linear momentum|                = 0
    Linear kinetic energy           = 0
    model1:
        number of parcels added     = 0
        mass introduced             = 0
    Parcels absorbed into film      = 0
    New film detached parcels       = 0
    Rotational kinetic energy       = 0
    Temperature min/max             = 0, 0
    Mass transfer phase change      = 0
    Mass transfer devolatilisation  = 0
    Mass transfer surface reaction  = 0


Solving 2-D cloud limestoneCloud1
Cloud: limestoneCloud1
    Current number of parcels       = 3999
    Current mass in system          = 0.02544053877
    Linear momentum                 = (-1.662093206e-10 1.717083916e-06 -3.123240113e-23)
   |Linear momentum|                = 1.717083924e-06
    Linear kinetic energy           = 1.912975865e-10
    model1:
        number of parcels added     = 3999
        mass introduced             = 0.02544053877
    Parcels absorbed into film      = 0
    New film detached parcels       = 0
    Rotational kinetic energy       = 1.338558325e-11
    Temperature min/max             = 1050, 1050
    Mass transfer phase change      = 0
    Mass transfer devolatilisation  = 0
    Mass transfer surface reaction  = 0

diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
PIMPLE: iteration 1
smoothSolver:  Solving for Ux, Initial residual = 3.761590054e-05, Final residual = 1.759845486e-11, No Iterations 1
smoothSolver:  Solving for Uy, Initial residual = 0.0005122043079, Final residual = 6.075660447e-10, No Iterations 1
smoothSolver:  Solving for O2, Initial residual = 0.000142167633, Final residual = 1.842070411e-11, No Iterations 1
smoothSolver:  Solving for CH4, Initial residual = 0, Final residual = 0, No Iterations 0
smoothSolver:  Solving for H2, Initial residual = 0, Final residual = 0, No Iterations 0
smoothSolver:  Solving for CO2, Initial residual = 0, Final residual = 0, No Iterations 0
smoothSolver:  Solving for H2O, Initial residual = 1.440929044e-05, Final residual = 6.77561168e-12, No Iterations 1
smoothSolver:  Solving for CO, Initial residual = 0, Final residual = 0, No Iterations 0
smoothSolver:  Solving for h, Initial residual = 1.641411891e-05, Final residual = 6.341277215e-12, No Iterations 1
DICPCG:  Solving for G, Initial residual = 1.051953276e-05, Final residual = 9.68720358e-06, No Iterations 1
T gas min/max   = 423, 670
GAMG:  Solving for p, Initial residual = 0.0007027171936, Final residual = 4.680406051e-08, No Iterations 1
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 2.667785662e-12, global = -1.082159283e-12, cumulative = 6.086472557e-10
GAMG:  Solving for p, Initial residual = 4.64293344e-08, Final residual = 4.64293344e-08, No Iterations 0
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 2.645289414e-12, global = -1.06343173e-12, cumulative = 6.07583824e-10
GAMG:  Solving for p, Initial residual = 4.642803206e-08, Final residual = 4.642803206e-08, No Iterations 0
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 2.645217289e-12, global = -1.063380117e-12, cumulative = 6.065204439e-10
smoothSolver:  Solving for epsilon, Initial residual = 0.0001250561599, Final residual = 1.1478023e-10, No Iterations 1
smoothSolver:  Solving for k, Initial residual = 9.382222441e-05, Final residual = 1.34367301e-10, No Iterations 1
ExecutionTime = 918.53 s  ClockTime = 919 s

End

Segmentation fault (core dumped)
But when I turn the chemistry on, the simulation crashes at the first time step with this message:

Code:
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
PIMPLE: iteration 1
smoothSolver:  Solving for Ux, Initial residual = 3.782030516e-05, Final residual = 1.763957979e-11, No Iterations 1
smoothSolver:  Solving for Uy, Initial residual = 0.0005098285544, Final residual = 6.043577897e-10, No Iterations 1


--> FOAM FATAL ERROR: 
attempt to access element from zero sized list

    From function UList<T>::checkIndex(const label)
    in file /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/UListI.H at line 103.

FOAM aborting

#0  Foam::error::printStack(Foam::Ostream&) at ~/OpenFOAM/OpenFOAM-2.3.x/src/OSspecific/POSIX/printStack.C:219
#1  Foam::error::abort() at ~/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/error.C:249
#2  Foam::Ostream& Foam::operator<< <Foam::error>(Foam::Ostream&, Foam::errorManip<Foam::error>) at ~/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/errorManip.H:85 (discriminator 3)
#3  Foam::UList<Foam::Reaction<Foam::sutherlandTransport<Foam::species::thermo<Foam::janafThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleEnthalpy> > >::specieCoeffs>::checkIndex(int) const at ~/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/UListI.H:103
#4  Foam::UList<Foam::Reaction<Foam::sutherlandTransport<Foam::species::thermo<Foam::janafThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleEnthalpy> > >::specieCoeffs>::operator[](int) const at ~/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/UListI.H:200
#5  Foam::chemistryModel<Foam::psiChemistryModel, Foam::sutherlandTransport<Foam::species::thermo<Foam::janafThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleEnthalpy> > >::omega(Foam::Reaction<Foam::sutherlandTransport<Foam::species::thermo<Foam::janafThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleEnthalpy> > > const&, Foam::Field<double> const&, double, double, double&, double&, int&, double&, double&, int&) const at ~/OpenFOAM/OpenFOAM-2.3.x/src/thermophysicalModels/chemistryModel/lnInclude/chemistryModel.C:230 (discriminator 1)
#6  Foam::chemistryModel<Foam::psiChemistryModel, Foam::sutherlandTransport<Foam::species::thermo<Foam::janafThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleEnthalpy> > >::omega(Foam::Field<double> const&, double, double) const at ~/OpenFOAM/OpenFOAM-2.3.x/src/thermophysicalModels/chemistryModel/lnInclude/chemistryModel.C:114 (discriminator 1)
#7  Foam::chemistryModel<Foam::psiChemistryModel, Foam::sutherlandTransport<Foam::species::thermo<Foam::janafThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleEnthalpy> > >::jacobian(double, Foam::Field<double> const&, Foam::Field<double>&, Foam::SquareMatrix<double>&) const at ~/OpenFOAM/OpenFOAM-2.3.x/src/thermophysicalModels/chemistryModel/lnInclude/chemistryModel.C:347 (discriminator 1)
#8  Foam::seulex::solve(double&, Foam::Field<double>&, Foam::ODESolver::stepState&) const at ~/OpenFOAM/OpenFOAM-2.3.x/src/ODE/ODESolvers/seulex/seulex.C:240
#9  Foam::ODESolver::solve(double, double, Foam::Field<double>&, double&) const at ~/OpenFOAM/OpenFOAM-2.3.x/src/ODE/ODESolvers/ODESolver/ODESolver.C:125
#10  Foam::ode<Foam::chemistryModel<Foam::psiChemistryModel, Foam::sutherlandTransport<Foam::species::thermo<Foam::janafThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleEnthalpy> > > >::solve(Foam::Field<double>&, double&, double&, double&, double&) const at ~/OpenFOAM/OpenFOAM-2.3.x/src/thermophysicalModels/chemistryModel/lnInclude/ode.C:75
#11  double Foam::chemistryModel<Foam::psiChemistryModel, Foam::sutherlandTransport<Foam::species::thermo<Foam::janafThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleEnthalpy> > >::solve<Foam::UniformField<double> >(Foam::UniformField<double> const&) at ~/OpenFOAM/OpenFOAM-2.3.x/src/thermophysicalModels/chemistryModel/lnInclude/chemistryModel.C:815
#12  Foam::chemistryModel<Foam::psiChemistryModel, Foam::sutherlandTransport<Foam::species::thermo<Foam::janafThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleEnthalpy> > >::solve(double) at ~/OpenFOAM/OpenFOAM-2.3.x/src/thermophysicalModels/chemistryModel/lnInclude/chemistryModel.C:841
#13  Foam::combustionModels::laminar<Foam::combustionModels::psiChemistryCombustion>::correct() at ~/OpenFOAM/OpenFOAM-2.3.x/src/combustionModels/lnInclude/laminar.C:111
#14  Foam::combustionModels::PaSR<Foam::combustionModels::psiChemistryCombustion>::correct() at ~/OpenFOAM/OpenFOAM-2.3.x/src/combustionModels/PaSR/PaSR.C:73
#15  ? at ~/OpenFOAM/cesar-2.3.x/ccf_colrq/coalCollidingChemistryFoam/YEqn.H:15
#16  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#17  ? at ??:?
Aborted (core dumped)
Anyone knows why this error occurs?
__________________
César Miguéis
Mechanical Engineer
MSc. Student at COPPE/UFRJ
cmigueis is offline   Reply With Quote

Old   December 14, 2015, 07:56
Default error adding void fraction into the solver
  #4
New Member
 
César Augusto Corrêa Miguéis
Join Date: Nov 2013
Location: Rio de Janeiro, Brasil
Posts: 26
Rep Power: 12
cmigueis is on a distinguished road
Hi Bruno! Can you help me in this thread: http://www.cfd-online.com/Forums/ope...ification.html ? I'm getting an error while trying to insert the void fraction term into the solver!

[ Moderator note: moved from http://www.cfd-online.com/Forums/ope...istryfoam.html ]
__________________
César Miguéis
Mechanical Engineer
MSc. Student at COPPE/UFRJ

Last edited by wyldckat; December 19, 2015 at 14:39. Reason: see "Moderator note:"
cmigueis is offline   Reply With Quote

Old   December 19, 2015, 14:47
Default
  #5
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,975
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Greetings César,

I've moved your posts on this topic into a single thread, to make it easier to keep track of everything related to this topic of yours.

First issue:
Quote:
Originally Posted by cmigueis View Post
Code:
    // Update alphac from the particle locations
    alphac = max(1.0 - coalCloud.theta() - limestoneCloud.theta(), 0.01);
[...]

But when I try to recompile the solver, I keep getting this error:

Code:
In file included from coalCollidingChemistryFoam.C:60:0:
createFields.H: In function ‘int main(int, char**)’:
createFields.H:158:33: error: expected primary-expression before ‘.’ token
     alphac = max(1.0 - coalCloud.theta() - limestoneCloud.theta(), 0.01);
                                 ^
createFields.H:158:58: error: expected primary-expression before ‘.’ token
     alphac = max(1.0 - coalCloud.theta() - limestoneCloud.theta(), 0.01);
Can someone explain what am I doing wrong?
I'm guessing that you believe that "coalCloud" is the same as "kinematicCloud" from DPMFoam. The problem is that in DPMFoam the definition of "kinematicCloud" is this:
Code:
    Info<< "Constructing kinematicCloud " << kinematicCloudName << endl;
    basicKinematicTypeCloud kinematicCloud
    (
        kinematicCloudName,
        rhoc,
        Uc,
        muc,
        g
    );
And in coalChemistryFoam the clouds are these:
Code:
Info<< "\nConstructing coal cloud" << endl;
coalCloud coalParcels
(
    "coalCloud1",
    rho,
    U,
    g,
    slgThermo
);

Info<< "\nConstructing limestone cloud" << endl;
basicThermoCloud limestoneParcels
(
    "limestoneCloud1",
    rho,
    U,
    g,
    slgThermo
);
Which means that you should have this:
Code:
    // Update alphac from the particle locations
    alphac = max(1.0 - coalParcels.theta() - limestoneParcels.theta(), 0.01);
At least, this is my best guess, based on the source code from OpenFOAM 2.4.x.


Quote:
Originally Posted by cmigueis View Post
Hi everybody! I'm facing some problems trying to use a modified version of the coalChemistryFoam. Actually, the only modification is that I added de coliidingcloud functionalty to the existing clouds in the solver. When I try to run a test case with the chemistry off (in the chemistryProperties dictionary) the simulation seems to run fine, but I got this awkward segmentation fault message at the end of the simulation (I'm running with the debug mode on, I don't know if this is normal in this case):

[...]
But when I turn the chemistry on, the simulation crashes at the first time step with this message:
Not enough information to fully diagnose the problem.
Both situations have crashes related to incorrect memory accesses, but it's hard to ascertain if both are for the same reason or not.
The second crash seems to be because there is an incorrectly defined cloud file somewhere.

Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   December 28, 2015, 07:49
Default Hi,cmigueis
  #6
New Member
 
Shuai Wang
Join Date: Mar 2014
Posts: 26
Rep Power: 12
Shuai_W is on a distinguished road
hi, cmigueis,
Did you receive my reply via E-mail about adding the void fraction into coalChemistryFoam? I think I have accomplished it. If you receive it, I want to discuss with you about how to do in the nest step.

WANG
Shuai_W is offline   Reply With Quote

Old   December 28, 2015, 09:03
Default Thanks
  #7
New Member
 
César Augusto Corrêa Miguéis
Join Date: Nov 2013
Location: Rio de Janeiro, Brasil
Posts: 26
Rep Power: 12
cmigueis is on a distinguished road
Dear Bruno and Shuai, thanks a lot for your replies, and sorry for the long time it took me to answer to it! I'm studying for this exam (which is not about cfd/gasification) so I'm a little bit slow on the code development right now (but I did not abandoned it!)

Shuai, I received your email and started to analize the code (I'm attaching the code to this reply, so anyone can see and contribute to it, ok?). It seems to me that you added the void fraction, but you only consider one cloud in the domain, right? And I think that the species transport equation also needs the void fraction term. I'm more than happy to discuss with you the next steps! I was thinking about the chemistry part of the solver. Based on the Ku work (or Oevermann and Gerber work's also), we need to implement the pyrolysis models and the heterogeneous reactions. About the collisions models, althought it takes the p-p and p-w collisions into account the solver uses a more simplified model than the soft sphere model. I was talking about this with a few people who has good OpenFOAM knowledge and they told me to try to use the CFDEM ( http://www.cfdem.com/ ) package/addon. What do you think about it?

Bruno and Shuai, again, thanks for the help! I hope you had a great christmas, and wish you'll have a happy new year!
Attached Files
File Type: gz coalcollidingChemistryFoam.tar.gz (4.9 KB, 41 views)
File Type: gz collidingcoalcombustion.tar.gz (11.1 KB, 36 views)
wyldckat likes this.
__________________
César Miguéis
Mechanical Engineer
MSc. Student at COPPE/UFRJ
cmigueis is offline   Reply With Quote

Old   December 28, 2015, 22:11
Default voida fraction, chemical reactions, conductive heat transfer
  #8
New Member
 
Shuai Wang
Join Date: Mar 2014
Posts: 26
Rep Power: 12
Shuai_W is on a distinguished road
Dear cmigueis, thanks for your reply, I am happy to hear that you will continue to do it. I agree with you about sharing the codes.
At first, I only consider one cloud (coalCloud) in the code for simplification, however, it is easy to take limestoneCloud into account in the code. Secondly, as your advice, the species transport equations also need void fraction, I will deal with this aspect in the next few days. Thirdly, about chemistry part, I think we should take heterogeneous reactions as below into account:
C + 0.5O2 --> CO; K1 is the rate constant
C + CO2 --> 2CO; K2 is the rate constant
C + H2O --> CO+H2; K3 is the rate constant
In general, the pyrolysis (devolatilization) model is one of the most important models in chemical part, the devolatilization rate is modeled using a single step first-order Arrhenius reaction in Ku or Abani & Ghoniem's work. I think we can adopt this model in the first step.
About the collisions model, p-p or p-w collisions are taken into account in the solver, however, the heat transfer between p-p or p-w collision are not considered in the OpenFOAM, the widely used models as below: Static conductive heat transfer between the colliding pair with zero relative velocity proposed by Batchelor & O’Brien and modified by Cheng (attachments); Conductive heat transfer between the colliding pair with non-zero relative velocity proposed by Sun & Chen and modified by Zhou (attachments). Which can refer to the CFDEM, however, I think it will difficult to do it.
In a word, add void fraction into species transport equations, then develop heterogeneous reactions, finally develop conductive heat transfer between colliding p-p and p-w, which is my strategy to develop a four-way coupling solver to resolver coal combustion or biomass gasification.
Best regards!
WANG
Attached Images
File Type: jpg Static conductive heat transfer.jpg (10.3 KB, 32 views)
File Type: jpg Conductive heat transfer.jpg (14.9 KB, 31 views)
Shuai_W is offline   Reply With Quote

Old   January 3, 2016, 15:29
Default Questions
  #9
New Member
 
César Augusto Corrêa Miguéis
Join Date: Nov 2013
Location: Rio de Janeiro, Brasil
Posts: 26
Rep Power: 12
cmigueis is on a distinguished road
Hi Wang! I totally agree with your strategy! At first I wouldn't add the conductive heat transfer between p-p and p-w, but it seems to be a good improvement of the code! Until the end of january I will be a little bit slower with the code development, because of my exam, but I'll try to work on it whenever I can.

I was studying your code and I have some questions:

1- How the coalCloudList works? It means that I can have more than 1 coal cloud?

2- Can you explain this part of the code in coalChemistryFoam.C file?

Code:
fvVectorMatrix cloudSU(coalParcels.SU(U));
        volVectorField cloudVolSUSu
        (
            IOobject
            (
                "cloudVolSUSu",
                runTime.timeName(),
                mesh
            ),
            mesh,
            dimensionedVector
            (
                "0",
                cloudSU.dimensions()/dimVolume,
                vector::zero
            ),
            zeroGradientFvPatchVectorField::typeName
        );

        cloudVolSUSu.internalField() = -cloudSU.source()/mesh.V();
        cloudVolSUSu.correctBoundaryConditions();
        cloudSU.source() = vector::zero;
3- I think you forgot to add the void fraction into the diffusive term of the energy equation, Am I right?

I saw your question about the Ergun/Wen-Yu drag relation, I'll try to find out how to solve this!

Regards!
__________________
César Miguéis
Mechanical Engineer
MSc. Student at COPPE/UFRJ
cmigueis is offline   Reply With Quote

Old   January 3, 2016, 23:06
Default
  #10
New Member
 
Shuai Wang
Join Date: Mar 2014
Posts: 26
Rep Power: 12
Shuai_W is on a distinguished road
Hi cmigueis! I have already finished the heterogeneous reactions (i.e. surface reaction of char): C + O2, C + CO2 and C + H2O. About your questions:
1. I think if you want to use more than one coal cloud, you can specify them as the coalCloud1, coalCloud2…., and define them in createCloud.H.
2. This part is the same with DPMFoam, and frankly speaking, I don’t understand it completely.
3. In the EEqn.H:
Quote:
fvScalarMatrix EEqn
(
fvm::ddt(alpha*rho, he) + mvConvection->fvmDiv(alphaPhi, he)
+ fvc::ddt(alpha*rho, K) + fvc::div(alphaPhi, K)
+ (
he.name() == "e"
? fvc::div
(
fvc::absolute(alphaPhi/fvc::interpolate(rho), U),
p,
"div(phiv,p)"
)
: -dpdt*alpha
)
- fvm::laplacian(alpha*turbulence->alphaEff(), he)
==
combustion->Sh()
+ coalParcels.Sh(he)
+ limestoneParcels.Sh(he)
+ radiation->Sh(thermo)
+ fvOptions(rho, he)
);
I think the void fraction has been already added into the diffusion term of energy equation.
Yesterday I solved the drag model problem. In the file makeThermoParcelForces.H, I added the ErgunWenYuDrag, thus it can be selected in the runTimeSelection. Then I set a case as the work conducted by Ku et al. (2015 CES), however, when it run to 0.32s, it crashed, which might result from many factors: discretization scheme, boundary conditions……
I will handle it in the next few days, and I will share the codes after it run with no problems.

Best regards!
Wang

Last edited by Shuai_W; January 4, 2016 at 00:54.
Shuai_W is offline   Reply With Quote

Old   January 8, 2016, 11:02
Default Congratulations and more questions!
  #11
New Member
 
César Augusto Corrêa Miguéis
Join Date: Nov 2013
Location: Rio de Janeiro, Brasil
Posts: 26
Rep Power: 12
cmigueis is on a distinguished road
Wow! Thanks for the reply and congratulations for the very fast advances on the development of the code!

About the multiple coal clouds, it means that if a define the bed as a coal cloud also (varying the composition of the particles, let's say only char is present and the name is coalCloud2, coalCloud1 is the coal/biomass injection cloud), then it's unnecessary to add the terms of another cloud into the equation? I mean, when the void fraction is calculated using the 1-coalParcels.Theta() relation, the coalParcels.Theta() will compute the sum of the coalCloud1 and coalCloud2 volume fractions? Or the source terms in the conservation equations (like coalParcels.Sh(he) in the energy equation) will represent the sum of the source terms relative to both coalClouds?

Best regards!
__________________
César Miguéis
Mechanical Engineer
MSc. Student at COPPE/UFRJ
cmigueis is offline   Reply With Quote

Old   January 8, 2016, 20:23
Default Errors about coalCollidingChemistryFoam
  #12
New Member
 
Shuai Wang
Join Date: Mar 2014
Posts: 26
Rep Power: 12
Shuai_W is on a distinguished road
Dear cmigueis,
In a sense, the physical process of your simulation is co-combustion of coal and biomass. Since these two materials (fuel) have different thermal parameters (e.g., surface reaction coefficients, devolatilization coefficients), thus I think they should be defined as two clouds, named coalCloud1 and biomassCloud1, which is child-class of coalCloud,
Quote:
coalCloud coalParcels
(
"coalCloud1",
rho,
U,
g,
slgThermo
);
coalCloud biomassParcels
(
"biomassCloud1",
rho,
U,
g,
slgThermo
);
After that, add them to equations, the void fraction is calculated using:
alpha = max(1.0 - coalParcels.theta() - biomassParcels.theta(), 0.01);
The source terms should be expressed as coalParcels.Sh() + biomassParcels.Sh().
During last few days, I have fixed some bugs about my codes, however, errors still exist when the coal devolatilization happens:
Quote:
--> FOAM Warning :
From function seulex::solve(scalar& x, scalarField& y, stepState&
in file ODESolvers/seulex/seulex.C at line 255
step size underflow :3.632619137e-308
--> FOAM Warning :
From function seulex::solve(scalar& x, scalarField& y, stepState&
in file ODESolvers/seulex/seulex.C at line 255
step size underflow :1.816309568e-308
#0 Foam::error:rintStack(Foam::Ostream&) in "/home/*/OpenFOAM/OpenFOAM-2.3.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1 Foam::sigFpe::sigHandler(int) in "/home/*/OpenFOAM/OpenFOAM-2.3.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#2
at sigaction.c:0
#3 Foam::seulex::solve(double&, Foam::Field<double>&, Foam::ODESolver::stepState&) const in "/home/*/OpenFOAM/OpenFOAM-2.3.1/platforms/linux64GccDPOpt/lib/libODE.so"
It may result from fvSchemes, combustion parameters……..I will try to fix it.
Best regards!
Wang
Shuai_W is offline   Reply With Quote

Old   January 11, 2016, 11:52
Default
  #13
New Member
 
César Augusto Corrêa Miguéis
Join Date: Nov 2013
Location: Rio de Janeiro, Brasil
Posts: 26
Rep Power: 12
cmigueis is on a distinguished road
Thanks for the reply, Wang! I agree with what you said about my case! But let's say I have a situation where I have to implement two different coal clouds (coalCloud1 and coalCloud2), the terms like coalParcels.Sh(he) will already represent the sum of the contributions relative to both coalClouds?

If you want, send me the solver, libraries and the test case that you are trying to run, then I can test here different case setups and numerical schemes to see if we can solve the devolatilization problem!

Best regards!
__________________
César Miguéis
Mechanical Engineer
MSc. Student at COPPE/UFRJ
cmigueis is offline   Reply With Quote

Old   January 17, 2016, 03:18
Default void fraction
  #14
New Member
 
Shuai Wang
Join Date: Mar 2014
Posts: 26
Rep Power: 12
Shuai_W is on a distinguished road
Hi, cmigueis,
I have two questions, please give me some advice.
1) As we know, we should add void fraction to UEqn.H, YEqn.H…, but how about pEqn.H. When we build the pressure equation, whether we should add void fraction to it or not?
2) In UEqn.H, in “+ *turbulence->divDevRhoReff(U)”, it should be written as “+ alpha*turbulence->divDevRhoReff(U)”.
3) Should we add void fraction to source terms? It seems like we do not take void fraction into account when we calculate source terms. (In UEqn.H: “coalParcels.SU(U) + limestoneParcels.SU(U) + fvOptions(rho, U)”)
Best regards!
Wang
Shuai_W is offline   Reply With Quote

Old   March 9, 2016, 20:34
Default
  #15
New Member
 
César Augusto Corrêa Miguéis
Join Date: Nov 2013
Location: Rio de Janeiro, Brasil
Posts: 26
Rep Power: 12
cmigueis is on a distinguished road
Hi Wang and everybody!

Quote:
Hi, cmigueis,
I have two questions, please give me some advice.
1) As we know, we should add void fraction to UEqn.H, YEqn.H…, but how about pEqn.H. When we build the pressure equation, whether we should add void fraction to it or not?
2) In UEqn.H, in “+ *turbulence->divDevRhoReff(U)”, it should be written as “+ alpha*turbulence->divDevRhoReff(U)”.
3) Should we add void fraction to source terms? It seems like we do not take void fraction into account when we calculate source terms. (In UEqn.H: “coalParcels.SU(U) + limestoneParcels.SU(U) + fvOptions(rho, U)”)
Best regards!
Wang
I'm not a 100% sure, but I think that it's not necessary to add the void fraction into the pressure equation and the turbulence term in the U equation. The pressure equation and the turbulence equation refers to the velocity field, which is already calculated using the void fraction. About the source terms I still don't know the answer.
__________________
César Miguéis
Mechanical Engineer
MSc. Student at COPPE/UFRJ
cmigueis is offline   Reply With Quote

Old   March 9, 2016, 21:15
Default
  #16
New Member
 
César Augusto Corrêa Miguéis
Join Date: Nov 2013
Location: Rio de Janeiro, Brasil
Posts: 26
Rep Power: 12
cmigueis is on a distinguished road
Bruno, Wang and everybody, I'm trying to adapt the turbulence equation (the k-e model) so it take the void fraction in account.
I modified the original versions of the k-e files, but I still can't compile it. I thing the difficulty of it is because of the addition of another parameter (the void fraction fied) which is incompatible with a lot of functions that the k-e model depends on.
Anyone can suggest a strategy to implement this new turbulence model? I saw some turbulence models modifications on the internet, but none that introduces another field that is calculated outside the turbulence model.

Thanks in advance to everybody!

Here are the files:

vfkEpsilon.C
Code:
#include "vfkEpsilon.H"
#include "addToRunTimeSelectionTable.H"

#include "backwardsCompatibilityWallFunctions.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

namespace Foam
{
namespace compressible
{
namespace RASModels
{

// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //

defineTypeNameAndDebug(vfkEpsilon, 0);
addToRunTimeSelectionTable(RASModel, vfkEpsilon, dictionary);

// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //

vfkEpsilon::vfkEpsilon
(
    const volScalarField& alpha,
	const volScalarField& rho,
    const volVectorField& U,
    const surfaceScalarField& phi,
    const fluidThermo& thermophysicalModel,
    const word& turbulenceModelName,
    const word& modelName
)
:
    RASModel(modelName, alpha, rho, U, phi, thermophysicalModel, turbulenceModelName),

    Cmu_
    (
        dimensioned<scalar>::lookupOrAddToDict
        (
            "Cmu",
            coeffDict_,
            0.09
        )
    ),
    C1_
    (
        dimensioned<scalar>::lookupOrAddToDict
        (
            "C1",
            coeffDict_,
            1.44
        )
    ),
    C2_
    (
        dimensioned<scalar>::lookupOrAddToDict
        (
            "C2",
            coeffDict_,
            1.92
        )
    ),
    C3_
    (
        dimensioned<scalar>::lookupOrAddToDict
        (
            "C3",
            coeffDict_,
            -0.33
        )
    ),
    sigmak_
    (
        dimensioned<scalar>::lookupOrAddToDict
        (
            "sigmak",
            coeffDict_,
            1.0
        )
    ),
    sigmaEps_
    (
        dimensioned<scalar>::lookupOrAddToDict
        (
            "sigmaEps",
            coeffDict_,
            1.3
        )
    ),
    Prt_
    (
        dimensioned<scalar>::lookupOrAddToDict
        (
            "Prt",
            coeffDict_,
            1.0
        )
    ),

    k_
    (
        IOobject
        (
            "k",
            runTime_.timeName(),
            mesh_,
            IOobject::NO_READ,
            IOobject::AUTO_WRITE
        ),
        autoCreateK("k", mesh_)
    ),
    epsilon_
    (
        IOobject
        (
            "epsilon",
            runTime_.timeName(),
            mesh_,
            IOobject::NO_READ,
            IOobject::AUTO_WRITE
        ),
        autoCreateEpsilon("epsilon", mesh_)
    ),
    mut_
    (
        IOobject
        (
            "mut",
            runTime_.timeName(),
            mesh_,
            IOobject::NO_READ,
            IOobject::AUTO_WRITE
        ),
        autoCreateMut("mut", mesh_)
    ),
    alphat_
    (
        IOobject
        (
            "alphat",
            runTime_.timeName(),
            mesh_,
            IOobject::NO_READ,
            IOobject::AUTO_WRITE
        ),
        autoCreateAlphat("alphat", mesh_)
    )
{
    bound(k_, kMin_);
    bound(epsilon_, epsilonMin_);

    mut_ = Cmu_*rho_*sqr(k_)/epsilon_;
    mut_.correctBoundaryConditions();

    alphat_ = mut_/Prt_;
    alphat_.correctBoundaryConditions();

    printCoeffs();
}


// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //

tmp<volSymmTensorField> vfkEpsilon::R() const
{
    return tmp<volSymmTensorField>
    (
        new volSymmTensorField
        (
            IOobject
            (
                "R",
                runTime_.timeName(),
                mesh_,
                IOobject::NO_READ,
                IOobject::NO_WRITE
            ),
            ((2.0/3.0)*I)*k_ - (mut_/rho_)*dev(twoSymm(fvc::grad(U_))),
            k_.boundaryField().types()
        )
    );
}


tmp<volSymmTensorField> vfkEpsilon::devRhoReff() const
{
    return tmp<volSymmTensorField>
    (
        new volSymmTensorField
        (
            IOobject
            (
                "devRhoReff",
                runTime_.timeName(),
                mesh_,
                IOobject::NO_READ,
                IOobject::NO_WRITE
            ),
           -muEff()*dev(twoSymm(fvc::grad(U_)))
        )
    );
}


tmp<fvVectorMatrix> vfkEpsilon::divDevRhoReff(volVectorField& U) const
{
    return
    (
      - fvm::laplacian(muEff(), U)
      - fvc::div(muEff()*dev2(T(fvc::grad(U))))
    );
}


bool vfkEpsilon::read()
{
    if (RASModel::read())
    {
        Cmu_.readIfPresent(coeffDict());
        C1_.readIfPresent(coeffDict());
        C2_.readIfPresent(coeffDict());
        C3_.readIfPresent(coeffDict());
        sigmak_.readIfPresent(coeffDict());
        sigmaEps_.readIfPresent(coeffDict());
        Prt_.readIfPresent(coeffDict());

        return true;
    }
    else
    {
        return false;
    }
}


void vfkEpsilon::correct()
{
    if (!turbulence_)
    {
        // Re-calculate viscosity
        mut_ = rho_*Cmu_*sqr(k_)/epsilon_;
        mut_.correctBoundaryConditions();

        // Re-calculate thermal diffusivity
        alphat_ = mut_/Prt_;
        alphat_.correctBoundaryConditions();

        return;
    }

    RASModel::correct();

    volScalarField divU(fvc::div(phi_/fvc::interpolate(rho_)));

    if (mesh_.moving())
    {
        divU += fvc::div(mesh_.phi());
    }

    tmp<volTensorField> tgradU = fvc::grad(U_);
    volScalarField G(GName(), mut_*(tgradU() && dev(twoSymm(tgradU()))));
    tgradU.clear();

    // Update epsilon and G at the wall
    epsilon_.boundaryField().updateCoeffs();

    // Dissipation equation
    tmp<fvScalarMatrix> epsEqn
    (
        fvm::ddt(alpha_*rho_, epsilon_)
      + fvm::div(alpha_*phi_, epsilon_)
      - fvm::laplacian(alpha_*DepsilonEff(), epsilon_)
     ==
        alpha_*C1_*G*epsilon_/k_
      - fvm::SuSp(alpha_*((2.0/3.0)*C1_ + C3_)*rho_*divU, epsilon_)
      - fvm::Sp(alpha_*C2_*rho_*epsilon_/k_, epsilon_)
    );

    epsEqn().relax();

    epsEqn().boundaryManipulate(epsilon_.boundaryField());

    solve(epsEqn);
    bound(epsilon_, epsilonMin_);


    // Turbulent kinetic energy equation

    tmp<fvScalarMatrix> kEqn
    (
        fvm::ddt(alpha_*rho_, k_)
      + fvm::div(alpha_*phi_, k_)
      - fvm::laplacian(alpha_*DkEff(), k_)
     ==
        alpha_*G
      - fvm::SuSp(alpha_*(2.0/3.0)*rho_*divU, k_)
      - fvm::Sp(alpha_*rho_*epsilon_/k_, k_)
    );

    kEqn().relax();
    solve(kEqn);
    bound(k_, kMin_);


    // Re-calculate viscosity
    mut_ = rho_*Cmu_*sqr(k_)/epsilon_;
    mut_.correctBoundaryConditions();

    // Re-calculate thermal diffusivity
    alphat_ = mut_/Prt_;
    alphat_.correctBoundaryConditions();
}


// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace RASModels
} // End namespace compressible
} // End namespace Foam

// ************************************************************************* //
vfkEpsilon.H
Code:
#ifndef compressiblevfkEpsilon_H
#define compressiblevfkEpsilon_H

#include "RASModel.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

namespace Foam
{
namespace compressible
{
namespace RASModels
{

/*---------------------------------------------------------------------------*\
                           Class vfkEpsilon Declaration
\*---------------------------------------------------------------------------*/

class vfkEpsilon
:
    public RASModel
{

protected:

    // Protected data

        // Model coefficients

            dimensionedScalar Cmu_;
            dimensionedScalar C1_;
            dimensionedScalar C2_;
            dimensionedScalar C3_;
            dimensionedScalar sigmak_;
            dimensionedScalar sigmaEps_;
            dimensionedScalar Prt_;

        // Fields

            volScalarField k_;
            volScalarField epsilon_;
            volScalarField mut_;
            volScalarField alphat_;


public:

    //- Runtime type information
    TypeName("vfkEpsilon");

    // Constructors

        //- Construct from components
        vfkEpsilon
        (
            const volScalarField& alpha,
			const volScalarField& rho,
            const volVectorField& U,
            const surfaceScalarField& phi,
            const fluidThermo& thermophysicalModel,
            const word& turbulenceModelName = turbulenceModel::typeName,
            const word& modelName = typeName
        );


    //- Destructor
    virtual ~vfkEpsilon()
    {}


    // Member Functions

        //- Return the effective diffusivity for k
        tmp<volScalarField> DkEff() const
        {
            return tmp<volScalarField>
            (
                new volScalarField("DkEff", mut_/sigmak_ + mu())
            );
        }

        //- Return the effective diffusivity for epsilon
        tmp<volScalarField> DepsilonEff() const
        {
            return tmp<volScalarField>
            (
                new volScalarField("DepsilonEff", mut_/sigmaEps_ + mu())
            );
        }

        //- Return the turbulence viscosity
        virtual tmp<volScalarField> mut() const
        {
            return mut_;
        }

        //- Return the turbulence thermal diffusivity
        virtual tmp<volScalarField> alphat() const
        {
            return alphat_;
        }

        //- Return the turbulence kinetic energy
        virtual tmp<volScalarField> k() const
        {
            return k_;
        }

        //- Return the turbulence kinetic energy dissipation rate
        virtual tmp<volScalarField> epsilon() const
        {
            return epsilon_;
        }

        //- Return the Reynolds stress tensor
        virtual tmp<volSymmTensorField> R() const;

        //- Return the effective stress tensor including the laminar stress
        virtual tmp<volSymmTensorField> devRhoReff() const;

        //- Return the source term for the momentum equation
        virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const;

        //- Solve the turbulence equations and correct the turbulence viscosity
        virtual void correct();

        //- Read RASProperties dictionary
        virtual bool read();
};


// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace RASModels
} // End namespace compressible
} // End namespace Foam

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#endif

// ************************************************************************* //

Make/files
Code:
/* RAS turbulence models */

vfkEpsilon/vfkEpsilon.C

LIB = $(FOAM_LIBBIN)/libmyCompressibleRASModels

Make/options
Code:
EXE_INC = \
    -I$(LIB_SRC)/turbulenceModels \
	-I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude \
    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
    -I$(LIB_SRC)/thermophysicalModels/solidThermo/lnInclude \
    -I$(LIB_SRC)/finiteVolume/lnInclude \
    -I$(LIB_SRC)/meshTools/lnInclude \

LIB_LIBS = \
    -lcompressibleTurbulenceModel \
	-lcompressibleRASModels \
    -lfiniteVolume \
    -lfluidThermophysicalModels \
    -lspecie \
    -lmeshTools
__________________
César Miguéis
Mechanical Engineer
MSc. Student at COPPE/UFRJ
cmigueis is offline   Reply With Quote

Old   March 9, 2016, 21:16
Default
  #17
New Member
 
César Augusto Corrêa Miguéis
Join Date: Nov 2013
Location: Rio de Janeiro, Brasil
Posts: 26
Rep Power: 12
cmigueis is on a distinguished road
here is the output when I try to compile it:
Code:
cesar@cesarnotebook:~/OpenFOAM/cesar-2.3.x/custom/src/turbulenceModels/compressible/RAS$ wmake
wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file vfkEpsilon/vfkEpsilon.C
SOURCE=vfkEpsilon/vfkEpsilon.C ;  g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O0 -fdefault-inline -ggdb3 -DFULLDEBUG -DNoRepository -ftemplate-depth-100 -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels 	-I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/thermophysicalModels/basic/lnInclude -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/thermophysicalModels/solidThermo/lnInclude -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/finiteVolume/lnInclude -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/meshTools/lnInclude  -IlnInclude -I. -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OSspecific/POSIX/lnInclude   -fPIC -c $SOURCE -o Make/linux64GccDPDebug/vfkEpsilon.o
vfkEpsilon/vfkEpsilon.C: In constructor ‘Foam::compressible::RASModels::vfkEpsilon::vfkEpsilon(const volScalarField&, const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&, const Foam::word&)’:
vfkEpsilon/vfkEpsilon.C:171:5: error: no matching function for call to ‘Foam::compressible::RASModel::RASModel(const Foam::word&, const volScalarField&, const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&)’
     )
     ^
vfkEpsilon/vfkEpsilon.C:171:5: note: candidates are:
In file included from vfkEpsilon/vfkEpsilon.H:63:0,
                 from vfkEpsilon/vfkEpsilon.C:26:
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:142:9: note: Foam::compressible::RASModel::RASModel(const Foam::word&, const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&)
         RASModel
         ^
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:142:9: note:   candidate expects 6 arguments, 7 provided
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:109:9: note: Foam::compressible::RASModel::RASModel(const Foam::compressible::RASModel&)
         RASModel(const RASModel&);
         ^
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:109:9: note:   candidate expects 1 argument, 7 provided
vfkEpsilon/vfkEpsilon.C: In member function ‘virtual void Foam::compressible::RASModels::vfkEpsilon::correct()’:
vfkEpsilon/vfkEpsilon.C:294:18: error: ‘alpha_’ was not declared in this scope
         fvm::ddt(alpha_*rho_, epsilon_)
                  ^
In file included from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/token.H:49:0,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/Istream.H:47,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/ISstream.H:39,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/IOstreams.H:38,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/VectorSpace.C:27,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/VectorSpace.H:171,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/Vector.H:44,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/vector.H:39,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/fieldTypes.H:35,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/primitiveFieldsFwd.H:36,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/turbulenceModel/turbulenceModel.H:47,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:45,
                 from vfkEpsilon/vfkEpsilon.H:63,
                 from vfkEpsilon/vfkEpsilon.C:26:
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H: In instantiation of ‘static Foam::autoPtr<Foam::compressible::RASModel> Foam::compressible::RASModel::adddictionaryConstructorToTable<RASModelType>::New(const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&) [with RASModelType = Foam::compressible::RASModels::vfkEpsilon; Foam::volScalarField = Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>; Foam::volVectorField = Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>; Foam::surfaceScalarField = Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>]’:
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:123:9:   required from ‘Foam::compressible::RASModel::adddictionaryConstructorToTable<RASModelType>::adddictionaryConstructorToTable(const Foam::word&) [with RASModelType = Foam::compressible::RASModels::vfkEpsilon]’
vfkEpsilon/vfkEpsilon.C:43:1:   required from here
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/runTimeSelectionTables.H:76:66: error: no matching function for call to ‘Foam::compressible::RASModels::vfkEpsilon::vfkEpsilon(const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&)’
             return autoPtr< baseType >(new baseType##Type parList);           \
                                                                  ^
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:123:9: note: in expansion of macro ‘declareRunTimeSelectionTable’
         declareRunTimeSelectionTable
         ^
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/runTimeSelectionTables.H:76:66: note: candidates are:
             return autoPtr< baseType >(new baseType##Type parList);           \
                                                                  ^
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:123:9: note: in expansion of macro ‘declareRunTimeSelectionTable’
         declareRunTimeSelectionTable
         ^
vfkEpsilon/vfkEpsilon.C:47:1: note: Foam::compressible::RASModels::vfkEpsilon::vfkEpsilon(const volScalarField&, const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&, const Foam::word&)
 vfkEpsilon::vfkEpsilon
 ^
vfkEpsilon/vfkEpsilon.C:47:1: note:   no known conversion for argument 2 from ‘const volVectorField {aka const Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>}’ to ‘const volScalarField& {aka const Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&}’
In file included from vfkEpsilon/vfkEpsilon.C:26:0:
vfkEpsilon/vfkEpsilon.H:78:7: note: Foam::compressible::RASModels::vfkEpsilon::vfkEpsilon(const Foam::compressible::RASModels::vfkEpsilon&)
 class vfkEpsilon
       ^
vfkEpsilon/vfkEpsilon.H:78:7: note:   candidate expects 1 argument, 5 provided
In file included from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/token.H:49:0,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/Istream.H:47,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/ISstream.H:39,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/IOstreams.H:38,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/VectorSpace.C:27,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/VectorSpace.H:171,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/Vector.H:44,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/vector.H:39,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/fieldTypes.H:35,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/primitiveFieldsFwd.H:36,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/turbulenceModel/turbulenceModel.H:47,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:45,
                 from vfkEpsilon/vfkEpsilon.H:63,
                 from vfkEpsilon/vfkEpsilon.C:26:
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H: In static member function ‘static Foam::autoPtr<Foam::compressible::RASModel> Foam::compressible::RASModel::adddictionaryConstructorToTable<RASModelType>::New(const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&) [with RASModelType = Foam::compressible::RASModels::vfkEpsilon; Foam::volScalarField = Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>; Foam::volVectorField = Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>; Foam::surfaceScalarField = Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>]’:
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/runTimeSelectionTables.H:77:9: warning: control reaches end of non-void function [-Wreturn-type]
         }                                                                     \
         ^
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:123:9: note: in expansion of macro ‘declareRunTimeSelectionTable’
         declareRunTimeSelectionTable
         ^
make: *** [Make/linux64GccDPDebug/vfkEpsilon.o] Error 1
cesar@cesarnotebook:~/OpenFOAM/cesar-2.3.x/custom/src/turbulenceModels/compressible/RAS$
__________________
César Miguéis
Mechanical Engineer
MSc. Student at COPPE/UFRJ
cmigueis is offline   Reply With Quote

Old   March 13, 2016, 14:58
Default
  #18
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,975
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Quick answer @cmigueis: You cannot simply add a new argument to the constructor of the turbulence model, because the base class "RASModel" does not have this option.

You have two choices:
  1. Follow the same convention as used in solvers like compressibleInterFoam.
  2. Upgrade to OpenFOAM 3.0, which has the new generic turbulence modelling which can integrate the alpha field. But again, you will have to check how the solvers in that version are able to differentiate from the two modelling strategies, i.e. with and without phase fraction.
__________________
wyldckat is offline   Reply With Quote

Old   May 10, 2016, 19:32
Default Missing piece
  #19
New Member
 
TN
Join Date: Nov 2015
Location: TN, USA
Posts: 9
Rep Power: 10
demolaoye is on a distinguished road
Thank you, everyone.

Your posts have been informative. However, I looked at the developed collidingCoalCloud and realised that it does not accept the mu value during creation. As a result, I think it is perhaps the needed piece to have an effective DEM simulation, as mu is needed to calculate some particle behaviors like drag.

Does anyone have an idea on how to include mu in the creation of collidingCoalCloud.

Thank you.
demolaoye is offline   Reply With Quote

Old   June 14, 2016, 02:25
Default
  #20
Member
 
Ping Chang
Join Date: Feb 2016
Location: Perth
Posts: 93
Rep Power: 10
chpjz0391 is on a distinguished road
Quote:
Originally Posted by cmigueis View Post
here is the output when I try to compile it:
Code:
cesar@cesarnotebook:~/OpenFOAM/cesar-2.3.x/custom/src/turbulenceModels/compressible/RAS$ wmake
wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file vfkEpsilon/vfkEpsilon.C
SOURCE=vfkEpsilon/vfkEpsilon.C ;  g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O0 -fdefault-inline -ggdb3 -DFULLDEBUG -DNoRepository -ftemplate-depth-100 -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels 	-I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/thermophysicalModels/basic/lnInclude -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/thermophysicalModels/solidThermo/lnInclude -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/finiteVolume/lnInclude -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/meshTools/lnInclude  -IlnInclude -I. -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude -I/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OSspecific/POSIX/lnInclude   -fPIC -c $SOURCE -o Make/linux64GccDPDebug/vfkEpsilon.o
vfkEpsilon/vfkEpsilon.C: In constructor ‘Foam::compressible::RASModels::vfkEpsilon::vfkEpsilon(const volScalarField&, const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&, const Foam::word&)’:
vfkEpsilon/vfkEpsilon.C:171:5: error: no matching function for call to ‘Foam::compressible::RASModel::RASModel(const Foam::word&, const volScalarField&, const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&)’
     )
     ^
vfkEpsilon/vfkEpsilon.C:171:5: note: candidates are:
In file included from vfkEpsilon/vfkEpsilon.H:63:0,
                 from vfkEpsilon/vfkEpsilon.C:26:
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:142:9: note: Foam::compressible::RASModel::RASModel(const Foam::word&, const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&)
         RASModel
         ^
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:142:9: note:   candidate expects 6 arguments, 7 provided
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:109:9: note: Foam::compressible::RASModel::RASModel(const Foam::compressible::RASModel&)
         RASModel(const RASModel&);
         ^
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:109:9: note:   candidate expects 1 argument, 7 provided
vfkEpsilon/vfkEpsilon.C: In member function ‘virtual void Foam::compressible::RASModels::vfkEpsilon::correct()’:
vfkEpsilon/vfkEpsilon.C:294:18: error: ‘alpha_’ was not declared in this scope
         fvm::ddt(alpha_*rho_, epsilon_)
                  ^
In file included from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/token.H:49:0,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/Istream.H:47,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/ISstream.H:39,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/IOstreams.H:38,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/VectorSpace.C:27,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/VectorSpace.H:171,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/Vector.H:44,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/vector.H:39,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/fieldTypes.H:35,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/primitiveFieldsFwd.H:36,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/turbulenceModel/turbulenceModel.H:47,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:45,
                 from vfkEpsilon/vfkEpsilon.H:63,
                 from vfkEpsilon/vfkEpsilon.C:26:
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H: In instantiation of ‘static Foam::autoPtr<Foam::compressible::RASModel> Foam::compressible::RASModel::adddictionaryConstructorToTable<RASModelType>::New(const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&) [with RASModelType = Foam::compressible::RASModels::vfkEpsilon; Foam::volScalarField = Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>; Foam::volVectorField = Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>; Foam::surfaceScalarField = Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>]’:
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:123:9:   required from ‘Foam::compressible::RASModel::adddictionaryConstructorToTable<RASModelType>::adddictionaryConstructorToTable(const Foam::word&) [with RASModelType = Foam::compressible::RASModels::vfkEpsilon]’
vfkEpsilon/vfkEpsilon.C:43:1:   required from here
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/runTimeSelectionTables.H:76:66: error: no matching function for call to ‘Foam::compressible::RASModels::vfkEpsilon::vfkEpsilon(const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&)’
             return autoPtr< baseType >(new baseType##Type parList);           \
                                                                  ^
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:123:9: note: in expansion of macro ‘declareRunTimeSelectionTable’
         declareRunTimeSelectionTable
         ^
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/runTimeSelectionTables.H:76:66: note: candidates are:
             return autoPtr< baseType >(new baseType##Type parList);           \
                                                                  ^
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:123:9: note: in expansion of macro ‘declareRunTimeSelectionTable’
         declareRunTimeSelectionTable
         ^
vfkEpsilon/vfkEpsilon.C:47:1: note: Foam::compressible::RASModels::vfkEpsilon::vfkEpsilon(const volScalarField&, const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&, const Foam::word&)
 vfkEpsilon::vfkEpsilon
 ^
vfkEpsilon/vfkEpsilon.C:47:1: note:   no known conversion for argument 2 from ‘const volVectorField {aka const Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>}’ to ‘const volScalarField& {aka const Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&}’
In file included from vfkEpsilon/vfkEpsilon.C:26:0:
vfkEpsilon/vfkEpsilon.H:78:7: note: Foam::compressible::RASModels::vfkEpsilon::vfkEpsilon(const Foam::compressible::RASModels::vfkEpsilon&)
 class vfkEpsilon
       ^
vfkEpsilon/vfkEpsilon.H:78:7: note:   candidate expects 1 argument, 5 provided
In file included from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/token.H:49:0,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/Istream.H:47,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/ISstream.H:39,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/IOstreams.H:38,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/VectorSpace.C:27,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/VectorSpace.H:171,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/Vector.H:44,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/vector.H:39,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/fieldTypes.H:35,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/primitiveFieldsFwd.H:36,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/turbulenceModel/turbulenceModel.H:47,
                 from /home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:45,
                 from vfkEpsilon/vfkEpsilon.H:63,
                 from vfkEpsilon/vfkEpsilon.C:26:
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H: In static member function ‘static Foam::autoPtr<Foam::compressible::RASModel> Foam::compressible::RASModel::adddictionaryConstructorToTable<RASModelType>::New(const volScalarField&, const volVectorField&, const surfaceScalarField&, const Foam::fluidThermo&, const Foam::word&) [with RASModelType = Foam::compressible::RASModels::vfkEpsilon; Foam::volScalarField = Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>; Foam::volVectorField = Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>; Foam::surfaceScalarField = Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>]’:
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude/runTimeSelectionTables.H:77:9: warning: control reaches end of non-void function [-Wreturn-type]
         }                                                                     \
         ^
/home/cesar/OpenFOAM/OpenFOAM-2.3.x/src/turbulenceModels/compressible/RAS/lnInclude/RASModel.H:123:9: note: in expansion of macro ‘declareRunTimeSelectionTable’
         declareRunTimeSelectionTable
         ^
make: *** [Make/linux64GccDPDebug/vfkEpsilon.o] Error 1
cesar@cesarnotebook:~/OpenFOAM/cesar-2.3.x/custom/src/turbulenceModels/compressible/RAS$
HI cmigueis,

Have you finally solved your problem? I mean add the collidingcloud to coalchemsitryFoam.

I am trying to add collidingcloud to simplereactingFoam, do I need to add alphac in the solver?

Kinds Regards,

Ping
chpjz0391 is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
OpenFoam_compressibleInterFoam solver_calculation void fraction in the Outlet sahar_rf OpenFOAM Post-Processing 0 August 20, 2014 12:13
void fraction talib Main CFD Forum 0 March 1, 2012 15:25
[blockMesh] BlockMeshmergePatchPairs hjasak OpenFOAM Meshing & Mesh Conversion 11 August 15, 2008 07:36
OpenFoam 14 installation problem gfcoppola OpenFOAM Installation 20 November 2, 2007 13:38
compressible two phase flow in CFX4.4 youngan CFX 0 July 1, 2003 23:32


All times are GMT -4. The time now is 12:29.