!*****************************************************************************************************!
! TITLE: CFVR2604 - British Standard 5950 (2001) Tension and Biaxial Bending
! SUBTITLE: Tension and Biaxial Bending test according to British Standard 5950 (2001)
!
! DESCRIPTION: A cantilever steel beam subjected to a Fx load of 50 KN, My bending moment of 3 m*KN and a Mz bending
! DESCRIPTION: moment of 8 m*KN applied on one end of the beam.
! DESCRIPTION:
! DESCRIPTION: The beam has a length of 1m.
! DESCRIPTION:
! DESCRIPTION: The cross section is a HE 200 B.
! DESCRIPTION:
! DESCRIPTION: The beam is made of GR40 steel.
! DESCRIPTION:
! DESCRIPTION: The aim of the example is to obtain the cross section classification and tension and biaxial
! DESCRIPTION: bending criterion according to British Standard 5950 (2001).
!
! ELEMENT TYPE: BEAM4
! MODULES:
! UNITS: User
! KEYWORD1: Beam
! KEYWORD2: Cross Section
! KEYWORD3: Steel
! KEYWORD4: Code Checking/Design
! KEYWORD5: BS 5950-01
!
!*************************************************************************************!
   FINISH
  ~CFCLEAR,,1
  NomFile='CFVR2604'
  /TITLE, %NomFile%, British Standard 5950 (2001) Tension and Biaxial Bending

!--------------------------------------------------------------------------------------
! Model definition and solve
!--------------------------------------------------------------------------------------
! CivilFEM Setup: Code & Units
  ~UNITS,,LENG,M
  ~UNITS,,TIME,S
  ~UNITS,,FORC,MP
  ~CODESEL,BS595001,EC2,,,EC8-94
/PREP7
! Preprocessor
! --------------------------------------------------
! Materials
  ~CFMP,1,LIB,STEEL,BS5950,GR40      ! Grade 40
! Element type
  ET,1,BEAM4 ! Type 1: 3D Beam
! Cross Sections
  ~SSECLIB,3,1,6,6   !HE 200 B
! Member Properties
  L        = 1
  KLTXY    = 1.4
  KLTXZ    = 1.4
  KCXY     = 2.0
  KCXZ     = 2.0
  CteRob   = 0
  n        = 1
  m        = 1
  DL       = 0
  CFBUCKXY = 1
  CFBUCKXZ = 1
  CHCKAXIS = 1
  ~MEMBPRO,1,BS595085,ALL,L,KLTXY,KLTXZ,KCXY,KCXZ,CteRob,n,m,DL,CFBUCKXY,CFBUCKXZ,CHCKAXIS
! Beam properties
  ~BMSHPRO,1,BEAM,3,3,,,4,1,0,,Beam Properties

! Nodes
  N, 1
  N,25,1
  FILL, 1,25
! Elements
  E,1,2
  EGEN,24,1,1
  EPLOT
/SOLU
! Solution
! --------------------------------------------------
! Displacements
  D, 1,ALL
! Apply Load
  F,25,FX,50
  F,25,MY,3
  F,25,MZ,8
! Solve
  SOLVE
/POST1
! Postprocessor
! --------------------------------------------------
! Read results
  ~CFSET,,1,1       ! Load first load step
! Plot bending moment MZ
  ~PLLSFOR,M,Z,-1
! Checking Axial+Biaxial bending
  ~CHKSTL,BEND_TEN

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 33
  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) = 'CLASS   '
  LABEL( 2,1) = 'WEBCLASS'
  LABEL( 3,1) = 'CRT_TOT '
  LABEL( 4,1) = 'CRT_CMP '
  LABEL( 5,1) = 'CRT_VX  '
  LABEL( 6,1) = 'CRT_PVX '
  LABEL( 7,1) = 'CRT_VY  '
  LABEL( 8,1) = 'CRT_PVY '
  LABEL( 9,1) = 'CRT_AXL '
  LABEL(10,1) = 'CRT_MX  '
  LABEL(11,1) = 'CRT_MY  '
  LABEL(12,1) = 'F       '
  LABEL(13,1) = 'PT      '
  LABEL(14,1) = 'FVX     '
  LABEL(15,1) = 'MX      '
  LABEL(16,1) = 'ZX      '
  LABEL(17,1) = 'SX      '
  LABEL(18,1) = 'SVX     '
  LABEL(19,1) = 'AVX     '
  LABEL(20,1) = 'VWX     '
  LABEL(21,1) = 'MDFX    '
  LABEL(22,1) = 'PVX     '
  LABEL(23,1) = 'MCX     '
  LABEL(24,1) = 'FVY     '
  LABEL(25,1) = 'MY      '
  LABEL(26,1) = 'ZY      '
  LABEL(27,1) = 'SY      '
  LABEL(28,1) = 'SVY     '
  LABEL(29,1) = 'AVY     '
  LABEL(30,1) = 'VWY     '
  LABEL(31,1) = 'MDFY    '
  LABEL(32,1) = 'PVY     '
  LABEL(33,1) = 'MCY     '

! Correct values
  VALUE( 1,1)=1
  VALUE( 2,1)=1
  VALUE( 3,1)=1.1819
  VALUE( 4,1)=1.1819
  VALUE( 5,1)=0.
  VALUE( 6,1)=0.
  VALUE( 7,1)=0.
  VALUE( 8,1)=0.
  VALUE( 9,1)=0.2415
  VALUE(10,1)=0.4696
  VALUE(11,1)=0.47076
  VALUE(12,1)=50
  VALUE(13,1)=207.015
  VALUE(14,1)=0.
  VALUE(15,1)=-8.
  VALUE(16,1)=0.5696e-3
  VALUE(17,1)=0.6425E-3
  VALUE(18,1)=0.6200E-3
  VALUE(19,1)=0.0018
  VALUE(20,1)=0.18813E6
  VALUE(21,1)=0.065517
  VALUE(22,1)=28.6336
  VALUE(23,1)=17.0343
  VALUE(24,1)=0.
  VALUE(25,1)=3.
  VALUE(26,1)=0.2003e-3
  VALUE(27,1)=0.3058e-3
  VALUE(28,1)=0.15e-3
  VALUE(29,1)=0.006
  VALUE(30,1)=936000.
  VALUE(31,1)=0.02451
  VALUE(32,1)=95.4454
  VALUE(33,1)=6.3725

! Obtained values
 ~PLLSSTL,CLASS
 *GET,VALUE(1,2),ELEM,1,ETAB,CLASS_J
 ~PLLSSTL,WEBCLASS
 *GET,VALUE(2,2),ELEM,1,ETAB,CLASS_J
 ~PLLSSTL,CRT_TOT
  *GET,VALUE(3,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,CRT_CMP
  *GET,VALUE(4,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,CRT_VX
  *GET,VALUE(5,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,CRT_PVX
  *GET,VALUE(6,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,CRT_VY
 *GET,VALUE(7,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,CRT_PVY
 *GET,VALUE(8,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,CRT_AXL
 *GET,VALUE(9,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,CRT_MX
 *GET,VALUE(10,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,CRT_MY
 *GET,VALUE(11,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,F
 *GET,VALUE(12,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,PT
  *GET,VALUE(13,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,FVX
  *GET,VALUE(14,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,MX
  *GET,VALUE(15,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,ZX
  *GET,VALUE(16,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,SX
 *GET,VALUE(17,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,SVX
 *GET,VALUE(18,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,AVX
 *GET,VALUE(19,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,VWX
 *GET,VALUE(20,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,MDFX
 *GET,VALUE( 21,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,PVX
 *GET,VALUE( 22,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,MCX
  *GET,VALUE( 23,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,FVY
  *GET,VALUE( 24,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,MY
  *GET,VALUE( 25,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,ZY
  *GET,VALUE( 26,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,SY
 *GET,VALUE( 27,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,SVY
 *GET,VALUE( 28,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,AVY
 *GET,VALUE( 29,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,VWY
 *GET,VALUE(30,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,MDFY
 *GET,VALUE( 31,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,PVY
 *GET,VALUE( 32,2),ELEM,1,ETAB,CFETAB_J
 ~PLLSSTL,MCY
  *GET,VALUE( 33,2),ELEM,1,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-4 $ TOLER( 5,2)= 1E-4
  TOLER( 6,1)= 1E-4 $ TOLER( 6,2)= 1E-4
  TOLER( 7,1)= 1E-4 $ TOLER( 7,2)= 1E-4
  TOLER( 8,1)= 1E-4 $ TOLER( 8,2)= 1E-4
  TOLER( 9,1)= 1E-4 $ TOLER( 9,2)= 1E-4
  TOLER(10,1)= 1E-4 $ TOLER(10,2)= 1E-4
  TOLER(11,1)= 1E-4 $ TOLER(11,2)= 1E-4
  TOLER(12,1)= 1E-2 $ TOLER(12,2)= 1E-2
  TOLER(13,1)= 1E-2 $ TOLER(13,2)= 1E-2
  TOLER(14,1)= 1E-2 $ TOLER(14,2)= 1E-2
  TOLER(15,1)= 1E-2 $ TOLER(15,2)= 1E-2
  TOLER(16,1)= 1E-6 $ TOLER(16,2)= 1E-6
  TOLER(17,1)= 1E-6 $ TOLER(17,2)= 1E-6
  TOLER(18,1)= 1E-6 $ TOLER(18,2)= 1E-6
  TOLER(19,1)= 1E-4 $ TOLER(19,2)= 1E-4
  TOLER(20,1)= 1E+1 $ TOLER(20,2)= 1E+1
  TOLER(21,1)= 1E-4 $ TOLER(21,2)= 1E-4
  TOLER(22,1)= 1E-2 $ TOLER(22,2)= 1E-2
  TOLER(23,1)= 1E-4 $ TOLER(23,2)= 1E-4
  TOLER(24,1)= 1E+1 $ TOLER(24,2)= 1E+1
  TOLER(25,1)= 1E-4 $ TOLER(25,2)= 1E-4
  TOLER(26,1)= 1E-4 $ TOLER(26,2)= 1E-4
  TOLER(27,1)= 1E-4 $ TOLER(27,2)= 1E-4
  TOLER(28,1)= 1E-4 $ TOLER(28,2)= 1E-4
  TOLER(29,1)= 1E-4 $ TOLER(29,2)= 1E-4
  TOLER(30,1)= 1E+1 $ TOLER(30,2)= 1E+1
  TOLER(31,1)= 1E-4 $ TOLER(31,2)= 1E-4
  TOLER(32,1)= 1E-4 $ TOLER(32,2)= 1E-4
  TOLER(33,1)= 1E-4 $ TOLER(33,2)= 1E-4

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
