Left

CivilFEM Online Help

Right

CFVR0803 - Combination module test

Example to check the combinations utility

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

  • Results handle on BEAM4 elements.
  • Date handle with unsorted numeration (elements, load steps...)

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:
  • Load Step 1, Sub Step 1: Imposed horizontal movement on the free end of 1 meter in horizontal (direction of the beam).
  • Load Step 2, Sub Step 1: Imposed vertical and horizontal movement (perpendicular to the beam) on the free end of 1 meter each.
No Civil materials or beam properties have been used in this example, only ANSYS results will be checked.

The target for the combinations is:
  • Target 45; Maximum Bending moment MZ

The combination rule defined is:
  • Combination rule 10: ADDITION: H1+H2

Element types used in the model: BEAM4

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: CFVR0804.DAT


  FINISH
  ~CFCLEAR,,1 
 AnsLic='ansys'

  NomFile='CFVR0804'
  /TITLE, %NomFile%, Combination module test with BEAM4
! ---------------------------------------------------------------------------------
! Model definition and solve
! ---------------------------------------------------------------------------------
/PREP7
! Materials
  MP,EX,5,3E6
  MP,NUXY,5,0.2
! Cross Sections
  R,10,0.764E-03,0.801E-06,0.849E-07,0.460E-01,0.800E-01,0.0
  RMORE,0.0,0.7E-8
! Element types
  ET,2,BEAM4
! 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
    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,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
    *GET,RES( 7,1),ELEM,200,ETAB,SDIR_I
    *GET,RES( 8,1),ELEM,200,ETAB,SBYT_I
    *GET,RES( 9,1),ELEM,200,ETAB,SBYB_I
    *GET,RES(10,1),ELEM,200,ETAB,SBZT_I
    *GET,RES(11,1),ELEM,200,ETAB,SBZB_I
    *GET,RES(12,1),ELEM,200,ETAB,SDIR_J
    *GET,RES(13,1),ELEM,200,ETAB,SBYT_J
    *GET,RES(14,1),ELEM,200,ETAB,SBYB_J
    *GET,RES(15,1),ELEM,200,ETAB,SBZT_J
    *GET,RES(16,1),ELEM,200,ETAB,SBZB_J
    *GET,RES(17,1),ELEM,200,ETAB,EPDIR_I
    *GET,RES(18,1),ELEM,200,ETAB,EPBYT_I
    *GET,RES(19,1),ELEM,200,ETAB,EPBYB_I
    *GET,RES(20,1),ELEM,200,ETAB,EPBZT_I
    *GET,RES(21,1),ELEM,200,ETAB,EPBZB_I
    *GET,RES(22,1),ELEM,200,ETAB,EPDIR_J
    *GET,RES(23,1),ELEM,200,ETAB,EPBYT_J
    *GET,RES(24,1),ELEM,200,ETAB,EPBYB_J
    *GET,RES(25,1),ELEM,200,ETAB,EPBZT_J
    *GET,RES(26,1),ELEM,200,ETAB,EPBZB_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
    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,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
    *GET,RES( 7,2),ELEM,200,ETAB,SDIR_I
    *GET,RES( 8,2),ELEM,200,ETAB,SBYT_I
    *GET,RES( 9,2),ELEM,200,ETAB,SBYB_I
    *GET,RES(10,2),ELEM,200,ETAB,SBZT_I
    *GET,RES(11,2),ELEM,200,ETAB,SBZB_I
    *GET,RES(12,2),ELEM,200,ETAB,SDIR_J
    *GET,RES(13,2),ELEM,200,ETAB,SBYT_J
    *GET,RES(14,2),ELEM,200,ETAB,SBYB_J
    *GET,RES(15,2),ELEM,200,ETAB,SBZT_J
    *GET,RES(16,2),ELEM,200,ETAB,SBZB_J
    *GET,RES(17,2),ELEM,200,ETAB,EPDIR_I
    *GET,RES(18,2),ELEM,200,ETAB,EPBYT_I
    *GET,RES(19,2),ELEM,200,ETAB,EPBYB_I
    *GET,RES(20,2),ELEM,200,ETAB,EPBZT_I
    *GET,RES(21,2),ELEM,200,ETAB,EPBZB_I
    *GET,RES(22,2),ELEM,200,ETAB,EPDIR_J
    *GET,RES(23,2),ELEM,200,ETAB,EPBYT_J
    *GET,RES(24,2),ELEM,200,ETAB,EPBYB_J
    *GET,RES(25,2),ELEM,200,ETAB,EPBZT_J
    *GET,RES(26,2),ELEM,200,ETAB,EPBZB_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,NComp
    VALUE(I,1)=RES(I,1)+RES(I,2)
  *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-04   $   TOLER(15, 2)= 1E-03
  TOLER(16, 1)= 1E-04   $   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
TEST1 764 7641.000 0.0001
TEST2 0.267 0.2671.000 1e-008
TEST3 0.0283 0.02831.000 1e-009
TEST4 0 00.000 1e-014
TEST5 -0.0283 -0.02831.000 1e-009
TEST6 0.267 0.2671.000 1e-008
TEST7 1e+006 1e+0061.000 1
TEST8 -26667 -266671.000 0.01
TEST9 26667 266671.000 0.01
TEST10 -15333 -153331.000 0.01
TEST11 15333 153331.000 1e-014
TEST12 1e+006 1e+0061.000 1
TEST13 -13333 -133331.000 0.01
TEST14 13333 133331.000 0.01
TEST15 -7666.7 -7666.71.000 0.001
TEST16 7666.7 7666.71.000 0.001
TEST17 0.33333 0.333331.000 1e-008
TEST18-0.0088889-0.00888891.000 1e-010
TEST19 0.0088889 0.00888891.000 1e-010
TEST20-0.0051111-0.00511111.000 1e-010
TEST21 0.0051111 0.00511111.000 1e-010
TEST22 0.33333 0.333331.000 1e-008
TEST23-0.0044444-0.00444441.000 1e-010
TEST24 0.0044444 0.00444441.000 1e-010
TEST25-0.0025556-0.00255561.000 1e-010
TEST26 0.0025556 0.00255561.000 1e-010


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