OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
xforc30.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!|| xforc30 ../engine/source/elements/xelem/xforc30.F
25!||--- called by ------------------------------------------------------
26!|| xforc3 ../engine/source/elements/xelem/xforc3.F
27!||--- calls -----------------------------------------------------
28!|| get_u_func ../engine/source/user_interface/ufunc.F
29!|| get_u_mid ../engine/source/user_interface/upidmid.F
30!|| get_u_mnu ../engine/source/user_interface/upidmid.F
31!|| get_u_pid ../engine/source/user_interface/upidmid.F
32!|| get_u_pnu ../engine/source/user_interface/upidmid.F
33!||====================================================================
34 SUBROUTINE xforc30(NX ,
35 2 XEL ,VEL ,VREL ,UIX ,UID ,
36 3 IOUT ,IPROP ,IMAT ,OFF ,KEINT ,
37 4 EINT ,MASS ,XINER ,STIFM ,STIFR ,
38 5 VISCM ,VISCR ,FORC ,TORQ ,
39 6 NUVAR ,UVAR ,NUVARN ,UVARN ,
40 7 DT ,DTE )
41C-------------------------------------------------------------------------
42C This subroutine computes multipurpose element forces and moments
43C (when element uses user property TYPE30).
44C-------------------------------------------------------------------------
45C----------+---------+---+---+--------------------------------------------
46C VAR | SIZE |TYP| RW| DEFINITION
47C----------+---------+---+---+--------------------------------------------
48C NX | 1 | I | R | NUMBER OF NODES (CONSTANT IN THE GROUP)
49C----------+---------+---+---+--------------------------------------------
50C XEL | 3*NX | F | R | NODES COORDINATES
51C VEL | 3*NX | F | R | NODES VELOCITIES
52C VREL | 3*NX | F | R | NODES ROTATIONAL VELOCITIES
53C----------+---------+---+---+--------------------------------------------
54C UIX | NX | I | R | ELEMENT CONNECTIVITY
55C | IX(J) (1<=J<=NX) : NODE J USER ID
56C UID | 1 | I | R | ELEMENT USER IDENTIFIER
57C----------+---------+---+---+--------------------------------------------
58C IOUT | 1 | I | R | OUTPUT FILE UNIT (L00 file)
59C IPROP | 1 | I | R | PROPERTY NUMBER
60C IMAT | 1 | I | R | MATERIAL NUMBER
61C----------+---------+---+---+--------------------------------------------
62C OFF | 1 | F | W | ELEMENT STATE (ON=1./OFF=0.)
63C KEINT | 1 | I | W | ELEMENT INTERNAL ENERGY FLAG
64C | 0 | HAS TO BE COMPUTED BY RADIOSS OUT OF USER ROUTINE.
65C | 1 | IS RETURNED BY THIS USER ROUTINE.
66C EINT | 1 | F | W | ELEMENT INTERNAL ENERGY IF KEINT=1
67C----------+---------+---+---+--------------------------------------------
68C MASS | NX | F | W | NODAL MASS
69C XINER | NX | F | W | NODAL INERTIA (SPHERICAL)
70C STIFM | NX | F | W | NODAL STIFNESS (TIME STEP)
71C STIFR | NX | F | W | NODAL ROTATION STIFNESS (TIME STEP)
72C VISCM | NX | F | W | NODAL VISCOSITY (TIME STEP)
73C VISCR | NX | F | W | NODAL ROTATION VISCOSITY (TIME STEP)
74C----------+---------+---+---+--------------------------------------------
75C FORC | 3*NX | F | W | NODAL FORCES
76C TORQ | 3*NX | F | W | NODAL TORQUS
77C----------+---------+---+---+--------------------------------------------
78C NUVAR | 1 | I | R | NUMBER OF USER ELEMENT VARIABLES
79C UVAR |NUVAR | F |R/W| USER ELEMENT VARIABLES
80C | (FIX SIZE ZONE)
81C NUVARN | 1 | I | R | NUMBER OF USER ELEMENT VARIABLES PER NODE
82C UVARN |NUVARN*NX| F |R/W| USER ELEMENT VARIABLES PER NODE
83C | (NX DEPENDENT SIZE ZONE)
84C----------+---------+---+---+--------------------------------------------
85C DT | 1 | F | R | PREVIOUS TIME INCREMENT :
86C | CURRENT TIME POINT IS T = TOLD+DT
87C----------+---------+---+---+--------------------------------------------
88C DTE | 1 | F | W | ELEMENT TIME STEP
89C----------+---------+---+---+--------------------------------------------
90C-------------------------------------------------------------------------
91C FUNCTION
92C-------------------------------------------------------------------------
93C INTEGER II = GET_U_PNU(I,IP,KK)
94C IFUNCI = GET_U_PNU(I,IP,KFUNC)
95C IPROPI = GET_U_PNU(I,IP,KFUNC)
96C IMATI = GET_U_PNU(I,IP,KMAT)
97C I : VARIABLE INDEX(1 for first variable,...)
98C IP : PROPERTY NUMBER
99C KK : PARAMETER KFUNC,KMAT,KPROP
100C THIS FUNCTION RETURN THE USER STORED FUNCTION(IF KK=KFUNC),
101C MATERIAL(IF KK=KMAT) OR PROPERTY(IF KK=KPROP) NUMBER.
102C SEE LECG30 FOR CORRESPONDING ID STORAGE.
103C-------------------------------------------------------------------------
104C INTEGER IFUNCI = GET_U_MNU(I,IM,KFUNC)
105C I : VARIABLE INDEX(1 for first function)
106C IM : MATERIAL NUMBER
107C KFUNC : ONLY FUNCTION ARE YET AVAILABLE.
108C THIS FUNCTION RETURN THE USER STORED FUNCTION NUMBER(function
109C referred by users materials).
110C SEE LECM30 FOR CORRESPONDING ID STORAGE.
111C-------------------------------------------------------------------------
112C my_real PARAMI = GET_U_GEO(I,IP)
113C I : PARAMETER INDEX(1 for first parameter,...)
114C IP : PROPERTY NUMBER
115C THIS FUNCTION RETURN THE USER GEOMETRY PARAMETERS
116C NOTE: IF(IP==IPROP) UPARAG(I) == GET_U_GEO(I,IPROP)
117C-------------------------------------------------------------------------
118C my_real PARAMI = GET_U_MAT(I,IM)
119C I : PARAMETER INDEX(1 for first parameter,...)
120C IM : MATERIAL NUMBER
121C THIS FUNCTION RETURN THE USER MATERIAL PARAMETERS
122C NOTE: GET_U_MAT(0,IMAT) RETURN THE DENSITY
123C-------------------------------------------------------------------------
124C INTEGER PID = GET_U_PID(IP)
125C IP : PROPERTY NUMBER
126C THIS FUNCTION RETURN THE USER PROPERTY ID CORRESPONDING TO
127C USER PROPERTY NUMBER IP.
128C-------------------------------------------------------------------------
129C INTEGER MID = GET_U_MID(IM)
130C IM : MATERIAL NUMBER
131C THIS FUNCTION RETURN THE USER MATERIAL ID CORRESPONDING TO
132C USER MATERIAL NUMBER IM.
133C-------------------------------------------------------------------------
134C my_real Y = GET_U_FUNC(IFUNC,X,DXDY)
135C IFUNC : function number obtained by
136C IFUNC = GET_U_MNU(I,IM,KFUNC) or IFUNC = GET_U_PNU(I,IP,KFUNC)
137C X : X value
138C DXDY : slope dX/dY
139C THIS FUNCTION RETURN Y(X)
140C-------------------------------------------------------------------------
141C-----------------------------------------------
142C I m p l i c i t T y p e s
143C-----------------------------------------------
144#include "implicit_f.inc"
145C----------------------------------------------------------
146C D u m m y A r g u m e n t s a n d F u n c t i o n
147C----------------------------------------------------------
148 INTEGER IOUT,NUVAR,NUVARN,IPROP,IMAT,
149 . NX ,UIX(NX) ,UID, KEINT,
150 . GET_U_PNU,GET_U_PID,GET_U_MID,GET_U_MNU,
151 . KFUNC,KMAT,KPROP
152 my_real
153 . OFF, EINT, XEL(3,NX), VEL(3,NX) ,VREL(3,NX),
154 . mass(nx) , xiner(nx) ,stifm(nx) ,
155 . stifr(nx), viscm(nx) ,viscr(nx) ,
156 . forc(3,nx), torq(3,nx),
157 . uvar(nuvar),uvarn(nuvarn*nx),dt ,dte ,
158 . get_u_mat, get_u_geo, get_u_func
159 EXTERNAL get_u_mnu,get_u_pnu,get_u_mid,get_u_pid,
160 . get_u_mat,get_u_geo, get_u_func
161 parameter(kfunc=29)
162 parameter(kmat=31)
163 parameter(kprop=33)
164C=======================================================================
165 RETURN
166 END
subroutine xforc30(nx, xel, vel, vrel, uix, uid, iout, iprop, imat, off, keint, eint, mass, xiner, stifm, stifr, viscm, viscr, forc, torq, nuvar, uvar, nuvarn, uvarn, dt, dte)
Definition xforc30.F:41