corrected error in previous commit
This commit is contained in:
parent
50db944c0c
commit
8444b4116d
|
@ -473,7 +473,7 @@ subroutine BasicPETSC_formResidual(in,x_scal,f_scal,dummy,ierr)
|
||||||
materialpoint_heat, &
|
materialpoint_heat, &
|
||||||
materialpoint_P
|
materialpoint_P
|
||||||
use constitutive, only: &
|
use constitutive, only: &
|
||||||
constitutive_damage
|
crystallite_damage
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
DMDALocalInfo, dimension(DMDA_LOCAL_INFO_SIZE) :: &
|
DMDALocalInfo, dimension(DMDA_LOCAL_INFO_SIZE) :: &
|
||||||
|
@ -538,15 +538,19 @@ subroutine BasicPETSC_formResidual(in,x_scal,f_scal,dummy,ierr)
|
||||||
if(params%phaseFieldData(i)%label == 'thermal') &
|
if(params%phaseFieldData(i)%label == 'thermal') &
|
||||||
crystallite_temperature(1,1_pInt:product(grid)) = &
|
crystallite_temperature(1,1_pInt:product(grid)) = &
|
||||||
reshape(x_scal(9+i,1:grid(1),1:grid(2),1:grid(3)),[product(grid)])
|
reshape(x_scal(9+i,1:grid(1),1:grid(2),1:grid(3)),[product(grid)])
|
||||||
if(params%phaseFieldData(i)%label == 'fracture') &
|
|
||||||
constitutive_damage(1,1,1:product(grid)) = &
|
|
||||||
reshape(x_scal(9+i,1:grid(1),1:grid(2),1:grid(3)),[product(grid)])
|
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
call Utilities_constitutiveResponse(F_lastInc,F,params%temperature,params%timeinc, &
|
call Utilities_constitutiveResponse(F_lastInc,F,params%temperature,params%timeinc, &
|
||||||
residual_F,C_volAvg,C_minmaxAvg,P_av,ForwardData,params%rotation_BC)
|
residual_F,C_volAvg,C_minmaxAvg,P_av,ForwardData,params%rotation_BC)
|
||||||
ForwardData = .false.
|
ForwardData = .false.
|
||||||
|
|
||||||
|
do i = 1, params%nActivePhaseFields
|
||||||
|
if(params%phaseFieldData(i)%label == 'fracture') &
|
||||||
|
residual_F = residual_F * spread(x_scal(9+i,1:grid(1),1:grid(2),1:grid(3)),dim=1,ncopies=9)
|
||||||
|
enddo
|
||||||
|
write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') ' stress (MPa) =', &
|
||||||
|
math_transpose33(sum(sum(sum(residual_F,dim=4),dim=3),dim=2)*wgt/1e6)
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! stress BC handling
|
! stress BC handling
|
||||||
F_aim_lastIter = F_aim
|
F_aim_lastIter = F_aim
|
||||||
|
@ -596,11 +600,12 @@ subroutine BasicPETSC_formResidual(in,x_scal,f_scal,dummy,ierr)
|
||||||
phaseField_Avg(i) = sum(x_scal(9+i,1:grid(1),1:grid(2),1:grid(3)))*wgt
|
phaseField_Avg(i) = sum(x_scal(9+i,1:grid(1),1:grid(2),1:grid(3)))*wgt
|
||||||
|
|
||||||
case ('fracture')
|
case ('fracture')
|
||||||
|
|
||||||
phaseField_real = 0.0_pReal
|
phaseField_real = 0.0_pReal
|
||||||
phaseField_real(1:grid(1),1:grid(2),1:grid(3)) = &
|
phaseField_real(1:grid(1),1:grid(2),1:grid(3)) = &
|
||||||
phaseField_lastInc(i,1:grid(1),1:grid(2),1:grid(3))
|
phaseField_lastInc(i,1:grid(1),1:grid(2),1:grid(3))
|
||||||
call utilities_scalarFFTforward()
|
call utilities_scalarFFTforward()
|
||||||
call utilities_diffusion(0.5_pReal*maxval(geomSize/real(grid,pReal))* &
|
call utilities_diffusion(2.0_pReal*maxval(geomSize/real(grid,pReal))* &
|
||||||
params%phaseFieldData(i)%diffusion,params%timeinc)
|
params%phaseFieldData(i)%diffusion,params%timeinc)
|
||||||
call utilities_scalarFFTbackward()
|
call utilities_scalarFFTbackward()
|
||||||
f_scal(9+i,1:grid(1),1:grid(2),1:grid(3)) = &
|
f_scal(9+i,1:grid(1),1:grid(2),1:grid(3)) = &
|
||||||
|
@ -611,7 +616,7 @@ subroutine BasicPETSC_formResidual(in,x_scal,f_scal,dummy,ierr)
|
||||||
sum(residual_F* &
|
sum(residual_F* &
|
||||||
(F-reshape(spread(spread(spread(math_I3,3,grid(1)),4,grid(2)),5,grid(3)),[9,grid(1),grid(2),grid(3)])),dim=1) &
|
(F-reshape(spread(spread(spread(math_I3,3,grid(1)),4,grid(2)),5,grid(3)),[9,grid(1),grid(2),grid(3)])),dim=1) &
|
||||||
- params%phaseFieldData(i)%diffusion*(x_scal(9+i,1:grid(1),1:grid(2),1:grid(3)) - 1.0_pReal)/ &
|
- params%phaseFieldData(i)%diffusion*(x_scal(9+i,1:grid(1),1:grid(2),1:grid(3)) - 1.0_pReal)/ &
|
||||||
2.0_pReal/maxval(geomSize/real(grid,pReal))
|
8.0_pReal/maxval(geomSize/real(grid,pReal))
|
||||||
phaseField_real = 0.0_pReal
|
phaseField_real = 0.0_pReal
|
||||||
phaseField_real(1:grid(1),1:grid(2),1:grid(3)) = &
|
phaseField_real(1:grid(1),1:grid(2),1:grid(3)) = &
|
||||||
params%timeinc*params%phaseFieldData(i)%mobility* &
|
params%timeinc*params%phaseFieldData(i)%mobility* &
|
||||||
|
|
Loading…
Reference in New Issue