Immersed Boundary Method in FOAM

Similar documents
Free Surface Flow Simulations

OpenFOAM Programming the basic classes

Numerical Modelling in Continuum Mechanics

Turbo Tools and General Grid Interface

Coupling of STAR-CCM+ to Other Theoretical or Numerical Solutions. Milovan Perić

Using a Single Rotating Reference Frame

Object-Oriented CFD Solver Design

OpenFOAM Library for Fluid Structure Interaction

A look inside icofoam (and pisofoam) Håkan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 235

A look inside icofoam (and pisofoam)

Introduction to the Computer Exercices Turbulence: Theory and Modelling R.Z. Szasz, Energy Sciences, LTH Lund University

Non-Newtonian Transitional Flow in an Eccentric Annulus

Simulation of Flow Development in a Pipe

Investigation of cross flow over a circular cylinder at low Re using the Immersed Boundary Method (IBM)

cuibm A GPU Accelerated Immersed Boundary Method

An Embedded Boundary Method with Adaptive Mesh Refinements

Public Release: Native Overset Mesh in FOAM-Extend

Using Multiple Rotating Reference Frames

Tutorial 17. Using the Mixture and Eulerian Multiphase Models

Pitz-Daily Turbulence Case. Jonathan Russell

Write your own solver

A COUPLED FINITE VOLUME SOLVER FOR THE SOLUTION OF LAMINAR TURBULENT INCOMPRESSIBLE AND COMPRESSIBLE FLOWS

Computational Models for the Analysis of positive displacement machines: Real Gas and Dynamic Mesh

ALE Seamless Immersed Boundary Method with Overset Grid System for Multiple Moving Objects

Force based motion of a submerged object using immersed boundary method

Simulation of Freak Wave Impact Using the Higher Order Spectrum

SIMULATION OF FLOW FIELD AROUND AND INSIDE SCOUR PROTECTION WITH PHYSICAL AND REALISTIC PARTICLE CONFIGURATIONS

OpenFOAM GUIDE FOR BEGINNERS

Using Multiple Rotating Reference Frames

ENERGY-224 Reservoir Simulation Project Report. Ala Alzayer

OpenFOAM: Open Platform for Complex Physics Simulations

Aurélien Thinat Stéphane Cordier 1, François Cany

Computational Simulation of the Wind-force on Metal Meshes

Multiphysics simulations of nuclear reactors and more

Overview and Recent Developments of Dynamic Mesh Capabilities

Writing New Boundary Conditions in OpenFOAM

Calculate a solution using the pressure-based coupled solver.

OpenFOAM Tutorial. [ ] Numerical Methods in Fluid Dynamics. Finite Volume Method, Dictionary Syntax, and Implementation Details

Express Introductory Training in ANSYS Fluent Workshop 07 Tank Flushing

Auto Injector Syringe. A Fluent Dynamic Mesh 1DOF Tutorial

Thin Film Simulation on a Rotating Wafer. B. Gschaider, D. Prieling, H. Steiner, P. Vita

Potsdam Propeller Test Case (PPTC)

Tutorial: Hydrodynamics of Bubble Column Reactors

Using the Eulerian Multiphase Model for Granular Flow

Tutorial 1. Introduction to Using FLUENT: Fluid Flow and Heat Transfer in a Mixing Elbow

A B C D E. Settings Choose height, H, free stream velocity, U, and fluid (dynamic viscosity and density ) so that: Reynolds number

Conjugate Simulations and Fluid-Structure Interaction In OpenFOAM

Convective Heat transfer in a vertical slot for the course CFD with OpenSource Software

The Immersed Interface Method

This tutorial illustrates how to set up and solve a problem involving solidification. This tutorial will demonstrate how to do the following:

1.2 Numerical Solutions of Flow Problems

Partial Differential Equations

Open Source Software Course: Assignment 1

Flow and Heat Transfer in a Mixing Elbow

Instructional workshop on OpenFOAM programming LECTURE # 1

MESHLESS SOLUTION OF INCOMPRESSIBLE FLOW OVER BACKWARD-FACING STEP

AERODYNAMIC OPTIMIZATION OF REAR AND FRONT FLAPS ON A CAR

OpenFOAM Tutorials: Programming Session

Example problem: Unsteady flow in a 2D channel, driven by an applied traction

CFD MODELING FOR PNEUMATIC CONVEYING

Notes on OpenFOAM cases. Daniel Duque Dep. Ciencias Aplicadas a la Ingeniería Naval ETSIN, UPM

Use 6DOF solver to calculate motion of the moving body. Create TIFF files for graphic visualization of the solution.

Lab 9: FLUENT: Transient Natural Convection Between Concentric Cylinders

Introduction to fluid mechanics simulation using the OpenFOAM technology

Numerical Methods for (Time-Dependent) HJ PDEs

Backward facing step Homework. Department of Fluid Mechanics. For Personal Use. Budapest University of Technology and Economics. Budapest, 2010 autumn

Possibility of Implicit LES for Two-Dimensional Incompressible Lid-Driven Cavity Flow Based on COMSOL Multiphysics

Multi-Physics Simulations in Continuum Mechanics

Solving Partial Differential Equations on Overlapping Grids

Fully turbulent flow around a sphere using OpenFOAM

Adjoint Solver Workshop

Introduction to OpenFOAM at SIMDI 06

OpenFOAM: A C++ Library for Complex Physics Simulations

Tutorial Two Built in Mesh

OpenFOAM in Wave and Offshore CFD

COMPUTATIONAL FLUID DYNAMICS ANALYSIS OF ORIFICE PLATE METERING SITUATIONS UNDER ABNORMAL CONFIGURATIONS

Example Simulations in OpenFOAM

An Unsteady-Periodic Flow generated by a Oscillating Moving Mesh

Dynamic Mesh Handling in OpenFOAM

CFD design tool for industrial applications

New Developments in OpenFOAM

Explicit and Implicit Coupling Strategies for Overset Grids. Jörg Brunswig, Manuel Manzke, Thomas Rung

Simulation of Laminar Pipe Flows

NUMERICAL VISCOSITY. Convergent Science White Paper. COPYRIGHT 2017 CONVERGENT SCIENCE. All rights reserved.

Computational Fluid Dynamics in OpenFOAM

On the high order FV schemes for compressible flows

Marine Hydrodynamics Solver in OpenFOAM

Demo problem: Steady finite-reynolds-number flow through an iliac bifurcation

Development of a Maxwell Equation Solver for Application to Two Fluid Plasma Models. C. Aberle, A. Hakim, and U. Shumlak

Hands-On Training with OpenFOAM

Compressible Flow in a Nozzle

Development of Hybrid Fluid Jet / Float Polishing Process

RANSE Simulations of Surface Piercing Propellers

COMPUTATIONAL METHODS FOR ENVIRONMENTAL FLUID MECHANICS

An Introduction to SolidWorks Flow Simulation 2010

CGT 581 G Fluids. Overview. Some terms. Some terms

Accurate and Efficient Turbomachinery Simulation. Chad Custer, PhD Turbomachinery Technical Specialist

FAST ALGORITHMS FOR CALCULATIONS OF VISCOUS INCOMPRESSIBLE FLOWS USING THE ARTIFICIAL COMPRESSIBILITY METHOD

Flow in an Intake Manifold

Steady Flow: Lid-Driven Cavity Flow

Transcription:

Immersed Boundary Method in FOAM Theory, Implementation and Use Hrvoje Jasak and Željko Tuković Chalmers University, Gothenburg Faculty of Mechanical Engineering and Naval Architecture, Zagreb Immersed Boundary Method in FOAM p. 1

Outline Objective Describe the implementation of the Immersed Boundary Method in OpenFOAM Demonstrate application of the immersed boundary method on tutorial cases Topics General framework of the Immersed Boundary Method (IBM) Selected IBM approach Imposition of Dirichlet and Neumann boundary conditions Treatment of the pressure equation Implementation details: Class layout Tutorial cases and settings Fitting functions and high-re flows Wall function implementation in body-fitted meshes Wall functions on immersed boundary patch Turbulent flow tutorial case Immersed Boundary Method in FOAM p. 2

Immersed Boundary Method (IBM) Immersed Boundary Method: Non-Conformal Boundary Surfaces Simulation of the flow around immersed boundary is carried out on a grid (usually Cartesian) which does not conform to the boundary shape Immersed boundary (IB) is represented by surface grid IB boundary conditions modify the equations in cells which interact with the immersed boundary IB Fluid Solid Immersed Boundary Method in FOAM p. 3

IBM: Pros and Cons Advantages of IBM Over Body-Fitted Mesh Methods Substantially simplified grid generation for complex geometry Inclusion of body motion is relatively simple due to the use of stationary, non-deforming background grids Disadvantages of IBM Over Body-Fitted Mesh Methods Imposition of boundary conditions at IB is not straightforward: special techniques are developed and implemented Problem with grid resolution control in boundary layers: effective near-wall mesh size is approx 50% larger than in equivalent body-fitted mesh Limited to low and moderate Reynolds number flows: this is resolved using the Immersed Boundary wall function implementation Wish List 1. IBM solution MUST mimic the equivalent body-fitted mesh solution 2. Minimal interaction in top-level code: flow solvers and auxiliary models to be used without coding changes 3. Remove limitations on background mesh structure: must work with polyhedra 4. Automate mesh refinement under the IB surface Immersed Boundary Method in FOAM p. 4

Boundary Conditions in IBM Imposition of Boundary Conditions at the IB Distinguishes one IB Method from Another Continuous forcing approach Effect of the IB is imposed by the source (force) term in governing equations Continuous forcing function is spread over a band of cells near IB Independent of the spatial discretisation procedure Smeared boundary description leads to accuracy and stability problems Requires solution of governing equations inside the IB Discrete forcing approach Indirect imposition of BC Forcing term is introduced into discretised equation Forcing function still spread over the band of cells Direct imposition of BC Modification of discretised equations near the IB to directly impose the BC on cells that touch IB. Sharpness of the IB is preserved Best accuracy and highest Reynolds number flows (without modification) Immersed Boundary Method in FOAM p. 5

IBM In OpenFOAM: Selected Approach Implementation of IBM In OpenFOAM Discrete forcing approach with direct imposition of boundary conditions Basic principle: Value of dependent variable in the IB cell centres is calculated by interpolation using neighbouring cells values and boundary condition at the corresponding IB point n Fluid cells Solid cells IB cells IB points Immersed Boundary Method in FOAM p. 6

IB BC with Quadratic Interpolation Dirichlet Immersed Boundary Condition φ P = φ ib +C 0 (x P x ib )+C 1 (y P y ib ) +C 2 (x P x ib )(y P y ib )+C 3 (x P x ib ) 2 +C 4 (y P y ib ) 2 Unknown coefficients of quadratic polynomial determined using weighted least square method on extended stencil. 00 11 00 11 00 11 00 11 000 111 1100 000 111 1100 000 111 000 111 000 111 P ib 000 111 000 111 000 111 000 111 00 11 00 11 Fluid cells Solid cells IB cells IB points Extended stencil Immersed Boundary Method in FOAM p. 7

IB BC with Quadratic Interpolation Neumann Immersed Boundary Condition Interpolation is performed in local coordinate system x y where x -axis coincides with the normal to the immersed boundary at the point ib: φ P = C 0 +[n ib ( φ) ib ]x P +C 1y P +C 2x P y P +C 3(x P )2 +C 4 (y P )2 y x P ib n ib Fluid cells Solid cells IB cells IB points Immersed Boundary Method in FOAM p. 8

Least Squares Weighting Factors Two options are considered: Inverse quadratic distance weight function: w i = 1 r 2 i Cosine weight function w i = 1 2 [ ( 1+cos π r i Sr max )] Fluid cells ib P i r i r max 00 11 00 11 Solid cells IB cells IB points Extended stencil Immersed Boundary Method in FOAM p. 9

Pressure Equation BC at IB Pressure Equation for a Fluid Cell P Next to IB Cells ( 1 a f P ) f n f ( p) f S f = f n f ( HP a P ) f S f + f ib n fib v fib S fib P f N Fluid cells f ib IB cells N ib IB faces v fib = 1 2 (v P +v Nib ) Immersed Boundary Method in FOAM p. 10

Pressure Equation BC at IB Boundary condition for pressure is not needed for solution of pressure equation since velocity at IB faces is treated as specified;... but pressure at IB faces (p fib ) is needed for the momentum equation! Pressure for IB faces and IB cells is calculated after solution of pressure equation by applying procedure for Neumann boundary condition imposition using quadratic interpolation Interpolated velocity at IB faces (v fib ) must be scaled in such a way to impose zero net mass flux through the closed cage of IB faces around immersed boundary f ib P f N Fluid cells IB cells N ib IB faces v fib = 1 2 (v P +v Nib ) Immersed Boundary Method in FOAM p. 11

IBM: Implementation Details Immersed Boundary Implementation in Three Classes: class immersedboundarypolypatch: Basic mesh support, IB mesh class immersedboundaryfvpatch: FV support, with derived Fv properties Cell and face mask fields, live and dead cells indication Calculation of intersection points, normals and distances Calculation of interpolation matrices used in imposition of boundary conditions Parallel communications framework and layout class immersedboundaryfvpatchfield: field support and evaluation of boundary conditions Patch field evaluation for the IB patch Calculation and interpolation of field data at mesh intersection, fixed value and fixed gradient conditions etc. Handling of boundary updates Immersed Boundary Method in FOAM p. 12

IBM: Implementation Details class immersedboundarypolypatch : public polypatch {... // Member Functions // Access //- Return immersed boundary surface mesh const trisurfacemesh& ibmesh() const { return ibmesh_; } //- Return true if solving for flow inside the IB bool internalflow() const { return internalflow_; } }; //- Return trisurface search object const trisurfacesearch& trisurfsearch() const; Immersed Boundary Method in FOAM p. 13

IBM: Implementation Details Including immersedboundarypolypatch into boundary mesh of a polymesh by modifying constant/polymesh/boundary dictionary 6 ( ibcylinder // constant/trisurface/ibcylinder.ftr { type immersedboundary; nfaces 0; startface 3650; } in { } internalflow no; type patch; nfaces 25; startface 3650; )... Immersed Boundary Method in FOAM p. 14

IBM: Implementation Details class immersedboundaryfvpatch : public fvpatch { // Private data //- Reference to processor patch const immersedboundarypolypatch& ibpolypatch_; //- Finite volume mesh reference const fvmesh& mesh_; // Member Functions //- Get fluid cells indicator, marking only live fluid cells const volscalarfield& gamma() const; //- Return list of fluid cells next to immersed boundary (IB cells const labellist& ibcells() const; }; //- Return list of faces for which one neighbour is an IB cell // and another neighbour is a live fluid cell (IB faces) const labellist& ibfaces() const; Immersed Boundary Method in FOAM p. 15

IBM: Implementation Details class immersedboundaryfvpatch : public fvpatch {... //- Return IB points const vectorfield& ibpoints() const; //- Return IB cell extended stencil const labellistlist& ibcellcells() const; //- Return dead cells const labellist& deadcells() const; //- Return live cells const labellist& livecells() const; //- Get inverse Dirichlet interpolation matrix const PtrList<scalarRectangularMatrix>& invdirichletmatrices() const; }; //- Get inverse Neumann interpolation matrix const PtrList<scalarRectangularMatrix>& invneumannmatrices() const; Immersed Boundary Method in FOAM p. 16

IBM: Implementation Details template<class Type> class immersedboundaryfvpatchfield : public fvpatchfield<type> { // Private data //- Local reference cast into the processor patch const immersedboundaryfvpatch& ibpatch_; //- Local reference to fvmesh const fvmesh& mesh_; //- Defining value field Field<Type> refvalue_; //- Defining normal gradient field Field<Type> refgrad_; //- Does the boundary condition fix the value Switch fixesvalue_; };... Immersed Boundary Method in FOAM p. 17

Implementation details template<class Type> class immersedboundaryfvpatchfield : public fvpatchfield<type> {... //- Impose Dirichlet BC at IB cells and return corrected cells values // Calculate value and gradient on IB intersection points tmp<field<type> > imposedirichletcondition() const; //- Impose Neumann BC at IB cells and return corrected cells values // Calculate value and gradient on IB intersection points tmp<field<type> > imposeneumanncondition() const; };... Immersed Boundary Method in FOAM p. 18

IBM: Implementation Details template<class Type> class immersedboundaryfvpatchfield : public fvpatchfield<type> {... //- Update the coefficients associated with the patch field void updatecoeffs(); //- Evaluate the patch field virtual void evaluate ( const Pstream::commsTypes commstype = Pstream::blocking ); //- Manipulate matrix virtual void manipulatematrix(fvmatrix<type>& matrix); };... Immersed Boundary Method in FOAM p. 19

IBM: Implementation Details Including immersedboundaryfvpatchfield into boundary of a volvectorfield boundaryfield { ibcylinder { type immersedboundary; refvalue uniform (0 0 0); refgradient uniform (0 0 0); fixesvalue yes; setdeadcellvalue yes; deadcellvalue (0 0 0); } value uniform (0 0 0); } movingwall { type parabolicvelocity; maxvalue 0.375; n (1 0 0); y (1 0 0); value uniform (0.375 0 0); }... Immersed Boundary Method in FOAM p. 20

IBM: Implementation Details Example of solver source code - icoibfoam while (runtime.loop()) { Info<< "Time = " << runtime.timename() << nl << endl;... // Pressure-velocity corrector int ocorr = 0; do { fvvectormatrix UEqn ( fvm::ddt(u) + fvm::div(phi, U) - fvm::laplacian(nu, U) ); UEqn.boundaryManipulate(U.boundaryField()); solve(ueqn == -cellibmask*fvc::grad(p)); }... }... Immersed Boundary Method in FOAM p. 21

Tutorial: Cylinder in a Cavity Tutorial Case: cavity Laminar flow around cylinder driven by motion of cavity top wall Case setup data Cavity dimension: 1 1 m Moving wall velocity: 0.375 m/s Cylinder diameter: 0.5 m Reynolds number: 37.5 Immersed Boundary Method in FOAM p. 22

Tutorial: Cylinder in a Cavity Steps of Case Setup and Simulation Define volume mesh in constant/polymesh/blockmeshdict dictionary Create polymesh using blockmesh Copy immersed boundary mesh (ibcylinder.{ftr,stl}) into constant/trisurface folder Include immersedboundarypolypatch into polymesh boundary Include immersedboundaryfvpatchfield into boundary field of pressure and velocity fields Set discretisation schemes in./system/faschemes dictionary Set solution controls in./system/fasolution dictionary Set time step size./system/controldict Run the case using icoibfoam Post-process the case using parafoam Immersed Boundary Method in FOAM p. 23

Tutorial: Flow Around a Cylinder Tutorial Case: flowovercylinder Laminar flow around a circular cylinder in open space Case setup data Open space dimensions: 90 90 m Inlet velocity: 1 m/s Cylinder diameter: 1 m Reynolds number: 100 Immersed Boundary Method in FOAM p. 24

Tutorial: Flow Around a Cylinder Steps of Case Setup and Simulation Define volume mesh in constant/polymesh/blockmeshdict dictionary Create polymesh using blockmesh Copy immersed boundary mesh (ibcylinder.{ftr,stl}) into constant/trisurface folder Include immersedboundarypolypatch into polymesh boundary Include immersedboundaryfvpatchfield into boundary field for the pressure and velocity fields Refine volume mesh using refinecylindermesh application which must be compiled before Refine volume mesh using refineimmersedboundarymesh application Set discretisation schemes in./system/faschemes dictionary Set solution controls in./system/fasolution dictionary Set time step size./system/controldict Run the case using icoibfoam Post-process the case using parafoam Immersed Boundary Method in FOAM p. 25

Tutorial: Backward-Facing Step by Pitz and Daily Tutorial Case: pitzdailylaminar Laminar flow over a backward-facing step by Pitz and Daily Case setup data: Inlet velocity: 1 m/s Reynolds number: 2500 Immersed Boundary Method in FOAM p. 26

Tutorial: Backward-Facing Step by Pitz and Daily Steps of Case Setup and Simulation Define volume mesh in constant/polymesh/blockmeshdict dictionary Create polymesh using blockmesh Copy immersed boundary mesh (pitzdailyib.{ftr,stl}) into constant/trisurface folder Include immersedboundarypolypatch into polymesh boundary Include immersedboundaryfvpatchfield into boundary field of pressure and velocity fields Set discretisation schemes in./system/faschemes dictionary Set solution controls in./system/fasolution dictionary Set time step size./system/controldict Run the case using icoibfoam Post-process the case using parafoam Immersed Boundary Method in FOAM p. 27

Tutorial: VOF Dam Break Over a Bump Tutorial Case: dambreakwithcylinder Dam break VOF interface capturing simulation with circular bump at the bottom boundary Cylinder represented by STL surface ibcylinder.stl VOF solver uses implicit volume fraction equation and p-u system with variable density/viscosity Case setup data: Domain dimension: 2 2 m Bump diameter: 0.5 m Water-air multi-phase system Immersed Boundary Method in FOAM p. 28

Tutorial: VOF Dam Break Over a Bump Steps of Case Setup and Simulation Define volume mesh in constant/polymesh/blockmeshdict dictionary Create polymesh using blockmesh Copy immersed boundary mesh (ibcylinder.{ftr,stl}) into constant/trisurface folder Include immersedboundarypolypatch into polymesh boundary Include immersedboundaryfvpatchfield into boundary field of pressure and velocity fields Set discretisation schemes in./system/faschemes dictionary Set solution controls in./system/fasolution dictionary Set time step size./system/controldict Run the case using interibfoam Post-process the case using parafoam Immersed Boundary Method in FOAM p. 29

Immersed Wall Functions Dirichlet Condition - Implications A functional form in the Dirichlet condition specifies that the near-wall profile of a variable will be approximately quadratic This is appropriate for most cases and consistent with second-order discretisation: feed-back from functional fit adjusts local variable distribution For velocity in high-re flows, quadratic fit is inappropriate: modification is required Equivalent modification appears in body-fitted meshes: wall functions Other implementations of IB wall functions are reported in literature, but rely on Cartesian background mesh New polyhedral implementation will be derived, based on the equivalence with the body-fitted wall functions Immersed Boundary Method in FOAM p. 30

Standard Wall Functions Standard Wall Functions on a Body-Fitted Mesh Wall functions modify the wall drag and turbulence variables, eg. for k epsilon model 1. Collect k and near-wall distance y for near-wall cell 2. Calculate y based on laminar viscosity ν l at the wall y = C0.25 µ ky 3. If y indicates log-law region, calculate turbulence generation and dissipation and account for wall shear by modifying viscosity in the near-wall cell ν l G = ν eff n ( u) w C 0.25 µ κy ǫ = C0.75 µ k 1.5 κy ν w = C 0.25 µ ky ν l τ w = ν w n ( u) w Immersed Boundary Method in FOAM p. 31

Standard Wall Functions Standard Wall Functions on a Body-Fitted Mesh: Analysis In the near-wall cell, u and k are calculated. y is a function of k and u responds to the change in y to match the log-law profile Introduction of ν w is a stable implicit mechanism to add momentum sink: responds to near-wall velocity gradient without division It is crucial to allow k to respond to the velocity gradient (via G) and vice-versa (via τ w ) Immersed Boundary Wall Function: Issues Velocity solution in near wall cell must be decomposed into the normal and tangential component: wall functions act on tangential component only The near-wall point is fitted for all variables: implementing wall functions on the near-wall IB point will not work Data for active k and n ( u) w must be sampled from live flow cells Immersed Boundary Method in FOAM p. 32

Immersed Boundary Wall Function Immersed Boundary Wall Function: Algorithm 1. For each immersed boundary point, introduce the sampling point, 150% further away from the wall 2. At the sampling point, perform a least-square fit of fields through the interpolation stencil excluding other immersed boundary point 3. Based on least-square fit, evaluate near-wall tangential velocity, turbulence kinetic energy and laminar viscosity 4. Calculate y based on the sampling point near-wall distance and k 5. If y indicates log-law region for the sampling point, a log-law fit can be established to the IB point, otherwise, U will be fitted quadratically, ν eff = ν l and G and ǫ are set to zero 6. Since all parameters of the least square fit are known, log-law fit for the IB point can be established: Modify G, ǫ and ν eff in the IB point (they are not used in actual immersed boundary wall function calculation, but only as a post-processing result) Log-law fit the tangential velocity; wall-normal velocity is fitted quadratically, as in low-re flows Fitted log-law velocity appears in force balance for active cells and modified near-wall velocity field. Immersed Boundary Method in FOAM p. 33

Immersed Boundary Wall Function Immersed Boundary Wall Function: Consequences Log-law fit correctly captures near-wall velocity profile: drag is identical to body-fitted meshes Effective near-wall distance y used with the Immersed Boundary method is 150% of the distance to the first active cell centre Increase in effective near-wall y can be counteracted by refining the background mesh next to the IB boundary: refineimmersedboundarymesh utility By necessity, smoothness of y and y adjacent to the IB patch is lower than in body-fitted meshes Since the k transport equation is not solved in the IB cell, value of k follows from local equilibrium Immersed Boundary Method in FOAM p. 34

Implementation Implementation of the Immersed Boundary Wall Function Basic IB wall function class, immersedboundarywallfunctionfvpatchfield Class storing point-based IB data, with variation in the wall value (wallvalue) and wall mask (wallmask) fields: point-wise switching in behaviour of the IB patch field Additional function ibsamplingpointvalue, extracting the data at the shifted sampling point in the wall-normal direction from the live stencil point data setibcellvalues: function imposing IB value onto the internal field, based on wall values and mask Velocity IB wall function class, immersedboundaryvelocitywallfunctionfvpatchvectorfield, performing velocity decomposition into normal and tangential component only, and separately fitting each component ǫ or ω IB wall function class, performing IB wall function calculation and setting wallvalue and wallmask for G, k, ǫ and u IB wall function class for nu t at IB is not required: wall drag accounted for directly in velocity fit Immersed Boundary Method in FOAM p. 35

Summary Implementation of Wall Functions on Immersed Boundary Patch Implementation uses flow data in the sampling point within th flow solution, located above each IB cell, in the wall-normal direction Log-law analysis is performed using sampled data. Based on this, the near-wall log-law profile is established For turbulence variables, G and ǫ are calculated in the standard way IB cell velocity vector is decomposed into the normal and tangential component U n is fitted using standard quadratic interpolation, consistent with the Dirichlet boundary condition U t is fitted based on the log-law profile between the solid wall and the sampling point Since the k transport equation is not solved in the IB cell, k is calculated from the local equilibrium condition Immersed Boundary Method in FOAM p. 36