Spaces:
Sleeping
Sleeping
| """Constants (like hbar) related to quantum mechanics.""" | |
| from sympy.core.numbers import NumberSymbol | |
| from sympy.core.singleton import Singleton | |
| from sympy.printing.pretty.stringpict import prettyForm | |
| import mpmath.libmp as mlib | |
| #----------------------------------------------------------------------------- | |
| # Constants | |
| #----------------------------------------------------------------------------- | |
| __all__ = [ | |
| 'hbar', | |
| 'HBar', | |
| ] | |
| class HBar(NumberSymbol, metaclass=Singleton): | |
| """Reduced Plank's constant in numerical and symbolic form [1]_. | |
| Examples | |
| ======== | |
| >>> from sympy.physics.quantum.constants import hbar | |
| >>> hbar.evalf() | |
| 1.05457162000000e-34 | |
| References | |
| ========== | |
| .. [1] https://en.wikipedia.org/wiki/Planck_constant | |
| """ | |
| is_real = True | |
| is_positive = True | |
| is_negative = False | |
| is_irrational = True | |
| __slots__ = () | |
| def _as_mpf_val(self, prec): | |
| return mlib.from_float(1.05457162e-34, prec) | |
| def _sympyrepr(self, printer, *args): | |
| return 'HBar()' | |
| def _sympystr(self, printer, *args): | |
| return 'hbar' | |
| def _pretty(self, printer, *args): | |
| if printer._use_unicode: | |
| return prettyForm('\N{PLANCK CONSTANT OVER TWO PI}') | |
| return prettyForm('hbar') | |
| def _latex(self, printer, *args): | |
| return r'\hbar' | |
| # Create an instance for everyone to use. | |
| hbar = HBar() | |