!*************************************************************************************!
! TITLE: CFVR5212 - Circular solid model.
! SUBTITLE:
!
! DESCRIPTION: The model is a prestressed circular solid segment about 17.5 m length.
! DESCRIPTION:
! DESCRIPTION: The beam is made of C16/20 concrete and the tendons are made of Y1670C steel.
! DESCRIPTION:
! DESCRIPTION: The sections are rectangular.
! DESCRIPTION:
! DESCRIPTION: The aim of the example is to verify the tendons generation.
!
! ELEMENT TYPE: SOLID45
! MODULES: PRSC
! UNITS: SI
! KEYWORD1: Beam
! KEYWORD2: Tendon
! KEYWORD3: Cross Section
! KEYWORD4: Prestressed Concrete
!
!*************************************************************************************!
  FINISH
  ~CFCLEAR,,1
  ~CFACTIV,PRSC,Y
  NomFile='CFVR5212'
  /TITLE, %NomFile%, Circular solid model

! -------------------------------------------------------------------------------------
! Initial data
! -------------------------------------------------------------------------------------
/PREP7
! Materials
  ~CFMP,1,LIB,CONCRETE,EC2,C16/20
  ~CFMP,2,LIB,PREST,EHE,Y1670C

! Model definition
  *DIM,CSYSY,ARRAY,100
  XIni = 100
  L=10
  B=2
  h=6
  CSYSY(11) = 0
  CSYSY(12) = L
  CSYSY(13) = L/2
  CSYSY(14) = L/4
  CSYSY(15) = 3*L/4
  LOCAL,100,1,0,0,0,90,0,0
  CSYS,100
  K,1,XIni + 0,0,0
  K,2,XIni + 0,L,0
  K,3,XIni + b,L,0
  K,4,XIni + b,0,0
  K,5,XIni + 0,0,h
  K,6,XIni + 0,L,h
  K,7,XIni + b,L,h
  K,8,XIni + b,0,h
  CLOCAL,11,0,XIni + b/2,CSYSY(11),0,-90,90,0
  CSYS,100
  CLOCAL,12,0,XIni + b/2,CSYSY(12),0,-90,90,0
  CSYS,100
  CLOCAL,13,0,XIni + b/2,CSYSY(13),0,-90,90,0
  CSYS,100
  CLOCAL,14,0,XIni + b/2,CSYSY(14),0,-90,90,0
  CSYS,100
  CLOCAL,15,0,XIni + b/2,CSYSY(15),0,-90,90,0
  CSYS,100
  MAT,1
  V,1,2,3,4,5,6,7,8
  *DO,II,13,15
    CSYS,II
    WPAVE
    WPCSYS,-1,II
    WPROT,0,0,-90,0
    VSBW,ALL
  *ENDDO
  ET,1,SOLID45
  LESIZE,all,,,5
  VMESH,all
  CSYS,100
  NSEL,S,LOC,Y,0
  ESLN
  ~SLDSEC,11,1,11,Solid Section - CSYS11
  CSYS,100
  *DO,II,12,15
    NSEL,S,LOC,Y,-L,CSYSY(II)
    ESLN,S,1
    NSEL,S,LOC,Y,CSYSY(II)
    ESLN,R
    ~SLDSEC,II,1,II,Solid Section - CSYS%II%
  *ENDDO
  CSYS,11
  CLOCAL,500,0,50,50,50 ! Traslated axis.
  CSYS,500

  ~SBSMDEF,12
  ~SBSMDEF,15
  ~SBSMDEF,14
  ~SBSMDEF,11

  ~PCEPDEF,1,1,3,,0.5
  ~PCEPDEF,2,4,1.5
  ~PCPPDEF,1,1,0,,0.2
  ~PCPPDEF,2,4,0
  ~PCTNDEF,1,2,0.1,0.1,,,15
  ~PCTNMDF,1,P0MAX,1.336e+007
  ~PCTNMDF,1,P0,1.169e+007
  ~PCTNMDF,1,DSH,0.1
  ~PCTNMDF,1,METHOD,1
  ~PCTNMDF,1,EADD,1
  ~PCTNMDF,1,EADD,2
  ~PCTNMDF,1,PADD,1
  ~PCTNMDF,1,PADD,2

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp    = 16
  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)  = 'Y1'
  LABEL( 2)  = 'Y2'
  LABEL( 3)  = 'Y3'
  LABEL( 4)  = 'Y4'
  LABEL( 5)  = 'Z1'
  LABEL( 6)  = 'Z2'
  LABEL( 7)  = 'Z3'
  LABEL( 8)  = 'Z4'
  LABEL( 9)  = 'SXY1'
  LABEL(10)  = 'SXY2'
  LABEL(11)  = 'SXY3'
  LABEL(12)  = 'SXY4'
  LABEL(13)  = 'SXZ1'
  LABEL(14)  = 'SXZ2'
  LABEL(15)  = 'SXZ3'
  LABEL(16)  = 'SXZ4'

! Correct data, obtained data
!--------------------------------------------------------------------------------------
  VALUE( 1,1) = 3.0            $  ~CFGET,value( 1,2),PRSCONC,,TENDON,COORD,Y,1,1
  VALUE( 2,1) = 3.0 - .1875    $  ~CFGET,value( 2,2),PRSCONC,,TENDON,COORD,Y,1,2
  VALUE( 3,1) = 1.5 + .1875    $  ~CFGET,value( 3,2),PRSCONC,,TENDON,COORD,Y,1,3
  VALUE( 4,1) = 1.5            $  ~CFGET,value( 4,2),PRSCONC,,TENDON,COORD,Y,1,4
  VALUE( 5,1) = 0.0            $  ~CFGET,value( 5,2),PRSCONC,,TENDON,COORD,Z,1,1
  VALUE( 6,1) = 0.0            $  ~CFGET,value( 6,2),PRSCONC,,TENDON,COORD,Z,1,2
  VALUE( 7,1) = 0.0            $  ~CFGET,value( 7,2),PRSCONC,,TENDON,COORD,Z,1,3
  VALUE( 8,1) = 0.0            $  ~CFGET,value( 8,2),PRSCONC,,TENDON,COORD,Z,1,4
  VALUE( 9,1) = 0.0            $  ~CFGET,value( 9,2),PRSCONC,,TENDON,COORD,SXY,1,1
  VALUE(10,1) =-0.08509        $  ~CFGET,value(10,2),PRSCONC,,TENDON,COORD,SXY,1,2
  VALUE(11,1) =-0.08509        $  ~CFGET,value(11,2),PRSCONC,,TENDON,COORD,SXY,1,3
  VALUE(12,1) = 0.0            $  ~CFGET,value(12,2),PRSCONC,,TENDON,COORD,SXY,1,4
  VALUE(13,1) = 0.0            $  ~CFGET,value(13,2),PRSCONC,,TENDON,COORD,SXZ,1,1
  VALUE(14,1) = 0.0            $  ~CFGET,value(14,2),PRSCONC,,TENDON,COORD,SXZ,1,2
  VALUE(15,1) = 0.0            $  ~CFGET,value(15,2),PRSCONC,,TENDON,COORD,SXZ,1,3
  VALUE(16,1) = 0.0            $  ~CFGET,value(16,2),PRSCONC,,TENDON,COORD,SXZ,1,4

! Warning and error tolerances
  TOLER(  1,1) = 1E-03   $  TOLER(  1,2) = 1E-03
  TOLER(  2,1) = 1E-03   $  TOLER(  2,2) = 1E-03
  TOLER(  3,1) = 1E-03   $  TOLER(  3,2) = 1E-03  
  TOLER(  4,1) = 1E-03   $  TOLER(  4,2) = 1E-03
  TOLER(  5,1) = 1E-03   $  TOLER(  5,2) = 1E-03
  TOLER(  6,1) = 1E-03   $  TOLER(  6,2) = 1E-03
  TOLER(  7,1) = 1E-03   $  TOLER(  7,2) = 1E-03
  TOLER(  8,1) = 1E-03   $  TOLER(  8,2) = 1E-03
  TOLER(  9,1) = 1E-03   $  TOLER(  9,2) = 1E-03
  TOLER( 10,1) = 1E-03   $  TOLER( 10,2) = 1E-03
  TOLER( 11,1) = 1E-03   $  TOLER( 11,2) = 1E-03
  TOLER( 12,1) = 1E-03   $  TOLER( 12,2) = 1E-03
  TOLER( 13,1) = 1E-03   $  TOLER( 13,2) = 1E-03
  TOLER( 14,1) = 1E-03   $  TOLER( 14,2) = 1E-03
  TOLER( 15,1) = 1E-03   $  TOLER( 15,2) = 1E-03
  TOLER( 16,1) = 1E-03   $  TOLER( 16,2) = 1E-03
                                        
  ~PLTEND ! Check Tendon Editor Window

!--------------------------------------------------------------------------------------
! Result comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
