-
Notifications
You must be signed in to change notification settings - Fork 95
/
HISTORY.txt
336 lines (247 loc) · 13.3 KB
/
HISTORY.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
v1.3 (2017-XX-XX)
==================
- Added a fast and precise method for approximating an orbit's
eccentricity, peri- and apocenter radii, and maximum height above
the midplane using the Staeckel approximation (see Mackereth & Bovy
2018); available as an actionAngle method EccZmaxRperiRap and for
Orbit instances through the e, rperi, rap, and zmax methods.
- Added support for potential wrappers---classes that wrap existing
potentials to modify their behavior (#307). See the documentation on
potentials and the potential API for more information on these.
- Added DehnenSmoothWrapperPotential, a potential wrapper to smoothly
grow a gravitational potential (e.g., a bar) following Dehnen
(2000).
- Added SolidBodyRotationWrapperPotential, a potential wrapper to make
a gravitational potential rotate around the z axis with a fixed,
uniform pattern speed.
- Added DiskSCFPotential, a class that implements general
density/potential pairs for disk potentials by combining Kuijken &
Dubinski (1995)'s trick for turning a separable disk density
[rho(R,z) = \Sigma(R) x h(z)] into a ellipsoidal-ish density, with
the SCF basis-function-expansion approach of Hernquist & Ostriker
(1992) for solving for the ellipsoidal-ish density's potential. This
is a fully general Poisson solver (i.e., any density can be
represented in this way).
- Added SoftenedNeedleBarPotential, a simple potential for a bar that
consists of a needle softened by a Miyamoto-Nagai kernel (Long &
Murali 1992).
- Added FerrersPotential, a class that implements the potential for
triaxial ellipsoids (Binney & Tremaine 2008, Ch 2.5) with an option
to give a pattern speed to the ellipsoid.
- Added SpiralArmsPotential, a class that implements the spiral arms
potential from Cox and Gomez
(2002). https://arxiv.org/abs/astro-ph/0207635v1 (#305)
- Added the Henon & Heiles (1964) potential
- Added an Orbit method to display an animation of an integrated orbit
in jupyter notebooks (Orbit.animate).
- Added galpy.df.schwarzschilddf, the simple Schwarzschild
distribution function for a razor-thin disk.
- Upgraded LogarithmicHaloPotential to allow it to be a triaxial
potential.
- Upgraded DehnenBarPotential to a 3D potential following Monari et
al. (2016) (#304).
- Generalized CosmphiDiskPotential to allow for a break radius within
which the radial dependence of the potential changes from R^p to
R^-p; also added C implementation of CosmphiDiskPotential.
- Changed default method for computing actions, frequencies, and
angles for Orbit instances to be the Staeckel approximation with an
automatically-estimated delta parameter.
- Generalized actionAngleStaeckel to allow for different focal lengths
delta for different phase-space points. Also allowed the order of
the Gauss-Legendre integration to be specified (default: 10, which
is good enough when using actionAngleStaeckel to compute approximate
actions etc. for an axisymmetric potential).
- Allow transformations of (ra,dec) and (pmra,pmdec) to custom
coordinate systems.
- Allow plotting of the spherical radius in Orbit.plot
- Allow plotting of arbitrary user-supplied functions of time in
Orbit.plot, Orbit.plot3d, and Orbit.animate.
- Added conversion to and from oblate spheroidal coordinates. Also
added conversion of velocities to the momenta in oblate or prolate
spheroidal coordinates (but not the other way around).
- Made SCFPotential compatible with GSL v2.
- Orbit methods now all return a scalar when called with a single
time (see #247 and #294).
- Added a warning whenever the orbit-integration method that is used
is different from the requested one (for when C integration falls
back onto Python; see #286).
- Turn off changing the seaborn default plot configuration to that
preferred by this code's maintainer; can be turned back on by
specifying ``seaborn-bovy-defaults = True`` in the configuration
file (see documentation). Old configuration files will be
automatically updated to add this option (but remain otherwise the
same).
- Added button to code examples in the documentation that copies the
examples to the user's clipboard for easy pasting into a Python
interpreter.
- Switched test suite from nose to pytest (#303).
- quasiisothermaldf.tilt return unit switched from deg to rad.
- streamdf.misalignment return unit switched from deg to rad.
- evolveddiskdf.vertexdev return unit switched from deg to rad.
v1.2 (2016-09-06)
==================
- Added support for providing inputs to all initializations, methods,
and functions as Quantities with units and for providing outputs as
astropy Quantities. See pull request #258 and the documentation for
full details.
- Added TwoPowerTriaxialPotential, a set of triaxial potentials with
iso-density contours that are arbitrary, similar, coaxial ellipsoids
whose 'radial' density is a (different) power-law at small and large
radii: 1/m^alpha/(1+m)^beta-alpha (the triaxial generalization of
TwoPowerSphericalPotential, with flattening in the density rather
than in the potential, see Merritt & Fridman 1996, Binney & Tremaine
2008). These include triaxial Hernquist and NFW potentials. Includes
fast C implementations that allow efficient orbit integration in
these potentials (<~5 ms / orbit).
- Added SCFPotential, a class that implements general
density/potential pairs through the basis expansion approach to
solving the Poisson equation of Hernquist & Ostriker (1992). Also
implemented functions to compute the coefficients for a given
density function.
- Implemented galpy.actionAngle.actionAngleIsochroneApprox (Bovy 2014)
for the general case of a time-independent potential, allowing
action-angle coordinates to be computed for triaxial
potentials. Previously, this module only supported axisymmetric
potentials. Also allow the maximum number of terms in the expansion
to be set object-wide and allow a fixed time-step to be used in the
necessary orbit integration.
- Added an (experimental) interface to Binney & McMillan's TorusMapper
code for computing positions and velocities for given actions and
angles. See the installation instructions for how to properly
install this.
- Re-defined the amplitude parameters of a few potentials to allow for
easier setups with amplitudes provided as Quantities with
units. This is the case for FlattenedPowerPotential,
PowerSphericalPotential, and PowerSphericalPotentialwCutoff,
CosmphiDiskPotential, LopsidedDiskPotential, and
EllipticalDiskPotential.
- Added a module for modeling the effect of a subhalo impact on a
tidal stream (galpy.df.streamgapdf); see Sanders, Bovy, & Erkal
(2016). Also includes the fast methods for computing the density
along the stream and the stream track for a perturbed stream from
Bovy, Erkal, & Sanders (2016).
- Added functions to galpy.df.streamdf to compute the length of the
stream, the density along the stream quickly (in various
coordinates, including custom sky coordinates), to compute the
probability p(freq_parallel,angle_parallel), and to estimate the
number of encounters with DM subhalos. Also allow the stream track
to be computing using the new actionAngleTorus (this last addition
is still very experimental).
- Added PseudoIsothermalPotential, a standard pseudo-isothermal-sphere
potential.
- Added KuzminDiskPotential, a potential represented by a razor thin
disk
- Allow transformations to custom sets of sky coordinates in
galpy.util.bovy_coords.
- Added the spherical radius as an Orbit method.
- Added the spherical-radial force as a Potential method (rforce) and
function (evaluaterforces).
- Support for flipping the velocities of an orbit in-place (useful for
backwards integration).
- quasiisothermaldf input ro replaced by refr to avoid clash with ro
that specifies units (see above).
- Properly intercept CTRL-C (SIGINT) signals during orbit integration
in C, allowing long orbit integrations to be interrupted without
killing an entire Python session.
- Internally use astropy.coordinates transformations to transform
between (ra,dec) and (l,b). Can be tuned using the astropy-coords
configuration parameter. Also allow general epochs for the (ra,dec)
specification.
v1.1 (2015-06-30)
==================
- Added Python 3 support: in particular, Python 3.3 and 3.4 are now
supported; earlier 3.* may also work, but haven't been
tested. Python 2 and 3 are supported using a single common codebase.
- Added SnapshotRZPotential and InterpSnapshotRZPotential potential
classes: these can be used to get a frozen snapshot of the potential
of an N-body simulation into galpy. SnapshotRZPotential directly
calculates the potential and forces using direct summation;
InterpSnapshotRZPotential builds an interpolation table (it's a
subclass of interpRZPotential and can be used in the same way). This
code was mainly written by Rok Roskar.
- Added KuzminKutuzovStaeckelPotential, a Staeckel potential that can
be used to approximate the potential of a disk galaxy (see Batsleer
& Dejonghe 1994).
- Added MN3ExponentialDiskPotential that gives the approximation to a
radially-exponential disk potential as three Miyamoto-Nagai disks
from Smith et al. (2015; arXiv:1502.00627v1)
- Added PlummerPotential, a standard Plummer potential.
- Add support for converting potential parameters to NEMO format and
units: nemo_accname and nemo_accpars (both instance and general
Potential method).
- Added nemo/ directory for C++ implementations of additional NEMO
potentials (not included in the NEMO release); add PowSphwCut.cc for
PowerSphericalPotential2Cutoff and Makefile to compile and install
it. This allows gyrfalcON simulations with MWPotential2014.
- Allow user to directly specify the integration step size to use in
orbit integration.
- Better implementations of vcirc, eipfreq, and verticalfreq for lists
of potentials that allows for negative amplitude components.
- Improvements to streamdf: add progIsTrack keyword to specify that
the progenitor= keyword actually specifies the desired starting
phase-space point of the track; the phase-space point of the
progenitor is calculated. Refactored streamdf setup to make this
easy to implement.
- Orbit fitting can now be performed in custom sky coordinates
(requires one to specify customsky=True and to implement and pass
the functions (a) lb_to_customsky= and (b) pmllpmbb_to_customsky=,
similar to lb_to_radec and pmllpmbb_to_pmradec). For example, this
allows one to do an orbit fit in the GD-1 frame of Koposov et
al. (2010).
- Orbit.time now returns the times at which an Orbit is integrated if
called without arguments.
- Slightly improved implementation of actionAngleStaeckel.py (more
robust umin/umax finding).
v1.0 (2014-12-10)
==================
- Added MWPotential2014: a Milky-Way-like potential fit to a bunch of
relevant data on the Milky Way; supersedes MWPotential, which is
still included; changed many examples to use this new potential;
- Changed default integrator to symplec4_c;
- Changed default vo and ro to 220 km/s and 8 kpc, respectively;
- Allow Orbit initialization to specify a distance and velocity scale
that is then used to output distances, velocities, energies,
actions, etc. in physical coordinates;
- Added an orbit-fitting routine (Orbit.fit).
- Added virial radius of NFW potential, allow initialization of NFW
potential with concentration and mass;
- Added potential.mass to return the mass enclosed for individual
potential instances; both spherical and axisymmetric potentials are
covered.
- Sped up many of the functions in galpy.util.bovy_coords by removing
scipy.frompyfunc dependency;
- Added galpy.util.bovy_conversion.dens_in_gevcc,
galpy.util.bovy_conversion.force_in_10m13kms2,
galpy.util.bovy_conversion.dens_in_criticaldens,
galpy.util.bovy_conversion.dens_in_meanmatterdens.
- Much improved test coverage.
- Added planarPotential.LinShuReductionFactor to calculate the
reduction factor for the response of a kinematically warm population
to a spiral perturbation.
- Added non-axisymmetric DFs to the top-level and the documentation.
- New streamdf track calculation (see arXiv_v2/published version of
Bovy 2014); better handdling of coordinate-transformation
parameters in streamdf.
- Installation now prints informative message about whether or not the
C extensions were installed.
- More informative warning messages when C functions are not used.
- Fix issues with non-square grids in the C implementation of
interpRZPotential.
- Added Orbit.flip to generate new Orbit instances with flipped
velocities.
- Improved actionAngle frequencies for circular orbits.
- Removed actionAngleFlat and actionAnglePower, because they are
superseded.
- Added hasC_dxdv member to Potential instances to indicate whether or
not they can be used with integrate_dxdv
- Add C implementation of PowerSphericalPotentialwCutoff;
- Moved MovingObjectPotential, BurkertPotential, and interpRZPotential
to top level; better implementation of interpRZPotential;
- Better handling of vo,ro, and solarmotion in Orbit instances (Orbit
initialization value is now used to generate RA, Dec, etc. outputs);
- Added --no-openmp installation option to allow installation without
OpenMP support (workaround for clang not supporting OpenMP; not
necessary anymore);
v0.1 (2014-01-09)
==================
- Initial release