OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
nsvisul.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com01_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine nsvisul (nel, off, rho, geo, pid, ssp, aire, vol, d1, d2, d3, d4, d5, d6, sv1, sv2, sv3, sv4, sv5, sv6, s3, e3, rho0, rhoref)

Function/Subroutine Documentation

◆ nsvisul()

subroutine nsvisul ( integer nel,
off,
rho,
geo,
integer, dimension(*) pid,
ssp,
aire,
vol,
d1,
d2,
d3,
d4,
d5,
d6,
sv1,
sv2,
sv3,
sv4,
sv5,
sv6,
s3,
e3,
rho0,
rhoref )

Definition at line 29 of file nsvisul.F.

34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38C-----------------------------------------------
39C G l o b a l P a r a m e t e r s
40C-----------------------------------------------
41#include "mvsiz_p.inc"
42C-----------------------------------------------
43C C o m m o n B l o c k s
44C-----------------------------------------------
45#include "com01_c.inc"
46#include "param_c.inc"
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50 INTEGER NEL
51 INTEGER PID(*)
53 . off(*), rho(*),geo(npropg,*), ssp(*),
54 . aire(*), vol(*), d1(*), d2(*), d3(*),
55 . d4(*), d5(*), d6(*),sv1(*), sv2(*), sv3(*),
56 . sv4(*), sv5(*), sv6(*),s3(*),e3(*),rho0(*),rhoref(*)
57C-----------------------------------------------
58C L o c a l V a r i a b l e s
59C-----------------------------------------------
60 INTEGER I
62 . dd(mvsiz), al(mvsiz), nrho(mvsiz), cns1, cns2, cns3, dav, pvis
63c=======================================================================
64 dd(1:nel)=-d1(1:nel)-d2(1:nel)-d3(1:nel)
65C
66 IF(n2d > 0) THEN
67 DO i=1,nel
68 al(i)=zero
69 IF(off(i) >= one)al(i)=sqrt(aire(i))
70 ENDDO
71 ELSE
72 DO i=1,nel
73 al(i)=zero
74 IF(off(i) >= one) al(i)=exp(third*log(vol(i)))
75 ENDDO
76 ENDIF
77C-----------------------------------------------
78C Large strain :: Critical damping D = L * rho * c, c = sqrt(A11/rho)
79C BUT c is computed as sqrt(A11/rho0) for most of the materials
80C <=> D = L * sqrt(rho) * sqrt(rho0) * sqrt(A11/rho0)
81C Note : if for a given material, c is computed as sqrt(A11/rho),
82C ---- then damping will result in L * sqrt(rho) * sqrt(rho0) * c
83C and will be in the ratio sqrt(rho0) / sqrt(rho) wrt critical damping
84C < 1 in compression
85C > 1 in tension
86C this ratio will be more likely limited.
87C
88C Small strain :: Critical damping D = L * rhoref * c, c = sqrt(A11/rhoref)
89C BUT c is computed as sqrt(A11/rho0) for most of the materials
90C <=> D = L * sqrt(rhoref) * sqrt(rho0) * sqrt(A11/rho0)
91C
92C-----------------------------------------------
93 DO i=1,nel
94 nrho(i) = sqrt(rhoref(i)*rho0(i))
95 ENDDO
96C
97 IF(geo(16,pid(1)) >= zero)THEN
98 DO i=1,nel
99 cns1=geo(16,pid(1))*al(i)*nrho(i)*ssp(i)*off(i)
100 cns2=geo(17,pid(1))*al(i)*nrho(i)*ssp(i)*off(i)
101 cns3=half*cns2
102 dav=dd(i) * third
103 pvis=-cns1*dd(i)
104 sv1(i)= sv1(i) + cns2 *(d1(i)+dav)+pvis
105 sv2(i)= sv2(i) + cns2 *(d2(i)+dav)+pvis
106 sv3(i)= sv3(i) + cns2 *(d3(i)+dav)+pvis
107 sv4(i)= sv4(i) + cns3 * d4(i)
108 sv5(i)= sv5(i) + cns3 * d5(i)
109 sv6(i)= sv6(i) + cns3 * d6(i)
110C IF(GEO(16,PID(I)) /= ZERO .OR. GEO(17,PID(I))/=ZERO) ISVIS = 1
111 ENDDO
112 ELSE
113 DO i=1,nel
114 cns1=geo(16,pid(1))*nrho(i)*ssp(i)**2*off(i)
115 cns2=geo(17,pid(1))*nrho(i)*ssp(i)**2*off(i)
116 cns3=half*cns2
117 dav=dd(i) * third
118 pvis=-cns1*dd(i)
119 sv1(i)= sv1(i) + cns2 *(d1(i)+dav)+pvis
120 sv2(i)= sv2(i) + cns2 *(d2(i)+dav)+pvis
121 sv3(i)= sv3(i) + cns2 *(d3(i)+dav)+pvis
122 sv4(i)= sv4(i) + cns3 * d4(i)
123 sv5(i)= sv5(i) + cns3 * d5(i)
124 sv6(i)= sv6(i) + cns3 * d6(i)
125C IF(GEO(16,PID(I)) /= ZERO .OR. GEO(17,PID(I))/=ZERO) ISVIS = 1
126 ENDDO
127 END IF
128C
129 RETURN
#define my_real
Definition cppsort.cpp:32