Dear Dang,

the correct references for the EQMOM procedure are:

- LC. Yuan, F. Laurent, R.O. Fox, An extended quadrature method of moments for population balance equations, Journal of Aerosol Science. 51 (2012) 1–23. doi:10.1016/j.jaerosci.2012.04.003.

- T.T. Nguyen, F. Laurent, R. Fox, M. Massot, Solution of population balance equations in applications with fine particles: mathematical modeling and numerical schemes, (2016). hal.archives-ouvertes.fr/hal-01247390.

The second reference explains the algorithm we implemented in OpenQBMM to find the parameter sigma more efficiently.

The NDF is fully reconstructed when the moments are inverted and the value of sigma is found. At that point, the only remaining step is to evaluate the NDF by calculating it in an pre-defined number of points (secondary nodes). This is done in the function

`void Foam::extendedMomentInversion::secondaryQuadrature`

Reconstructing f(t,x,xi) is equivalent to reconstruct f(t,x,xi) at each time step and at each spatial location, which is what the code already does. The spatial dependency is dropped in pbeFoam (zero-dimensional solver).

The target function is the function whose roots are the values of the sigma parameter, obtained from the equation that ensures the preservation of the last moment (if a root is found). It is not the NDF.

In the code, the gamma and lognormal functions can be selected at run-time by specifying the "extendedMomentInversion" keyword in the quadratureProperties dictionary. For example:

`extendedMomentInversionCoeff `

{

extendedMomentInversion lognormal;

maxSigmaIter 1000;

momentsTol 1.0e-6;

sigmaTol 1.0e-8;

targetFunctionTol 1.0e-8;

}

Regards,

AP

Hello Alberto

I was trying to reconstruct the NDF for the case 5 in validation/pbeFoam/madadiPassalacquaLognormal.

To my understanding, the reconstruction is based on the the sigma, w_i and xi_i. (here i is 1, 2, 3, 4....)

In case 5, I used two nodes, so the reconstructed NDF is =w_1*exp(-(lnx-xi_1)^2/2*sigma^2)/(x*sigma*(sqrt(2*PI)))+w_2*exp(-(lnx-xi_2)^2/2*sigma^2)/(x*sigma*(sqrt(2*PI)))

The symbols in above equation correspond to the symbols used in the code:

node0.sigma=node01.sigma=sigma, node0.weight=w_1, node0.abscissa=xi_1,

node1.weight=w_2, node1.abscissa=xi_2

Besides, the used N_alpha is as follows:

nodes

(

node0

{

nSecondaryNodes 20;

}

node1

{

nSecondaryNodes 20;

}

);

It seems the constructed NDF is different from the reported Figure 2_b in your paper: Chem.Eng.Sci., 2015, 131, 323-339.

(I am trying to upload my example NDF picture, but don't know how to do it, so I will email it to you. )

I think I maybe not correct in recontructing the NDF.

So could you please explain how to reconstruct the NDF in a detailed way?

Best regards,

CD