0% found this document useful (0 votes)
129 views

Modeling Multi-Phase Flows in Openfoam

This document discusses modelling multi-phase flows using OpenFOAM software. It presents an object-oriented approach to representing physical models in software using C++ classes. This allows complex multi-phase models to be implemented, such as Eulerian multi-phase, free surface tracking and capturing, and Lagrangian particle models. Examples are given of applications to bubbly flows, diesel injection, and fluid-solid coupling problems. The document argues the object-oriented design in OpenFOAM facilitates code reuse and customization for complex computational continuum mechanics problems.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
129 views

Modeling Multi-Phase Flows in Openfoam

This document discusses modelling multi-phase flows using OpenFOAM software. It presents an object-oriented approach to representing physical models in software using C++ classes. This allows complex multi-phase models to be implemented, such as Eulerian multi-phase, free surface tracking and capturing, and Lagrangian particle models. Examples are given of applications to bubbly flows, diesel injection, and fluid-solid coupling problems. The document argues the object-oriented design in OpenFOAM facilitates code reuse and customization for complex computational continuum mechanics problems.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

Modelling Multi-Phase

Flows in OpenFOAM
Hrvoje Jasak
[email protected]

Wikki Ltd. United Kingdom


15/Apr/2005

Modelling Multi-Phase Flows in OpenFOAM – p.1/28


Outline
Objective
• Present a novel way of handling software
implementation in numerical mechanics
Topics
• Representing physical models in software
• Object-oriented approach in Computational
Continuum Mechanics
• Multi-phase flow modelling in OpenFOAM

Modelling Multi-Phase Flows in OpenFOAM – p.2/28


Background
State of the Art
• Numerical modelling part of product design
◦ Improvements in computer performance
◦ Improved physical modelling and numerics
◦ Sufficient validation and experience
• Two-fold requirements
◦ Quick and reliable model implementation
◦ Complex geometry, high-performance
computing, automatic meshing etc.

Modelling Multi-Phase Flows in OpenFOAM – p.3/28


Numerics for CCM
How to handle complex models in software?
• Natural language of continuum mechanics:
partial differential equations
∂k
+ ∇•(uk) − ∇•[(ν + νt )∇k] =
∂t
 2
1 T o
νt (∇u + ∇u ) − k
2 ko

Modelling Multi-Phase Flows in OpenFOAM – p.4/28


FOAM: CCM in C++
FOAM (Field Operation and Manipulation):
Represent equations in their natural language
solve
(
fvm::ddt(k)
+ fvm::div(phi, k)
- fvm::laplacian(nu() + nut, k)
== nut*magSqr(symm(fvc::grad(U)))
- fvm::Sp(epsilon/k, k)
);

Modelling Multi-Phase Flows in OpenFOAM – p.5/28


Object Orientation
Recognise main objects from the numerical
modelling viewpoint
• Computational domain
Object Software representation C++ Class
Time Time steps (database) time
Tensor (List of) numbers + algebra vector, tensor
Mesh primitives Point, face, cell Point, face, cell
Space Computational mesh polyMesh

Modelling Multi-Phase Flows in OpenFOAM – p.6/28


Object Orientation
• Field algebra
Object Software representation C++ Class
Field List of values Field
Boundary condition Values + condition patchField
Dimensions Dimension Set dimensionSet
Geometric field Field + boundary conditions geometricField
Field algebra + − ∗ / tr(), sin(), exp() . . . field operators

• Matrix and solvers


Object Software representation C++ Class
Linear equation matrix Matrix coefficients lduMatrix
Solvers Iterative solvers lduMatrix::solver

Modelling Multi-Phase Flows in OpenFOAM – p.7/28


Object Orientation
• Numerics
Object Software representation C++ Class
Interpolation Differencing schemes interpolation
Differentiation ddt, div, grad, curl fvc, fec
Discretisation ddt, d2dt2, div, laplacian fvm, fem, fam

Implemented Methods: Finite Volume, Finite


Element, Finite Area and Lagrangian tracking
• Top-level organisation
Object Software representation C++ Class
Model library Library turbulenceModel
Application main() –

Modelling Multi-Phase Flows in OpenFOAM – p.8/28


Model Interaction
Common interface for related models
class turbulenceModel
{
virtual volTensorField R() const = 0;
virtual fvVectorMatrix divR
(
volVectorField& U
) const = 0;
virtual void correct() = 0;
};
class SpalartAllmaras : public turbulenceModel{};

Modelling Multi-Phase Flows in OpenFOAM – p.9/28


Run-Time Selection
• Model-to-model interaction through common
interfaces (virtual base classes)
• New components do not disturb existing code
• Run-time selection tables: dynamic binding
• Used for every implementation: “user-coding”
◦ Convection differencing schemes
◦ Gradient calculation
◦ Boundary conditions
◦ Linear equation solvers
◦ Physical modelling, e.g. non-Newtonian viscosity laws, etc.

Modelling Multi-Phase Flows in OpenFOAM – p.10/28


Geometry Handling
Complex geometry, mesh motion and morphing
• Complex geometry is a rule, not exception
• Polyhedral cell support
◦ Cell is a polyhedron bounded by polygons
◦ Consistent handling of all cell types
◦ More freedom in mesh generation
• Integrated mesh motion and topo changes
• Automatic motion solver + morph engine

Modelling Multi-Phase Flows in OpenFOAM – p.11/28


Geometry Handling

-341 -244 -148 -51 45 142 238

Modelling Multi-Phase Flows in OpenFOAM – p.12/28


Layered Development
• Design encourages code re-use: shared tools
• Code developed and tested in isolation
◦ Vectors, tensors and field algebra
◦ Mesh handling, refinement, topo changes
◦ Discretisation, boundary conditions
◦ Matrices and solver technology
◦ Physics by segment
◦ Custom applications
• Ultimate user-coding capabilities!
Modelling Multi-Phase Flows in OpenFOAM – p.13/28
Multi-Phase Modelling
Examples of FOAM library in use
• Multi-phase Eulerian models
• Free surface flows
◦ Surface capturing method
◦ Surface tracking method
• Lagrangian particle model
Extensions and integration benefits:
poly mesh, motion/topo changes, multi-physics,
other CFD/CCM: LES, combustion, (nuclear?)
Modelling Multi-Phase Flows in OpenFOAM – p.14/28
Eulerian Multi-Phase

Bubbly flow in water


• Bubble column:
Gomes et al. 1998
• Air bubbles are
injected at bottom
plate
• Includes free surface:
γ = 0, γ = 1

Modelling Multi-Phase Flows in OpenFOAM – p.15/28


Surface Capturing
Droplet impact into a wall film, 1.3 million cells

Modelling Multi-Phase Flows in OpenFOAM – p.16/28


LES Surface Capturing
LES of a Diesel Injector
• d = 0.2mm, high velocity and surface tension
• Mean injection velocity: 460m/s
• Diesel fuel injected into air, 5.2MPa, 900K
• Turbulent and subsonic flow, no cavitation
◦ 1-equation LES model with no free surface
correction
◦ Fully developed pipe flow inlet

Modelling Multi-Phase Flows in OpenFOAM – p.17/28


LES Surface Capturing
• Mesh size: 1.2 to 8 million CVs, aggressive
local refinement, 50k time-steps
• 6µs initiation time, 20µs averaging time

Modelling Multi-Phase Flows in OpenFOAM – p.18/28


Surface Tracking

vb = −vF
Free surface tracking
• 2 phases = 2 meshes
• Mesh adjusted for
y0
vF
SB
aF
interface motion
SA o0 x0
Free • Surfactant transport
rF
surface
y Air-water system
o
x • 2-D: rb = 0.75 mm
• 3-D: rb = 1 mm

Modelling Multi-Phase Flows in OpenFOAM – p.19/28


Surface Tracking
Clean surface

Pollution by surfactant chemicals

Modelling Multi-Phase Flows in OpenFOAM – p.20/28


Surface Tracking

Complex coupling problem: FVM flow solver +


FEM mesh motion + FAM surfactant transport
Modelling Multi-Phase Flows in OpenFOAM – p.21/28
Lagrangian Particles
Hour-glass simulation

Modelling Multi-Phase Flows in OpenFOAM – p.22/28


Lagrangian Particles
Diesel Combustion in Scania D-12 Engine
• 1/8 sector with 75 % load and n-heptane fuel
• RANS, k −  turbulence model, simplified
5-species chemistry and 1 reaction,
Chalmers PaSR combustion model
• Temperature on the cutting plane
• Spray droplets coloured with temperature

Modelling Multi-Phase Flows in OpenFOAM – p.23/28


Lagrangian Particles
Diesel Combustion in Scania D-12 Engine

Modelling Multi-Phase Flows in OpenFOAM – p.24/28


Fluid-Solid Coupling
Pipeline failure: crack propagation and leakage

Modelling Multi-Phase Flows in OpenFOAM – p.25/28


Fluid-Solid Coupling
Enlarged deformation of the pipe

Modelling Multi-Phase Flows in OpenFOAM – p.26/28


Summary
• Object-oriented approach facilitates model
implementation: layered design + re-use
• Equation mimicking opens new CCM grounds
• Extensive capabilities already implemented
• Open design for easy user customisation
Acknowledgements
• Henrik Rusche and Eugene de Villiers, Imperial College
• Željko Tuković, University of Zagreb; Niklas Nordin, Chalmers University
• Vlado Tropša (Imperial College), Alojz Ivankovi ć, UC Dublin
• OpenFOAM: http://openfoamcfd.sourceforge.net, http://www.openfoam.org

Modelling Multi-Phase Flows in OpenFOAM – p.27/28


FOAM: CCM in C++
Main characteristics
• Wide area of applications: all of CCM!
• Shared tools and code re-use
Versatility
• Unstructured meshes, automatic mesh
motion + topological changes
• Finite Volume, Finite Element, Lagrangian
tracking and Finite Area methods
• Efficiency through massive parallelism
Modelling Multi-Phase Flows in OpenFOAM – p.28/28

You might also like