Пример #1
0
    def __init__(self,K=1.15,F=0.03,D=1.8,amp=1.):
        """
        NAME:

           __init__

        PURPOSE:

           Initialize a KGPotential

        INPUT:

           K= K parameter

           F= F parameter

           D= D parameter

           amp - an overall amplitude

        OUTPUT:

           instance

        HISTORY:

           2010-07-12 - Written - Bovy (NYU)

        """
        linearPotential.__init__(self,amp=amp)
        self._K= K
        self._F= F
        self._D= D
        self._D2= self._D**2.
Пример #2
0
    def __init__(self, K=1.15, F=0.03, D=1.8, amp=1.):
        """
        NAME:

           __init__

        PURPOSE:

           Initialize a KGPotential

        INPUT:

           K= K parameter

           F= F parameter

           D= D parameter

           amp - an overall amplitude

        OUTPUT:

           instance

        HISTORY:

           2010-07-12 - Written - Bovy (NYU)

        """
        linearPotential.__init__(self, amp=amp)
        self._K = K
        self._F = F
        self._D = D
        self._D2 = self._D**2.
Пример #3
0
    def __init__(self,K=1.15,F=0.03,D=1.8,amp=1.,ro=None,vo=None):
        """
        NAME:

           __init__

        PURPOSE:

           Initialize a KGPotential

        INPUT:

           K= K parameter (= :math:`2\\pi \\Sigma_{\\mathrm{disk}}`; specify either as surface density or directly as force [i.e., including :math:`2\\pi G`]; can be Quantity)

           F= F parameter (= :math:`4\\pi\\rho_{\\mathrm{halo}}`; specify either as density or directly as second potential derivative [i.e., including :math:`4\\pi G`]; can be Quantity)

           D= D parameter (natural units or Quantity length units)

           amp - an overall amplitude

        OUTPUT:

           instance

        HISTORY:

           2010-07-12 - Written - Bovy (NYU)

        """
        linearPotential.__init__(self,amp=amp,ro=ro,vo=vo)
        if _APY_LOADED and isinstance(D,units.Quantity):
            D= D.to(units.kpc).value/self._ro
        if _APY_LOADED and isinstance(K,units.Quantity):
            try:
                K= K.to(units.pc/units.Myr**2).value\
                    /bovy_conversion.force_in_pcMyr2(self._vo,self._ro)
            except units.UnitConversionError: pass
        if _APY_LOADED and isinstance(K,units.Quantity):
            try:
                K= K.to(units.Msun/units.pc**2).value\
                    /bovy_conversion.force_in_2piGmsolpc2(self._vo,self._ro)
            except units.UnitConversionError:
                raise units.UnitConversionError("Units for K not understood; should be force or surface density")
        if _APY_LOADED and isinstance(F,units.Quantity):
            try:
                F= F.to(units.Msun/units.pc**3).value\
                    /bovy_conversion.dens_in_msolpc3(self._vo,self._ro)*4.*sc.pi
            except units.UnitConversionError: pass
        if _APY_LOADED and isinstance(F,units.Quantity):
            try:
                F= F.to(units.km**2/units.s**2/units.kpc**2).value\
                    *ro**2/vo**2
            except units.UnitConversionError:
                raise units.UnitConversionError("Units for F not understood; should be density")
        self._K= K
        self._F= F
        self._D= D
        self._D2= self._D**2.
Пример #4
0
 def __init__(self, RZPot, R=1.):
     """
     NAME:
        __init__
     PURPOSE:
        Initialize
     INPUT:
        RZPot - RZPotential instance
        R  - Galactocentric radius at which to create the vertical potential
     OUTPUT:
        verticalPotential instance
     HISTORY:
        2010-07-13 - Written - Bovy (NYU)
     """
     linearPotential.__init__(self, amp=1.)
     self._RZPot = RZPot
     self._R = R
     return None
Пример #5
0
 def __init__(self,RZPot,R=1.):
     """
     NAME:
        __init__
     PURPOSE:
        Initialize
     INPUT:
        RZPot - RZPotential instance
        R  - Galactocentric radius at which to create the vertical potential
     OUTPUT:
        verticalPotential instance
     HISTORY:
        2010-07-13 - Written - Bovy (NYU)
     """
     linearPotential.__init__(self,amp=1.)
     self._RZPot= RZPot
     self._R= R
     return None
Пример #6
0
    def __init__(self, K=1.15, F=0.03, D=1.8, amp=1., ro=None, vo=None):
        """
        NAME:

           __init__

        PURPOSE:

           Initialize a KGPotential

        INPUT:

           K= K parameter (= :math:`2\\pi \\Sigma_{\\mathrm{disk}}`; specify either as surface density or directly as force [i.e., including :math:`2\\pi G`]; can be Quantity)

           F= F parameter (= :math:`4\\pi\\rho_{\\mathrm{halo}}`; specify either as density or directly as second potential derivative [i.e., including :math:`4\\pi G`]; can be Quantity)

           D= D parameter (natural units or Quantity length units)

           amp - an overall amplitude

        OUTPUT:

           instance

        HISTORY:

           2010-07-12 - Written - Bovy (NYU)

        """
        linearPotential.__init__(self, amp=amp, ro=ro, vo=vo)
        if _APY_LOADED and isinstance(D, units.Quantity):
            D = D.to(units.kpc).value / self._ro
        if _APY_LOADED and isinstance(K, units.Quantity):
            try:
                K= K.to(units.pc/units.Myr**2).value\
                    /bovy_conversion.force_in_pcMyr2(self._vo,self._ro)
            except units.UnitConversionError:
                pass
        if _APY_LOADED and isinstance(K, units.Quantity):
            try:
                K= K.to(units.Msun/units.pc**2).value\
                    /bovy_conversion.force_in_2piGmsolpc2(self._vo,self._ro)
            except units.UnitConversionError:
                raise units.UnitConversionError(
                    "Units for K not understood; should be force or surface density"
                )
        if _APY_LOADED and isinstance(F, units.Quantity):
            try:
                F= F.to(units.Msun/units.pc**3).value\
                    /bovy_conversion.dens_in_msolpc3(self._vo,self._ro)*4.*sc.pi
            except units.UnitConversionError:
                pass
        if _APY_LOADED and isinstance(F, units.Quantity):
            try:
                F= F.to(units.km**2/units.s**2/units.kpc**2).value\
                    *ro**2/vo**2
            except units.UnitConversionError:
                raise units.UnitConversionError(
                    "Units for F not understood; should be density")
        self._K = K
        self._F = F
        self._D = D
        self._D2 = self._D**2.