!*************************************************************************************!
! TITLE: CFVR0801 - Combination module test
! SUBTITLE: Example to check the combinations utility
!
! DESCRIPTION: This example checks the functionality of the combinations module.
! DESCRIPTION:
! DESCRIPTION: It checks the following:
! DESCRIPTION:
! DESCRIPTION: - Results handle on BEAM3 and Beam54 elements.
! DESCRIPTION:
! DESCRIPTION: - Date handle with unsorted numeration (elements, load steps...)
! DESCRIPTION:
! DESCRIPTION: - Handle of all combination rules.
! DESCRIPTION:
! DESCRIPTION: - Handle of nested combinations.
! DESCRIPTION:
! DESCRIPTION:
! DESCRIPTION: The model is a simple three spans beam with a rectangular section (1.0m x 2.0m).
! DESCRIPTION: The spans are 10m, 16m and 10m long and are meshed with two elements each.
! DESCRIPTION:
! DESCRIPTION: The load cases are:
! DESCRIPTION:
! DESCRIPTION: - Load Step 2, Sub Step 1, Time 10: Surface load (1 N/m) on Span 1.
! DESCRIPTION:
! DESCRIPTION: - Load Step 3, Sub Step 3, Time 30: Surface load (2 N/m) on Span 2.
! DESCRIPTION:
! DESCRIPTION: - Load Step 6, Sub Step 2, Time 50: Surface load (3 N/m) on Span 3.
! DESCRIPTION:
! DESCRIPTION: No Civil materials or beam properties have been used in this example,
! DESCRIPTION: only ANSYS results will be checked.
! DESCRIPTION:
! DESCRIPTION:
! DESCRIPTION: The targets for the combinations are:
! DESCRIPTION:
! DESCRIPTION: - Target 2: MZ MAX in BEAMS
! DESCRIPTION:
! DESCRIPTION: - Target 3: FY MIN in BEAMS and FY MAX in REACT
! DESCRIPTION:
! DESCRIPTION: - Target 5: FY ABS in REACT and UY MIN in DISPL
! DESCRIPTION:
! DESCRIPTION:
! DESCRIPTION: The combination rules defined are:
! DESCRIPTION:
! DESCRIPTION: - Combination rule 5: ADDITION - 2*H1+10*H3
! DESCRIPTION:
! DESCRIPTION: - Combination rule 12: ADDITION VCFV - (2.0 or 3.0)*H1+(1.0 or 2.0)*H2
! DESCRIPTION:
! DESCRIPTION: - Combination rule 13: INCOMPATIBLE - [H1, H2, H3] Incompatibles
! DESCRIPTION:
! DESCRIPTION: - Combination rule 14: COMPATIBLE - H2, H3] Compatibles
! DESCRIPTION:
! DESCRIPTION: - Combination rule 15: OPTION - [C5, C12] Option
! DESCRIPTION:
! DESCRIPTION: - Combination rule 16: OPPOSED - [H1, H2, H3] Opposed
! DESCRIPTION:
! DESCRIPTION: - Combination rule 17: SELECTION - [H1, H2, H3] Choose 2
! DESCRIPTION:
! DESCRIPTION: - Combination rule 18: SELEC VCF - [(2.0 or 3.0)*H1, (1.0 or 2.0)*H2] Choose 1
!
! ELEMENT TYPE: Beam54, Beam3
! MODULES:
! UNITS: SI
! KEYWORD1: Beam
! KEYWORD2: Combinations
!*************************************************************************************!
  FINISH
  ~CFCLEAR,,1 
 AnsLic='ansys'

  NomFile='CFVR0801'
  /TITLE, %NomFile%, Combination module test
! ---------------------------------------------------------------------------------
! Definition of the model and solve
! ---------------------------------------------------------------------------------
!
!  Load sketch:
!
!       LS2 SB1 TM10 Q=1    LS3 SB3 TM30 Q=2   LS6 SB2 TM50 Q=3
!       ||||||||||||||||||  |||||||||||||||||  |||||||||||||||||||
!       ||||||||||||||||||  |||||||||||||||||  |||||||||||||||||||
!       vvvvvvvvvvvvvvvvvv  vvvvvvvvvvvvvvvvv  vvvvvvvvvvvvvvvvvvv
!     2         4         6         8        10        12        14  : Nodes
!     o=========o=========o=========o=========o=========o=========o
!     ^    5         7    ^    9        11    ^   13        15    ^  : Elements
!          3         5         7         9        11        13       : Material
!          2         4         6         8        10        12       : Section
!          4         4         6         6         8         8       : Types
!         54        54         3         3        54        54       : Ename
!     |------ 10 m -------|------ 16 m -------|------ 10 m -------|
!
! ---------------------------------------------------------------------------------

/PREP7
! Materials
  *DO,IMAT,2,14
    MP,EX,IMAT,3E6
    MP,NUXY,IMAT,0.2
  *ENDDO
  *GET,VERSION,ACTIVE,,REV
! Cross Sections
  H=2
  A=2
  IZ=1/12*1*2**3
  *DO,ISEC,1,4
    *IF,VERSION,GE,22.2,THEN
      R,ISEC,A,IZ,H
    *ELSE
      R,ISEC,A,IZ,H/2,H/2,A,IZ
      RMORE,H/2,H/2
    *ENDIF
  *ENDDO
  *DO,ISEC,9,13
    *IF,VERSION,GE,22.2,THEN
      R,ISEC,A,IZ,H
    *ELSE
      R,ISEC,A,IZ,H/2,H/2,A,IZ
      RMORE,H/2,H/2
    *ENDIF
  *ENDDO
  *DO,ISEC,5,8
    R,ISEC,A,IZ,H
  *ENDDO
! Element types
  ET,1,BEAM3
  *DO,ITYP,2,10,4
    ET,ITYP,BEAM3
  *ENDDO
  *DO,ITYP,4,12,4
	*IF,VERSION,GE,22.2,THEN
		ET,ITYP,BEAM3        ! BEAM 3 (BEAM 54 no longer supported)
	*ELSE
		ET,ITYP,BEAM54        ! BEAM 54 (represents reinforcement)
	*ENDIF
  *ENDDO
! Nodes
  N, 1,-1
  N, 2, 0
  N, 4, 5
  N, 6,10
  N,10,26
  FILL,6,10
  N,14,36
  FILL,10,14
! Elements
  MAT, 3 $ REAL, 2 $ TYPE, 4 $ EN, 5, 2, 4
  MAT, 5 $ REAL, 4 $ TYPE, 4 $ EN, 7, 4, 6
  MAT, 7 $ REAL, 6 $ TYPE, 6 $ EN, 9, 6, 8
  MAT, 9 $ REAL, 8 $ TYPE, 6 $ EN,11, 8,10
  MAT,11 $ REAL,10 $ TYPE, 8 $ EN,13,10,12
  MAT,13 $ REAL,12 $ TYPE, 8 $ EN,15,12,14
! Boundary conditions
  D,8,UX
  D,2,UY
  D,6,UY
  D,10,UY
  D,14,UY
! Plot
  /ESHAPE,1
  EPLOT
! Initial loads
  /SOLU
  SOLCONTROL,OFF
  AUTOTS,OFF
  ! Hypothesis 0: LS1 Ignored
    TIME, 2
    OUTRES,ALL,NONE
    SOLVE
  ! Hypothesis 1: LS2 SB1 TM10 Q=1 (Span 1)
    /TITLE,H1: LS2 SB1 TM10 Q=1 (Span 1)
    TIME,10
    OUTRES,ALL,ALL
    SFBEAM, 5,1,PRES,1,1
    SFBEAM, 7,1,PRES,1,1
    SOLVE
    SFEDELE,ALL,ALL,PRES
  ! Hypothesis 2: LS3 SB3 TM30 Q=2 (Span 2)
    /TITLE,H2: LS3 SB3 TM30 Q=2 (Span 2)
    TIME,30
    NSUBST,3
    OUTRES,ALL,LAST
    D,2,UX
    DDELE,8,UX
    SFBEAM, 9,1,PRES,2,2
    SFBEAM,11,1,PRES,2,2
    SOLVE
    SFEDELE,ALL,ALL,PRES
  ! Hypothesis 0: LS4 Ignored
    TIME,31
    OUTRES,ALL,NONE
    SOLVE
  ! Hypothesis 0: LS5 Ignored
    TIME,32
    OUTRES,ALL,NONE
    SOLVE
  ! Hypothesis 3: LS6 SB2 TM50 Q=3 (Span 3)
    /TITLE,H3: LS6 SB2 TM50 Q=3 (Span 3)
    TIME,50
    NSUBST,2
    OUTRES,ALL,ALL
    D,10,UX
    D,14,UX
    DDELE,2,UX
    SFBEAM,13,1,PRES,3,3
    SFBEAM,15,1,PRES,3,3
    SOLVE
    SFEDELE,ALL,ALL,PRES

/POST1
! ---------------------------------------------------------------------------------
! Definition and execution of the combinations
! ---------------------------------------------------------------------------------
! Reset combinations module
  ~CMBCLR,
! Targets definition
  ~TRGDEF,2,BEAM ,M,Z,MAX
  ~TRGDEF,3,BEAM ,F,Y,MIN
  ~TRGDEF,3,REACT,F,Y,MAX
  ~TRGDEF,5,REACT,F,Y,ABS
  ~TRGDEF,5,DISPL,U,Y,MIN

! Combinations definition
  ! Combination  5: ADDITION     : 2*H1+10*H3
    /TITLE,2*H1+10*H3
      ~CMBDEF ,    5,  ADD      ,     2
      ~STSTDEF,    5,     1, NSET  ,     1         ! H1: LS2 SB1 TM10 Q=1 (Span 1)
      ~STSTDEF,    5,     2, LSTEP ,     6,     2  ! H3: LS6 SB2 TM50 Q=3 (Span 3)
      ~STSTCFT,    5,     1, 2.00
      ~STSTCFT,    5,     2,10.00
  ! Combination 12: ADDITION VCF : (2.0 or 3.0)*H1+(1.0 or 2.0)*H2
    /TITLE,(2.0 or 3.0)*H1+(1.0 or 2.0)*H2
      ~CMBDEF ,   12,  ADDVC    ,     2
      ~STSTDEF,   12,     1, LSTEP ,     2         ! H1: LS2 SB1 TM10 Q=1 (Span 1)
      ~STSTDEF,   12,     2, NSET  ,     2         ! H2: LS3 SB3 TM30 Q=2 (Span 2)
      ~STSTCFT,   12,     1, 3.00, 2.00
      ~STSTCFT,   12,     2, 2.00, 1.00
  ! Combination 13: INCOMPATIBLE : [H1, H2, H3] Incompatibles
    /TITLE,[H1, H2, H3] Incompatibles
      ~CMBDEF ,   13,  INCOMPAT ,     3
      ~STSTDEF,   13,     1, LSTEP ,     2         ! H1: LS2 SB1 TM10 Q=1 (Span 1)
      ~STSTDEF,   13,     2, NSET  ,     2         ! H2: LS3 SB3 TM30 Q=2 (Span 2)
      ~STSTDEF,   13,     3, LSTEP ,     6,     2  ! H3: LS6 SB2 TM50 Q=3 (Span 3)
  ! Combination 14: COMPATIBLE   : [H2, H3] Compatibles
    /TITLE,[H2, H3] Compatibles
      ~CMBDEF ,   14,  COMPATIB ,     2
      ~STSTDEF,   14,     1, NSET  ,     2         ! H2: LS3 SB3 TM30 Q=2 (Span 2)
      ~STSTDEF,   14,     2, LSTEP ,     6         ! H3: LS6 SB2 TM50 Q=3 (Span 3)
  ! Combination 15: OPTION     : [C5, C12] Option
    /TITLE,[C5, C12] Option
      ~CMBDEF ,   15,  OPTION   ,     2
      ~STSTDEF,   15,     1, CMB   ,     5         ! C5
      ~STSTDEF,   15,     2, CMB   ,    12         ! C12
  ! Combination 16: OPPOSED      : [H1, H2, H3] Opposed
    /TITLE,[H1, H2, H3] Opposed
      ~CMBDEF ,   16,  OPPOSED  ,     3
      ~STSTDEF,   16,     1, LSTEP ,     2         ! H1: LS2 SB1 TM10 Q=1 (Span 1)
      ~STSTDEF,   16,     2, NSET  ,     2         ! H2: LS3 SB3 TM30 Q=2 (Span 2)
      ~STSTDEF,   16,     3, LSTEP ,     6         ! H3: LS6 SB2 TM50 Q=3 (Span 3)
  ! Combination 17: SELECTION    : [H1, H2, H3] Choose 2
    /TITLE,[H1, H2, H3] Choose 2
      ~CMBDEF ,   17,  SELECT   ,     3,        , 2
      ~STSTDEF,   17,     1, LSTEP ,     2         ! H1: LS2 SB1 TM10 Q=1 (Span 1)
      ~STSTDEF,   17,     2, NSET  ,     2         ! H2: LS3 SB3 TM30 Q=2 (Span 2)
      ~STSTDEF,   17,     3, LSTEP ,     6         ! H3: LS6 SB2 TM50 Q=3 (Span 3)
  ! Combination 18: SELEC VCF    : [(2.0 or 3.0)*H1, (1.0 or 2.0)*H2] Choose 1
    /TITLE,[(2.0 or 3.0)*H1, (1.0 or 2.0)*H2] Choose 1
      ~CMBDEF ,   18,  SELECTVC ,     2,        , 1
      ~STSTDEF,   18,     1, LSTEP,     2         ! H1: LS2 SB1 TM10 Q=1 (Span 1)
      ~STSTDEF,   18,     2, NSET ,     2         ! H2: LS3 SB3 TM30 Q=2 (Span 2)
      ~STSTCFT,   18,     1, 3.00, 2.00
      ~STSTCFT,   18,     2, 2.00, 1.00
  ! Calculation
    ~COMBINE

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 8
  NComp_ch = 0

! Marix dim.
  *DIM,LABEL,CHAR,Ncomp,1
  *DIM,VALUE,,Ncomp,3
  *DIM,TOLER,,Ncomp,2

! ---------------------------------------------------------------------------------
! Control Test
! ---------------------------------------------------------------------------------
! Test 1:
! - Hypothesis: Combination  5, Target 2 (MZmax BEAM)
! - Point     : Element 9 Section J
! - Datum     : MZ
! - Solution  : 2*H1+10*H3 = -5.88234E+01
!
! Test 2:
! - Hypothesis: Combination 12, Target 3 (FYmin BEAM, FYmax REAC)
! - Point     : Node 2
! - Datum     : FY
! - Solution  : 3*H1+1*H2 = 1.03952E+01
!
! Test 3:
! - Hypothesis: Combination 13, Target 3 (FYmin BEAM, FYmax REAC)
! - Point     : Element 13 Section I
! - Datum     : MZ
! - Solution  : H3 = -1.5931E+01
!
! Test 4:
! - Hypothesis: Combination 14, Target 5 (FYabs REAC, UYmin DISPL)
! - Point     : Node 8
! - Datum     : UY
! - Solution  : H2 = -3.7145E-4
!
! Test 5:
! - Hypothesis: Combination 15, Target 5 (FYabs REAC, UYmin DISPL)
! - Point     : Node 6
! - Datum     : FY
! - Solution  : C12 = 3*H1+2*H2 = 5.59193E+01
!
! Test 6:
! - Hypothesis: Combination 16, Target 5 (FYabs REAC, UYmin DISPL)
! - Point     : Node 8
! - Datum     : ROTZ
! - Solution  : -H1+H2-H3 = -4.6296E-6
!
! Test 7:
! - Hypothesis: Combination 17, Target 2 (MZmax BEAM)
! - Point     : Element 9 Section I
! - Datum     : FY
! - Solution  : H1+H3 = 8.6807E-1
!
! Test 8:
! - Hypothesis: Combination 18, Target 2 (MZmax BEAM)
! - Point     : Element 11 Section I
! - Datum     : MZ
! - Solution  : 2*H2 = 6.7764E+01
! ---------------------------------------------------------------------------------
! Point to combined results
  ~CMBDAT,2
! Test 1:
  ~CFSET,,5,2
  ETABLE,MZ_J,SMISC,12
  *GET,VALUE(1,2),ELEM,9,ETAB,MZ_J
  VALUE(1,1)=-0.58823529E+02
! Test 2:
  ~CFSET,,12,3
  *GET,VALUE(2,2),NODE,2,RF,FY
  VALUE(2,1)= 0.10395098E+02
! Test 3:
  ~CFSET,,13,3
  ETABLE,MZ_I,SMISC,6
  *GET,VALUE(3,2),ELEM,13,ETAB,MZ_I
  VALUE(3,1)=-0.15931373E+02
! Test 4:
  ~CFSET,,14,5
  VALUE(4,2)=UY(8)
  VALUE(4,1)= -0.37145098E-3
! Test 5:
  ~CFSET,,15,5
  *GET,VALUE(5,2),NODE,6,RF,FY
  VALUE(5,1)= 0.55918750E+02
! Test 6:
  ~CFSET,,16,5
  VALUE(6,2)=ROTZ(8)
  VALUE(6,1)= -0.46296296E-5
! Test 7:
  ~CFSET,,17,2
  ETABLE,FY_I,SMISC,2
  *GET,VALUE(7,2),ELEM,9,ETAB,FY_I
  VALUE(7,1)=0.86805556E0
! Test 8:
  ~CFSET,,18,2
  ETABLE,MZ_I,SMISC,6
  *GET,VALUE(8,2),ELEM,11,ETAB,MZ_I
  VALUE(8,1)=0.67764706E+02

! Labels
!--------------------------------------------------------------------------------------
  LABEL( 1) ='TEST1'
  LABEL( 2) ='TEST2'
  LABEL( 3) ='TEST3'
  LABEL( 4) ='TEST4'
  LABEL( 5) ='TEST5'
  LABEL( 6) ='TEST6'
  LABEL( 7) ='TEST7'
  LABEL( 8) ='TEST8'

! Warning and error tolerances
  TOLER( 1, 1)= 1E-5       $   TOLER( 1, 2)= 1E-4
  TOLER( 2, 1)= 1E-5       $   TOLER( 2, 2)= 1E-4
  TOLER( 3, 1)= 1E-5       $   TOLER( 3, 2)= 1E-4
  TOLER( 4, 1)= 1E-10      $   TOLER( 4, 2)= 1E-9
  TOLER( 5, 1)= 1E-5       $   TOLER( 5, 2)= 1E-4
  TOLER( 6, 1)= 1E-12      $   TOLER( 6, 2)= 1E-11
  TOLER( 7, 1)= 1E-7       $   TOLER( 7, 2)= 1E-6
  TOLER( 8, 1)= 1E-5       $   TOLER( 8, 2)= 1E-4

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
