OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
prodATA.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/.
23C This subroutines computes C(NEL,3,3) which is the product [C] = [A]t[A]
24!||====================================================================
25!|| prodata ../engine/source/materials/tools/prodATA.F
26!||--- called by ------------------------------------------------------
27!|| sigeps190 ../engine/source/materials/mat/mat190/sigeps190.F
28!||====================================================================
29 SUBROUTINE prodata(A, C, E, NEL)
30C-----------------------------------------------
31C I m p l i c i t T y p e s
32C-----------------------------------------------
33#include "implicit_f.inc"
34 INTEGER, INTENT(IN) :: NEL
35 my_real, DIMENSION(NEL,3, 3),INTENT(IN) :: a
36 my_real, DIMENSION(NEL,3, 3),INTENT(OUT) :: c
37 my_real, DIMENSION(NEL,6) ,INTENT(OUT) :: e
38C
39 INTEGER I
40C-----------------------------------------------
41 DO i =1, nel
42C
43 ! Computation of Ft * F
44 c(i,1,1) = a(i,1,1)**2 + a(i,2,1)**2 + a(i,3,1)**2
45 c(i,2,2) = a(i,1,2)**2 + a(i,2,2)**2 + a(i,3,2)**2
46 c(i,3,3) = a(i,1,3)**2 + a(i,2,3)**2 + a(i,3,3)**2
47
48 c(i,1,2) = a(i,1,1)*a(i,1,2) + a(i,2,1)*a(i,2,2) + a(i,3,1)*a(i,3,2)
49 c(i,1,3) = a(i,1,1)*a(i,1,3) + a(i,2,1)*a(i,2,3) + a(i,3,1)*a(i,3,3)
50 c(i,2,3) = a(i,1,2)*a(i,1,3) + a(i,2,2)*a(i,2,3) + a(i,3,2)*a(i,3,3)
51
52 c(i,2,1) = c(i,1,2)
53 c(i,3,1) = c(i,1,3)
54 c(i,3,2) = c(i,2,3)
55C
56 ! Computation of Green-Lagrange tensor
57 e(i,1) = (c(i,1,1) - one) /two
58 e(i,2) = (c(i,2,2) - one) /two
59 e(i,3) = (c(i,3,3) - one) /two
60 e(i,4) = c(i,1,2) /two
61 e(i,5) = c(i,2,3) /two
62 e(i,6) = c(i,1,3) /two
63C
64 ENDDO
65C
66 RETURN
67 END
#define my_real
Definition cppsort.cpp:32
subroutine prodata(a, c, e, nel)
Definition prodATA.F:30