!*************************************************************************************!
! TITLE: CFVR0853 - Linear combination test
! SUBTITLE: Example to check the linear combinations utility
!
! DESCRIPTION: This example checks the functionality of the combinations module.
! DESCRIPTION:
! DESCRIPTION:
! DESCRIPTION: The model is a shell platform supported on four columns. The columns are
! DESCRIPTION: european IPE 180 steel sections and the shell is a 3cm thickness steel shell
! DESCRIPTION: The spans are 10m, 16m and 10m long and are meshed with two elements each.
! DESCRIPTION:
! DESCRIPTION: Three load cases have been defined. Each of them applies a pressure of 100kN/m<sup>2</sup>
! DESCRIPTION: on a third of the shell.
! DESCRIPTION:
! DESCRIPTION:
! DESCRIPTION: The combination rules defined are:
! DESCRIPTION:
! DESCRIPTION: - Combination rule 1: Addition with variable coefficients [1.0 or 2.0 * H1 + 1.0 or 2.0 * H2]
! DESCRIPTION:
! DESCRIPTION: - Combination rule 2: Addition [Combination 1 + H3]
! DESCRIPTION:
!
! ELEMENT TYPE: Beam4, Shell63
! MODULES:
! UNITS: User
! KEYWORD1: Cross Section
! KEYWORD2: Shell Vertex
! KEYWORD3: Beam & Shell Properties
! KEYWORD4: Beam
! KEYWORD5: Shell
! KEYWORD6: Steel
! KEYWORD7: Combinations
!*************************************************************************************!
  FINISH
  ~CFCLEAR,,1 
 AnsLic='ansys'

  NomFile='CFVR0853'
  /TITLE, %NomFile%, Linear combination test

! ---------------------------------------------------------------------------------
! Model definition and solve
! ---------------------------------------------------------------------------------
~UNITS,,LENG,M
~UNITS,,TIME,S
~UNITS,,FORC,KN
~CODESEL,EC3-92,EC2-91,EC2-91,,EC8-94
/PREP7
! Materials
 ~CFMP,1,LIB,STEEL,EA,A42

! Element types
 ET,1,Beam4
 ET,2,63 ! ELASTIC SHELL63

! Sections
 ~SSECLIB,1,1,1,6   ! IPE 180
 ~SHLSTL,1,0.03,1   ! SHELL VERTEX
 ~SHLMDF,1,NAME,,,Shell Vertex 1

! Beam & Shell Property
 ~BMSHPRO,1,BEAM,1,1,,,4,1,0,,Beam 1
 ~BMSHPRO,2,SHELL,1,1,1,1,63,,,0,Shell 2

! Nodes & Elements
  ! Beams
  TYPE,1
  MAT,1
  REAL,1
  K, 1,0
  K, 2,3
  K, 3,3,,2
  K, 4,0,0,2
  K,5,0,1
  K,6,3,1
  K,7,3,1,2
  K,8,0,1,2
  L,1,5
  L,2,6
  L,3,7
  L,4,8
  LESIZE,ALL,1000
  LMESH,ALL

  ! Shell
  K,9,1,1
  K,10,2,1
  K,11,1,1,2
  K,12,2,1,2
  A,5,9,11,8
  A,9,10,12,11
  A,10,6,7,12
  TYPE,2
  MAT,1
  REAL,2
  AMESH,ALL

! Boundary conditions
 NSEL,S,LOC,Y,0
 D,ALL,ALL
 ALLSEL,ALL
 /VIEW,1,0.4,0.3,0.9
 EPLOT
 /IMAGE,SAVE,%NomFile%,BMP

! Initial hypothesis solve
  /SOLU

  ! Hypothesis 1: LS1
    /TITLE, H1: LS1
    SFA,1,2,PRES,-100
    SOLVE
    SFADELE,ALL,2,PRES
	   SFEDELE,ALL,ALL,ALL
	
  ! Hypothesis 2: LS2
    /TITLE, H2: LS2
    SFA,2,2,PRES,-100
    SOLVE
    SFADELE,ALL,2,PRES
	   SFEDELE,ALL,ALL,ALL
	
  ! Hypothesis 3: LS3
    /TITLE, H3: LS3
    SFA,3,2,PRES,-100
    SOLVE
    SFADELE,ALL,2,PRES
    SFEDELE,ALL,ALL,ALL

/POST1
! ---------------------------------------------------------------------------------
! Definition and solving of combinations
! ---------------------------------------------------------------------------------
~CMBCLR
! Combinations definition
  ! Combination 1: ADDITION [1.0 or 2.0 * H1 + 1.0 or 2.0 * H2]
      ~CMBDEF,1,ADDVC,2
      ~STSTDEF,1,1,LSTEP,1      ! H1: LS1
      ~STSTDEF,1,2,LSTEP,2      ! H2: LS2
      ~STSTCFT,1,1,1.00,2.00
      ~STSTCFT,1,2,2.00,1.00
  ! Combination 2: ADDITION CMB1+H3
      ~CMBDEF,2,ADD,2
      ~STSTDEF,2,1,CMB,1        ! Cmb1
      ~STSTDEF,2,2,LSTEP,3      ! H3: LS3
      ~STSTCFT,2,1,1.00,
      ~STSTCFT,2,2,1.00,
    ~LINCMB

! ---------------------------------------------------------------------------------
! DATA CHECK
! ---------------------------------------------------------------------------------
! Data comparison number
  NComp =4
  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

! Correct values
! ---------------------------------------------------------------------------------
  ! My Element 5 End J
  VALUE( 1,1) = 15.277+9.668            ! LS1+LS2  MY=24.945 Minimum value
  VALUE( 2,1) = 2*15.277+2*9.668+3.167  ! 2LS1+2LS2+SL3 MY=53.057 Maximum Value
  ! Concomitant SX on element 4 (beam)
  VALUE( 3,1) = 601.241E3+365.87E3              ! LS1+LS2  SX=967.111E3
  VALUE( 4,1) =2*601.241E3+2*365.87E3+123.45E3  ! 2LS1+2LS2+LS3 SX=1691.80E3

! Obtained values
! ---------------------------------------------------------------------------------
 ~CFSET,,4
 ~CFGET,ValAux, ELEMENT,5, FORCE, MY, J
  MaxLS = 4
  MinLS = 4
  MinVal = ValAux
  MaxVal = ValAux
  *DO,II,5,11
    ~CFSET,,II
    ~CFGET,ValAux, ELEMENT,5, FORCE, MY, J
    *IF,MinVal,GT,ValAux,THEN
      MinVal = ValAux
      MinLS = II
    *ENDIF
    *IF,MaxVal,LT,ValAux,THEN
      MaxVal = ValAux
      MaxLS = II
    *ENDIF
  *ENDDO

! Test 1 and 3:
  ~CFSET,,MinLS
  ~CFGET,VALUE(1,2), ELEMENT,5, FORCE, MY, J
  ~PLLSSTR,SX,1
  *GET,VALUE(3,2),ELEM,4,ETAB,CFETAB_J
! Test 2 and 4:
  ~CFSET,,MaxLS
  ~CFGET,VALUE(2,2), ELEMENT,5, FORCE, MY, J
  ~PLLSSTR,SX,1
  *GET,VALUE(4,2),ELEM,4,ETAB,CFETAB_J

! Labels
! ---------------------------------------------------------------------------------
  LABEL( 1) ='Min_MY'
  LABEL( 2) ='Max_MY'
  LABEL( 3) ='Conc_SX'
  LABEL( 4) ='Conc_SX'

! Warning and error tolerances
  TOLER( 1, 1)= 1E-3       $   TOLER( 1, 2)= 1E-2
  TOLER( 2, 1)= 1E-3       $   TOLER( 2, 2)= 1E-2
  TOLER( 3, 1)= 1E1        $   TOLER( 3, 2)= 1E2
  TOLER( 4, 1)= 1E1        $   TOLER( 4, 2)= 1E2

! ---------------------------------------------------------------------------------
! Results comparison
! ---------------------------------------------------------------------------------
  COMPARA.MAC
