version 0.6.0
Loading...
Searching...
No Matches
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.
 

Function/Subroutine Documentation

◆ eval_ibm_matrix_coefficients()

subroutine, public mod_eval_ibm_matrix_coefficients::eval_ibm_matrix_coefficients ( type(t_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.