!***********************************************************************
! TITLE: CFVR5311 - .tnCF data file of the 2D Tunnel Wizard
! SUBTITLE: Single tunnel using the wizard
!
! DESCRIPTION: This example is intended to verify that the data entered by
! DESCRIPTION: the user through the 2D Tunnel Wizard are written and read 
! DESCRIPTION: correctly in a .tnCF file. This is done by checking that
! DESCRIPTION: after generating the model (command ~TNLWND,GEN) are defined all
! DESCRIPTION: the variables necessary to generate it and that they contain
! DESCRIPTION: all user-defined values.
! DESCRIPtion:
! DESCRIPTION: In this example are checked the following data:
! DESCRIPTION:   
! DESCRIPTION:     a) Geometric parameters, anchors and truss
! DESCRIPTION:     b) Phases of the construction process
! DESCRIPTION:     c) Radial pressures
! DESCRIPTION:     d) Mesh controls
! DESCRIPTION:     e) Solution controls
! DESCRIPTION:
! DESCRIPTION: Only one type of tunnel will be analyzed
! DESCRIPTION:   
! DESCRIPTION:     Geometric type   : 2
! DESCRIPTION:     Excavation method: A (symmetric)
! DESCRIPTION:
! DESCRIPTION: Notes:
! DESCRIPTION:   - File CFVR5312.tnCF is needed to load tunnel parameters into 
! DESCRIPTION      the wizard
!
! ELEMENT TYPE: LINK1, BEAM3, PLANE182 
! MODULES: GETC
! UNITS: SI
! KEYWORD1: Materials
! KEYWORD2: Geotechnics
!
!***********************************************************************

FINISH
~CFCLEAR,,1
/FILNAME,CFVR5311
NOMFILE = 'CFVR5311'
/TITLE,%NOMFILE%, Tunnel 2D wizard check

~CFACTIV,GETC,Y
 
/PREP7

! materials, beam properties and terrain definition
!--------------------------------------------------
~CFMP, 1,LIB,SOIL,,SM
~CFMP, 2,LIB,ROCK,,Glandula  
~CFMP, 3,LIB,SOIL,,OL
~CFMP, 5,LIB,CONCRETE,ACI,fc_2500
~CFMP,12,LIB,STEEL,UNE,S 355
~CFMP,22,LIB,REINF,EHE,B 400 S

~SSECLIB,4,12,7,1 ! HE 100 M
~BMSHPRO,10,BEAM,4,4,,,3,1,0,,Beam 1 

~TERDEF,1,NEW,3,0,Y,0,0,50000,1,20
~TERDEF,1,LAYER,1,1,70.,,DB   
~TERDEF,1,LAYER,2,2,50.,,DB
~TERDEF,1,LAYER,3,3,30.,,DB

! load parameters of the tunnel wizard
!-------------------------------------
~TNLWND,CFVR5311,tnCF

! solve the model
!----------------

!/SOLU
!~TNLWND,SOL

!-----------------------------------------------------------------------
! DATA CHECK
!-----------------------------------------------------------------------

NCOMP    = 37
NCOMP_CH = 0

*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
!-----------------------------------------------------------------------

! Terrain parameters
LABEL( 1) = 'Terrain_Id'
LABEL( 2) = 'N_Tunnels'
LABEL( 3) = 'Dbottom'
LABEL( 4) = 'Dleft'
LABEL( 5) = 'DRight'
LABEL( 6) = 'qleft'
LABEL( 7) = 'qright'

! Tunnel parameters

!   Geometrical
LABEL( 8) = 'Type_Tu'
LABEL( 9) = 'MAT_Tu'
LABEL(10) = 'x0_Tu'
LABEL(11) = 'y0_Tu'
LABEL(12) = 'yc_crown_Tu'
LABEL(13) = 'yc_invert_Tu'
LABEL(14) = 'R1_Tu'
LABEL(15) = 'R2_Tu'
LABEL(16) = 'Alpha1_Tu'
LABEL(17) = 'Alpha2_Tu'
LABEL(18) = 't1_Tu'
LABEL(19) = 't3_Tu'

!   Truss and anchorage #4
LABEL(20) = 'B_S_Truss'
LABEL(21) = 'N_Anchs'
LABEL(22) = 'Anch_Mat'
LABEL(23) = 'Anch_Phi'
LABEL(24) = 'Anch_For'
LABEL(25) = 'Anch_Pos'
LABEL(26) = 'Anch_Dir'
LABEL(27) = 'Anch_Lng'

!   Excavation phases
LABEL(28) = 'Type_Symm'
LABEL(36) = 'N_Total_Phases' ! number of phases coressponding to the
                             ! excavation metod 

!   Radial pressures (user defined)
LABEL(29) = 'RadialPressTU'

! Mesh controls
LABEL(30) = 'eps_'

! Solution controls
LABEL(31) = 'EQSLV_TOLER_User' ! solver must be PCG
LABEL(32) = 'EQSLV_MULT_User'  !
LABEL(33) = 'NEQIT_User_'
LABEL(34) = 'CNVTOLUSER_F'
LABEL(35) = 'CNVTOLUSER_M'

! Additional variables
LABEL(37) = 'NTotalPhases' ! total number of excavation phases,
                           ! including the initial state (phase0)

! Postprocessing

! Correct data, obtained data
!-----------------------------------------------------------------------
VALUE( 1,1) = 1      $ VALUE( 1,2) = Terrain_Id_
VALUE( 2,1) = 1      $ VALUE( 2,2) = N_Tunnels_
VALUE( 3,1) = 18.    $ VALUE( 3,2) = Dbottom_
VALUE( 4,1) = 20.    $ VALUE( 4,2) = Dleft_
VALUE( 5,1) = 32.    $ VALUE( 5,2) = DRight_
VALUE( 6,1) = -5.    $ VALUE( 6,2) = qleft_
VALUE( 7,1) = 10.    $ VALUE( 7,2) = qright_
VALUE( 8,1) = 2      $ VALUE( 8,2) = Type_Tu_(1)
VALUE( 9,1) = 5      $ VALUE( 9,2) = MAT_Tu_(1)
VALUE(10,1) = 40.    $ VALUE(10,2) = x0_Tu_(1)
VALUE(11,1) = -30.   $ VALUE(11,2) = y0_Tu_(1)
VALUE(12,1) = 15.    $ VALUE(12,2) = yc_crown_Tu_(1)
VALUE(13,1) = 12.    $ VALUE(13,2) = yc_invert_Tu_(1)
VALUE(14,1) = 8.     $ VALUE(14,2) = R1_Tu_(1)
VALUE(15,1) = 12.    $ VALUE(15,2) = R2_Tu_(1)
VALUE(16,1) = 45.    $ VALUE(16,2) = Alpha1_Tu_(1)
VALUE(17,1) = 60.    $ VALUE(17,2) = Alpha2_Tu_(1)
VALUE(18,1) = 0.4    $ VALUE(18,2) = t1_Tu_(1)
VALUE(19,1) = 0.35   $ VALUE(19,2) = t3_Tu_(1)
VALUE(20,1) = 10     $ VALUE(20,2) = B_S_Truss_(1)
VALUE(21,1) = 4      $ VALUE(21,2) = N_Anchs_(1,1)
VALUE(22,1) = 22     $ VALUE(22,2) = Anch_Mat_(4,1)
VALUE(23,1) = 0.42   $ VALUE(23,2) = Anch_Phi_(4,1)
VALUE(24,1) = 41.    $ VALUE(24,2) = Anch_For_(4,1)
VALUE(25,1) = 150.   $ VALUE(25,2) = Anch_Pos_(4,1)
VALUE(26,1) = 14.    $ VALUE(26,2) = Anch_Dir_(4,1)
VALUE(27,1) = 4.2    $ VALUE(27,2) = Anch_Lng_(4,1)
VALUE(28,1) = 2      $ VALUE(28,2) = Type_Symm_(1,1)
VALUE(29,1) = 0.56   $ VALUE(29,2) = RadialPressTU_(3,1) ! phase 3
VALUE(30,1) = 1.7E-3 $ VALUE(30,2) = eps_
VALUE(31,1) = 0.23   $ VALUE(31,2) = EQSLV_TOLER_User_
VALUE(32,1) = 0.18   $ VALUE(32,2) = EQSLV_MULT_User_
VALUE(33,1) = 19     $ VALUE(33,2) = NEQIT_User_
VALUE(34,1) = 2.5E-3 $ VALUE(34,2) = CNVTOLUSER_(4,1)
VALUE(35,1) = 6.5E-3 $ VALUE(35,2) = CNVTOLUSER_(4,2)
VALUE(36,1) = 6      $ VALUE(36,2) = N_Total_Phases_
VALUE(37,1) = 7      $ VALUE(37,2) = NTotalPhases_

! Warning and error tolerances
!-----------------------------------------------------------------------
RTOL = 1.E-8
TOLER( 1,1) = RTOL*ABS(VALUE( 1,1)) $ TOLER( 1,2) = TOLER( 1,1)
TOLER( 2,1) = RTOL*ABS(VALUE( 2,1)) $ TOLER( 2,2) = TOLER( 2,1)
TOLER( 3,1) = RTOL*ABS(VALUE( 3,1)) $ TOLER( 3,2) = TOLER( 3,1)
TOLER( 4,1) = RTOL*ABS(VALUE( 4,1)) $ TOLER( 4,2) = TOLER( 4,1)
TOLER( 5,1) = RTOL*ABS(VALUE( 5,1)) $ TOLER( 5,2) = TOLER( 5,1)
TOLER( 6,1) = RTOL*ABS(VALUE( 6,1)) $ TOLER( 6,2) = TOLER( 6,1)
TOLER( 7,1) = RTOL*ABS(VALUE( 7,1)) $ TOLER( 7,2) = TOLER( 7,1)
TOLER( 8,1) = RTOL*ABS(VALUE( 8,1)) $ TOLER( 8,2) = TOLER( 8,1)
TOLER( 9,1) = RTOL*ABS(VALUE( 9,1)) $ TOLER( 9,2) = TOLER( 9,1)
TOLER(10,1) = RTOL*ABS(VALUE(10,1)) $ TOLER(10,2) = TOLER(10,1)
TOLER(11,1) = RTOL*ABS(VALUE(11,1)) $ TOLER(11,2) = TOLER(11,1)
TOLER(12,1) = RTOL*ABS(VALUE(12,1)) $ TOLER(12,2) = TOLER(12,1)
TOLER(13,1) = RTOL*ABS(VALUE(13,1)) $ TOLER(13,2) = TOLER(13,1)
TOLER(14,1) = RTOL*ABS(VALUE(14,1)) $ TOLER(14,2) = TOLER(14,1)
TOLER(15,1) = RTOL*ABS(VALUE(15,1)) $ TOLER(15,2) = TOLER(15,1)
TOLER(16,1) = RTOL*ABS(VALUE(16,1)) $ TOLER(16,2) = TOLER(16,1)
TOLER(17,1) = RTOL*ABS(VALUE(17,1)) $ TOLER(17,2) = TOLER(17,1)
TOLER(18,1) = RTOL*ABS(VALUE(18,1)) $ TOLER(18,2) = TOLER(18,1)
TOLER(19,1) = RTOL*ABS(VALUE(19,1)) $ TOLER(19,2) = TOLER(19,1)
TOLER(20,1) = RTOL*ABS(VALUE(20,1)) $ TOLER(20,2) = TOLER(20,1)
TOLER(21,1) = RTOL*ABS(VALUE(21,1)) $ TOLER(21,2) = TOLER(21,1)
TOLER(22,1) = RTOL*ABS(VALUE(22,1)) $ TOLER(22,2) = TOLER(22,1)
TOLER(23,1) = RTOL*ABS(VALUE(23,1)) $ TOLER(23,2) = TOLER(23,1)
TOLER(24,1) = RTOL*ABS(VALUE(24,1)) $ TOLER(24,2) = TOLER(24,1)
TOLER(25,1) = RTOL*ABS(VALUE(25,1)) $ TOLER(25,2) = TOLER(25,1)
TOLER(26,1) = RTOL*ABS(VALUE(26,1)) $ TOLER(26,2) = TOLER(26,1)
TOLER(27,1) = RTOL*ABS(VALUE(27,1)) $ TOLER(27,2) = TOLER(27,1)
TOLER(28,1) = RTOL*ABS(VALUE(28,1)) $ TOLER(28,2) = TOLER(28,1)
TOLER(29,1) = RTOL*ABS(VALUE(29,1)) $ TOLER(29,2) = TOLER(29,1)
TOLER(30,1) = RTOL*ABS(VALUE(30,1)) $ TOLER(30,2) = TOLER(30,1)
TOLER(31,1) = RTOL*ABS(VALUE(31,1)) $ TOLER(31,2) = TOLER(31,1)
TOLER(32,1) = RTOL*ABS(VALUE(32,1)) $ TOLER(32,2) = TOLER(32,1)
TOLER(33,1) = RTOL*ABS(VALUE(33,1)) $ TOLER(33,2) = TOLER(33,1)
TOLER(34,1) = RTOL*ABS(VALUE(34,1)) $ TOLER(34,2) = TOLER(34,1)
TOLER(35,1) = RTOL*ABS(VALUE(35,1)) $ TOLER(35,2) = TOLER(35,1)
TOLER(36,1) = RTOL*ABS(VALUE(36,1)) $ TOLER(36,2) = TOLER(36,1)
TOLER(37,1) = RTOL*ABS(VALUE(37,1)) $ TOLER(37,2) = TOLER(37,1)

!-----------------------------------------------------------------------
! Results comparison
!-----------------------------------------------------------------------

COMPARA.MAC