!*************************************************************************************!
! TITLE: CFVR2605 -  British Standard : Lateral Buckling
! SUBTITLE: lateral buckling checking according to BS 5950-01
!
! DESCRIPTION: A pinned-pinned steel beam subjected to a surface load of 80 KN/m.
! DESCRIPTION:
! DESCRIPTION: The beam has a length of 6 m.
! DESCRIPTION:
! DESCRIPTION: The cross section is a L section with the following dimensions:
! DESCRIPTION:
! DESCRIPTION: - h = 0.44 m
! DESCRIPTION:
! DESCRIPTION: - tw = 0.006 m
! DESCRIPTION:
! DESCRIPTION: - b = 0.22 m
! DESCRIPTION:
! DESCRIPTION: - tf = 0.02 m
! DESCRIPTION:
! DESCRIPTION: The aim of the example is to obtain the lateral buckling
! DESCRIPTION: criterion according to BS 5950-01.
!
! ELEMENT TYPE: BEAM3
! MODULES:
! UNITS: User
! KEYWORD1: Beam
! KEYWORD2: Cross Section
! KEYWORD3: Steel
! KEYWORD4: Code Checking/Design
! KEYWORD5: BS 5950-01
!
!*************************************************************************************!
  FINISH
  ~CFCLEAR,,1
   NomFile='CFVR2605'
  /TITLE, %NomFile%, British Standard : Lateral Buckling

!--------------------------------------------------------------------------------------
! Model definition and solve
!--------------------------------------------------------------------------------------
! CivilFEM SETUP
  ~UNITS,,LENG,M
  ~UNITS,,TIME,S
  ~UNITS,,FORC,KN
  ~CODESEL,BS595001,EC2,,,EC8-94

/PREP7
! Materials
  ~CFMP,1,LIB,STEEL,BS5950,GrWR50B  ! GrWR50B
! Element types
  ET,1,Beam3 ! Element Type 1: 2D Beam
! Cross sections
  ~SSECDMS,2,I,1,0.44,6e-003,0.22,2e-002,3e-003
! Member properties
  L        = 6
  KLTXY    = 1
  KLTXZ    = 1
  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,2,2,,,3,1,0,,Beam Properties

! Nodes
  N,1
  N,7,6
  FILL,1,7
! Elements
  E,1,2
  EGEN,6,1,1,1
! Boundary conditions
  D,1,,,,,,UX,UY
  D,7,,,,,,UY
! Plot
  /ESHAPE,1
  EPLOT
! Load cases
  /SOLU
  P=80*1.5 ! 80 KN/m uniform distributed load
  SFBEAM,ALL,1,PRES,P
  SOLVE

/POST1
! Postprocessor
  ~CFSET,,1,1       ! Load first load step
! Plot bending moment MZ
  ~PLLSFOR,M,Z,-1
! Check for lateral bending
  ~CHKSTL,BUCK_LAT

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 9
  NComp_ch =  0

! Marix 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) = 'M       '
  LABEL(5,1) = 'MB      '
  LABEL(6,1) = 'LAMBDA  '
  LABEL(7,1) = 'LAMBDALT'
  LABEL(8,1) = 'LAMBDAL0'
  LABEL(9,1) = 'UMLT    '

! Correct values
  VALUE(1,1)= 1
  VALUE(2,1)= 2
  VALUE(3,1)= 4.905
  VALUE(4,1)= 540.
  VALUE(5,1)= 110.082
  VALUE(6,1)= 117.416
  VALUE(7,1)= 92.4878
  VALUE(8,1)= 30.63
  VALUE(9,1)= 1

! Obtained values
 ~PLLSSTL,CLASS
  *GET,VALUE(1,2),ELEM,3,ETAB,CLASS_J
 ~PLLSSTL,WEBCLASS
  *GET,VALUE(2,2),ELEM,3,ETAB,CLASS_J
 ~PLLSSTL,CRT_TOT
  *GET,VALUE(3,2),ELEM,3,ETAB,CFETAB_J
 ~PLLSSTL,M
  *GET,VALUE(4,2),ELEM,3,ETAB,CFETAB_J
 ~PLLSSTL,MB
  *GET,VALUE(5,2),ELEM,3,ETAB,CFETAB_J
 ~PLLSSTL,LAMBDA
  *GET,VALUE(6,2),ELEM,3,ETAB,CFETAB_J
 ~PLLSSTL,LAMBDALT
  *GET,VALUE(7,2),ELEM,3,ETAB,CFETAB_J
 ~PLLSSTL,LAMBDAL0
  *GET,VALUE(8,2),ELEM,3,ETAB,CFETAB_J
 ~PLLSSTL,UMLT
  *GET,VALUE(9,2),ELEM,3,ETAB,CFETAB_J

! Warning and error tolerances
  TOLER( 1, 1)= 0      $   TOLER( 1, 2)= 0
  TOLER( 2, 1)= 0      $   TOLER( 2, 2)= 0
  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)= 2E-2   $   TOLER( 8, 2)= 2E-2
  TOLER( 9, 1)= 1E-1   $   TOLER( 9, 2)= 1E-1

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
