check for twin nodes only in direction of the surface normal. this solves a problem with models of single element thickness and periodic fluxes.
This commit is contained in:
parent
fed53a7e60
commit
8aef9b1c13
|
@ -2970,28 +2970,21 @@ checkCandidateIP: do candidateIP = 1,FE_Nips(neighboringType)
|
||||||
!*** if no match found, then also check node twins
|
!*** if no match found, then also check node twins
|
||||||
|
|
||||||
if(checkTwins) then
|
if(checkTwins) then
|
||||||
periodicityDirection: do dir = 1,3
|
dir = maxloc(abs(mesh_ipAreaNormal(1:3,neighbor,myIP,myElem)),1) ! check for twins only in direction of the surface normal
|
||||||
do a = 1,NlinkedNodes
|
do a = 1,NlinkedNodes
|
||||||
twin_of_linkedNode = mesh_nodeTwins(dir,linkedNodes(a))
|
twin_of_linkedNode = mesh_nodeTwins(dir,linkedNodes(a))
|
||||||
if (twin_of_linkedNode == 0_pInt & ! twin of linkedNode does not exist...
|
if (twin_of_linkedNode == 0_pInt & ! twin of linkedNode does not exist...
|
||||||
.or. all(matchingNodes /= twin_of_linkedNode)) then ! ... or it does not match any matchingNode
|
.or. all(matchingNodes /= twin_of_linkedNode)) then ! ... or it does not match any matchingNode
|
||||||
if (dir < 3) then ! no match in this direction...
|
cycle checkCandidateIP ! ... so check next candidateIP
|
||||||
cycle periodicityDirection ! ... so try in different direction
|
endif
|
||||||
else ! no matching in any direction...
|
enddo
|
||||||
cycle checkCandidateIP ! ... so check next candidateIP
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
enddo
|
|
||||||
exit periodicityDirection
|
|
||||||
enddo periodicityDirection
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
!*** we found a match !!!
|
!*** we found a match !!!
|
||||||
|
|
||||||
mesh_ipNeighborhood(1,neighbor,myIP,myElem) = matchingElem
|
mesh_ipNeighborhood(1,neighbor,myIP,myElem) = matchingElem
|
||||||
mesh_ipNeighborhood(2,neighbor,myIP,myElem) = candidateIP
|
mesh_ipNeighborhood(2,neighbor,myIP,myElem) = candidateIP
|
||||||
exit checkCandidateIP
|
exit checkCandidateIP
|
||||||
|
|
||||||
enddo checkCandidateIP
|
enddo checkCandidateIP
|
||||||
endif ! end of valid external matching
|
endif ! end of valid external matching
|
||||||
endif ! end of internal/external matching
|
endif ! end of internal/external matching
|
||||||
|
|
Loading…
Reference in New Issue