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. | |
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 ╞═╪═╪═╬═╪═╪═╡ ├─┼─┼─╫─┼─┼─┤ ├─┼─┼─╫─┼─┼─┤
Note that is in this context, “global” and “local” terms are not related to parallel computing as everywhere else in this software.