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

Go to the source code of this file.

Functions/Subroutines

subroutine shell_reactivation (i, ii, l0fram1, l0fram2, node_fram1, node_fram2, gstr, nel, xl2, yl2, xl3, yl3, xl4, yl4, offset, n_dir2, dira_x, dira_y, smstr, ismstr, l_smstr, orient)
subroutine hencky_strain (ff, hh)

Function/Subroutine Documentation

◆ hencky_strain()

subroutine hencky_strain ( dimension(2,2), intent(in) ff,
dimension(2,2), intent(out) hh )

Definition at line 185 of file shell_reactivation.F.

186C-----------------------------------------------
187C I m p l i c i t T y p e s
188C-----------------------------------------------
189#include "implicit_f.inc"
190C-----------------------------------------------
191C D u m m y A r g u m e n t s
192C-----------------------------------------------
193 my_real, INTENT(IN) :: ff(2,2)
194 my_real, INTENT(OUT) :: hh(2,2)
195C-----------------------------------------------
196C L o c a l V a r i a b l e s
197C-----------------------------------------------
198 INTEGER I,J,K,NROT
199 my_real ftf(2,2),ftf_val(2),ftf_vec(2,2),hhb(2,2)
200C------------------------------------------------
201C
202 ftf(1,1) = ff(1,1)**2 + ff(2,1)**2
203 ftf(2,2) = ff(2,2)**2 + ff(1,2)**2
204 ftf(1,2) = ff(1,1)*ff(1,2) + ff(2,1)*ff(2,2)
205 ftf(2,1) = ff(1,1)*ff(1,2) + ff(2,1)*ff(2,2)
206C
207 CALL jacobiew(ftf,2,ftf_val,ftf_vec,nrot)
208C
209 ftf_val(1) = log(sqrt(ftf_val(1)))
210 ftf_val(2) = log(sqrt(ftf_val(2)))
211C
212 hh = zero
213 hhb = zero
214C
215 DO i=1,2
216 DO j=1,2
217 hhb(i,j) = hhb(i,j) + ftf_vec(i,j) * ftf_val(j)
218 ENDDO
219 ENDDO
220C
221 DO i=1,2
222 DO j=1,2
223 DO k=1,2
224 hh(i,j) = hh(i,j) + hhb(i,k) * ftf_vec(j,k)
225 ENDDO
226 ENDDO
227 ENDDO
228C
229 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine jacobiew(a, n, ew, ev, nrot)
Definition matrix.F:29

◆ shell_reactivation()

subroutine shell_reactivation ( integer, intent(in) i,
integer, dimension(6), intent(in) ii,
intent(in) l0fram1,
intent(in) l0fram2,
integer, intent(in) node_fram1,
integer, intent(in) node_fram2,
dimension(nel,8), intent(inout) gstr,
integer, intent(in) nel,
intent(in) xl2,
intent(in) yl2,
intent(in) xl3,
intent(in) yl3,
intent(in) xl4,
intent(in) yl4,
intent(in) offset,
dimension(2), intent(in) n_dir2,
intent(inout) dira_x,
intent(inout) dira_y,
double precision, dimension(l_smstr*nel), intent(inout) smstr,
integer, intent(in) ismstr,
integer, intent(in) l_smstr,
integer, intent(in) orient )

Definition at line 30 of file shell_reactivation.F.

35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C D u m m y A r g u m e n t s
41C-----------------------------------------------
42 INTEGER, INTENT(IN) :: I,NODE_FRAM1,NODE_FRAM2,II(6),NEL,ISMSTR,L_SMSTR,ORIENT
43 my_real, INTENT(IN) :: l0fram1,l0fram2,xl2,yl2,xl3,yl3,xl4,yl4,offset,n_dir2(2)
44 my_real, INTENT(INOUT) :: gstr(nel,8),dira_x,dira_y
45 DOUBLE PRECISION, INTENT(INOUT) :: SMSTR(L_SMSTR*NEL)
46C-----------------------------------------------
47C L o c a l V a r i a b l e s
48C-----------------------------------------------
49 INTEGER NODE_FRAM_S,NODE_CORES_DIR1(4)
50 my_real
51 . xll(4),yll(4),dist,area0,ff(2,2),hh(2,2),
52 . ux13,ux24,uy13,uy24,px1b,px2b,py1b,py2b,vec(2),n_dir1(2)
53C---------------------------------------------------------
54C
55C---------------------------------------------------------
56C Computation of DIR1
57C---------------------------------------------------------
58C
59 IF (orient == 1) THEN
60 node_cores_dir1(1) = 2
61 node_cores_dir1(2) = 1
62 node_cores_dir1(3) = 4
63 node_cores_dir1(4) = 3
64 ELSE
65 node_cores_dir1(1) = 4
66 node_cores_dir1(2) = 3
67 node_cores_dir1(3) = 2
68 node_cores_dir1(4) = 1
69 ENDIF
70C
71 xll(1) = zero
72 xll(2) = xl2
73 xll(3) = xl3
74 xll(4) = xl4
75 yll(1) = zero
76 yll(2) = yl2
77 yll(3) = yl3
78 yll(4) = yl4
79C
80 node_fram_s = node_cores_dir1(node_fram1)
81 vec(1) = xll(node_fram_s)-xll(node_fram1)
82 vec(2) = yll(node_fram_s)-yll(node_fram1)
83 dist = sqrt(vec(1)**2+vec(2)**2)
84 n_dir1(1) = vec(1)/(dist*two)
85 n_dir1(2) = vec(2)/(dist*two)
86C
87 node_fram_s = node_cores_dir1(node_fram2)
88 vec(1) = xll(node_fram_s)-xll(node_fram2)
89 vec(2) = yll(node_fram_s)-yll(node_fram2)
90 dist = sqrt(vec(1)**2+vec(2)**2)
91 n_dir1(1) = n_dir1(1) + vec(1)/(dist*two)
92 n_dir1(2) = n_dir1(2) + vec(2)/(dist*two)
93C
94C---------------------------------------------------------
95C Computation of new reference configuration
96C---------------------------------------------------------
97C
98C-- first fram released from sliring - node_fram_s moved in ref configuration
99 node_fram_s = node_cores_dir1(node_fram1)
100 xll(node_fram1) = offset*n_dir1(1)
101 yll(node_fram1) = offset*n_dir1(2)
102 xll(node_fram_s) = xll(node_fram1) + l0fram1*n_dir1(1)
103 yll(node_fram_s) = yll(node_fram1) + l0fram1*n_dir1(2)
104C
105C-- second fram released from sliring - node_fram_s moved in ref configuration
106 node_fram_s = node_cores_dir1(node_fram2)
107 xll(node_fram2) = n_dir2(1)
108 yll(node_fram2) = n_dir2(2)
109 xll(node_fram_s) = xll(node_fram2) + l0fram2*n_dir1(1)
110 yll(node_fram_s) = yll(node_fram2) + l0fram2*n_dir1(2)
111
112C-- origin reset to N1
113 xll(2) = xll(2)-xll(1)
114 xll(3) = xll(3)-xll(1)
115 xll(4) = xll(4)-xll(1)
116 yll(2) = yll(2)-yll(1)
117 yll(3) = yll(3)-yll(1)
118 yll(4) = yll(4)-yll(1)
119
120C-- update of orthotropy directions
121 dira_x = n_dir1(1)
122 dira_y = n_dir1(2)
123C
124C---------------------------------------------------------
125C Computation of true strain (Hencky) HH = LOG(SQRT(FT*F))
126C---------------------------------------------------------
127C
128 IF (ismstr /= 11) THEN
129C
130 ux13=-xl3
131 ux24=xl2-xl4
132 uy13=-yl3
133 uy24=yl2-yl4
134C
135 px1b = (yll(2)-yll(4))*half
136 py1b = (xll(4)-xll(2))*half
137 px2b = yll(3)*half
138 py2b = -xll(3)*half
139 area0 = half*((xll(2)-xll(4))*yll(3)-xll(3)*(yll(2)-yll(4)))
140C
141C-- Matrix F (gradient transformation)
142 ff(1,1)=(px1b*ux13+px2b*ux24)/area0
143 ff(2,2)=(py1b*uy13+py2b*uy24)/area0
144 ff(1,2)=(py1b*ux13+py2b*ux24)/area0
145 ff(2,1)=(px1b*uy13+px2b*uy24)/area0
146
147C-- computation of LOG(SQRT(FT*F))
148 CALL hencky_strain(ff,hh)
149C
150 gstr(i,1)=hh(1,1)
151 gstr(i,2)=hh(2,2)
152 gstr(i,3)=hh(1,2)*two
153 gstr(i,4)=zero
154 gstr(i,5)=zero
155 gstr(i,6)=zero
156 gstr(i,7)=zero
157 gstr(i,8)=zero
158C
159 ELSE
160C
161 smstr(ii(1)+i-1)=xll(2)
162 smstr(ii(2)+i-1)=yll(2)
163 smstr(ii(3)+i-1)=xll(3)
164 smstr(ii(4)+i-1)=yll(3)
165 smstr(ii(5)+i-1)=xll(4)
166 smstr(ii(6)+i-1)=yll(4)
167C
168 ENDIF
169C
170C----------------------------------------------------------
171C----------------------------------------------------------
172C----------------------------------------------------------
173C----------------------------------------------------------
174 RETURN
175C
subroutine hencky_strain(ff, hh)