!*************************************************************************************!
! TITLE: CFVR0972 - Seismic margin in reinforced shell according to Eurocode 2 (2008)
! SUBTITLE: Shear seismic margin check.
!
! 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 initial shear reinforcement are 12 mm bars each 14 cm in both directions.
! DESCRIPTION:
! DESCRIPTION: The applied nonseismic pressure is 1 kg/cm<sup>2</sup> on one of the elements.
! DESCRIPTION: The applied seismic pressure is 3 kg/cm<sup>2</sup> on same element.
! 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 factors for X and Y direction are 1.2 and 1.3.
! DESCRIPTION:
!
! ELEMENT TYPE: SHELL43
! MODULES:
! UNITS: User
! KEYWORD1: Shell
! KEYWORD2: Shell Vertex
! KEYWORD3: Reinforced Concrete
! KEYWORD4: Eurocode 2
!*************************************************************************************!
   FINISH
  ~CFCLEAR,,1
   NomFile='CFVR0972'
  /TITLE, %NomFile%, Seismic margin in reinforced shell according to Eurocode 2 (2008)
! ---------------------------------------------------------------------------------
! Model definition and solve
! ---------------------------------------------------------------------------------

! Setup
 ~UNITS,,MONE,EURO
 ~UNITS,,LENG,CM
 ~UNITS,,TIME,S
 ~UNITS,,FORC,KP
 ~CODESEL,EC3-92,EC2-08,EC2-08,,EC8-94
 ~CFCONFG,RESULT,CFSHF,0

  /PREP7
! PArameters
 P_NS = 1
 P_S = 3
! Materials
  ~CFMP,5,LIB,CONCRETE,EC2,C40/50
  ~CFMP,2,LIB,REINF,EC2,S400
! Element types
  ET,2,SHELL43

! 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
 ~SHLMDF,1,CP,DUC_OP_X,,1.200E+00
 ~SHLMDF,1,CP,DUC_OP_Y,,1.300E+00
 
! Beam & Shell property
 ~BMSHPRO,10,SHELL,1,1,1,1,43,,,,Shell property

! 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

! Elements
  MAT,5
  REAL,10
  TYPE,2
  EN,100, 10, 20, 50, 40
  EN,200, 20, 30, 60, 50
  
! Boundary conditions
  D,10,ALL,0.0
  D,40,ALL,0.0
  D,50,UZ,0.0
 
  ~CFSAVE,%NomFile%
  FINISH

! Nonseismic loads
 /FILNAME,CNS
 ~CFRESUM,%NomFile%
 FINISH
 /SOLU
 
 SFE,100,2,PRES,,P_NS
 SOLVE
  
! Seismic loads
 FINISH
 /FILNAME,SPECTRAL
 ~CFRESUM,%NomFile%
 FINISH
 /SOLU
 
 SFE,100,2,PRES,,P_S 
 SOLVE
  
 FINISH
  
 /FILNAME,CNS 	! Point to the ns loads
  

 FINISH
 /POST1
! ---------------------------------------------------------------------------------
! Checking with CivilFEM
! ---------------------------------------------------------------------------------

 ~CFSET,,1
 ~CFFILE2,4,SPECTRAL.RCV !  Specify different RCV file from which to read the load steps for seismic margin check
 ~HCLPFCN,SHELL,SHEAR,,,,,,,,,,,,1,1
 ~CFGET,FSE, ELEMENT, 100 ,RESULT ,  FSE, I, , , 1 
 ~CFSAVE,%NomFile%
 
 FINISH
  
  /FILNAME,SPECTRALSCALED
  ~CFRESUM,%NomFile%
  FINISH
  /SOLU
! Apply Load
  SFE,100,2,PRES,,P_S*FSE
  
  ! Solve
  SOLVE
   FINISH
   
/FILNAME,CNS 
/POST1
! Postprocessor
  ~CFSET,,1,1       ! Read first load step
  ~CFFILE2,4,SPECTRALSCALED.RCV ! Indicamos el sismico
  ~HCLPFCN,SHELL,SHEAR,,,,,,,,,,,,1,1
  ~PLHCLPF,SHELL,FSE
 
 !--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 2
  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) = 'DUC_OP_X'
  LABEL(2,1) = 'FSE'

! Correct values
  VALUE(1,1)=min(1.2,1.3)
  VALUE(2,1)=1.

! Comparison
! CivilFEM data
 ~CFGET,VALUE(1,2),SHLVERT,1,CP,DUC_OP_X
 ~CFGET,VALUE(2,2), ELEMENT, 100 ,RESULT ,  FSE, I, , , 1 
 
! Warning and error tolerances
  TOLER( 1, 1)= 1E-02 $ TOLER( 1, 2)= 1E-02
  TOLER( 2, 1)= 5E-02 $ TOLER( 2, 2)= 5E-02
  
!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
