added possibility to output individual grain deformation gradient in homogenization_RGC.f90 and the homogenization.f90 has been modified accordingly. see material.config for the key-words to output the individual grain deformation gradient in the homogenization block.
This commit is contained in:
parent
1dcb80753c
commit
d344aaf3a0
|
@ -665,8 +665,9 @@ function homogenization_postResults(&
|
||||||
use prec, only: pReal,pInt
|
use prec, only: pReal,pInt
|
||||||
use mesh, only: mesh_element
|
use mesh, only: mesh_element
|
||||||
use material, only: homogenization_type
|
use material, only: homogenization_type
|
||||||
|
use crystallite, only: crystallite_partionedF
|
||||||
use homogenization_isostrain
|
use homogenization_isostrain
|
||||||
use homogenization_RGC ! RGC homogenization added <<<updated 31.07.2009>>>
|
use homogenization_RGC ! RGC homogenization added <<<updated 22.10.2009>>>
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
!* Definition of variables
|
!* Definition of variables
|
||||||
|
@ -678,9 +679,10 @@ function homogenization_postResults(&
|
||||||
!* isostrain
|
!* isostrain
|
||||||
case (homogenization_isostrain_label)
|
case (homogenization_isostrain_label)
|
||||||
homogenization_postResults = homogenization_isostrain_postResults(homogenization_state(ip,el),ip,el)
|
homogenization_postResults = homogenization_isostrain_postResults(homogenization_state(ip,el),ip,el)
|
||||||
!* RGC homogenization added <<<updated 31.07.2009>>>
|
!* RGC homogenization added <<<updated 22.10.2009>>>
|
||||||
case (homogenization_RGC_label)
|
case (homogenization_RGC_label)
|
||||||
homogenization_postResults = homogenization_RGC_postResults(homogenization_state(ip,el),ip,el)
|
homogenization_postResults = homogenization_RGC_postResults(crystallite_partionedF(:,:,:,ip,el), &
|
||||||
|
homogenization_state(ip,el),ip,el)
|
||||||
end select
|
end select
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
|
@ -125,6 +125,11 @@ subroutine homogenization_RGC_init(&
|
||||||
case('magnitudemismatch')
|
case('magnitudemismatch')
|
||||||
homogenization_RGC_sizePostResults(i) = &
|
homogenization_RGC_sizePostResults(i) = &
|
||||||
homogenization_RGC_sizePostResults(i) + 1
|
homogenization_RGC_sizePostResults(i) + 1
|
||||||
|
case('grainsdeformation')
|
||||||
|
homogenization_RGC_sizePostResults(i) = &
|
||||||
|
homogenization_RGC_sizePostResults(i) + 9_pInt*(homogenization_RGC_Ngrains(1,i)* &
|
||||||
|
homogenization_RGC_Ngrains(2,i)* &
|
||||||
|
homogenization_RGC_Ngrains(3,i))
|
||||||
end select
|
end select
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
@ -652,6 +657,7 @@ endfunction
|
||||||
! return array of homogenization results for post file inclusion
|
! return array of homogenization results for post file inclusion
|
||||||
!********************************************************************
|
!********************************************************************
|
||||||
pure function homogenization_RGC_postResults(&
|
pure function homogenization_RGC_postResults(&
|
||||||
|
F, & ! array of current grain deformation gradients
|
||||||
state, & ! my state
|
state, & ! my state
|
||||||
ip, & ! my integration point
|
ip, & ! my integration point
|
||||||
el & ! my element
|
el & ! my element
|
||||||
|
@ -659,14 +665,16 @@ pure function homogenization_RGC_postResults(&
|
||||||
|
|
||||||
use prec, only: pReal,pInt,p_vec
|
use prec, only: pReal,pInt,p_vec
|
||||||
use mesh, only: mesh_element
|
use mesh, only: mesh_element
|
||||||
use material, only: homogenization_typeInstance,homogenization_Noutput,homogenization_Ngrains
|
use material, only: homogenization_typeInstance,homogenization_Noutput,homogenization_Ngrains, &
|
||||||
|
homogenization_maxNgrains
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
!* Definition of variables
|
!* Definition of variables
|
||||||
|
real(pReal), dimension (3,3,homogenization_maxNgrains), intent(in) :: F
|
||||||
type(p_vec), intent(in) :: state
|
type(p_vec), intent(in) :: state
|
||||||
integer(pInt), intent(in) :: ip,el
|
integer(pInt), intent(in) :: ip,el
|
||||||
!
|
!
|
||||||
integer(pInt) homID,o,c,nIntFaceTot
|
integer(pInt) homID,o,c,nIntFaceTot,i,j,k
|
||||||
real(pReal), dimension(homogenization_RGC_sizePostResults(homogenization_typeInstance(mesh_element(3,el)))) :: &
|
real(pReal), dimension(homogenization_RGC_sizePostResults(homogenization_typeInstance(mesh_element(3,el)))) :: &
|
||||||
homogenization_RGC_postResults
|
homogenization_RGC_postResults
|
||||||
|
|
||||||
|
@ -688,6 +696,15 @@ pure function homogenization_RGC_postResults(&
|
||||||
case('magnitudemismatch')
|
case('magnitudemismatch')
|
||||||
homogenization_RGC_postResults(c+1) = state%p(3*nIntFaceTot+3)
|
homogenization_RGC_postResults(c+1) = state%p(3*nIntFaceTot+3)
|
||||||
c = c + 1
|
c = c + 1
|
||||||
|
case('grainsdeformation')
|
||||||
|
do k = 1,homogenization_RGC_Ngrains(1,homID)*homogenization_RGC_Ngrains(2,homID)*homogenization_RGC_Ngrains(3,homID)
|
||||||
|
do i = 1,3
|
||||||
|
do j = 1,3
|
||||||
|
homogenization_RGC_postResults(c+1) = F(i,j,k)
|
||||||
|
c = c + 1
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
end select
|
end select
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
|
|
@ -12,11 +12,12 @@ Ngrains 1
|
||||||
type RGC
|
type RGC
|
||||||
ngrains 8
|
ngrains 8
|
||||||
clustersize 2 2 2 # product of these numbers must be equal to ngrains(!)
|
clustersize 2 2 2 # product of these numbers must be equal to ngrains(!)
|
||||||
grainsizeparameter 3.2e+3 3.2e+3 3.2e+3 # 3.9e3 3.6e3 3.9e3
|
grainsizeparameter 3.2e+3 3.2e+3 3.2e+3
|
||||||
overproportionality 1.6e+0 1.6e+0 1.6e+0 # 1.6e0 1.6e0 1.6e0
|
overproportionality 1.6e+0 1.6e+0 1.6e+0
|
||||||
(output) constitutivework
|
(output) constitutivework
|
||||||
(output) penaltyenergy
|
(output) penaltyenergy
|
||||||
(output) magnitudemismatch
|
(output) magnitudemismatch
|
||||||
|
(output) grainsdeformation # warning: tensorial output, size = ngrains x 3 x 3 components
|
||||||
|
|
||||||
[Taylor2]
|
[Taylor2]
|
||||||
type isostrain
|
type isostrain
|
||||||
|
|
Loading…
Reference in New Issue