are_elements_adjacent Function

private function are_elements_adjacent(elem1, elem2) result(is_adjacent)

Arguments

Type IntentOptional Attributes Name
class(abst_element), intent(in) :: elem1
class(abst_element), intent(in) :: elem2

Return Value logical


Calls

proc~~are_elements_adjacent~~CallsGraph proc~are_elements_adjacent are_elements_adjacent proc~get_connectivity abst_mesh%get_connectivity proc~are_elements_adjacent->proc~get_connectivity proc~get_num_nodes~3 abst_mesh%get_num_nodes proc~are_elements_adjacent->proc~get_num_nodes~3

Called by

proc~~are_elements_adjacent~~CalledByGraph proc~are_elements_adjacent are_elements_adjacent proc~initialize_crs_adjacency type_crs_adjacency_element%initialize_crs_adjacency proc~initialize_crs_adjacency->proc~are_elements_adjacent

Source Code

    function are_elements_adjacent(elem1, elem2) result(is_adjacent)
        class(abst_element), intent(in) :: elem1, elem2
        logical :: is_adjacent
        integer(int32) :: i, j
        integer(int32) :: num_nodes1, num_nodes2
        integer(int32), dimension(:), pointer :: ptr_conn1 => null()
        integer(int32), dimension(:), pointer :: ptr_conn2 => null()

        is_adjacent = .false.
        num_nodes1 = elem1%get_num_nodes()
        num_nodes2 = elem2%get_num_nodes()

        ptr_conn1 => elem1%get_connectivity()
        ptr_conn2 => elem2%get_connectivity()

        do i = 1, num_nodes1
            do j = 1, num_nodes2
                if (ptr_conn1(i) == ptr_conn2(j)) then
                    is_adjacent = .true.
                    return
                end if
            end do
        end do
    end function are_elements_adjacent