OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
consider_edge_mod Module Reference

Functions/Subroutines

logical function consider_edge (connectivity, nb_nodes_mini, nelem, e1, e2)
subroutine sort_descending (array)

Variables

integer, parameter max_nb_nodes_per_elt = 10

Function/Subroutine Documentation

◆ consider_edge()

logical function consider_edge_mod::consider_edge ( integer, dimension(max_nb_nodes_per_elt,nelem), intent(in) connectivity,
integer, dimension(nelem), intent(in) nb_nodes_mini,
integer, intent(in) nelem,
integer, intent(in) e1,
integer, intent(in) e2 )
Parameters
[in]nelemtotal number of elements
[in]connectivitylist of nodes per element (may be zero)
[in]nb_nodes_miniminimum number of shared node per element to consider the edge
[in]e1index of the first element
[in]e2index of the second element

Definition at line 46 of file consider_edge.F.

47 implicit none
48! ----------------------------------------------------------------------------------------------------------------------
49! Arguments
50! ----------------------------------------------------------------------------------------------------------------------
51 integer, intent(in) :: nelem !< total number of elements
52 integer, intent(in) :: connectivity(max_nb_nodes_per_elt,nelem) !< list of nodes per element (may be zero)
53 integer, intent(in) :: nb_nodes_mini(nelem) !< minimum number of shared node per element to consider the edge
54 integer, intent(in) :: e1 !< index of the first element
55 integer, intent(in) :: e2 !< index of the second element
56! ----------------------------------------------------------------------------------------------------------------------
57! Local variables
58! ----------------------------------------------------------------------------------------------------------------------
59 logical :: bool
60 integer :: count
61 integer :: i,j
62! ----------------------------------------------------------------------------------------------------------------------
63! Body
64! ----------------------------------------------------------------------------------------------------------------------
65 bool = .false.
66 count = 0
67
68 i = 1
69 j = 1
70 do while (i <= max_nb_nodes_per_elt .and. j <= max_nb_nodes_per_elt)
71 if(connectivity(i,e1) == 0 .or. connectivity(j,e2) == 0) then
72 exit
73 elseif (connectivity(i,e1) == connectivity(j,e2)) then
74 count = count + 1
75 i = i + 1
76 j = j + 1
77 else if (connectivity(i,e1) > connectivity(j,e2)) then
78 i = i + 1
79 else
80 j = j + 1
81 end if
82 end do
83
84 if (count >= nb_nodes_mini(e1) .or. count >= nb_nodes_mini(e2)) then
85 bool = .true.
86 end if

◆ sort_descending()

subroutine consider_edge_mod::sort_descending ( integer, dimension(max_nb_nodes_per_elt), intent(inout) array)

Definition at line 95 of file consider_edge.F.

96 implicit none
97! ----------------------------------------------------------------------------------------------------------------------
98! Arguments
99! ----------------------------------------------------------------------------------------------------------------------
100 integer, dimension(max_nb_nodes_per_elt), intent(inout) :: array
101! ----------------------------------------------------------------------------------------------------------------------
102! Local variables
103! ----------------------------------------------------------------------------------------------------------------------
104 integer :: i, j, temp
105! ----------------------------------------------------------------------------------------------------------------------
106! Body
107! ----------------------------------------------------------------------------------------------------------------------
108 do i = 1, max_nb_nodes_per_elt-1
109 do j = i+1, max_nb_nodes_per_elt
110 if (array(i) < array(j)) then
111 temp = array(i)
112 array(i) = array(j)
113 array(j) = temp
114 end if
115 end do
116 end do
117

Variable Documentation

◆ max_nb_nodes_per_elt

integer, parameter consider_edge_mod::max_nb_nodes_per_elt = 10

Definition at line 33 of file consider_edge.F.

33 integer, parameter :: max_nb_nodes_per_elt = 10