Coverage for local_installation/dynasor/units.py: 100%

8 statements  

« prev     ^ index     » next       coverage.py v7.3.2, created at 2024-09-27 15:43 +0000

1""" 

2Module containing convenient unit conversion factors, including 

3 

4* ``radians_per_fs_to_THz`` 

5* ``radians_per_fs_to_meV`` 

6* ``radians_per_fs_to_invcm`` 

7* ``THz_to_meV`` 

8* ``THz_to_invcm`` 

9* ``meV_to_invcm`` 

10 

11Here, for example, ``radians_per_fs_to_invcm`` can be used to convert an angular frequency in units 

12of radians/fs to a frequency in 1/cm, as demonstrated by the code snippet below. 

13 

14.. highlight:: python 

15.. code-block:: python 

16 

17 # converting the angular frequencies (omega) in a Sample object to frequencies in inverse cm 

18 from dynasor.units import radians_per_fs_to_invcm 

19 frequencies_invcm = sample.omega * radians_per_fs_to_invcm 

20 

21 # converting frequencies from inverse cm to meV 

22 from dynasor.units import meV_to_invcm 

23 frequencies_meV = frequencies_invcm / meV_to_invcm 

24 

25""" 

26from math import pi 

27from ase.units import _c, invcm 

28 

29# Frequencies 

30meV_to_invcm = 1 / invcm / 1e3 

31THz_to_invcm = 1e12 / _c / 1e2 

32THz_to_meV = 1e13 * invcm / _c 

33 

34# Angular frequencies 

35radians_per_fs_to_THz = 1000 / 2 / pi 

36radians_per_fs_to_meV = radians_per_fs_to_THz * THz_to_meV 

37radians_per_fs_to_invcm = radians_per_fs_to_THz * THz_to_invcm