OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
prodAAT.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][A]T
24!||====================================================================
25!|| prodaat ../engine/source/materials/tools/prodAAT.F
26!||--- called by ------------------------------------------------------
27!|| calcmatb ../engine/source/materials/mat/mat100/calcmatb.F
28!|| sigeps100 ../engine/source/materials/mat/mat100/sigeps100.F90
29!|| sigeps111 ../engine/source/materials/mat/mat111/sigeps111.F
30!|| sigeps42 ../engine/source/materials/mat/mat042/sigeps42.F
31!|| sigeps95 ../engine/source/materials/mat/mat095/sigeps95.F
32!||====================================================================
33 SUBROUTINE prodaat(A, C, NEL)
34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38 INTEGER, INTENT(IN) :: NEL
39 my_real, DIMENSION(NEL,3, 3),INTENT(IN) :: a
40 my_real, DIMENSION(NEL,3, 3),INTENT(OUT) :: c
41C
42 INTEGER I
43C-----------------------------------------------
44 DO i =1, nel
45 c(i,1,1) = a(i,1,1)**2 + a(i,1,2)**2 + a(i,1,3)**2
46 c(i,2,2) = a(i,2,1)**2 + a(i,2,2)**2 + a(i,2,3)**2
47 c(i,3,3) = a(i,3,1)**2 + a(i,3,2)**2 + a(i,3,3)**2
48 c(i,1,2) = a(i,1,1)*a(i,2,1) + a(i,1,2)*a(i,2,2) + a(i,1,3)*a(i,2,3)
49 c(i,1,3) = a(i,1,1)*a(i,3,1) + a(i,1,2)*a(i,3,2) + a(i,1,3)*a(i,3,3)
50 c(i,2,3) = a(i,2,1)*a(i,3,1) + a(i,2,2)*a(i,3,2) + a(i,2,3)*a(i,3,3)
51 c(i,2,1) = c(i,1,2)
52 c(i,3,1) = c(i,1,3)
53 c(i,3,2) = c(i,2,3)
54 ENDDO
55C
56 RETURN
57 END
#define my_real
Definition cppsort.cpp:32
subroutine prodaat(a, c, nel)
Definition prodAAT.F:34