OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
accdtdc.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!|| accdtdc ../engine/source/elements/thickshell/solidec/accdtdc.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!||====================================================================
28 SUBROUTINE accdtdc(EFTSK ,ELTSK ,IENUNL ,ALPHA_DC, A ,MS ,ITAB )
29C-----------------------------------------------------------------------
30C I m p l i c i t T y p e s
31C-----------------------------------------------
32#include "implicit_f.inc"
33C-----------------------------------------------
34C D u m m y A r g u m e n t s
35C-----------------------------------------------
36 INTEGER EFTSK ,ELTSK ,IENUNL(2,*), ITAB(*)
38 . a(3,*) ,alpha_dc(*),ms(*)
39C-----------------------------------------------
40C L o c a l V a r i a b l e s
41C-----------------------------------------------
42 INTEGER I,N1,N2,inn
44 . am(3),ad(3),alpha_1,f1(3),f2(3),mss_1
45C-----------------------------------------------
46C S o u r c e L i n e s
47C-----------------------------------------------
48
49 !------------------------------------------------!
50 ! MODIF ACCELERATIONS (TRANSLATIONS) !
51 !------------------------------------------------!
52#include "vectorize.inc"
53 DO i=eftsk ,eltsk
54 n1= ienunl(1,i)
55 n2= ienunl(2,i)
56 IF (max(alpha_dc(n1),alpha_dc(n2))<=one) cycle
57 IF (max(ms(n1),ms(n2))==zero) cycle
58 IF (ms(n1)==zero) THEN
59 f1(1:3) = a(1:3,n1)
60 ELSE
61 f1(1:3) = ms(n1)*a(1:3,n1)
62 END IF
63 IF (ms(n2)==zero) THEN
64 f2(1:3) = a(1:3,n2)
65 ELSE
66 f2(1:3) = ms(n2)*a(1:3,n2)
67 END IF
68 mss_1 = one/(ms(n1)+ms(n2))
69 am(1:3) = (f1(1:3)+f2(1:3))*mss_1
70 ad(1:3) = (f2(1:3)-f1(1:3))*mss_1
71 alpha_1 =one/max(alpha_dc(n1),alpha_dc(n2))
72 a(1:3,n1) = am(1:3) - ad(1:3)*alpha_1
73 a(1:3,n2) = am(1:3) + ad(1:3)*alpha_1
74 END DO
75C
76 RETURN
77 END
subroutine accdtdc(eftsk, eltsk, ienunl, alpha_dc, a, ms, itab)
Definition accdtdc.F:29
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21