!*************************************************************************************!
! TITLE: CFVR0812 - 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 BEAM54 elements.
! DESCRIPTION:
! DESCRIPTION: - Date handle with unsorted numeration (elements, load steps...)
! 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 12: Absolute value MZ.
! DESCRIPTION:
! DESCRIPTION: - Target 23: Minimum value SBYT.
! DESCRIPTION:
! DESCRIPTION: - Target 25: Maximum value EPEL DIR
! DESCRIPTION:
! DESCRIPTION: - Target 30: Minimum value COMBS YBZM
! DESCRIPTION:
! DESCRIPTION: - Target 35: Minimum value COMBEPEL YBZM
! DESCRIPTION:
! DESCRIPTION:
! DESCRIPTION: The combination rule defined is:
! DESCRIPTION:
! DESCRIPTION: - Combination rule 18: Select with variable coefficientes [(2.0 or 3.0)*H1+(1.0 or 2.0)*H2+(1.0 or 1.0)*H4]
! DESCRIPTION:
!
! ELEMENT TYPE: Beam54
! MODULES:
! UNITS: SI
! KEYWORD1: Beam
! KEYWORD2: Combinations
!*************************************************************************************!
  FINISH
  ~CFCLEAR,,1 
 AnsLic='ansys'

  NomFile='CFVR0812'
  /TITLE, %NomFile%, Combination module test with BEAM54
! ---------------------------------------------------------------------------------
! Model definition and solve
! ---------------------------------------------------------------------------------
!
!
!  Load scheme:
!
!       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       LS8
!     o=========o=========o=========o=========o=========o=========o  ------> N=100 SB1
!     ^    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       : Type
!     |------ 10 m -------|------ 16 m -------|------ 10 m -------|
!
! ---------------------------------------------------------------------------------

/PREP7
! Materials
  *DO,IMAT,2,14
    MP,EX,IMAT,3E6
    MP,NUXY,IMAT,0.2
  *ENDDO
! Sections
  H=2
  A=2
  IZ=1/12*1*2**3
  *GET,VERSION,ACTIVE,,REV
  *IF,VERSION,GE,22.2,THEN
	*DO,ISEC,1,4
		R,ISEC,A,IZ,H
	*ENDDO
	*DO,ISEC,9,13
		R,ISEC,A,IZ,H
	*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
		ET,ITYP,BEAM3
	*ENDDO
  *ELSE
	*DO,ISEC,1,4
		R,ISEC,A,IZ,H/2,H/2,A,IZ
		RMORE,H/2,H/2
	*ENDDO
	*DO,ISEC,9,13
		R,ISEC,A,IZ,H/2,H/2,A,IZ
		RMORE,H/2,H/2
	*ENDDO
	*DO,ISEC,5,8
		R,ISEC,A,IZ,H/2,H/2,A,IZ
		RMORE,H/2,H/2
	*ENDDO
	! Element types
	ET,1,BEAM54
	*DO,ITYP,2,10,4
		ET,ITYP,BEAM54
	*ENDDO
	*DO,ITYP,4,12,4
		ET,ITYP,BEAM54
	*ENDDO
  *ENDIF
! 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,2,UX
  D,2,UY $ D,6,UY $ D,10,UY $ D,14,UY
! Plot
  /ESHAPE,1
  EPLOT
! Initial hypothesis solve
  /SOLU
  SOLCONTROL,OFF
  AUTOTS,OFF
  ! Hypothesis 0: LS1 Ignored
    TIME, 2
    OUTRES,ALL,NONE
    SOLVE
  ! Hypothesis 1: LS2 SB1 TM10 Q=1 (1st Span)
    /TITLE, H1: LS2 SB1 TM10 Q=1 (1st Span)
    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 (2nd Span)
    /TITLE, H2: LS3 SB3 TM30 Q=2 (2nd Span)
    TIME,30
    NSUBST,3
    OUTRES,ALL,LAST
    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 (3rd Span)
    /TITLE, H3: LS6 SB2 TM50 Q=3 (3rd Span)
    TIME,50
    NSUBST,2
    OUTRES,ALL,ALL
    SFBEAM,13,1,PRES,3,3
    SFBEAM,15,1,PRES,3,3
    SOLVE
    SFEDELE,ALL,ALL,PRES
  ! Hypothesis 0: LS6 Ignored
    TIME,52
    OUTRES,ALL,NONE
    SOLVE
  ! Hypothesis 4: LS8 SB1 TM60 N=100
    /TITLE, H4: LS8 SB1 TM60 N=100
    TIME,60
    NSUBST,1
    OUTRES,ALL,ALL
    F,14,FX,100
    SOLVE
    FDELE,ALL,ALL

/POST1
! ---------------------------------------------------------------------------------
! Definition and solving of combinations
! ---------------------------------------------------------------------------------
! Reset combinations module
  ~CMBCLR,
! Targets definition
  ~TRGDEF,12,BEAM,M       ,Z   ,ABS
  ~TRGDEF,23,BEAM,S       ,BYT ,MIN
  ~TRGDEF,25,BEAM,EPEL    ,DIR ,MAX
  ~TRGDEF,30,BEAM,COMBS   ,YBZM,MIN
  ~TRGDEF,35,BEAM,COMBEPEL,YBZM,MIN
! Combinations definition
  ! Combination 18: SELEC CFV [(2.0 or 3.0)*H1+(1.0 or 2.0)*H2+(1.0 or 1.0)*H4]
      ~CMBDEF ,18,SELECTVC,3,, 3
      ~STSTDEF,18,1,LSTEP,2         ! H1: LS2 SB1 TM10 Q=1 (Span 1)
      ~STSTDEF,18,2,LSTEP,3         ! H2: LS3 SB3 TM30 Q=2 (Span 2)
      ~STSTDEF,18,3,LSTEP,8         ! H4: LS8 SB1 TM60 N=100
      ~STSTCFT,18,1,3.00,2.00
      ~STSTCFT,18,2,2.00,1.00
      ~STSTCFT,18,3,1.00,1.00
! Combine
  ~COMBINE

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 10
  NComp_ch = 0

! Marix dim.
  *DIM,LABEL,CHAR,Ncomp,1
  *DIM,VALUE,,Ncomp,3
  *DIM,TOLER,,Ncomp,2

! ---------------------------------------------------------------------------------
! Control tests
! ---------------------------------------------------------------------------------
! Test 1:
! - Hypothesis: Combination 18, Target 12 (MZAbs BEAM)
! - Point    : Element 9 End J
! - Datum    : MZ
! - Solution : 2*H1+2*H2+1*H4 = 6.4088235E+01
!
! Test 2:
! - Hypothesis: Combination 18, Target 12 (MZAbs BEAM)
! - Point    : Element 9 End J
! - Datum    : FX
! - Solution : 2*H1+2*H2+1*H4 =	100
!
! Test 3:
! - Hypothesis: Combination 18, Target 23 (SBYTmin BEAM)
! - Point    : Element 5 End J
! - Datum    : SBYT
! - Solution : 3*H1+1*H2+1*H4 =	-21.713235
!
! Test 4:
! - Hypothesis: Combination 18, Target 23 (SBYTmin BEAM)
! - Point    : Element 5 End J
! - Datum    : COMBEPELYTZM
! - Solution : 3*H1+1*H2+1*H4 = 9.4289216E-06
!
! Test 5:
! - Hypothesis: Combination 18, Target 25 (EPELDIRmax BEAM)
! - Point    : Element 15 End I
! - Datum    : EPELDIR
! - Solution : 1*H4 = 1.6666667E-05
!
! Test 6:
! - Hypothesis: Combination 18, Target 25 (EPELDIRmax BEAM)
! - Point    : Element 15 End I
! - Datum    : FX
! - Solution : 1*H4 = 100
!
! Test 7:
! - Hypothesis: Combination 18, Target 30 (COMBSYBZMmin BEAM)
! - Point    : Element 9 End I
! - Datum    : COMBSYBZM
! - Solution : 3*H1+2*H2+1*H4 = -6.425000E+01
!
! Test 8:
! - Hypothesis: Combination 18, Target 30 (COMBSYBZMmin BEAM)
! - Point    : Element 9 End I
! - Datum    : COMBEPELYTZM
! - Solution : 3*H1+2*H2+1*H4 = 5.475000E-05
!
! Test 9:
! - Hypothesis: Combination 18, Target 35 (COMBEPELYBZMmin BEAM)
! - Point    : Element 5 End J
! - Datum    : COMBEPELYBZM
! - Solution : 2*H1+2*H2+1*H4 = 1.1452614E-05
!
! Test 10:
! - Hypothesis: Combination 18, Target 35 (COMBEPELYBZMmin BEAM)
! - Point    : Element 5 End J
! - Datum    : FY
! - Solution : 2*H1+2*H2+1*H4 = 7.0856209E+00
! ---------------------------------------------------------------------------------
! Point to combined data
  ~CMBDAT,2
! Test 1:
  ~CFSET,,18,12
  ETABLE,MZ_J,SMISC,12
  *GET,VALUE(1,2),ELEM,9,ETAB,MZ_J
  VALUE(1,1)= 6.4088235E+01
! Test 2:
  ~CFSET,,18,12
  ETABLE,FX_J,SMISC,7
  *GET,VALUE(2,2),ELEM,9,ETAB,FX_J
  VALUE(2,1)= 1.0000000E+02
! Test 3:
  ~CFSET,,18,23
  ETABLE,SBYT_J,LS,5
  *GET,VALUE(3,2),ELEM,5,ETAB,SBYT_J
  VALUE(3,1)=  -2.1713235E+01
! Test 4:
  ~CFSET,,18,23
  ETABLE,EPDIR_J,LEPEL,4
  ETABLE,EPBYT_J,LEPEL,5
  *GET,A,ELEM,5,ETAB,EPDIR_J
  *GET,B,ELEM,5,ETAB,EPBYT_J
  VALUE(4,2)=A+B
  VALUE(4,1)= 9.4289216E-06
! Test 5:
  ~CFSET,,18,25
  ETABLE,EPDIR_I,LEPEL,1
  *GET,VALUE(5,2),ELEM,15,ETAB,EPDIR_I
  VALUE(5,1)= 1.6666667E-05
! Test 6:
  ~CFSET,,18,25
  ETABLE,FX_I,SMISC,1
  *GET,VALUE(6,2),ELEM,15,ETAB,FX_I
  VALUE(6,1)= 1.0000000E+02
! Test 7:
  ~CFSET,,18,30
  ETABLE,SDIR_I,LS,1
  ETABLE,SBYB_I,LS,3
  *GET,A,ELEM,9,ETAB,SDIR_I
  *GET,B,ELEM,9,ETAB,SBYB_I
  VALUE(7,2)=A+B
  VALUE(7,1)= -6.425000E+01
! Test 8:
  ~CFSET,,18,30
  ETABLE,EPDIR_I,LEPEL,1
  ETABLE,EPBYT_I,LEPEL,2
  *GET,A,ELEM,9,ETAB,EPDIR_I
  *GET,B,ELEM,9,ETAB,EPBYT_I
  VALUE(8,2)=A+B
  VALUE(8,1)= 5.475000E-05
! Test 9:
  ~CFSET,,18,35
  ETABLE,EPDIR_J,LEPEL,4
  ETABLE,EPBYB_J,LEPEL,6
  *GET,A,ELEM,5,ETAB,EPDIR_J
  *GET,B,ELEM,5,ETAB,EPBYB_J
  VALUE(9,2)=A+B
  VALUE(9,1)= 1.1452614E-05
! Test 10:
  ~CFSET,,18,35
  ETABLE,FY_J,SMISC,8
  *GET,VALUE(10,2),ELEM,5,ETAB,FY_J
  VALUE(10,1)= 7.0856209E+00

! 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'
  LABEL( 9) ='TEST9'
  LABEL(10) ='TEST10'

! Warning and error tolerances
  TOLER( 1, 1)= 1E-5       $   TOLER( 1, 2)= 1E-4
  TOLER( 2, 1)= 1E-4       $   TOLER( 2, 2)= 1E-3
  TOLER( 3, 1)= 1E-5       $   TOLER( 3, 2)= 1E-4
  TOLER( 4, 1)= 1E-12      $   TOLER( 4, 2)= 1E-11
  TOLER( 5, 1)= 1E-10      $   TOLER( 5, 2)= 1E-9
  TOLER( 6, 1)= 1E-4       $   TOLER( 6, 2)= 1E-3
  TOLER( 7, 1)= 1E-5       $   TOLER( 7, 2)= 1E-4
  TOLER( 8, 1)= 1E-11      $   TOLER( 8, 2)= 1E-10
  TOLER( 9, 1)= 1E-11      $   TOLER( 9, 2)= 1E-10
  TOLER(10, 1)= 1E-6       $   TOLER(10, 2)= 1E-5

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
