Public Member Functions | |
| subroutine | ibc_extrapolate_dual (primal_node_type, dual_node_type, ib_metrics, ib_metrics_dual, dual_field) |
| Mixed face-cell extrapolation. | |
| subroutine | ibc_extrapolate_dual_cell (ib_metrics_cell, face_immersed_boundary, face_field_) |
| subroutine | ibc_extrapolate_dual_face (face_immersed_boundary, ib_metrics_cell, cell_field) |
| subroutine mod_immersed_boundary_condition_tools::ibc_extrapolate_dual::ibc_extrapolate_dual | ( | type(t_node_type), intent(in) | primal_node_type, |
| type(t_node_type), intent(in) | dual_node_type, | ||
| type(t_immersed_boundary_metrics), intent(in) | ib_metrics, | ||
| type(t_immersed_boundary_metrics), intent(in) | ib_metrics_dual, | ||
| double precision, dimension(:,:,:), intent(inout) | dual_field ) |
Mixed face-cell extrapolation.
This routine set outer nodes of a dual field to apply discrete operator without harm. For instance, on a cell-centered ghost node:
─┼─∧─┼─ > o > ─┼─∧─┼─
There may be a face-centered node which is an outer node. In that case, it is not possible to apply discrete operator such as face-to-cell interpolation or face-to-cell divergence. This routine extrapolate the dual field to make discrete operators appliable. Note that the opposite face-centered node is always a ghost node. The same problem occurs around the three face-centered ghost nodes:
───┼─── │ o │ o > o ─┼─∧─┼─ … ───┼─── │ o │
which are handled as well.
Currently, this routine simply copy the opposite-side ghost node value to the outer node value. A more elaborate extrapolation may be designed in the future.
| subroutine mod_immersed_boundary_condition_tools::ibc_extrapolate_dual::ibc_extrapolate_dual_cell | ( | type(t_immersed_boundary_metrics), intent(in) | ib_metrics_cell, |
| type(t_face_immersed_boundary_metrics), intent(in) | face_immersed_boundary, | ||
| type(t_face_field), intent(inout) | face_field_ ) |
| subroutine mod_immersed_boundary_condition_tools::ibc_extrapolate_dual::ibc_extrapolate_dual_face | ( | type(t_face_immersed_boundary_metrics), intent(in) | face_immersed_boundary, |
| type(t_immersed_boundary_metrics), intent(in) | ib_metrics_cell, | ||
| double precision, dimension(:,:,:), intent(inout) | cell_field ) |