!*************************************************************************************!
! TITLE: CFVR1909 - Steel checking according to British Standard 5950 1985
! SUBTITLE: Lateral buckling with moments checking of a cantilever steel beam.
!
! DESCRIPTION: A steel cantilever beam is subjected to an axial compression force and
! DESCRIPTION: moments at free end.
! DESCRIPTION:
! DESCRIPTION: Determine the section class and total criterion according to BS 5950-85.
! DESCRIPTION:
!
! ELEMENT TYPE: BEAM4
! MODULES:
! UNITS: User
! KEYWORD1: Beam
! KEYWORD2: Cross Section
! KEYWORD3: Code Checking/Design
! KEYWORD4: Steel
! KEYWORD5: BS 5950-85
!
!*************************************************************************************!
   FINISH
  ~CFCLEAR,,1
  NomFile='CFVR1909'
  /TITLE, %NomFile%, British Standard 5950-85: Axial compression with moments

! -------------------------------------------------------------------------------------
! Initial data
! ---------------------------------------------------------------------------------
! CivilFEM Setup: Code & Units
  ~UNITS,,LENG,M
  ~UNITS,,TIME,S
  ~UNITS,,FORC,KN
  ~CODESEL,BS595085

/PREP7
! Preprocessor
! --------------------------------------------------
! Materials
  ~CFMP,1,LIB,STEEL,BS5950,Gr43

! Element type
  ET,1,BEAM4 ! Type 1: 3D Beam

! Cross Sections
  ~SSECLIB,1,1,20,8   !UC 203 x 203 x 86
! Member Properties
  L        = 1
  KLTXY    = 1.0
  KLTXZ    = 1.0
  KCXY     = 1.0
  KCXZ     = 1.0
  CteRob   = 0
  n        = 1
  m        = 1
  DL       = 0
  CFBUCKXY = 1
  CFBUCKXZ = 1
  CHCKAXIS = 0
  ~MEMBPRO,1,BS595085,ALL,L,KLTXY,KLTXZ,KCXY,KCXZ,CteRob,n,m,DL,CFBUCKXY,CFBUCKXZ,CHCKAXIS

! Beam properties
 ~BMSHPRO,1,BEAM,1,1,,,4,1,0,,

! Nodes
  N, 1
  N,25,1
  FILL, 1,25
! Elements
  E,1,2
  EGEN,24,1,1
  EPLOT
/SOLU
! Solution
! --------------------------------------------------
! Displacements
  D, 1,ALL
! Apply Load
  F,25,FX,-500
  F,25,MY,30
  F,25,MZ,80
! Solve
  SOLVE
/POST1
! Postprocessor
! --------------------------------------------------
! Read results
  ~CFSET,,1,1       ! Load first load case
! British Standard check in axial compression+bending
  ~CHKSTL,BUCK_BCM, ,-Z
!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 8
  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) = 'CRT_AX_L'
  LABEL(2,1) = 'CRT_AX_0'
  LABEL(3,1) = 'CRT_CM_L'
  LABEL(4,1) = 'CRT_CM_O'
  LABEL(5,1) = 'CRT_TOT'
  LABEL(6,1) = 'PC'
  LABEL(7,1) = 'MB'
  LABEL(8,1) = 'LAMBDALT'

! Correct values
  VALUE(1,1)=0.172
  VALUE(2,1)=0.186
  VALUE(3,1)=0.79
  VALUE(4,1)=0.93
  VALUE( 5,1)=0.93
  VALUE( 6,1)=2679
  VALUE( 7,1)= 239.38
  VALUE( 8,1)= 15.213

! Obtained values

    ~CFSET,1      ! Load first alternative
   ~PLLSSTL,CRT_AX_L
   *GET,VALUE(1,2),ELEM,8,ETAB,CFETAB_I
   ~PLLSSTL,CRT_AX_O
   *GET,VALUE(2,2),ELEM,8,ETAB,CFETAB_I
   ~PLLSSTL,CRT_CM_L
   *GET,VALUE(3,2),ELEM,8,ETAB,CFETAB_I
   ~PLLSSTL,CRT_CM_O
   *GET,VALUE(4,2),ELEM,8,ETAB,CFETAB_I
   ~PLLSSTL,CRT_TOT
   *GET,VALUE( 5,2),ELEM,1,ETAB,CFETAB_J
   ~PLLSSTL,PC
   *GET,VALUE( 6,2),ELEM,1,ETAB,CFETAB_J
   ~PLLSSTL,MB
   *GET,VALUE( 7,2),ELEM,1,ETAB,CFETAB_J
   ~PLLSSTL,LAMBDALT
   *GET,VALUE( 8,2),ELEM,1,ETAB,CFETAB_J

! Warning and error tolerances
  TOLER( 1,1)= 1E-3 $ TOLER( 1,2)= 1E-3
  TOLER( 2,1)= 1E-3 $ TOLER( 2,2)= 1E-3
  TOLER( 3,1)= 1E-2 $ TOLER( 3,2)= 1E-2  ! Rounding error accepted
  TOLER( 4,1)= 1E-3 $ TOLER( 4,2)= 1E-3
  TOLER( 5,1)= 1E-3 $ TOLER( 5,2)= 1E-3
  TOLER( 6,1)= 1E+1 $ TOLER( 6,2)= 1E+1  ! Rounding error accepted
  TOLER( 7,1)= 1E-1 $ TOLER( 7,2)= 1E-1  ! Rounding error accepted
  TOLER( 8,1)= 1E-1 $ TOLER( 8,2)= 1E-1  ! Rounding error accepted

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
