Harmonic Simulation#

In this script harmonic simulation is processed and complex results are used.

Perform required imports#

Perform required imports. # This example uses a supplied file that you can get by importing the DPF examples package.

from ansys.dpf import post
from ansys.dpf.post import examples

Get Simulation object#

Get the Simulation object that allows access to the result. The Simulation object must be instantiated with the path for the result file. For example, "C:/Users/user/my_result.rst" on Windows or "/home/user/my_result.rst" on Linux.

example_path = examples.download_harmonic_clamped_pipe()
simulation = post.load_simulation(example_path)

# for no autocompletion, this line is equivalent to:
simulation = post.HarmonicMechanicalSimulation(example_path)

# print the simulation to get an overview of what's available

print(simulation)
Harmonic Mechanical Simulation.


Data Sources
------------------------------
/opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/site-packages/ansys/dpf/core/examples/harmonic/clamped_pipe.rst

DPF Model
------------------------------
Msup analysis
Unit system: NMM: mm, ton, N, s, mA, degC
Physics Type: Mechanical
Available results:
     -  displacement: Nodal Displacement
     -  reaction_force: Nodal Force
     -  stress: ElementalNodal Stress
     -  elemental_volume: Elemental Volume
     -  stiffness_matrix_energy: Elemental Energy-stiffness matrix
     -  artificial_hourglass_energy: Elemental Hourglass Energy
     -  thermal_dissipation_energy: Elemental thermal dissipation energy
     -  kinetic_energy: Elemental Kinetic Energy
     -  co_energy: Elemental co-energy
     -  incremental_energy: Elemental incremental energy
     -  elastic_strain: ElementalNodal Strain
------------------------------
DPF  Meshed Region:
  9943 nodes
  5732 elements
  Unit: mm
  With solid (3D) elements, shell (2D) elements, shell (3D) elements
------------------------------
DPF  Time/Freq Support:
  Number of sets: 5
  With complex values

Cumulative     Frequency (Hz) LoadStep       Substep        RPM
1              2000.000000    1              1              0.000000
2              4000.000000    1              2              0.000000
3              6000.000000    1              3              0.000000
4              8000.000000    1              4              0.000000
5              10000.000000   1              5              0.000000

Extract displacement over a list of frequencies sets#

Printing the time freq support can help pick the right frequencies

print(simulation.time_freq_support)

displacement = simulation.displacement(set_ids=[1, 2])
print(displacement)

subdisp = displacement.select(complex=0, set_ids=1)
print(subdisp)
subdisp.plot(title="U tot real")

subdisp = displacement.select(complex=1, set_ids=1)
print(subdisp)
subdisp.plot(title="U tot imaginary")

subdisp = displacement.select(complex=0, set_ids=2)
print(subdisp)
subdisp.plot(title="U tot real")
  • 04 harmonic complex results
  • 04 harmonic complex results
  • 04 harmonic complex results
DPF  Time/Freq Support:
  Number of sets: 5
  With complex values

Cumulative     Frequency (Hz) LoadStep       Substep        RPM
1              2000.000000    1              1              0.000000
2              4000.000000    1              2              0.000000
3              6000.000000    1              3              0.000000
4              8000.000000    1              4              0.000000
5              10000.000000   1              5              0.000000


                 results           U
                 set_ids           1                       2
                 complex           0           1           0           1
    node_ids  components
        3548           X  9.3929e+01  0.0000e+00 -5.2330e+01  0.0000e+00
                       Y -4.3312e+02  0.0000e+00  1.8810e+02  0.0000e+00
                       Z  9.6172e-01  0.0000e+00 -1.3049e+01  0.0000e+00
        3656           X  1.0516e+02  0.0000e+00 -5.8461e+01  0.0000e+00
                       Y -4.6059e+02  0.0000e+00  2.0315e+02  0.0000e+00
                       Z  9.4728e-01  0.0000e+00 -1.3728e+01  0.0000e+00
         ...


                 results           U
                 set_ids           1
                 complex           0
    node_ids  components
        3548           X  9.3929e+01
                       Y -4.3312e+02
                       Z  9.6172e-01
        3656           X  1.0516e+02
                       Y -4.6059e+02
                       Z  9.4728e-01
         ...


                 results           U
                 set_ids           1
                 complex           1
    node_ids  components
        3548           X  0.0000e+00
                       Y  0.0000e+00
                       Z  0.0000e+00
        3656           X  0.0000e+00
                       Y  0.0000e+00
                       Z  0.0000e+00
         ...


                 results           U
                 set_ids           2
                 complex           0
    node_ids  components
        3548           X -5.2330e+01
                       Y  1.8810e+02
                       Z -1.3049e+01
        3656           X -5.8461e+01
                       Y  2.0315e+02
                       Z -1.3728e+01
         ...

Extract stress eqv over a list of frequencies sets#

stress_eqv = simulation.stress_eqv_von_mises_nodal(set_ids=[1, 2])
print(stress_eqv)

sub_eqv = stress_eqv.select(complex=0, set_ids=1)
print(sub_eqv)
sub_eqv.plot(title="S_eqv real")

sub_eqv = stress_eqv.select(complex=1, set_ids=1)
print(sub_eqv)
sub_eqv.plot(title="S_eqv imaginary")

sub_eqv = stress_eqv.select(complex=0, set_ids=2)
print(sub_eqv)
sub_eqv.plot(title="S_eqv real")
  • 04 harmonic complex results
  • 04 harmonic complex results
  • 04 harmonic complex results
 results           S
 set_ids           1                       2
 complex           0           1           0           1
node_ids
    3548  2.3945e+04  0.0000e+00  4.3578e+04  0.0000e+00
    3656  8.7565e+03  0.0000e+00  3.0708e+04  0.0000e+00
    4099  3.0310e+04  0.0000e+00  4.3383e+04  0.0000e+00
    3760  1.3355e+04  0.0000e+00  3.2525e+04  0.0000e+00
    3387  5.1281e+03  0.0000e+00  2.0660e+04  0.0000e+00
    3549  5.8202e+03  0.0000e+00  1.9550e+04  0.0000e+00
     ...


 results           S
 set_ids           1
 complex           0
node_ids
    3548  2.3945e+04
    3656  8.7565e+03
    4099  3.0310e+04
    3760  1.3355e+04
    3387  5.1281e+03
    3549  5.8202e+03
     ...


 results           S
 set_ids           1
 complex           1
node_ids
    3548  0.0000e+00
    3656  0.0000e+00
    4099  0.0000e+00
    3760  0.0000e+00
    3387  0.0000e+00
    3549  0.0000e+00
     ...


 results           S
 set_ids           2
 complex           0
node_ids
    3548  4.3578e+04
    3656  3.0708e+04
    4099  4.3383e+04
    3760  3.2525e+04
    3387  2.0660e+04
    3549  1.9550e+04
     ...

Total running time of the script: ( 0 minutes 6.133 seconds)

Gallery generated by Sphinx-Gallery