names as in DAMASK paper

This commit is contained in:
Martin Diehl 2021-04-08 23:40:20 +02:00
parent c4765d3742
commit 1b89032086
7 changed files with 49 additions and 51 deletions

View File

@ -270,7 +270,7 @@ subroutine formResidual(in,x_scal,f_scal,dummy,ierr)
ce = 0
do k = 1, grid3; do j = 1, grid(2); do i = 1,grid(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))
enddo; enddo; enddo
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)
ce = ce + 1
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)
enddo; enddo; enddo
@ -309,8 +309,8 @@ subroutine updateReference
mu_ref = 0.0_pReal
do k = 1, grid3; do j = 1, grid(2); do i = 1,grid(1)
ce = ce + 1
K_ref = K_ref + homogenization_K(ce)
mu_ref = mu_ref + homogenization_thermal_mu_T(ce)
K_ref = K_ref + homogenization_K_T(ce)
mu_ref = mu_ref + homogenization_mu_T(ce)
enddo; enddo; enddo
K_ref = K_ref*wgt
call MPI_Allreduce(MPI_IN_PLACE,K_ref,9,MPI_DOUBLE,MPI_SUM,PETSC_COMM_WORLD,ierr)

View File

@ -136,15 +136,15 @@ module homogenization
end function mechanical_updateState
module function homogenization_K(ce) result(K)
module function homogenization_K_T(ce) result(K)
integer, intent(in) :: ce
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
real(pReal) :: mu_T
end function homogenization_thermal_mu_T
real(pReal) :: mu
end function homogenization_mu_T
module subroutine homogenization_thermal_setField(T,dot_T, ce)
integer, intent(in) :: ce
@ -156,20 +156,20 @@ module homogenization
real(pReal) :: 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
real(pReal) :: f_T
real(pReal) :: f
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
real(pReal) :: M
real(pReal) :: mu
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
real(pReal), intent(in) :: phi
real(pReal) :: f_phi
real(pReal) :: f
end function homogenization_f_phi
module subroutine homogenization_set_phi(phi,ce)
@ -183,9 +183,10 @@ module homogenization
public :: &
homogenization_init, &
materialpoint_stressAndItsTangent, &
homogenization_thermal_mu_T, &
homogenization_K, &
homogenization_mu_T, &
homogenization_K_T, &
homogenization_f_T, &
homogenization_K_phi, &
homogenization_mu_phi, &
homogenization_f_phi, &
homogenization_set_phi, &
@ -198,9 +199,6 @@ module homogenization
THERMAL_CONDUCTION_ID, &
DAMAGE_NONLOCAL_ID
public :: &
homogenization_K_phi
contains

View File

@ -109,12 +109,12 @@ end subroutine damage_partition
!--------------------------------------------------------------------------------------------------
!> @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
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
@ -122,14 +122,14 @@ end function homogenization_mu_phi
!--------------------------------------------------------------------------------------------------
!> @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
real(pReal), intent(in) :: &
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

View File

@ -109,7 +109,7 @@ end subroutine thermal_homogenize
!--------------------------------------------------------------------------------------------------
!> @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
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)
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
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
!--------------------------------------------------------------------------------------------------
module function homogenization_f_T(ce) result(f_T)
module function homogenization_f_T(ce) result(f)
integer, intent(in) :: ce
real(pReal) :: f_T
real(pReal) :: f
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))
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
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

View File

@ -223,17 +223,17 @@ module phase
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
real(pReal), intent(in) :: &
phi !< damage parameter
real(pReal) :: &
phi_dot
f
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
real(pReal) :: f_T
real(pReal) :: f
end function phase_f_T
module subroutine plastic_nonlocal_updateCompatibility(orientation,ph,i,e)

View File

@ -142,13 +142,13 @@ end subroutine damage_init
!----------------------------------------------------------------------------------------------
!< @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
real(pReal), intent(in) :: &
phi !< damage parameter
real(pReal) :: &
phi_dot
f
integer :: &
ph, &
@ -159,10 +159,10 @@ module function phase_f_phi(phi,co,ce) result(phi_dot)
select case(phase_source(ph))
case(DAMAGE_ISOBRITTLE_ID,DAMAGE_ISODUCTILE_ID,DAMAGE_ANISOBRITTLE_ID,DAMAGE_ANISODUCTILE_ID)
phi_dot = 1.0_pReal &
- phi*damageState(ph)%state(1,en)
f = 1.0_pReal &
- phi*damageState(ph)%state(1,en)
case default
phi_dot = 0.0_pReal
f = 0.0_pReal
end select
end function phase_f_phi

View File

@ -121,25 +121,25 @@ end subroutine thermal_init
!----------------------------------------------------------------------------------------------
!< @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
real(pReal) :: f_T
real(pReal) :: f
integer :: so
f_T = 0.0_pReal
f = 0.0_pReal
do so = 1, thermal_Nsources(ph)
select case(thermal_source(so,ph))
case (THERMAL_DISSIPATION_ID)
f_T = f_T + dissipation_f_T(ph,me)
f = f + dissipation_f_T(ph,me)
case (THERMAL_EXTERNALHEAT_ID)
f_T = f_T + externalheat_f_T(ph,me)
f = f + externalheat_f_T(ph,me)
end select