View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004265 | OpenFOAM | Feature request (requires funding) | public | 2025-08-20 10:55 | 2025-08-20 16:30 |
Reporter | deo | Assigned To | henry | ||
Priority | normal | Severity | trivial | Reproducibility | N/A |
Status | closed | Resolution | suspended | ||
Platform | GNU/Linux | OS | Other | OS Version | (please specify) |
Product Version | 13 | ||||
Summary | 0004265: Make multiphaseEuler interfacial models explicitly size-dependent | ||||
Description | Most interfacial models implemented in the multiphaseEuler module, such as lift, drag, turbulent dispersion, are size dependent models. Sometimes they explicitly depend on diameter d, sometimes implicitly via non-dimensional quantities such as Re and Eo which depend on d in turn. Interfacial models are constructed from an interface, which provides the size as the Sauter mean diameter (what's the fundamental reason for the choice for this particular diameter...?). However, what one should really do is integrate the interfacial model over the size distribution. For example, this is discussed in this paper, Section 2.3: https://link.springer.com/article/10.1007/s42757-024-0206-1. The integration can be done as a simple Riemann sum in the case of size groups, or maybe using quadrature when the shape of the size distribution is known. To enable such integration in OpenFOAM, right now I have to 'hack' the default approach of OpenFOAM in order to temporarily overwrite the Sauter mean diameter with the diameter that I want, to evaluate the model at the dispersed size that I want. An easy solution would be to provide additional member functions that explicitly depend on size. So for example, dragModel.H could be extended to have the function: virtual tmp<volScalarField> K(const volScalarField& d) const = 0; And the K() function could then just call K(interface_.d()). And something similar for Kf. It also needs to be accounted for in the blending, and in size-dependent functions such as Eo, Re or model-specific functions like CdRe. Please let me know if something like this could be feasible and if it would be worthwhile to invest development effort into this, to which I would happily contribute. I would expect that the explicit dependence on size would not break anything else. | ||||
Tags | No tags attached. | ||||
|
What level of funding would you be able to commit to this development and maintenance effort? |
|
This work falls under a publicly funded research program. As such, funding is typically only in kind, and could involve the development effort. I would argue that future maintenance effort will be low because no new principle functionality is proposed, just a reorganization/generalization of what is already there. But I would be happy to hear your view on that, and to see if the idea makes sense. Adding to the 'feature request' above, another thing that could make sense is to break apart the breakup and coalescence models from the populationBalanceModel class. All that the breakup model should do is return a breakup rate given a size d, and all the coalescence model should do is return a coalescence rate given two sizes d1 and d2. By 'generalizing' that code, we could potentially reuse it with our own population balance modeling which is based on the method of moments. Also see https://github.com/edofrederix/LogMoM/tree/public. |
|
Pending funding |
Date Modified | Username | Field | Change |
---|---|---|---|
2025-08-20 10:55 | deo | New Issue | |
2025-08-20 15:28 | henry | Note Added: 0013647 | |
2025-08-20 15:56 | deo | Note Added: 0013648 | |
2025-08-20 16:30 | henry | Assigned To | => henry |
2025-08-20 16:30 | henry | Status | new => closed |
2025-08-20 16:30 | henry | Resolution | open => suspended |
2025-08-20 16:30 | henry | Note Added: 0013649 |