!*************************************************************************************!
! TITLE: CFVR8671 - AISC15: Chapter F Design of Members for Flexure .
! SUBTITLE: Bending check according to AISC15 - PIPE FLEXURAL MEMBER
!
! DESCRIPTION: A pipe beam is subjected to a bending moment.
! DESCRIPTION:
! DESCRIPTION: The beam is simply supported and  continuously braced.
! DESCRIPTION: The beam is ASTM A53 Grade B material.
! DESCRIPTION: The aim of the example is to obtain the Available Flexural Strength
! DESCRIPTION: according to AISC15 (LRFD/ASD).
! DESCRIPTION: REFERENCE: Volume 1: Design Examples Version 15.1  
! DESCRIPTION: EXAMPLE F.9B  PIPE FLEXURAL MEMBER     
!
! ELEMENT TYPE: BEAM188
! MODULES:
! UNITS: User
! KEYWORD1: Beam
! KEYWORD2: Cross Section
! KEYWORD3: Steel
! KEYWORD4: Code Checking/Design
! KEYWORD5: AISC15
!
!*************************************************************************************!
 FINISH
 ~CFCLEAR,,1
 NomFile='CFVR8671'
 /TITLE, %NomFile%, AISC15: Bending Check 
!--------------------------------------------------------------------------------------
! Model definition
!--------------------------------------------------------------------------------------
! CivilFEM Setup: Code & Units
  ~UNITS,,LENG,IN
  ~UNITS,,FORC,KIPS! in, sec, Kips
  ~CODESEL,AISC15

! Parameters
  M   = 61.4*12     ! Moment kip-in
  Fyy = 35        ! ksi
  Fuu = 60        ! ksi

/PREP7
! Preprocessor
! --------------------------------------------------
! Materials
 ~CFMP,1,LIB,STEEL,ASTM,A36 
!  ASTM A500 Grade C 
 ~CFMP,1,NAME,,,ASTM A53 Grade B 
 ~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,63,13   !PX 8  Pipe 8 x-Strong 
  
    
  ~SECMDF,1,MECHPROP,A        ,,11.9,2,0,0
  ~SECMDF,1,MECHPROP,IYY      ,,100 ,2,0,0
  ~SECMDF,1,MECHPROP,IZZ      ,,100 ,2,0,0
  ~SECMDF,1,MECHPROP,IY       ,,2.89,2,0,0
  ~SECMDF,1,MECHPROP,IZ       ,,2.89,2,0,0
  ~SECMDF,1,MECHPROP,WY       ,,23.1,2,0,0
  ~SECMDF,1,MECHPROP,WZ       ,,23.1,2,0,0
  ~SECMDF,1,MECHPROP,WPY      ,,31  ,2,0,0 
  ~SECMDF,1,MECHPROP,WPZ      ,,31  ,2,0,0 
  ~SECMDF,1,MECHPROP,IXX      ,,199 ,2,0,0
  ~SECMDF,1,UPDATE
  ~UPDATE,BMSHPRO 

  
! member property: 
  ~MEMBPRO,1,AISC15,ALL,16*12,1.00,1.00,1.00,1.00,0,  

! 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,ALL,MZ,M  
  
! Solve
  SOLVE
  
/POST1
! Postprocessor
! --------------------------------------------------
! Read results
  ~CFSET,,1                ! First load case
 
! Checking
  ~CHKSTL,BENDING,Z,LRFD  
  ~CHKSTL,BENDING,Z,ASD  
 
!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 8
  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) = 'MU'
  LABEL(2,1) = 'MP'
  LABEL(3,1) = 'MN_YLD'   
  LABEL(4,1) = 'CLS_BEND'
  LABEL(5,1) = 'CRT_LRFD'
  LABEL(6,1) = 'CRT_ASD'
  LABEL(7,1) = 'CRT_YLDL'
  LABEL(8,1) = 'CRT_YLDA'      

! Correct values
  VALUE(1,1)= 736.8              ! required flexural strength
  VALUE(2,1)= 1085          ! Plastic bending moment
  VALUE(3,1)= 1085             ! Nominal Flexural Strength for yielding limit state
  VALUE(4,1)= 1                ! compact
  VALUE(5,1)= 0.754   ! LRFD CRITERION   
  VALUE(6,1)= 1.13   ! ASD  CRITERION 
  VALUE(7,1)= 0.754    ! Yielding CRITERION LRFD
  VALUE(8,1)= 1.13  ! Yielding CRITERION ASD      

! Comparison

~CFSET,1   ! LRFD 
 ~CFGET,VALUE(1,2),ELEMENT,1,RESULT,MU,I 
 ~CFGET,VALUE(2,2),ELEMENT,1,RESULT,MP,I 
 ~CFGET,VALUE(3,2),ELEMENT,1,RESULT,MN_YLD,I  
 ~CFGET,VALUE(4,2),ELEMENT,1,RESULT,CLS_BEND,I
 ~CFGET,VALUE(5,2),ELEMENT,1,RESULT,CRT_TOT,I
 ~CFGET,VALUE(7,2),ELEMENT,1,RESULT,CRT_YLD,I   
 
~CFSET,2  ! ASD 
 ~CFGET,VALUE(6,2),ELEMENT,1,RESULT,CRT_TOT,I
 ~CFGET,VALUE(8,2),ELEMENT,1,RESULT,CRT_YLD,I  

! Warning and error tolerances
*DO,JJ,1,8
 TOLER(JJ,1)= 0.04*VALUE(JJ,1) $ TOLER(JJ,2)= 0.04*VALUE(JJ,1)
*ENDDO
  
!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC 