OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
tinit3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "param_c.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "scr03_c.inc"
#include "scr17_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine tinit3 (elbuf_str, ic, pm, x, geo, xmas, dtelem, nft, nel, stifn, partsav, v, ipart, mst, stifint, stt, igeo, nsigtruss, sigtruss, pttruss, preload_a, ipreld, npreload_a)

Function/Subroutine Documentation

◆ tinit3()

subroutine tinit3 ( type(elbuf_struct_), target elbuf_str,
integer, dimension(nixt,*) ic,
pm,
x,
geo,
xmas,
dtelem,
integer nft,
integer nel,
stifn,
partsav,
v,
integer, dimension(*) ipart,
mst,
stifint,
stt,
integer, dimension(npropgi,*) igeo,
integer nsigtruss,
sigtruss,
integer, dimension(*) pttruss,
type(prel1d_), dimension(npreload_a), target preload_a,
integer, intent(in) ipreld,
integer, intent(in) npreload_a )

Definition at line 39 of file tinit3.F.

45C-----------------------------------------------
46C M o d u l e s
47C-----------------------------------------------
48 USE elbufdef_mod
49 USE message_mod
50 USE bpreload_mod
52 use element_mod , only : nixt
53C-----------------------------------------------
54C I m p l i c i t T y p e s
55C-----------------------------------------------
56#include "implicit_f.inc"
57C-----------------------------------------------
58C G l o b a l P a r a m e t e r s
59C-----------------------------------------------
60#include "mvsiz_p.inc"
61C-----------------------------------------------
62C C o m m o n B l o c k s
63C-----------------------------------------------
64#include "param_c.inc"
65#include "com01_c.inc"
66#include "com04_c.inc"
67#include "scr03_c.inc"
68#include "scr17_c.inc"
69C-----------------------------------------------
70C D u m m y A r g u m e n t s
71C-----------------------------------------------
72 INTEGER IC(NIXT,*),IPART(*),IGEO(NPROPGI,*),PTTRUSS(*)
73 INTEGER NFT,NEL,NSIGTRUSS
74 INTEGER , INTENT (IN ) :: IPRELD,NPRELOAD_A
76 . pm(*),x(*), geo(npropg,*),xmas(*),dtelem(*),
77 . stifn(*),partsav(20,*),v(*),mst(*),stifint(*),stt(*),
78 . sigtruss(nsigtruss,*)
79C
80 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
81 TYPE(PREL1D_) , DIMENSION(NPRELOAD_A), TARGET :: PRELOAD_A
82C-----------------------------------------------
83C L o c a l V a r i a b l e s
84C-----------------------------------------------
85 INTEGER I,IGTYP,NDEPAR,IPID1
86 INTEGER MAT(MVSIZ), MXG(MVSIZ), NC1(MVSIZ), NC2(MVSIZ)
88 . x1(mvsiz), x2(mvsiz),
89 . y1(mvsiz), y2(mvsiz),
90 . z1(mvsiz), z2(mvsiz)
92 . deltax(mvsiz),xx,yy,zz, dtx(mvsiz)
93 INTEGER IDMIN,IDMAX
94 INTEGER ID
95 CHARACTER(LEN=NCHARTITLE)::TITR
96 DATA idmin /-1/, idmax /-1/
98 . lgthmin, lgthmax,xnor,undamp,cc1
99 DATA lgthmin /-1/, lgthmax /-1/
100C
101 TYPE(G_BUFEL_),POINTER :: GBUF
102C=======================================================================
103 gbuf => elbuf_str%GBUF
104C
105 ipid1=ic(nixt-1,nft+1)
106 id=igeo(1,ipid1)
107 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ipid1),ltitr)
108C
109 CALL tcoori(x,ic(1,nft+1),mat, mxg, nc1, nc2,
110 . x1, x2, y1, y2, z1, z2)
111C-----------------------------
112C Check here (change TCOORI for called by /MAT/VOID)
113C-----------------------------
114 CALL tibuf3(gbuf%OFF,gbuf%AREA,geo, mxg)
115 DO i=1,nel
116 xnor=(x1(i)-x2(i))**2+(y1(i)-y2(i))**2+(z1(i)-z2(i))**2
117 IF (xnor <= 1.e-20) THEN
118 CALL ancmsg(msgid=269, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr, i2=ic(5,i+nft))
119 ENDIF
120 gbuf%LENGTH(i) = sqrt(xnor)
121 END DO
122!------------------------------------------
123! Truss initialization
124!------------------------------------------
125 IF (isigi /= 0)
126 . CALL tsigini(nsigtruss ,sigtruss ,pttruss , gbuf%EINT ,gbuf%FOR,
127 . gbuf%G_PLA ,gbuf%PLA ,gbuf%AREA )
128 CALL tmass(x ,ic ,geo ,pm ,xmas ,
129 . stifn ,partsav ,v ,ipart(nft+1),mst(nft+1),
130 . stifint,stt(nft+1) ,gbuf%AREA, mat, nc1, nc2,
131 . x1, x2, y1, y2, z1, z2)
132!------------------------------------------
133C------------------------------------------
134C Compute truss time step 22/4/90
135C------------------------------------------
136 DO i=1,nel
137 igtyp=geo(12,ic(4,i+nft))
138 IF (igtyp /= 2 .AND. invers > 14) THEN
139 CALL ancmsg(msgid=270, msgtype=msgerror, anmode=aninfo_blind_1, i1=id, c1=titr, i2=ic(nixt,i),i3=igtyp)
140 ENDIF
141 xx = (x1(i) - x2(i))*(x1(i) - x2(i))
142 yy = (y1(i) - y2(i))*(y1(i) - y2(i))
143 zz = (z1(i) - z2(i))*(z1(i) - z2(i))
144 deltax(i)=sqrt(xx+yy+zz)
145 IF (lgthmin == -1 .OR. deltax(i) < lgthmin) THEN
146 lgthmin = deltax(i)
147 idmin = ic(5,i+nft)
148 ENDIF
149 IF (lgthmax == -1 .OR. deltax(i) > lgthmax) THEN
150 lgthmax = deltax(i)
151 idmax = ic(5,i+nft)
152 ENDIF
153 ENDDO ! I=1,NEL
154C
155 CALL dt1lawt(pm, deltax, mat, mxg, dtx)
156 ndepar=numels+numelc+nft
157 DO i=1,nel
158 dtelem(ndepar + i) = dtx(i)
159 ENDDO
160!--- /PRELOAD/AXIAL
161 IF (ipreld>0) THEN
162 cc1 =two*sqrt(two)
163 DO i=1,nel
164 undamp = cc1*mst(nft+i)*gbuf%LENGTH(i)/dtx(i)
165 gbuf%BPRELD(i) = preload_a(ipreld)%preload
166 gbuf%BPRELD(i+nel) = undamp*preload_a(ipreld)%damp
167 ENDDO
168 END IF
169C---
170 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine dt1lawt(pm, deltax, mat, mxg, dtx)
Definition dt1lawt.F:29
initmumps id
integer, parameter nchartitle
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:895
subroutine fretitl2(titr, iasc, l)
Definition freform.F:799
subroutine tcoori(x, ncp, mxt, mxg, nc1, nc2, x1, x2, y1, y2, z1, z2)
Definition tcoori.F:32
subroutine tibuf3(off, area, geo, mxg)
Definition tibuf3.F:29
subroutine tmass(x, nc, geo, pm, ms, stifn, partsav, v, ipart, mst, stifint, stt, area, mxt, nc1, nc2, x1, x2, y1, y2, z1, z2)
Definition tmass.F:34
subroutine tsigini(nsigtruss, sigtruss, pttruss, eint, for, g_pla, pla, area)
Definition tsigini.F:30