OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
biquad_coefficients.F File Reference
#include "implicit_f.inc"
#include "scr05_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine biquad_coefficients (c1, c2, c3, c4, c5, l, x_1, x_2, e1, e2, e3, e4)

Function/Subroutine Documentation

◆ biquad_coefficients()

subroutine biquad_coefficients ( c1,
c2,
c3,
c4,
c5,
integer l,
x_1,
x_2,
e1,
e2,
e3,
e4 )

Definition at line 32 of file biquad_coefficients.F.

35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39#include "scr05_c.inc"
40C-----------------------------------------------
41C D u m m y A r g u m e n t s
42C-----------------------------------------------
43 INTEGER L
44 my_real c1,c2,c3,c4,c5
45 my_real e1,e2,e3,e4
46 my_real x_1(2),x_2(3)
47C-----------------------------------------------
48C L o c a l V a r i a b l e s
49C-----------------------------------------------
50 INTEGER I, J, K, IPIV2(2), IPIV3(3), INFO
51 my_real triax_1_lin, triax_2_lin, triax_3_lin,
52 . triax_4_lin, triax_5_lin
53 my_real triax_1_quad, triax_2_quad,
54 . triax_3_quad, triax_4_quad, triax_5_quad
55 my_real a_1(2,2), b_1(2)
56 my_real a_2(3,3), b_2(3)
57 DATA triax_1_lin, triax_2_lin, triax_3_lin, triax_4_lin,
58 . triax_5_lin
59 . / -0.33333333, 0.0, 0.33333333, 0.57735, 0.66666667 /
60 DATA triax_1_quad, triax_2_quad, triax_3_quad,
61 . triax_4_quad, triax_5_quad
62 . / 0.111111, 0.0, 0.111111, 0.333333, 0.444444 /
63#ifndef WITHOUT_LINALG
64C=======================================================================
65C
66C pre definition for user-input data when only
67C tension test data are provided
68C
69C=============================================
70 IF (l/=0)THEN
71 IF (l == 1) THEN ! Mild Seel (c3 = 0.6)
72 c1 = 3.5 * c3
73 c2 = 1.6 * c3
74 c4 = 0.6 * c3
75 c5 = 1.5 * c3
76 ELSEIF (l == 2) THEN ! DP600 (c3 = 0.5)
77 c1 = 4.3 * c3
78 c2 = 1.4 * c3
79 c4 = 0.6 * c3
80 c5 = 1.6 * c3
81 ELSEIF (l == 3) THEN ! Boron (c3 = 0.12)
82 c1 = 5.2 * c3
83 c2 = 3.1 * c3
84 c4 = 0.8 * c3
85 c5 = 3.5 * c3
86 ELSEIF (l == 4) THEN ! Aluminium AA5182 (c3 = 0.3)
87 c1 = 5.0 * c3
88 c2 = 1.0 * c3
89 c4 = 0.4 * c3
90 c5 = 0.8 * c3
91 ELSEIF (l == 5) THEN ! Aluminium AA6082-T6 (c3 = 0.17)
92 c1 = 7.8 * c3
93 c2 = 3.5 * c3
94 c4 = 0.6 * c3
95 c5 = 2.8 * c3
96 ELSEIF (l == 6) THEN ! Plastic light_eBody PA6GF30 (c3 = 0.1)
97 c1 = 3.6 * c3
98 c2 = 0.6 * c3
99 c4 = 0.5 * c3
100 c5 = 0.6 * c3
101 ELSEIF (l == 7) THEN ! Plastic light_eBody PP T40 ( c3=0.11 )
102 c1 = 10.0 * c3
103 c2 = 2.7 * c3
104 c4 = 0.6 * c3
105 c5 = 0.7 * c3
106 ELSEIF (l == 99) THEN ! user scalling factors
107 c1 = e1 * c3
108 c2 = e2 * c3
109 c4 = e3 * c3
110 c5 = e4 * c3
111 ELSE ! ELSE --> Mild Seel
112 c1 = 3.5 * c3
113 c2 = 1.6 * c3
114 c4 = 0.6 * c3
115 c5 = 1.5 * c3
116 ENDIF
117 ELSEIF(c1 == zero .AND. c2 == zero .AND. c4 == zero .AND. c5 == zero) THEN
118 c1 = 3.5 * c3
119 c2 = 1.6 * c3
120 c4 = 0.6 * c3
121 c5 = 1.5 * c3
122 ENDIF
123C=======================================================================
124C
125C determine coefficient matrix for parable_1
126C
127C=======================================================================
128 a_1(1,1) = triax_1_lin
129 a_1(1,2) = triax_1_quad
130 a_1(2,1) = triax_3_lin
131 a_1(2,2) = triax_3_quad
132 b_1(1) = c1 - c2
133 b_1(2) = c3 - c2
134C
135C! fitting the first quadratic function
136 IF (iresp == 0) THEN
137 CALL dgesv(2, 1, a_1, 2, ipiv2, b_1, 2, info)
138 ELSE
139 CALL sgesv(2, 1, a_1, 2, ipiv2, b_1, 2, info)
140 ENDIF
141 x_1(1:2) = b_1(1:2)
142C
143C
144C=======================================================================
145C
146C determine coefficient matrix for parable_2
147C
148C=======================================================================
149 a_2(1,1) = 1.0
150 a_2(1,2) = triax_3_lin
151 a_2(1,3) = triax_3_quad
152 a_2(2,1) = 1.0
153 a_2(2,2) = triax_4_lin
154 a_2(2,3) = triax_4_quad
155 a_2(3,1) = 1.0
156 a_2(3,2) = triax_5_lin
157 a_2(3,3) = triax_5_quad
158 b_2(1) = c3
159 b_2(2) = c4
160 b_2(3) = c5
161C
162C! fitting the second quadratic function
163 IF (iresp == 0) THEN
164 CALL dgesv(3, 1, a_2, 3, ipiv3, b_2, 3, info)
165 ELSE
166 CALL sgesv(3, 1, a_2, 3, ipiv3, b_2, 3, info)
167 ENDIF
168 x_2(1:3) = b_2(1:3)
169#else
170 WRITE(6,*) "Error: Blas/Lapack required for /FAIL/BIQUAD"
171#endif
172C
173c------------
174 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine dgesv(n, nrhs, a, lda, ipiv, b, ldb, info)
DGESV computes the solution to system of linear equations A * X = B for GE matrices
Definition dgesv.f:122
subroutine sgesv(n, nrhs, a, lda, ipiv, b, ldb, info)
SGESV computes the solution to system of linear equations A * X = B for GE matrices (simple driver)
Definition sgesv.f:122