1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- """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()
|