version 0.6.0
mod_eval_ibm_matrix_coefficients Module Reference

Preparation routine building blocks for immersed boundaries.

Functions/Subroutines

subroutine, public eval_ibm_matrix_coefficients (matrix, ib_metrics, coord_x, coord_y, coord_z, order, condition_type, method, is_image_point_shift, is_ghost_node_shift, is_quadratic, is_p3_lagrange)
 Evaluate matrix coefficients. More...
 
elemental subroutine eval_octant (is, ie, js, je, ks, ke, i_base, j_base, k_base, dir_x, dir_y, dir_z, extent_x, extent_y, extent_z)
 Computing grid index ranges according to the base node, the direction, and the extent. Set extent_z to zero in 2D.
 

Function/Subroutine Documentation

◆ eval_ibm_matrix_coefficients()

subroutine, public mod_eval_ibm_matrix_coefficients::eval_ibm_matrix_coefficients ( type(ibm_matrix_coefficients), dimension(:), intent(inout)  matrix,
type(t_immersed_boundary_metrics), intent(in)  ib_metrics,
double precision, dimension(:), intent(in)  coord_x,
double precision, dimension(:), intent(in)  coord_y,
double precision, dimension(:), intent(in)  coord_z,
integer, intent(in)  order,
integer, dimension(:), intent(in)  condition_type,
integer, intent(in)  method,
logical, intent(in)  is_image_point_shift,
logical, intent(in)  is_ghost_node_shift,
logical, intent(in)  is_quadratic,
logical, intent(in)  is_p3_lagrange 
)

This routine compute interpolation coefficients for the selected immersed boundary method. At this point, argument ib_metrics must be complete (i.e. attributes ghost_points, boundary_points, probe_points, probe_deepness must be set). The argument matrix is a list of truncated fields and this routine places interpolation coefficients in it. There is a truncated fiel per ghost cell.

The correspondance between truncated field indices and field indices is described below.

        1      nmx
┏━━━━━━━┷━━━━━━━┷━━━━┓     nmx: always an odd number.
┃       ┌─┬─╥─┬─┐    ┃
┃       ├─┼─╫─┼─┤    ┃     ex = nmx / 2  (Fortran's integer division)
┃       ╞═╪═╬═╪═╡    ┃
┃       ├─┼─╫─┼─┤    ┃     ism = ig - ex ;  iem = ig + ex
┃       └─┴─╨─┴─┘    ┃
┃                    ┃
┡━━━━━━━┯━━━┯━━━┯━━━━┩
1      ism  ig iem   nx

The cells indices can be counted from three references: the “global” domain indices, the “local” domain indices, and the ghost node “centered” indices.

“global”            “centered”               “local”

                    + extent_y ┬─┬─┬─╥─┬─┬─┬ size(matrix(m)%coef, 2)
                               ├─┼─┼─╫─┼─┼─┤
                               ├─┼─┼─╫─┼─┼─┤

ib_metricsghost_nodej(m) + 0 ╞═╪═╪═╬═╪═╪═╡ ├─┼─┼─╫─┼─┼─┤ ├─┼─┼─╫─┼─┼─┤

  • extent_y ┴─┴─┴─╨─┴─┴─┴ 1

Note that is in this context, “global” and “local” terms are not related to parallel computing as everywhere else in this software.