polishing and encapsulating of Abaqus-specific local variables
This commit is contained in:
parent
dc289a278b
commit
f0b9c0caf7
28
src/mesh.f90
28
src/mesh.f90
|
@ -14,8 +14,6 @@ module mesh
|
||||||
integer(pInt), public, protected :: &
|
integer(pInt), public, protected :: &
|
||||||
mesh_NcpElems, & !< total number of CP elements in local mesh
|
mesh_NcpElems, & !< total number of CP elements in local mesh
|
||||||
mesh_elemType, & !< Element type of the mesh (only support homogeneous meshes)
|
mesh_elemType, & !< Element type of the mesh (only support homogeneous meshes)
|
||||||
mesh_maxNelemInSet, &
|
|
||||||
mesh_Nmaterials, &
|
|
||||||
mesh_Nnodes, & !< total number of nodes in mesh
|
mesh_Nnodes, & !< total number of nodes in mesh
|
||||||
mesh_Ncellnodes, & !< total number of cell nodes in mesh (including duplicates)
|
mesh_Ncellnodes, & !< total number of cell nodes in mesh (including duplicates)
|
||||||
mesh_Ncells, & !< total number of cells in mesh
|
mesh_Ncells, & !< total number of cells in mesh
|
||||||
|
@ -64,6 +62,12 @@ module mesh
|
||||||
|
|
||||||
logical, dimension(3), public, protected :: mesh_periodicSurface !< flag indicating periodic outer surfaces (used for fluxes)
|
logical, dimension(3), public, protected :: mesh_periodicSurface !< flag indicating periodic outer surfaces (used for fluxes)
|
||||||
|
|
||||||
|
#if defined(Marc4DAMASK) || defined(Abaqus)
|
||||||
|
integer(pInt), private :: &
|
||||||
|
mesh_maxNelemInSet, &
|
||||||
|
mesh_Nmaterials
|
||||||
|
#endif
|
||||||
|
|
||||||
integer(pInt), dimension(2), private :: &
|
integer(pInt), dimension(2), private :: &
|
||||||
mesh_maxValStateVar = 0_pInt
|
mesh_maxValStateVar = 0_pInt
|
||||||
|
|
||||||
|
@ -520,8 +524,12 @@ subroutine mesh_init(ip,el)
|
||||||
if(worldsize>grid(3)) call IO_error(894_pInt, ext_msg='number of processes exceeds grid(3)')
|
if(worldsize>grid(3)) call IO_error(894_pInt, ext_msg='number of processes exceeds grid(3)')
|
||||||
|
|
||||||
geomSize = mesh_spectral_getSize(fileUnit)
|
geomSize = mesh_spectral_getSize(fileUnit)
|
||||||
devNull = fftw_mpi_local_size_3d(int(grid(3),C_INTPTR_T),int(grid(2),C_INTPTR_T),&
|
devNull = fftw_mpi_local_size_3d(int(grid(3),C_INTPTR_T), &
|
||||||
int(grid(1),C_INTPTR_T)/2+1,PETSC_COMM_WORLD,local_K,local_K_offset)
|
int(grid(2),C_INTPTR_T), &
|
||||||
|
int(grid(1),C_INTPTR_T)/2+1, &
|
||||||
|
PETSC_COMM_WORLD, &
|
||||||
|
local_K, & ! domain grid size along z
|
||||||
|
local_K_offset) ! domain grid offset along z
|
||||||
grid3 = int(local_K,pInt)
|
grid3 = int(local_K,pInt)
|
||||||
grid3Offset = int(local_K_offset,pInt)
|
grid3Offset = int(local_K_offset,pInt)
|
||||||
size3 = geomSize(3)*real(grid3,pReal) /real(grid(3),pReal)
|
size3 = geomSize(3)*real(grid3,pReal) /real(grid(3),pReal)
|
||||||
|
@ -1251,7 +1259,7 @@ subroutine mesh_spectral_build_elements(fileUnit)
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
e, i, &
|
e, i, &
|
||||||
headerLength = 0_pInt, &
|
headerLength = 0_pInt, &
|
||||||
maxIntCount, &
|
maxDataPerLine, &
|
||||||
homog, &
|
homog, &
|
||||||
elemType, &
|
elemType, &
|
||||||
elemOffset
|
elemOffset
|
||||||
|
@ -1287,16 +1295,16 @@ subroutine mesh_spectral_build_elements(fileUnit)
|
||||||
read(fileUnit,'(a65536)') line
|
read(fileUnit,'(a65536)') line
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
maxIntCount = 0_pInt
|
maxDataPerLine = 0_pInt
|
||||||
i = 1_pInt
|
i = 1_pInt
|
||||||
|
|
||||||
do while (i > 0_pInt)
|
do while (i > 0_pInt)
|
||||||
i = IO_countContinuousIntValues(fileUnit)
|
i = IO_countContinuousIntValues(fileUnit)
|
||||||
maxIntCount = max(maxIntCount, i)
|
maxDataPerLine = max(maxDataPerLine, i) ! found a longer line?
|
||||||
enddo
|
enddo
|
||||||
allocate(mesh_element (4_pInt+8_pInt,mesh_NcpElems), source = 0_pInt)
|
allocate(mesh_element (4_pInt+8_pInt,mesh_NcpElems), source = 0_pInt)
|
||||||
allocate(microstructures (1_pInt+maxIntCount), source = 1_pInt)
|
allocate(microstructures (1_pInt+maxDataPerLine), source = 1_pInt) ! prepare to receive counter and max data size
|
||||||
allocate(microGlobal(mesh_NcpElemsGlobal), source = 1_pInt)
|
allocate(microGlobal (mesh_NcpElemsGlobal), source = 1_pInt)
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! read in microstructures
|
! read in microstructures
|
||||||
|
@ -1307,7 +1315,7 @@ subroutine mesh_spectral_build_elements(fileUnit)
|
||||||
|
|
||||||
e = 0_pInt
|
e = 0_pInt
|
||||||
do while (e < mesh_NcpElemsGlobal .and. microstructures(1) > 0_pInt) ! fill expected number of elements, stop at end of data (or blank line!)
|
do while (e < mesh_NcpElemsGlobal .and. microstructures(1) > 0_pInt) ! fill expected number of elements, stop at end of data (or blank line!)
|
||||||
microstructures = IO_continuousIntValues(fileUnit,maxIntCount,dummyName,dummySet,0_pInt) ! get affected elements
|
microstructures = IO_continuousIntValues(fileUnit,maxDataPerLine,dummyName,dummySet,0_pInt) ! get affected elements
|
||||||
do i = 1_pInt,microstructures(1_pInt)
|
do i = 1_pInt,microstructures(1_pInt)
|
||||||
e = e+1_pInt ! valid element entry
|
e = e+1_pInt ! valid element entry
|
||||||
microGlobal(e) = microstructures(1_pInt+i)
|
microGlobal(e) = microstructures(1_pInt+i)
|
||||||
|
|
Loading…
Reference in New Issue