!*****************************************************************************************************!
! TITLE: CFVR1021 - EC3-05 test: Compression and flexural buckling
! SUBTITLE: Compression and flexural Buckling checking according to EN 1993-1-1:2005
!
! DESCRIPTION: A fixed steel beam subjected to a Fy load of -250 kN, a bending moment Mz of
! DESCRIPTION: 50 m*kN and a bending moment Mx of -30 m*kN applied to an end of the beam.
! DESCRIPTION:
! DESCRIPTION: The beam has a length of 10 m.
! DESCRIPTION:
! DESCRIPTION: The cross section is a IPE 550.
! DESCRIPTION:
! DESCRIPTION: The beam is made of Fe 460 steel which has a fy of 460000 kN/m<sup>2</sup>.
! DESCRIPTION:
! DESCRIPTION: The aim of the example is to obtain the cross section classification 
! DESCRIPTION: and compression and flexural buckling criterion according to EN 1993-1-1:2005. 
! DESCRIPTION: Member NOT susceptible to torsional deformations
!
! ELEMENT TYPE: BEAM4
! MODULES:
! UNITS: User
! KEYWORD1: Beam
! KEYWORD2: Cross Section
! KEYWORD3: Steel
! KEYWORD4: Code Checking/Design
! KEYWORD5: Eurocode 3
!
!*************************************************************************************!
   FINISH
  ~CFCLEAR,,1
   NomFile='CFVR1021'
  /TITLE, %NomFile%, EC3-05 test: Compression and flexural Buckling

! ---------------------------------------------------------------------------------
! Model definition and solve
! ---------------------------------------------------------------------------------
! CivilFEM Setup: Code & Units
  ~UNITS,,LENG,M
  ~UNITS,,TIME,S
  ~UNITS,,FORC,KN
  ~CODESEL,EC3-05,EC2-08,,,EC8-94
/PREP7
! Preprocessor
! --------------------------------------------------
! Materials
 ~CFMP,1,LIB,STEEL,UNE,S 460

! Element Types
  ET,1,BEAM4 ! Type 1: 3D Beam

! Cross Sections
~SSECLIB,1,1,1,17   ! IPE 550

! Member properties
! ~MEMBPRO,1,EC3,ALL, L,    K,   KW,   C1,   C2,   C3,  CMY,  CMZ, CMLT,PSIVEC,LATB,CFBXY,CFBXZ,CHKAX  
  ~MEMBPRO,1,EC3,ALL,10,1.000,1.000,1.879,  0.0,  0.0,  0.6,  0.6,  0.6,   0.5,   1,  1.0,  1.0,    0,  

! Beam properties
  ~BMSHPRO,1,BEAM,1,,,,4,1,0,,

! Nodes
  N,1,0.,0.
  N,2,0,10.
! Elements
  E,1,2
  EPLOT
/SOLU
! Solution
! --------------------------------------------------
! Displacements
  D,1,UX
  D,1,UY
  D,1,UZ
  D,2,UX

  D,2,UZ
  D,ALL,ROTY

! Apply Load
  F,2,FY,-250
  F,1,MZ,50
  F,1,MX,-30

  SOLVE
/POST1
! Postprocessor
! --------------------------------------------------
! Read results
  ~CFSET,,1,1       ! Read the first load step

! Check Buckling Compression & Bending
  ~CHKSTL,BUCK_BCM,-Z,PARTIAL

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp =27
  NComp_ch =  0

! Matrix dim.
  *DIM,LABEL,CHAR,Ncomp,1
  *DIM,LABEL_CH,CHAR,Ncomp_ch,1
  *DIM,VALUE,,Ncomp,3
  *DIM,VALUE_CH,CHAR,Ncomp_ch,3
  *DIM,TOLER,,Ncomp,2

! Labels
!--------------------------------------------------------------------------------------
  LABEL( 1,1) = 'CLASS'  
  LABEL( 2,1) = 'NED'    
  LABEL( 3,1) = 'MYED'   
  LABEL( 4,1) = 'MZED'   
  LABEL( 5,1) = 'NBRD1'  
  LABEL( 6,1) = 'MZRD1'  
  LABEL( 7,1) = 'NBRD2'  
  LABEL( 8,1) = 'MZRD2'  
  LABEL( 9,1) = 'K_Y'    
  LABEL(10,1) = 'K_Z'    
  LABEL(11,1) = 'CRT_MY2'  
  LABEL(12,1) = 'CRT_N1' 
  LABEL(13,1) = 'CRT_MZ1'
  LABEL(14,1) = 'CRT_1'  
  LABEL(15,1) = 'CRT_N2' 
  LABEL(16,1) = 'CRT_MZ2'
  LABEL(17,1) = 'CRT_2' 
  LABEL(18,1) = 'CRT_TOT'
  LABEL(19,1) = 'CHI_Y'  
  LABEL(20,1) = 'CHI_Z'  
  LABEL(21,1) = 'AREA'   
  LABEL(22,1) = 'WY'     
  LABEL(23,1) = 'WZ'     
  LABEL(24,1) = 'NCR_Y'  
  LABEL(25,1) = 'NCR_Z'  
  LABEL(26,1) = 'LAM_Y'  
  LABEL(27,1) = 'LAM_Z'  
 
! Correct values
!--------------------------------------------------------------------------------------
  VALUE( 1,1)=  3
  VALUE( 2,1)=  250
  VALUE( 3,1)=  50
  VALUE( 4,1)=  -30
  VALUE( 5,1)=  5101.77
  VALUE( 6,1)=  106.263
  VALUE( 7,1)=  482.21
  VALUE( 8,1)=  106.263
  VALUE( 9,1)=  1.0196
  VALUE(10,1)=  1.311
  VALUE(11,1)=  2.397E-2
  VALUE(12,1)=  4.9E-2
  VALUE(13,1)=  0.222
  VALUE(14,1)=  0.30
  VALUE(15,1)=  0.518
  VALUE(16,1)=  0.222
  VALUE(17,1)=  0.764
  VALUE(18,1)=  0.764
  VALUE(19,1)=  0.90774
  VALUE(20,1)=  0.086
  VALUE(21,1)=  1.344E-2
  VALUE(22,1)=  2.441E-3
  VALUE(23,1)=  2.541E-4
  VALUE(24,1)=  13911
  VALUE(25,1)=  552.97
  VALUE(26,1)=  0.66664
  VALUE(27,1)=  1.00

! Obtained values
!--------------------------------------------------------------------------------------
 ~CFGET,VALUE( 1,2),ELEMENT,1,RESULT,CLASS,I
 ~CFGET,VALUE( 2,2),ELEMENT,1,RESULT,NED,I
 ~CFGET,VALUE( 3,2),ELEMENT,1,RESULT,MYED,I
 ~CFGET,VALUE( 4,2),ELEMENT,1,RESULT,MZED,I
 ~CFGET,VALUE( 5,2),ELEMENT,1,RESULT,NBRD1,I
 ~CFGET,VALUE( 6,2),ELEMENT,1,RESULT,MZRD1,I
 ~CFGET,VALUE( 7,2),ELEMENT,1,RESULT,NBRD2,I
 ~CFGET,VALUE( 8,2),ELEMENT,1,RESULT,MZRD2,I
 ~CFGET,VALUE( 9,2),ELEMENT,1,RESULT,K_Y,I
 ~CFGET,VALUE(10,2),ELEMENT,1,RESULT,K_Z,I
 ~CFGET,VALUE(11,2),ELEMENT,1,RESULT,CRT_MY2,I
 ~CFGET,VALUE(12,2),ELEMENT,1,RESULT,CRT_N1,I
 ~CFGET,VALUE(13,2),ELEMENT,1,RESULT,CRT_MZ1,I
 ~CFGET,VALUE(14,2),ELEMENT,1,RESULT,CRT_1,I
 ~CFGET,VALUE(15,2),ELEMENT,1,RESULT,CRT_N2,I
 ~CFGET,VALUE(16,2),ELEMENT,1,RESULT,CRT_MZ2,I
 ~CFGET,VALUE(17,2),ELEMENT,1,RESULT,CRT_2,I
 ~CFGET,VALUE(18,2),ELEMENT,1,RESULT,CRT_TOT,I
 ~CFGET,VALUE(19,2),ELEMENT,1,RESULT,CHI_Y,I
 ~CFGET,VALUE(20,2),ELEMENT,1,RESULT,CHI_Z,I
 ~CFGET,VALUE(21,2),ELEMENT,1,RESULT,AREA,I
 ~CFGET,VALUE(22,2),ELEMENT,1,RESULT,WY,I
 ~CFGET,VALUE(23,2),ELEMENT,1,RESULT,WZ,I
 ~CFGET,VALUE(24,2),ELEMENT,1,RESULT,NCR_Y,I
 ~CFGET,VALUE(25,2),ELEMENT,1,RESULT,NCR_Z,I
 ~CFGET,VALUE(26,2),ELEMENT,1,RESULT,LAM_Y,I
 ~CFGET,VALUE(27,2),ELEMENT,1,RESULT,LAM_Z,I
 
 ! Warning and error tolerances
  TOLER( 1,1)= 1E-2 $ TOLER( 1,2)= 1E-2
  TOLER( 2,1)= 1E-2 $ TOLER( 2,2)= 1E-2
  TOLER( 3,1)= 1E-2 $ TOLER( 3,2)= 1E-2
  TOLER( 4,1)= 1E-2 $ TOLER( 4,2)= 1E-2
  TOLER( 5,1)= 1E-2 $ TOLER( 5,2)= 1E-2
  TOLER( 6,1)= 1E-2 $ TOLER( 6,2)= 1E-2
  TOLER( 7,1)= 1E-2 $ TOLER( 7,2)= 1E-2
  TOLER( 8,1)= 1E-2 $ TOLER( 8,2)= 1E-2
  TOLER( 9,1)= 1E-2 $ TOLER( 9,2)= 1E-2
  TOLER(10,1)= 1E-2 $ TOLER(10,2)= 1E-2
  TOLER(11,1)= 1E-2 $ TOLER(11,2)= 1E-2
  TOLER(12,1)= 1E-2 $ TOLER(12,2)= 1E-2
  TOLER(13,1)= 1E-2 $ TOLER(13,2)= 1E-2
  TOLER(14,1)= 1E-2 $ TOLER(14,2)= 1E-2		
  TOLER(15,1)= 1E-2 $ TOLER(15,2)= 1E-2
  TOLER(16,1)= 1E-2 $ TOLER(16,2)= 1E-2
  TOLER(17,1)= 1E-2 $ TOLER(17,2)= 1E-2		
  TOLER(18,1)= 1E-2 $ TOLER(18,2)= 1E-2		
  TOLER(19,1)= 1E-2 $ TOLER(19,2)= 1E-2
  TOLER(20,1)= 1E-2 $ TOLER(20,2)= 1E-2
  TOLER(21,1)= 1E-2 $ TOLER(21,2)= 1E-2
  TOLER(22,1)= 1E-6 $ TOLER(22,2)= 1E-6
  TOLER(23,1)= 1E-6 $ TOLER(23,2)= 1E-6
  TOLER(24,1)= 1E+1 $ TOLER(24,2)= 1E+1		! ROUNDING ERROR ACCEPTED
  TOLER(25,1)= 1E+1 $ TOLER(25,2)= 1E+1		! ROUNDING ERROR ACCEPTED
  TOLER(26,1)= 1E-2 $ TOLER(26,2)= 1E-2
  TOLER(27,1)= 1E-2 $ TOLER(27,2)= 1E-2

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
