Added texture symmetry taken into account for defining constitutive_Ngrains
This commit is contained in:
parent
e5003f9d10
commit
bab4381447
|
@ -741,7 +741,7 @@ subroutine constitutive_Assignment()
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
use prec, only: pReal,pInt
|
use prec, only: pReal,pInt
|
||||||
use mesh, only: mesh_NcpElems,FE_Nips,mesh_maxNips,mesh_element
|
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
|
implicit none
|
||||||
|
|
||||||
!* Definition of variables
|
!* Definition of variables
|
||||||
|
@ -769,10 +769,18 @@ do i=1,mesh_NcpElems
|
||||||
else
|
else
|
||||||
multiplicity=texture_Ngrains(texID)/(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID))
|
multiplicity=texture_Ngrains(texID)/(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID))
|
||||||
do j=1,FE_Nips(mesh_element(2,i))
|
do j=1,FE_Nips(mesh_element(2,i))
|
||||||
if (texture_Ngrains(texID)==multiplicity*(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID))) then
|
if ((texture_Ngrains(texID)==multiplicity*(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID)))&
|
||||||
constitutive_Ngrains(j,i)=texture_Ngrains(texID)
|
.AND.(texture_symmetry(texID)=='orthotropic')) then
|
||||||
else
|
constitutive_Ngrains(j,i)=texture_Ngrains(texID)*4.0_pReal
|
||||||
constitutive_Ngrains(j,i)=multiplicity*(texture_NGauss(texID)+texture_NFiber(texID)+texture_NRandom(texID))
|
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
|
endif
|
||||||
enddo
|
enddo
|
||||||
endif
|
endif
|
||||||
|
@ -815,11 +823,8 @@ do i=1,mesh_NcpElems
|
||||||
constitutive_texID(l,j,i)=texID
|
constitutive_texID(l,j,i)=texID
|
||||||
constitutive_MatVolFrac(l,j,i)=1.0_pReal
|
constitutive_MatVolFrac(l,j,i)=1.0_pReal
|
||||||
constitutive_TexVolFrac(l,j,i)=texture_Gauss(6,k,texID)/multiplicity
|
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
|
!* 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
|
!* Rotation matrix
|
||||||
CPFEM_Fp_old(l,j,i)=math_EulertoR(constitutive_EulerAngles(:,l,j,i))
|
CPFEM_Fp_old(l,j,i)=math_EulertoR(constitutive_EulerAngles(:,l,j,i))
|
||||||
enddo
|
enddo
|
||||||
|
@ -887,24 +892,6 @@ return
|
||||||
end function
|
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)
|
subroutine constitutive_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v_m,ipc,ip,el)
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
!* This subroutine contains the constitutive equation for *
|
!* This subroutine contains the constitutive equation for *
|
||||||
|
|
Loading…
Reference in New Issue