bugfix: calculation of size of postResults was wrong
This commit is contained in:
parent
2969a53338
commit
c36a5bdfbb
|
@ -743,8 +743,7 @@ function crystallite_postResults(ipc, ip, el)
|
|||
ipc !< grain index
|
||||
|
||||
real(pReal), dimension(1+ &
|
||||
1+plasticState(material_phaseAt(ipc,el))%sizePostResults + &
|
||||
sum(sourceState(material_phaseAt(ipc,el))%p(:)%sizePostResults)) :: &
|
||||
1+sum(sourceState(material_phaseAt(ipc,el))%p(:)%sizePostResults)) :: &
|
||||
crystallite_postResults
|
||||
integer :: &
|
||||
c
|
||||
|
@ -754,7 +753,7 @@ function crystallite_postResults(ipc, ip, el)
|
|||
crystallite_postResults(1) = 0.0_pReal ! header-like information (length)
|
||||
c = 1
|
||||
|
||||
crystallite_postResults(c+1) = real(plasticState(material_phaseAt(ipc,el))%sizePostResults,pReal) ! size of constitutive results
|
||||
crystallite_postResults(c+1) = real(sum(sourceState(material_phaseAt(ipc,el))%p(:)%sizePostResults),pReal) ! size of constitutive results
|
||||
c = c + 1
|
||||
if (size(crystallite_postResults)-c > 0) &
|
||||
crystallite_postResults(c+1:size(crystallite_postResults)) = &
|
||||
|
|
|
@ -255,8 +255,8 @@ subroutine homogenization_init
|
|||
thermal_maxSizePostResults = 0
|
||||
damage_maxSizePostResults = 0
|
||||
do p = 1,size(config_homogenization)
|
||||
thermal_maxSizePostResults = max(thermal_maxSizePostResults, thermalState (p)%sizePostResults)
|
||||
damage_maxSizePostResults = max(damage_maxSizePostResults ,damageState (p)%sizePostResults)
|
||||
thermal_maxSizePostResults = max(thermal_maxSizePostResults, thermalState(p)%sizePostResults)
|
||||
damage_maxSizePostResults = max(damage_maxSizePostResults, damageState (p)%sizePostResults)
|
||||
enddo
|
||||
|
||||
materialpoint_sizeResults = 1 & ! grain count
|
||||
|
@ -616,8 +616,8 @@ subroutine materialpoint_postResults
|
|||
|
||||
grainLooping :do g = 1,myNgrains
|
||||
theSize = 1 + &
|
||||
1 + plasticState (material_phaseAt(g,e))%sizePostResults + &
|
||||
sum(sourceState(material_phaseAt(g,e))%p(:)%sizePostResults)
|
||||
1 + &
|
||||
sum(sourceState(material_phaseAt(g,e))%p(:)%sizePostResults)
|
||||
materialpoint_results(thePos+1:thePos+theSize,i,e) = crystallite_postResults(g,i,e) ! tell crystallite results
|
||||
thePos = thePos + theSize
|
||||
enddo grainLooping
|
||||
|
|
|
@ -26,13 +26,9 @@ module plastic_nonlocal
|
|||
private
|
||||
real(pReal), parameter, private :: &
|
||||
KB = 1.38e-23_pReal !< Physical parameter, Boltzmann constant in J/Kelvin
|
||||
|
||||
integer, dimension(:,:), allocatable, target, public :: &
|
||||
plastic_nonlocal_sizePostResult !< size of each post result output
|
||||
|
||||
character(len=64), dimension(:,:), allocatable, target, public :: &
|
||||
plastic_nonlocal_output !< name of each post result output
|
||||
|
||||
|
||||
! storage order of dislocation types
|
||||
integer, dimension(8), parameter :: &
|
||||
|
@ -268,7 +264,6 @@ subroutine plastic_nonlocal_init
|
|||
allocate(deltaState(maxNinstances))
|
||||
allocate(microstructure(maxNinstances))
|
||||
|
||||
allocate(plastic_nonlocal_sizePostResult(maxval(phase_Noutput), maxNinstances), source=0)
|
||||
allocate(plastic_nonlocal_output(maxval(phase_Noutput), maxNinstances))
|
||||
plastic_nonlocal_output = ''
|
||||
allocate(plastic_nonlocal_outputID(maxval(phase_Noutput), maxNinstances), source=undefined_ID)
|
||||
|
@ -498,7 +493,6 @@ subroutine plastic_nonlocal_init
|
|||
|
||||
if (outputID /= undefined_ID) then
|
||||
plastic_nonlocal_output(i,phase_plasticityInstance(p)) = outputs(i)
|
||||
plastic_nonlocal_sizePostResult(i,phase_plasticityInstance(p)) = prm%totalNslip
|
||||
prm%outputID = [prm%outputID , outputID]
|
||||
endif
|
||||
|
||||
|
@ -524,7 +518,6 @@ subroutine plastic_nonlocal_init
|
|||
prm%totalNslip,0,0)
|
||||
plasticState(p)%nonlocal = .true.
|
||||
plasticState(p)%offsetDeltaState = 0 ! ToDo: state structure does not follow convention
|
||||
plasticState(p)%sizePostResults = sum(plastic_nonlocal_sizePostResult(:,phase_plasticityInstance(p)))
|
||||
|
||||
totalNslip(phase_plasticityInstance(p)) = prm%totalNslip
|
||||
|
||||
|
|
Loading…
Reference in New Issue