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 get_num_nodes get_num_nodes proc~are_elements_adjacent->get_num_nodes

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 proc~initialize_type_domain type_domain%initialize_type_domain proc~initialize_type_domain->proc~initialize_crs_adjacency

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), allocatable :: conn1(:), conn2(:)

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

        conn1 = elem1%connectivity
        conn2 = elem2%connectivity

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