OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
q4defo2.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com08_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine q4defo2 (py1, py2, py3, py4, pz1, pz2, pz3, pz4, byz1, byz2, byz3, byz4, bzy1, bzy2, bzy3, bzy4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, eyz, eyy, ezz, exx, wxx, r22, r23, ay, off, offg, volo, eint, dsv, icp, fac, nel, jcvt)

Function/Subroutine Documentation

◆ q4defo2()

subroutine q4defo2 ( py1,
py2,
py3,
py4,
pz1,
pz2,
pz3,
pz4,
byz1,
byz2,
byz3,
byz4,
bzy1,
bzy2,
bzy3,
bzy4,
vy1,
vy2,
vy3,
vy4,
vz1,
vz2,
vz3,
vz4,
eyz,
eyy,
ezz,
exx,
wxx,
r22,
r23,
ay,
off,
offg,
volo,
eint,
dsv,
integer icp,
fac,
integer, intent(in) nel,
integer, intent(in) jcvt )

Definition at line 28 of file q4defo2.F.

40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44C-----------------------------------------------
45C G l o b a l P a r a m e t e r s
46C-----------------------------------------------
47#include "mvsiz_p.inc"
48C-----------------------------------------------
49C C o m m o n B l o c k s
50C-----------------------------------------------
51#include "com08_c.inc"
52C-----------------------------------------------
53C D u m m y A r g u m e n t s
54C-----------------------------------------------
55 INTEGER, INTENT(IN) :: NEL
56 INTEGER, INTENT(IN) :: JCVT
57 INTEGER ICP
58C REAL
60 . py1(*),py2(*),py3(*),py4(*),
61 . pz1(*),pz2(*),pz3(*),pz4(*),
62 . byz1(*),byz2(*),byz3(*),byz4(*),
63 . bzy1(*),bzy2(*),bzy3(*),bzy4(*),
64 . vy1(*),vy2(*),vy3(*),vy4(*),
65 . vz1(*),vz2(*),vz3(*),vz4(*),
66 . eyz(*),eyy(*),ezz(*),exx(*),wxx(*),
67 . r22(*),r23(*),
68 . ay(*),off(*),offg(*),volo(*),
69 . eint(*),dsv(*),fac(*)
70C-----------------------------------------------
71c FUNCTION:
72c ARGUMENTS: (I: input, O: output, IO: input & output, W: workspace)
73c TYPE NAME FUNCTION
74c I PY1(*)~PZ4(*) - SHAPE DERIVATIVES
75c I VY1(*)~VZ4(*) - NODAL VELOCITIES
76c O EYY(*),EZZ(*),EXX(*) - RATE OF NORMAL STRAIN
77c O WXX(*) - COMPONENT OF ROTATION TENSOR
78c I AY(*) - Ni/r AT CENTER FOR AXISYMMETRIC CASE
79c IO OFF(*) - ELEMENT D/A FLAG, OF POINT
80c I OFFG(*) - ELEMENT D/A FLAG, OVERALL
81c IO VOLO(*) - EV(NB6)
82c IO EINT(*) - EV(NB3)
83c I DSV(*) - VOLUME STRAIN RATE AT CENTER
84c I ICP - FLAG FOR CONSTANT PRESURE
85c I FAC(*) - FRACTION ABOUT PLASTICITY STATE
86c I R22(*)~R33(*) - TRANSFORMATION MATRIX
87C-----------------------------------------------
88C L o c a l V a r i a b l e s
89C-----------------------------------------------
90 INTEGER I
91C REAL
93 . dyz(mvsiz),dzy(mvsiz),
94 . dvc(mvsiz),dv1,tol,
95 . dt1d2,vyg
96C-----------------------------------------------
97C S o u r c e L i n e s
98C-----------------------------------------------
99C STRAIN RATE BEFORE CORRECTION
100 DO i=1,nel
101 eyy(i)=py1(i)*vy1(i)+py2(i)*vy2(i)+py3(i)*vy3(i)+py4(i)*vy4(i)
102 ezz(i)=pz1(i)*vz1(i)+pz2(i)*vz2(i)+pz3(i)*vz3(i)+pz4(i)*vz4(i)
103 dyz(i)=pz1(i)*vy1(i)+pz2(i)*vy2(i)+pz3(i)*vy3(i)+pz4(i)*vy4(i)
104 dzy(i)=py1(i)*vz1(i)+py2(i)*vz2(i)+py3(i)*vz3(i)+py4(i)*vz4(i)
105 ENDDO
106C
107Ccw>>>
108C
109C STRAIN RATE AFTER CORRECTION AND INTRINSIC ROTATION
110 dt1d2=half*dt1
111 IF(jcvt==0) THEN
112 DO i=1,nel
113 wxx(i)=dt1d2*(dzy(i)-dyz(i))
114 ENDDO
115 ELSE
116 DO i=1,nel
117 wxx(i)=zero
118 eyy(i)=eyy(i)-dt1d2*(eyy(i)*eyy(i)+dzy(i)*dzy(i))
119 ezz(i)=ezz(i)-dt1d2*(ezz(i)*ezz(i)+dyz(i)*dyz(i))
120 ENDDO
121 ENDIF
122C
123Ccw<<<
124 DO i=1,nel
125 dvc(i)=eyy(i)+ezz(i)+exx(i)
126 ENDDO
127Ccw>>> ----- only assumed strain
128 DO i=1,nel
129 eyy(i)=eyy(i)+
130 . byz1(i)*vz1(i)+byz2(i)*vz2(i)+byz3(i)*vz3(i)+byz4(i)*vz4(i)
131 ezz(i)=ezz(i)+
132 . bzy1(i)*vy1(i)+bzy2(i)*vy2(i)+bzy3(i)*vy3(i)+bzy4(i)*vy4(i)
133 ENDDO
134C
135C
136Ccw<<<
137C MODIFY NORMAL STRAIN RATE FOR CONSTANT PRESSURE CASE
138c IF(ICP>0) THEN
139c IF(N2D==1) THEN
140c IF(ICP==2) THEN
141c DO I=1,NEL
142c DVC(I)=FAC(I)*THIRD*(DSV(I)-DVC(I))
143c EYY(I)=EYY(I)+DVC(I)
144c EZZ(I)=EZZ(I)+DVC(I)
145c EXX(I)=EXX(I)+DVC(I)
146c ENDDO
147c ELSEIF(ICP==1) THEN
148c DO I=1,NEL
149c DVC(I)=THIRD*(DSV(I)-DVC(I))
150c EYY(I)=EYY(I)+DVC(I)
151c EZZ(I)=EZZ(I)+DVC(I)
152c EXX(I)=EXXC(I)+DVC(I)
153c ENDDO
154c ENDIF
155c ELSE
156c IF(ICP==2) THEN
157c DO I=1,NEL
158c DVC(I)=FAC(I)*HALF*(DSV(I)-DVC(I))
159c EYY(I)=EYY(I)+DVC(I)
160c EZZ(I)=EZZ(I)+DVC(I)
161c ENDDO
162c ELSEIF(ICP==1) THEN
163c DO I=1,NEL
164c DVC(I)=HALF*(DSV(I)-DVC(I))
165c EYY(I)=EYY(I)+DVC(I)
166c EZZ(I)=EZZ(I)+DVC(I)
167c ENDDO
168c ENDIF
169c END IF!(N2D==1) THEN
170C----For hypoelastic laws-----
171c DO I=1,NEL
172c IF(OFFG(I)==TWO) CYCLE
173c DV1 = ONE- DVC(I)*DT1
174c VOLO(I) = VOLO(I)*DV1
175c EINT(I) = EINT(I)/DV1
176c ENDDO
177c END IF!(ICP>0) THEN
178Ccw>>>
179C
180 RETURN
#define my_real
Definition cppsort.cpp:32