* fichier : test4_fun_gultifr.dgibi
*
**********************************************************
*  Test sur la procedure G_ULTIFR (fonction pour determiner 
*  la position de l'etat de contrainte courant par rapport à la surface 
*  de capacité
*
*  Test pour l'option poutre longue
*
*  b=0.3
*  h=0.4
*  c=0.025
*  armature long 1f20 + 1f30 + 1f12 + 1f12
*  cadre phi 8
*  s = 0.1 m
*  ly=2.0
*  lz=1.5
*  
*
*  Develloppé par Alberto FRAU /DEN/DANS/DM2S/SEMT/EMSI
*              et Nicolas ILE  /DEN/DANS/DM2S/SEMT/EMSI
*
**********************************************************
*
*dimensions de la section
*Y horizontal
*Z vertical
B_Y1 = 0.3;
B_Z1 = 0.4;
*
*Ltot = longueur libre d'inflexion
LTOT1Y = 2.0;
LTOT1Z = 1.5;
*distance entre les cadres
S_CAD1 = 0.1;
*enrobage
ENR1 = 0.025;
*
*diametre ferraillage longitudinal 
PHI_LON1 = PROG 20.0 30.0 12.0 12.0;
PHI_Y = PROG ((-1.0)*((B_Y1 - (2.0*ENR1))/(2.0))) 
             ((+1.0)*((B_Y1 - (2.0*ENR1))/(2.0)))
             ((+1.0)*((B_Y1 - (2.0*ENR1))/(2.0)))
             ((-1.0)*((B_Y1 - (2.0*ENR1))/(2.0)));
PHI_Z = PROG ((-1.0)*((B_Z1 - (2.0*ENR1))/(2.0))) 
             ((-1.0)*((B_Z1 - (2.0*ENR1))/(2.0)))
             ((+1.0)*((B_Z1 - (2.0*ENR1))/(2.0)))
             ((+1.0)*((B_Z1 - (2.0*ENR1))/(2.0)));
*

* A tot des cadres selon Y et selon Z
A_CADRE1 = (2.0)*((PI)*((0.004)**(2.0)));
A_CADRE2 = (2.0)*((PI)*((0.004)**(2.0)));
*
*A longitudinale
ALL1 = 0.0;
I = 1;
NN1 = DIME PHI_LON1;
*
REPE IND1 (NN1);
  PHI_I1 = EXTR PHI_LON1 I;
  AA1 = (PI)*(((PHI_I1)*(PHI_I1))/(4.0));
  AA1 = AA1/(1.E6);
  ALL1 = ALL1 + AA1;
  I = I + 1;
FIN IND1;
*
* omsy1 et omsz
OM_SY1 = ((ALL1)*(500.E6))/(((B_Y1)*(B_Z1))*(25.E6));
OM_SZ1 = ((ALL1)*(500.E6))/(((B_Y1)*(B_Z1))*(25.E6));
*
* omwy1 et omwz
OM_WZ1 = ((A_CADRE1)*(500.E6))/(((B_Y1)*(S_CAD1))*(25.E6));
OM_WY1 = ((A_CADRE2)*(500.E6))/(((B_Z1)*(S_CAD1))*(25.E6));
*
* lamy1 et lamy2
LAMB_Y1 = ((LTOT1Z)/(B_Y1));
LAMB_Z1 = ((LTOT1Y)/(B_Z1));
*
* test court ou long
VAL_TT1 = LAMB_Y1 <EG (OM_SY1/OM_WY1);
VAL_TT2 = LAMB_Z1 <EG (OM_SZ1/OM_WZ1);
*
*si la relation est satisfaite --> error
SI ((VAL_TT1) ET (VAL_TT2));
  ERRE 5;
FINSI;
*
*N traction
N_TRAC1 =((ALL1)*(500.E6));
*N compression
N_COMP1 = (((B_Y1)*(B_Z1))*(25.E6))+((ALL1)*(500.E6));
N_COMP1 = ((-1.0)*(N_COMP1));
*
*DEFORMATION DU BETON
EPSI_BET = 0.0035;
*DEFORMATION DE L'ACIER
EPSI_ACI = 0.045;
*
*HAUTEUR NETTE
D_YP = B_Z1-ENR1;
D_ZP = B_Y1-ENR1;
D_YN = (B_Z1-ENR1);
D_ZN = (B_Y1-ENR1);
*
*position de L'AXE NEUTRE
AXEN_YP = ((EPSI_BET)/(EPSI_BET+EPSI_ACI))*D_YP;
AXEN_ZP = ((EPSI_BET)/(EPSI_BET+EPSI_ACI))*D_ZP;
AXEN_YN = ((EPSI_BET)/(EPSI_BET+EPSI_ACI))*D_YN;
AXEN_ZN = ((EPSI_BET)/(EPSI_BET+EPSI_ACI))*D_ZN;
*
FF_YP = ((EPSI_BET)/(AXEN_YP));
FF_ZP = ((EPSI_BET)/(AXEN_ZP));
FF_YN = (-1.0)*((EPSI_BET)/(AXEN_YN));
FF_ZN = (-1.0)*((EPSI_BET)/(AXEN_ZN));
EPS0_YP = (FF_YP)*((B_Z1/2.0) - AXEN_YP);
EPS0_ZP = (FF_ZP)*((B_Y1/2.0) - AXEN_ZP);
EPS0_YN = (FF_YN)*(AXEN_YN - (B_Z1/2.0));
EPS0_ZN = (FF_ZN)*(AXEN_ZN - (B_Y1/2.0));
*
*N BALANCED
NBIL_YP = ((-0.8)*(25.E6))*((B_Y1)*(AXEN_YP));
NBIL_YN = ((-0.8)*(25.E6))*((B_Y1)*(AXEN_YN));
NBIL_ZP = ((-0.8)*(25.E6))*((B_Z1)*(AXEN_ZP));
NBIL_ZN = ((-0.8)*(25.E6))*((B_Z1)*(AXEN_ZN));
*M BALANCED
MBIL_YP = ((1.0)*(NBIL_YP))*((B_Z1/2.0) - ((0.4)*(AXEN_YP)));
MBIL_ZP = ((1.0)*(NBIL_ZP))*((B_Y1/2.0) - ((0.4)*(AXEN_ZP)));
MBIL_YN = ((-1.0)*(NBIL_YN))*((B_Z1/2.0) - ((0.4)*(AXEN_YN)));
MBIL_ZN = ((-1.0)*(NBIL_ZN))*((B_Y1/2.0) - ((0.4)*(AXEN_ZN)));
*
I = 1;

REPE IND1 (NN1);
* Calcolo di epsi
  EPSI_YP = EPS0_YP - ((FF_YP)*(EXTR PHI_Z I));
  EPSI_ZP = EPS0_ZP - ((FF_ZP)*(EXTR PHI_Y I));
  EPSI_YN = EPS0_YN - ((FF_YN)*(EXTR PHI_Z I));
  EPSI_ZN = EPS0_ZN - ((FF_ZN)*(EXTR PHI_Y I));
*calcolo di sigma
  SIGI_YP = (210000.0E6)*(EPSI_YP);
  SIGI_YN = (210000.0E6)*(EPSI_YN);
  SIGI_ZP = (210000.0E6)*(EPSI_ZP);
  SIGI_ZN = (210000.0E6)*(EPSI_ZN);
  SI ((ABS(SIGI_YP)) > 500.E6);
    SIGI_YP = (SIGI_YP/(ABS(SIGI_YP)))*(500.E6);
  FINSI;
  SI ((ABS(SIGI_YN)) > 500.E6);
    SIGI_YN = (SIGI_YN/(ABS(SIGI_YN)))*(500.E6);
  FINSI;
  SI ((ABS(SIGI_ZP)) > 500.E6);
    SIGI_ZP = (SIGI_ZP/(ABS(SIGI_ZP)))*(500.E6);
  FINSI;
  SI ((ABS(SIGI_ZN)) > 500.E6);
    SIGI_ZN = (SIGI_ZN/(ABS(SIGI_ZN)))*(500.E6);
  FINSI;
*
  PHI_I1 = EXTR PHI_LON1 I;
  AA1 = (PI)*(((PHI_I1)*(PHI_I1))/(4.0));
  AA1 = AA1/(1.E6);
*
  NBIL_YP = NBIL_YP + ((AA1)*(SIGI_YP));
  NBIL_YN = NBIL_YN + ((AA1)*(SIGI_YN));
  NBIL_ZP = NBIL_ZP + ((AA1)*(SIGI_ZP));
  NBIL_ZN = NBIL_ZN + ((AA1)*(SIGI_ZN));
*
  MBIL_YP = MBIL_YP + (((AA1)*(SIGI_YP))*(EXTR PHI_Z I));
  MBIL_YN = MBIL_YN + (((AA1)*(SIGI_YN))*(EXTR PHI_Z I));
  MBIL_ZP = MBIL_ZP + (((AA1)*(SIGI_ZP))*(EXTR PHI_Y I));
  MBIL_ZN = MBIL_ZN + (((AA1)*(SIGI_ZN))*(EXTR PHI_Y I));
*
I = I + 1;
FIN IND1;
*
* Test1 N = Ncomp
******************************************************************
TB1                     = TABLE;
TB1.'TYPE'              = CHAINE 'PT_LONG';
TB1.'NN'                = N_COMP1;
TB1.'VY'                = 0.0;
TB1.'VZ'                = 0.0;
TB1.'MT'                = 0.0;
TB1.'MY'                = 0.0;
TB1.'MZ'                = 0.0;
TB1.'BY'                = B_Y1;
TB1.'BZ'                = B_Z1;
TB1.'FCD'               = 25.e6;
TB1.'FSD'               = 500.e6;
TB1.'WSY'               = OM_SY1;
TB1.'WSZ'               = OM_SZ1;
TB1.'WWY'               = OM_WY1;
TB1.'WWZ'               = OM_WZ1;
TB1.'LY'                = LAMB_Y1;
TB1.'LZ'                = LAMB_Z1;
TB1.'XIY'               = CHI_Y1;
TB1.'XIZ'               = CHI_Z1;
TB1.'PHI_LON'           = PHI_LON1;
TB1.'PHI_Y'             = PHI_Y;
TB1.'PHI_Z'             = PHI_Z;
TB1.'EPSI_BET'          = EPSI_BET;
TB1.'EPSI_ACI'          = EPSI_ACI;
TB1.'YOUNG_ACIER'       = 210000.E6;
*
******************************************************************
*
VAL1 = G_ULTIFR TB1;
*
* Test2 N = Ntrac
******************************************************************
*
TB1.'NN'                = N_TRAC1;
TB1.'VY'                = 0.0;
VAL2 = G_ULTIFR TB1;
*
* Test3 N = Nybl+ et My = Mybl+
******************************************************************
*
TB1.'NN'                = NBIL_YP;
TB1.'MY'                = MBIL_YP;
VAL3 = G_ULTIFR TB1;
*
* Test4 N = Nybl- et My = Mybl-
******************************************************************
*
TB1.'NN'                = NBIL_YN;
TB1.'MY'                = MBIL_YN;
TB1.'MZ'                = 0.0;
VAL4 = G_ULTIFR TB1;
*  Test 
*
SI ((ABS(VAL1)) > 1.E-8);
  ERRE 5;
FINSI;
*
SI ((ABS(VAL2)) > 1.E-8);
  ERRE 5;
FINSI;
*
SI ((ABS(VAL3)) > 1.E-8);
  ERRE 5;
FINSI;
*
SI ((ABS(VAL4)) > 1.E-8);
  ERRE 5;
FINSI;
*
FIN;
 

 

