OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
xcum3.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!|| xcum3 ../engine/source/elements/xelem/xcum3.F
25!||--- called by ------------------------------------------------------
26!|| xforc3 ../engine/source/elements/xelem/xforc3.F
27!||====================================================================
28 SUBROUTINE xcum3(NX,KXX,IXX,UFORC,USTIFM,
29 2 UVISCM,MS,F,STIFN)
30C-----------------------------------------------
31C I m p l i c i t T y p e s
32C-----------------------------------------------
33#include "implicit_f.inc"
34C-----------------------------------------------
35C G l o b a l P a r a m e t e r s
36C-----------------------------------------------
37#include "scr23_c.inc"
38C-----------------------------------------------
39C D u m m y A r g u m e n t s
40C-----------------------------------------------
41 INTEGER NX,KXX(NIXX),IXX(*)
42C REAL
44 . uforc(3,*) ,ustifm(*) , uviscm(*),
45 . f(3,*) ,stifn(*),ms(*)
46C-----------------------------------------------
47C L o c a l V a r i a b l e s
48C-----------------------------------------------
49 INTEGER K, I1, IADNOD
50C REAL
52 . xm, xk, xc, a
53C-----------------------------------------------
54 iadnod=kxx(4)
55C-----
56C stiffnesses and viscosities applied to each node
57C were returned by user routine.
58 DO k=1,nx
59 i1=ixx(iadnod+k-1)
60 xk=ustifm(k)
61 IF (ms(i1)/=zero.AND.xk/=zero) THEN
62 xm= ms(i1)
63 xc= uviscm(k)
64 a = xc/sqrt(four*xk*xm)
65 xk= xk/(sqrt(a**2+ one)-a)**2
66 ELSEIF (xk/=zero) THEN
67 ELSE
68 xc= uviscm(k)
69C XK= 0.5 *XC**2/(2.*MS(I1))
70 xk= fourth*xc**2/max(em15,ms(i1))
71 ENDIF
72 ustifm(k)=xk
73 ENDDO
74C-----
75 DO k=1,nx
76 i1=ixx(iadnod+k-1)
77 f(1,i1)=f(1,i1)+uforc(1,k)
78 f(2,i1)=f(2,i1)+uforc(2,k)
79 f(3,i1)=f(3,i1)+uforc(3,k)
80 stifn(i1)=stifn(i1)+ustifm(k)
81 ENDDO
82 RETURN
83 END
84!||====================================================================
85!|| xcum3p ../engine/source/elements/xelem/xcum3.F
86!||--- called by ------------------------------------------------------
87!|| xforc3 ../engine/source/elements/xelem/xforc3.F
88!||====================================================================
89 SUBROUTINE xcum3p(NX,KXX,IXX,UFORC,USTIFM,
90 2 UVISCM,MS,NISKYL,FSKYI,ISKY)
91C-----------------------------------------------
92C I m p l i c i t T y p e s
93C-----------------------------------------------
94#include "implicit_f.inc"
95C-----------------------------------------------
96C G l o b a l P a r a m e t e r s
97C-----------------------------------------------
98#include "parit_c.inc"
99#include "scr23_c.inc"
100#include "scr18_c.inc"
101C-----------------------------------------------
102C D u m m y A r g u m e n t s
103C-----------------------------------------------
104 INTEGER NX,KXX(NIXX),IXX(*),NISKYL,ISKY(*)
105C REAL
106 my_real
107 . uforc(3,*), ustifm(*), uviscm(*),
108 . ms(*),fskyi(lskyi,nfskyi)
109C-----------------------------------------------
110C L o c a l V a r i a b l e s
111C-----------------------------------------------
112 INTEGER K, I1, IADNOD
113C REAL
114 my_real
115 . xm, xk, xc, a
116C-----------------------------------------------
117C ASSEMBLE
118C-------------------------
119 iadnod=kxx(4)
120 IF(kdtint==0)THEN
121C-----
122C total of stiffnesses and viscosities applied to each node
123C were returned by user routine.
124 DO k=1,nx
125 i1=ixx(iadnod+k-1)
126 xk=ustifm(k)
127 IF (ms(i1)/=zero.AND.xk/=zero) THEN
128 xm= ms(i1)
129 xc= uviscm(k)
130 a = xc/sqrt(four*xk*xm)
131 xk= xk/(sqrt(a**2+ one)-a)**2
132 ELSEIF (xk/=zero) THEN
133 ELSE
134 xc= uviscm(k)
135C XK= 0.5 *XC**2/(2.*MS(I1))
136 xk= fourth*xc**2/max(em15,ms(i1))
137 ENDIF
138 ustifm(k)=xk
139 ENDDO
140C-----
141C vecteur skyline necessaire pour rotations.
142 DO k=1,nx
143 i1=ixx(iadnod+k-1)
144 niskyl=niskyl+1
145 fskyi(niskyl,1)=uforc(1,k)
146 fskyi(niskyl,2)=uforc(2,k)
147 fskyi(niskyl,3)=uforc(3,k)
148 fskyi(niskyl,4)=ustifm(k)
149 isky(niskyl) =i1
150 ENDDO
151 ELSE
152C-----
153C total of stiffnesses and viscosities applied to each node
154C were returned by user routine.
155C vecteur skyline necessaire pour rotations.
156 DO k=1,nx
157 i1=ixx(iadnod+k-1)
158 niskyl=niskyl+1
159 fskyi(niskyl,1)=uforc(1,k)
160 fskyi(niskyl,2)=uforc(2,k)
161 fskyi(niskyl,3)=uforc(3,k)
162C A = XC/SQRT(2.*XK*XM), XK= XK/(SQRT(A**2+1)-A)**2
163C ou XK= 0.5*XC**2/MS(I1)
164 fskyi(niskyl,4)=ustifm(k)
165 fskyi(niskyl,5)=two*uviscm(k)
166 isky(niskyl) =i1
167 ENDDO
168 ENDIF
169C
170 RETURN
171 END
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21
subroutine xcum3(nx, kxx, ixx, uforc, ustifm, uviscm, ms, f, stifn)
Definition xcum3.F:30
subroutine xcum3p(nx, kxx, ixx, uforc, ustifm, uviscm, ms, niskyl, fskyi, isky)
Definition xcum3.F:91