!*************************************************************************************!
! TITLE: CFVR0843 - Combinations with several coordinate systems
! SUBTITLE: Example to check the combinations module with different coordinate systems
!
! DESCRIPTION: This example checks the functionality of the combinations module when used
! DESCRIPTION: with different coordinate systems.
! DESCRIPTION:
! PESCRIPTION:
! DESCRIPTION: The model is a simple three spans beam with a rectangular section (1.0m x 2.0m).
! DESCRIPTION: The spans are 7m, 9m and 7m long and are meshed with 1m size elements .
! DESCRIPTION:
! DESCRIPTION: The load cases are:
! DESCRIPTION:
! DESCRIPTION: - Load Steps 1 to 23: Concentrated Load of 600kN(Tandem System) at each node.
! DESCRIPTION:
! DESCRIPTION: - Load Steps 24 to 45: Uniformly Distributed Load (4 kN/m<sup>2</sup>) at each element.
! DESCRIPTION:
! DESCRIPTION:
! DESCRIPTION: The combination rules defined are:
! DESCRIPTION:
! DESCRIPTION: - Combination rule 1: Incompatible. Load steps 1 to 23 [(2.0 or 3.0)*H1+(1.0 or 2.0)*H2]
! DESCRIPTION:
! DESCRIPTION: - Combination rule 2: Compatible. Load steps 24 to 45
! DESCRIPTION:
! DESCRIPTION: - Combination rule 3: Addition of Combination 1 and Combination 2
! DESCRIPTION:
! DESCRIPTION:
!
! ELEMENT TYPE: Mesh200, Beam54
! MODULES:
! UNITS: User
! KEYWORD1: Beam
! KEYWORD2: Beam & Shell Properties
! KEYWORD3: Cross Section
! KEYWORD4: Combinations
!*************************************************************************************!
   FINISH
  ~CFCLEAR,,1 
 AnsLic='ansys'
    /TITLE, Combinations with several coordinate systems
   NomFile='CFVR0843'

  ! CivilFEM Setup: Code & Units
  ~UNITS,,LENG,M
  ~UNITS,,TIME,S
  ~UNITS,,FORC,KN
  ~CODESEL,EC3,EC2,,,EC8-94

  /PREP7
  ! Preprocessor
  ! --------------------------------------------------
  ! Materials
  ~CFMP,1,LIB,CONCRETE,EC2,C35/45 ! Mat 1: C35/45
  ! Element Types
  ET,1,200,6
  *GET,VERSION,ACTIVE,,REV
  *IF,VERSION,GE,22.2,THEN
  	ET,2,BEAM3        ! BEAM 54 no longer supported
  *ELSE
  	ET,2,BEAM54
  *ENDIF

  ! Keypoints
  K,1,-3.55,0
  K,2,-3.55,-0.2
  K,3,-2,-0.4
  K,4,-1.75,-1.2
  K,5,1.75,-1.2
  K,6,   2,-0.4
  K,7,3.55,-0.1
  K,8,3.55,0
  A,1,2,3,4,5,6,7,8             ! Create area through points
  CYL4,-1.1,-0.6,0.4            ! Create circle
  AGEN,3,2, , ,1.1, , ,4,0      ! Copy circle
  ASBA,1,2                      ! Subtract areas
  ASBA,5,3
  ASBA,1,4
  ! Attributes
  MAT,1
  TYPE,1
  SMRT,6
  AMESH,ALL
  LOCAL,11,0,0,0,0, , ,-90
  ~SEC2DIN,1,11                 ! Import section
  *IF,VERSION,GE,22.2,THEN
    ~BMSHPRO,1,BEAM,1,1,,,3,1,0, ! Real constant
  *ELSE
    ~BMSHPRO,1,BEAM,1,1,,,54,1,0, ! Real constant
  *ENDIF

  ! Nodes
  CSYS,0
  ACLEAR,2                      ! Delete mesh
  ADELE,2, , ,1                 ! Delete areas & bellow
  N,1,0,0
  N,7,7,0,0
  N,16,7+9,0,0
  N,23,7+9+7,0,
  FILL,1,7
  FILL,7,16
  FILL,16,23
  ! Elements
  TYPE,2                        ! Beam 54 element
  E,1,2
  EGEN,22,1,1
  EPLOT

  /SOLU
  ! Solution

  ! Displacements
  D,1,UX
  D,1,UY
  D,7,UY
  D,16,UY
  D,23,UY

  ! Load Steps
  ! Load Steps 1 to 23: Concentrated Load = 600kN(Tandem System) at each node
   *DO,INODE,1,23    ! Loop on nodes
     F,INODE,FY,-600 ! Apply load
     SOLVE           ! Solve
     FDELE,ALL,ALL   ! Delete Load
   *ENDDO
  ! Load Steps 24 to 45: Uniformly Distributed Load (4 kN/m2) at each element
   *DO,IELEM,1,22
     SFBEAM,IELEM,1,PRES,4.0*7.1,4.0*7.1 ! Apply Load
     SOLVE                               ! Solve
     SFEDELE,ALL,ALL,ALL                 ! Delete Load
   *ENDDO
  /POST1
  ! Postprocessor
  ! CivilFEM Combinations: Define Targets
   ~TRGDEF,1,BEAM ,M,Z,MAX   ! 1 : Maximum bending moment MZ
   ~TRGDEF,2,CROSS,M,Z,MAX   ! 2 : Maximum bending moment MZ (Cross section)
  ! CivilFEM Combinations: Define Combination Rules
    ! Combination Rule No.1: Tandem System 600 kN
       /TITLE,Tandem System 600 kN
       ~CMBDEF,1,INCOMPAT,23
       ~STSTDEF,1,1,LSTEP,1,,23,1,1
    ! Combination Rule No.2: Uniformly Distributed Load
        /TITLE,Uniformly Distributed Load
       ~CMBDEF,2,COMPATIB,22
       ~STSTDEF,2,1,LSTEP,24,,22,1,1
    ! Combination Rule No.3: Road Traffic Actions (TS + UDL)
        /TITLE,Road Traffic Actions
       ~CMBDEF,3,ADD,2
       ~STSTDEF,3,1,CMB,1    ! Tandem System 600 kN
       ~STSTDEF,3,2,CMB,2    ! Uniformly Distributed Load
       ~STSTCFT,3,1, 1.00    ! Coefficient for TS  = 1.00
       ~STSTCFT,3,2, 1.00    ! Coefficient for UDL = 1.00
  ! CivilFEM Combinations: Do Combinations
    ~COMBINE,
    ~CMBDAT,2   ! Point to combined results
  ! CivilFEM Combinations: Read Results
    ! Minimum Bending Moment Z
      ~CMB,3,,,,,1              ! Read Combined Result
      ETABLE,MZ_i,SMISC,  6     ! ANSYS Etable for MZ_i
      ETABLE,MZ_j,SMISC,  12    ! ANSYS Etable for MZ_j
      PLLS,MZ_i,MZ_j,-3         ! Plot ANSYS MZ (optional scale factor = -3)
    ! Maximum Bending Moment Z
      ~CMB,3,,,,,2            ! Read Combined Result
      ~PLLSFOR,M,Z,-3         ! Plot CivilFEM MZ (optional scale factor = -3)
  ! Inquire Loads to Obtain Maximum Bending Moment Z at Element 15, Node 16
    ~CMBINQ,3,BEAM,M,Z,MAX,16,15,2,1   ! Recursive & Include List Results

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparison number
  NComp = 9
  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
!--------------------------------------------------------------------------------------
  VALUE( 1,1) = -456.765217
  VALUE( 2,1) = -391.739614
  VALUE( 3,1) = -326.71401
  VALUE( 4,1) = -261.688406
  VALUE( 5,1) = -196.662802
  VALUE( 6,1) = -131.637198
  VALUE( 7,1) = -66.6115942
  VALUE( 8,1) = -1.58599034
  VALUE( 9,1) =  63.4396135

  ~CFGET,VALUE( 1,2),ELEMENT,7,FORCE,MZ,I
  ~CFGET,VALUE( 2,2),ELEMENT,8,FORCE,MZ,I
  ~CFGET,VALUE( 3,2),ELEMENT,9,FORCE,MZ,I
  ~CFGET,VALUE( 4,2),ELEMENT,10,FORCE,MZ,I
  ~CFGET,VALUE( 5,2),ELEMENT,11,FORCE,MZ,I
  ~CFGET,VALUE( 6,2),ELEMENT,12,FORCE,MZ,I
  ~CFGET,VALUE( 7,2),ELEMENT,13,FORCE,MZ,I
  ~CFGET,VALUE( 8,2),ELEMENT,14,FORCE,MZ,I
  ~CFGET,VALUE( 9,2),ELEMENT,15,FORCE,MZ,I

! 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'

! 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-5       $   TOLER( 4, 2)= 1E-4
  TOLER( 5, 1)= 1E-5       $   TOLER( 5, 2)= 1E-4
  TOLER( 6, 1)= 1E-1       $   TOLER( 6, 2)= 1E+0
  TOLER( 7, 1)= 1E+0       $   TOLER( 7, 2)= 1E+1
  TOLER( 8, 1)= 1E-5       $   TOLER( 8, 2)= 1E-4
  TOLER( 9, 1)= 1E-5       $   TOLER( 9, 2)= 1E-4

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC
