!*************************************************************************************!
! TITLE: CFVR7414 - Checking according to ASD 9<sup>th</sup> Edition
! SUBTITLE: Compression & bending checking of a cantilever steel beam
!
! DESCRIPTION: A steel cantilever beam with built-up I shape section is subjected to a
! DESCRIPTION: compression axial load and a vertical force in both directions at free end.
! DESCRIPTION:
! DESCRIPTION: Determine the total criterion according to ASD 9<sup>th</sup> Edition.
! DESCRIPTION:
!
! ELEMENT TYPE: BEAM188
! MODULES:
! UNITS: SI
! KEYWORD1: Beam
! KEYWORD2: Cross Section
! KEYWORD3: Code Checking/Design
! KEYWORD4: Steel
! KEYWORD5: ASD 9
!
!*************************************************************************************!
FINISH
~CFCLEAR,,1
   NomFile='CFVR7414'
 /TITLE, %NomFile%, Compression & Bending checking ASD 9th Edition

! -------------------------------------------------------------------------------------
! Initial data
! -------------------------------------------------------------------------------------
! CivilFEM SETUP
~CFACTIV,NUCL,Y
~CODESEL,ASD9,EC2-91,EC2-91,,EC8-94

/PREP7

ET,1,Beam188,,,2

~CFMP,1,LIB,STEEL,ASTM,A441
~SSECDMS,1,I,1,0.40,0.015,0.30,0.015
~MEMBPRO,1,ASD9,ALL,3,2,2,1,1
~BMSHPRO,1,BEAM,1,1,,,188,1,1,,Beam 1

N,1
N,2,3
E,1,2

/SHRINK,0
/ESHAPE,1.0

EPLOT

D,1,ALL

F,2,FY,-40000
F,2,FZ,-10000
F,2,FX,-300000

/SOLU
SOLVE

/POST1
~CFSET,0,1,LAST

! Check
~CHKSTL,COMP_BND

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 14
  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)  = 'QS'
  LABEL(2,1)  = 'QA'
  LABEL(3,1)  = 'Q'
  LABEL(4,1)  = 'LAMBDA'
  LABEL(5,1)  = 'SLEND'
  LABEL(6,1)  = 'FAC'
  LABEL(7,1)  = 'CRT_AX'
  LABEL(8,1)  = 'MBZ'
  LABEL(9,1)  = 'FBZ'
  LABEL(10,1) = 'CRT_BDZ'
  LABEL(11,1) = 'MBY'
  LABEL(12,1) = 'FBY'
  LABEL(13,1) = 'CRT_BDY'
  LABEL(14,1) = 'CRT_TOT'

! Correct values
  VALUE(1,1)=1.0
  VALUE(2,1)=1.0
  VALUE(3,1)=1.0
  VALUE(4,1)=88.02
  VALUE(5,1)=88.02
  VALUE(6,1)=119712042.38
  VALUE(7,1)=0.17
  VALUE(8,1)=60454730
  VALUE(9,1)=206842740
  VALUE(10,1)=0.29
  VALUE(11,1)=66666666.6
  VALUE(12,1)=248211288
  VALUE(13,1)=0.268
  VALUE(14,1)=0.68

! Comparison

 ~PLLSSTL,QS
 *GET,VALUE(1,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,QA
 *GET,VALUE(2,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,Q
 *GET,VALUE(3,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,LAMBDA
 *GET,VALUE(4,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,SLEND
 *GET,VALUE(5,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,FAC
 *GET,VALUE(6,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,CRT_AX
 *GET,VALUE(7,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,MBZ
 *GET,VALUE(8,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,FBZ
 *GET,VALUE(9,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,CRT_BDZ
 *GET,VALUE(10,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,MBY
 *GET,VALUE(11,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,FBY
 *GET,VALUE(12,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,CRT_BDY
 *GET,VALUE(13,2),ELEM,1,ETAB,CFETAB_I
 ~PLLSSTL,CRT_TOT
 *GET,VALUE(14,2),ELEM,1,ETAB,CFETAB_I


! Warning and error tolerances
  TOLER( 1, 1)= 1E-03   $ TOLER( 1, 2)= 1E-03
  TOLER( 2, 1)= 1E-03   $ TOLER( 2, 2)= 1E-03
  TOLER( 3, 1)= 1E-03   $ TOLER( 3, 2)= 1E-03
  TOLER( 4, 1)= 1E-01   $ TOLER( 4, 2)= 1E-01	! Rounding error accepted
  TOLER( 5, 1)= 1E-01   $ TOLER( 5, 2)= 1E-01   ! Rounding error accepted
  TOLER( 6, 1)= 1E+05   $ TOLER( 6, 2)= 1E+05   ! Rounding error accepted
  TOLER( 7, 1)= 1E-02   $ TOLER( 7, 2)= 1E-02   ! Rounding error accepted
  TOLER( 8, 1)= 1E+02   $ TOLER( 8, 2)= 1E+02   ! Rounding error accepted
  TOLER( 9, 1)= 1E+02   $ TOLER( 9, 2)= 1E+02   ! Rounding error accepted
  TOLER(10, 1)= 1E-02   $ TOLER(10, 2)= 1E-02   ! Rounding error accepted
  TOLER(11, 1)= 1E+06   $ TOLER(11, 2)= 1E+06   ! Rounding error accepted
  TOLER(12, 1)= 1E+06   $ TOLER(12, 2)= 1E+06
  TOLER(13, 1)= 1E-03   $ TOLER(13, 2)= 1E-03
  TOLER(14, 1)= 2E-02   $ TOLER(14, 2)= 2E-02   ! Rounding error accepted

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC




