Note
Go to the end to download the full example code.
Static Cyclic Analysis#
Run a static cyclic analysis of an example rotor sector using the imperial unit system at 1000 RPM.
from ansys.mapdl.reader import examples
from ansys.mapdl.core import launch_mapdl
# launch mapdl
mapdl = launch_mapdl()
Load in the mesh#
Load in the example sector and plot it.
mapdl.cdread("db", examples.sector_archive_file)
mapdl.eplot()
Make the rotor cyclic#
Enter the preprocessing routine and make the mesh cyclic.
mapdl.prep7()
mapdl.shpp("off")
mapdl.nummrg(label="NODE", toler=1e-3)
mapdl.cyclic()
USE EXISTING MODEL FOR CYCLIC SYMMETRY
******************************************************
****** COMPUTED QUANTITIES ***************************
******************************************************
* NUMBER OF SECTORS = 15 *
* SECTOR ANGLE = 24.000 *
* CYCLIC COORDINATE SYSTEM = 1 *
* EDGE COMPONENTS CONTAIN NODES *
* LOW EDGE COMPONENT = CYCLIC_M01L MATCHED *
* HIGH EDGE COMPONENT = CYCLIC_M01H *
* LOW EDGE COMPONENT = CYCLIC_M02L MATCHED *
* HIGH EDGE COMPONENT = CYCLIC_M02H *
******************************************************
Set material properties#
Units are in imperial units and the material is (approximately) structural steel.
mapdl.mp("NUXY", 1, 0.31)
mapdl.mp("DENS", 1, 4.1408e-04)
mapdl.mp("EX", 1, 16900000)
MATERIAL 1 EX = 0.1690000E+08
Apply boundary conditions#
Apply a cyclic rotation at 1000 RPM and constrain the rotor at the center.
mapdl.omega(0, 0, 1000) # 1000 RPM
mapdl.csys(1) # enter the cyclic coordinate system
mapdl.nsel("S", "loc", "x", 0, 0.71) # radial between 0.69 - 0.71
mapdl.d("ALL", "ALL") # all DOF for those 8 nodes
mapdl.allsel()
mapdl.csys(0) # return to cartesian coordinate system
ACTIVE COORDINATE SYSTEM SET TO 0 (CARTESIAN)
Run a static analysis#
Run the MAPDL solver and print the output of the solution.
mapdl.run("/SOLU")
mapdl.antype("STATIC")
output = mapdl.solve()
mapdl.finish()
print(output)
*** WARNING *** CP = 0.000 TIME= 00:00:00
The cyclic sector model contains volume and area element types. Please
verify the auto detected LOW and HIGH nodal edge component pairs
(CYCLIC command) for cyclic symmetry solution.
*** NOTE *** CP = 0.000 TIME= 00:00:00
There is no title defined for this analysis.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Element shape checking is currently inactive. Issue SHPP,ON or
SHPP,WARN to reactivate, if desired.
*** WARNING *** CP = 0.000 TIME= 00:00:00
SOLID185 wedges are recommended only in regions of relatively low
stress gradients.
*** NOTE *** CP = 0.000 TIME= 00:00:00
The model data was checked and warning messages were found.
Please review output or errors file ( ) for these warning messages.
GENERATE CYCLIC SYMMETRY CONSTRAINT EQUATIONS
NUMBER OF CONSTRAINT EQUATIONS GENERATED= 102
(USING THE MATCHED NODES ALGORITHM -- MAX NODE LOCATION ERROR NEAR ZERO)
***** MAPDL SOLVE COMMAND *****
*** SELECTION OF ELEMENT TECHNOLOGIES FOR APPLICABLE ELEMENTS ***
---GIVE SUGGESTIONS ONLY---
ELEMENT TYPE 2 IS SOLID185. IT IS ASSOCIATED WITH LINEAR MATERIALS ONLY
AND POISSON'S RATIO IS NOT GREATER THAN 0.49. KEYOPT(2)=3 IS SUGGESTED.
*****MAPDL VERIFICATION RUN ONLY*****
DO NOT USE RESULTS FOR PRODUCTION
S O L U T I O N O P T I O N S
PROBLEM DIMENSIONALITY. . . . . . . . . . . . .3-D
CYCLIC SYMMETRY SECTOR ANGLE. . . . . . . . . . 24.000 DEGREES
DEGREES OF FREEDOM. . . . . . UX UY UZ
ANALYSIS TYPE . . . . . . . . . . . . . . . . .STATIC (STEADY-STATE)
GLOBALLY ASSEMBLED MATRIX . . . . . . . . . . .SYMMETRIC
*** NOTE *** CP = 0.000 TIME= 00:00:00
Present time 0 is less than or equal to the previous time. Time will
default to 1.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UX at unused node 31.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UY at unused node 31.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UZ at unused node 31.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UX at unused node 33.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UY at unused node 33.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UZ at unused node 33.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UX at unused node 35.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UY at unused node 35.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UZ at unused node 35.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UX at unused node 37.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UY at unused node 37.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UZ at unused node 37.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UX at unused node 58.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UY at unused node 58.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UZ at unused node 58.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UX at unused node 59.
*** WARNING *** CP = 0.000 TIME= 00:00:00
Specified degree of freedom constraint UY at unused node 59.
************************************************************************
The number of ERROR and WARNING messages exceeds 20.
Additional messages suppressed. See ( ) for suppressed messages.
************************************************************************
*** NOTE *** CP = 0.000 TIME= 00:00:00
The step data was checked and warning messages were found.
Please review output or errors file ( ) for these warning messages.
*** NOTE *** CP = 0.000 TIME= 00:00:00
The conditions for direct assembly have been met. No .emat or .erot
files will be produced.
D I S T R I B U T E D D O M A I N D E C O M P O S E R
...Number of elements: 105
...Number of nodes: 678
...Decompose to 0 CPU domains
...Element load balance ratio = 0.000
L O A D S T E P O P T I O N S
LOAD STEP NUMBER. . . . . . . . . . . . . . . . 1
CYCLIC SYMMETRY HARMONIC INDEX. . . . . . . . . 0
TIME AT END OF THE LOAD STEP. . . . . . . . . . 1.0000
NUMBER OF SUBSTEPS. . . . . . . . . . . . . . . 1
STEP CHANGE BOUNDARY CONDITIONS . . . . . . . . NO
INERTIA LOADS X Y Z
OMEGA. . . . . . . . . . . . 0.0000 0.0000 1000.0
PRINT OUTPUT CONTROLS . . . . . . . . . . . . .NO PRINTOUT
DATABASE OUTPUT CONTROLS. . . . . . . . . . . .ALL DATA WRITTEN
FOR THE LAST SUBSTEP
**** CENTER OF MASS, MASS, AND MASS MOMENTS OF INERTIA ****
CALCULATIONS ASSUME ELEMENT MASS AT ELEMENT CENTROID
TOTAL MASS = 0.56778E-04
MOM. OF INERTIA MOM. OF INERTIA
CENTER OF MASS ABOUT ORIGIN ABOUT CENTER OF MASS
XC = -0.46671 IXX = 0.7738E-04 IXX = 0.5872E-05
YC = -1.0376 IYY = 0.2744E-04 IYY = 0.4694E-05
ZC = -0.42760 IZZ = 0.8087E-04 IZZ = 0.7379E-05
IXY = -0.2923E-04 IXY = -0.1734E-05
IYZ = -0.2474E-04 IYZ = 0.4481E-06
IZX = -0.1290E-04 IZX = -0.1567E-05
*** MASS SUMMARY BY ELEMENT TYPE ***
TYPE MASS
2 0.567777E-04
Range of element maximum matrix coefficients in global coordinates
Maximum = 3710503.22 at element 0.
Minimum = 117780.539 at element 0.
*** ELEMENT MATRIX FORMULATION TIMES
TYPE NUMBER ENAME TOTAL CP AVE CP
2 210 SOLID185 0.000 0.000000
Time at end of element matrix formulation CP = 0.
DISTRIBUTED SPARSE MATRIX DIRECT SOLVER.
Number of equations = 1008, Maximum wavefront = 0
Memory available (MB) = 0.0 , Memory required (MB) = 0.0
Distributed sparse solver maximum pivot= 0 at node 0 .
Distributed sparse solver minimum pivot= 0 at node 0 .
Distributed sparse solver minimum pivot in absolute value= 0 at node 0
.
*** ELEMENT RESULT CALCULATION TIMES
TYPE NUMBER ENAME TOTAL CP AVE CP
2 210 SOLID185 0.000 0.000000
*** NODAL LOAD CALCULATION TIMES
TYPE NUMBER ENAME TOTAL CP AVE CP
2 210 SOLID185 0.000 0.000000
*** LOAD STEP 1 SUBSTEP 1 COMPLETED. CUM ITER = 1
*** TIME = 1.00000 TIME INC = 1.00000 NEW TRIANG MATRIX
Plot the cyclic result#
Plot the result using the legacy
mapdl.result.plot_nodal_displacement(0)
Exit MAPDL#
Finally, exit MAPDL.
mapdl.exit()
Total running time of the script: (0 minutes 2.080 seconds)