some simplifications as discussed with IBF colleagues

This commit is contained in:
Martin Diehl 2015-11-25 20:55:17 +00:00
parent cee9a345b7
commit 4eb43908c3
2 changed files with 18 additions and 56 deletions

View File

@ -43,7 +43,7 @@ module FEsolving
modelName !< needs description modelName !< needs description
logical, dimension(:,:), allocatable, public :: & logical, dimension(:,:), allocatable, public :: &
calcMode !< needs description calcMode !< do calculation or simply collect when using ping pong scheme
public :: FE_init public :: FE_init

View File

@ -583,6 +583,7 @@ subroutine mesh_init(ip,el)
size3 = geomSize(3)*real(grid3,pReal) /real(grid(3),pReal) size3 = geomSize(3)*real(grid3,pReal) /real(grid(3),pReal)
size3Offset = geomSize(3)*real(grid3Offset,pReal)/real(grid(3),pReal) size3Offset = geomSize(3)*real(grid3Offset,pReal)/real(grid(3),pReal)
#endif #endif
if (myDebug) write(6,'(a)') ' Grid partitioned'; flush(6) if (myDebug) write(6,'(a)') ' Grid partitioned'; flush(6)
call mesh_spectral_count() call mesh_spectral_count()
if (myDebug) write(6,'(a)') ' Counted nodes/elements'; flush(6) if (myDebug) write(6,'(a)') ' Counted nodes/elements'; flush(6)
@ -594,20 +595,6 @@ subroutine mesh_init(ip,el)
if (myDebug) write(6,'(a)') ' Built nodes'; flush(6) if (myDebug) write(6,'(a)') ' Built nodes'; flush(6)
call mesh_spectral_build_elements(FILEUNIT) call mesh_spectral_build_elements(FILEUNIT)
if (myDebug) write(6,'(a)') ' Built elements'; flush(6) if (myDebug) write(6,'(a)') ' Built elements'; flush(6)
call mesh_get_damaskOptions(FILEUNIT)
if (myDebug) write(6,'(a)') ' Got DAMASK options'; flush(6)
call mesh_build_cellconnectivity
if (myDebug) write(6,'(a)') ' Built cell connectivity'; flush(6)
mesh_cellnode = mesh_build_cellnodes(mesh_node,mesh_Ncellnodes)
if (myDebug) write(6,'(a)') ' Built cell nodes'; flush(6)
call mesh_build_ipCoordinates
if (myDebug) write(6,'(a)') ' Built IP coordinates'; flush(6)
call mesh_build_ipVolumes
if (myDebug) write(6,'(a)') ' Built IP volumes'; flush(6)
call mesh_build_ipAreas
if (myDebug) write(6,'(a)') ' Built IP areas'; flush(6)
call mesh_spectral_build_ipNeighborhood(FILEUNIT)
if (myDebug) write(6,'(a)') ' Built IP neighborhood'; flush(6)
#endif #endif
#ifdef Marc4DAMASK #ifdef Marc4DAMASK
call IO_open_inputFile(FILEUNIT,modelName) ! parse info from input file... call IO_open_inputFile(FILEUNIT,modelName) ! parse info from input file...
@ -632,24 +619,6 @@ subroutine mesh_init(ip,el)
if (myDebug) write(6,'(a)') ' Counted CP sizes'; flush(6) if (myDebug) write(6,'(a)') ' Counted CP sizes'; flush(6)
call mesh_marc_build_elements(FILEUNIT) call mesh_marc_build_elements(FILEUNIT)
if (myDebug) write(6,'(a)') ' Built elements'; flush(6) if (myDebug) write(6,'(a)') ' Built elements'; flush(6)
call mesh_get_damaskOptions(FILEUNIT)
if (myDebug) write(6,'(a)') ' Got DAMASK options'; flush(6)
call mesh_build_cellconnectivity
if (myDebug) write(6,'(a)') ' Built cell connectivity'; flush(6)
mesh_cellnode = mesh_build_cellnodes(mesh_node,mesh_Ncellnodes)
if (myDebug) write(6,'(a)') ' Built cell nodes'; flush(6)
call mesh_build_ipCoordinates
if (myDebug) write(6,'(a)') ' Built IP coordinates'; flush(6)
call mesh_build_ipVolumes
if (myDebug) write(6,'(a)') ' Built IP volumes'; flush(6)
call mesh_build_ipAreas
if (myDebug) write(6,'(a)') ' Built IP areas'; flush(6)
call mesh_build_nodeTwins
if (myDebug) write(6,'(a)') ' Built node twins'; flush(6)
call mesh_build_sharedElems
if (myDebug) write(6,'(a)') ' Built shared elements'; flush(6)
call mesh_build_ipNeighborhood
if (myDebug) write(6,'(a)') ' Built IP neighborhood'; flush(6)
#endif #endif
#ifdef Abaqus #ifdef Abaqus
call IO_open_inputFile(FILEUNIT,modelName) ! parse info from input file... call IO_open_inputFile(FILEUNIT,modelName) ! parse info from input file...
@ -677,6 +646,8 @@ subroutine mesh_init(ip,el)
if (myDebug) write(6,'(a)') ' Counted CP sizes'; flush(6) if (myDebug) write(6,'(a)') ' Counted CP sizes'; flush(6)
call mesh_abaqus_build_elements(FILEUNIT) call mesh_abaqus_build_elements(FILEUNIT)
if (myDebug) write(6,'(a)') ' Built elements'; flush(6) if (myDebug) write(6,'(a)') ' Built elements'; flush(6)
#endif
call mesh_get_damaskOptions(FILEUNIT) call mesh_get_damaskOptions(FILEUNIT)
if (myDebug) write(6,'(a)') ' Got DAMASK options'; flush(6) if (myDebug) write(6,'(a)') ' Got DAMASK options'; flush(6)
call mesh_build_cellconnectivity call mesh_build_cellconnectivity
@ -689,15 +660,19 @@ subroutine mesh_init(ip,el)
if (myDebug) write(6,'(a)') ' Built IP volumes'; flush(6) if (myDebug) write(6,'(a)') ' Built IP volumes'; flush(6)
call mesh_build_ipAreas call mesh_build_ipAreas
if (myDebug) write(6,'(a)') ' Built IP areas'; flush(6) if (myDebug) write(6,'(a)') ' Built IP areas'; flush(6)
close (FILEUNIT)
#if defined(Marc4DAMASK) || defined(Abaqus)
call mesh_build_nodeTwins call mesh_build_nodeTwins
if (myDebug) write(6,'(a)') ' Built node twins'; flush(6) if (myDebug) write(6,'(a)') ' Built node twins'; flush(6)
call mesh_build_sharedElems call mesh_build_sharedElems
if (myDebug) write(6,'(a)') ' Built shared elements'; flush(6) if (myDebug) write(6,'(a)') ' Built shared elements'; flush(6)
call mesh_build_ipNeighborhood call mesh_build_ipNeighborhood
if (myDebug) write(6,'(a)') ' Built IP neighborhood'; flush(6) #else
call mesh_spectral_build_ipNeighborhood(FILEUNIT)
#endif #endif
if (myDebug) write(6,'(a)') ' Built IP neighborhood'; flush(6)
close (FILEUNIT)
if (worldrank == 0_pInt) then if (worldrank == 0_pInt) then
call mesh_tell_statistics call mesh_tell_statistics
call mesh_write_meshfile call mesh_write_meshfile
@ -798,7 +773,6 @@ subroutine mesh_build_cellconnectivity
matchingNodeID, & matchingNodeID, &
localCellnodeID localCellnodeID
allocate(mesh_cell(FE_maxNcellnodesPerCell,mesh_maxNips,mesh_NcpElems), source=0_pInt) allocate(mesh_cell(FE_maxNcellnodesPerCell,mesh_maxNips,mesh_NcpElems), source=0_pInt)
allocate(matchingNode2cellnode(mesh_Nnodes), source=0_pInt) allocate(matchingNode2cellnode(mesh_Nnodes), source=0_pInt)
allocate(cellnodeParent(2_pInt,mesh_maxNcellnodes*mesh_NcpElems), source=0_pInt) allocate(cellnodeParent(2_pInt,mesh_maxNcellnodes*mesh_NcpElems), source=0_pInt)
@ -3587,9 +3561,7 @@ enddo
endif endif
if (iand(myDebug,debug_levelExtensive) /= 0_pInt) then if (iand(myDebug,debug_levelExtensive) /= 0_pInt) then
write(6,*) write(6,'(/,a,/)') 'Input Parser: ELEMENT TYPE'
write(6,*) 'Input Parser: ELEMENT TYPE'
write(6,*)
write(6,'(a8,3(1x,a8))') 'elem','elemtype','geomtype','celltype' write(6,'(a8,3(1x,a8))') 'elem','elemtype','geomtype','celltype'
do e = 1_pInt,mesh_NcpElems do e = 1_pInt,mesh_NcpElems
if (iand(myDebug,debug_levelSelective) /= 0_pInt .and. debug_e /= e) cycle if (iand(myDebug,debug_levelSelective) /= 0_pInt .and. debug_e /= e) cycle
@ -3598,12 +3570,9 @@ enddo
c = FE_celltype(g) ! get cellType c = FE_celltype(g) ! get cellType
write(6,'(i8,3(1x,i8))') e,t,g,c write(6,'(i8,3(1x,i8))') e,t,g,c
enddo enddo
write(6,*) write(6,'(/,a)') 'Input Parser: ELEMENT VOLUME'
write(6,*) 'Input Parser: ELEMENT VOLUME' write(6,'(/,a13,1x,e15.8)') 'total volume', sum(mesh_ipVolume)
write(6,*) write(6,'(/,a8,1x,a5,1x,a15,1x,a5,1x,a15,1x,a16)') 'elem','IP','volume','face','area','-- normal --'
write(6,'(a13,1x,e15.8)') 'total volume', sum(mesh_ipVolume)
write(6,*)
write(6,'(a8,1x,a5,1x,a15,1x,a5,1x,a15,1x,a16)') 'elem','IP','volume','face','area','-- normal --'
do e = 1_pInt,mesh_NcpElems do e = 1_pInt,mesh_NcpElems
if (iand(myDebug,debug_levelSelective) /= 0_pInt .and. debug_e /= e) cycle if (iand(myDebug,debug_levelSelective) /= 0_pInt .and. debug_e /= e) cycle
t = mesh_element(2,e) ! get element type t = mesh_element(2,e) ! get element type
@ -3617,9 +3586,7 @@ enddo
enddo enddo
enddo enddo
enddo enddo
write(6,*) write(6,'(/,a,/)') 'Input Parser: CELLNODE COORDINATES'
write(6,*) 'Input Parser: CELLNODE COORDINATES'
write(6,*)
write(6,'(a8,1x,a2,1x,a8,3(1x,a12))') 'elem','IP','cellnode','x','y','z' write(6,'(a8,1x,a2,1x,a8,3(1x,a12))') 'elem','IP','cellnode','x','y','z'
do e = 1_pInt,mesh_NcpElems ! loop over cpElems do e = 1_pInt,mesh_NcpElems ! loop over cpElems
if (iand(myDebug,debug_levelSelective) /= 0_pInt .and. debug_e /= e) cycle if (iand(myDebug,debug_levelSelective) /= 0_pInt .and. debug_e /= e) cycle
@ -3635,8 +3602,7 @@ enddo
enddo enddo
enddo enddo
enddo enddo
write(6,*) write(6,'(/,a)') 'Input Parser: IP COORDINATES'
write(6,*) 'Input Parser: IP COORDINATES'
write(6,'(a8,1x,a5,3(1x,a12))') 'elem','IP','x','y','z' write(6,'(a8,1x,a5,3(1x,a12))') 'elem','IP','x','y','z'
do e = 1_pInt,mesh_NcpElems do e = 1_pInt,mesh_NcpElems
if (iand(myDebug,debug_levelSelective) /= 0_pInt .and. debug_e /= e) cycle if (iand(myDebug,debug_levelSelective) /= 0_pInt .and. debug_e /= e) cycle
@ -3645,19 +3611,15 @@ enddo
write(6,'(i8,1x,i5,3(1x,f12.8))') e, i, mesh_ipCoordinates(:,i,e) write(6,'(i8,1x,i5,3(1x,f12.8))') e, i, mesh_ipCoordinates(:,i,e)
enddo enddo
enddo enddo
write(6,*)
#ifndef Spectral #ifndef Spectral
write(6,*) 'Input Parser: NODE TWINS' write(6,'(/,a,/)') 'Input Parser: NODE TWINS'
write(6,*)
write(6,'(a6,3(3x,a6))') ' node','twin_x','twin_y','twin_z' write(6,'(a6,3(3x,a6))') ' node','twin_x','twin_y','twin_z'
do n = 1_pInt,mesh_Nnodes ! loop over cpNodes do n = 1_pInt,mesh_Nnodes ! loop over cpNodes
if (iand(myDebug,debug_levelSelective) /= 0_pInt .and. .not. any(mesh_element(5:,debug_e) == n)) cycle if (iand(myDebug,debug_levelSelective) /= 0_pInt .and. .not. any(mesh_element(5:,debug_e) == n)) cycle
write(6,'(i6,3(3x,i6))') n, mesh_nodeTwins(1:3,n) write(6,'(i6,3(3x,i6))') n, mesh_nodeTwins(1:3,n)
enddo enddo
write(6,*)
#endif #endif
write(6,*) 'Input Parser: IP NEIGHBORHOOD' write(6,'(/,a,/)') 'Input Parser: IP NEIGHBORHOOD'
write(6,*)
write(6,'(a8,1x,a10,1x,a10,1x,a3,1x,a13,1x,a13)') 'elem','IP','neighbor','','elemNeighbor','ipNeighbor' write(6,'(a8,1x,a10,1x,a10,1x,a3,1x,a13,1x,a13)') 'elem','IP','neighbor','','elemNeighbor','ipNeighbor'
do e = 1_pInt,mesh_NcpElems ! loop over cpElems do e = 1_pInt,mesh_NcpElems ! loop over cpElems
if (iand(myDebug,debug_levelSelective) /= 0_pInt .and. debug_e /= e) cycle if (iand(myDebug,debug_levelSelective) /= 0_pInt .and. debug_e /= e) cycle