introduced dummy temperature calculation.
This commit is contained in:
parent
3ecc8103f0
commit
ea664688f8
|
@ -75,7 +75,8 @@ program DAMASK_spectral_Driver
|
||||||
geomSize, &
|
geomSize, &
|
||||||
tBoundaryCondition, &
|
tBoundaryCondition, &
|
||||||
tSolutionState, &
|
tSolutionState, &
|
||||||
cutBack
|
cutBack, &
|
||||||
|
utilities_temperatureUpdate
|
||||||
use DAMASK_spectral_SolverBasic
|
use DAMASK_spectral_SolverBasic
|
||||||
#ifdef PETSc
|
#ifdef PETSc
|
||||||
use DAMASK_spectral_SolverBasicPETSC
|
use DAMASK_spectral_SolverBasicPETSC
|
||||||
|
@ -522,7 +523,7 @@ program DAMASK_spectral_Driver
|
||||||
' increment ', totalIncsCounter, ' NOT converged'
|
' increment ', totalIncsCounter, ' NOT converged'
|
||||||
notConvergedCounter = notConvergedCounter + 1_pInt
|
notConvergedCounter = notConvergedCounter + 1_pInt
|
||||||
endif; flush(6)
|
endif; flush(6)
|
||||||
|
call utilities_temperatureUpdate()
|
||||||
if (mod(inc,loadCases(currentLoadCase)%outputFrequency) == 0_pInt) then ! at output frequency
|
if (mod(inc,loadCases(currentLoadCase)%outputFrequency) == 0_pInt) then ! at output frequency
|
||||||
write(6,'(1/,a)') ' ... writing results to file ......................................'
|
write(6,'(1/,a)') ' ... writing results to file ......................................'
|
||||||
write(resUnit) materialpoint_results ! write result to file
|
write(resUnit) materialpoint_results ! write result to file
|
||||||
|
|
|
@ -109,7 +109,8 @@ module DAMASK_spectral_utilities
|
||||||
utilities_constitutiveResponse, &
|
utilities_constitutiveResponse, &
|
||||||
utilities_calculateRate, &
|
utilities_calculateRate, &
|
||||||
utilities_forwardField, &
|
utilities_forwardField, &
|
||||||
utilities_destroy
|
utilities_destroy, &
|
||||||
|
utilities_temperatureUpdate
|
||||||
private :: &
|
private :: &
|
||||||
utilities_getFilter
|
utilities_getFilter
|
||||||
|
|
||||||
|
@ -861,11 +862,10 @@ subroutine utilities_constitutiveResponse(F_lastInc,F,temperature,timeinc,&
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call CPFEM_general(collectMode,usePingPong,F_lastInc(1:3,1:3,1,1,1),F(1:3,1:3,1,1,1), & ! collect mode handles Jacobian backup / restoration
|
call CPFEM_general(collectMode,usePingPong,F_lastInc(1:3,1:3,1,1,1),F(1:3,1:3,1,1,1), & ! collect mode handles Jacobian backup / restoration
|
||||||
temperature,timeinc,1_pInt,1_pInt)
|
crystallite_temperature(1,1),timeinc,1_pInt,1_pInt)
|
||||||
|
|
||||||
materialpoint_F0 = reshape(F_lastInc, [3,3,1,product(grid)])
|
materialpoint_F0 = reshape(F_lastInc, [3,3,1,product(grid)])
|
||||||
materialpoint_F = reshape(F, [3,3,1,product(grid)])
|
materialpoint_F = reshape(F, [3,3,1,product(grid)])
|
||||||
crystallite_temperature = temperature
|
|
||||||
|
|
||||||
call debug_reset()
|
call debug_reset()
|
||||||
|
|
||||||
|
@ -1004,6 +1004,68 @@ real(pReal) function utilities_getFilter(k)
|
||||||
end function utilities_getFilter
|
end function utilities_getFilter
|
||||||
|
|
||||||
|
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
!> @brief calculates filter for fourier convolution depending on type given in numerics.config
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
subroutine utilities_temperatureUpdate()
|
||||||
|
use crystallite, only: &
|
||||||
|
crystallite_temperature
|
||||||
|
use homogenization, only: &
|
||||||
|
materialpoint_heat
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
integer x,y,z,e
|
||||||
|
real(pReal) :: a
|
||||||
|
do e=1_pInt, product(grid)
|
||||||
|
if (e==1) print*, materialpoint_heat(1,e)*0.0001_pReal
|
||||||
|
crystallite_temperature(1,e) = crystallite_temperature(1,e) + materialpoint_heat(1,e)*0.0001_pReal
|
||||||
|
enddo
|
||||||
|
e = 0_pInt
|
||||||
|
z = 0
|
||||||
|
y = 0
|
||||||
|
x = 0
|
||||||
|
|
||||||
|
!< 6 or less neighboring IPs as [element_num, IP_index, neighbor_index that points to me]
|
||||||
|
do z = 0_pInt,grid(3)-1_pInt
|
||||||
|
do y = 0_pInt,grid(2)-1_pInt
|
||||||
|
do x = 0_pInt,grid(1)-1_pInt
|
||||||
|
e = e + 1_pInt
|
||||||
|
a = 0.0_pReal
|
||||||
|
a = a+ crystallite_temperature(1, z * grid(1) * grid(2) &
|
||||||
|
+ y * grid(1) &
|
||||||
|
+ modulo(x+1_pInt,grid(1)) &
|
||||||
|
+ 1_pInt)
|
||||||
|
a = a+ crystallite_temperature(1,z * grid(1) * grid(2) &
|
||||||
|
+ y * grid(1) &
|
||||||
|
+ modulo(x-1_pInt,grid(1)) &
|
||||||
|
+ 1_pInt)
|
||||||
|
a = a+ crystallite_temperature(1,z * grid(1) * grid(2) &
|
||||||
|
+ modulo(y+1_pInt,grid(2)) * grid(1) &
|
||||||
|
+ x &
|
||||||
|
+ 1_pInt)
|
||||||
|
a = a+ crystallite_temperature(1,z * grid(1) * grid(2) &
|
||||||
|
+ modulo(y-1_pInt,grid(2)) * grid(1) &
|
||||||
|
+ x &
|
||||||
|
+ 1_pInt)
|
||||||
|
a = a+ crystallite_temperature(1, modulo(z+1_pInt,grid(3)) * grid(1) * grid(2) &
|
||||||
|
+ y * grid(1) &
|
||||||
|
+ x &
|
||||||
|
+ 1_pInt)
|
||||||
|
a = a+ crystallite_temperature(1,modulo(z-1_pInt,grid(3)) * grid(1) * grid(2) &
|
||||||
|
+ y * grid(1) &
|
||||||
|
+ x &
|
||||||
|
+ 1_pInt)
|
||||||
|
if (e==1) print*, a
|
||||||
|
if (e==1) print*, crystallite_temperature(1,e)
|
||||||
|
if (e==1) print*,(crystallite_temperature(1,e)+a)/7.0_pReal
|
||||||
|
crystallite_temperature(1,e) = (crystallite_temperature(1,e)+a)/7.0_pReal
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
end subroutine utilities_temperatureUpdate
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief cleans up
|
!> @brief cleans up
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -66,7 +66,6 @@ module constitutive
|
||||||
constitutive_TandItsTangent, &
|
constitutive_TandItsTangent, &
|
||||||
constitutive_collectDotState, &
|
constitutive_collectDotState, &
|
||||||
constitutive_collectDeltaState, &
|
constitutive_collectDeltaState, &
|
||||||
constitutive_heat, &
|
|
||||||
constitutive_postResults
|
constitutive_postResults
|
||||||
|
|
||||||
private :: &
|
private :: &
|
||||||
|
@ -846,25 +845,6 @@ subroutine constitutive_collectDeltaState(Tstar_v, ipc, ip, el)
|
||||||
end subroutine constitutive_collectDeltaState
|
end subroutine constitutive_collectDeltaState
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
|
||||||
!> @brief contains the constitutive equation for calculating the rate of change of microstructure
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
|
||||||
real(pReal) function constitutive_heat(Tstar_v,Temperature,ipc,ip,el)
|
|
||||||
implicit none
|
|
||||||
integer(pInt), intent(in) :: &
|
|
||||||
ipc, & !< grain number
|
|
||||||
ip, & !< integration point number
|
|
||||||
el !< element number
|
|
||||||
real(pReal), intent(in) :: &
|
|
||||||
Temperature
|
|
||||||
real(pReal), intent(in), dimension(6) :: &
|
|
||||||
Tstar_v !< 2nd Piola-Kirchhoff stress
|
|
||||||
|
|
||||||
constitutive_heat = 0.0_pReal
|
|
||||||
|
|
||||||
end function constitutive_heat
|
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief returns array of constitutive results
|
!> @brief returns array of constitutive results
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -52,6 +52,8 @@ module homogenization
|
||||||
integer(pInt), public, protected :: &
|
integer(pInt), public, protected :: &
|
||||||
materialpoint_sizeResults, &
|
materialpoint_sizeResults, &
|
||||||
homogenization_maxSizePostResults
|
homogenization_maxSizePostResults
|
||||||
|
real(pReal), dimension(:,:), allocatable, public, protected :: &
|
||||||
|
materialpoint_heat
|
||||||
|
|
||||||
type(p_vec), dimension(:,:), allocatable, private :: &
|
type(p_vec), dimension(:,:), allocatable, private :: &
|
||||||
homogenization_subState0 !< pointer array to homogenization state at start of homogenization increment
|
homogenization_subState0 !< pointer array to homogenization state at start of homogenization increment
|
||||||
|
@ -61,8 +63,7 @@ module homogenization
|
||||||
real(pReal), dimension(:,:), allocatable, private :: &
|
real(pReal), dimension(:,:), allocatable, private :: &
|
||||||
materialpoint_subFrac, &
|
materialpoint_subFrac, &
|
||||||
materialpoint_subStep, &
|
materialpoint_subStep, &
|
||||||
materialpoint_subdt, &
|
materialpoint_subdt
|
||||||
materialpoint_heat
|
|
||||||
integer(pInt), dimension(:,:), allocatable, private :: &
|
integer(pInt), dimension(:,:), allocatable, private :: &
|
||||||
homogenization_sizePostResults !< size of postResults array per material point
|
homogenization_sizePostResults !< size of postResults array per material point
|
||||||
integer(pInt), private :: &
|
integer(pInt), private :: &
|
||||||
|
|
|
@ -211,7 +211,7 @@ subroutine homogenization_RGC_init(myUnit)
|
||||||
do i = 1_pInt,maxNinstance
|
do i = 1_pInt,maxNinstance
|
||||||
do j = 1_pInt,maxval(homogenization_Noutput)
|
do j = 1_pInt,maxval(homogenization_Noutput)
|
||||||
select case(homogenization_RGC_output(j,i))
|
select case(homogenization_RGC_output(j,i))
|
||||||
case('temperature','constitutivework','penaltyenergy','volumediscrepancy'&
|
case('temperature','constitutivework','penaltyenergy','volumediscrepancy', &
|
||||||
'averagerelaxrate','maximumrelaxrate')
|
'averagerelaxrate','maximumrelaxrate')
|
||||||
mySize = 1_pInt
|
mySize = 1_pInt
|
||||||
case('ipcoords','magnitudemismatch')
|
case('ipcoords','magnitudemismatch')
|
||||||
|
|
Loading…
Reference in New Issue