• Non ci sono risultati.

Appendice D Sorgente del programma FORTRAN TWCC

N/A
N/A
Protected

Academic year: 2021

Condividi "Appendice D Sorgente del programma FORTRAN TWCC"

Copied!
11
0
0

Testo completo

(1)

Appendice D

(2)

Sorgente del programma FORTRAN TWCC

C

C Il programma TWCC permette di calcolare il carico di inizio frattura ed il carico di instabilità.

C Inoltre, può essere utilizzato per determinare il valore della componente elastica e di

C quella plastica dell'integrale J, per determinare l'incremento della lunghezza della fessura durante

C il processo di frattura e per calcolare il carico di collasso della tubazione. C

C Sono necessari i seguenti dati di input: C a) proprietà meccaniche del materiale;

C b) proprietà di tenacità alla frattura del materiale; C c) geometria della tubazione;

C d) lunghezza della fessura passante;

C e) tensione flessionale alla fibra esterna della sezione della tubazione. C

C Sulla tubazione agiscono i seguenti carichi:

C - carico di trazione generato dalla pressione interna (questo carico è mantenuto costante

C durante l'accrescimento della fessura);

C - carico di flessione (questo carico è incrementato per raggiungere la C condizione di inizio frattura e di instabilità).

C

C Nel programma sono implementati i seguenti modelli analitici:

C 1) modello di Lacire per il calcolo della componente elastica dell'integrale J; C 2) modello ERS per il calcolo della componente plastica dell'integrale J. C program TWCC implicit none real pigreco,a0,acricca,deltaa,Rm,M,P,t,sigmay,E,J,Dout,LDC,Rout real Min,Jin,a,b,JIc,Ja,Jb,CalcJ,err,Minizio,deltacarico,JR,Rin,Sm real Mcrescita,deltaa1,C,m1,Mcritico,acricca1,fatspes,fatfles

(3)

real Pressione,y,teff,I0,sigmab,Minizio1,Mcollasso,Msse,Beta real sigmacoll,sigmau integer i,inc,Inl,Ins,l,s,PROVA,spess,Indspes,inspes,geom,ingeom integer indgeom,rilevabile,max,inril,tenmax,indfles,Indspes1 integer max1,tenmax1,incmax,ingeom1 character nomefile*6 C

C Acquisizione da file esterno delle proprietà del materiale C

print *,'Introdurre la sigla identificativa del materiale:' read *,nomefile

open (unit=10,file=nomefile//'.dat') read (10,*)

read (10,*) E

C print *, 'Modulo di Young (N/mm2):',E read (10,*) sigmay

C print *, 'Tensione di snervamento (N/mm2):',sigmay read (10,*) sigmau

C print *, 'Tensione di rottura (N/mm2):',sigmau read (10,*) JIc

C print *, 'Tenacità di inizio frattura (N/mm) :',JIc read (10,*) C C print *, 'Coefficiente C:',C read (10,*) m1 C print *, 'Coefficiente m :',m1 close (unit=10) C Indspes=2 ingeom=2 max=2 tenmax=2 Indspes1=Indspes ingeom1=ingeom max1=max

(4)

tenmax1=tenmax incmax=1

C

open (unit=20,file='RisLDC'//nomefile//'.dat') write (20,*) 'Risultati materiale'//nomefile

write (20,*) ' ' write (20,72)

72 format ('Dout(mm) teff(mm) LDC(mm) Lcr(mm) + Mappl(N-mm) Mcoll(N-mm) Min(N-mm) Mcr(N-mm) + Msse(N-mm)') do 101,spess=1,1 open (unit=11,file='Indicespessore.dat') do 501,inspes=1,(Indspes-1) read (11,*) 501 continue read (11,*) fatspes close (unit=11) Indspes=Indspes+1 do 1,geom=1,4 open (unit=12,file='geom.dat') do 5,indgeom=1,(ingeom-1) read (12,*) 5 continue read (12,*) Dout close (unit=12) ingeom=ingeom+1 do 2,rilevabile=1,5 open (unit=13,file='LDC'//nomefile//'.dat') do 3,inril=1,(max-1) read (13,*) 3 continue read (13,*) LDC close (unit=13) max=max+4

(5)

open (unit=14,file='tensfles.dat') do 4,indfles=1,(tenmax-1) read (14,*) 4 continue read (14,*) fatfles close (unit=14) tenmax=tenmax+1 C

C Acquisizione da tastiera delle proprietà del materiale C

C print *, 'Introdurre geometria tubazione' C print *, 'Diametro esterno (mm):'

C read *, Dout

C print *, 'Spessore (mm):'

C read *, t

C

C print *, 'Introdurre geometria fessura'

C print *, 'Lunghezza rilevabile della fessura (mm):'

C read *, LDC

C

C print *, 'Introdurre carico'

C print *, 'Intensità carico di flessione (N-mm):'

C read *, M C pigreco=3.141592654 deltaa=0 err=0.001 Sm=(2./3.)*sigmay C

C Elaborazione dati di input C

Pressione=17.2

(6)

a0=LDC/2 Rout=Dout/2 t=(Pressione*Rout)/(Sm+(0.4*Pressione)) teff=t*fatspes Rin=Rout-teff Rm=(Rout+Rin)/2 I0=(pigreco/64.)*(Dout**4-(2*Rin)**4) sigmab=Sm*fatfles P=0.5*Sm*(pigreco*(Rout**2-Rin**2)) M=(I0/Rout)*sigmab

C Calcolo valore integrale J C

J=CalcJ(E,sigmay,a0,deltaa,Rm,teff,P,M) C

C Calcolo estremo superiore ed inferiore carico inizio frattura C Min=0 inc=10000 a=0 b=0 do 10, i=1,10000000 Jin=CalcJ(E,sigmay,a0,deltaa,Rm,teff,P,Min) if ((Jin-JIc).LE.0) then a=Min Min=Min+inc else b=Min goto 20 endif 10 continue C

C Calcolo del carico di inizio frattura con subroutine Bisezione C

(7)

+ Rm,teff,P,JIc) C

C Calcolo momento flettente critico C Minizio1=Minizio deltaa=0.01 deltacarico=33300000 acricca=a0 Inl=1 Ins=1 PROVA=1 do 300, l=Inl,3000 Mcrescita=Minizio1+deltacarico do 100, s=Ins,10000 deltaa1=acricca-a0 if ((CalcJ(E,sigmay,a0,deltaa1,Rm,teff,P, + Mcrescita)-JR(JIc,C,m1,deltaa1)).GT.0) then acricca=acricca+deltaa else Minizio1=Mcrescita PROVA=PROVA+1 acricca=acricca-deltaa acricca1=acricca go to 300 endif 100 continue deltacarico=deltacarico/10 if (deltacarico.GE.1) then deltaa=deltaa/10 acricca=acricca1 go to 300 else go to 400 end if

(8)

300 continue

400 Mcritico=Minizio1

C Calcolo del carico di collasso al momento in cui la fessura raggiunge l'instabilità; C si tratta di una valutazione conservativa,dato che il carico di collasso diminuisce C all'aumentare della dimensione della fessura.

C sigmacoll=(sigmay+sigmau)/2. Beta=(1./2.)*(acricca/Rm)+P/(4*Rm*teff*sigmacoll) Mcollasso=4*sigmacoll*(Rm**2)*teff*(cos(Beta)-(1./2.)* + sin(acricca/Rm)) Msse=(Mcritico/(2**0.5))-M write (20,73) Dout,teff,LDC,2*acricca,M,Mcollasso,Minizio, + Mcritico,Msse 73 format (F8.2,2X,F8.2,7X,F8.2,5X,F8.2,7X,E9.4,7X,E9.4,7X,E9.4, + 7X,E9.4,7X,E11.4) 2 continue max=max1+incmax incmax=incmax+1 tenmax=tenmax1 1 continue 101 continue close (unit=10) close (unit=20) stop end C

C Funzione CalcJ per il calcolo del valore dell'integrale J C

REAL FUNCTION CalcJ(Es,sigmays,a0s,deltaas,Rms,ts,Ps,Ms) real Es,sigmays,pigrecos,a0s,deltaas,Rms,ts,Ps,Ms

real Ft,KIt,Jelt,Fb,KIb,Jelb,Jel,denJs,fatcar,Pl,Ml,fatgam,gamma real Por,Mor,Morc,Lr,csi,At,Bt,Ct,Dt,Et,Ab,Bb,Cb,Db,Eb C

(9)

C Calcolo del carico di riferimento ottimizzato C pigrecos=3.141592654 fatcar=(a0s+deltaas)/Rms Pl=2*Rms*ts*sigmays*(pigrecos-fatcar-2*asin((0.5)*sin(fatcar))) Ml=4*(Rms**2)*ts*sigmays*(cos((0.5)*fatcar)-(0.5)*sin(fatcar)) fatgam=(a0s+deltaas)/(pigrecos*Rms) gamma=0.82+0.75*fatgam+0.42*fatgam**2 Por=gamma*Pl Mor=gamma*Ml Morc=Mor*(1-(Ps/Por)**2) Lr=Ms/Morc C

C Calcolo fattore geometrico per Stress Intensity Factor C if ((fatgam.GT.0).AND.(fatgam.LT.0.611)) then if (((Rms/ts).GT.1.5).OR.((Rms/ts).LT.80.5)) then csi=log10(ts/Rms) At=1 Bt=-1.040-3.1831*csi-4.83*(csi**2)-2.369*(csi**3) Ct=16.71+23.10*csi+50.82*(csi**2)+18.02*(csi**3) Dt=-25.85-12.05*csi-87.24*(csi**2)-30.39*(csi**3) Et=24.70-54.18*csi+18.09*(csi**2)+6.745*(csi**3) Ab=0.65133-0.5774*csi-0.3427*(csi**2)-0.0681*(csi**3) Bb=1.879+4.795*(csi)+2.343*(csi**2)-0.6197*(csi**3) Cb=-9.779-38.14*csi-6.611*(csi**2)+3.972*(csi**3) Db=34.56+129.9*csi+50.55*(csi**2)+3.374*(csi**3) Eb=-30.82-147.6*csi-78.38*(csi**2)-15.54*(csi**3) C

C Calcolo componente elastica Jel per trazione per stato piano di tensione C

Ft=At+Bt*(fatgam)+Ct*(fatgam**2)+Dt*(fatgam**3)+Et*(fatgam**4) KIt=(Ps/(2*pigrecos*Rms*ts))*((pigrecos*(a0s+deltaas))**0.5)*Ft Jelt=(KIt**2)/Es

(10)

C

C Calcolo componente elastica Jel per flessione per stato piano di tensione C Fb=(1+ts/(2*Rms))*(Ab+Bb*(fatgam)+Cb*(fatgam**2)+Db*(fatgam**3)+ +Eb*(fatgam**4)) KIb=(Ms/(pigrecos*(Rms**2)*ts))*((pigrecos*(a0s+deltaas))**0.5)*Fb Jelb=(KIb**2)/Es else

print *,'Rapporto Rm/t nel calcolo del fattore geometrico +fuori range'

endif else

print *,'Rapporto teta/pigreco nel calcolo del fattore +geometrico fuori range'

endif C

C Calcolo componente totale Jel C Jel=Jelt+Jelb C C Calcolo integrale J C denJs=(1-0.14*((Lr)**2))*(0.3+0.7*((2.7182818)**(-0.65*(Lr**6)))) CalcJ=((1/denJs)**2)*Jel return end C

C Subroutine per il calcolo degli zeri con il metodo di bisezione C SUBROUTINE Bisezione(xl,xr,errb,radice,Eb,sigmayb,a0b,deltaab,Rmb, +tb,Pb,JIcb) real xl,xr,errb,radice,Eb,sigmayb,a0b,deltaab,Rmb,tb,Pb,JIcb real xm real CalcJ

(11)

integer i do 50, i=1,10000 xm=(xl+xr)/2

if ((xm-xl).LE.errb) goto 60 C

C Scelta dell'intervallo di bisezione C if ((CalcJ(Eb,sigmayb,a0b,deltaab,Rmb,tb,Pb,xl)-JIcb)*(CalcJ(Eb, + sigmayb,a0b,deltaab,Rmb,tb,Pb,xm)-JIcb).LE.0) then xr=xm else xl=xm endif 50 continue 60 radice=xm return end C

C Definizione della funzione per il calcolo di JR C

real function JR(JIcr,Cr,mr,deltaa1r) real JIcr,Cr,mr,deltaa1r JR=JIcr+Cr*(deltaa1r)**mr return

Riferimenti

Documenti correlati

Lo stagno, necessario per ottenere il bronzo delle armi e degli utensili, proveniva dall’Afgha- nistan, il rame da Cipro: come il petrolio di oggi, erano le merci più ambite, e sul

Ma ci sono anche storie meno tragiche, come quelle dell'Islanda o del Giappone, che hanno saputo rispondere con successo alle sfide ambientali; storie di vincitori e vinti, come i

mento del fabbricato, si è ritenuto opportuno eseguire delle analisi su modelli locali dove, scomponendo il fabbricato in esame in una serie di sottostrutture, sono stati

X Il terzo capitolo descrive il metodo utilizzato per il postprocessing dei dati, ottenuti dall’analisi FEM non lineare, che ha lo scopo di determinare sia la

Valutazione dei meccanismi di collasso del Monastero di Nicosia di Pisa: i meccanismi locali di collasso INDICEI. INTRODUZIONE

In questo contesto, abbiamo visto, che c’è un crescente senso di responsabilità sia da parte di produttori che consumatori. Questi ultimi devono essere informati ed educati ad

Ottenute le varie frazioni di carbonato di calcio sono stati effettuati gli esperimenti, sia con il carbonato di calcio che con i ballottini in vetro,

Le corrispon- denze fra gravità della malattia, grado di schiacciamento del lume tracheale e punteggio clinico sono illustrate nella Tabella 1.. Nessun animale presentava