!************************************************************************************************!
! TITLE: CFVR1270 - Seismic margin in reinforced beam according to Eurocode 2 (2008)
! SUBTITLE: Check a reinforced concrete beam subjected to Bending + Axial force 
!
! DESCRIPTION: A fixed beam which has a rectangular reinforced concrete section is subjected to
! DESCRIPTION: an axial compression force of 200 kN and a bending moment of 306 KN*m.
! DESCRIPTION:
! DESCRIPTION: The aim of this example is to obtain the scale factor for elastic (FSE) 
! DESCRIPTION: and permissible inelastic response (FSI) according to EC2-08 code.
! DESCRIPTION:
! DESCRIPTION: Inelastic energy absorption factor is 1.3.
! DESCRIPTION:
!
! ELEMENT TYPE: BEAM3
! MODULES:
! UNITS: User
! KEYWORD1: Beam
! KEYWORD2: Cross Section
! KEYWORD3: Code Checking/Design
! KEYWORD4: Reinforced Concrete
! KEYWORD5: Eurocode 2
!
!************************************************************************************************!
   FINISH
  ~CFCLEAR,,1
   NomFile='CFVR1270'
 /TITLE,%NomFile%, Seismic margin in reinforced beam according to Eurocode 2 (2008)

! -------------------------------------------------------------------------------------
! Initial data
! -------------------------------------------------------------------------------------
! CivilFEM SETUP
 ~UNITS,,LENG,M
 ~UNITS,,TIME,S
 ~UNITS,,FORC,KN
 ~CODESEL,EC3-92,EC2-08,,,EC8-94

! Preprocessor
  /PREP7
! Parameters
  M=306       ! 306 KN*m bending moment
  H=-200      ! 200 kN axial compression force
  M_NS=M/8
  H_NS=H/8
  M_S=M/2
  H_S=H/2
! Material Definition
 ~CFMP,1,LIB,CONCRETE,EHE,HA-20
 ~CFMP,2,LIB,REINF,EHE,B400S

! Element Type Definition
  ET,1,Beam3

! Cross-section definition
 ~CSECDMS,1,REC,1,0.5,0.3
! Reinforcement definition
 ~RNFDEF,1,1,2,2,,0.03,0.4423E-03       ! Top reinf.
 ~RNFDEF,1,2,2,4,,0.03,0.2193E-02       ! Bottom reinf.
! Code properties definition
 ~SECMDF,1,EC2PROP ,DUCT_BN ,,1.3,0,0,0 
! Beam & Shell property
 ~BMSHPRO,1,BEAM,1,1,,,3,1,,,Beam property

! Model Construction
  N,1
  N,5,5
  FILL,1,5
  E,1,2
  EGEN,4,1,1,1
  D,1,ALL
  
  ~CFSAVE,%NomFile%
  
  FINISH
  
  /FILNAME,NON_SEISMIC
 ~CFRESUM,%NomFile%

/SOLU
  
  F,5,FX,H_NS
  F,5,MZ,M_NS
  SOLVE
  
  FINISH
  
  /FILNAME,SEISMIC
 ~CFRESUM,%NomFile%

 /SOLU
  
  F,5,FX,H_S
  F,5,MZ,M_S
  SOLVE
  
  FINISH
/FILNAME,NON_SEISMIC
/POST1

! Postprocessor
  ~CFSET,,1,1
  ~CFFILE2,4,SEISMIC.RCV

! Bending + Axial checking according to EHE
  ~HCLPFCN,2DB,,,,,,,,,,,,,1,1
  
 ! ~IDHCLPF,Entity, NUM, KeyIJ, CSEC, NX_NS, MY_NS, MZ_NS,NX_S, MY_S, MZ_S, BETA , MLabel,Lab2,VAL1,VAL2,VAL3,VAL4,VAL5,VAL6,VAL7
  ~IDHCLPF, BEAM, 1, I,,,,,,,,,MZ,,,,,,,1,1
  
  ! ~IDHCLPF,Entity, NUM, KeyIJ, CSEC, NX_NS, MY_NS, MZ_NS,NX_S, MY_S, MZ_S, BETA , MLabel,Lab2,VAL1,VAL2,VAL3,VAL4,VAL5,VAL6,VAL7
  ~IDHCLPF, CROSSEC, 1, ,,H/8,,M/8,H/2,,M/2,,MZ,,,,,,,1,1
  
  ~PLHCLPF,BEAM,FSE
  ~CFGET,FSE, ELEMENT, 1 ,RESULT ,  FSE, I, , , 1 

  ~CFSAVE,%NomFile%

FINISH

/FILNAME,SEISMIC_SCALED
~CFRESUM,%NomFile%
/SOLU

  F,5,FX,H_S*FSE
  F,5,MZ,M_S*FSE
  SOLVE
  
  FINISH
/FILNAME,NON_SEISMIC
/POST1

! Postprocessor
  ~CFSET,,1,1
  ~CFFILE2,4,SEISMIC_SCALED.RCV

! Bending + Axial checking according to EC2
  ~HCLPFCN,2DB,,,,,,,,,,,,,1,1
!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 4
  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) = 'DUCT'
  LABEL(2,1) = 'FSE'
  LABEL(3,1) = 'FSE_OLD'
  LABEL(4,1) = 'FSI_OLD'

! Correct values
  VALUE(1,1)=1.3
  VALUE(2,1)=1.
  VALUE(3,1)=1.83
  VALUE(4,1)=1.83*1.3

! Comparison
! CivilFEM data
 ~CFGET,VALUE(1,2),SECTION,1,EC2PROP,DUCT_BN
 ~PLHCLPF,BEAM,FSE
 ~CFGET,VALUE(2,2), ELEMENT, 1 ,RESULT ,  FSE, I, , , 1 
 
 VALUE(3,2) = FSE
 VALUE(4,2) = FSE*VALUE(1,2)
 
! Warning and error tolerances
  TOLER( 1, 1)= 1E-02 $ TOLER( 1, 2)= 1E-02
  TOLER( 2, 1)= 5E-02 $ TOLER( 2, 2)= 5E-02
  TOLER( 3, 1)= 1E-02 $ TOLER( 3, 2)= 1E-02
  TOLER( 4, 1)= 1E-02 $ TOLER( 4, 2)= 1E-02
  
!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
