OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
nsvis_sm12.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!|| nsvis_sm12 ../engine/source/elements/solid/solide10/nsvis_sm12.F
25!||--- called by ------------------------------------------------------
26!|| s10forc3 ../engine/source/elements/solid/solide10/s10forc3.F
27!|| s8eforc3 ../engine/source/elements/solid/solide8e/s8eforc3.F
28!|| szforc3 ../engine/source/elements/solid/solidez/szforc3.F
29!||====================================================================
30 SUBROUTINE nsvis_sm12(OFFG ,MU ,SSP ,VOL ,D1 ,
31 . D2 ,D3 ,D4 ,D5 ,D6 ,
32 . VOL0 ,RHO0,STI ,NEL,SVIS )
33C-----------------------------------------------
34C I m p l i c i t T y p e s
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C G l o b a l P a r a m e t e r s
39C-----------------------------------------------
40#include "mvsiz_p.inc"
41C-----------------------------------------------
42C D u m m y A r g u m e n t s
43C-----------------------------------------------
44C REAL
45 INTEGER, INTENT(IN) ::NEL
46 my_real, DIMENSION(MVSIZ),INTENT(IN) :: VOL,
47 . d1, d2, d3,d4, d5, d6,ssp
48 my_real, DIMENSION(NEL),INTENT(IN) :: offg,vol0
49 my_real, DIMENSION(MVSIZ),INTENT(INOUT) :: sti
50 my_real, INTENT(IN) :: rho0,mu
51 my_real, DIMENSION(MVSIZ,6), INTENT(INOUT) :: svis
52C-----------------------------------------------
53C L o c a l V a r i a b l e s
54C-----------------------------------------------
55 INTEGER I, MT
56C REAL
57 my_real
58 . dd, al, cns1, cns2, cns3,
59 . dav, pvis, nrho,jac,fac,tol
60#ifdef MYREAL8
61 my_real, PARAMETER :: real_three = 3.0d0
62 my_real, PARAMETER :: real_one = 1.0d0
63#else
64 my_real, PARAMETER :: real_three = 3.0
65 my_real, PARAMETER :: real_one = 1.0
66#endif
67C-----------------------------------------------
68 tol = one-em02
69 IF (mu>zero) THEN
70 DO i=1,nel
71 jac = vol(i)/vol0(i)
72 IF (offg(i)<=one.OR.jac>tol) cycle
73 al = vol(i)**(real_one/real_three)
74 nrho = rho0/jac
75 cns2=mu*al*nrho*ssp(i)
76 cns3=half*cns2
77 dd =-d1(i)-d2(i)-d3(i)
78 dav=dd * third
79 svis(i,1)=svis(i,1) + cns2 *(d1(i)+dav)
80 svis(i,2)=svis(i,2) + cns2 *(d2(i)+dav)
81 svis(i,3)=svis(i,3) + cns2 *(d3(i)+dav)
82 svis(i,4)=svis(i,4) + cns3 * d4(i)
83 svis(i,5)=svis(i,5) + cns3 * d5(i)
84 svis(i,6)=svis(i,6) + cns3 * d6(i)
85 ENDDO
86 END IF !(MU>ZERO) THEN
87C
88 RETURN
89 END
subroutine nsvis_sm12(offg, mu, ssp, vol, d1, d2, d3, d4, d5, d6, vol0, rho0, sti, nel, svis)
Definition nsvis_sm12.F:33