!*************************************************************************************!
! TITLE: CFVR3302 - One Retaining Wall with anchors
! SUBTITLE: A retaining walls with anchors.
!
! DESCRIPTION: The example models a retaining walls and its excavation process.
! DESCRIPTION:
! DESCRIPTION: The terrain has no water. Its surface is at at level 0.0 m,
! DESCRIPTION: and it has three layers with the following properties:
! DESCRIPTION:
! DESCRIPTION: - Layer 1. Thickness 20 m. Soil type SC with a dry specific weight of
! DESCRIPTION:  11200 N/m<sup>2</sup>. Rankine pressure coefficients are used for this layer.
! DESCRIPTION:
! DESCRIPTION: - Layer 2. Thickness 15 m. Soil type GW with a dry specific weight of
! DESCRIPTION:  10200 N/m<sup>2</sup>. Coulomb pressure coefficients are used for this layer.
! DESCRIPTION:
! DESCRIPTION: - Layer 3. Thickness 40 m. Soil type ML with a dry specific weight of
! DESCRIPTION:  12600 N/m<sup>2</sup>. Rankine pressure coefficients are used for this layer.
! DESCRIPTION:
! DESCRIPTION: The wall has 50 m depth and is defined with a squared concrete section
! DESCRIPTION: (1.0 m x 1.0 m) . It has its top 0.5 m above the surface of the terrain.
! DESCRIPTION:
! DESCRIPTION: The construction process is defined as follows:
! DESCRIPTION:
! DESCRIPTION: - Step 1. Terrain is excavated to level 0 m.
! DESCRIPTION:
! DESCRIPTION: - Step 2. Terrain is excavated to level -1 m.
! DESCRIPTION:
! DESCRIPTION: - Step 3. Terrain is excavated to level -2 m. An anchorage
! DESCRIPTION: is placed  at level -1 (HE 100 A equivalent section, 15 meters
! DESCRIPTION: length and 170º from the horizontal).
! DESCRIPTION:
! DESCRIPTION: - Step 4. Terrain is excavated to level -3 m.
! DESCRIPTION:
! DESCRIPTION: - Step 5. Terrain is excavated to level -4 m. An anchorage
! DESCRIPTION: is placed  at level -3 (HE 100 A equivalent section, 15 meters
! DESCRIPTION: length and 180º from the horizontal) and the anchorage at level -1 is removed.
! DESCRIPTION:
! DESCRIPTION: - Step 6. Terrain is excavated to level -5 m.
! DESCRIPTION:
! DESCRIPTION: - Step 7. Terrain is excavated to level -6 m. An anchorage
! DESCRIPTION: is placed  at level -5 (HE 100 A equivalent section, 15 meters
! DESCRIPTION: length and 170º from the horizontal).
! DESCRIPTION:
! DESCRIPTION: - Step 8. Terrain is excavated to level -7 m.
! DESCRIPTION:
! DESCRIPTION: - Step 9. Terrain is excavated to level -8 m. An anchorage
! DESCRIPTION: is placed  at level -9 (HE 100 A equivalent section, 15 meters
! DESCRIPTION: length and 170º from the horizontal).
! DESCRIPTION:
! DESCRIPTION: - Step 10. Terrain is excavated to level -9 m.
! DESCRIPTION:
!
! ELEMENT TYPE: LINK1, BEAM3, BEAM54
! MODULES: GETC
! UNITS: SI
! KEYWORD1: Geotechnics
! KEYWORD2: Retaining Walls
! KEYWORD3: Terrain
!*************************************************************************************!
  FINISH
  ~CFCLEAR,,1
  ~CFACTIV,GETC,Y
  NomFile='CFVR3302'
  /TITLE, %NomFile%, One wall with anchors

! -------------------------------------------------------------------------------------
! Initial data
! -------------------------------------------------------------------------------------
! CivilFEM SETUP
  ~UNITS,SI
  ~CODESEL,EC3-92,EC2-91,EC2-91,,EC8-04 

/PREP7

! 1. ELEMENT TYPES
! --------------------------------------------------
ET,1,LINK10
ET,10,BEAM44

! 2. MATERIALS
! --------------------------------------------------
! Steel
~CFMP,1,LIB,STEEL,UNE,S 235
~CFMP,21,LIB,STEEL,UNE,S 235
! Reinforced concrete
~CFMP,12,LIB,CONCRETE,EC2,C16/20
~CFMP,23,LIB,REINF,EC2,S400
! Soils and rocks
~CFMP,101,LIB,SOIL,,SC
~CFMP,102,LIB,SOIL,,GW
~CFMP,103,LIB,SOIL,,ML
~CFMP,101,Soil,GAMD,,11200 ! SC
~CFMP,102,Soil,GAMD,,10200 ! GW
~CFMP,103,Soil,GAMD,,12600 ! ML

! 3. CROSS SECTIONS
! --------------------------------------------------
~SSECLIB,1,1,5,1   ! HE 100 A
~CSECDMS,2,REC,12,1,1,0,0,0,0,0,0,2,23
~SECMDF,2,NAME,,,Section 1

! 4. BEAM & SHELL PROPERTIES
! --------------------------------------------------
! Anchor
~BMSHPRO,20,BEAM,1,1,,,10,1,0,,Anchor

! Wall
~BMSHPRO,21,BEAM,2,2,,,44,1,0,,Wall section

! 5. TERRAIN
! --------------------------------------------------
  ~TERDEF, 1,NEW, 3, 0, Y, 0
  ~TERDEF, 1,LAYER, 1,101, 20, 0,  DB
  ~TERDEF, 1,LAYER, 2,101, 15, 0,CLMB
  ~TERDEF, 1,LAYER, 3,101, 40, 0,  DB

! 6. WALL
! --------------------------------------------------
  ~WALLINI, 0, 10, 1, , 1, 1, 0.5, 20

  ~WALLGEN, 1, 1, 50, 12, 10, 21

  *DO,I,1,10
    ~WALLSTP, I, 1, -I+1
  *ENDDO

  ~WALLANC, 3, 1, -1,  0, 170, 15.0, 1, 1, 20
  ~WALLANC, 5, 1, -1, -1
  ~WALLANC, 5, 1, -3,  0, 180, 15.0, 1, 1, 20
  ~WALLANC, 7, 1, -5,  0, 170, 15.0, 1, 1, 20
  ~WALLANC, 9, 1, -9,  0, 170, 15.0, 1, 1, 20

  ~WALLMOD, 0.5

  /PBC,ALL, ,1
  /SHRINK,0.1

! 7. SOLUTION
! --------------------------------------------------
/SOLU
  NEQIT,150
  D,2,ALL,ALL
  ~WALLSOL, ALL

! 8. RESULTS
! --------------------------------------------------
/POST1

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp    = 28
  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)  = 'N_Node'
  LABEL( 2)  = 'N_Elem'
  LABEL( 3)  = 'UX_1'
  LABEL( 4)  = 'UY_1'
  LABEL( 5)  = 'UX_2'
  LABEL( 6)  = 'UY_2'
  LABEL( 7)  = 'UX_4'
  LABEL( 8)  = 'UY_4'
  LABEL( 9)  = 'UX_7'
  LABEL(10)  = 'UY_7'
  LABEL(11)  = 'UX_9'
  LABEL(12)  = 'UY_9'
  LABEL(13)  = 'UX_20'
  LABEL(14)  = 'UY_20'
  LABEL(15)  = 'N_Node'
  LABEL(16)  = 'N_Elem'
  LABEL(17)  = 'UX_1'
  LABEL(18)  = 'UY_1'
  LABEL(19)  = 'UX_2'
  LABEL(20)  = 'UY_2'
  LABEL(21)  = 'UX_4'
  LABEL(22)  = 'UY_4'
  LABEL(23)  = 'UX_7'
  LABEL(24)  = 'UY_7'
  LABEL(25)  = 'UX_9'
  LABEL(26)  = 'UY_9'
  LABEL(27)  = 'UX_20'
  LABEL(28)  = 'UY_20'

! Correct data, obtained data
!--------------------------------------------------------------------------------------
NODE1 = NODE(0,0.5,0)
NODE2 = NODE(0,-49.5,0)
NODE4 = NODE(0,-1,0)
NODE7 = NODE(0,-4,0)
NODE9 = NODE(0,-6,0)
NODE20= NODE(0,-2.666667,0)

! Load Step 3
~CFSET,,3
   VALUE( 1,1) =  1005          $  *GET,VALUE( 1,2),NODE,0,COUNT     ! N_Node
   VALUE( 2,1) =  1004          $  *GET,VALUE( 2,2),ELEM,0,COUNT     ! N_Elem
   VALUE( 3,1) =  2.52E-6     	$  *GET,VALUE( 3,2),NODE,NODE1,U,X      ! UX_1
   VALUE( 4,1) =  0             $  *GET,VALUE( 4,2),NODE,NODE1,U,Y      ! UY_1
   VALUE( 5,1) =  0             $  *GET,VALUE( 5,2),NODE,NODE2,U,X      ! UX_2
   VALUE( 6,1) =  0             $  *GET,VALUE( 6,2),NODE,NODE2,U,Y      ! UY_2
   VALUE( 7,1) =  0             $  *GET,VALUE( 7,2),NODE,NODE4,U,X      ! UX_4
   VALUE( 8,1) =  0             $  *GET,VALUE( 8,2),NODE,NODE4,U,Y      ! UY_4
   VALUE( 9,1) =  4.845E-4 		$  *GET,VALUE( 9,2),NODE,NODE7,U,X      ! UX_7
   VALUE(10,1) =  6.7E-7  		$  *GET,VALUE(10,2),NODE,NODE7,U,Y      ! UY_7
   VALUE(11,1) =  7.1085E-4  	$  *GET,VALUE(11,2),NODE,NODE9,U,X      ! UX_9
   VALUE(12,1) =  1.00E-6  		$  *GET,VALUE(12,2),NODE,NODE9,U,Y      ! UY_9
   VALUE(13,1) =  2.2874E-4		$  *GET,VALUE(13,2),NODE,NODE20,U,X     ! UX_20
   VALUE(14,1) =  3.7E-7		$  *GET,VALUE(14,2),NODE,NODE20,U,Y     ! UY_20


! Load Step 9
~CFSET,,9
   VALUE(15,1) =  1005          $  *GET,VALUE(15,2),NODE,0,COUNT     ! N_Node
   VALUE(16,1) =  1004          $  *GET,VALUE(16,2),ELEM,0,COUNT     ! N_Elem
   VALUE(17,1) =  4.08E-4	    $  *GET,VALUE(17,2),NODE,NODE1,U,X      ! UX_1
   VALUE(18,1) =  0             $  *GET,VALUE(18,2),NODE,NODE1,U,Y      ! UY_1
   VALUE(19,1) =  0             $  *GET,VALUE(19,2),NODE,NODE2,U,X      ! UX_2
   VALUE(20,1) =  0             $  *GET,VALUE(20,2),NODE,NODE2,U,Y      ! UY_2
   VALUE(21,1) =  1.66E-4 	    $  *GET,VALUE(21,2),NODE,NODE4,U,X      ! UX_4
   VALUE(22,1) =  0             $  *GET,VALUE(22,2),NODE,NODE4,U,Y      ! UY_4
   VALUE(23,1) =  8.6E-6 	    $  *GET,VALUE(23,2),NODE,NODE7,U,X      ! UX_7
   VALUE(24,1) =  0             $  *GET,VALUE(24,2),NODE,NODE7,U,Y      ! UY_7
   VALUE(25,1) =  1.2783E-4     $  *GET,VALUE(25,2),NODE,NODE9,U,X      ! UX_9
   VALUE(26,1) =  0             $  *GET,VALUE(26,2),NODE,NODE9,U,Y      ! UY_9
   VALUE(27,1) =  8.7E-6	    $  *GET,VALUE(27,2),NODE,NODE20,U,X     ! UX_20
   VALUE(28,1) =  0             $  *GET,VALUE(28,2),NODE,NODE20,U,Y     ! UY_20

! Warning and error tolerances
  TOLER(  1,1) = 0    $  TOLER(  1,2) = 0
  TOLER(  2,1) = 0    $  TOLER(  2,2) = 0
  TOLER(  3,1) = 1E-8 $  TOLER(  3,2) = 1E-8
  TOLER(  4,1) = 1E-8 $  TOLER(  4,2) = 1E-8
  TOLER(  5,1) = 1E-8 $  TOLER(  5,2) = 1E-8
  TOLER(  6,1) = 1E-8 $  TOLER(  6,2) = 1E-8
  TOLER(  7,1) = 1E-8 $  TOLER(  7,2) = 1E-8
  TOLER(  8,1) = 1E-8 $  TOLER(  8,2) = 1E-8
  TOLER(  9,1) = 1E-7 $  TOLER(  9,2) = 1E-7
  TOLER( 10,1) = 1E-8 $  TOLER( 10,2) = 1E-8
  TOLER( 11,1) = 1E-8 $  TOLER( 11,2) = 1E-8
  TOLER( 12,1) = 1E-8 $  TOLER( 12,2) = 1E-8
  TOLER( 13,1) = 1E-8 $  TOLER( 13,2) = 1E-8
  TOLER( 14,1) = 1E-8 $  TOLER( 14,2) = 1E-8  
  TOLER( 15,1) = 0    $  TOLER( 15,2) = 0
  TOLER( 16,1) = 0    $  TOLER( 16,2) = 0
  TOLER( 17,1) = 5E-5 $  TOLER( 17,2) = 5E-5
  TOLER( 18,1) = 1E-8 $  TOLER( 18,2) = 1E-8
  TOLER( 19,1) = 1E-8 $  TOLER( 19,2) = 1E-8
  TOLER( 20,1) = 1E-8 $  TOLER( 20,2) = 1E-8
  TOLER( 21,1) = 5E-5 $  TOLER( 21,2) = 5E-5
  TOLER( 22,1) = 1E-8 $  TOLER( 22,2) = 1E-8
  TOLER( 23,1) = 1E-7 $  TOLER( 23,2) = 1E-7
  TOLER( 24,1) = 1E-8 $  TOLER( 24,2) = 1E-8
  TOLER( 25,1) = 1E-5 $  TOLER( 25,2) = 1E-5
  TOLER( 26,1) = 1E-8 $  TOLER( 26,2) = 1E-8
  TOLER( 27,1) = 5E-5 $  TOLER( 27,2) = 5E-5
  TOLER( 28,1) = 1E-8 $  TOLER( 28,2) = 1E-8

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
