From f4edf4bd0c559c979f7a415d4654e39db485ed64 Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Mon, 18 Feb 2008 18:49:06 +0000 Subject: [PATCH] 2007 shortened stress_recovery = ... added (crucial) deMandeling for return values of CPFEM_general 2005 matched to 2007 version --- trunk/mpie_cpfem_marc2005r3.f90 | 10 ++++++- trunk/mpie_cpfem_marc2007r1.f90 | 53 ++++++++++++++++++++------------- 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/trunk/mpie_cpfem_marc2005r3.f90 b/trunk/mpie_cpfem_marc2005r3.f90 index 7364ade17..ec425eaf0 100644 --- a/trunk/mpie_cpfem_marc2005r3.f90 +++ b/trunk/mpie_cpfem_marc2005r3.f90 @@ -4,7 +4,7 @@ ! written by F. Roters, P. Eisenlohr, L. Hantcherli, W.A. Counts ! MPI fuer Eisenforschung, Duesseldorf ! -! last modified: 08.11.2007 +! last modified: 18.02.2005 !******************************************************************** ! Usage: ! - 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,*),& 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, ! 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 !******************************************************************** 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 END SUBROUTINE diff --git a/trunk/mpie_cpfem_marc2007r1.f90 b/trunk/mpie_cpfem_marc2007r1.f90 index 9916854f0..003a6c740 100644 --- a/trunk/mpie_cpfem_marc2007r1.f90 +++ b/trunk/mpie_cpfem_marc2007r1.f90 @@ -27,8 +27,8 @@ ! - creeps: timinc !******************************************************************** ! - include "prec.f90" - include "debug.f90" + include "prec.f90" + include "debug.f90" include "math.f90" include "IO.f90" include "mesh.f90" @@ -121,8 +121,10 @@ !3 continue ! - use prec, only: pReal,pInt + use prec, only: pReal,pInt + use CPFEM, only: CPFEM_general + use math, only: invnrmMandel implicit real(pReal) (a-h,o-z) ! ! 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 ! 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) - - logical stress_recovery - - if(lovl==6) then - stress_recovery = .true. - else - stress_recovery = .false. - endif + 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) !******************************************************************** ! This routine calculates the material behaviour !******************************************************************** ! mpie_ffn deformation gradient for t=t0 -! mpie_ffn1 deformation gradient for t=t1 -! temperature temperature -! mpie_inc increment number -! mpie_subinc subincrement number +! mpie_ffn1 deformation gradient for t=t1 + +! temperature temperature + +! mpie_inc increment number + +! mpie_subinc subincrement number + ! 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_en element 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_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_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) +! 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 END SUBROUTINE