names as in DAMASK paper
This commit is contained in:
parent
c4765d3742
commit
1b89032086
|
@ -270,7 +270,7 @@ subroutine formResidual(in,x_scal,f_scal,dummy,ierr)
|
||||||
ce = 0
|
ce = 0
|
||||||
do k = 1, grid3; do j = 1, grid(2); do i = 1,grid(1)
|
do k = 1, grid3; do j = 1, grid(2); do i = 1,grid(1)
|
||||||
ce = ce + 1
|
ce = ce + 1
|
||||||
vectorField_real(1:3,i,j,k) = matmul(homogenization_K(ce) - K_ref, &
|
vectorField_real(1:3,i,j,k) = matmul(homogenization_K_T(ce) - K_ref, &
|
||||||
vectorField_real(1:3,i,j,k))
|
vectorField_real(1:3,i,j,k))
|
||||||
enddo; enddo; enddo
|
enddo; enddo; enddo
|
||||||
call utilities_FFTvectorForward
|
call utilities_FFTvectorForward
|
||||||
|
@ -280,7 +280,7 @@ subroutine formResidual(in,x_scal,f_scal,dummy,ierr)
|
||||||
do k = 1, grid3; do j = 1, grid(2); do i = 1,grid(1)
|
do k = 1, grid3; do j = 1, grid(2); do i = 1,grid(1)
|
||||||
ce = ce + 1
|
ce = ce + 1
|
||||||
scalarField_real(i,j,k) = params%timeinc*(scalarField_real(i,j,k) + homogenization_f_T(ce)) &
|
scalarField_real(i,j,k) = params%timeinc*(scalarField_real(i,j,k) + homogenization_f_T(ce)) &
|
||||||
+ homogenization_thermal_mu_T(ce) * (T_lastInc(i,j,k) - T_current(i,j,k)) &
|
+ homogenization_mu_T(ce) * (T_lastInc(i,j,k) - T_current(i,j,k)) &
|
||||||
+ mu_ref*T_current(i,j,k)
|
+ mu_ref*T_current(i,j,k)
|
||||||
enddo; enddo; enddo
|
enddo; enddo; enddo
|
||||||
|
|
||||||
|
@ -309,8 +309,8 @@ subroutine updateReference
|
||||||
mu_ref = 0.0_pReal
|
mu_ref = 0.0_pReal
|
||||||
do k = 1, grid3; do j = 1, grid(2); do i = 1,grid(1)
|
do k = 1, grid3; do j = 1, grid(2); do i = 1,grid(1)
|
||||||
ce = ce + 1
|
ce = ce + 1
|
||||||
K_ref = K_ref + homogenization_K(ce)
|
K_ref = K_ref + homogenization_K_T(ce)
|
||||||
mu_ref = mu_ref + homogenization_thermal_mu_T(ce)
|
mu_ref = mu_ref + homogenization_mu_T(ce)
|
||||||
enddo; enddo; enddo
|
enddo; enddo; enddo
|
||||||
K_ref = K_ref*wgt
|
K_ref = K_ref*wgt
|
||||||
call MPI_Allreduce(MPI_IN_PLACE,K_ref,9,MPI_DOUBLE,MPI_SUM,PETSC_COMM_WORLD,ierr)
|
call MPI_Allreduce(MPI_IN_PLACE,K_ref,9,MPI_DOUBLE,MPI_SUM,PETSC_COMM_WORLD,ierr)
|
||||||
|
|
|
@ -136,15 +136,15 @@ module homogenization
|
||||||
end function mechanical_updateState
|
end function mechanical_updateState
|
||||||
|
|
||||||
|
|
||||||
module function homogenization_K(ce) result(K)
|
module function homogenization_K_T(ce) result(K)
|
||||||
integer, intent(in) :: ce
|
integer, intent(in) :: ce
|
||||||
real(pReal), dimension(3,3) :: K
|
real(pReal), dimension(3,3) :: K
|
||||||
end function homogenization_K
|
end function homogenization_K_T
|
||||||
|
|
||||||
module function homogenization_thermal_mu_T(ce) result(mu_T)
|
module function homogenization_mu_T(ce) result(mu)
|
||||||
integer, intent(in) :: ce
|
integer, intent(in) :: ce
|
||||||
real(pReal) :: mu_T
|
real(pReal) :: mu
|
||||||
end function homogenization_thermal_mu_T
|
end function homogenization_mu_T
|
||||||
|
|
||||||
module subroutine homogenization_thermal_setField(T,dot_T, ce)
|
module subroutine homogenization_thermal_setField(T,dot_T, ce)
|
||||||
integer, intent(in) :: ce
|
integer, intent(in) :: ce
|
||||||
|
@ -156,20 +156,20 @@ module homogenization
|
||||||
real(pReal) :: T
|
real(pReal) :: T
|
||||||
end function homogenization_T
|
end function homogenization_T
|
||||||
|
|
||||||
module function homogenization_f_T(ce) result(f_T)
|
module function homogenization_f_T(ce) result(f)
|
||||||
integer, intent(in) :: ce
|
integer, intent(in) :: ce
|
||||||
real(pReal) :: f_T
|
real(pReal) :: f
|
||||||
end function homogenization_f_T
|
end function homogenization_f_T
|
||||||
|
|
||||||
module function homogenization_mu_phi(ce) result(M)
|
module function homogenization_mu_phi(ce) result(mu)
|
||||||
integer, intent(in) :: ce
|
integer, intent(in) :: ce
|
||||||
real(pReal) :: M
|
real(pReal) :: mu
|
||||||
end function homogenization_mu_phi
|
end function homogenization_mu_phi
|
||||||
|
|
||||||
module function homogenization_f_phi(phi,ce) result(f_phi)
|
module function homogenization_f_phi(phi,ce) result(f)
|
||||||
integer, intent(in) :: ce
|
integer, intent(in) :: ce
|
||||||
real(pReal), intent(in) :: phi
|
real(pReal), intent(in) :: phi
|
||||||
real(pReal) :: f_phi
|
real(pReal) :: f
|
||||||
end function homogenization_f_phi
|
end function homogenization_f_phi
|
||||||
|
|
||||||
module subroutine homogenization_set_phi(phi,ce)
|
module subroutine homogenization_set_phi(phi,ce)
|
||||||
|
@ -183,9 +183,10 @@ module homogenization
|
||||||
public :: &
|
public :: &
|
||||||
homogenization_init, &
|
homogenization_init, &
|
||||||
materialpoint_stressAndItsTangent, &
|
materialpoint_stressAndItsTangent, &
|
||||||
homogenization_thermal_mu_T, &
|
homogenization_mu_T, &
|
||||||
homogenization_K, &
|
homogenization_K_T, &
|
||||||
homogenization_f_T, &
|
homogenization_f_T, &
|
||||||
|
homogenization_K_phi, &
|
||||||
homogenization_mu_phi, &
|
homogenization_mu_phi, &
|
||||||
homogenization_f_phi, &
|
homogenization_f_phi, &
|
||||||
homogenization_set_phi, &
|
homogenization_set_phi, &
|
||||||
|
@ -198,9 +199,6 @@ module homogenization
|
||||||
THERMAL_CONDUCTION_ID, &
|
THERMAL_CONDUCTION_ID, &
|
||||||
DAMAGE_NONLOCAL_ID
|
DAMAGE_NONLOCAL_ID
|
||||||
|
|
||||||
public :: &
|
|
||||||
homogenization_K_phi
|
|
||||||
|
|
||||||
contains
|
contains
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -109,12 +109,12 @@ end subroutine damage_partition
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief Returns homogenized nonlocal damage mobility
|
!> @brief Returns homogenized nonlocal damage mobility
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
module function homogenization_mu_phi(ce) result(M)
|
module function homogenization_mu_phi(ce) result(mu)
|
||||||
|
|
||||||
integer, intent(in) :: ce
|
integer, intent(in) :: ce
|
||||||
real(pReal) :: M
|
real(pReal) :: mu
|
||||||
|
|
||||||
M = lattice_M(material_phaseID(1,ce))
|
mu = lattice_M(material_phaseID(1,ce))
|
||||||
|
|
||||||
end function homogenization_mu_phi
|
end function homogenization_mu_phi
|
||||||
|
|
||||||
|
@ -122,14 +122,14 @@ end function homogenization_mu_phi
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief calculates homogenized damage driving forces
|
!> @brief calculates homogenized damage driving forces
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
module function homogenization_f_phi(phi,ce) result(f_phi)
|
module function homogenization_f_phi(phi,ce) result(f)
|
||||||
|
|
||||||
integer, intent(in) :: ce
|
integer, intent(in) :: ce
|
||||||
real(pReal), intent(in) :: &
|
real(pReal), intent(in) :: &
|
||||||
phi
|
phi
|
||||||
real(pReal) :: f_phi
|
real(pReal) :: f
|
||||||
|
|
||||||
f_phi = phase_f_phi(phi, 1, ce)
|
f = phase_f_phi(phi, 1, ce)
|
||||||
|
|
||||||
end function homogenization_f_phi
|
end function homogenization_f_phi
|
||||||
|
|
||||||
|
|
|
@ -109,7 +109,7 @@ end subroutine thermal_homogenize
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief return homogenized thermal conductivity in reference configuration
|
!> @brief return homogenized thermal conductivity in reference configuration
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
module function homogenization_K(ce) result(K)
|
module function homogenization_K_T(ce) result(K)
|
||||||
|
|
||||||
integer, intent(in) :: ce
|
integer, intent(in) :: ce
|
||||||
real(pReal), dimension(3,3) :: K
|
real(pReal), dimension(3,3) :: K
|
||||||
|
@ -125,17 +125,17 @@ module function homogenization_K(ce) result(K)
|
||||||
|
|
||||||
K = K / real(homogenization_Nconstituents(material_homogenizationID(ce)),pReal)
|
K = K / real(homogenization_Nconstituents(material_homogenizationID(ce)),pReal)
|
||||||
|
|
||||||
end function homogenization_K
|
end function homogenization_K_T
|
||||||
|
|
||||||
|
|
||||||
module function homogenization_thermal_mu_T(ce) result(mu_T)
|
module function homogenization_mu_T(ce) result(mu)
|
||||||
|
|
||||||
integer, intent(in) :: ce
|
integer, intent(in) :: ce
|
||||||
real(pReal) :: mu_T
|
real(pReal) :: mu
|
||||||
|
|
||||||
mu_T = c_P(ce) * rho(ce)
|
mu = c_P(ce) * rho(ce)
|
||||||
|
|
||||||
end function homogenization_thermal_mu_T
|
end function homogenization_mu_T
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
@ -234,19 +234,19 @@ end function homogenization_T
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief return heat generation rate
|
!> @brief return heat generation rate
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
module function homogenization_f_T(ce) result(f_T)
|
module function homogenization_f_T(ce) result(f)
|
||||||
|
|
||||||
integer, intent(in) :: ce
|
integer, intent(in) :: ce
|
||||||
real(pReal) :: f_T
|
real(pReal) :: f
|
||||||
|
|
||||||
integer :: co
|
integer :: co
|
||||||
|
|
||||||
f_T = phase_f_T(material_phaseID(1,ce),material_phaseEntry(1,ce))
|
f = phase_f_T(material_phaseID(1,ce),material_phaseEntry(1,ce))
|
||||||
do co = 2, homogenization_Nconstituents(material_homogenizationID(ce))
|
do co = 2, homogenization_Nconstituents(material_homogenizationID(ce))
|
||||||
f_T = f_T + phase_f_T(material_phaseID(co,ce),material_phaseEntry(co,ce))
|
f = f + phase_f_T(material_phaseID(co,ce),material_phaseEntry(co,ce))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
f_T = f_T/real(homogenization_Nconstituents(material_homogenizationID(ce)),pReal)
|
f = f/real(homogenization_Nconstituents(material_homogenizationID(ce)),pReal)
|
||||||
|
|
||||||
end function homogenization_f_T
|
end function homogenization_f_T
|
||||||
|
|
||||||
|
|
|
@ -223,17 +223,17 @@ module phase
|
||||||
end function phase_homogenizedC
|
end function phase_homogenizedC
|
||||||
|
|
||||||
|
|
||||||
module function phase_f_phi(phi,co,ce) result(phi_dot)
|
module function phase_f_phi(phi,co,ce) result(f)
|
||||||
integer, intent(in) :: ce,co
|
integer, intent(in) :: ce,co
|
||||||
real(pReal), intent(in) :: &
|
real(pReal), intent(in) :: &
|
||||||
phi !< damage parameter
|
phi !< damage parameter
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
phi_dot
|
f
|
||||||
end function phase_f_phi
|
end function phase_f_phi
|
||||||
|
|
||||||
module function phase_f_T(ph,me) result(f_T)
|
module function phase_f_T(ph,me) result(f)
|
||||||
integer, intent(in) :: ph, me
|
integer, intent(in) :: ph, me
|
||||||
real(pReal) :: f_T
|
real(pReal) :: f
|
||||||
end function phase_f_T
|
end function phase_f_T
|
||||||
|
|
||||||
module subroutine plastic_nonlocal_updateCompatibility(orientation,ph,i,e)
|
module subroutine plastic_nonlocal_updateCompatibility(orientation,ph,i,e)
|
||||||
|
|
|
@ -142,13 +142,13 @@ end subroutine damage_init
|
||||||
!----------------------------------------------------------------------------------------------
|
!----------------------------------------------------------------------------------------------
|
||||||
!< @brief returns local part of nonlocal damage driving force
|
!< @brief returns local part of nonlocal damage driving force
|
||||||
!----------------------------------------------------------------------------------------------
|
!----------------------------------------------------------------------------------------------
|
||||||
module function phase_f_phi(phi,co,ce) result(phi_dot)
|
module function phase_f_phi(phi,co,ce) result(f)
|
||||||
|
|
||||||
integer, intent(in) :: ce,co
|
integer, intent(in) :: ce,co
|
||||||
real(pReal), intent(in) :: &
|
real(pReal), intent(in) :: &
|
||||||
phi !< damage parameter
|
phi !< damage parameter
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
phi_dot
|
f
|
||||||
|
|
||||||
integer :: &
|
integer :: &
|
||||||
ph, &
|
ph, &
|
||||||
|
@ -159,10 +159,10 @@ module function phase_f_phi(phi,co,ce) result(phi_dot)
|
||||||
|
|
||||||
select case(phase_source(ph))
|
select case(phase_source(ph))
|
||||||
case(DAMAGE_ISOBRITTLE_ID,DAMAGE_ISODUCTILE_ID,DAMAGE_ANISOBRITTLE_ID,DAMAGE_ANISODUCTILE_ID)
|
case(DAMAGE_ISOBRITTLE_ID,DAMAGE_ISODUCTILE_ID,DAMAGE_ANISOBRITTLE_ID,DAMAGE_ANISODUCTILE_ID)
|
||||||
phi_dot = 1.0_pReal &
|
f = 1.0_pReal &
|
||||||
- phi*damageState(ph)%state(1,en)
|
- phi*damageState(ph)%state(1,en)
|
||||||
case default
|
case default
|
||||||
phi_dot = 0.0_pReal
|
f = 0.0_pReal
|
||||||
end select
|
end select
|
||||||
|
|
||||||
end function phase_f_phi
|
end function phase_f_phi
|
||||||
|
|
|
@ -121,25 +121,25 @@ end subroutine thermal_init
|
||||||
!----------------------------------------------------------------------------------------------
|
!----------------------------------------------------------------------------------------------
|
||||||
!< @brief calculates thermal dissipation rate
|
!< @brief calculates thermal dissipation rate
|
||||||
!----------------------------------------------------------------------------------------------
|
!----------------------------------------------------------------------------------------------
|
||||||
module function phase_f_T(ph,me) result(f_T)
|
module function phase_f_T(ph,me) result(f)
|
||||||
|
|
||||||
integer, intent(in) :: ph, me
|
integer, intent(in) :: ph, me
|
||||||
real(pReal) :: f_T
|
real(pReal) :: f
|
||||||
|
|
||||||
|
|
||||||
integer :: so
|
integer :: so
|
||||||
|
|
||||||
|
|
||||||
f_T = 0.0_pReal
|
f = 0.0_pReal
|
||||||
|
|
||||||
do so = 1, thermal_Nsources(ph)
|
do so = 1, thermal_Nsources(ph)
|
||||||
select case(thermal_source(so,ph))
|
select case(thermal_source(so,ph))
|
||||||
|
|
||||||
case (THERMAL_DISSIPATION_ID)
|
case (THERMAL_DISSIPATION_ID)
|
||||||
f_T = f_T + dissipation_f_T(ph,me)
|
f = f + dissipation_f_T(ph,me)
|
||||||
|
|
||||||
case (THERMAL_EXTERNALHEAT_ID)
|
case (THERMAL_EXTERNALHEAT_ID)
|
||||||
f_T = f_T + externalheat_f_T(ph,me)
|
f = f + externalheat_f_T(ph,me)
|
||||||
|
|
||||||
end select
|
end select
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue