!*************************************************************************************!
! TITLE: CFVR4052 - Reinforced concrete check according to GB 50010 2010 Chinese code
! SUBTITLE: Shear checking with seismic action.
!
! DESCRIPTION: A concrete column  with rectangular shape section and
! DESCRIPTION: shear reinforcement is subjected to a vertical load and
! DESCRIPTION: horizontal load at free end.
! DESCRIPTION: 
! DESCRIPTION: Determine the total criterion according to GB 50010-2010.
!
! ELEMENT TYPE: BEAM3
! MODULES:
! UNITS: User
! KEYWORD1: Beam
! KEYWORD2: Cross Section
! KEYWORD3: Code Checking/Design
! KEYWORD4: Reinforced Concrete
! KEYWORD5: GB 50010
!
!*************************************************************************************!
FINISH
~CFCLEAR,,1

NomFile='CFVR4052'
/TITLE, %NomFile%, Shear checking according to GB50010 code (2010 version)

!-------------------------------------------------------------------------------
! initial data
!-------------------------------------------------------------------------------
~UNITS,,LENG,MM
~UNITS,,FORC,KN
~CODESEL,,GB50010N

/PREP7

! materials
~CFMP,1,LIB,CONCRETE,GB50010,C25
~CFMP,2,LIB,REINF,GB50010,HPB300

! element type
ET,1,BEAM3

! cross-section
~CSECDMS,1,REC,1,500.,500.

! beam properties
~BMSHPRO,1,BEAM,1,1,,,3,1,0
~MEMBPRO,1,GB50010N,ALL,2,2,4400.  

! reinforcement
~RNFDEF,1,SHEAR,2,0.000E+00,,,,,,100.0,10,4,4

! mesh
N,1,0.,0.
N,2,0.,4400.
E,1,2

! loads
D,1,,,,,,UX,UY,ROTZ
F,2,FX,-380.
F,2,FY,-892.5

! resolution & postprocessing
/SOLU
SOLVE
/POST1
~CFSET,,1,1
~CHKCON,SHT_HSL,SHEAR   

!-------------------------------------------------------------------------------
! data check
!-------------------------------------------------------------------------------

! Arrays
NComp    = 8
NComp_ch = 0
*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) = 'VRD1'
LABEL(2) = 'CRVRD1'
LABEL(3) = 'VRD2'
LABEL(4) = 'CRVRD2'
LABEL(5) = 'VS'
LABEL(6) = 'VRD3'
LABEL(7) = 'CRVRD3'
LABEL(8) = 'CRT_TOT'

! correct data
VALUE(1,1) = 684.25
VALUE(2,1) = 380./VALUE(1,1)
VALUE(3,1) = 158.320
VALUE(4,1) = 380./VALUE(3,1)
VALUE(5,1) = 487.485
VALUE(6,1) = VALUE(3,1) + VALUE(5,1)
VALUE(7,1) = 380./VALUE(6,1)
*IF,VALUE(2,1),GT,VALUE(7,1),THEN
  VALUE(8,1) = VALUE(2,1)
*ELSE
  VALUE(8,1) = VALUE(7,1)
*ENDIF

! CivilFEM data
~PLLSCON,VRD1
*GET,VALUE(1,2),ELEM,1,ETAB,CFETAB_I
~PLLSCON,CRVRD1
*GET,VALUE(2,2),ELEM,1,ETAB,CFETAB_I
~PLLSCON,VRD2
*GET,VALUE(3,2),ELEM,1,ETAB,CFETAB_I
~PLLSCON,CRVRD2
*GET,VALUE(4,2),ELEM,1,ETAB,CFETAB_I
~PLLSCON,VS
*GET,VALUE(5,2),ELEM,1,ETAB,CFETAB_I
~PLLSCON,VRD3
*GET,VALUE(6,2),ELEM,1,ETAB,CFETAB_I
~PLLSCON,CRVRD3
*GET,VALUE(7,2),ELEM,1,ETAB,CFETAB_I
~PLLSCON,CRT_TOT
*GET,VALUE(8,2),ELEM,1,ETAB,CFETAB_I

! results comparison
EREL = 5.E-3
*DO,I,1,NCOMP
  TOLER(I,1) = EREL*ABS(VALUE(I,1))
  TOLER(I,2) = TOLER(I,1)
*ENDDO

COMPARA.MAC
