corrected non-Schmid effect: used to calculate resolvedstress based on Mandel notation which can be incorrect for nonsymmetric non-Schmid tensors

This commit is contained in:
Christoph Kords 2014-01-16 09:50:40 +00:00
parent b24dd62431
commit 9223cf52b4
1 changed files with 10 additions and 11 deletions

View File

@ -720,7 +720,8 @@ pure subroutine constitutive_phenopowerlaw_LpAndItsTangent(Lp,dLp_dTstar99,Tstar
p_vec p_vec
use math, only: & use math, only: &
math_Plain3333to99, & math_Plain3333to99, &
math_Mandel6to33 math_Mandel6to33, &
math_mul33xx33
use lattice, only: & use lattice, only: &
lattice_Sslip, & lattice_Sslip, &
lattice_Sslip_v, & lattice_Sslip_v, &
@ -789,20 +790,18 @@ pure subroutine constitutive_phenopowerlaw_LpAndItsTangent(Lp,dLp_dTstar99,Tstar
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! Calculation of Lp ! Calculation of Lp
tau_slip_pos(j) = dot_product(Tstar_v,lattice_Sslip_v(1:6,1,index_myFamily+i,structID))
tau_slip_neg(j) = tau_slip_pos(j)
nonSchmid_tensor(1:3,1:3,1) = lattice_Sslip(1:3,1:3,1,index_myFamily+i,structID) nonSchmid_tensor(1:3,1:3,1) = lattice_Sslip(1:3,1:3,1,index_myFamily+i,structID)
nonSchmid_tensor(1:3,1:3,2) = nonSchmid_tensor(1:3,1:3,1) nonSchmid_tensor(1:3,1:3,2) = nonSchmid_tensor(1:3,1:3,1)
do k = 1,lattice_NnonSchmid(structID) do k = 1,lattice_NnonSchmid(structID)
tau_slip_pos(j) = tau_slip_pos(j) + constitutive_phenopowerlaw_nonSchmidCoeff(k,matID)* & nonSchmid_tensor(1:3,1:3,1) = nonSchmid_tensor(1:3,1:3,1) &
dot_product(Tstar_v,lattice_Sslip_v(1:6,2*k,index_myFamily+i,structID)) + constitutive_phenopowerlaw_nonSchmidCoeff(k,matID) &
tau_slip_neg(j) = tau_slip_neg(j) + constitutive_phenopowerlaw_nonSchmidCoeff(k,matID)* & * lattice_Sslip(1:3,1:3,2*k,index_myFamily+i,structID)
dot_product(Tstar_v,lattice_Sslip_v(1:6,2*k+1,index_myFamily+i,structID)) nonSchmid_tensor(1:3,1:3,2) = nonSchmid_tensor(1:3,1:3,2) &
nonSchmid_tensor(1:3,1:3,1) = nonSchmid_tensor(1:3,1:3,1) + constitutive_phenopowerlaw_nonSchmidCoeff(k,matID)*& + constitutive_phenopowerlaw_nonSchmidCoeff(k,matID) &
lattice_Sslip(1:3,1:3,2*k,index_myFamily+i,structID) * lattice_Sslip(1:3,1:3,2*k+1,index_myFamily+i,structID)
nonSchmid_tensor(1:3,1:3,2) = nonSchmid_tensor(1:3,1:3,2) + constitutive_phenopowerlaw_nonSchmidCoeff(k,matID)*&
lattice_Sslip(1:3,1:3,2*k+1,index_myFamily+i,structID)
enddo enddo
tau_slip_pos(j) = math_mul33xx33(math_Mandel6to33(Tstar_v), nonSchmid_tensor(1:3,1:3,1))
tau_slip_neg(j) = math_mul33xx33(math_Mandel6to33(Tstar_v), nonSchmid_tensor(1:3,1:3,2))
gdot_slip_pos(j) = 0.5_pReal * (1.0_pReal - state(ipc,ip,el)%p(index_F)) & ! 1-F gdot_slip_pos(j) = 0.5_pReal * (1.0_pReal - state(ipc,ip,el)%p(index_F)) & ! 1-F
* constitutive_phenopowerlaw_gdot0_slip(matID) & * constitutive_phenopowerlaw_gdot0_slip(matID) &
* (abs(tau_slip_pos(j)) / state(ipc,ip,el)%p(j)) & * (abs(tau_slip_pos(j)) / state(ipc,ip,el)%p(j)) &