!*****************************************************************************************************!
! TITLE: CFVR5148 -   Bridge model with shell43
! SUBTITLE: A prestressed shell bridge model with load states.
!
! DESCRIPTION: The aim of the example is to verify the solution of the combination loads.
! DESCRIPTION: The example is a bridge with the follow geometry:
! DESCRIPTION:
! DESCRIPTION: Plan View:
! DESCRIPTION:
! DESCRIPTION: - Straight line: From MP 0 to MP 30.
! DESCRIPTION:
! DESCRIPTION: Elevation View
! DESCRIPTION:
! DESCRIPTION: - Straight line: From MP 0 to MP 30 (0% slope).
! DESCRIPTION:
! DESCRIPTION: The bridge is made of HA-40 concrete with B500 S steel for reinforcement and with
! DESCRIPTION: Y1860S3 steel for tendons.
! DESCRIPTION:
! DESCRIPTION: Load states:
! DESCRIPTION:
! DESCRIPTION: - LS1: Self Weight
! DESCRIPTION:
! DESCRIPTION: - LS2: Dead Load of 33200 kN/m
! DESCRIPTION:
! DESCRIPTION: - LS3: Final Prestressing load of 1000 kN
! DESCRIPTION:
! DESCRIPTION: - LS4: Vehicle Load(1)
! DESCRIPTION:
! DESCRIPTION: - LS5: Vehicle Load(2)
! DESCRIPTION:
! DESCRIPTION: - LS6: Surface load
! DESCRIPTION:
! DESCRIPTION:
! DESCRIPTION: Targets: Mz max, Fy max and Fy min
! DESCRIPTION:
! DESCRIPTION: Combinations:
! DESCRIPTION:
! DESCRIPTION: - Cmb1: Vehicles combination: LS4 + LS5
! DESCRIPTION:
! DESCRIPTION: - Cmb2: Traffic loads: Cmb1 + LS6
! DESCRIPTION:
! DESCRIPTION: - Cmb3: Cmb2 + LS1 + LS2 + LS3 = traffic loads (0.90/1.10) +
! DESCRIPTION: Prestress (0.90/1.10) + Self Weight (1.00/1.35) + Dead Load (1.00/1.35)
! DESCRIPTION:
!
! ELEMENT TYPE: SHELL43
! MODULES: NLBR
! UNITS: SI
! KEYWORD1: Bridge Loads
! KEYWORD2: Combinations
! KEYWORD3: Prestressed Concrete
! KEYWORD4: Shell
! KEYWORD5: Bridges
!
!*************************************************************************************!

   FINISH
  ~CFCLEAR,,1
  ~CFACTIV,NLBR,Y
  ~CFACTIV,PRSC,Y
  NomFile='CFVR5148'
  /TITLE, %NomFile%,Shell43

   /TITLE,Shell bridge
   /FILNAM,Shell bridge


! CivilFEM Setup
! --------------------------------------------------
  ~CODESEL,EC3-92,EHE,EHE,,EC8-94
  ~UNITS,SI
  ~CFCONFG,PC,PCA,0  ! Nodes Algorithm.
   /VUP,ALL,Z
! Setup
! --------------------------------------------------
/PREP7
! Element types
! --------------------------------------------------
  ET,1,SHELL43
! Materials
! --------------------------------------------------
  ~CFMP,1,LIB,CONCRETE,EHE,HA-40
  ~CFMP,2,LIB,REINF,EHE,B 500 S
  ~CFMP,3,LIB,PREST,EHE,Y1860S3
! Cross Sections
! --------------------------------------------------
  ~BRSBOX,1,1,1 ,2.5,6.00,0.25,0.2,0.5,2.5
  ~BRSMDF,1,NAME,,,Mid Span Section
  ~BRSMDF,1,BOX,KSYM,,-1,0,0,0
  A=0.75/SQRT(2.50**2+0.75**2)
  ~BRSMDF,1,BOX,WEB,SLOPE,-A
  ~BRSMDF,1,BOX,WEB,RATS,0.25,0,1
  ~BRSMDF,1,BOX,WEB,SLPS,0.1,0,1
  ~BRSMDF,1,BOX,WEB,RATB,0.12,0,1
  ~BRSMDF,1,BOX,WEB,SLPB,0.75,0,1
  ~BRSMDF,1,BOX,WEB,RATB,0.2,0,3
  ~BRSMDF,1,BOX,WEB,SLPB,0.49,0,3
  ~BRSMDF,1,BOX,FLANGE,THICK,0.15
  ~BRSMDF,1,BOX,WEB,RATS,1 ,1,1
  ~BRSMDF,1,BOX,WEB,SLPS,0.1,1,1
  ~BRSGEN,1,2,1,1,1
  ~BRSMDF,2,BOX,WEB,SLPB,0 ,1,4
  ~BRSMDF,2,BOX,CELL,THBOT,0.6
  ~BRSMDF,2,NAME,,,Pile Section
! Shear reinforcement
  ~BRSMDF,1,BOX,RMAT,,2
  ~BRSMDF,1,BOX,MC,,3e-002
  ~BRSMDF,2,BOX,RMAT,,2
  ~BRSMDF,2,BOX,MC,,3e-002
! Path
! --------------------------------------------------
  ~BRINIP,1,0,0,0,0,0
  ~BRADDPL, 0,30,
  ~BRADDEL, 0,30,
! Section location
! --------------------------------------------------
  ~BRDEF,  0,2    ! Geometric definition
  ~BRDEF, 10,1
  ~BRDEF, 20,2

! Generate the model
! --------------------------------------------------
  LOCAL,11
 ~BRGEN,sh,0,0,5,0,  ! Generates the shell bridge.
! Capture sections, generate support beam and tendons
! ---------------------------------------------------------------------
*DO,I,1,3
   CSYS,11+I
   CMSEL,S,CF_BR_SECS_ELEM_%I+11%
   CMSEL,S,CF_BR_SECS_NODE_%I+11%
   ~SLDSEC,I,1,11+I
*ENDDO
CSYS,12
ALLSEL,ALL
~SBSMDEF,1,3,1
! Prestressing tendons definition
! --------------------------------------------------
 ! Elevation view points
  *DO,II,1,5
    ~PCEPDEF,II    , 1,     -0.34*II,0
    ~PCEPDEF,II+ 10, 2,-1.54-0.11*II,0
    ~PCEPDEF,II+ 20, 3,     -0.34*II,0
  *ENDDO

  ! Plan view points
  *DO,II,1,5
    ~PCPPDEF,II    , 1, 2.90-0.10*(II-1),0
    ~PCPPDEF,II+  5, 1,-2.90+0.10*(II-1),0
    ~PCPPDEF,II+ 10, 2, 2.53-0.03*(II-1),0
    ~PCPPDEF,II+ 15, 2,-2.53+0.03*(II-1),0
    ~PCPPDEF,II+ 20, 3, 2.90-0.10*(II-1),0
    ~PCPPDEF,II+ 25, 3,-2.90+0.10*(II-1),0
  *ENDDO

  ! Tendons
  *DO,II,1,10
    ~PCTNDEF,II,3,5e-003,13e-002,1000000,,25000
  *ENDDO
  *DO,II,1,5  ! Tendons phase 1 elevation

    ~PCTNMDF,II,EADD,II
    ~PCTNMDF,II,EADD,10+II
    ~PCTNMDF,II,EADD,20+II
    ~PCTNMDF,II+5,EADD,II
    ~PCTNMDF,II+5,EADD,10+II
    ~PCTNMDF,II+5,EADD,20+II
	
	~PCTNMDF,II+5,EPAROUT,II
    ~PCTNMDF,II,EPARIN,10+II
 *ENDDO

  *DO,II,1,10   ! Tendons phase 1 plan
    ~PCTNMDF,II,PADD,II
    ~PCTNMDF,II,PADD,10+II
    ~PCTNMDF,II,PADD,20+II
    ~PCTNMDF,II,PPAROUT,II
    ~PCTNMDF,II,PPARIN,10+II
  *ENDDO

  CSYS,12
  ASEL,S,LOC,Y,-0.5,-2.1
  ESLA,S

! Define path
! --------------------------------------------------
 ~BRSKTCH,10

! Boundary conditions
! --------------------------------------------------
/SOLU
  CSYS,12
  NSEL,S,LOC,Y,-2.20
  TOLE=0
  NSEL,R,LOC,X,-TOLE,TOLE
  D,ALL,UX
  D,ALL,UZ
  D,ALL,UY

  CSYS,14
  NSEL,S,LOC,Y,-2.20
  NSEL,R,LOC,X,-TOLE,TOLE
  D,ALL,UZ
  D,ALL,UY

 ALLSEL,ALL
 EPLOT
 CSYS,11

! LOADS
! -----------------------------------------------------

! Self Weight
!---------------
 /TITLE,Self Weight
 ACEL,,,9.81
 SOLVE                         ! 1   load step 91(14)
 ACEL,,,,

! Dead Load
!--------------
 /TITLE,Dead Load
 ESEL,S,ENAME,,154
 SFE, all,1,PRES, ,33200, , ,
 ALLSEL,ALL
 SOLVE                        ! 2  load step 92(15)
 SFEDELE,ALL,ALL,ALL
 ALLSEL

! Prestressing
!------------------------
 /TITLE,Final Prestressing
 ~PCLOSS,1000
 ASEL,S,LOC,Z,-0.5,-2.1
 ESLA,S
 ~PCPL,0,
 ALLSEL,ALL
 SOLVE       !  3   load step 90
 ~PCDEL

! Vehicle Load(1)
!-----------------
/TITLE,Vehicle Load
~BLVLIB,1,IAP,VP,1
~BLFDF,1001,INCOMPAT    ! Family Definition
~BLVR,1001,,1,,,-1.5              ! Assigns vehicle to Family 1001

! Vehicle Load(2)
!-----------------
/TITLE,Vehicle Load(2)
~BLVLIB,2,IAP,VP,1
~BLFDF,1002,INCOMPAT    ! Family Definition
~BLVR,1002,,2,,,1.5               ! Assigns vehicle to Family 1002

! Surface Load
!-----------------
/TITLE,Surface Load
~BLFDF,1003,COMPAT         ! Family definition
~BLSST,1003,,                      ! assigns surface load to family 1003
  ~BLSA,3,-4.5,0,4.5
  ~BLSB,4000,BROUTE,BDECK,0,0,
~BLSEND

ALLSEL
~BLSOLVE

SFDELE,ALL,ALL

 /POST1
! combined start states
! ---------------------------
~CMBCLR,,,
~BLF2CMB  ! Turns families into combination
!-----------------------------------------------------------------------------------
! Targets: max & min displacements
  ~TRGDEF,1,CROSS,F,Y,MIN
  ~TRGDEF,2,CROSS,F,Y,MAX
  ~TRGDEF,3,CROSS,M,Z,MAX
!-----------------------------------------------------------------------------------
! COMBINATION WITH VEHICLES
!------------------------------------------------
/TITLE, vehicles combination
~CMBDEF,1004,COMPATIB,2
~STSTDEF,1004,1,CMB,1001
~STSTDEF,1004,2,CMB,1002
! COMBINATION: traffic loads
! --------------------------------------------------------
/TITLE, traffic loads
~CMBDEF,1005,COMPATIB,2
~STSTDEF,1005,1,CMB,1004
~STSTDEF,1005,2,CMB,1003

! Combination with Prestressing
 /TITLE,Total all loads
 ~CMBDEF,  1006, SELECTVC, 4, 0, 4
 ~STSTDEF, 1006, 1, CMB, 1005        ! traffic loads (0.90/1.10)
 ~STSTCFT, 1006, 1, 0.90, 1.10
 ~STSTDEF, 1006, 2, LSTEP, 3         ! Prestress (0.90/1.10)
 ~STSTCFT, 1006, 2, 0.90, 1.10
 ~STSTDEF, 1006, 3, LSTEP, 1         ! Self Weight (1.00/1.35)
 ~STSTCFT, 1006, 3, 1.00, 1.35
 ~STSTDEF, 1006, 4, LSTEP, 2         ! Dead Load (1.00/1.35)
 ~STSTCFT, 1006, 4, 1.00, 1.35
! Begins the combination rules calculation process
 ~COMBINE
! Points to original or combined results
 ~CMBDAT,2

 ~CFSET,,1006,3
 ~CFGET,MZMAX,SOLID,2,FORCE,MZ

 ~CFSET,,1006,1
 ~CFGET,FYMIN,SOLID,1,FORCE,FY

 ~CFSET,,1006,2
 ~CFGET,FYMAX,SOLID,3,FORCE,FY

 *GET,NELEM,ELEM,0,COUNT
 *GET,NNODES,NODE,0,COUNT
 ~CFGET,SHVRTX,ACTIVE,0,SHLVERT ,COUNT

 !--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp    =  6
  NComp_ch =  0

! Marix 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)     = 'NELE'
  LABEL( 2)     = 'NODE'
  LABEL( 3)     = 'SHVTX'
  LABEL( 4)     = 'Mz'
  LABEL( 5)     = 'Fy1'
  LABEL( 6)     = 'Fy2'

! Correct data, obtained data
!------------------------------------------------------------------------------------------------
  VALUE( 1,1) =  272        $  VALUE( 1,2) = NELEM
  VALUE( 2,1) =  220        $  VALUE( 2,2) = NNODES
  VALUE( 3,1) =  349        $  VALUE( 3,2) = SHVRTX
  VALUE( 4,1) =  3.4793E7   $  VALUE( 4,2) = MZMAX
  VALUE( 5,1) = -5.9620E6   $  VALUE( 5,2) = FYMIN
  VALUE( 6,1) =  5.9620E6   $  VALUE( 6,2) = FYMAX

! Warning and error tolerances
  TOLER( 1,1) = 1E-6    $  TOLER( 1,2) = 1E-6
  TOLER( 2,1) = 1E-6    $  TOLER( 2,2) = 1E-6
  TOLER( 3,1) = 1E-6    $  TOLER( 3,2) = 1E-6
  TOLER( 4,1) = 5E4     $  TOLER( 4,2) = 5E4
  TOLER( 5,1) = 5E4     $  TOLER( 5,2) = 5E4
  TOLER( 6,1) = 5E4     $  TOLER( 6,2) = 5E4

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
COMPARA.MAC


