avoid global variables
This commit is contained in:
parent
5e4815cddf
commit
a1ab526456
|
@ -1571,7 +1571,7 @@ subroutine crystallite_restartWrite
|
|||
call HDF5_closeGroup(groupHandle)
|
||||
|
||||
groupHandle = HDF5_addGroup(fileHandle,'materialpoint')
|
||||
do i = 1, material_Nhomogenization
|
||||
do i = 1, size(material_name_homogenization)
|
||||
write(datasetName,'(i0,a)') i,'_omega_homogenization'
|
||||
call HDF5_write(groupHandle,homogState(i)%state,datasetName)
|
||||
enddo
|
||||
|
@ -1612,7 +1612,7 @@ subroutine crystallite_restartRead
|
|||
call HDF5_closeGroup(groupHandle)
|
||||
|
||||
groupHandle = HDF5_openGroup(fileHandle,'materialpoint')
|
||||
do i = 1, material_Nhomogenization
|
||||
do i = 1,size(material_name_homogenization)
|
||||
write(datasetName,'(i0,a)') i,'_omega_homogenization'
|
||||
call HDF5_read(groupHandle,homogState(i)%state0,datasetName)
|
||||
enddo
|
||||
|
@ -1645,7 +1645,7 @@ subroutine crystallite_forward
|
|||
do j = 1,phase_Nsources(i)
|
||||
sourceState(i)%p(j)%state0 = sourceState(i)%p(j)%state
|
||||
enddo; enddo
|
||||
do i = 1, material_Nhomogenization
|
||||
do i = 1,size(material_name_homogenization)
|
||||
homogState (i)%state0 = homogState (i)%state
|
||||
thermalState(i)%state0 = thermalState(i)%state
|
||||
damageState (i)%state0 = damageState (i)%state
|
||||
|
|
|
@ -20,7 +20,7 @@ subroutine damage_none_init
|
|||
|
||||
print'(/,a)', ' <<<+- damage_none init -+>>>'; flush(6)
|
||||
|
||||
do h = 1, material_Nhomogenization
|
||||
do h = 1, size(material_name_homogenization)
|
||||
if (damage_type(h) /= DAMAGE_NONE_ID) cycle
|
||||
|
||||
NofMyHomog = count(material_homogenizationAt == h)
|
||||
|
|
|
@ -210,7 +210,7 @@ program DAMASK_grid
|
|||
if(.not. step_discretization%contains('t')) call IO_error(error_ID=837,ext_msg = 't missing')
|
||||
if(.not. step_discretization%contains('N')) call IO_error(error_ID=837,ext_msg = 'N missing')
|
||||
loadCases(l)%time = step_discretization%get_asFloat('t')
|
||||
loadCases(l)%incs = step_discretization%get_asFloat('N')
|
||||
loadCases(l)%incs = step_discretization%get_asInt ('N')
|
||||
loadCases(l)%logscale = step_discretization%get_asBool ('log_timestep', defaultVal= .false.)
|
||||
loadCases(l)%outputfrequency = step_discretization%get_asInt ('f_out', defaultVal=1)
|
||||
loadCases(l)%restartfrequency = step_discretization%get_asInt ('f_restart', defaultVal=huge(0))
|
||||
|
|
|
@ -63,9 +63,6 @@ module material
|
|||
integer(kind(HOMOGENIZATION_undefined_ID)), dimension(:), allocatable, public, protected :: &
|
||||
homogenization_type !< type of each homogenization
|
||||
|
||||
integer, public, protected :: &
|
||||
material_Nhomogenization !< number of homogenizations
|
||||
|
||||
integer, public, protected :: &
|
||||
homogenization_maxNconstituent !< max number of grains in any USED homogenization
|
||||
|
||||
|
@ -83,7 +80,7 @@ module material
|
|||
material_homogenizationAt !< homogenization ID of each element
|
||||
integer, dimension(:,:), allocatable, public, target :: & ! (ip,elem) ToDo: ugly target for mapping hack
|
||||
material_homogenizationMemberAt !< position of the element within its homogenization instance
|
||||
integer, dimension(:,:), allocatable, public, protected :: & ! (constituent,elem)
|
||||
integer, dimension(:,:), allocatable, public, protected :: & ! (constituent,elem)
|
||||
material_phaseAt !< phase ID of each element
|
||||
integer, dimension(:,:,:), allocatable, public, protected :: & ! (constituent,IP,elem)
|
||||
material_phaseMemberAt !< position of the element within its phase instance
|
||||
|
@ -185,17 +182,17 @@ subroutine material_init(restart)
|
|||
|
||||
if(homogenization_maxNconstituent > size(material_phaseAt,1)) call IO_error(148)
|
||||
|
||||
allocate(homogState (material_Nhomogenization))
|
||||
allocate(thermalState (material_Nhomogenization))
|
||||
allocate(damageState (material_Nhomogenization))
|
||||
allocate(homogState (size(material_name_homogenization)))
|
||||
allocate(thermalState (size(material_name_homogenization)))
|
||||
allocate(damageState (size(material_name_homogenization)))
|
||||
|
||||
allocate(thermalMapping (material_Nhomogenization))
|
||||
allocate(damageMapping (material_Nhomogenization))
|
||||
allocate(thermalMapping (size(material_name_homogenization)))
|
||||
allocate(damageMapping (size(material_name_homogenization)))
|
||||
|
||||
allocate(temperature (material_Nhomogenization))
|
||||
allocate(damage (material_Nhomogenization))
|
||||
allocate(temperature (size(material_name_homogenization)))
|
||||
allocate(damage (size(material_name_homogenization)))
|
||||
|
||||
allocate(temperatureRate (material_Nhomogenization))
|
||||
allocate(temperatureRate (size(material_name_homogenization)))
|
||||
|
||||
|
||||
if (.not. restart) then
|
||||
|
@ -210,7 +207,7 @@ subroutine material_init(restart)
|
|||
allocate(mappingHomogenizationConst( discretization_nIP,discretization_nElem),source=1)
|
||||
|
||||
! hack needed to initialize field values used during constitutive initialization
|
||||
do myHomog = 1,material_Nhomogenization
|
||||
do myHomog = 1, size(material_name_homogenization)
|
||||
thermalMapping (myHomog)%p => mappingHomogenizationConst
|
||||
damageMapping (myHomog)%p => mappingHomogenizationConst
|
||||
allocate(temperature (myHomog)%p(1), source=thermal_initialT(myHomog))
|
||||
|
@ -234,12 +231,11 @@ subroutine material_parseNconstituent
|
|||
integer :: h
|
||||
|
||||
material_homogenization => config_material%get('homogenization')
|
||||
material_Nhomogenization = material_homogenization%length
|
||||
|
||||
allocate(homogenization_Nconstituent(material_Nhomogenization))
|
||||
allocate(homogenization_Nconstituent(size(material_name_homogenization)))
|
||||
|
||||
|
||||
do h=1, material_Nhomogenization
|
||||
do h=1, size(material_name_homogenization)
|
||||
homog => material_homogenization%get(h)
|
||||
homogenization_Nconstituent(h) = homog%get_asInt('N_constituents')
|
||||
enddo
|
||||
|
@ -266,19 +262,18 @@ subroutine material_parseHomogenization
|
|||
|
||||
material_homogenization => config_material%get('homogenization')
|
||||
|
||||
allocate(homogenization_type(material_Nhomogenization), source=HOMOGENIZATION_undefined_ID)
|
||||
allocate(thermal_type(material_Nhomogenization), source=THERMAL_isothermal_ID)
|
||||
allocate(damage_type (material_Nhomogenization), source=DAMAGE_none_ID)
|
||||
allocate(homogenization_typeInstance(material_Nhomogenization), source=0)
|
||||
allocate(thermal_typeInstance(material_Nhomogenization), source=0)
|
||||
allocate(damage_typeInstance(material_Nhomogenization), source=0)
|
||||
allocate(thermal_initialT(material_Nhomogenization), source=300.0_pReal)
|
||||
allocate(damage_initialPhi(material_Nhomogenization), source=1.0_pReal)
|
||||
allocate(homogenization_type(size(material_name_homogenization)), source=HOMOGENIZATION_undefined_ID)
|
||||
allocate(thermal_type(size(material_name_homogenization)), source=THERMAL_isothermal_ID)
|
||||
allocate(damage_type (size(material_name_homogenization)), source=DAMAGE_none_ID)
|
||||
allocate(homogenization_typeInstance(size(material_name_homogenization)), source=0)
|
||||
allocate(thermal_typeInstance(size(material_name_homogenization)), source=0)
|
||||
allocate(damage_typeInstance(size(material_name_homogenization)), source=0)
|
||||
allocate(thermal_initialT(size(material_name_homogenization)), source=300.0_pReal)
|
||||
allocate(damage_initialPhi(size(material_name_homogenization)), source=1.0_pReal)
|
||||
|
||||
do h=1, material_Nhomogenization
|
||||
do h=1, size(material_name_homogenization)
|
||||
homog => material_homogenization%get(h)
|
||||
homogMech => homog%get('mech')
|
||||
homogenization_Nconstituent(h) = homog%get_asInt('N_constituents')
|
||||
select case (homogMech%get_asString('type'))
|
||||
case('none')
|
||||
homogenization_type(h) = HOMOGENIZATION_NONE_ID
|
||||
|
@ -324,7 +319,7 @@ subroutine material_parseHomogenization
|
|||
endif
|
||||
enddo
|
||||
|
||||
do h=1, material_Nhomogenization
|
||||
do h=1, size(material_name_homogenization)
|
||||
homogenization_typeInstance(h) = count(homogenization_type(1:h) == homogenization_type(h))
|
||||
thermal_typeInstance(h) = count(thermal_type (1:h) == thermal_type (h))
|
||||
damage_typeInstance(h) = count(damage_type (1:h) == damage_type (h))
|
||||
|
@ -387,7 +382,6 @@ subroutine material_parseMaterial
|
|||
allocate(material_orientation0(maxNconstituents,discretization_nIP,discretization_nElem))
|
||||
|
||||
|
||||
|
||||
do e = 1, discretization_nElem
|
||||
material => materials%get(discretization_materialAt(e))
|
||||
constituents => material%get('constituents')
|
||||
|
|
|
@ -54,7 +54,7 @@ subroutine thermal_adiabatic_init
|
|||
allocate(param(maxNinstance))
|
||||
|
||||
material_homogenization => config_material%get('homogenization')
|
||||
do h = 1, material_Nhomogenization
|
||||
do h = 1, size(material_name_homogenization)
|
||||
if (thermal_type(h) /= THERMAL_adiabatic_ID) cycle
|
||||
homog => material_homogenization%get(h)
|
||||
homogThermal => homog%get('thermal')
|
||||
|
|
|
@ -53,7 +53,7 @@ subroutine thermal_conduction_init
|
|||
allocate(param(Ninstance))
|
||||
|
||||
material_homogenization => config_material%get('homogenization')
|
||||
do h = 1, material_Nhomogenization
|
||||
do h = 1, size(material_name_homogenization)
|
||||
if (thermal_type(h) /= THERMAL_conduction_ID) cycle
|
||||
homog => material_homogenization%get(h)
|
||||
homogThermal => homog%get('thermal')
|
||||
|
|
|
@ -20,7 +20,7 @@ subroutine thermal_isothermal_init
|
|||
|
||||
print'(/,a)', ' <<<+- thermal_isothermal init -+>>>'; flush(6)
|
||||
|
||||
do h = 1, material_Nhomogenization
|
||||
do h = 1, size(material_name_homogenization)
|
||||
if (thermal_type(h) /= THERMAL_isothermal_ID) cycle
|
||||
|
||||
NofMyHomog = count(material_homogenizationAt == h)
|
||||
|
|
Loading…
Reference in New Issue