CFVR0834 - Combination module test with CivilFEM results
Example to check the combinations utility
This example checks the functionality of the combinations module.
It checks the following:
- Results handle on SHELL63 elements.
- Date handle with unsorted numeration (elements, load steps...)
The load cases are:
- Load Step 1, Sub Step 1: Imposed vertical movement on the middle point of one side (node 50) of 1 meter.
- Load Step 2, Sub Step 1: Imposed horizontal movement on the middle point of one side (node 50) of 1 meter (Y direction).
- Target 45; Maximum Axial force in the Y direction TY
- Combination rule 10: ADDITION: H1+H2
Element types used in the model: SHELL63 Needed CivilFEM Modules: |
|
| Model Statistics | |
| Number of elements | 2 |
| Number of nodes | 6 |
| Number of civil materials | 1 |
| Number of cross sections | 0 |
| Number of shell vertices | 1 |
Log file: CFVR0834.DAT
FINISH ~CFCLEAR,,1 AnsLic='ansys' NomFile='CFVR0834' /TITLE, %NomFile%, Combination module test SHELL63 ! --------------------------------------------------------------------------------- ! Model definition and solve ! --------------------------------------------------------------------------------- ! Setup ~CFCONFG,PLRES ,SHELL ,EPSW ! Preprocessor /PREP7 ! Materials ~CFMP,5,LIB,CONCRETE,EC2,C20/25 ! Sections ~SHLRNF,10,0.3,5,0,0,0,0,0,0,0,0,45.0 ! Beam Property ~BMSHPRO,10,SHELL,10,10,10,10,63 ! Element types ET,2,SHELL63 ! Nodes N,10,0.0,0.0 N,20,1.0,0.0 N,30,2.0,0.0 N,40,0.0,1.5 N,50,1.0,1.5 N,60,2.0,1.5 ! Elements MAT,5 REAL,10 TYPE,2 EN,100, 10, 20, 50, 40 EN,200, 20, 30, 60, 50 ! Boundary conditions D,ALL,ALL,0.0 ! Initial hypothesis solve /SOLU ! Hypothesis 1: /TITLE, Hypothesis 1 OUTRES,ALL,ALL D,50,UZ,0.1 SOLVE D,50,UZ,0.0 ! Hypothesis 2: /TITLE, Hypothesis 2 OUTRES,ALL,ALL D,50,UY,0.1 SOLVE D,50,UY,0.0 /POST1 ! --------------------------------------------------------------------------------- ! Read correct data from simple hypothesis ! --------------------------------------------------------------------------------- Dat=30 ! Number of data to check RES= *DIM,RES,,Dat,2 ! Load data of each simple hypothesis ESEL,S,ELEM,,100 ! Hypothesis 1 ~CFSET,,1,1 ~PLSHFOR,TX *GET,RES( 1,1),NODE,20,EPSW ~PLSHFOR,TY *GET,RES( 2,1),NODE,20,EPSW ~PLSHFOR,TXY *GET,RES( 3,1),NODE,20,EPSW ~PLSHFOR,MX *GET,RES( 4,1),NODE,20,EPSW ~PLSHFOR,MY *GET,RES( 5,1),NODE,20,EPSW ~PLSHFOR,MXY *GET,RES( 6,1),NODE,20,EPSW SHELL,TOP ~PLSHSTR,SX *GET,RES( 7,1),NODE,20,EPSW ~PLSHSTR,SY *GET,RES( 8,1),NODE,20,EPSW ~PLSHSTR,SZ *GET,RES( 9,1),NODE,20,EPSW ~PLSHSTR,SXY *GET,RES(10,1),NODE,20,EPSW ~PLSHSTR,SYZ *GET,RES(11,1),NODE,20,EPSW ~PLSHSTR,SXZ *GET,RES(12,1),NODE,20,EPSW ~PLSHSTR,EPX *GET,RES(13,1),NODE,20,EPSW ~PLSHSTR,EPY *GET,RES(14,1),NODE,20,EPSW ~PLSHSTR,EPZ *GET,RES(15,1),NODE,20,EPSW ~PLSHSTR,EPXY *GET,RES(16,1),NODE,20,EPSW ~PLSHSTR,EPYZ *GET,RES(17,1),NODE,20,EPSW ~PLSHSTR,EPZX *GET,RES(18,1),NODE,20,EPSW SHELL,BOT ~PLSHSTR,SX *GET,RES(19,1),NODE,20,EPSW ~PLSHSTR,SY *GET,RES(20,1),NODE,20,EPSW ~PLSHSTR,SZ *GET,RES(21,1),NODE,20,EPSW ~PLSHSTR,SXY *GET,RES(22,1),NODE,20,EPSW ~PLSHSTR,SYZ *GET,RES(23,1),NODE,20,EPSW ~PLSHSTR,SXZ *GET,RES(24,1),NODE,20,EPSW ~PLSHSTR,EPX *GET,RES(25,1),NODE,20,EPSW ~PLSHSTR,EPY *GET,RES(26,1),NODE,20,EPSW ~PLSHSTR,EPZ *GET,RES(27,1),NODE,20,EPSW ~PLSHSTR,EPXY *GET,RES(28,1),NODE,20,EPSW ~PLSHSTR,EPYZ *GET,RES(29,1),NODE,20,EPSW ~PLSHSTR,EPZX *GET,RES(30,1),NODE,20,EPSW ESEL,ALL ! Hypothesis 2 ESEL,S,ELEM,,100 ~CFSET,,2,1 ~PLSHFOR,TX *GET,RES( 1,2),NODE,20,EPSW ~PLSHFOR,TY *GET,RES( 2,2),NODE,20,EPSW ~PLSHFOR,TXY *GET,RES( 3,2),NODE,20,EPSW ~PLSHFOR,MX *GET,RES( 4,2),NODE,20,EPSW ~PLSHFOR,MY *GET,RES( 5,2),NODE,20,EPSW ~PLSHFOR,MXY *GET,RES( 6,2),NODE,20,EPSW SHELL,TOP ~PLSHSTR,SX *GET,RES( 7,2),NODE,20,EPSW ~PLSHSTR,SY *GET,RES( 8,2),NODE,20,EPSW ~PLSHSTR,SZ *GET,RES( 9,2),NODE,20,EPSW ~PLSHSTR,SXY *GET,RES(10,2),NODE,20,EPSW ~PLSHSTR,SYZ *GET,RES(11,2),NODE,20,EPSW ~PLSHSTR,SXZ *GET,RES(12,2),NODE,20,EPSW ~PLSHSTR,EPX *GET,RES(13,2),NODE,20,EPSW ~PLSHSTR,EPY *GET,RES(14,2),NODE,20,EPSW ~PLSHSTR,EPZ *GET,RES(15,2),NODE,20,EPSW ~PLSHSTR,EPXY *GET,RES(16,2),NODE,20,EPSW ~PLSHSTR,EPYZ *GET,RES(17,2),NODE,20,EPSW ~PLSHSTR,EPZX *GET,RES(18,2),NODE,20,EPSW SHELL,BOT ~PLSHSTR,SX *GET,RES(19,2),NODE,20,EPSW ~PLSHSTR,SY *GET,RES(20,2),NODE,20,EPSW ~PLSHSTR,SZ *GET,RES(21,2),NODE,20,EPSW ~PLSHSTR,SXY *GET,RES(22,2),NODE,20,EPSW ~PLSHSTR,SYZ *GET,RES(23,2),NODE,20,EPSW ~PLSHSTR,SXZ *GET,RES(24,2),NODE,20,EPSW ~PLSHSTR,EPX *GET,RES(25,2),NODE,20,EPSW ~PLSHSTR,EPY *GET,RES(26,2),NODE,20,EPSW ~PLSHSTR,EPZ *GET,RES(27,2),NODE,20,EPSW ~PLSHSTR,EPXY *GET,RES(28,2),NODE,20,EPSW ~PLSHSTR,EPYZ *GET,RES(29,2),NODE,20,EPSW ~PLSHSTR,EPZX *GET,RES(30,2),NODE,20,EPSW ESEL,ALL ! --------------------------------------------------------------------------------- ! Definition and solving of combinations ! --------------------------------------------------------------------------------- ! Reset combinations module ~CMBCLR ! Targets definition ~TRGDEF,45,VERTX,T,Y,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 comparison number NComp = 30 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 ! 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 !-------------------------------------------------------------------------------------- ~CMBDAT,2 ~CFSET,,10,45 ESEL,S,ELEM,,100 ~PLSHFOR,TX *GET,VALUE( 1,2),NODE,20,EPSW ~PLSHFOR,TY *GET,VALUE( 2,2),NODE,20,EPSW ~PLSHFOR,TXY *GET,VALUE( 3,2),NODE,20,EPSW ~PLSHFOR,MX *GET,VALUE( 4,2),NODE,20,EPSW ~PLSHFOR,MY *GET,VALUE( 5,2),NODE,20,EPSW ~PLSHFOR,MXY *GET,VALUE( 6,2),NODE,20,EPSW SHELL,TOP ~PLSHSTR,SX *GET,VALUE( 7,2),NODE,20,EPSW ~PLSHSTR,SY *GET,VALUE( 8,2),NODE,20,EPSW ~PLSHSTR,SZ *GET,VALUE( 9,2),NODE,20,EPSW ~PLSHSTR,SXY *GET,VALUE(10,2),NODE,20,EPSW ~PLSHSTR,SYZ *GET,VALUE(11,2),NODE,20,EPSW ~PLSHSTR,SXZ *GET,VALUE(12,2),NODE,20,EPSW ~PLSHSTR,EPX *GET,VALUE(13,2),NODE,20,EPSW ~PLSHSTR,EPY *GET,VALUE(14,2),NODE,20,EPSW ~PLSHSTR,EPZ *GET,VALUE(15,2),NODE,20,EPSW ~PLSHSTR,EPXY *GET,VALUE(16,2),NODE,20,EPSW ~PLSHSTR,EPYZ *GET,VALUE(17,2),NODE,20,EPSW ~PLSHSTR,EPZX *GET,VALUE(18,2),NODE,20,EPSW SHELL,BOT ~PLSHSTR,SX *GET,VALUE(19,2),NODE,20,EPSW ~PLSHSTR,SY *GET,VALUE(20,2),NODE,20,EPSW ~PLSHSTR,SZ *GET,VALUE(21,2),NODE,20,EPSW ~PLSHSTR,SXY *GET,VALUE(22,2),NODE,20,EPSW ~PLSHSTR,SYZ *GET,VALUE(23,2),NODE,20,EPSW ~PLSHSTR,SXZ *GET,VALUE(24,2),NODE,20,EPSW ~PLSHSTR,EPX *GET,VALUE(25,2),NODE,20,EPSW ~PLSHSTR,EPY *GET,VALUE(26,2),NODE,20,EPSW ~PLSHSTR,EPZ *GET,VALUE(27,2),NODE,20,EPSW ~PLSHSTR,EPXY *GET,VALUE(28,2),NODE,20,EPSW ~PLSHSTR,EPYZ *GET,VALUE(29,2),NODE,20,EPSW ~PLSHSTR,EPZX *GET,VALUE(30,2),NODE,20,EPSW ESEL,ALL ! Warning and error tolerances TOLER( 1, 1)= 1E-03 $ TOLER( 1, 2)= 1E-02 TOLER( 2, 1)= 1E-02 $ TOLER( 2, 2)= 1E-01 TOLER( 3, 1)= 1E-03 $ TOLER( 3, 2)= 1E-02 TOLER( 4, 1)= 1E-22 $ TOLER( 4, 2)= 1E-21 TOLER( 5, 1)= 1E-23 $ TOLER( 5, 2)= 1E-22 TOLER( 6, 1)= 1E-05 $ TOLER( 6, 2)= 1E-04 TOLER( 7, 1)= 1E-03 $ TOLER( 7, 2)= 1E-02 TOLER( 8, 1)= 1E-01 $ TOLER( 8, 2)= 1E-00 TOLER( 9, 1)= 1E-15 $ TOLER( 9, 2)= 1E-14 TOLER(10, 1)= 1E-00 $ TOLER(10, 2)= 1E-00 TOLER(11, 1)= 1E-04 $ TOLER(11, 2)= 1E-03 TOLER(12, 1)= 1E-15 $ TOLER(12, 2)= 1E-14 TOLER(13, 1)= 1E-09 $ TOLER(13, 2)= 1E-08 TOLER(14, 1)= 1E-09 $ TOLER(14, 2)= 1E-08 TOLER(15, 1)= 1E-09 $ TOLER(15, 2)= 1E-08 TOLER(16, 1)= 1E-15 $ TOLER(16, 2)= 1E-14 TOLER(17, 1)= 1E-15 $ TOLER(17, 2)= 1E-14 TOLER(18, 1)= 1E-15 $ TOLER(18, 2)= 1E-14 TOLER(19, 1)= 1E-02 $ TOLER(19, 2)= 1E-01 TOLER(20, 1)= 1E-01 $ TOLER(20, 2)= 1E-00 TOLER(21, 1)= 1E-15 $ TOLER(21, 2)= 1E-14 TOLER(22, 1)= 1E-05 $ TOLER(22, 2)= 1E-04 TOLER(23, 1)= 1E-15 $ TOLER(23, 2)= 1E-14 TOLER(24, 1)= 1E-15 $ TOLER(24, 2)= 1E-14 TOLER(25, 1)= 1E-09 $ TOLER(25, 2)= 1E-08 TOLER(26, 1)= 1E-09 $ TOLER(26, 2)= 1E-08 TOLER(27, 1)= 1E-09 $ TOLER(27, 2)= 1E-08 TOLER(28, 1)= 1E-15 $ TOLER(28, 2)= 1E-14 TOLER(29, 1)= 1E-15 $ TOLER(29, 2)= 1E-14 TOLER(30, 1)= 1E-15 $ TOLER(30, 2)= 1E-14 !-------------------------------------------------------------------------------------- ! Results comparison !-------------------------------------------------------------------------------------- COMPARA.MAC |
Results
| Label | Target | CivilFEM | Ratio | Tolerance |
| TEST1 | 0 | 0 | 0.000 | 0.01 |
| TEST2 | 0 | 0 | 0.000 | 0.1 |
| TEST3 | 0 | 0 | 0.000 | 0.01 |
| TEST4 | 0 | 0 | 0.000 | 1e-021 |
| TEST5 | 0 | 0 | 0.000 | 1e-022 |
| TEST6 | 0 | 0 | 0.000 | 0.0001 |
| TEST7 | -6.9973e+008 | -6.9973e+008 | 1.000 | 0.01 |
| TEST8 | 6.7632e+008 | 6.7632e+008 | 1.000 | 1 |
| TEST9 | 0 | 0 | 0.000 | 1e-014 |
| TEST10 | 4.4655e+008 | 4.4655e+008 | 1.000 | 1 |
| TEST11 | 0 | 0 | 0.000 | 0.001 |
| TEST12 | 0 | 0 | 0.000 | 1e-014 |
| TEST13 | -0.027869 | -0.027869 | 1.000 | 1e-008 |
| TEST14 | 0.027244 | 0.027244 | 1.000 | 1e-008 |
| TEST15 | 0.00015625 | 0.00015625 | 1.000 | 1e-008 |
| TEST16 | 0.035769 | 0.035769 | 1.000 | 1e-014 |
| TEST17 | 0 | 0 | 0.000 | 1e-014 |
| TEST18 | 0 | 0 | 0.000 | 1e-014 |
| TEST19 | -6.9973e+008 | -6.9973e+008 | 1.000 | 0.1 |
| TEST20 | 6.7632e+008 | 6.7632e+008 | 1.000 | 1 |
| TEST21 | 0 | 0 | 0.000 | 1e-014 |
| TEST22 | 4.4655e+008 | 4.4655e+008 | 1.000 | 0.0001 |
| TEST23 | 0 | 0 | 0.000 | 1e-014 |
| TEST24 | 0 | 0 | 0.000 | 1e-014 |
| TEST25 | -0.027869 | -0.027869 | 1.000 | 1e-008 |
| TEST26 | 0.027244 | 0.027244 | 1.000 | 1e-008 |
| TEST27 | 0.00015625 | 0.00015625 | 1.000 | 1e-008 |
| TEST28 | 0.035769 | 0.035769 | 1.000 | 1e-014 |
| TEST29 | 0 | 0 | 0.000 | 1e-014 |
| TEST30 | 0 | 0 | 0.000 | 1e-014 |
Contains proprietary and confidential information of Ingeciber, S.A.

