!*****************************************************************************************************!
! TITLE: CFVR2607 -  BS 5950 (2001) Compression Buckling
! SUBTITLE: Compression buckling checking according to British Standard 5950-01
!
! DESCRIPTION: A fixed steel beam subjected to a Fy load of -250 KN, applied on one end of the beam.
! DESCRIPTION:
! DESCRIPTION: The beam has a length of 10 m.
! DESCRIPTION:
! DESCRIPTION: The cross section is a 2 UPN 180.
! DESCRIPTION:
! DESCRIPTION: The beam is made of GrWR50A steel.
! DESCRIPTION:
! DESCRIPTION: The aim of the example is to obtain the cross section classification and compression
! DESCRIPTION: buckling criterion according to BS 5950-01.
!
! ELEMENT TYPE: BEAM4
! MODULES:
! UNITS: SI
! KEYWORD1: Beam
! KEYWORD2: Cross Section
! KEYWORD3: Steel
! KEYWORD4: Code Checking/Design
! KEYWORD5: BS 5950-01
!
!*************************************************************************************!
  FINISH
  ~CFCLEAR,,1
  NomFile='CFVR2607'
  /TITLE, %NomFile%, BS 5950 (2001) Compression Buckling
!--------------------------------------------------------------------------------------
! Model definition and solve
!--------------------------------------------------------------------------------------
! CivilFEM Setup: Code & Units
  ~UNITS,,LENG,M
  ~UNITS,,TIME,S
  ~UNITS,,FORC,KN
  ~CODESEL,BS595001,EC2,,,EC8-94
/PREP7
! Preprocessor
! --------------------------------------------------
! Materials
  ~CFMP,1,LIB,STEEL,BS5950,GrWR50A !GrWR50A
! Element Types
  ET,1,BEAM4 ! Type 1: 3D Beam
! Cross Sections
  ~SSECLIB,1,1,94,6    !2 UPN 180
! Member properties
  L        = 10
  KLTXY    = 1.0
  KLTXZ    = 1.0
  KCXY     = 1.1
  KCXZ     = 1.1
  CteRob   = 0
  n        = 1
  m        = 1
  DL       = 0
  CFBUCKXY = 1
  CFBUCKXZ = 1
  CHCKAXIS = 0
  Dpa      = 0
  mx       = 1
  my       = 1
  mlt      = 1
  ~MEMBPRO,1,BS595085,ALL,L,KLTXY,KLTXZ,KCXY,KCXZ,CteRob,n,m,DL,CFBUCKXY,CFBUCKXZ,CHCKAXIS,dpa,mx,my,mlt
! Beam properties
  ~BMSHPRO,1,BEAM,1,,,,4,1,0,,Beam Propeties

! Nodes
  N, 1
  N,25,,10
  FILL, 1,25
! Elements
  E,1,2
  EGEN,24,1,1
  EPLOT
/SOLU
! Solution
! --------------------------------------------------
! Displacements
  D, 1,UX
  D, 1,UY
  D, 1,UZ
  D,25,UX
  D,25,UZ
  D,ALL,ROTY
! Apply Load
  F,25,FY,-250
! Solve
  SOLVE
/POST1
! Postprocessor
! --------------------------------------------------
! Read results
  ~CFSET,,1,1       ! Load first load step

! Check for Buckling Compression
  ~CHKSTL,BUCK_CMP,

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 10
  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) ='WEBCLASS'
  LABEL( 3,1) ='CRT_TOT'
  LABEL( 4,1) ='F'
  LABEL( 5,1) ='PC'
  LABEL( 6,1) ='LAMBDA'
  LABEL( 7,1) ='LAMBDA0'
  LABEL( 8,1) ='PERRYFCT'
  LABEL( 9,1) ='ROBERSTS'
  LABEL(10,1) ='RHOC'

! Correct values
  VALUE( 1,1)= 3
  VALUE( 2,1)= 1
  VALUE( 3,1)= 1.055
  VALUE( 4,1)= 250.
  VALUE( 5,1)= 236.95
  VALUE( 6,1)= 201.242
  VALUE( 7,1)= 15.316
  VALUE( 8,1)= 1.0226
  VALUE( 9,1)= 5.5
  VALUE(10,1)= 42312.

! Obtained values
 ~PLLSSTL,CLASS
  *GET,VALUE( 1,2),ELEM,1,ETAB,CLASS_J
 ~PLLSSTL,WEBCLASS
  *GET,VALUE( 2,2),ELEM,1,ETAB,CLASS_J
 ~PLLSSTL,CRT_TOT
  *GET,VALUE( 3,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,F
  *GET,VALUE( 4,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,PC
  *GET,VALUE( 5,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,LAMBDA
  *GET,VALUE( 6,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,LAMBDA0
  *GET,VALUE( 7,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,PERRYFCT
  *GET,VALUE( 8,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,ROBERSTS
  *GET,VALUE( 9,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,RHOC
  *GET,VALUE(10,2),ELEM,1,ETAB,CFETAB_J

! Warning and error tolerances
  TOLER( 1,1)= 1E-9 $ TOLER( 1,2)= 1E-9
  TOLER( 2,1)= 1E-9 $ TOLER( 2,2)= 1E-9
  TOLER( 3,1)= 1E-4 $ TOLER( 3,2)= 1E-4
  TOLER( 4,1)= 1E-3 $ TOLER( 4,2)= 1E-3
  TOLER( 5,1)= 1E-3 $ TOLER( 5,2)= 1E-3
  TOLER( 6,1)= 1E-3 $ TOLER( 6,2)= 1E-3
  TOLER( 7,1)= 1E-3 $ TOLER( 7,2)= 1E-3
  TOLER( 8,1)= 1E-3 $ TOLER( 8,2)= 1E-3
  TOLER( 9,1)= 1E-3 $ TOLER( 9,2)= 1E-3
  TOLER(10,1)= 1E-0 $ TOLER(10,2)= 1E-0

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
