!*************************************************************************************!
! TITLE: CFVR0970 - Seismic margin in reinforced shell VF check according to ACI318.
! SUBTITLE: Shell axial and bending seismic margin check.
!
! DESCRIPTION: The model is made up of a unique shell element of 1.0m x 1.0m. 
! DESCRIPTION: 0.25 m of thickness subjected to nonseismic and seismic loads. 
! DESCRIPTION:
! DESCRIPTION: Forces and moments results are imported from ASCII files to the RCV 
! DESCRIPTION: file with ~FMREAD command.
! DESCRIPTION: Nonseismic Fx load of -150 kN, a bending moment Mx of 50 kN*m and Fy load
! DESCRIPTION: of -1500 kN, a bending moment Mx of 0.0 kN*m applied to a single 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 ACI318 code.
! DESCRIPTION:
! DESCRIPTION: Inelastic energy absorption factors for X and Y direction are 1.2 and 1.3.
! DESCRIPTION:
! DESCRIPTION: CNS.FM and SEISMIC.FM files are needed to run this test case.
!
! ELEMENT TYPE: SHELL43
! MODULES:
! UNITS: User
! KEYWORD1: Shell
! KEYWORD2: Code Checking/Design
! KEYWORD3: ACI318
!*******************************************************************************


 FINISH
~cfclear,,1
 NomFile='CFVR0970'
/TITLE, %NomFile%, Seismic margin in reinforced shell VF check according to ACI318

! ---------------------------------------------------------------------------------
! Model definition and solve
! ---------------------------------------------------------------------------------

! Setup
 ~UNITS,,LENG,M
 ~UNITS,,FORC,KN
 ~CODESEL,,ACI
 ~CFCONFG,RESULT ,CFSHF ,1

  /PREP7
! Materials
  ~CFMP,1,LIB,CONCRETE,EC2,C40/50
  ~CFMP,2,LIB,REINF,EC2,S400
  
! Element types
  ET,1,SHELL43
  
! Shell Vertex
  THK=0.25       ! THICKNESS
  COVER=0.04     ! COVER
  WDTH     = 1	! wall width 
  L        = 1	! wall height
  SIZ      = 1	! elements size
  
 ~SHLRNF,1,THK,1,2,COVER,200.000E-05,200.000E-05,200.000E-05,200.000E-05,0,0.000,45.00  		! Bending Reinforcement
 ~SHLSHR,1,2,,0,,,,,100.000E-05,100.000E-05  				! Shear reinforcement
 ~SHLMDF,1,CP,DUC_BN_X,,1.200E+00	! inelastic energy absorption factors for X direction
 ~SHLMDF,1,CP,DUC_BN_Y,,1.300E+00	! inelastic energy absorption factors for Y direction

! Beam & Shell property
 ~BMSHPRO,1,SHELL,1,1,1,1,43,,,,Shell property

! Geometry
  K,1
  K,2,    ,,L
  K,3,WDTH,,L
  K,4,WDTH,,
  
  A,1,4,3,2
  
  ! Meshing
  TYPE,1
  REAL,1
  MAT,1
  
  AESIZE,ALL,SIZ, 
  MSHAPE,0,2D 
  MSHKEY,1 
  AMESH,ALL   

! Boundary conditions
  NSEL,S,LOC,Z,0	! Wall fixed at bottom
  D,ALL,ALL
  ALLSEL
  
 ~CFSAVE,%NomFile%

 FINISH
 /FILNAME,CNS  			! Nonseismic
 ~CFRESUM,%NomFile% 
  
! Solve for Nonseismic loads (static)
  FINISH
  /SOLU

  SOLVE    ! Blank load step
  
  FINISH
  /POST1
  ~CFSET,,1,
  ~FMREAD,CNS,FM  ! Import the forces and moments results from an ASCII file to the RCV file.
  ! Rows
  ! 1--> Element number	   2--> End (I,J,K,L)	3-->Axial FX   4-->Axial FY	  5-->In Plane Shear Axial TXY   6-->Bending MX  7-->Bending MY  8-->Torsion MXY   9-->Shear NX   10-->Shear NY 
  ! ~PRFOR,ALL,ALL,	! List

  FINISH
  /FILNAME,SPECTRAL		! Spectral
  ~CFRESUM,%NomFile%  

! Solve for Seismic loads (SPECTRAL)
  FINISH
  /SOLU

  SOLVE    ! Blank load step
  
  FINISH
  /POST1
  ~CFSET,,1,
  ~FMREAD,SEISMIC,FM  ! Import the forces and moments results from an ASCII file to the RCV file.
  ! Rows
  ! 1--> Element number	   2--> End (I,J,K,L)	3-->Axial FX   4-->Axial FY	  5-->In Plane Shear Axial TXY   6-->Bending MX  7-->Bending MY  8-->Torsion MXY   9-->Shear NX   10-->Shear NY 
  ! ~PRFOR,ALL,ALL,	! List
	
 FINISH
 /FILNAME,CNS		! Point to static results
 ~CFRESUM,%NomFile%
 
  FINISH
 /POST1
! ---------------------------------------------------------------------------------
! Checking with CivilFEM
! ---------------------------------------------------------------------------------
 ~CFSET,,1,1					! Load step of nonseismic results
 ~CFFILE2,4,SPECTRAL.RCV		! Specify different RCV file from which to read the load steps for HCLPF checking
 
! ~HCLPFCN, Lab1, Lab2, DIRKEY,VAL1,VAL2,VAL3,VAL4,VAL5,VAL6,VAL7,VAL8,VAL9,VAL10,VAL11,VAL12 
  ~HCLPFCN,SHELL,   VF,      0,   0,    ,    ,    ,    ,    ,    ,    ,    ,     ,    1,    1 
  
 ! Pintamos el diagram de interacción para X, con los valores NX y MX del CNS 
 ! ~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, VERTEX,   1,      , , -150.0,50, , -400,100,,,      X,    ,    ,    ,    ,    ,    ,   1,  1
  
 ! Pintamos el diagram de interacción para X, con los valores NX y MX del CNS 
 ! ~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, SHELL,   1,  I    , , ,, , ,,,,      X,    ,    ,    ,    ,    ,    ,   1,  1
  
 ! Pintamos el diagram de interacción para Y, con los valores NX y MX del CNS 
 ! ~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, VERTEX,   1,      , , -1500.0,0, , -4000,160,,,      Y,    ,    ,    ,    ,    ,    ,   1,  1
  
 ! Pintamos el diagram de interacción para X, con los valores NX y MX del CNS 
 ! ~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, SHELL,   1,  I    , , ,, , ,,,,      Y,    ,    ,    ,    ,    ,    ,   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) = 'FSE_X  '
  LABEL(2) = 'FSI_X  '
  LABEL(3) = 'FSE_Y  '
  LABEL(4) = 'FSI_Y  '

! Correct data, obtained data
!--------------------------------------------------------------------------------------
  
  VALUE(1,1) =  1.65
  VALUE(2,1) =  1.98
  VALUE(3,1) =  0.85
  VALUE(4,1) =  1.10
  
  ~CFSET,1
  ~CFGET,VALUE(1,2), ELEMENT, 1 ,RESULT ,  FSE_X, I, , , 1 
  ~CFGET,VALUE(2,2), ELEMENT, 1 ,RESULT ,  FSI_X, I, , , 1 
  ~CFGET,VALUE(3,2), ELEMENT, 1 ,RESULT ,  FSE_Y, I, , , 1 
  ~CFGET,VALUE(4,2), ELEMENT, 1 ,RESULT ,  FSI_Y, I, , , 1     


! Warning and error tolerances
!------------------------------------------------------------------------------

   TOLER(1,1)= 1E-2 $ TOLER(1,2)= 1E-2
   TOLER(2,1)= 1E-2 $ TOLER(2,2)= 1E-2
   TOLER(3,1)= 1E-2 $ TOLER(3,2)= 1E-2
   TOLER(4,1)= 1E-2 $ TOLER(4,2)= 1E-2
   
   
!--------------------------------------------------------------------------------------
! Results Comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC

  
