Difference between revisions of "Additional drag models for the twoPhaseEulerFoam solver"
(Additional drag models for the twoPhaseEulerFoam solver) |
|||
Line 12: | Line 12: | ||
<math> | <math> | ||
− | V_r = \frac{1}{2} \left ( A - 0.06 Re + \sqrt{\left( 0.06 Re \right)^2 + 0.12 Re \left( 2B - A \right) + A^2}\right) | + | V_r = \frac{1}{2} \left ( A - 0.06 \texttt{Re} + \sqrt{\left( 0.06 \texttt{Re} \right)^2 + 0.12 \texttt{Re} \left( 2B - A \right) + A^2}\right) |
</math> | </math> | ||
Line 20: | Line 20: | ||
<math> | <math> | ||
− | C_{D_s} = \left ( 0.63 + 4.8 \sqrt{\frac{V_r}{Re}} \right ) | + | C_{D_s} = \left ( 0.63 + 4.8 \sqrt{\frac{V_r}{\texttt{Re}}} \right ) |
</math> | </math> | ||
Line 26: | Line 26: | ||
<math> | <math> | ||
− | Re = \frac{d_a U_r}{\nu_b} | + | \texttt{Re} = \frac{d_a U_r}{\nu_b} |
</math> | </math> | ||
Line 242: | Line 242: | ||
=== References === | === References === | ||
− | # Dalla Valle, J.M., 1948, Micromeritics, Pitman, London. | + | # Dalla Valle, J.M., 1948, ''Micromeritics'', Pitman, London. |
− | # Syamlal, M., | + | # Syamlal, M., The Particle-Particle Drag Term in a Multiparticle Model of Fluidization, Topical Report, DOE/MC/21353-2373, NTIS/DE87006500, National Technical Information Service, Springfield, VA, 1987. |
− | # Syamlal, M., Rogers, W. and O'Brien, T. J. (1993) MFIX documentation, Theory Guide. Technical Note DOE/METC-94/1004. Morgantown, West Virginia, USA, [http://www.mfix.org http://www.mfix.org]. | + | # Syamlal, M., Rogers, W. and O'Brien, T. J. (1993), MFIX documentation, Theory Guide. Technical Note DOE/METC-94/1004. Morgantown, West Virginia, USA, [http://www.mfix.org http://www.mfix.org]. |
== Gidaspow's drag (Ergun - Wen&Yu) == | == Gidaspow's drag (Ergun - Wen&Yu) == | ||
+ | === Formulas === | ||
+ | The Gidaspow formulation of the drag factor uses the Ergun correlations if <math>\beta < 0.8 </math>: | ||
− | + | <math> | |
+ | \beta' = 150 \frac{\alpha^2 \nu_b}{\beta^2 \rho_b d_a^2} + 1.75 \frac{\rho_b \alpha}{\beta d_s} U_r | ||
+ | </math> | ||
+ | |||
+ | If <math> \beta \geq 0.8 </math>, the Wen and Yu correlation is used: | ||
+ | |||
+ | <math> | ||
+ | \beta' = \frac{3 C_{D_s} \alpha \beta \rho_b U_r}{4 d_a} \beta^{-2.65} | ||
+ | </math> | ||
+ | |||
+ | where <math> C_{D_s} = 0.44</math> if <math>\texttt{Re} \geq 1000</math>, and | ||
+ | |||
+ | <math> | ||
+ | C_{D_s} = \frac{24}{\texttt{Re}} \left( 1 + 0.15 \texttt{Re}^{0.687} \right) | ||
+ | </math> | ||
+ | |||
+ | elsewhere (<math>\texttt{Re} < 1000</math>). | ||
− | |||
=== Implementation === | === Implementation === | ||
− | === | + | * GidaspowErgunWenYu.H |
+ | <cpp> | ||
+ | /*---------------------------------------------------------------------------*\ | ||
+ | ========= | | ||
+ | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | ||
+ | \\ / O peration | | ||
+ | \\ / A nd | Copyright (C) 1991-2004 OpenCFD Ltd. | ||
+ | \\/ M anipulation | | ||
+ | ------------------------------------------------------------------------------- | ||
+ | License | ||
+ | This file is part of OpenFOAM. | ||
+ | |||
+ | OpenFOAM is free software; you can redistribute it and/or modify it | ||
+ | under the terms of the GNU General Public License as published by the | ||
+ | Free Software Foundation; either version 2 of the License, or (at your | ||
+ | option) any later version. | ||
+ | |||
+ | OpenFOAM is distributed in the hope that it will be useful, but WITHOUT | ||
+ | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
+ | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
+ | for more details. | ||
+ | |||
+ | You should have received a copy of the GNU General Public License | ||
+ | along with OpenFOAM; if not, write to the Free Software Foundation, | ||
+ | Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
+ | |||
+ | Class | ||
+ | GidaspowErgunWenYu | ||
+ | |||
+ | Description | ||
+ | D. Gidaspow, Multiphase flow and fluidization, | ||
+ | Academic Press, New York, 1994. | ||
+ | |||
+ | SourceFiles | ||
+ | GidaspowErgunWenYu.C | ||
+ | |||
+ | \*---------------------------------------------------------------------------*/ | ||
+ | |||
+ | #ifndef GidaspowErgunWenYu_H | ||
+ | #define GidaspowErgunWenYu_H | ||
+ | |||
+ | #include "dragModel.H" | ||
+ | |||
+ | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // | ||
+ | |||
+ | namespace Foam | ||
+ | { | ||
+ | |||
+ | /*---------------------------------------------------------------------------*\ | ||
+ | Class GidaspowErgunWenYu Declaration | ||
+ | \*---------------------------------------------------------------------------*/ | ||
+ | |||
+ | class GidaspowErgunWenYu | ||
+ | : | ||
+ | public dragModel | ||
+ | { | ||
+ | |||
+ | public: | ||
+ | |||
+ | //- Runtime type information | ||
+ | TypeName("GidaspowErgunWenYu"); | ||
+ | |||
+ | |||
+ | // Constructors | ||
+ | |||
+ | |||
+ | //- Construct from components | ||
+ | GidaspowErgunWenYu | ||
+ | ( | ||
+ | const dictionary& interfaceDict, | ||
+ | const volScalarField& alpha, | ||
+ | const phaseModel& phasea, | ||
+ | const phaseModel& phaseb | ||
+ | ); | ||
+ | |||
+ | |||
+ | // Destructor | ||
+ | |||
+ | ~GidaspowErgunWenYu(); | ||
+ | |||
+ | |||
+ | // Member Functions | ||
+ | |||
+ | tmp<volScalarField> K(const volScalarField& Ur) const; | ||
+ | }; | ||
+ | |||
+ | |||
+ | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // | ||
+ | |||
+ | } // End namespace Foam | ||
+ | |||
+ | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // | ||
+ | |||
+ | #endif | ||
+ | |||
+ | // ************************************************************************* // | ||
+ | </cpp> | ||
+ | |||
+ | * GidaspowErgunWenYu.C | ||
+ | <cpp> | ||
+ | /*---------------------------------------------------------------------------*\ | ||
+ | ========= | | ||
+ | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | ||
+ | \\ / O peration | | ||
+ | \\ / A nd | Copyright (C) 1991-2004 OpenCFD Ltd. | ||
+ | \\/ M anipulation | | ||
+ | ------------------------------------------------------------------------------- | ||
+ | License | ||
+ | This file is part of OpenFOAM. | ||
+ | |||
+ | OpenFOAM is free software; you can redistribute it and/or modify it | ||
+ | under the terms of the GNU General Public License as published by the | ||
+ | Free Software Foundation; either version 2 of the License, or (at your | ||
+ | option) any later version. | ||
+ | |||
+ | OpenFOAM is distributed in the hope that it will be useful, but WITHOUT | ||
+ | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
+ | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
+ | for more details. | ||
+ | |||
+ | You should have received a copy of the GNU General Public License | ||
+ | along with OpenFOAM; if not, write to the Free Software Foundation, | ||
+ | Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
+ | |||
+ | \*---------------------------------------------------------------------------*/ | ||
+ | |||
+ | #include "GidaspowErgunWenYu.H" | ||
+ | #include "addToRunTimeSelectionTable.H" | ||
+ | |||
+ | // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // | ||
+ | |||
+ | namespace Foam | ||
+ | { | ||
+ | defineTypeNameAndDebug(GidaspowErgunWenYu, 0); | ||
+ | |||
+ | addToRunTimeSelectionTable | ||
+ | ( | ||
+ | dragModel, | ||
+ | GidaspowErgunWenYu, | ||
+ | dictionary | ||
+ | ); | ||
+ | } | ||
+ | |||
+ | |||
+ | // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // | ||
+ | |||
+ | // Construct from components | ||
+ | Foam::GidaspowErgunWenYu::GidaspowErgunWenYu | ||
+ | ( | ||
+ | const dictionary& interfaceDict, | ||
+ | const volScalarField& alpha, | ||
+ | const phaseModel& phasea, | ||
+ | const phaseModel& phaseb | ||
+ | ) | ||
+ | : | ||
+ | dragModel(interfaceDict, alpha, phasea, phaseb) | ||
+ | {} | ||
+ | |||
+ | |||
+ | // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // | ||
+ | |||
+ | Foam::GidaspowErgunWenYu::~GidaspowErgunWenYu() | ||
+ | {} | ||
+ | |||
+ | |||
+ | // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // | ||
+ | |||
+ | Foam::tmp<Foam::volScalarField> Foam::GidaspowErgunWenYu::K | ||
+ | ( | ||
+ | const volScalarField& Ur | ||
+ | ) const | ||
+ | { | ||
+ | volScalarField beta = max(1.0 - alpha_, 1.0e-6); | ||
+ | |||
+ | volScalarField bp = pow(beta, -2.65); | ||
+ | volScalarField Re = max(Ur*phasea_.d()/phaseb_.nu(), 1.0e-3); | ||
+ | |||
+ | volScalarField Cds = 24.0*(1.0 + 0.15*pow(Re, 0.687))/Re; | ||
+ | |||
+ | forAll(Re, celli) | ||
+ | { | ||
+ | if(Re[celli] > 1000.0) | ||
+ | { | ||
+ | Cds[celli] = 0.44; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Wen and Yu (1966) | ||
+ | volScalarField KWenYu = 0.75*Cds*phaseb_.rho()*Ur*bp/phasea_.d(); | ||
+ | |||
+ | // Ergun | ||
+ | volScalarField KErgun = 150.0*alpha_*phaseb_.nu()*phaseb_.rho() | ||
+ | /(pow(beta*phasea_.d(), 2.0)) | ||
+ | + 1.75*phaseb_.rho()*Ur/(beta*phasea_.d()); | ||
+ | |||
+ | forAll (beta, cellj) | ||
+ | { | ||
+ | if (beta[cellj] <= 0.8) | ||
+ | { | ||
+ | KWenYu[cellj] = KErgun[cellj]; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | return 1.0*KWenYu; | ||
+ | } | ||
+ | |||
+ | |||
+ | // ************************************************************************* // | ||
+ | </cpp> | ||
+ | |||
=== References === | === References === | ||
+ | # D. Gidaspow, ''Multiphase Flow and Fluidization: Continuum and Kinetic Theory Descriptions'', Academic Press, New York, 1994. | ||
+ | # C. Y. Wen, Y. H. You, Mechanics of fluidization, Chemical Engineering Progress Symposium Series, 62:100-111, 1966. | ||
--[[User:Alberto|Alberto]] 03:21, 29 Aug 2005 (CEST) | --[[User:Alberto|Alberto]] 03:21, 29 Aug 2005 (CEST) |
Revision as of 01:55, 29 August 2005
Contents
1 Syamlal and O'Brien drag
1.1 Formulas
The Syamlal and O'Brien drag formula can be written as follows (according to the nomenclature used in the code):
The terminal velocity can be calculated using the formula:
where , if and if .
is found using the Della Valle formulation:
with
1.2 Implementation
The Syamlal and O'Brien drag model can be implementing in OpenFOAM by dividing the to obtain .
N.B. Every drag formulation has to be divided by the product before beeing implemented in twoPhaseEulerFoam because this product has been extracted for numerical reasons.
The code is the following.
- SyamlalOBrien.H
/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 1991-2004 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Class SyamlalOBrien Description Syamlal, M., Rogers, W. and O'Brien, T. J. (1993) MFIX documentation, Theory Guide. Technical Note DOE/METC-94/1004. Morgantown, West Virginia, USA. SourceFiles SyamlalOBrien.C \*---------------------------------------------------------------------------*/ #ifndef SyamlalOBrien_H #define SyamlalOBrien_H #include "dragModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ Class SyamlalOBrien Declaration \*---------------------------------------------------------------------------*/ class SyamlalOBrien : public dragModel { public: //- Runtime type information TypeName("SyamlalOBrien"); // Constructors //- Construct from components SyamlalOBrien ( const dictionary& interfaceDict, const volScalarField& alpha, const phaseModel& phasea, const phaseModel& phaseb ); // Destructor ~SyamlalOBrien(); // Member Functions tmp<volScalarField> K(const volScalarField& Ur) const; }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* //
- SyamlalOBrien.C
/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 1991-2004 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \*---------------------------------------------------------------------------*/ #include "SyamlalOBrien.H" #include "addToRunTimeSelectionTable.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // namespace Foam { defineTypeNameAndDebug(SyamlalOBrien, 0); addToRunTimeSelectionTable ( dragModel, SyamlalOBrien, dictionary ); } // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::SyamlalOBrien::SyamlalOBrien ( const dictionary& interfaceDict, const volScalarField& alpha, const phaseModel& phasea, const phaseModel& phaseb ) : dragModel(interfaceDict, alpha, phasea, phaseb) {} // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // Foam::SyamlalOBrien::~SyamlalOBrien() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // Foam::tmp<Foam::volScalarField> Foam::SyamlalOBrien::K ( const volScalarField& Ur ) const { volScalarField beta = max(1.0 - alpha_, 1.0e-6); volScalarField A = pow(beta, 4.14); volScalarField B = 0.8*pow(beta, 1.28); forAll (beta, celli) { if (beta[celli] > 0.85) { B[celli] = pow(beta[celli], 2.65); } } volScalarField Re = max(Ur*phasea_.d()/phaseb_.nu(), 1.0e-3); volScalarField Vr = 0.5*(A - 0.06*Re + sqrt(pow(0.06*Re,2.0) + 0.12*Re*(2.0*B-A) + pow(A,2.0))); volScalarField Cds = pow(0.63 + 4.8*sqrt(Vr/Re),2.0); return 0.75*Cds*phaseb_.rho()*Ur/(phasea_.d()*pow(Vr,2.0)); } // ************************************************************************* //
1.3 Compile and link
In order to use this code:
- Add the files in a directory named SyamlalOBrien in /.../twoPhaseEulerFoam/interfacialModels/dragModels.
- Open the /../twoPhaseEulerFoam/interfacialModels/Make file and add to it the line
dragModels/SyamlalOBrien/SyamlalOBrien.C
- Use the wmake tool to rebuild twoPhaseEulerFoam
1.4 References
- Dalla Valle, J.M., 1948, Micromeritics, Pitman, London.
- Syamlal, M., The Particle-Particle Drag Term in a Multiparticle Model of Fluidization, Topical Report, DOE/MC/21353-2373, NTIS/DE87006500, National Technical Information Service, Springfield, VA, 1987.
- Syamlal, M., Rogers, W. and O'Brien, T. J. (1993), MFIX documentation, Theory Guide. Technical Note DOE/METC-94/1004. Morgantown, West Virginia, USA, http://www.mfix.org.
2 Gidaspow's drag (Ergun - Wen&Yu)
2.1 Formulas
The Gidaspow formulation of the drag factor uses the Ergun correlations if :
If , the Wen and Yu correlation is used:
where if , and
elsewhere ().
2.2 Implementation
- GidaspowErgunWenYu.H
/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 1991-2004 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Class GidaspowErgunWenYu Description D. Gidaspow, Multiphase flow and fluidization, Academic Press, New York, 1994. SourceFiles GidaspowErgunWenYu.C \*---------------------------------------------------------------------------*/ #ifndef GidaspowErgunWenYu_H #define GidaspowErgunWenYu_H #include "dragModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ Class GidaspowErgunWenYu Declaration \*---------------------------------------------------------------------------*/ class GidaspowErgunWenYu : public dragModel { public: //- Runtime type information TypeName("GidaspowErgunWenYu"); // Constructors //- Construct from components GidaspowErgunWenYu ( const dictionary& interfaceDict, const volScalarField& alpha, const phaseModel& phasea, const phaseModel& phaseb ); // Destructor ~GidaspowErgunWenYu(); // Member Functions tmp<volScalarField> K(const volScalarField& Ur) const; }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* //
- GidaspowErgunWenYu.C
/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 1991-2004 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \*---------------------------------------------------------------------------*/ #include "GidaspowErgunWenYu.H" #include "addToRunTimeSelectionTable.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // namespace Foam { defineTypeNameAndDebug(GidaspowErgunWenYu, 0); addToRunTimeSelectionTable ( dragModel, GidaspowErgunWenYu, dictionary ); } // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // Construct from components Foam::GidaspowErgunWenYu::GidaspowErgunWenYu ( const dictionary& interfaceDict, const volScalarField& alpha, const phaseModel& phasea, const phaseModel& phaseb ) : dragModel(interfaceDict, alpha, phasea, phaseb) {} // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // Foam::GidaspowErgunWenYu::~GidaspowErgunWenYu() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // Foam::tmp<Foam::volScalarField> Foam::GidaspowErgunWenYu::K ( const volScalarField& Ur ) const { volScalarField beta = max(1.0 - alpha_, 1.0e-6); volScalarField bp = pow(beta, -2.65); volScalarField Re = max(Ur*phasea_.d()/phaseb_.nu(), 1.0e-3); volScalarField Cds = 24.0*(1.0 + 0.15*pow(Re, 0.687))/Re; forAll(Re, celli) { if(Re[celli] > 1000.0) { Cds[celli] = 0.44; } } // Wen and Yu (1966) volScalarField KWenYu = 0.75*Cds*phaseb_.rho()*Ur*bp/phasea_.d(); // Ergun volScalarField KErgun = 150.0*alpha_*phaseb_.nu()*phaseb_.rho() /(pow(beta*phasea_.d(), 2.0)) + 1.75*phaseb_.rho()*Ur/(beta*phasea_.d()); forAll (beta, cellj) { if (beta[cellj] <= 0.8) { KWenYu[cellj] = KErgun[cellj]; } } return 1.0*KWenYu; } // ************************************************************************* //
2.3 References
- D. Gidaspow, Multiphase Flow and Fluidization: Continuum and Kinetic Theory Descriptions, Academic Press, New York, 1994.
- C. Y. Wen, Y. H. You, Mechanics of fluidization, Chemical Engineering Progress Symposium Series, 62:100-111, 1966.
--Alberto 03:21, 29 Aug 2005 (CEST)