OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
xforc31.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!|| xforc31 ../engine/source/elements/xelem/xforc31.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 xforc31(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 TYPE31).
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 LECG31 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 LECM31 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
integer function get_u_mnu(ivar, im, k)
Definition uaccess.F:565
subroutine xforc31(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 xforc31.F:41