!*************************************************************************************!
! TITLE: CFVR0934 - Shell shear reinforcement check according to Eurocode 2 (2008)
! SUBTITLE: Shell shear reinforcement check according to Eurocode 2 (2008).
!
! DESCRIPTION: The model is made up of two square shell elements of 1.0m x 1.0m.
! DESCRIPTION: The nodes of one side are completely restrained and one of the nodes
! DESCRIPTION: between both element has its vertical movement restrained
! DESCRIPTION: (perpendicular to the shells).
! DESCRIPTION:
! DESCRIPTION: The shear reinforcement are 12 mm bars each 14 cm in both directions.
! DESCRIPTION:
! DESCRIPTION: The applied load is a pressure of 3 kg/cm<sup>2</sup> on one of the elements.
! DESCRIPTION: 
! DESCRIPTION: The checking results from the shell model are compared to the results from a
! DESCRIPTION: beam with the equivalent shear forces applied.
! DESCRIPTION:
! DESCRIPTION:
! DESCRIPTION: The reinforcement checking code is the Eurocode 2 (2008).
! DESCRIPTION:
!
! ELEMENT TYPE: SHELL43, BEAM44
! MODULES:
! UNITS: User
! KEYWORD1: Shell
! KEYWORD2: Shell Vertex
! KEYWORD3: Reinforced Concrete
! KEYWORD4: Eurocode 2
!*************************************************************************************!
   FINISH
  ~CFCLEAR,,1
   NomFile='CFVR0934'
  /TITLE, %NomFile%, Shell shear reinforcement check according to Eurocode 2 (2008)
! ---------------------------------------------------------------------------------
! Model definition and solve
! ---------------------------------------------------------------------------------

! Setup
 ~UNITS,,MONE,EURO
 ~UNITS,,LENG,CM
 ~UNITS,,TIME,S
 ~UNITS,,FORC,KP
 ~CODESEL,,EC2-08,
 ~CFCONFG,RESULT,CFSHF,1

  /PREP7
! Materials
  ~CFMP,5,LIB,CONCRETE,EC2,C40/50
  ~CFMP,2,LIB,REINF,EC2,S400
! Element types
  ET,2,SHELL43
  ET,12,BEAM44

! Shell Vertex
  t=25     ! Thickness
  r=4      ! Cover
 ~SHLRNF,1,t,5,2,r,0.0,0.0,0.0,0.0,0,0,45.0
 ~SHLSHR,1,2,,12,,,14,14
! Beam & Shell property
 ~BMSHPRO,10,SHELL,1,1,1,1,43,,,,Shell property

! Equivalent beam cross section
 ~CSECDMS,1,REC,5,t,1,0,0,0,0,0,0,2,2
 ~RNFDEF,1,SHEAR,2,0.0,0.0,((1.2/2)**2)*3.1416/14/14,0.0
 ~SECMDF,1,EC2PROP,D_Y ,,t-r 
 ~SECMDF,1,EC2PROP,D_Z ,,0.0
 ~SECMDF,1,EC2PROP,RHO1,,0.0 ! 1e-20
 ~BMSHPRO,11,BEAM,1,1,,,44,1,0,,Beam 11  
 ~SECMDF,1,MECHPROP,HMAT,,5,7  
 ~SECMDF,1,STRPROP,ASEC,,5  

! Nodes
  N,10,0,0
  N,20,100,0
  N,30,200,0
  N,40,0,100
  N,50,100,100
  N,60,200,100
  N,100,0,0,100
  N,200,100,0,100
  N,300,0,100,100

! Elements
  MAT,5
  REAL,10
  TYPE,2
  EN,100, 10, 20, 50, 40
  EN,200, 20, 30, 60, 50
  REAL,11
  TYPE,12
  EN,300,100,200,300
  
! Boundary conditions
  D,10,ALL,0.0
  D,40,ALL,0.0
  D,50,UZ,0.0
  D,100,ALL,0.0
! Solve
  /SOLU
  SFE,100,2,PRES,,3.0
  SOLVE

! Solve beam equivalent states
  SFEDELE,ALL,ALL,ALL
  F,200,FZ,-284.379
  SOLVE
  F,200,FZ,SQRT(29.921**2+11.523**2)
  SOLVE

  /POST1
! ---------------------------------------------------------------------------------
! Check with CivilFEM
! ---------------------------------------------------------------------------------
 ~CFSET,,1
 ~CHKCON,SHELL,SHEAR
 ~CFSET,,2
 ~CHKCON,SHT,SHEAR
 ~CFSET,,3
 ~CHKCON,SHT,SHEAR
!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 14
  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) = 'VRDC'
  LABEL( 2,1) = 'CRT_1'
  LABEL( 3,1) = 'VRDS'
  LABEL( 4,1) = 'CRT_2'
  LABEL( 5,1) = 'VRDMAX'
  LABEL( 6,1) = 'CRT_3'
  LABEL( 7,1) = 'CRT_TOT'
  LABEL( 8,1) = 'VRDC'
  LABEL( 9,1) = 'CRT_1'
  LABEL(10,1) = 'VRDS'
  LABEL(11,1) = 'CRT_2'
  LABEL(12,1) = 'VRDMAX'
  LABEL(13,1) = 'CRT_3'
  LABEL(14,1) = 'CRT_TOT'

! Comparison
 ~CFSET,1
 ~CFGET,VALUE(1,2),ELEMENT,100,RESULT,VRDC,I
 ~CFGET,VALUE(2,2),ELEMENT,100,RESULT,CRT_1,I
 ~CFGET,VALUE(3,2),ELEMENT,100,RESULT,VRDS,I
 ~CFGET,VALUE(4,2),ELEMENT,100,RESULT,CRT_2,I
 ~CFGET,VALUE(5,2),ELEMENT,100,RESULT,VRDMAX,I
 ~CFGET,VALUE(6,2),ELEMENT,100,RESULT,CRT_3,I
 ~CFGET,VALUE(7,2),ELEMENT,100,RESULT,CRT_TOT,I
 ~CFGET,VALUE(8,2),ELEMENT,200,RESULT,VRDC,I
 ~CFGET,VALUE(9,2),ELEMENT,200,RESULT,CRT_1,I
 ~CFGET,VALUE(10,2),ELEMENT,200,RESULT,VRDS,I
 ~CFGET,VALUE(11,2),ELEMENT,200,RESULT,CRT_2,I
 ~CFGET,VALUE(12,2),ELEMENT,200,RESULT,VRDMAX,I
 ~CFGET,VALUE(13,2),ELEMENT,200,RESULT,CRT_3,I
 ~CFGET,VALUE(14,2),ELEMENT,200,RESULT,CRT_TOT,I
 ~CFSET,2
 ~CFGET,VALUE(1,1),ELEMENT,300,RESULT,VRDC,J
 ~CFGET,VALUE(2,1),ELEMENT,300,RESULT,CRT_1,J
 ~CFGET,VALUE(3,1),ELEMENT,300,RESULT,VRDS,J
 ~CFGET,VALUE(4,1),ELEMENT,300,RESULT,CRT_2,J
 ~CFGET,VALUE(5,1),ELEMENT,300,RESULT,VRDMAX,J
 ~CFGET,VALUE(6,1),ELEMENT,300,RESULT,CRT_3,J
 ~CFGET,VALUE(7,1),ELEMENT,300,RESULT,CRT_TOT,J
 ~CFSET,3
 ~CFGET,VALUE(8,1),ELEMENT,300,RESULT,VRDC,J
 ~CFGET,VALUE(9,1),ELEMENT,300,RESULT,CRT_1,J
 ~CFGET,VALUE(10,1),ELEMENT,300,RESULT,VRDS,J
 ~CFGET,VALUE(11,1),ELEMENT,300,RESULT,CRT_2,J
 ~CFGET,VALUE(12,1),ELEMENT,300,RESULT,VRDMAX,J
 ~CFGET,VALUE(13,1),ELEMENT,300,RESULT,CRT_3,J
 ~CFGET,VALUE(14,1),ELEMENT,300,RESULT,CRT_TOT,J

! Warning and error tolerances
  *DO,II,1,NComp
    TOLER(II,1)= 1E-03 $ TOLER(II,2)= 1E-03
  *ENDDO

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
