Preparation routine building blocks for immersed boundaries. More...
| 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. | |
| 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. | |
Preparation routine building blocks for immersed boundaries.
| 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 ) | 
Evaluate matrix coefficients.
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.