!*************************************************************************************!
! TITLE: CFVR3201 - Slope stability
! SUBTITLE: Slope stability analysis, without water pressure.
!
! DESCRIPTION: A plane model as shown in the figure is used to check the slope stability analysis.
! DESCRIPTION: Fellenius, Bishop, Janbu and Modified Janbu methods are used.
! DESCRIPTION:
! DESCRIPTION: The model is made off four layers of materials with the following dry specific
! DESCRIPTION: weight (from top to bottom):
! DESCRIPTION:
! DESCRIPTION: - 12600 N/m<sup>2</sup>
! DESCRIPTION:
! DESCRIPTION: - 14400 N/m<sup>2</sup>
! DESCRIPTION:
! DESCRIPTION: - 11200 N/m<sup>2</sup>
! DESCRIPTION:
! DESCRIPTION: - 9000 N/m<sup>2</sup>
! DESCRIPTION:
! DESCRIPTION: The terrain is considered dry. No water table is defined.
! DESCRIPTION:
! DESCRIPTION: The only action on the structure is its self weight.
!
! ELEMENT TYPE: PLANE82
! MODULES: GETC
! UNITS: SI
! KEYWORD1: Geotechnics
! KEYWORD2: Slope Stability
!*************************************************************************************!
  FINISH
  ~CFCLEAR,,1
  ~CFACTIV,GETC,Y
  NomFile='CFVR3201'
  /TITLE, %NomFile%, Slope stability

! 1. Initial data
! --------------------------------------------------
! CivilFEM SETUP

  ~UNITS,SI

/PREP7
! 2. Materials
! --------------------------------------------------
~CFMP,1,LIB,SOIL,,OH
~CFMP,2,LIB,SOIL,,CH
~CFMP,3,LIB,SOIL,,SC
~CFMP,4,LIB,SOIL,,PH
~CFMP,1,Soil,GAMD,,12600 ! OH
~CFMP,2,Soil,GAMD,,14400 ! CH
~CFMP,3,Soil,GAMD,,11200 ! SC
~CFMP,4,Soil,GAMD,,9000  ! PH

! 3. Elements
! --------------------------------------------------
ET,1,PLANE82

! 4. Model
! --------------------------------------------------
K, 1,-12,28
K, 2,  1,29
K, 3, 10,37
K, 4, 19,38
K, 5, 35,28
K, 6, 50,27
K, 7,  6,33
K, 8, 20,29
K, 9, 26,34
K,10, 18,24
K,11, 50,21
K,12,-12,19
K,13, 50,16
K,14,-12, 6
K,15, 50,10

A,7,8,9,4,3
A,2,7,8,9,5,6,11,10
A,1,2,10,11,13,12
A,15,13,12,14

AESIZE,ALL,3

*DO,I,1,4
  MAT,I
  AMESH,I
*ENDDO
/NUMBER,1
/PNUM,MAT,1
EPLOT
/IMAGE, SAVE, %NomFile%,BMP

! 5. Capture the model
! --------------------------------------------------
pp1=node(kx(1),ky(1),kz(1))
pp2=node(kx(6),ky(6),kz(6))
pp3=node(kx(5),ky(5),kz(5))
~SLPIN,PP1,PP2,PP3

! 6. Circles centres grid input
! --------------------------------------------------
K,16,21,41
K,17,35,32
K,18,42,43
k,19,28,52
~SLPCIRK,16,19,17,5,6

! 7. Tangents input
! --------------------------------------------------
K,20,34,27
K,21,34,11
K,22, 0,11
K,23,18,37
~SLPTANK,20,23,22,21,10

! 8. Data check
! --------------------------------------------------
! Data comparison number
  NComp    = 30*4
  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

! 9. Labels, Correct data, obtained data
! --------------------------------------------------
*DIM,AUXVECT,ARRAY,10
*DIM,AUXVEC2,ARRAY,10

/POST1
~SLPSOL,0 ! Fellenius
*DO,JJ,1,30
  LABEL(JJ) = 'FEL' %JJ%
  *DO,II,1,10
    ~CFGET,AUXVECT(II),SLOPE,,RES,F,,2,(JJ-1)*10 + II
  *ENDDO
  *VOPER,AUXVEC2,AUXVECT,MULT,AUXVECT
  *VFUN,AUXVEC2,SQRT,AUXVEC2
  *VFUN,AUXVEC2,ASORT,AUXVEC2
  VALUE(JJ,2) = AUXVEC2(1)
*ENDDO

VALUE(  1,1) =  2.731
VALUE(  2,1) =  2.075
VALUE(  3,1) =  2.704
VALUE(  4,1) =  2.504
VALUE(  5,1) =  2.486
VALUE(  6,1) =  3.172
VALUE(  7,1) =  2.308
VALUE(  8,1) =  1.854
VALUE(  9,1) =  1.675
VALUE( 10,1) =  1.669
VALUE( 11,1) =  1.859
VALUE( 12,1) =  2.785
VALUE( 13,1) =  2.104
VALUE( 14,1) =  1.738
VALUE( 15,1) =  1.560
VALUE( 16,1) =  1.590
VALUE( 17,1) =  1.964
VALUE( 18,1) =  2.702
VALUE( 19,1) =  1.968
VALUE( 20,1) =  1.664
VALUE( 21,1) =  1.500
VALUE( 22,1) =  1.628
VALUE( 23,1) =  2.082
VALUE( 24,1) =  3.119
VALUE( 25,1) =  1.870
VALUE( 26,1) =  1.613
VALUE( 27,1) =  1.486
VALUE( 28,1) =  1.716
VALUE( 29,1) =  2.279
VALUE( 30,1) =  4.802

~SLPSOL,1 ! Bishop
*DO,JJ,1,30
  LABEL(JJ+30) = 'BIS' %JJ+30%
  *DO,II,1,10
    ~CFGET,AUXVECT(II),SLOPE,,RES,F,,2,(JJ-1)*10 + II
  *ENDDO
  *VOPER,AUXVEC2,AUXVECT,MULT,AUXVECT
  *VFUN,AUXVEC2,SQRT,AUXVEC2
  *VFUN,AUXVEC2,ASORT,AUXVEC2
  VALUE(JJ+30,2) = AUXVEC2(1)
*ENDDO

VALUE( 31,1) =  2.903
VALUE( 32,1) =  2.277
VALUE( 33,1) =  2.766
VALUE( 34,1) =  2.605
VALUE( 35,1) =  2.570
VALUE( 36,1) =  3.362
VALUE( 37,1) =  2.428
VALUE( 38,1) =  1.967
VALUE( 39,1) =  1.787
VALUE( 40,1) =  1.787
VALUE( 41,1) =  2.058
VALUE( 42,1) =  3.194
VALUE( 43,1) =  2.182
VALUE( 44,1) =  1.812
VALUE( 45,1) =  1.637
VALUE( 46,1) =  1.681
VALUE( 47,1) =  2.160
VALUE( 48,1) =  3.203
VALUE( 49,1) =  2.022
VALUE( 50,1) =  1.717
VALUE( 51,1) =  1.557
VALUE( 52,1) =  1.724
VALUE( 53,1) =  2.313
VALUE( 54,1) =  3.494
VALUE( 55,1) =  1.910
VALUE( 56,1) =  1.653
VALUE( 57,1) =  1.534
VALUE( 58,1) =  1.821
VALUE( 59,1) =  2.485
VALUE( 60,1) =  5.074

~SLPSOL,2 ! Janbu
*DO,JJ,1,30
  LABEL(JJ+60) = 'JAN' %JJ+60%
  *DO,II,1,10
    ~CFGET,AUXVECT(II),SLOPE,,RES,F,,2,(JJ-1)*10 + II
  *ENDDO
  *VOPER,AUXVEC2,AUXVECT,MULT,AUXVECT
  *VFUN,AUXVEC2,SQRT,AUXVEC2
  *VFUN,AUXVEC2,ASORT,AUXVEC2
  VALUE(JJ+60,2) = AUXVEC2(1)
*ENDDO

VALUE( 61,1) =  2.629
VALUE( 62,1) =  1.986
VALUE( 63,1) =  2.662
VALUE( 64,1) =  2.553
VALUE( 65,1) =  2.485
VALUE( 66,1) =  3.079
VALUE( 67,1) =  2.262
VALUE( 68,1) =  1.775
VALUE( 69,1) =  1.577
VALUE( 70,1) =  1.577
VALUE( 71,1) =  1.835
VALUE( 72,1) =  2.641
VALUE( 73,1) =  2.060
VALUE( 74,1) =  1.672
VALUE( 75,1) =  1.484
VALUE( 76,1) =  1.536
VALUE( 77,1) =  1.913
VALUE( 78,1) =  2.575
VALUE( 79,1) =  1.925
VALUE( 80,1) =  1.607
VALUE( 81,1) =  1.438
VALUE( 82,1) =  1.572
VALUE( 83,1) =  1.990
VALUE( 84,1) =  2.944
VALUE( 85,1) =  1.831
VALUE( 86,1) =  1.563
VALUE( 87,1) =  1.432
VALUE( 88,1) =  1.651
VALUE( 89,1) =  2.191
VALUE( 90,1) =  4.504

~SLPSOL,3 ! Modified Janbu
*DO,JJ,1,30
  LABEL(JJ+90) = 'JMD' %JJ+90%
  *DO,II,1,10
    ~CFGET,AUXVECT(II),SLOPE,,RES,F,,2,(JJ-1)*10 + II
  *ENDDO
  *VOPER,AUXVEC2,AUXVECT,MULT,AUXVECT
  *VFUN,AUXVEC2,SQRT,AUXVEC2
  *VFUN,AUXVEC2,ASORT,AUXVEC2
  VALUE(JJ+90,2) = AUXVEC2(1)
*ENDDO

VALUE( 91,1) =  2.83152206
VALUE( 92,1) =  2.15323452
VALUE( 93,1) =  2.3585
VALUE( 94,1) =  2.74424848
VALUE( 95,1) =  2.67011681
VALUE( 96,1) =  3.3793
VALUE( 97,1) =  2.41044791
VALUE( 98,1) =  1.90157239
VALUE( 99,1) =  1.69783065
VALUE(100,1) =  1.71645682
VALUE(101,1) =  1.98914166
VALUE(102,1) =  2.87643124
VALUE(103,1) =  2.178675
VALUE(104,1) =  1.77587309
VALUE(105,1) =  1.58308579
VALUE(106,1) =  1.64740663
VALUE(107,1) =  2.06495719
VALUE(108,1) =  2.80620208
VALUE(109,1) =  2.0245434
VALUE(110,1) =  1.69667833
VALUE(111,1) =  1.52352205
VALUE(112,1) =  1.68250515
VALUE(113,1) =  2.1582348
VALUE(114,1) =  3.18031197
VALUE(115,1) =  1.91728114
VALUE(116,1) =  1.6424169
VALUE(117,1) =  1.50344162
VALUE(118,1) =  1.76286865
VALUE(119,1) =  2.35274589
VALUE(120,1) =  4.807777881

! Warning and error tolerances
  *DO,II,1,NComp
    TOLER(II,1) = VALUE(II,1)*0.05
    TOLER(II,2) = VALUE(II,1)*0.05
  *ENDDO
  ! Known exceptions
  I=  3 $ TOLER(  I,1) = VALUE(I,1)*0.15  $  TOLER(  I,2) = VALUE(I,1)*0.15
  I= 63 $ TOLER(  I,1) = VALUE(I,1)*0.15  $  TOLER(  I,2) = VALUE(I,1)*0.15
  I= 93 $ TOLER(  I,1) = VALUE(I,1)*0.15  $  TOLER(  I,2) = VALUE(I,1)*0.15

!--------------------------------------------------------------------------------------
! 10. Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
