* HAUBAN PROCEDUR AM 93/05/19 21:16:18 856 *------------------------------------------------------------------ * PROCEDURE HAUBAN *------------------------------------------------------------------ * * EN ENTREE : 2 POINTS * RIGIDITE ES * POIDS LINEIQUE PL * LONGUEUR INITIALE L0 * NOMBRE DE NOEUDS NN * * * EN SORTIE : MAILLAGE EN BARRES * MODELE * CHAMELEM DE TENSIONS * 'ARGUMENT' P1*POINT P2*POINT ; 'ARGUMENT' ES*FLOTTANT PL*FLOTTANT; 'ARGUMENT' L0*FLOTTANT ; 'ARGUMENT' NN*ENTIER IMP/LOGIQUE ; * IMP = FAUX ; 'FINSI'; * * ON RECUPERE LA DIMENSION DE L'ESPACE * * * * PARAMETRES GEOMETRIQUES ET AUTRES * 'SI' ( IDIM 'EGA' 3 ) ; 'FINSI'; A = L0; P = PL ; * * CALCUL DE QUELQUES QUANTITES * DX2 = DX * DX ; DZ2 = DZ * DZ ; L2 = DX2 + DZ2 ; 'SI' ( IDIM 'EGA' 3 ) ; DY2 = DY * DY ; L2 = L2 + DY2 ; 'FINSI'; LL = L2 ** 0.5 ; 'SI' ( IDIM 'EGA' 3 ) ; LPROJ = ( DX2 + DY2 ) ** 0.5 ; COSTET = DX / LPROJ ; SINTET = DY / LPROJ ; DX = ( COSTET * DX ) + ( SINTET * DY ) ; DX2 = DX * DX ; 'FINSI'; * P2ES = P / ( 2. * ES ) ; * * CALCUL D'UNE PREMIERE ESTIMATION DE ALP * CO0 = -1. * ( ( P * LL ) / ES ) ; CO1 = LL - A ; CO2 = CO0 / 12. ; CO3 = DX2 / ( 24. * LL ) ; * 'SI' IMP ; MESS ' XR1 XI1 ' XR1 XI1 ; MESS ' XR2 XI2 ' XR2 XI2 ; MESS ' XR3 XI3 ' XR3 XI3 ; 'FINSI' ; * * SCHEMA ITERATIF * IBOU = 0; 'REPE' LABOU 50; IBOU = IBOU + 1 ; * * CALCUL DE LA FONCTION ET DE SA DERIVEE * ALP2 = ALP / 2. ; SHAL = 'SINH' ALP ; CHAL = 'COSH' ALP ; SHAL2 = 'SINH' ALP2 ; CHAL2 = 'COSH' ALP2 ; THAL2 = 'TANH' ALP2 ; FF1 = ( ((( DX * SHAL2 ) /ALP2 ) ** 2 ) + DZ2 ) ** 0.5 ; FF2 = P2ES * ((( DX2 / ALP) * ( 1. + ( SHAL / ALP))) + (DZ2 /THAL2)); FON = FF1 - ( FF2 + A ) ; * DF1 =(( DX2 / ( ALP2 ** 3))*(SHAL2 * ( (ALP2 * CHAL2) - SHAL2))) / ( 2. * FF1 ) ; DF2 = (DX2 /(ALP*ALP))*((CHAL - 1.) - ( SHAL / ALP2 )) - ( ( DZ2 / 2.)/(SHAL2 * SHAL2)) ; DFON = DF1 - ( P2ES * DF2) ; * * INCREMENT * DALP = ( -1. * FON ) / DFON ; ACA = 'ABS' (DALP / ALP ); ALP = ALP + DALP ; * * TESTS DE CONVERGENCE * 'QUITTER' LABOU ; 'FINSI'; 'SI' ( IBOU 'EGA' 50) ; 'ERRE' ' NOMBRE MAXIMUM D ITERATIONS ATTEINT' ; 'FINSI'; 'FIN' LABOU ; HH =( P * DX ) / ALP ; HH = ABS ( ( P * DX ) / ALP ) ; ALP2 = ALP / 2. ; BET = ( ALP2 * DZ ) / ( ( 'SINH' ALP2 ) * DX ) ; * * CREATION DU MAILLAGE * GEO1 = P1 D NN P2 ; * * CALCUL DE LA POSITION REELLE * 'SI' ( IDIM 'EGA' 2 ) ; SINON; XX = ( COSTET * XXX) + ( SINTET * YY ); X1 = ( COSTET * XX1 ) + ( SINTET * Y1 ); X2 = ( COSTET * XX2 ) + ( SINTET * Y2 ); FINSI; CDX1= XX - CX1 ; CDZ1= ZZ - CZ1 ; CDX2= XX - CX2 ; FAC = P / ( 2. * HH ) ; CHACOS2= 'COSH' (FAC * CDX2 ) ; CHASIN2= 'SINH' (FAC * CDX2 ) ; ((((BET ** 2) + 1.) ** 0.5) * CHASIN2 ) ; CHACOS1= 'COSH' (FAC * CDX1 ) ; CHASIN1= 'SINH' (FAC * CDX1 ) ; * * LA LIGNE SUIVANTE PLANTE * *CHI1 = ( 1. / FAC ) * ( 'SINH' ( FAC * CDX1 )) ; 'SI' ( IDIM 'EGA' 2 ) ; 'SINON'; 'FINSI'; 'SI' IMP ; 'SI' ( IDIM 'EGA' 2 ); 'TRAC' GEO1; 'SINON'; 'FINSI'; 'FINSI'; * * CALCUL DE LA TENSION * SHI2 = (BET * CHASIN2) + ((((BET ** 2) + 1.) ** 0.5) * CHACOS2 ) ; ( 'PSCAL' CHASIN1 SHI2 LIM LIM ) ; TEN = HH * ( ( UNI + ( ZPRIM ** 2 ) ) ** 0.5 ) ; 'SI' IMP ; 'DESS' EV ; 'FINSI'; * * CREATION DU MODELE ET CHAMELEM DE TENSION * MOD1 = 'MODEL' GEO1 'MECANIQUE' 'ELASTIQUE' BARR ; 'STRESSES' 'CONTRAINTES' ; 'RESPRO' GEO1 MOD1 CHATEN ; 'FINPROC' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales