CFVR0808 - Combination module test

Example to check the combinations utility

This example checks the functionality of the combinations module.
It checks the following:

The model is a three elements horizontal cantilever beam, each element is one third of the length of the beam (total 3 meters).
The load cases are:
No Civil materials or beam properties have been used in this example, only ANSYS results will be checked.

The target for the combinations is:
The combination rule defined is:

Element types used in the model: PIPE20

Needed CivilFEM Modules:
Geotechnical Module
Bridges and Civil Non Linearities Module
Advanced Prestressed Concrete Module

The example can be launched on an educational license.
KEYWORDS
Beam
Combinations

Model Statistics
Number of elements 3
Number of nodes 4
Number of civil materials 0
Number of cross sections 0
Number of shell vertices 0

Log file: CFVR0808.DAT


  FINISH
  ~CFCLEAR,,1 
 AnsLic='ansys'

  NomFile='CFVR0808'
  /TITLE, %NomFile%, Combination module test with PIPE20
! ---------------------------------------------------------------------------------
! Model definition and solve
! ---------------------------------------------------------------------------------
/PREP7
! Materials
  MP,EX,5,3E6
  MP,NUXY,5,0.2
! Sections
  R,10,2.0,0.20
! Element types
  *GET,VERSION,ACTIVE,,REV
  *IF,VERSION,GE,22.2,THEN
  	ET,2,PIPE16        ! PIPE20 no longer supported
  *ELSE
  	ET,2,PIPE20
  *ENDIF
! Nodes
  N,10,0.0,0.0
  N,20,1.0,0.0
  N,30,2.0,0.0
  N,40,3.0,0.0
! Elements
  MAT,5
  REAL,10
  TYPE,2
  EN,100, 10, 20
  EN,200, 20, 30
  EN,300, 30, 40
! Boundary conditions
  D,10,ALL,0.0
! Initial hypothesis solve
  /SOLU
  ! Hypothesis 1:
    /TITLE, Hypothesis 1
    OUTRES,ALL,ALL
    D,40,UX,1
    SOLVE
    DDELE,40,ALL
  ! Hypothesis 2:
    /TITLE, Hypothesis 2
    OUTRES,ALL,ALL
    D,40,UY,1
    D,40,UZ,1
    SOLVE
    DDELE,40,ALL

/POST1
! ---------------------------------------------------------------------------------
!  Read correct data from simple hypothesis
! ---------------------------------------------------------------------------------
  Dat=26 ! Number of data to check
  RES=
  *DIM,RES,,Dat,2
! Load data of each simple hypothesis
  ! Hypothesis 1
    SET,1,1
    ETABLE,FX_I   ,SMISC, 1
    ETABLE,FY_I   ,SMISC, 2
    ETABLE,FZ_I   ,SMISC, 3
    ETABLE,MX_I   ,SMISC, 4
    ETABLE,MY_I   ,SMISC, 5
    ETABLE,MZ_I   ,SMISC, 6
    ETABLE,FX_J   ,SMISC, 7
    ETABLE,FY_J   ,SMISC, 8
    ETABLE,FZ_J   ,SMISC, 9
    ETABLE,MX_J   ,SMISC,10
    ETABLE,MY_J   ,SMISC,11
    ETABLE,MZ_J   ,SMISC,12
    *GET,RES( 1,1),ELEM,200,ETAB,FX_J
    *GET,RES( 2,1),ELEM,200,ETAB,FY_J
    *GET,RES( 3,1),ELEM,200,ETAB,FZ_J
    *GET,RES( 4,1),ELEM,200,ETAB,MX_J
    *GET,RES( 5,1),ELEM,200,ETAB,MY_J
    *GET,RES( 6,1),ELEM,200,ETAB,MZ_J
  ! Hypothesis 2
    SET,2,1
    ETABLE,FX_I   ,SMISC, 1
    ETABLE,FY_I   ,SMISC, 2
    ETABLE,FZ_I   ,SMISC, 3
    ETABLE,MX_I   ,SMISC, 4
    ETABLE,MY_I   ,SMISC, 5
    ETABLE,MZ_I   ,SMISC, 6
    ETABLE,FX_J   ,SMISC, 7
    ETABLE,FY_J   ,SMISC, 8
    ETABLE,FZ_J   ,SMISC, 9
    ETABLE,MX_J   ,SMISC,10
    ETABLE,MY_J   ,SMISC,11
    ETABLE,MZ_J   ,SMISC,12
    *GET,RES( 1,2),ELEM,200,ETAB,FX_J
    *GET,RES( 2,2),ELEM,200,ETAB,FY_J
    *GET,RES( 3,2),ELEM,200,ETAB,FZ_J
    *GET,RES( 4,2),ELEM,200,ETAB,MX_J
    *GET,RES( 5,2),ELEM,200,ETAB,MY_J
    *GET,RES( 6,2),ELEM,200,ETAB,MZ_J

! ---------------------------------------------------------------------------------
! Definition and solving of combinations
! ---------------------------------------------------------------------------------
! Reset combinations module
  ~CMBCLR,
! Targets definition
  ~TRGDEF,45,BEAM,M,Z,MAX
! Combinations definition
  ! Combination 10: ADDITION [H1+H2]
      ~CMBDEF, 10,ADD,2
      ~STSTDEF,10,1,LSTEP,1, ,2,1,1
      ~STSTCFT,10, ,1.00
! Combine
  ~COMBINE

!--------------------------------------------------------------------------------------
! DATA CHECK
!--------------------------------------------------------------------------------------
! Data comparision number
  NComp = 26
  NComp_ch = 0

! Marix dim.
  *DIM,LABEL,CHAR,Ncomp,1
  *DIM,VALUE,,Ncomp,3
  *DIM,TOLER,,Ncomp,2

! Labels
!--------------------------------------------------------------------------------------
  *DO,I,1,NComp
    LABEL(I) ='TEST%I%'
  *ENDDO

! Correct values
!--------------------------------------------------------------------------------------
  *DO,I,1,6
    VALUE(I,1)=RES(I,1)+RES(I,2)
  *ENDDO
  *DO,I,7,NComp
    VALUE(I,1)=0.0
  *ENDDO

! Obtained values
!--------------------------------------------------------------------------------------
! Point to combined data
  ~CMBDAT,2
  ~CFSET,,10,45
  ETABLE,FX_I   ,SMISC, 1
  ETABLE,FY_I   ,SMISC, 2
  ETABLE,FZ_I   ,SMISC, 3
  ETABLE,MX_I   ,SMISC, 4
  ETABLE,MY_I   ,SMISC, 5
  ETABLE,MZ_I   ,SMISC, 6
  ETABLE,FX_J   ,SMISC, 7
  ETABLE,FY_J   ,SMISC, 8
  ETABLE,FZ_J   ,SMISC, 9
  ETABLE,MX_J   ,SMISC,10
  ETABLE,MY_J   ,SMISC,11
  ETABLE,MZ_J   ,SMISC,12
  ETABLE,SDIR_I ,LS   , 1
  ETABLE,SBYT_I ,LS   , 2
  ETABLE,SBYB_I ,LS   , 3
  ETABLE,SBZT_I ,LS   , 4
  ETABLE,SBZB_I ,LS   , 5
  ETABLE,SDIR_J ,LS   , 6
  ETABLE,SBYT_J ,LS   , 7
  ETABLE,SBYB_J ,LS   , 8
  ETABLE,SBZT_J ,LS   , 9
  ETABLE,SBZB_J ,LS   ,10
  ETABLE,EPDIR_I,LEPEL, 1
  ETABLE,EPBYT_I,LEPEL, 2
  ETABLE,EPBYB_I,LEPEL, 3
  ETABLE,EPBZT_I,LEPEL, 4
  ETABLE,EPBZB_I,LEPEL, 5
  ETABLE,EPDIR_J,LEPEL, 6
  ETABLE,EPBYT_J,LEPEL, 7
  ETABLE,EPBYB_J,LEPEL, 8
  ETABLE,EPBZT_J,LEPEL, 9
  ETABLE,EPBZB_J,LEPEL,10
  *GET,VALUE( 1,2),ELEM,200,ETAB,FX_J
  *GET,VALUE( 2,2),ELEM,200,ETAB,FY_J
  *GET,VALUE( 3,2),ELEM,200,ETAB,FZ_J
  *GET,VALUE( 4,2),ELEM,200,ETAB,MX_J
  *GET,VALUE( 5,2),ELEM,200,ETAB,MY_J
  *GET,VALUE( 6,2),ELEM,200,ETAB,MZ_J
  *GET,VALUE( 7,2),ELEM,200,ETAB,SDIR_I
  *GET,VALUE( 8,2),ELEM,200,ETAB,SBYT_I
  *GET,VALUE( 9,2),ELEM,200,ETAB,SBYB_I
  *GET,VALUE(10,2),ELEM,200,ETAB,SBZT_I
  *GET,VALUE(11,2),ELEM,200,ETAB,SBZB_I
  *GET,VALUE(12,2),ELEM,200,ETAB,SDIR_J
  *GET,VALUE(13,2),ELEM,200,ETAB,SBYT_J
  *GET,VALUE(14,2),ELEM,200,ETAB,SBYB_J
  *GET,VALUE(15,2),ELEM,200,ETAB,SBZT_J
  *GET,VALUE(16,2),ELEM,200,ETAB,SBZB_J
  *GET,VALUE(17,2),ELEM,200,ETAB,EPDIR_I
  *GET,VALUE(18,2),ELEM,200,ETAB,EPBYT_I
  *GET,VALUE(19,2),ELEM,200,ETAB,EPBYB_I
  *GET,VALUE(20,2),ELEM,200,ETAB,EPBZT_I
  *GET,VALUE(21,2),ELEM,200,ETAB,EPBZB_I
  *GET,VALUE(22,2),ELEM,200,ETAB,EPDIR_J
  *GET,VALUE(23,2),ELEM,200,ETAB,EPBYT_J
  *GET,VALUE(24,2),ELEM,200,ETAB,EPBYB_J
  *GET,VALUE(25,2),ELEM,200,ETAB,EPBZT_J
  *GET,VALUE(26,2),ELEM,200,ETAB,EPBZB_J

! Warning and error tolerances
  TOLER( 1, 1)= 1E-05   $   TOLER( 1, 2)= 1E-04
  TOLER( 2, 1)= 1E-09   $   TOLER( 2, 2)= 1E-08
  TOLER( 3, 1)= 1E-10   $   TOLER( 3, 2)= 1E-09
  TOLER( 4, 1)= 1E-15   $   TOLER( 4, 2)= 1E-14
  TOLER( 5, 1)= 1E-10   $   TOLER( 5, 2)= 1E-09
  TOLER( 6, 1)= 1E-09   $   TOLER( 6, 2)= 1E-08
  TOLER( 7, 1)= 1E-01   $   TOLER( 7, 2)= 1E-00
  TOLER( 8, 1)= 1E-03   $   TOLER( 8, 2)= 1E-02
  TOLER( 9, 1)= 1E-03   $   TOLER( 9, 2)= 1E-02
  TOLER(10, 1)= 1E-03   $   TOLER(10, 2)= 1E-02
  TOLER(11, 1)= 1E-15   $   TOLER(11, 2)= 1E-14
  TOLER(12, 1)= 1E-01   $   TOLER(12, 2)= 1E-00
  TOLER(13, 1)= 1E-03   $   TOLER(13, 2)= 1E-02
  TOLER(14, 1)= 1E-03   $   TOLER(14, 2)= 1E-02
  TOLER(15, 1)= 1E-03   $   TOLER(15, 2)= 1E-03
  TOLER(16, 1)= 1E-03   $   TOLER(16, 2)= 1E-03
  TOLER(17, 1)= 1E-09   $   TOLER(17, 2)= 1E-08
  TOLER(18, 1)= 1E-11   $   TOLER(18, 2)= 1E-10
  TOLER(19, 1)= 1E-11   $   TOLER(19, 2)= 1E-10
  TOLER(20, 1)= 1E-11   $   TOLER(20, 2)= 1E-10
  TOLER(21, 1)= 1E-11   $   TOLER(21, 2)= 1E-10
  TOLER(22, 1)= 1E-09   $   TOLER(22, 2)= 1E-08
  TOLER(23, 1)= 1E-11   $   TOLER(23, 2)= 1E-10
  TOLER(24, 1)= 1E-11   $   TOLER(24, 2)= 1E-10
  TOLER(25, 1)= 1E-11   $   TOLER(25, 2)= 1E-10
  TOLER(26, 1)= 1E-11   $   TOLER(26, 2)= 1E-10

!--------------------------------------------------------------------------------------
! Results comparison
!--------------------------------------------------------------------------------------
  COMPARA.MAC

Results

LabelTargetCivilFEMRatioTolerance
TEST11.131e+0061.131e+0061.000 0.0001
TEST2 93337 933371.000 1e-008
TEST3 93337 933371.000 1e-009
TEST4 0 00.000 1e-014
TEST5 -93337 -933371.000 1e-009
TEST6 93337 933371.000 1e-008
TEST7 0 00.000 1
TEST8 0 00.000 0.01
TEST9 0 00.000 0.01
TEST10 0 00.000 0.01
TEST11 0 00.000 1e-014
TEST12 0 00.000 1
TEST13 0 00.000 0.01
TEST14 0 00.000 0.01
TEST15 0 00.000 0.001
TEST16 0 00.000 0.001
TEST17 0 00.000 1e-008
TEST18 0 00.000 1e-010
TEST19 0 00.000 1e-010
TEST20 0 00.000 1e-010
TEST21 0 00.000 1e-010
TEST22 0 00.000 1e-008
TEST23 0 00.000 1e-010
TEST24 0 00.000 1e-010
TEST25 0 00.000 1e-010
TEST26 0 00.000 1e-010


Contains proprietary and confidential information of Ingeciber, S.A.