0% found this document useful (0 votes)
134 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
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
134 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
We take content rights seriously. If you suspect this is your content, claim it here.
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
h.jasak@wikki.co.uk

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