!***********************************************************************
! TITLE:CFVR8010 - Strip-footing collapse
! SUBTITLE: Bearing capacity of a strip footing on a Mohr-Coulomb medium
!
! DESCRIPTION: This example is the 3-D version of CFVR8009 example, being 
! DESCRIPTION: completely analogous to it. For a complete description refer
! DESCRIPTION: to that example.
!
! ELEMENT TYPE: SOLID186,TARGE170,CONTA174
! MODULES:
! UNITS: SI
! KEYWORD1: Materials
! KEYWORD2: Geotechnics
! KEYWORD3: Material Models
!
!***********************************************************************
  FINISH
  ~CFCLEAR,,1
  NomFile='CFVR8010'
  /TITLE, %NomFile%, Strip-footing collapse
  
  PI = ACOS(-1)

! ----------------------------------------------------------------------
! Initial data
! ----------------------------------------------------------------------
  ~UNITS,SI
  /PREP7

  IFLOW = 0 !!1      ! type of flow law
  EMOD  = 1.E10  ! elasticity modulus
  NU    = 0.48   ! Poisson's ratio
  PHI   = 20.    ! friction angle
  COH   = 490.E3 ! cohesion
  PSI   = 10     ! dilation angle
  HYP   = 0.05*COH/TAN(PHI*PI/180) ! hyperbolicity parameter
  NTINC = 50*4     ! number of time increments
  U0    = -0.002 ! prescribed displacement of the footing

! ----------------------------------------------------------------------
! Model definition
! ----------------------------------------------------------------------

  ! Materials

  ~CFMP,1,LIB,SOIL,,CL
  ~CFMP,1,SOIL,EXST,,EMOD
  ~CFMP,1,SOIL,NUXYST,,NU
  ~CFMP,1,SOIL,KPLA,,2
  ~CFMP,1,SOIL,KMCSP,,1
  ~CFMP,1,SOIL,PHIMCEFF,,PHI
  ~CFMP,1,SOIL,CMCEFF,,COH
  ~CFMP,1,SOIL,DELEFF,,PSI
  ~CFMP,1,SOIL,HYP,,HYP
  ~CFMP,1,SOIL,IFLOW,,IFLOW

  ! Element types

  ET,1,SOLID186
  *IF,IFLOW,EQ,1,THEN
    KEYOPT,1,5,1
  *ENDIF

  ET,2,TARGE170
  KEYOPT,2,2,1
  ET,3,CONTA174
  KEYOPT,3,2,0
  KEYOPT,3,12,4

  ET,4,MESH200
  KEYOPT,4,1,7

  ! Geometry
  
  K,1,0.,0.
  K,2,5.,0.
  K,3,5.,5.
  K,4,.5,5.
  K,5,0.,5.
  L,1,2
  L,2,3
  L,3,4
  L,4,5
  L,5,1
  AL,1,2,3,4,5

  VEXT,1,,,0.,0.,1.

  ! Meshing

  TYPE,4
  ESIZE,0.4
  AMESH,1

  NSEL,S,LOC,X,-0.001,1.
  NSEL,R,LOC,Y,4.,5.001
  NREFINE,ALL,,,2
  NSEL,ALL

  TYPE,1
  EXTOPTE,ACLEAR,1
  EXTOPT,ESIZE,1
  VSWEEP,1,1,2

  *GET,TMP,NODE,,NUM,MAXD
  ND0 = TMP + 1
  N,ND0,0.,6.,0.5 ! pilot node to impose displacement of the footing
  TMP  = ND0 + 1
  TMP1 = ND0 + 2
  TMP2 = ND0 + 3
  TMP3 = ND0 + 4
  NKPT,TMP,5
  NKPT,TMP1,4
  NKPT,TMP2,9
  NKPT,TMP3,10

  REAL,2
  TYPE,2
  TSHAP,PILO
  E,ND0
  TSHAPE,QUAD
  E,TMP,TMP1,TMP2,TMP3

  TYPE,3
  ASEL,S,,,6
  NSLA,S,1
  ESLN,S
  ESURF

  ASEL,ALL
  NSEL,ALL
  ESEL,ALL
  
  ! Loads

  DA,1,UZ
  DA,2,UZ
  DA,3,UY
  DA,4,UX
  DA,7,UX
  D,ND0,UX
  D,ND0,UY,U0
  D,ND0,UZ
  D,ND0,ROTX
  D,ND0,ROTY
  D,ND0,ROTZ
  
!-----------------------------------------------------------------------
! DATA CHECK
!-----------------------------------------------------------------------
! Data comparison number
  NCOMP    = 1
  NCOMP_CH = 0

! Array dimensions
  *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) = 'Collapse factor'

! Warning and error tolerances
  !TOLER(1,1) = 0.23 $ TOLER(1,2) = 0.23
  !TOLER(1,1) = 0.76 $ TOLER(1,2) = 0.76
  !TOLER(1,1) = 0.9  $ TOLER(1,2) = 0.9  ! 6% = 0.06
  TOLER(1,1) = 15.0 * 0.06 $ TOLER(1,2) = 15.0 *0.06

! Correct values
!-----------------------------------------------------------------------
 
  VALUE(1,1) = 15.

! Obtained values
!-----------------------------------------------------------------------
  /SOLU

  AUTOTS,OFF
  NSUBST,NTINC
  *IF,IFLOW,EQ,1,THEN
    NROPT,UNSYM
  *ELSE
    NROPT,FULL
  *ENDIF
  NEQIT,50

  ERESX,NO
  OUTRES,ALL,NONE
  OUTRES,NSOL,5
  OUTRES,ESOL,5
  OUTRES,RSOL,5

  SOLVE

  *GET,TMP,NODE,ND0,RF,FY
  VALUE(1,2) = -2*TMP/(1.*COH)

!-----------------------------------------------------------------------
! Results comparison
!-----------------------------------------------------------------------
  COMPARA.MAC


