Source code for galpy.actionAngle.actionAngleInverse
###############################################################################
# actionAngleInverse.py: top-level class with common routines for inverse
# actionAngle methods
###############################################################################
from galpy.util.conversion import actionAngleInverse_physical_input, \
physical_conversion_actionAngleInverse
from .actionAngle import actionAngle
class actionAngleInverse(actionAngle):
"""actionAngleInverse; top-level class with common routines for inverse actionAngle methods"""
def __init__(self,*args,**kwargs):
actionAngle.__init__(self,
ro=kwargs.get('ro',None),vo=kwargs.get('vo',None))
[docs] @actionAngleInverse_physical_input
@physical_conversion_actionAngleInverse('__call__',pop=True)
def __call__(self,*args,**kwargs):
"""
NAME:
evaluate the phase-space coordinates (x,v) for a number of angles on a single torus
INPUT:
jr - radial action (scalar)
jphi - azimuthal action (scalar)
jz - vertical action (scalar)
angler - radial angle (array [N])
anglephi - azimuthal angle (array [N])
anglez - vertical angle (array [N])
Some sub-classes (like actionAngleTorus) have additional parameters:
actionAngleTorus:
tol= (object-wide value) goal for |dJ|/|J| along the torus
OUTPUT:
[R,vR,vT,z,vz,phi]
HISTORY:
2017-11-14 - Written - Bovy (UofT)
"""
try:
return self._evaluate(*args,**kwargs)
except AttributeError: #pragma: no cover
raise NotImplementedError("'__call__' method not implemented for this actionAngle module")
[docs] @actionAngleInverse_physical_input
@physical_conversion_actionAngleInverse('xvFreqs',pop=True)
def xvFreqs(self,*args,**kwargs):
"""
NAME:
xvFreqs
PURPOSE:
evaluate the phase-space coordinates (x,v) for a number of angles on a single torus as well as the frequencies
INPUT:
jr - radial action (scalar)
jphi - azimuthal action (scalar)
jz - vertical action (scalar)
angler - radial angle (array [N])
anglephi - azimuthal angle (array [N])
anglez - vertical angle (array [N])
OUTPUT:
([R,vR,vT,z,vz,phi],OmegaR,Omegaphi,Omegaz)
HISTORY:
2017-11-15 - Written - Bovy (UofT)
"""
try:
return self._xvFreqs(*args,**kwargs)
except AttributeError: #pragma: no cover
raise NotImplementedError("'xvFreqs' method not implemented for this actionAngle module")
[docs] @actionAngleInverse_physical_input
@physical_conversion_actionAngleInverse('Freqs',pop=True)
def Freqs(self,*args,**kwargs):
"""
NAME:
Freqs
PURPOSE:
return the frequencies corresponding to a torus
INPUT:
jr - radial action (scalar)
jphi - azimuthal action (scalar)
jz - vertical action (scalar)
OUTPUT:
(OmegaR,Omegaphi,Omegaz)
HISTORY:
2017-11-15 - Written - Bovy (UofT)
"""
try:
return self._Freqs(*args,**kwargs)
except AttributeError: #pragma: no cover
raise NotImplementedError("'Freqs' method not implemented for this actionAngle module")