!*************************************************************************************!
! TITLE: CFVR7329 - Steel checking according to ASME BPVC III Subsection NF
! SUBTITLE: Building checking
!
! DESCRIPTION: A concrete and steel building is subjected to different pressures on
! DESCRIPTION: floors and columns.
! DESCRIPTION: Ct reduction coefficient is taken as 0.85
! DESCRIPTION:
! DESCRIPTION: Determine the total criterion from 60 selected elements after all types
! DESCRIPTION: of checking according to ASME BPVC III Subsection NF
! DESCRIPTION:
!
! ELEMENT TYPE: BEAM188, SHELL63
! MODULES:
! UNITS: SI
! KEYWORD1: Beam
! KEYWORD2: Cross Section
! KEYWORD3: Code Checking/Design
! KEYWORD4: Steel
! KEYWORD5: ASME BPVC III NF
!
!*************************************************************************************!
   FINISH
   ~CFCLEAR,,1
   NomFile='CFVR7329'
   /TITLE, %NomFile%, All Checking ASME BPVC III subsection NF. Building

! -------------------------------------------------------------------------------------
! Initial data
! -------------------------------------------------------------------------------------
! CivilFEM SETUP
~CFACTIV,NUCL,Y
~CODESEL,ASME_NF,ACI,ACI,,CALTRANS
~UNITS,SI

/VUP,ALL,Z ! Vertical Z axis

/PREP7

! Materials
~CFMP,1,LIB,STEEL,ASTM,A572Gr50
~CFMP,2,LIB,CONCRETE,ACI,fc_4000
~CFMP,2,USER
~CFMP,2,DatGen  ,GAM     ,,24517
~CFMP,2,DatGen  ,Gxy     ,,1.1732e+010  
~CFMP,2,ACI_C   ,Ec      ,,2.8158e+010,7,0,0

! Element Types
ET,1,BEAM188,,,2
ET,2,63

! Cross section definition
~SSECLIB,1,1,51,18   ! W 40x331
~SSECLIB,2,1,53,19   ! S 10x25.4
~SSECLIB,3,1,111,8   ! I C 250x37
~SSECLIB,4,1,75,13   ! C    230x  19.9
~SSECLIB,5,1,82,11   ! P 127
~SSECLIB,6,1,77,18   ! L 203x102x15.9
~SSECLIB,7,1,59,3    ! MT  5x  4.50
~SSECLIB,8,1,80,13   ! ST 190x32
~SSECLIB,9,1,105,14  ! 2L 8x6x7/16
~SSECLIB,10,1,81,18  ! TS 406x406
~SSECLIB,11,1,112,16 ! 2 C 200x17.1
~SSECLIB,12,1,112,15 ! 2 C 200x20.5
~SSECLIB,12,1,106,18 ! 4L 8x4x5/8

! Shell Vertex
~SHLRNF,1,0.25,2,0,0.0,0.0,0.0,0.0,0.0,0,0.0,45.0
~SHLMDF,1,NAME,,,Shell Vertex 1

! Member properties
~MEMBPRO,1,ASME_NF,ALL,3.5,1.0,1.0,1.0,1.0,1.0,1.0,0,1,0
~MEMBPRO,1,NAME,Member Property 1
~MEMBPRO,2,ASME_NF,ALL,5.0,1.0,1.0,1.0,1.0,1.0,1.0,0,0,0
~MEMBPRO,2,NAME,Member Property 2

! Beam and Shell properties
~BMSHPRO, 1,BEAM, 1, 1,,,188,2,0,,Beam 1
~BMSHPRO, 2,BEAM, 2, 2,,,188,2,0,,Beam 2
~BMSHPRO, 3,BEAM, 3, 3,,,188,2,0,,Beam 3
~BMSHPRO, 4,BEAM, 4, 4,,,188,2,0,,Beam 4
~BMSHPRO, 5,BEAM, 5, 5,,,188,2,0,,Beam 5
~BMSHPRO, 6,BEAM, 6, 6,,,188,2,0,,Beam 6
~BMSHPRO, 7,BEAM, 7, 7,,,188,2,0,,Beam 7
~BMSHPRO, 8,BEAM, 8, 8,,,188,2,0,,Beam 8
~BMSHPRO, 9,BEAM, 9, 9,,,188,1,0,,Beam 9
~BMSHPRO,10,BEAM,10,10,,,188,1,0,,Beam 10
~BMSHPRO,11,BEAM,11,11,,,188,1,0,,Beam 11
~BMSHPRO,12,BEAM,12,12,,,188,1,0,,Beam 12
~BMSHPRO,13,SHELL,1,1,1,1,63,,,,Shell 13

! Nodes and elements

NFLOOR=9

H=0
A=1
B=2
C=3
D=4
KOR=5

*DO,I,1,NFLOOR
  K,A,0,0,H
  K,B,5,0,H
  K,C,5,5,H
  K,D,0,5,H
  K,KOR,2.5,2.5,H
  H=H+3.5
  A=A+10
  B=B+10
  C=C+10
  D=D+10
  KOR=KOR+10
*ENDDO

A=11
B=12
C=13
D=14

*DO,I,2,NFLOOR
  L,A,B
  L,B,C
  L,C,D
  L,D,A
  A=A+10
  B=B+10
  C=C+10
  D=D+10
*ENDDO

A=1
B=2
C=3
D=4


*DO,I,1,NFLOOR-1
  L,A,A+10
  L,B,B+10
  L,C,C+10
  L,D,D+10
  A=A+10
  B=B+10
  C=C+10
  D=D+10
*ENDDO

H=3.5

*DO,I,1,NFLOOR-1
  LSEL,S,LOC,Z,H
  AL,ALL
  H=H+3.5
*ENDDO

ALLSEL,ALL

LESIZE,ALL, , ,5, , , , ,1

TYPE,1
MAT,1
SECN,

KSEL,S,LOC,X,0
KSEL,R,LOC,Y,0
LSLK,,1

SECNUM,9
LMESH,ALL

KSEL,S,LOC,X,0
KSEL,R,LOC,Y,5
LSLK,,1

SECNUM,10
LMESH,ALL

KSEL,S,LOC,X,5
KSEL,R,LOC,Y,0
LSLK,,1

SECNUM,11
LMESH,ALL

KSEL,S,LOC,X,5
KSEL,R,LOC,Y,5
LSLK,,1

SECNUM,12
LMESH,ALL

H=3.5
KOR=15

*DO,I,1,NFLOOR-1
  LSEL,S,LOC,Z,H
  LATT,1,I,1,,KOR,,I
  LMESH,ALL
  H=H+3.5
  KOR=5+10
*ENDDO

ALLSEL,ALL

TYPE,2
MAT,2
REAL,13
SECN,

AMESH,ALL

/SHRINK,0
/ESHAPE,1.0
/VIEW,1,1,1,1
/REPLOT

/SOLU

NSEL,S,LOC,Z,0

D,ALL, , , , , ,ALL, , , , ,

ALLSEL,ALL

ESEL,S,TYPE,,2

SFE,ALL,1,PRES,,-4000,,,

ALLSEL,ALL

NSEL,S,LOC,X,0
NSEL,R,LOC,Y,0
ESLN,S,1

SFBEAM,ALL,1,PRES,1000,,,,,,

NSEL,S,LOC,X,0
NSEL,R,LOC,Y,5
ESLN,S,1

SFBEAM,ALL,1,PRES,1000,,,,,,

ALLSEL,ALL

/IMAGE,SAVE,%NomFile%,BMP

SOLVE

/POST1

~CFSET,0,1,LAST,
~CHKSTL,TENSION
~CHKSTL,SHEAR
~CHKSTL,COMPRESS
~CHKSTL,BENDING
~CHKSTL,COM_BEND, , ,1
~CHKSTL,TEN_BEND, , ,1

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 60
  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) = 'TENS_CRT_1'
  LABEL( 2,1) = 'TENS_CRT_2'
  LABEL( 3,1) = 'TENS_CRT_3'
  LABEL( 4,1) = 'TENS_CRT_4'
  LABEL( 5,1) = 'TENS_CRT_5'
  LABEL( 6,1) = 'TENS_CRT_6'
  LABEL( 7,1) = 'TENS_CRT_7'
  LABEL( 8,1) = 'TENS_CRT_8'
  LABEL( 9,1) = 'TENS_CRT_9'
  LABEL(10,1) = 'TENS_CRT_10'
  LABEL(11,1) = 'SH_CRT_1'
  LABEL(12,1) = 'SH_CRT_2'
  LABEL(13,1) = 'SH_CRT_3'
  LABEL(14,1) = 'SH_CRT_4'
  LABEL(15,1) = 'SH_CRT_5'
  LABEL(16,1) = 'SH_CRT_6'
  LABEL(17,1) = 'SH_CRT_7'
  LABEL(18,1) = 'SH_CRT_8'
  LABEL(19,1) = 'SH_CRT_9'
  LABEL(20,1) = 'SH_CRT_10'
  LABEL(21,1) = 'COMP_CRT_1'
  LABEL(22,1) = 'COMP_CRT_2'
  LABEL(23,1) = 'COMP_CRT_3'
  LABEL(24,1) = 'COMP_CRT_4'
  LABEL(25,1) = 'COMP_CRT_5'
  LABEL(26,1) = 'COMP_CRT_6'
  LABEL(27,1) = 'COMP_CRT_7'
  LABEL(28,1) = 'COMP_CRT_8'
  LABEL(29,1) = 'COMP_CRT_9'
  LABEL(30,1) = 'COMP_CRT_10'
  LABEL(31,1) = 'BEND_CRT_1'
  LABEL(32,1) = 'BEND_CRT_2'
  LABEL(33,1) = 'BEND_CRT_3'
  LABEL(34,1) = 'BEND_CRT_4'
  LABEL(35,1) = 'BEND_CRT_5'
  LABEL(36,1) = 'BEND_CRT_6'
  LABEL(37,1) = 'BEND_CRT_7'
  LABEL(38,1) = 'BEND_CRT_8'
  LABEL(39,1) = 'BEND_CRT_9'
  LABEL(40,1) = 'BEND_CRT_10'
  LABEL(41,1) = 'CB_CRT_1'
  LABEL(42,1) = 'CB_CRT_2'
  LABEL(43,1) = 'CB_CRT_3'
  LABEL(44,1) = 'CB_CRT_4'
  LABEL(45,1) = 'CB_CRT_5'
  LABEL(46,1) = 'CB_CRT_6'
  LABEL(47,1) = 'CB_CRT_7'
  LABEL(48,1) = 'CB_CRT_8'
  LABEL(49,1) = 'CB_CRT_9'
  LABEL(50,1) = 'CB_CRT_10'
  LABEL(51,1) = 'TB_CRT_1'
  LABEL(52,1) = 'TB_CRT_2'
  LABEL(53,1) = 'TB_CRT_3'
  LABEL(54,1) = 'TB_CRT_4'
  LABEL(55,1) = 'TB_CRT_5'
  LABEL(56,1) = 'TB_CRT_6'
  LABEL(57,1) = 'TB_CRT_7'
  LABEL(58,1) = 'TB_CRT_8'
  LABEL(59,1) = 'TB_CRT_9'
  LABEL(60,1) = 'TB_CRT_10'

! Correct values
  VALUE( 1,1)=0.0
  VALUE( 2,1)=0.0
  VALUE( 3,1)=0.319
  VALUE( 4,1)=0.860
  VALUE( 5,1)=0.895
  VALUE( 6,1)=1.225
  VALUE( 7,1)=0.0
  VALUE( 8,1)=0.0
  VALUE( 9,1)=1.709
  VALUE(10,1)=0.0
  VALUE(11,1)=0.319E-1
  VALUE(12,1)=0.142E-1
  VALUE(13,1)=0.102E-1
  VALUE(14,1)=0.243E-1
  VALUE(15,1)=0.702E-2
  VALUE(16,1)=0.590E-2
  VALUE(17,1)=0.125E-1
  VALUE(18,1)=0.511E-2
  VALUE(19,1)=0.875E-3
  VALUE(20,1)=0.240E-2
  VALUE(21,1)=0.109
  VALUE(22,1)=0.210
  VALUE(23,1)=0.0
  VALUE(24,1)=0.0
  VALUE(25,1)=0.0
  VALUE(26,1)=0.0	
  VALUE(27,1)=0.525
  VALUE(28,1)=0.916
  VALUE(29,1)=0.0
  VALUE(30,1)=0.9225
  VALUE(31,1)=0.108
  VALUE(32,1)=0.405E-1
  VALUE(33,1)=0.150E-2
  VALUE(34,1)=0.547E-1
  VALUE(35,1)=0.310E-1
  VALUE(36,1)=0.202E-1
  VALUE(37,1)=0.249E-2
  VALUE(38,1)=0.451E-2
  VALUE(39,1)=0.160E-1
  VALUE(40,1)=0.182E-2
  VALUE(41,1)=0.154
  VALUE(42,1)=0.133
  VALUE(43,1)=0.0
  VALUE(44,1)=0.0
  VALUE(45,1)=0.0
  VALUE(46,1)=0.0
  VALUE(47,1)=0.564E-2
  VALUE(48,1)=0.109E-1
  VALUE(49,1)=0.0
  VALUE(50,1)=0.129E-1
  VALUE(51,1)=0.0
  VALUE(52,1)=0.0
  VALUE(53,1)=0.181E-2
  VALUE(54,1)=0.646E-1
  VALUE(55,1)=0.0            !0.422E-1
  VALUE(56,1)=0.319E-1
  VALUE(57,1)=0.0
  VALUE(58,1)=0.0
  VALUE(59,1)=0.232e-1
  VALUE(60,1)=0.0

! Comparison
 *DO,ii,1,6
   ~CFSET,ii
   ~PLLSSTL,CRT_TOT
   *GET,VALUE(1+10*(ii-1),2),ELEM,41,ETAB,CFETAB_J
   *GET,VALUE(2+10*(ii-1),2),ELEM,121,ETAB,CFETAB_J
   *GET,VALUE(3+10*(ii-1),2),ELEM,171,ETAB,CFETAB_J
   *GET,VALUE(4+10*(ii-1),2),ELEM,191,ETAB,CFETAB_J
   *GET,VALUE(5+10*(ii-1),2),ELEM,211,ETAB,CFETAB_J
   *GET,VALUE(6+10*(ii-1),2),ELEM,231,ETAB,CFETAB_J
   *GET,VALUE(7+10*(ii-1),2),ELEM,251,ETAB,CFETAB_J
   *GET,VALUE(8+10*(ii-1),2),ELEM,271,ETAB,CFETAB_J
   *GET,VALUE(9+10*(ii-1),2),ELEM,291,ETAB,CFETAB_J
   *GET,VALUE(10*ii,2),ELEM,311,ETAB,CFETAB_J
 *ENDDO

! Warning and error tolerances
  *DO,ii,1,60
  TOLER(ii, 1)= 1E-03   $ TOLER(ii, 2)= 1E-03
  *ENDDO
  TOLER(19, 1)= 1E-04   $ TOLER(19, 2)= 1E-04

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
