some changes related to new state
This commit is contained in:
parent
1298f6ea5e
commit
ee31bb1cae
|
@ -295,6 +295,9 @@ subroutine CPFEM_general(mode, parallelExecution, ffn, ffn1, temperature, dt, el
|
||||||
use material, only: &
|
use material, only: &
|
||||||
homogenization_maxNgrains, &
|
homogenization_maxNgrains, &
|
||||||
microstructure_elemhomo, &
|
microstructure_elemhomo, &
|
||||||
|
#ifdef NEWSTATE
|
||||||
|
plasticState,&
|
||||||
|
#endif
|
||||||
material_phase
|
material_phase
|
||||||
use constitutive, only: &
|
use constitutive, only: &
|
||||||
constitutive_state0,constitutive_state
|
constitutive_state0,constitutive_state
|
||||||
|
@ -390,6 +393,10 @@ subroutine CPFEM_general(mode, parallelExecution, ffn, ffn1, temperature, dt, el
|
||||||
j = 1:mesh_maxNips, &
|
j = 1:mesh_maxNips, &
|
||||||
k = 1:mesh_NcpElems ) &
|
k = 1:mesh_NcpElems ) &
|
||||||
constitutive_state0(i,j,k)%p = constitutive_state(i,j,k)%p ! microstructure of crystallites
|
constitutive_state0(i,j,k)%p = constitutive_state(i,j,k)%p ! microstructure of crystallites
|
||||||
|
#ifdef NEWSTATE
|
||||||
|
!(:) needed?
|
||||||
|
plasticState(:)%state0=plasticState(:)%state
|
||||||
|
#endif
|
||||||
if (iand(debug_level(debug_CPFEM), debug_levelExtensive) /= 0_pInt) then
|
if (iand(debug_level(debug_CPFEM), debug_levelExtensive) /= 0_pInt) then
|
||||||
!$OMP CRITICAL (write2out)
|
!$OMP CRITICAL (write2out)
|
||||||
write(6,'(a)') '<< CPFEM >> aging states'
|
write(6,'(a)') '<< CPFEM >> aging states'
|
||||||
|
|
|
@ -140,11 +140,11 @@ subroutine constitutive_init
|
||||||
character(len=32) :: outputName !< name of output, intermediate fix until HDF5 output is ready
|
character(len=32) :: outputName !< name of output, intermediate fix until HDF5 output is ready
|
||||||
logical :: knownPlasticity, nonlocalConstitutionPresent
|
logical :: knownPlasticity, nonlocalConstitutionPresent
|
||||||
#if defined(HDF) || defined(NEWSTATE)
|
#if defined(HDF) || defined(NEWSTATE)
|
||||||
integer(pInt), dimension(:,:,:), allocatable :: mappingConstitutive
|
integer(pInt), dimension(:,:,:,:), allocatable, public, protected :: mappingConstitutive
|
||||||
integer(pInt), dimension(:,:,:), allocatable :: mappingCrystallite
|
integer(pInt), dimension(:,:,:), allocatable, public, protected :: mappingCrystallite
|
||||||
integer(pInt), dimension(:), allocatable :: ConstitutivePosition
|
integer(pInt), dimension(:), allocatable :: ConstitutivePosition
|
||||||
integer(pInt), dimension(:), allocatable :: CrystallitePosition
|
integer(pInt), dimension(:), allocatable :: CrystallitePosition
|
||||||
allocate(mappingConstitutive(homogenization_maxngrains,mesh_ncpelems,2),source=0_pInt)
|
allocate(mappingConstitutive(homogenization_maxngrains,mesh_maxNips,mesh_ncpelems,2),source=0_pInt)
|
||||||
allocate(mappingCrystallite (homogenization_maxngrains,mesh_ncpelems,2),source=0_pInt)
|
allocate(mappingCrystallite (homogenization_maxngrains,mesh_ncpelems,2),source=0_pInt)
|
||||||
allocate(ConstitutivePosition(material_nphase),source=0_pInt)
|
allocate(ConstitutivePosition(material_nphase),source=0_pInt)
|
||||||
allocate(CrystallitePosition(material_nphase),source=0_pInt)
|
allocate(CrystallitePosition(material_nphase),source=0_pInt)
|
||||||
|
@ -256,7 +256,7 @@ subroutine constitutive_init
|
||||||
instance = phase_plasticityInstance(phase)
|
instance = phase_plasticityInstance(phase)
|
||||||
#if defined(HDF) || defined(NEWSTATE)
|
#if defined(HDF) || defined(NEWSTATE)
|
||||||
ConstitutivePosition(phase) = ConstitutivePosition(phase)+1_pInt
|
ConstitutivePosition(phase) = ConstitutivePosition(phase)+1_pInt
|
||||||
mappingConstitutive(g,e,1:2) = [ConstitutivePosition(phase),phase]
|
mappingConstitutive(g,e,i,1:2) = [ConstitutivePosition(phase),phase]
|
||||||
#endif
|
#endif
|
||||||
select case(phase_plasticity(material_phase(g,i,e)))
|
select case(phase_plasticity(material_phase(g,i,e)))
|
||||||
case (PLASTICITY_NONE_ID)
|
case (PLASTICITY_NONE_ID)
|
||||||
|
|
|
@ -378,6 +378,14 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt)
|
||||||
forall(i = FEsolving_execIP(1,e):FEsolving_execIP(2,e), homogenization_sizeState(i,e) > 0_pInt) &
|
forall(i = FEsolving_execIP(1,e):FEsolving_execIP(2,e), homogenization_sizeState(i,e) > 0_pInt) &
|
||||||
homogenization_subState0(i,e)%p = homogenization_state0(i,e)%p ! ...internal homogenization state
|
homogenization_subState0(i,e)%p = homogenization_state0(i,e)%p ! ...internal homogenization state
|
||||||
enddo
|
enddo
|
||||||
|
#ifdef NEWSTATE
|
||||||
|
do e = FEsolving_execElem(1),FEsolving_execElem(2)
|
||||||
|
myNgrains = homogenization_Ngrains(mesh_element(3,e))
|
||||||
|
do i = FEsolving_execIP(1,e), FEsolving_execIP(2,e)
|
||||||
|
do g = 1, myNgrains
|
||||||
|
plasticSate(mappingConstitutive(g,i,e,1))%partionedState0(mappingConstitutive(g,i,e,2)) = &
|
||||||
|
plasticSate(mappingConstitutive(g,i,e,1))%state0(mappingConstitutive(g,i,e,2))
|
||||||
|
#endif
|
||||||
|
|
||||||
NiterationHomog = 0_pInt
|
NiterationHomog = 0_pInt
|
||||||
|
|
||||||
|
@ -417,6 +425,11 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt)
|
||||||
crystallite_partioneddPdF0(1:3,1:3,1:3,1:3,1:myNgrains,i,e) = crystallite_dPdF(1:3,1:3,1:3,1:3,1:myNgrains,i,e)! ...stiffness
|
crystallite_partioneddPdF0(1:3,1:3,1:3,1:3,1:myNgrains,i,e) = crystallite_dPdF(1:3,1:3,1:3,1:3,1:myNgrains,i,e)! ...stiffness
|
||||||
crystallite_partionedTstar0_v(1:6,1:myNgrains,i,e) = crystallite_Tstar_v(1:6,1:myNgrains,i,e) ! ...2nd PK stress
|
crystallite_partionedTstar0_v(1:6,1:myNgrains,i,e) = crystallite_Tstar_v(1:6,1:myNgrains,i,e) ! ...2nd PK stress
|
||||||
forall (g = 1:myNgrains) constitutive_partionedState0(g,i,e)%p = constitutive_state(g,i,e)%p ! ...microstructures
|
forall (g = 1:myNgrains) constitutive_partionedState0(g,i,e)%p = constitutive_state(g,i,e)%p ! ...microstructures
|
||||||
|
#ifdef NEWSTATE
|
||||||
|
do g = 1, myNgrains
|
||||||
|
plasticSate(mappingConstitutive(g,i,e,1))%partionedState0(mappingConstitutive(g,i,e,2)) = &
|
||||||
|
plasticSate(mappingConstitutive(g,i,e,1))%state(mappingConstitutive(g,i,e,2))
|
||||||
|
#endif
|
||||||
if (homogenization_sizeState(i,e) > 0_pInt) &
|
if (homogenization_sizeState(i,e) > 0_pInt) &
|
||||||
homogenization_subState0(i,e)%p = homogenization_state(i,e)%p ! ...internal state of homog scheme
|
homogenization_subState0(i,e)%p = homogenization_state(i,e)%p ! ...internal state of homog scheme
|
||||||
materialpoint_subF0(1:3,1:3,i,e) = materialpoint_subF(1:3,1:3,i,e) ! ...def grad
|
materialpoint_subF0(1:3,1:3,i,e) = materialpoint_subF(1:3,1:3,i,e) ! ...def grad
|
||||||
|
@ -464,6 +477,11 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt)
|
||||||
crystallite_dPdF(1:3,1:3,1:3,1:3,1:myNgrains,i,e) = crystallite_partioneddPdF0(1:3,1:3,1:3,1:3,1:myNgrains,i,e) ! ...stiffness
|
crystallite_dPdF(1:3,1:3,1:3,1:3,1:myNgrains,i,e) = crystallite_partioneddPdF0(1:3,1:3,1:3,1:3,1:myNgrains,i,e) ! ...stiffness
|
||||||
crystallite_Tstar_v(1:6,1:myNgrains,i,e) = crystallite_partionedTstar0_v(1:6,1:myNgrains,i,e) ! ...2nd PK stress
|
crystallite_Tstar_v(1:6,1:myNgrains,i,e) = crystallite_partionedTstar0_v(1:6,1:myNgrains,i,e) ! ...2nd PK stress
|
||||||
forall (g = 1:myNgrains) constitutive_state(g,i,e)%p = constitutive_partionedState0(g,i,e)%p ! ...microstructures
|
forall (g = 1:myNgrains) constitutive_state(g,i,e)%p = constitutive_partionedState0(g,i,e)%p ! ...microstructures
|
||||||
|
#ifdef NEWSTATE
|
||||||
|
do g = 1, myNgrains
|
||||||
|
plasticSate(mappingConstitutive(g,i,e,1))%state(mappingConstitutive(g,i,e,2)) = &
|
||||||
|
plasticSate(mappingConstitutive(g,i,e,1))%partionedState0(mappingConstitutive(g,i,e,2))
|
||||||
|
#endif
|
||||||
if (homogenization_sizeState(i,e) > 0_pInt) &
|
if (homogenization_sizeState(i,e) > 0_pInt) &
|
||||||
homogenization_state(i,e)%p = homogenization_subState0(i,e)%p ! ...internal state of homog scheme
|
homogenization_state(i,e)%p = homogenization_subState0(i,e)%p ! ...internal state of homog scheme
|
||||||
endif
|
endif
|
||||||
|
|
Loading…
Reference in New Issue