shortened stress_recovery = ...
added (crucial) deMandeling for return values of CPFEM_general

2005
matched to 2007 version
This commit is contained in:
Philip Eisenlohr 2008-02-18 18:49:06 +00:00
parent 2b567ad20d
commit f4edf4bd0c
2 changed files with 41 additions and 22 deletions

View File

@ -4,7 +4,7 @@
! written by F. Roters, P. Eisenlohr, L. Hantcherli, W.A. Counts ! written by F. Roters, P. Eisenlohr, L. Hantcherli, W.A. Counts
! MPI fuer Eisenforschung, Duesseldorf ! MPI fuer Eisenforschung, Duesseldorf
! !
! last modified: 08.11.2007 ! last modified: 18.02.2005
!******************************************************************** !********************************************************************
! Usage: ! Usage:
! - choose material as hypela2 ! - choose material as hypela2
@ -153,6 +153,10 @@
! !
dimension e(*),de(*),t(*),dt(*),g(*),d(ngens,*),s(*), n(2),coord(ncrd,*),disp(ndeg,*),matus(2),dispt(ndeg,*),ffn(itel,*),& dimension e(*),de(*),t(*),dt(*),g(*),d(ngens,*),s(*), n(2),coord(ncrd,*),disp(ndeg,*),matus(2),dispt(ndeg,*),ffn(itel,*),&
frotn(itel,*),strechn(itel),eigvn(itel,*),ffn1(itel,*),frotn1(itel,*),strechn1(itel),eigvn1(itel,*),kcus(2) frotn(itel,*),strechn(itel),eigvn(itel,*),ffn1(itel,*),frotn1(itel,*),strechn1(itel),eigvn1(itel,*),kcus(2)
logical stress_recovery
stress_recovery = (lovl == 6)
! !
! subroutine cpfem_general(mpie_ffn, mpie_ffn1, temperature, mpie_inc, mpie_subinc, mpie_cn, ! subroutine cpfem_general(mpie_ffn, mpie_ffn1, temperature, mpie_inc, mpie_subinc, mpie_cn,
! mpie_stress_recovery, mpie_tinc, mpie_en, mpie_in, mpie_s, mpie_d, mpie_ngens) ! mpie_stress_recovery, mpie_tinc, mpie_en, mpie_in, mpie_s, mpie_d, mpie_ngens)
@ -174,6 +178,10 @@
! mpie_ngens size of stress strain law ! mpie_ngens size of stress strain law
!******************************************************************** !********************************************************************
call CPFEM_general(ffn, ffn1, t(1), inc, incsub, ncycle, stress_recovery, timinc, n(1), nn, s, d, ngens) call CPFEM_general(ffn, ffn1, t(1), inc, incsub, ncycle, stress_recovery, timinc, n(1), nn, s, d, ngens)
! Mandel: 11, 22, 33, SQRT(2)*12, SQRT(2)*23, SQRT(2)*13
! Marc: 11, 22, 33, 12, 23, 13
forall(i=1:ngens) d(1:ngens,i) = invnrmMandel(i)*d(1:ngens,i)*invnrmMandel(1:ngens)
s(1:ngens) = s(1:ngens)*invnrmMandel(1:ngens)
return return
END SUBROUTINE END SUBROUTINE

View File

@ -27,8 +27,8 @@
! - creeps: timinc ! - creeps: timinc
!******************************************************************** !********************************************************************
! !
include "prec.f90" include "prec.f90"
include "debug.f90" include "debug.f90"
include "math.f90" include "math.f90"
include "IO.f90" include "IO.f90"
include "mesh.f90" include "mesh.f90"
@ -121,8 +121,10 @@
!3 continue !3 continue
! !
use prec, only: pReal,pInt use prec, only: pReal,pInt
use CPFEM, only: CPFEM_general use CPFEM, only: CPFEM_general
use math, only: invnrmMandel
implicit real(pReal) (a-h,o-z) implicit real(pReal) (a-h,o-z)
! !
! Marc common blocks are in fixed format so they have to be pasted in here ! Marc common blocks are in fixed format so they have to be pasted in here
@ -154,36 +156,45 @@
icfeq,icftm,icetem,mcreep,jcreep,icpa,icftmp,icfstr,icfqcp,icfcpm,icrppr,icrcha,icpb,iicpmt,iicpa icfeq,icftm,icetem,mcreep,jcreep,icpa,icftmp,icfstr,icfqcp,icfcpm,icrppr,icrcha,icpb,iicpmt,iicpa
! !
dimension e(*),de(*),t(*),dt(*),g(*),d(ngens,*),s(*), n(2),coord(ncrd,*),disp(ndeg,*),matus(2),dispt(ndeg,*),ffn(itel,*),& dimension e(*),de(*),t(*),dt(*),g(*),d(ngens,*),s(*), n(2),coord(ncrd,*),disp(ndeg,*),matus(2),dispt(ndeg,*),ffn(itel,*),&
frotn(itel,*),strechn(itel),eigvn(itel,*),ffn1(itel,*),frotn1(itel,*),strechn1(itel),eigvn1(itel,*),kcus(2) frotn(itel,*),strechn(itel),eigvn(itel,*),ffn1(itel,*),frotn1(itel,*),strechn1(itel),eigvn1(itel,*),kcus(2)
logical stress_recovery logical stress_recovery
if(lovl==6) then stress_recovery = (lovl == 6)
stress_recovery = .true.
else
stress_recovery = .false.
endif
! !
! subroutine cpfem_general(mpie_ffn, mpie_ffn1, temperature, mpie_inc, mpie_subinc, mpie_cn, ! subroutine cpfem_general(mpie_ffn, mpie_ffn1, temperature, mpie_inc, mpie_subinc, mpie_cn,
! mpie_stress_recovery, mpie_tinc, mpie_en, mpie_in, mpie_s, mpie_d, mpie_ngens) ! mpie_stress_recovery, mpie_tinc, mpie_en, mpie_in, mpie_s, mpie_d, mpie_ngens)
!******************************************************************** !********************************************************************
! This routine calculates the material behaviour ! This routine calculates the material behaviour
!******************************************************************** !********************************************************************
! mpie_ffn deformation gradient for t=t0 ! mpie_ffn deformation gradient for t=t0
! mpie_ffn1 deformation gradient for t=t1 ! mpie_ffn1 deformation gradient for t=t1
! temperature temperature
! mpie_inc increment number ! temperature temperature
! mpie_subinc subincrement number
! mpie_inc increment number
! mpie_subinc subincrement number
! mpie_cn number of cycle ! mpie_cn number of cycle
! mpie_stress_recovery indicates wether we are in stiffness assemly(lovl==4) or stress recovery(lovl==6) ! mpie_stress_recovery indicates wether we are in stiffness assemly(lovl==4) or stress recovery(lovl==6)
! mpie_tinc time increment ! mpie_tinc time increment
! mpie_en element number ! mpie_en element number
! mpie_in intergration point number ! mpie_in intergration point number
! mpie_s stress vector in Marc notation, i.e. 11 22 33 12, 23, 13
! mpie_d jacoby in Marc notation ! mpie_s stress vector in Marc notation, i.e. 11 22 33 12, 23, 13
! mpie_d jacoby in Marc notation
! mpie_ngens size of stress strain law ! mpie_ngens size of stress strain law
!******************************************************************** !********************************************************************
call CPFEM_general(ffn, ffn1, t(1), inc, incsub, ncycle, stress_recovery, timinc, n(1), nn, s, d, ngens) call CPFEM_general(ffn, ffn1, t(1), inc, incsub, ncycle, stress_recovery, timinc, n(1), nn, s, d, ngens)
! Mandel: 11, 22, 33, SQRT(2)*12, SQRT(2)*23, SQRT(2)*13
! Marc: 11, 22, 33, 12, 23, 13
forall(i=1:ngens) d(1:ngens,i) = invnrmMandel(i)*d(1:ngens,i)*invnrmMandel(1:ngens)
s(1:ngens) = s(1:ngens)*invnrmMandel(1:ngens)
return return
END SUBROUTINE END SUBROUTINE