Skip to content

Commit e7fdb8b

Browse files
Updating AbstractMesh_Class (#451)
- Updating InitiateNodeToNodes
2 parents ba7f116 + d6964ea commit e7fdb8b

File tree

1 file changed

+24
-48
lines changed

1 file changed

+24
-48
lines changed

src/submodules/AbstractMesh/src/[email protected]

Lines changed: 24 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,12 @@
9393

9494
MODULE PROCEDURE obj_InitiateNodetoNodes
9595
CHARACTER(*), PARAMETER :: myName = "obj_InitiateNodetoNodes()"
96-
INTEGER(I4B) :: iel, ii, jj, kk, ll, nodewise_size(obj%tNodes), tnode
97-
TYPE(CPUTime_) :: TypeCPUTime
96+
INTEGER(I4B) :: inode, nodewise_size, telem, iel, global_elem_num, &
97+
& local_elem_num, tnode, ii, global_node_num, local_node_num
9898
INTEGER(I4B), PARAMETER :: chunk_size = 64
99-
LOGICAL(LGT) :: found(obj%tNodes)
99+
LOGICAL(LGT) :: found(obj%tNodes), skip
100100
INTEGER(I4B) :: temp(128 * 2)
101+
TYPE(CPUTime_) :: TypeCPUTime
101102

102103
#ifdef DEBUG_VER
103104
CALL e%RaiseInformation(modName//'::'//myName//' - '// &
@@ -115,63 +116,38 @@
115116
IF (obj%showTime) CALL TypeCPUTime%SetStartTime()
116117

117118
obj%isNodeToNodesInitiated = .TRUE.
118-
found = .FALSE.
119-
120-
DO iel = 1, obj%tElements
121-
tnode = SIZE(obj%elementData(iel)%globalNodes)
122119

123-
!! globalNodes
124-
temp(1:tnode) = obj%elementData(iel)%globalNodes
125-
!! localNodes
126-
temp(tnode + 1:2 * tnode) = &
127-
& obj%local_nptrs(obj%elementData(iel)%globalNodes)
120+
DO inode = 1, obj%tNodes
121+
nodewise_size = 0
122+
found = .FALSE.
123+
telem = SIZE(obj%nodeData(inode)%globalElements)
128124

129-
DO ii = 1, tnode
130-
kk = temp(tnode + ii)
131-
DO jj = ii + 1, tnode
125+
DO iel = 1, telem
126+
global_elem_num = obj%nodeData(inode)%globalElements(iel)
127+
local_elem_num = obj%GetLocalElemNumber(global_elem_num)
132128

133-
ll = temp(tnode + jj)
129+
tnode = SIZE(obj%elementData(local_elem_num)%globalNodes)
130+
DO ii = 1, tnode
134131

135-
IF (found(kk)) THEN
132+
global_node_num = obj%elementData(local_elem_num)%globalNodes(ii)
133+
local_node_num = obj%GetLocalNodeNumber(global_node_num)
136134

137-
IF (.NOT. found(ll)) THEN
138-
CALL Expand(vec=obj%nodeData(kk)%globalNodes, &
139-
& n=nodewise_size(kk), chunk_size=chunk_size, &
140-
& val=temp(jj))
141-
END IF
142-
143-
ELSE
144-
CALL Expand(vec=obj%nodeData(kk)%globalNodes, &
145-
& n=nodewise_size(kk), chunk_size=chunk_size, &
146-
& val=temp(jj))
147-
found(kk) = .TRUE.
135+
skip = found(local_node_num) .OR. (inode .EQ. local_node_num)
136+
IF (.NOT. skip) THEN
137+
CALL Expand(vec=obj%nodeData(inode)%globalNodes, &
138+
& n=nodewise_size, chunk_size=chunk_size, &
139+
& val=global_node_num)
140+
found(local_node_num) = .TRUE.
148141
END IF
149142

150-
IF (found(ll)) THEN
151-
152-
IF (.NOT. found(kk)) THEN
153-
CALL Expand(vec=obj%nodeData(ll)%globalNodes, &
154-
& n=nodewise_size(ll), chunk_size=chunk_size, &
155-
& val=temp(ii))
156-
END IF
157-
158-
found(ll) = .TRUE.
159-
160-
ELSE
161-
CALL Expand(vec=obj%nodeData(ll)%globalNodes, &
162-
& n=nodewise_size(ll), chunk_size=chunk_size, &
163-
& val=temp(ii))
164-
END IF
165143
END DO
166144

167145
END DO
168146

169-
END DO
170-
171-
DO ii = 1, obj%tNodes
172-
CALL Expand(vec=obj%nodeData(ii)%globalNodes, &
173-
& n=nodewise_size(ii), chunk_size=chunk_size, &
147+
CALL Expand(vec=obj%nodeData(inode)%globalNodes, &
148+
& n=nodewise_size, chunk_size=chunk_size, &
174149
& finished=.TRUE.)
150+
175151
END DO
176152

177153
IF (obj%showTime) THEN

0 commit comments

Comments
 (0)