Initialization, allocation and computation of hardening matrices reviewed.
This commit is contained in:
parent
b0279435e3
commit
1aef23baf7
|
@ -303,7 +303,7 @@ do while(.true.)
|
||||||
material_s_sat(section)=IO_floatValue(line,positions,2)
|
material_s_sat(section)=IO_floatValue(line,positions,2)
|
||||||
case ('w0')
|
case ('w0')
|
||||||
material_w0(section)=IO_floatValue(line,positions,2)
|
material_w0(section)=IO_floatValue(line,positions,2)
|
||||||
case ('hardening_coefficients')
|
case ('hardening_coefficient')
|
||||||
do i=1,crystal_MaxMaxNslipOfStructure
|
do i=1,crystal_MaxMaxNslipOfStructure
|
||||||
material_SlipIntCoeff(i,section)=IO_floatValue(line,positions,i+1)
|
material_SlipIntCoeff(i,section)=IO_floatValue(line,positions,i+1)
|
||||||
enddo
|
enddo
|
||||||
|
@ -415,7 +415,7 @@ subroutine constitutive_Parse_MatTexDat(filename)
|
||||||
use prec, only: pReal,pInt
|
use prec, only: pReal,pInt
|
||||||
use IO, only: IO_error, IO_open_file
|
use IO, only: IO_error, IO_open_file
|
||||||
use math, only: math_Mandel3333to66, math_Voigt66to3333
|
use math, only: math_Mandel3333to66, math_Voigt66to3333
|
||||||
use crystal, only: crystal_MaxMaxNslipOfStructure
|
use crystal, only: crystal_SlipIntType
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
!* Definition of variables
|
!* Definition of variables
|
||||||
|
@ -456,7 +456,7 @@ allocate(material_n_slip(material_maxN)) ; material_n_slip=0.0_pReal
|
||||||
allocate(material_h0(material_maxN)) ; material_h0=0.0_pReal
|
allocate(material_h0(material_maxN)) ; material_h0=0.0_pReal
|
||||||
allocate(material_s_sat(material_maxN)) ; material_s_sat=0.0_pReal
|
allocate(material_s_sat(material_maxN)) ; material_s_sat=0.0_pReal
|
||||||
allocate(material_w0(material_maxN)) ; material_w0=0.0_pReal
|
allocate(material_w0(material_maxN)) ; material_w0=0.0_pReal
|
||||||
allocate(material_SlipIntCoeff(crystal_MaxMaxNslipOfStructure,material_maxN)) ; material_SlipIntCoeff=0.0_pReal
|
allocate(material_SlipIntCoeff(maxval(crystal_SlipIntType),material_maxN)) ; material_SlipIntCoeff=0.0_pReal
|
||||||
allocate(texture_ODFfile(texture_maxN)) ; texture_ODFfile=''
|
allocate(texture_ODFfile(texture_maxN)) ; texture_ODFfile=''
|
||||||
allocate(texture_Ngrains(texture_maxN)) ; texture_Ngrains=0_pInt
|
allocate(texture_Ngrains(texture_maxN)) ; texture_Ngrains=0_pInt
|
||||||
allocate(texture_symmetry(texture_maxN)) ; texture_symmetry=''
|
allocate(texture_symmetry(texture_maxN)) ; texture_symmetry=''
|
||||||
|
@ -592,7 +592,8 @@ enddo
|
||||||
|
|
||||||
!* publish globals
|
!* publish globals
|
||||||
constitutive_maxNgrains = maxval(texture_Ngrains)
|
constitutive_maxNgrains = maxval(texture_Ngrains)
|
||||||
constitutive_maxNstatevars = maxval(material_Nslip) + 0_pInt
|
material_maxNslip = maxval(material_Nslip) ! max # of slip systems among materials present
|
||||||
|
constitutive_maxNstatevars = material_maxNslip + 0_pInt
|
||||||
constitutive_maxNresults = 1_pInt
|
constitutive_maxNresults = 1_pInt
|
||||||
|
|
||||||
|
|
||||||
|
@ -625,7 +626,7 @@ allocate(constitutive_state_old(constitutive_maxNstatevars,constitutive_maxNgrai
|
||||||
constitutive_state_old=0.0_pReal
|
constitutive_state_old=0.0_pReal
|
||||||
allocate(constitutive_state_new(constitutive_maxNstatevars,constitutive_maxNgrains,mesh_maxNips,mesh_NcpElems))
|
allocate(constitutive_state_new(constitutive_maxNstatevars,constitutive_maxNgrains,mesh_maxNips,mesh_NcpElems))
|
||||||
constitutive_state_new=0.0_pReal
|
constitutive_state_new=0.0_pReal
|
||||||
allocate(constitutive_HardeningMatrix(constitutive_maxNstatevars,constitutive_maxNstatevars,material_maxN))
|
allocate(constitutive_HardeningMatrix(material_maxNslip,material_maxNslip,material_maxN))
|
||||||
constitutive_HardeningMatrix=0.0_pReal
|
constitutive_HardeningMatrix=0.0_pReal
|
||||||
|
|
||||||
!* Assignment of all grains in all IPs of all cp-elements
|
!* Assignment of all grains in all IPs of all cp-elements
|
||||||
|
@ -687,19 +688,10 @@ enddo ! cp_element
|
||||||
!* Construction of the hardening matrices
|
!* Construction of the hardening matrices
|
||||||
do i=1,material_maxN
|
do i=1,material_maxN
|
||||||
!* Iteration over the systems
|
!* Iteration over the systems
|
||||||
do j=1,constitutive_maxNstatevars
|
do j=1,material_Nslip(i)
|
||||||
do k=1,constitutive_maxNstatevars
|
do k=1,material_Nslip(i)
|
||||||
!* Hardening type *
|
!* min function is used to distinguish self hardening from latent hardening
|
||||||
do l=1,constitutive_maxNstatevars
|
constitutive_HardeningMatrix(k,j,i) = material_SlipIntCoeff(min(2,crystal_SlipIntType(k,j,i)),i)
|
||||||
if (crystal_SlipIntType(j,k,i)==0) then
|
|
||||||
K_inter=0.0_pReal
|
|
||||||
elseif (crystal_SlipIntType(j,k,i)==1) then
|
|
||||||
K_inter=material_SlipIntCoeff(1,i)
|
|
||||||
else
|
|
||||||
K_inter=material_SlipIntCoeff(2,i)
|
|
||||||
endif
|
|
||||||
enddo
|
|
||||||
constitutive_HardeningMatrix(j,k,i)=K_inter
|
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
Loading…
Reference in New Issue