!*****************************************************************************************************!
! TITLE: CFVR7910 - CTE DB SE-A test: Compression and flexural Buckling
! SUBTITLE: Compression and flexural Buckling checking according to CTE DB SE-A
!
! DESCRIPTION: A fixed steel beam subjected to a Fy load of -250 kN, a bending moment Mz of 50 m*kN and a bending
! DESCRIPTION: moment Mx of -30 m*kN applied to an end of the beam.
! DESCRIPTION:
! DESCRIPTION: The beam has a length of 1 m.
! DESCRIPTION:
! DESCRIPTION: The cross section is a IPE 140.
! 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 and compression
! DESCRIPTION: and flexural buckling criterion according to CTE DB SE-A.
!
! ELEMENT TYPE: BEAM4
! MODULES:
! UNITS: User
! KEYWORD1: Beam
! KEYWORD2: Cross Section
! KEYWORD3: Steel
! KEYWORD4: Code Checking/Design
! KEYWORD5: CTE
!
!*************************************************************************************!
   FINISH
  ~CFCLEAR,,1
   NomFile='CFVR7910'
  /TITLE, %NomFile%, CTE DB SE-A test: Compression and flexion Buckling

! ---------------------------------------------------------------------------------
! Model definition and solve
! ---------------------------------------------------------------------------------
! CivilFEM Setup: Code & Units
  ~UNITS,,LENG,M
  ~UNITS,,TIME,S
  ~UNITS,,FORC,KN
  ~CODESEL,CTESEA,EC2,,,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,4   !IPE 140

! Member properties
  ~MEMBPRO,1,CTESEA,ALL,10,1.0,1.0,1.0,1.0,1.0,1.0,0.8,0,1.0,1.0,0

! Beam properties
  ~BMSHPRO,1,BEAM,1,,,,4,1,0,,
  ~BMSHOFF,1,2,7e-2,3.65e-2,7e-2,3.65e-2

! 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
  ~CHKSTL,BUCK_BCM,-Z,PARTIAL

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 16
  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) = 'NBRD1'
  LABEL( 3,1) = 'MYRD1'
  LABEL( 4,1) = 'MZRD1'
  LABEL( 5,1) = 'CRIT_N1'
  LABEL( 6,1) = 'CRT_MY1'
  LABEL( 7,1) = 'CRT_MZ1'
  LABEL( 8,1) = 'CRT_1'
  LABEL( 9,1) = 'NBRD2'
  LABEL(10,1) = 'MYRD2'
  LABEL(11,1) = 'MZRD2'
  LABEL(12,1) = 'CRIT_N2'
  LABEL(13,1) = 'CRT_MY2'
  LABEL(14,1) = 'CRT_MZ2'
  LABEL(15,1) = 'CRT_2'
  LABEL(16,1) = 'CRT_TOT'

! Correct values
!--------------------------------------------------------------------------------------
  VALUE( 1,1)=  1
  VALUE( 2,1)=  101.39
  VALUE( 3,1)=  12.16
  VALUE( 4,1)=  8.433
  VALUE( 5,1)=  2.466
  VALUE( 6,1)=  12.22
  VALUE( 7,1)=  88.6
  VALUE( 8,1)=  103.286
  VALUE( 9,1)=  8.7023
  VALUE(10,1)=  12.16
  VALUE(11,1)=  8.433
  VALUE(12,1)=  28.72
  VALUE(13,1)=  11.63
  VALUE(14,1)=  147.7
  VALUE(15,1)=  188.05
  VALUE(16,1)=  188.05

! Obtained values
!--------------------------------------------------------------------------------------
 ~CFGET,VALUE( 1,2),ELEMENT,1,RESULT,CLASS,I
 ~CFGET,VALUE( 2,2),ELEMENT,1,RESULT,NBRD1,I
 ~CFGET,VALUE( 3,2),ELEMENT,1,RESULT,MYRD1,I
 ~CFGET,VALUE( 4,2),ELEMENT,1,RESULT,MZRD1,I
 ~CFGET,VALUE( 5,2),ELEMENT,1,RESULT,CRT_N1,I
 ~CFGET,VALUE( 6,2),ELEMENT,1,RESULT,CRT_MY1,I
 ~CFGET,VALUE( 7,2),ELEMENT,1,RESULT,CRT_MZ1,I
 ~CFGET,VALUE( 8,2),ELEMENT,1,RESULT,CRT_1,I
 ~CFGET,VALUE( 9,2),ELEMENT,1,RESULT,NBRD2,I
 ~CFGET,VALUE(10,2),ELEMENT,1,RESULT,MYRD2,I
 ~CFGET,VALUE(11,2),ELEMENT,1,RESULT,MZRD2,I
 ~CFGET,VALUE(12,2),ELEMENT,1,RESULT,CRT_N2,I
 ~CFGET,VALUE(13,2),ELEMENT,1,RESULT,CRT_MY2,I
 ~CFGET,VALUE(14,2),ELEMENT,1,RESULT,CRT_MZ2,I
 ~CFGET,VALUE(15,2),ELEMENT,1,RESULT,CRT_2,I
 ~CFGET,VALUE(16,2),ELEMENT,1,RESULT,CRT_TOT,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)= 1    $ TOLER( 7,2)= 1
  TOLER( 8,1)= 1 $ TOLER( 8,2)= 1
  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)= 1    $ TOLER(12,2)= 1
  TOLER(13,1)= 1E-2 $ TOLER(13,2)= 1E-2
  TOLER(14,1)= 1E1  $ TOLER(14,2)= 1E1
  TOLER(15,1)= 2 $ TOLER(15,2)= 2
  TOLER(16,1)= 2 $ TOLER(16,2)= 2

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
