OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
smallgeo3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "comlock.inc"
#include "units_c.inc"
#include "lockon.inc"
#include "lockoff.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine smallgeo3 (ngl, offg, volg, deltax, volg0, itet, nel, ismstr, dt)

Function/Subroutine Documentation

◆ smallgeo3()

subroutine smallgeo3 ( integer, dimension(*) ngl,
offg,
volg,
deltax,
volg0,
integer itet,
integer, intent(in) nel,
integer, intent(in) ismstr,
type(dt_), intent(inout) dt )

Definition at line 38 of file smallgeo3.F.

41C-----------------------------------------------
42C M o d u l e s
43C-----------------------------------------------
44 USE message_mod
45 USE dt_mod
46C-----------------------------------------------
47C I m p l i c i t T y p e s
48C-----------------------------------------------
49#include "implicit_f.inc"
50#include "mvsiz_p.inc"
51#include "comlock.inc"
52C-----------------------------------------------
53C C o m m o n B l o c k s
54C-----------------------------------------------
55#include "units_c.inc"
56C-----------------------------------------------
57C D u m m y A r g u m e n t s
58C-----------------------------------------------
59 INTEGER, INTENT(IN) :: NEL
60 INTEGER, INTENT(IN) :: ISMSTR
61 INTEGER ITET,NGL(*)
63 . offg(*),volg(*),deltax(*), volg0(*)
64 TYPE(DT_), INTENT(INOUT) :: DT
65C-----------------------------------------------
66C L o c a l V a r i a b l e s
67C-----------------------------------------------
68 INTEGER I,J,ICOUNT,LIST(MVSIZ)
70 . tet_colla(mvsiz),coef,def_v,al,min_aspect,min_defv
71C---------------------------------------------
72 min_aspect = dt%BRICK_CST_COL_MIN
73 min_defv = dt%BRICK_CST_DEFV_MIN
74C-
75 IF(min_aspect==zero.AND.min_defv==zero) RETURN
76 IF(ismstr/=2.AND.ismstr/=12) RETURN
77 coef = one
78 IF (itet >0) coef = one/1.24/sqr3
79C
80 IF (min_defv >zero) THEN
81 DO i=1,nel
82 IF (offg(i)>one.OR.offg(i)==zero) cycle
83 def_v = volg(i)/volg0(i)
84 IF (def_v < min_defv) THEN
85 offg(i) = two
86#include "lockon.inc"
87 CALL ancmsg(msgid=267,anmode=aninfo,
88 . i1=ngl(i),
89 . r1=def_v )
90#include "lockoff.inc"
91 END IF
92 END DO
93 END IF !(MIN_DEFV)>ZERO) THEN
94C
95 IF (min_aspect>zero) THEN
96 icount = 0
97 DO i=1,nel
98 IF (offg(i)>one.OR.offg(i)==zero) cycle
99c AL = VOLG(I)**(1.0D0/3.0D0)! EXP(THIRD*LOG(VOLG(I)))
100c TET_COLLA(I)= COEF* (DELTAX(I)/AL)**(3.0D0/2.0D0)!COEF*EXP(THREE_HALF*LOG(DELTAX(I)/AL))
101 tet_colla(i) = coef * sqrt(deltax(i)**3 / volg(i))
102 IF (tet_colla(i) < min_aspect) THEN
103 offg(i) = two
104 icount=icount+1
105 list(icount)=i
106 END IF
107 END DO
108 IF (icount > 0) THEN
109#include "lockon.inc"
110 WRITE(iout,1000)
111 WRITE(istdo,1000)
112 DO j=1,icount
113 i=list(j)
114 WRITE(iout,'(6X,I10,1PG20.13)')ngl(i),tet_colla(i)
115 WRITE(istdo,'(6X,I10,1PG20.13)')ngl(i),tet_colla(i)
116 ENDDO
117 WRITE(iout,*)
118 WRITE(istdo,*)
119#include "lockoff.inc"
120 END IF !(ICOUNT > 0) THEN
121 END IF !(MIN_ASPECT)>ZERO) THEN
122C
123 RETURN
124 1000 FORMAT(/
125 . 'THE FOLLOWING ELEMENTS WILL BE SWITCHED TO SMALL STRAIN DUE TO BAD ASPECT RATIO' /)
#define my_real
Definition cppsort.cpp:32
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889