Added texture symmetry taken into account for defining constitutive_Ngrains

This commit is contained in:
Luc Hantcherli 2007-03-29 12:48:47 +00:00
parent e5003f9d10
commit bab4381447
1 changed files with 14 additions and 27 deletions

View File

@ -741,7 +741,7 @@ subroutine constitutive_Assignment()
!*********************************************************************
use prec, only: pReal,pInt
use mesh, only: mesh_NcpElems,FE_Nips,mesh_maxNips,mesh_element
!use CPFEM, only: CPFEM_Fp_old
use CPFEM, only: CPFEM_Fp_old
implicit none
!* Definition of variables
@ -769,10 +769,18 @@ do i=1,mesh_NcpElems
else
multiplicity=texture_Ngrains(texID)/(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID))
do j=1,FE_Nips(mesh_element(2,i))
if (texture_Ngrains(texID)==multiplicity*(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID))) then
constitutive_Ngrains(j,i)=texture_Ngrains(texID)
else
constitutive_Ngrains(j,i)=multiplicity*(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID))
if ((texture_Ngrains(texID)==multiplicity*(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID)))&
.AND.(texture_symmetry(texID)=='orthotropic')) then
constitutive_Ngrains(j,i)=texture_Ngrains(texID)*4.0_pReal
elseif ((texture_Ngrains(texID)==multiplicity*(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID)))&
.AND.(texture_symmetry(texID)=='isotropic')) then
constitutive_Ngrains(j,i)=texture_Ngrains(texID)
elseif ((texture_Ngrains(texID).NE.multiplicity*(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID)))&
.AND.(texture_symmetry(texID)=='orthotropic')) then
constitutive_Ngrains(j,i)=multiplicity*(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID))*4.0_pReal
elseif ((texture_Ngrains(texID).NE.multiplicity*(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID)))&
.AND.(texture_symmetry(texID)=='isotropic')) then
constitutive_Ngrains(j,i)=multiplicity*(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID))
endif
enddo
endif
@ -815,11 +823,8 @@ do i=1,mesh_NcpElems
constitutive_texID(l,j,i)=texID
constitutive_MatVolFrac(l,j,i)=1.0_pReal
constitutive_TexVolFrac(l,j,i)=texture_Gauss(6,k,texID)/multiplicity
constitutive_phi1(l,j,i)=texture_Gauss(1,k,texID)
constitutive_phi(l,j,i)=texture_Gauss(2,k,texID)
constitutive_phi2(l,j,i)=texture_Gauss(3,k,texID)
!* Use of sample_Gauss
constitutive_EulerAngles(:,l,j,i)=sample_Gauss(texture_Gauss(1:3,k,texID),texture_Gauss(4.k,texID))
constitutive_EulerAngles(:,l,j,i)=sample_Gauss(texture_Gauss(1:3,k,texID),texture_Gauss(4,k,texID))
!* Rotation matrix
CPFEM_Fp_old(l,j,i)=math_EulertoR(constitutive_EulerAngles(:,l,j,i))
enddo
@ -887,24 +892,6 @@ return
end function
!subroutine constitutive_InitFp(CPFEM_Fp_old)
!*********************************************************************
!* This function reads the material and texture input file *
!* INPUT: *
!* - CPFEM_Fp_old : old plastic deformation gradient *
!*********************************************************************
!use prec, only: pReal,pInt
!use CPFEM, only: CPFEM_Fp_old
!implicit none
!* Definition of variables
!* Initialization of Fp_old with starting orientation
!end subroutine
subroutine constitutive_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v_m,ipc,ip,el)
!*********************************************************************
!* This subroutine contains the constitutive equation for *