OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
q4defoc2.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| q4defoc2 ../engine/source/elements/solid_2d/quad4/q4defoc2.F
25!||--- called by ------------------------------------------------------
26!|| q4forc2 ../engine/source/elements/solid_2d/quad4/q4forc2.F
27!||====================================================================
28 SUBROUTINE q4defoc2(
29 1 VY1, VY2, VY3, VY4,
30 2 VZ1, VZ2, VZ3, VZ4,
31 3 PYC1, PYC2, PZC1, PZC2,
32 4 AIRE, EYZ, EXX, DSV,
33 5 ICP, NEL, JCVT)
34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38C-----------------------------------------------
39C G l o b a l P a r a m e t e r s
40C-----------------------------------------------
41#include "mvsiz_p.inc"
42C-----------------------------------------------
43C C o m m o n B l o c k s
44C-----------------------------------------------
45#include "com01_c.inc"
46#include "com08_c.inc"
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50 INTEGER, INTENT(IN) :: NEL
51 INTEGER, INTENT(IN) :: JCVT
52C REAL
53 my_real
54 . VY1(*),VY2(*),VY3(*),VY4(*),
55 . vz1(*),vz2(*),vz3(*),vz4(*),
56 . pyc1(*),pyc2(*),pzc1(*),pzc2(*),aire(*),
57 . eyz(*),exx(*),dsv(*)
58 INTEGER ICP
59C-----------------------------------------------
60c FUNCTION:
61c ARGUMENTS: (I: input, O: output, IO: input & output, W: workspace)
62c TYPE NAME FUNCTION
63c I VY1(*)~VZ4(*) - NODAL VELOCITIES
64c I PYC1(*)~PZC2(*) - SHAPE DERIVATIVES AT CENTER
65c I AY(*) - Ni/r AT CENTER
66c I AIRE(*) - ELEMENT AREA
67c O EYZ(*) - RATE OF SHEAR STRAIN AT CENTER
68c O EXX(*) - RATE OF X- NORMAL STRAIN AT CENTER
69c O DSV(*) - VOLUME STRAIN RATE AT CENTER
70c I ICP - FLAG FOR CONSTANT PRESURE
71c I R22(*)~R33(*) - TRANSFORMATION MATRIX
72C-----------------------------------------------
73C L o c a l V a r i a b l e s
74C-----------------------------------------------
75 INTEGER I
76 my_real
77 . VY13(MVSIZ),VY24(MVSIZ),VZ13(MVSIZ),VZ24(MVSIZ),
78 . DYZ(MVSIZ),DZY(MVSIZ),DYY(MVSIZ),DZZ(MVSIZ),
79 . VY,VZ
80C-----------------------------------------------
81C S o u r c e L i n e s
82C-----------------------------------------------
83 DO i=1,nel
84 vy13(i) = vy1(i)-vy3(i)
85 vy24(i) = vy2(i)-vy4(i)
86 vz13(i) = vz1(i)-vz3(i)
87 vz24(i) = vz2(i)-vz4(i)
88 ENDDO
89C
90C SHEAR STRAIN RATE AND INTRINSIC ROTATION
91 DO i=1,nel
92 IF(aire(i)>zero) THEN
93 dzy(i) = pyc1(i)*vz13(i)+pyc2(i)*vz24(i)
94 dyz(i) = pzc1(i)*vy13(i)+pzc2(i)*vy24(i)
95 dyy(i) = pyc1(i)*vy13(i)+pyc2(i)*vy24(i)
96 dzz(i) = pzc1(i)*vz13(i)+pzc2(i)*vz24(i)
97 ELSE
98 dzy(i) = zero
99 dyz(i) = zero
100 dyy(i) = zero
101 dzz(i) = zero
102 ENDIF
103 ENDDO
104 IF(jcvt==0) THEN
105 DO i=1,nel
106c WXX(I) = HALF*DT1*(DZY(I)-DYZ(I))
107 eyz(i) = dzy(i)+dyz(i)
108 ENDDO
109 ELSE
110 DO i=1,nel
111c WXX(I) = ZERO
112 eyz(i) = dzy(i)+dyz(i)-dt1*(dyy(i)*dyz(i)+dzy(i)*dzz(i))
113 ENDDO
114 ENDIF
115C
116C X- NORMAL STRAIN RATE
117 IF(n2d/=1) THEN
118 DO i=1,nel
119 exx(i) = zero
120 ENDDO
121 ENDIF
122C
123C VOLUMETRIC STRAIN RATE
124 IF(icp>0) THEN
125 DO i=1,nel
126 dsv(i) = dyy(i)+dzz(i)+exx(i)
127 ENDDO
128 ENDIF
129C
130 RETURN
131 END
subroutine q4defoc2(vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, pyc1, pyc2, pzc1, pzc2, aire, eyz, exx, dsv, icp, nel, jcvt)
Definition q4defoc2.F:34