moved field initialization from homogenization to material since it is needed in crystallite
This commit is contained in:
parent
6ace12be0c
commit
f6c0f7062e
|
@ -118,7 +118,7 @@ subroutine homogenization_init()
|
|||
|
||||
implicit none
|
||||
integer(pInt), parameter :: FILEUNIT = 200_pInt
|
||||
integer(pInt) :: e,i,p,myInstance, NofMyField
|
||||
integer(pInt) :: e,i,p,myInstance
|
||||
integer(pInt), dimension(:,:), pointer :: thisSize
|
||||
character(len=64), dimension(:,:), pointer :: thisOutput
|
||||
character(len=32) :: outputName !< name of output, intermediate fix until HDF5 output is ready
|
||||
|
@ -174,44 +174,6 @@ subroutine homogenization_init()
|
|||
enddo
|
||||
close(FILEUNIT)
|
||||
|
||||
do p = 1,material_Nhomogenization
|
||||
NofMyField=count(material_homog==p)
|
||||
|
||||
select case(field_damage_type(p))
|
||||
|
||||
case (FIELD_DAMAGE_LOCAL_ID)
|
||||
fieldDamage(p)%sizeField = 0_pInt
|
||||
fieldDamage(p)%sizePostResults = 0_pInt
|
||||
allocate(fieldDamage(p)%field(fieldDamage(p)%sizeField,NofMyField), source = 1.0_pReal)
|
||||
|
||||
case (FIELD_DAMAGE_NONLOCAL_ID)
|
||||
fieldDamage(p)%sizeField = 1_pInt
|
||||
fieldDamage(p)%sizePostResults = 1_pInt
|
||||
allocate(fieldDamage(p)%field(fieldDamage(p)%sizeField,NofMyField), source = 1.0_pReal)
|
||||
|
||||
end select
|
||||
enddo
|
||||
|
||||
do p = 1,material_Nhomogenization
|
||||
NofMyField=count(material_homog==p)
|
||||
|
||||
select case(field_thermal_type(p))
|
||||
|
||||
case (FIELD_THERMAL_ADIABATIC_ID)
|
||||
fieldThermal(p)%sizeField = 0_pInt
|
||||
fieldThermal(p)%sizePostResults = 0_pInt
|
||||
allocate(fieldThermal(p)%field(fieldThermal(p)%sizeField,NofMyField), &
|
||||
source = 273.0_pReal) ! ToDo: temporary fix for now
|
||||
|
||||
case (FIELD_THERMAL_CONDUCTION_ID)
|
||||
fieldThermal(p)%sizeField = 1_pInt
|
||||
fieldThermal(p)%sizePostResults = 1_pInt
|
||||
allocate(fieldThermal(p)%field(fieldThermal(p)%sizeField,NofMyField), &
|
||||
source = 273.0_pReal) ! ToDo: temporary fix for now
|
||||
|
||||
end select
|
||||
enddo
|
||||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
! allocate and initialize global variables
|
||||
allocate(homogenization_sizePostResults(mesh_maxNips,mesh_NcpElems), source=0_pInt)
|
||||
|
|
|
@ -199,11 +199,6 @@ module material
|
|||
integer(pInt), dimension(:,:,:), allocatable, public, protected :: mappingCrystallite
|
||||
integer(pInt), dimension(:,:,:), allocatable, public, protected :: mappingHomogenization
|
||||
|
||||
integer(pInt), dimension(:), allocatable :: ConstitutivePosition
|
||||
integer(pInt), dimension(:), allocatable :: CrystallitePosition
|
||||
integer(pInt), dimension(:), allocatable :: HomogenizationPosition
|
||||
|
||||
|
||||
public :: &
|
||||
material_init, &
|
||||
ELASTICITY_hooke_ID ,&
|
||||
|
@ -271,7 +266,13 @@ subroutine material_init
|
|||
g, & !< grain number
|
||||
i, & !< integration point number
|
||||
e, & !< element number
|
||||
phase
|
||||
phase, &
|
||||
homog, &
|
||||
NofMyField
|
||||
integer(pInt), dimension(:), allocatable :: ConstitutivePosition
|
||||
integer(pInt), dimension(:), allocatable :: CrystallitePosition
|
||||
integer(pInt), dimension(:), allocatable :: HomogenizationPosition
|
||||
|
||||
myDebug = debug_level(debug_material)
|
||||
|
||||
write(6,'(/,a)') ' <<<+- material init -+>>>'
|
||||
|
@ -359,6 +360,40 @@ subroutine material_init
|
|||
enddo IPloop
|
||||
enddo ElemLoop
|
||||
|
||||
do homog = 1,material_Nhomogenization
|
||||
NofMyField=count(material_homog==homog)
|
||||
select case(field_damage_type(homog))
|
||||
case (FIELD_DAMAGE_LOCAL_ID)
|
||||
fieldDamage(homog)%sizeField = 0_pInt
|
||||
fieldDamage(homog)%sizePostResults = 0_pInt
|
||||
allocate(fieldDamage(homog)%field(fieldDamage(homog)%sizeField,NofMyField), source = 1.0_pReal)
|
||||
|
||||
case (FIELD_DAMAGE_NONLOCAL_ID)
|
||||
fieldDamage(homog)%sizeField = 1_pInt
|
||||
fieldDamage(homog)%sizePostResults = 1_pInt
|
||||
allocate(fieldDamage(homog)%field(fieldDamage(homog)%sizeField,NofMyField), source = 1.0_pReal)
|
||||
|
||||
end select
|
||||
enddo
|
||||
|
||||
do homog = 1,material_Nhomogenization
|
||||
NofMyField=count(material_homog==homog)
|
||||
select case(field_thermal_type(homog))
|
||||
case (FIELD_THERMAL_ADIABATIC_ID)
|
||||
fieldThermal(homog)%sizeField = 0_pInt
|
||||
fieldThermal(homog)%sizePostResults = 0_pInt
|
||||
allocate(fieldThermal(homog)%field(fieldThermal(homog)%sizeField,NofMyField), &
|
||||
source = 300.0_pReal) ! ToDo: temporary fix for now
|
||||
|
||||
case (FIELD_THERMAL_CONDUCTION_ID)
|
||||
fieldThermal(homog)%sizeField = 1_pInt
|
||||
fieldThermal(homog)%sizePostResults = 1_pInt
|
||||
allocate(fieldThermal(homog)%field(fieldThermal(homog)%sizeField,NofMyField), &
|
||||
source = 300.0_pReal) ! ToDo: temporary fix for now
|
||||
|
||||
end select
|
||||
enddo
|
||||
|
||||
end subroutine material_init
|
||||
|
||||
|
||||
|
@ -989,9 +1024,9 @@ subroutine material_populateGrains
|
|||
real(pReal), dimension (3) :: orientation
|
||||
real(pReal), dimension (3,3) :: symOrientation
|
||||
integer(pInt), dimension (:), allocatable :: phaseOfGrain, textureOfGrain
|
||||
integer(pInt) :: t,e,i,ii,g,j,m,c,r,homog,micro,sgn,hme, myDebug, &
|
||||
integer(pInt) :: t,e,i,g,j,m,c,r,homog,micro,sgn,hme, myDebug, &
|
||||
phaseID,textureID,dGrains,myNgrains,myNorientations,myNconstituents, &
|
||||
grain,constituentGrain,ipGrain,symExtension, ip, HomogInstType
|
||||
grain,constituentGrain,ipGrain,symExtension, ip
|
||||
real(pReal) :: extreme,rnd
|
||||
integer(pInt), dimension (:,:), allocatable :: Nelems ! counts number of elements in homog, micro array
|
||||
type(p_intvec), dimension (:,:), allocatable :: elemsOfHomogMicro ! lists element number in homog, micro array
|
||||
|
|
Loading…
Reference in New Issue