!*************************************************************************************!
! TITLE: CFVR8684 - AISC15: Chapter H Design of Members for Combined Forces and Torsion.
! SUBTITLE: Compression check according to AISC/ASD15 -  ASTM A992 W-shape.
!
! DESCRIPTION: A W-shape column is subjected to combined compression and flexure.
! DESCRIPTION:
! DESCRIPTION: The unbraced length is 30 ft and the ends are pinned.
! DESCRIPTION: Assume the connections are made with no holes. 
! DESCRIPTION:
! DESCRIPTION: The aim of the example is to obtain the axial and flexural strengths criteria
! DESCRIPTION: according to AISC15 (LRFD/ASD).
! DESCRIPTION: REFERENCE: Volume 1: Design Examples Version 15.1  
! DESCRIPTION: EXAMPLE H.4  W-SHAPE SUBJECT TO COMBINED AXIAL COMPRESSION AND FLEXURE 
!
! ELEMENT TYPE: BEAM188
! MODULES:
! UNITS: User
! KEYWORD1: Beam
! KEYWORD2: Cross Section
! KEYWORD3: Steel
! KEYWORD4: Code Checking/Design
! KEYWORD5: AISC15
!
!*************************************************************************************!
 FINISH
 ~CFCLEAR,,1
 NomFile='CFVR8684'
 /TITLE, %NomFile%, AISC15: Compression Check 
!--------------------------------------------------------------------------------------
! Model definition
!--------------------------------------------------------------------------------------
! CivilFEM Setup: Code & Units
  ~UNITS,,LENG,IN
  ~UNITS,,TIME,S
  ~UNITS,,FORC,KIPS! in, sec, Kips
  ~CODESEL,AISC15

! Parameters
  P   = -30		! Axial force kips
  M1  = 90*12  ! kip-in
  M2  = 12*12	! kip-in 
  Fyy = 50      ! ksi
  Fuu = 65      ! ksi

/PREP7
! Preprocessor
! --------------------------------------------------
! Materials
 ~CFMP,1,LIB,STEEL,ASTM,A36 
!  ASTM A992 
 ~CFMP,1,NAME,,,ASTM A992
 ~CFMP,1,USER
 ~CFMP,1,AISC15  ,Fy,,Fyy ,1,0,0
 ~CFMP,1,AISC15  ,Fu,,Fuu ,1,0,0
 
! Element Types
  ET,1,188  ! Type 1: 3D Beam
  
! Cross Section
  ~SSECLIB,1,1,51,239   !W 10x33  

! member property: effective length = 14 ft  Cb=1.14
  ~MEMBPRO,1,AISC15,ALL,14.00*12,1.00,1.00,1.00,1.14,14.00*12,  

! Beam & Shell Property
  ~BMSHPRO,1,BEAM,1,1,,,188,1,0,,Beam 1
  
! Nodes
  N,1
  N,2,,2
  
! Elements
  SECNUM,1
  REAL,1
  E,1,2  

  /SOLU
! Solution
! --------------------------------------------------
! Constrains
  D,1,ALL
  
! Apply Load
  F,2,FY,P
  F,ALL,MZ,M1
  F,ALL,MX,M2
! Solve
  SOLVE
  
  /POST1
! Postprocessor
! --------------------------------------------------
! Read results
  ~CFSET,,1                ! First load case
  
! Checking
 ~CHKSTL,BEND_AXL,Z,LRFD   
 ~CHKSTL,BEND_AXL,Z,ASD 
 
 !--------------------------------------------------------------------------------------
! 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) = 'PN'
  LABEL(2,1) = 'CRT_AXL'
  LABEL(3,1) = 'MN_YLD_Z'
  LABEL(4,1) = 'MN_LTB_Z'
  LABEL(5,1) = 'CRT_BDZ '
  LABEL(6,1) = 'MN_YLD_Y'
  LABEL(7,1) = 'CRT_BDY'  
  LABEL(8,1) = 'CRT_LRFD'
  LABEL(9,1) = 'CRT_ASD'

! Correct values
  VALUE(1,1)=281.1      ! Pn
  VALUE(2,1)=0.119      ! 30/253 CRT_AXL
  VALUE(3,1)=1940       !  nominal flexural strength due to yielding MN_YLD_Z
  VALUE(4,1)=1820       !  nominal flexural strength due to lateral-torsional buckling MN_LTB_Z
  VALUE(5,1)=0.66       ! 90*12/(1820*0.90) CRT_BDZ
  VALUE(6,1)=700        ! nominal flexural strength due to yielding MN_YLD_Y
  VALUE(7,1)=0.228      ! 12*12/(700*0.90) CRT_BDY
  VALUE(8,1)=0.944      ! LRFD CRITERION    H1-1a/H1-1b
  VALUE(9,1)=1.42       ! ASD CRITERION    H1-1a/H1-1b
  
! Comparison

~CFSET,1   ! LRFD 
 ~CFGET,VALUE(1,2),ELEMENT,1,RESULT,PN,I 
 ~CFGET,VALUE(2,2),ELEMENT,1,RESULT,CRT_AXL,I 
 ~CFGET,VALUE(3,2),ELEMENT,1,RESULT,MN_YLD_Z,I 
 ~CFGET,VALUE(4,2),ELEMENT,1,RESULT,MN_LTB_Z,I 
 ~CFGET,VALUE(5,2),ELEMENT,1,RESULT,CRT_BDZ,I 
 ~CFGET,VALUE(6,2),ELEMENT,1,RESULT,MN_YLD_Y,I
 ~CFGET,VALUE(7,2),ELEMENT,1,RESULT,CRT_BDY,I
 ~CFGET,VALUE(8,2),ELEMENT,1,RESULT,CRT_TOT,I 
 
~CFSET,2  ! ASD 
 ~CFGET,VALUE(9,2),ELEMENT,1,RESULT,CRT_TOT,I

! Warning and error tolerances
*DO,JJ,1,9
 TOLER(JJ,1)= 0.04*VALUE(JJ,1) $ TOLER(JJ,2)= 0.04*VALUE(JJ,1)
*ENDDO

  
!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC

 