OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fr.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!|| frv ../engine/source/materials/mat/mat024/fr.F
25!||--- called by ------------------------------------------------------
26!|| crit24 ../engine/source/materials/mat/mat024/crit24.F
27!||====================================================================
28 SUBROUTINE frv(S1,S2,S3,S4,S5,S6,
29 . SM,VK0,VK,ROB,FC,RT,RC,
30 . RCT1,RCT2,AA,AC,BC,BT,
31 . ROK,TOL,FA,NINDEX,INDEX,IBUG,
32 . NEL,SEQ,ICRIT_OUTP)
33C-----------------------------------------------
34C I m p l i c i t T y p e s
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C D u m m y A r g u m e n t s
39C-----------------------------------------------
40 INTEGER NINDEX, INDEX(NEL),ICRIT_OUTP
41 my_real :: FC,RT,RC,RCT1,RCT2,AA,AC,BC,BT,TOL
42 my_real, DIMENSION(NEL) :: S1,S2,S3,S4,S5,S6,SM,VK0,ROB,ROK,FA,SEQ
43 my_real, DIMENSION(NEL),INTENT(OUT):: VK
44C-----------------------------------------------
45C L o c a l V a r i a b l e s
46C-----------------------------------------------
47 INTEGER I, N, NEL, IBUG
48 my_real BB, DF, RF, R2, AJ3, CS3T
49C=======================================================================
50#include "vectorize.inc"
51 DO n = 1,nindex
52 i = index(n)
53 IF (i > 0) THEN
54 IF (sm(i) >= rt-tol ) THEN
55 vk(i) = one
56 ELSEIF( sm(i) > rc ) THEN
57 vk(i) = one+(one-vk0(i))*(rct1-two*rc*sm(i)+sm(i)**2)/rct2
58 ELSEIF(sm(i) > rok(i))THEN
59 vk(i) = vk0(i)
60 ELSE
61 vk(i) = vk0(i)*(one - ((sm(i)-rok(i))/(rob(i)-rok(i)))**2)
62 ENDIF
63C
64 IF (sm(i) > ac/aa) THEN
65 fa(i) = half*(sm(i)-ac/aa) / min(bc,bt)/fc
66 ELSEIF (sm(i) <= rob(i)) THEN
67 bb = max(bc,bt)
68 df = sqrt(bb*bb-aa*rob(i)+ac)
69 rf = (-bb+df)/aa
70 fa(i) = two*rf*(sm(i)-rob(i))/(rob(i)-rok(i))/fc
71 ELSE
72 r2 = (s1(i)**2+s2(i)**2+s3(i)**2)+ two*s4(i)**2+two*s5(i)**2
73 . + two*s6(i)**2
74 IF (ibug == 0) THEN
75 aj3 = s1(i)*s2(i)*s3(i)-s1(i)*s5(i)*s5(i)-s2(i)*s6(i)*s6(i)
76 . - s3(i)*s4(i)*s4(i) + two*s4(i)*s5(i)*s6(i)
77 ELSE ! old version
78 aj3 = s1(i)*s2(i)*s3(i)-s1(i)*s5(i)*s5(i)-s2(i)*s6(i)*s6(i)
79 . - s3(i)*s4(i)*s4(i)
80 ENDIF
81c
82 cs3t = half * aj3*(three/(half*max(r2,em20)))**three_half
83 cs3t = min(one,cs3t)
84 cs3t = max(-one,cs3t)
85 bb = half*((one -cs3t)*bc+(one +cs3t)*bt)
86 df = sqrt(max(zero,bb*bb-aa*sm(i)+ac,zero))
87 rf = (-bb+df)/aa
88 fa(i)=(sqrt(r2)-vk(i)*rf)/fc
89c
90!! IF (ICRIT_OUTP == 0) THEN ! (EQUIVALENT STRESS)/CTITERION FOR OUTPUT
91!! SEQ(I) = FA(I)
92!! ICRIT_OUTP = 1
93!! ENDIF ! IF (ICRIT_OUTP == 0)
94 ENDIF
95c
96 ENDIF
97 ENDDO
98c-----------
99 RETURN
100 END
subroutine frv(s1, s2, s3, s4, s5, s6, sm, vk0, vk, rob, fc, rt, rc, rct1, rct2, aa, ac, bc, bt, rok, tol, fa, nindex, index, ibug, nel, seq, icrit_outp)
Definition fr.F:33
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21