!*****************************************************************************************************!
! TITLE: CFVR7052 - AASHTO10: Compression Flexural Buckling Checking
! SUBTITLE: Compression Flexural Buckling Checking according to AASHTO10 for a cantilever beam.
!
! DESCRIPTION: A cantilever steel beam is subjected to an axial compression force of 500 kips.
! DESCRIPTION:
! DESCRIPTION: The beam has a length of 21in.
! DESCRIPTION: The cross section is a W 14x132.
! DESCRIPTION:
! DESCRIPTION: The beam is made of A572Gr50 steel which has a fy of 50 ksi.
! DESCRIPTION:
! DESCRIPTION: The aim of the example is to obtain the compresion flexural buckling criterion
! DESCRIPTION: according to AASHTO10.
!
! ELEMENT TYPE: BEAM3
! MODULES:
! UNITS: User
! KEYWORD1: Beam
! KEYWORD2: Cross Section
! KEYWORD3: Steel
! KEYWORD4: Code Checking/Design
! KEYWORD5: AASHTO10
!
!*************************************************************************************!
   FINISH
   ~CFCLEAR,,1
   NomFile='CFVR7052'
   /TITLE, %NomFile%, AASHTO10: Compression Flexural Buckling Checking

!--------------------------------------------------------------------------------------
! Model definition
!--------------------------------------------------------------------------------------
! CivilFEM Setup: Code & Units
   ~CODESEL,AASHTO10
   ~UNITS,,LENG,in
   ~UNITS,,TIME,S
   ~UNITS,,FORC,KIPS
   ~UNITS,,PRES,,0 ,ksi

   /PREP7
! Preprocessor
! --------------------------------------------------
! Materials
  ~CFMP,1,LIB,STEEL,ASTM,A572Gr50
! Element Types
  ET,1,Beam3
! Cross Section
 ~SSECLIB,1,1,51,183   ! W 14x132
! Beam & Shell Property
  ~BMSHPRO,1,BEAM,1,1,,,3,1,0,,Beam 1
! Member property
 ~MEMBPRO,1,AASHTO10,ALL,21.0,2.000,2.000,1.000,1.000,0.000,1.000,1.000,0.000,  

! Nodes
  N,1
  N,21,,21
  FILL,1,21,19, , ,1,1,1,
! Elements
  REAL,1
  E,1,2
  EGEN,20,1,1,1

  /SOLU
! Solution
! --------------------------------------------------
! Constrains
  D, 1,ALL
! Apply Load
  F,21,FY,-500
! Solve
  SOLVE

  /POST1
! Postprocessor
! --------------------------------------------------
! Read results
  ~CFSET,,1,1                  ! First load case
! Axial-compression checking
  ~CHKSTL,COMPFBK

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 5
  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) = 'PO      '
  LABEL(2,1) = 'PE      '
  LABEL(3,1) = 'PN      '
  LABEL(4,1) = 'CRT_TOT '
  LABEL(5,1) = 'CLS_COMP'

! Correct values
  VALUE(1,1)= 1940  
  VALUE(2,1)= 89006 
  VALUE(3,1)= 1922 
  VALUE(4,1)= 0.29 
  VALUE(5,1)= 1 

! Comparison

 ~PLLSSTL,PO
 *GET,VALUE(1,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,PE
 *GET,VALUE(2,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,PN
 *GET,VALUE(3,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,CRT_TOT
 *GET,VALUE(4,2),ELEM,1,ETAB,CFETAB_I
  ~PLLSSTL,CLS_COMP
 *GET,VALUE(5,2),ELEM,1,ETAB,CLASS_I

! Warning and error tolerances
  TOLER( 1, 1)= 2E-02   $ TOLER( 1, 2)= 2E-02
  TOLER( 2, 1)= 5E-00   $ TOLER( 2, 2)= 5E-00	! Rounding error accepted
  TOLER( 3, 1)= 1E-00   $ TOLER( 3, 2)= 1E-00	! Rounding error accepted
  TOLER( 4, 1)= 2E-02   $ TOLER( 4, 2)= 2E-02
  TOLER( 5, 1)= 2E-02   $ TOLER( 5, 2)= 2E-02


!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
