!*************************************************************************************!
! TITLE: CFVR3404 - Water table calculation and slope stability analysis connection
! SUBTITLE: Example to check the water table calculation and slope stability analysis connection.
!
! DESCRIPTION: An earth dam is modeled by a plane model. The aim of the example is
! DESCRIPTION: to obtain the saturation line and water pressures in the soil, to
! DESCRIPTION: then export these results to perform a slope stability analysis
! DESCRIPTION: using the Janbu method.
! DESCRIPTION:
! DESCRIPTION: The model is made off three materials as shown in the figure:
! DESCRIPTION:
! DESCRIPTION: - Material 1. Clay type with 15300 N/m<sup>2</sup> dry specific weight.
! DESCRIPTION:  Used for the dam's nucleus.
! DESCRIPTION:
! DESCRIPTION: - Material 2. Gravel with 10200 N/m<sup>2</sup> dry specific weight.
! DESCRIPTION:  Used for the dam's body.
! DESCRIPTION:
! DESCRIPTION: - Material 3. Silt type with 12600 N/m<sup>2</sup> dry specific weight.
! DESCRIPTION:  Used for the base terrain.
! DESCRIPTION:
!
! ELEMENT TYPE: PLANE42, MESH200
! MODULES: GETC
! UNITS: SI
! KEYWORD1: Geotechnics
! KEYWORD2: Seepage Analysis
!*************************************************************************************!
   FINISH
  ~CFCLEAR,,1
  ~CFACTIV,GETC,Y

  /FILNAME,wttoslp,0

  NomFile='CFVR3404'
  /TITLE, %NomFile%, WT and SS connection
! ---------------------------------------------------------------------------------
! Model definition
! ---------------------------------------------------------------------------------
! Activate Seepage Analysis
~SEEPAGE,2D

/PREP7
! Preprocessor
! --------------------------------------------------
! Materials: Soil
  ~CFMP,1,LIB,SOIL,,CL
  ~CFMP,2,LIB,SOIL,,GW
  ~CFMP,3,LIB,SOIL,,ML
  ~CFMP,1,Soil,GAMD,,15300 ! CL
  ~CFMP,2,Soil,GAMD,,10200 ! GW
  ~CFMP,3,Soil,GAMD,,12600 ! ML

  PI = ACOS (-1)
  L    = 800
  ! Heights
  PROFU = 50
  H    = 100 + PROFU
  HWUS = 160 + PROFU
  HWDS = 110 + PROFU
  HC   = 190 + PROFU
  ! Horizontal coordinate
  LUS   = 80
  LEUS  = 232
  LCUS  = 295
  LEPUS = LUS+(LCUS-LUS)/(HC-H)*(HWUS-H)
  LCEUS = 327.3
  LEPUS2= 264
  LEDS  = 312
  LCEDS = 345.5
  LEPDS = LEDS + (HWDS-H)*1/(TAN(67.2*PI/180))
  LDS   = 520
  LEPDS2= LDS - (LDS - LCEDS)/(HC-H)*(HWDS-H)

! Keypoints
  K,1,0,0
  K,2,L,0
  K,3,0,H
  K,4,LUS,H
  K,5,LEUS,H
  K,6,LEDS,H
  K,7,LDS,H
  K,8,L,H
  K,9,LEPUS,HWUS
  K,10,LEPDS2,HWDS
  K,11,LCUS,HC
  K,12,LCEUS,HC
  K,13,LCEDS,HC
  K,14,KX(6) + (kx(13)-kx(6))/(ky(13)-ky(6))*(HWDS-H) ,HWDS

! Lines
  L,1,2
  L,3,4
  L,4,9
  L,9,11
  L,11,12
  L,13,10
  L,10,7
  L,5,12
  L,4,5
  L,5,6
  L,12,13
  L,6,14
  L,14,13
  L,6,7
  L,7,8
  L,1,3
  L,2,8
  L,10,14

! Water Table
  X1     = kx(5) + (kx(12) - kx(5))/(ky(12)-ky(5))*(HWUS-H)  ! X initial point
  Y1     = HWUS                      ! Y initial point
  Z1     =   0                       ! Z initial point
  X2     = kx(6) + (kx(13)-kx(6))/(ky(13)-ky(6))*(HWDS+25-H) ! X end point
  Y2     =   HWDS+25                 ! Y end point
  Z2     =   0                       ! Z end point
  NPOINTS=  6  ! Number of points dividing line
  Line1 =  8  ! Line over first point rest
  Line2 =  13 ! Line over second point rest
  MAT    =  1  ! Material

  ~WATTAB,X1,Y1,Z1,X2,Y2,Z2,MAT,NPOINTS,Line1,Line2,FIXED,EXIT

  L,9,15
  *GET,ULT_LIN,LINE,0,NUM,MAX

! Finite element Model
  MAT   = 3
  ESIZE =  20
  L1    = 1    $  L2    = 16  $   L3    = 2    $   L4    = 9
  L5    = 10   $  L6    = 14  $   L7    = 15   $   L8   = 17

  ~SEEPMOD,ADD,MAT ,,ESIZE,L1,L2,L3,L4,L5,L6,L7,L8

  MAT   = 2
  ESIZE = 10
  L1    = 3    $  L2    = ULT_LIN  $   L3    = 8    $   L4    = 9

  ~SEEPMOD,ADD,MAT ,,ESIZE,L1,L2,L3,L4

  MAT   = 1
  ESIZE = 7
  L1    = 8    $  L2    = 10  $   L3    = 12   $   L4    = 13

  ~SEEPMOD,ADD,MAT ,WT,ESIZE,L1,L2,L3,L4

  MAT   = 2
  ESIZE = 10
  L1    = 12    $  L2    = 18  $   L3    = 14    $   L4    = 7

  ~SEEPMOD,ADD,MAT ,,ESIZE,L1,L2,L3,L4

 ! Solution
 ! --------------------------------------------------
 ! Displacements
  /SOLU
   HEAD1 = HWUS
   HEAD2 = HWDS
  ~DLHEAD,add,9, head1
  ~DLHEAD,add,3, head1
  ~DLHEAD,add,8, head1
  ~DLHEAD,add,2, head1
  ~DLHEAD,add,ULT_LIN,head1
  ~DLHEAD,add,12,head2
  ~DLHEAD,add,14,head2
  ~DLHEAD,add,7 ,head2
  ~DLHEAD,add,15,head2
  ~DLHEAD,add,18,head2
  ~DLSEEP,ADD,13

  ~WTSOLVE
/POST1
  SET,LAST
  ~WTSLP

! Deactivate Seepage Analysis
  FINISH
  ~SEEPAGE,NONE

! Water table file has been created.
! The process is now completed.
!---------------------------------------------------------

   FINISH
  ~CFCLEAR,,1

  /FILNAME,wttoslp,0

  NomFile='CFVR3404'
  /TITLE, %NomFile%, WT and SC connection
! ---------------------------------------------------------------------------------
! Model definition
! ---------------------------------------------------------------------------------

/PREP7
! Preprocessor
! --------------------------------------------------
! Materials: Soil
  ~CFMP,1,LIB,SOIL,,CL
  ~CFMP,2,LIB,SOIL,,GW
  ~CFMP,3,LIB,SOIL,,ML
  ~CFMP,1,SOIL,RUSI,,1
  ~CFMP,2,SOIL,RUSI,,1
  ~CFMP,3,SOIL,RUSI,,1
  ~CFMP,1,Soil,GAMD,,15300 ! CL
  ~CFMP,2,Soil,GAMD,,10200 ! GW
  ~CFMP,3,Soil,GAMD,,12600 ! ML

  PI = ACOS(-1)
  L    = 800
  ! heights
  PROFU = 50
  H    = 100 + PROFU
  HWUS = 160 + PROFU
  HWDS = 110 + PROFU
  HC   = 190 + PROFU
  ! Horizontal coordinates
  LUS   = 80
  LEUS  = 232
  LCUS  = 295
  LEPUS = LUS+(LCUS-LUS)/(HC-H)*(HWUS-H)
  LCEUS = 327.3
  LEPUS2= 264
  LEDS  = 312
  LCEDS = 345.5
  LEPDS = LEDS + (HWDS-H)*1/(TAN(67.2*PI/180))
  LDS   = 520
  LEPDS2= LDS - (LDS - LCEDS)/(HC-H)*(HWDS-H)

! Keypoints
  K
  K,2,L,0,0
  K,3,0,H,0
  K,4,LUS,H,0
  K,5,LEUS,H,0
  K,6,LEDS,H,0
  K,7,LDS,H,0
  K,8,L,H,0
  K,9,LEPUS,HWUS,0
  K,10,LEPDS2,HWDS
  K,11,LCUS,HC
  K,12,LCEUS,HC
  K,13,LCEDS,HC
  K,14,kx(6) + (kx(13)-kx(6))/(ky(13)-ky(6))*(HWDS-H) ,HWDS

! Lines
  L,1,2
  L,3,4
  L,4,9
  L,9,11
  L,11,12
  L,13,10
  L,10,7
  L,5,12
  L,4,5
  L,5,6
  L,12,13
  L,6,14
  L,14,13
  L,6,7
  L,7,8
  L,1,3
  L,2,8
  L,10,14

  ESIZE,50
  AL,1,17,15,14,10,9,2,16 ! a1 bottom
  AL,9,8,5,4,3            ! a2 upper stream
  AL,14,7,6,13,12         ! a3 down stream
  AL,11,8,10,12,13        ! a4 nucleus

  ET,1,200,6
  TYPE,1
  MAT,3
  AMESH,1
  MAT,2
  AMESH,2
  AMESH,3
  MAT,1
  AMESH,4

  /NUMBER,1
  /PNUM,MAT,1
  APLOT
  /IMAGE, SAVE, %NomFile%,BMP

  p1=NODE(KX(8),KY(8),KZ(8))
  p2=NODE(KX(3),KY(3),KZ(3))
  p3=NODE(KX(4),KY(4),KZ(4))

  ! SLOPE INPUT
  ~SLPIN,p1,p2,p3
  ~SLPOPT,,,,,,3
  ~SLPPOL, 200,220,200,150,100,75,45
  ~SLPPOL, 250,220,200,150,100,75,45
  ~SLPPOL, 300,220,200,150,100,75,45
  ~SLPPOL, 350,220,200,150,100,75,45
  ~SLPPOL, 400,220,200,150,100,75,45
  ~SLPPOL, 450,220,200,150,100,75,45
  ~SLPPOL, 500,220,200,150,100,75,45
  ~SLPPOL, 550,220,200,150,100,75,45
  ~SLPPOL, 600,220,200,150,100,75,45

  /POST1
  ~SLPSOL,2

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 2
  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)  = 'Safety F'
  LABEL(2,1)  = 'NValid  '

! Correct values
  VALUE( 1,1) = 2.6
  VALUE( 2,1) = 61

  ~cfget,VALUE(1,2),slope,,res,F,,2,9
  ~cfget,VALUE(2,2),slope,,surf,nvalid,

! Warning and error tolerances
  *DO,II,1,2
    TOLER(II, 1)= 1E-1
    TOLER(II, 2)= 1E-1
  *ENDDO

!--------------------------------------------------------------------------------------
! Results Comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
