tem_interpolation_module Module

this module is intended to collect all data types and informations for interpolation of data for cells of different refinement levels (so ghost or halo cells).


Uses

  • module~~tem_interpolation_module~~UsesGraph module~tem_interpolation_module tem_interpolation_module module~tem_construction_module tem_construction_module module~tem_interpolation_module->module~tem_construction_module module~treelmesh_module treelmesh_module module~tem_interpolation_module->module~treelmesh_module module~tem_construction_module->module~treelmesh_module module~tem_dyn_array_module tem_dyn_array_module module~tem_construction_module->module~tem_dyn_array_module module~tem_bc_prop_module tem_bc_prop_module module~tem_construction_module->module~tem_bc_prop_module module~tem_halo_module tem_halo_module module~tem_construction_module->module~tem_halo_module module~tem_param_module tem_param_module module~tem_construction_module->module~tem_param_module module~tem_comm_module tem_comm_module module~tem_construction_module->module~tem_comm_module module~tem_logging_module tem_logging_module module~tem_construction_module->module~tem_logging_module module~tem_topology_module tem_topology_module module~tem_construction_module->module~tem_topology_module module~tem_aux_module tem_aux_module module~tem_construction_module->module~tem_aux_module module~tem_tools_module tem_tools_module module~tem_construction_module->module~tem_tools_module module~tem_grow_array_module tem_grow_array_module module~tem_construction_module->module~tem_grow_array_module module~tem_stencil_module tem_stencil_module module~tem_construction_module->module~tem_stencil_module module~tem_property_module tem_property_module module~tem_construction_module->module~tem_property_module module~tem_geometry_module tem_geometry_module module~tem_construction_module->module~tem_geometry_module module~env_module env_module module~tem_construction_module->module~env_module module~tem_element_module tem_element_module module~tem_construction_module->module~tem_element_module module~tem_comm_env_module tem_comm_env_module module~tem_construction_module->module~tem_comm_env_module tem_sparse_comm_module tem_sparse_comm_module module~tem_construction_module->tem_sparse_comm_module module~tem_debug_module tem_debug_module module~tem_construction_module->module~tem_debug_module mpi mpi module~tem_construction_module->mpi module~tem_global_module tem_global_module module~treelmesh_module->module~tem_global_module module~tem_sparta_module tem_Sparta_module module~treelmesh_module->module~tem_sparta_module module~treelmesh_module->module~tem_logging_module module~aot_table_module aot_table_module module~treelmesh_module->module~aot_table_module module~treelmesh_module->module~tem_topology_module module~treelmesh_module->module~tem_aux_module module~treelmesh_module->module~tem_tools_module module~aotus_module aotus_module module~treelmesh_module->module~aotus_module module~treelmesh_module->module~tem_property_module module~treelmesh_module->module~env_module module~treelmesh_module->mpi

Contents


Abstract Interfaces

abstract interface

implicit interface which can be used to create interpolation routines for ghost and halo cells within the solvers and to pass them as an arguement to the interpolation subroutine interpolate.

  • private subroutine solver_interpolation_down(target_cell_data, target_cell_variables, target_cell_level, source_cell_data, source_cell_variables, source_child_numbers)

    Arguments

    TypeIntentOptionalAttributesName
    real, intent(inout), allocatable:: target_cell_data(:)

    The data of the cell you want to reconstruct. The subroutine implementing this interface does not allocate memory, so the calling subroutine has to allocate memory for this subroutine. The length of this array is the number of degrees of freedom (in case of PNPM or FD) or number of links (in case of LBM) you want to reconstruct.

    integer, intent(in) :: target_cell_variables

    the number of variables you want to interpolate for the target cell. In case of PNPM it is the number of degrees of freedom (e.g. see ATELES: scheme_type%nDoFs ). In case of LBM it is the number of links (e.g. in case of D3Q19 it is 19).

    integer, intent(in) :: target_cell_level

    the level of the cell you want to reconstruct inside the octree. Since we do a downwards interpolation (from the higher refinement level to the lower one) we implicitly assume that the source cell levels are all equal to target_cell_level - 1.

    real, intent(in), allocatable:: source_cell_data(:,:)

    Data of the source cells, which are necessary to interpolate the target cell on a lower level. Since we are working on an octree structure we assume to get everytime the data of all 8 children. So the dimensions of this array are: First dimension is 8, second dimension is source_cell_variables. If one source cell is a solid cell put a negative integer number into source_child_numbers at the right position to indicate that this child is not valid.

    integer, intent(in) :: source_cell_variables

    the number of variables of the source cell. In case of PNPM it is the number of degrees of freedom (e.g. see ATELES: scheme_type%nDoFs ) of the source cells. In case of LBM it is the number of links (e.g. in case of D3Q19 it is 19).

    integer, intent(in), allocatable:: source_child_numbers(:)

    array of integer numbers of length 8 indicating the position of the children within the space filling curve. If one child is a solid cell and therefore not part of the interpolation, put a negative integer inside this array. This tells the subroutine, that this child will not be part of the interpolation step.