OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s8etherm.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!|| s8etherm ../engine/source/elements/solid/solide8e/s8etherm.F
25!||--- called by ------------------------------------------------------
26!|| s8cforc3 ../engine/source/elements/thickshell/solide8c/s8cforc3.F
27!|| s8eforc3 ../engine/source/elements/solid/solide8e/s8eforc3.F
28!|| s8zforc3 ../engine/source/elements/solid/solide8z/s8zforc3.F
29!||--- uses -----------------------------------------------------
30!|| matparam_def_mod ../common_source/modules/mat_elem/matparam_def_mod.F90
31!||====================================================================
32 SUBROUTINE s8etherm(MAT_PARAM,
33 1 VOL, NI,
34 2 NC1, NC2, NC3, NC4,
35 3 NC5, NC6, NC7, NC8,
36 4 PX1, PX2, PX3, PX4,
37 5 PY1, PY2, PY3, PY4,
38 6 PZ1, PZ2, PZ3, PZ4,
39 7 PX5, PX6, PX7, PX8,
40 8 PY5, PY6, PY7, PY8,
41 9 PZ5, PZ6, PZ7, PZ8,
42 A DT1, TEMPNC, TEL, HEAT,
43 B FPHI, OFFG, OFF, PARTSAV,
44 C IPARTS, VOL0, NEL, THEACCFACT)
45!-----------------------------------------------
46! m o d u l e s
47!-----------------------------------------------
48 use matparam_def_mod
49C-----------------------------------------------
50C I m p l i c i t T y p e s
51C-----------------------------------------------
52#include "implicit_f.inc"
53C-----------------------------------------------
54C G l o b a l P a r a m e t e r s
55C-----------------------------------------------
56#include "mvsiz_p.inc"
57#include "param_c.inc"
58C-----------------------------------------------
59C D u m m y A r g u m e n t s
60C-----------------------------------------------
61 INTEGER, INTENT(IN) :: NEL
62 my_real, INTENT(IN) :: THEACCFACT
63 INTEGER IPARTS(*),
64 . NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ),NC4(MVSIZ),
65 . NC5(MVSIZ),NC6(MVSIZ),NC7(MVSIZ),NC8(MVSIZ)
66C REAL
67 my_real
68 . VOL(*), PX1(MVSIZ), PY1(MVSIZ),PZ1(MVSIZ),
69 . PX2(MVSIZ), PY2(MVSIZ),PZ2(MVSIZ),
70 . PX3(MVSIZ), PY3(MVSIZ),PZ3(MVSIZ),
71 . PX4(MVSIZ), PY4(MVSIZ),PZ4(MVSIZ),
72 . PX5(MVSIZ), PY5(MVSIZ),PZ5(MVSIZ),
73 . px6(mvsiz), py6(mvsiz),pz6(mvsiz),
74 . px7(mvsiz), py7(mvsiz),pz7(mvsiz),
75 . px8(mvsiz), py8(mvsiz),pz8(mvsiz),
76 . ni(8),tempnc(*), fphi(mvsiz,8), heat(*),
77 . dt1, tel(*), off(*), offg(*)
78 my_real partsav(npsav,*),vol0(*)
79 type (matparam_struct_) ,intent(in) :: mat_param
80C-----------------------------------------------
81C L o c a l V a r i a b l e s
82C-----------------------------------------------
83 INTEGER I, M
84 my_real CA, CB, KC, PHIX, PHIY, PHIZ, RHOCP, T0
85!=======================================================================
86 CA = mat_param%THERM%AS !< thermal conductivity coefficient A for solid phase
87 cb = mat_param%THERM%BS !< thermal conductivity coefficient B for solid phase
88 rhocp = mat_param%THERM%RHOCP
89 t0 = mat_param%THERM%TINI
90!
91 DO i=1,nel
92 IF(off(i)==zero.OR.offg(i)<=zero) cycle
93C
94C - flux
95 phix = tempnc(nc1(i))*px1(i) + tempnc(nc2(i))*px2(i) +
96 . tempnc(nc3(i))*px3(i) + tempnc(nc4(i))*px4(i) +
97 . tempnc(nc5(i))*px5(i) + tempnc(nc6(i))*px6(i) +
98 . tempnc(nc7(i))*px7(i) + tempnc(nc8(i))*px8(i)
99
100 phiy = tempnc(nc1(i))*py1(i) + tempnc(nc2(i))*py2(i) +
101 . tempnc(nc3(i))*py3(i) + tempnc(nc4(i))*py4(i) +
102 . tempnc(nc5(i))*py5(i) + tempnc(nc6(i))*py6(i) +
103 . tempnc(nc7(i))*py7(i) + tempnc(nc8(i))*py8(i)
104
105 phiz = tempnc(nc1(i))*pz1(i) + tempnc(nc2(i))*pz2(i) +
106 . tempnc(nc3(i))*pz3(i) + tempnc(nc4(i))*pz4(i) +
107 . tempnc(nc5(i))*pz5(i) + tempnc(nc6(i))*pz6(i) +
108 . tempnc(nc7(i))*pz7(i) + tempnc(nc8(i))*pz8(i)
109C
110 kc = (ca + cb*tel(i))*dt1*vol(i)*theaccfact
111 phix = kc*phix
112 phiy = kc*phiy
113 phiz = kc*phiz
114C
115C nodal thermal force
116C
117 fphi(i,1) = fphi(i,1) +
118 . heat(i)*ni(1) - (phix*px1(i) + phiy*py1(i) + phiz*pz1(i))
119 fphi(i,2) = fphi(i,2) +
120 . heat(i)*ni(2) - (phix*px2(i) + phiy*py2(i) + phiz*pz2(i))
121 fphi(i,3) = fphi(i,3) +
122 . heat(i)*ni(3) - (phix*px3(i) + phiy*py3(i) + phiz*pz3(i))
123 fphi(i,4) = fphi(i,4) +
124 . heat(i)*ni(4) - (phix*px4(i) + phiy*py4(i) + phiz*pz4(i))
125 fphi(i,5) = fphi(i,5) +
126 . heat(i)*ni(5) - (phix*px5(i) + phiy*py5(i) + phiz*pz5(i))
127 fphi(i,6) = fphi(i,6) +
128 . heat(i)*ni(6) - (phix*px6(i) + phiy*py6(i) + phiz*pz6(i))
129 fphi(i,7) = fphi(i,7) +
130 . heat(i)*ni(7) - (phix*px7(i) + phiy*py7(i) + phiz*pz7(i))
131 fphi(i,8) = fphi(i,8) +
132 . heat(i)*ni(8) - (phix*px8(i) + phiy*py8(i) + phiz*pz8(i))
133 ENDDO
134C
135 DO i=1,nel
136 IF(off(i)==zero.OR.offg(i)<=zero) cycle
137 m = iparts(i)
138 partsav(28,m)=partsav(28,m) + rhocp*vol0(i)*(tel(i)-t0) + heat(i)
139 ENDDO
140C
141 RETURN
142 END
subroutine s8etherm(mat_param, vol, ni, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, px5, px6, px7, px8, py5, py6, py7, py8, pz5, pz6, pz7, pz8, dt1, tempnc, tel, heat, fphi, offg, off, partsav, iparts, vol0, nel, theaccfact)
Definition s8etherm.F:45