Supernode eigensolver
The Supernode eigensolver, introduced at ANSYS 12.0.1, can be an efficient way of solving many modes for very large models. To use this eigensolver, issue MODOPT,SNODE with additional arguments of the number of modes and frequency range. Fine-tuning of supernode-specific parameters can be achieved with the SNOPTION command.
A very simplified way of viewing how the supernode eigensolver works is that it breaks up the mesh into groups of nodes (called “supernodes”) and calculates the eigenvalues for each supernode. The modes for the entire model are then calculated by “combining” the modes of each supernode. This concept may be viewed akin to component mode synthesis (CMS).
One must keep in mind that the Supernode eigensolver in an approximate solver. The lower-frequency range will be captured very well, but there may be some slight deviation in the higher-frequency range. Also, the Supernode eigensolver requires that the user specify the frequency range beforehand, so specifying the desired number of modes alone is not sufficient. Modes for each supernode are calculated first (twice the max frequency range by default), so this is why a frequency range needs to be specified.
A model comprising of approximately 100 parts for a total of 1.3 million degrees of freedom (DOF) was solved on a 2.2 GHz AMD64 PC with 4 GB of RAM using the Block Lanczos eigensolver for 1,000 modes utilizing a single core (processor). Because of the limited amount of RAM, the solution was performed in out-of-core mode (total of 2 GB of RAM was used). The total solution time was 13.4 hours, with about 40% of that time being CPU time. The first mode was calculated to be 303.5 Hz, the last being 110.813 kHz.
The Supernode eigensolver was used on the same PC using 1 core for the model. Total elapsed time was 1.3 hours, or 1/10 of the time compared with the Block Lanczos method. CPU time was 75% of this total elapsed time, and 2.5 GB of RAM was used. The first mode was also 303.5 Hz with the last mode (1,000th mode) being 115.836 kHz (4.5% difference). This relates well with the guidelines on the Supernode eigensolver in the Theory Reference, where it is noted that modes above 1 kHz may be in 3-5% error range.
The SNOPTION command can be used to increase the frequency range of the calculated supernode eigenvalues. If 3 times the max frequency was used (default is twice the max frequency), the total solution time was increased slightly to 1.34 hours although memory usage was the same. The 1,000th mode was 112.729 kHz, or only 1.7% off.
As indicated above, for this model, the Supernode eigensolver was ten times faster than the Block Lanczos eigensolver. This difference is pronounced because of the fact that the direct sparse solver solved in out-of-core mode, along with the large number of modes (1,000) requested. The percent error for higher modes was 4.5%, but it decreased to 1.7% by specifying a greater frequency range for the supernode eigenvalue calculation.
The user should keep in mind that the Supernode solver is not always going to be faster than the Block Lanczos method. For example, small- or medium-sized models with fewer number of modes may be slower with the Supernode eigensolver because of the overhead related to solving the modes on supernodes first. Also, when using the Supernode eigensolver, the modal information on the supernodes is saved to disk in the jobname.snode file, thus increasing final disk space requirements.
The Supernode eigensolver does not require a “Mechanical HPC” license to run, so it can be used with “ANSYS Professional” licenses and above. The Supernode eigensolver runs in parallel, so it can use 2 or more cores (additional cores beyond 2 will require the “Mechanical HPC” license just like any other ANSYS equation solver, however).
Comments are closed.