Implementation of the Immersed Boundary method in Code_Saturne

The following describes a proposal for implementation of an immersed boundary method into Code_Saturne. It is following the approach detailed in [1]. We consider here a simplified framework: 2-D and fixed geometry (.i.e. fixed mesh and lagrangian points)

Variables and arrays used

  • nsupmax maximum number of points in the support of a lagrangian point
  • nls number of lagrangian points
  • xlag(nls), ylag(nls) x and y coordinates of the lagrangian points
  • ds(nls) arc step length
  • hx(nls), hy(nls) dilatation parameters in the x and y direction
  • bmat(6,nls) matrix of the RKPM method (6 because we assume we're in 2-D)
  • nsup(nls) number of points of the support of a given lagragian point
  • supelt(nsupmax,nls) element index (i.e. Code_Saturne "iel") of the support
  • epsmat(nls) coefficients

Steps of the method

  • definition of the lagrangian points: nls, xlag, ylag, ds
  • definition of the support for each lagragian point
    • we find the nearest cell center I using findpt
    • we define the neighborood as the set of cells which share a node with the cell I
    • we define hx and hy using the definition given in Eq.32, Eq.33 and Eq.34 of [1]
    • we calculate the support using the Eq.35 of [1] (we choose %$\varepsilon_x=0$% and %$\varepsilon_y=0$% for now)
    • we then define nsup and supelt
  • calculation of the RKPM matrix b for each lagrangian points
    • we calculate the moment matrix M (terms rescaled by the dilitation factors to avoid ill-conditionning), it needs the regular_delta function and the list of powers as defined in Eq.28 of [1]
    • we calculate the determinant of M
    • if det(M)=0 we set b=[1 0 0 0 0 0]
    • if det(M)<>0 we perform a Cholesky decomposition of M = LL'
    • we find the vector y1 so that L*y1=[1 0 0 0 0 0]
    • we find the vector b so that L'*b=y1
    • b is multiplied by H (rescaling matrix defined in Eq.37 of [1])
  • calculation of the epsilon coefficients
    • calculation of the terms of the matrix A (as defined in Eq.44 of [1]): we only consider the 5 right-hand and left-hand neighbours of a given lagrangian point
    • the system M*epsilon = [1 ..... 1] is solved. A Krylov-type iterative method is suggested for the resolution, no preconditionning required [1] (lagrangian points spacing ~ eulerian grid spacing).

Linear algebra

The following LAPACK subroutines are used:
  • SDOT
  • SPOFA (Cholesky decomposition)
  • SPOSL (solves the real symmetric positive definite system using SPOFA)
  • SAXPY (ax+y vector operation)
  • SGEFA (LU decomposition)
  • SGESL (solves a general system of linear equations, after factorization by SGEFA)


[1] Pinelli, A., I.Z. Naqavi, Piomelli, U. and Favier, J. Immersed-boundary methods for general finite-difference and finite-volume Navier-Stokes solvers. Journal of Computational Physics, Vol. 229, pp. 9073-9091 (2010)

Current Tags:
create new tag
, view all tags
Topic revision: r3 - 2012-10-11 - 14:47:12 - FlavienBillard
Main Web
16 Oct 2019


Manchester CfdTm

Ongoing Projects


Previous Projects


Useful Links:

User Directory
Photo Wall
Upcoming Events
Add Event

Computational Fluid Dynamics and Turbulence Mechanics
@ the University of Manchester
Copyright © by the contributing authors. Unless noted otherwise, all material on this web site is the property of the contributing authors.