scalefree 0.1.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- README.md +585 -0
- fortran_src/scalefree.f +3323 -0
- scalefree/__init__.py +12 -0
- scalefree/vmoments.py +837 -0
- scalefree-0.1.2.dist-info/METADATA +609 -0
- scalefree-0.1.2.dist-info/RECORD +8 -0
- scalefree-0.1.2.dist-info/WHEEL +4 -0
- scalefree-0.1.2.dist-info/entry_points.txt +0 -0
|
@@ -0,0 +1,609 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: scalefree
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: Scale-free DF velocity moments and VP calculations with a Fortran backend.
|
|
5
|
+
Home-page: https://gitlab.com/eduardo-vitral/scalefree
|
|
6
|
+
License: MIT
|
|
7
|
+
Keywords: astronomy,dynamics,distribution-function,fortran,kinematics,velocity-profile
|
|
8
|
+
Author: Eduardo Vitral
|
|
9
|
+
Author-email: eduardo.vitral@roe.ac.uk
|
|
10
|
+
Requires-Python: >=3.10,<3.13
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Science/Research
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Fortran
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
21
|
+
Requires-Dist: numpy (>=1.23)
|
|
22
|
+
Project-URL: Repository, https://gitlab.com/eduardo-vitral/scalefree
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
|
|
25
|
+
# scalefree :dizzy:
|
|
26
|
+
|
|
27
|
+
<img alt="logo" align="right" src="./images/hstpromo.jpeg" width="15%" />
|
|
28
|
+
|
|
29
|
+
### This is a software developped by the [HSTPROMO](https://www.stsci.edu/~marel/hstpromo.html) collaboration
|
|
30
|
+
|
|
31
|
+
* Scale-free Modeling Software to predict the intrinsic and\
|
|
32
|
+
projected kinematical quantities of axisymmetric mass densities\
|
|
33
|
+
with anisotropic velocity distributions in spherical potentials.
|
|
34
|
+
|
|
35
|
+
* Gauss-Hermite fitting routine.
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## PART I: GENERAL INFORMATION
|
|
39
|
+
|
|
40
|
+
### Authors:
|
|
41
|
+
|
|
42
|
+
* Roeland P. van der Marel,
|
|
43
|
+
|
|
44
|
+
>1994-1995 :\
|
|
45
|
+
  development of code\
|
|
46
|
+
address : Space Telescope Science Institute\
|
|
47
|
+
Research Programs Office (RPO)\
|
|
48
|
+
3700 San Martin Drive\
|
|
49
|
+
Baltimore, MD 21218\
|
|
50
|
+
Tel : (+1) 410 338 4931\
|
|
51
|
+
Fax : (+1) 410 338 4596\
|
|
52
|
+
e-mail : marel@stsci.edu\
|
|
53
|
+
homepage : https://www.stsci.edu/~marel/
|
|
54
|
+
|
|
55
|
+
* Jos H. J. de Bruijne,
|
|
56
|
+
|
|
57
|
+
>1994-1995 :\
|
|
58
|
+
  testing and application of code\
|
|
59
|
+
address : Sterrewacht Leiden\
|
|
60
|
+
Postbus 9513\
|
|
61
|
+
2300 RA Leiden\
|
|
62
|
+
The Netherlands\
|
|
63
|
+
Tel : (+31) 71 5275878\
|
|
64
|
+
Fax : (+31) 71 5275819\
|
|
65
|
+
e-mail : debruyne@strw.LeidenUniv.nl\
|
|
66
|
+
homepage : http://www.strw.leidenuniv.nl/~debruyne/
|
|
67
|
+
|
|
68
|
+
* Eduardo Vitral,
|
|
69
|
+
|
|
70
|
+
>2023 :\
|
|
71
|
+
  development of the Python interface\
|
|
72
|
+
  implementation of plane-of-sky routines\
|
|
73
|
+
  testing and application of code\
|
|
74
|
+
address : Space Telescope Science Institute\
|
|
75
|
+
Science Mission Office (SMO)\
|
|
76
|
+
3700 San Martin Drive\
|
|
77
|
+
Baltimore, MD 21218\
|
|
78
|
+
e-mail : evitral@stsci.edu\
|
|
79
|
+
homepage : https://eduardo-vitral.github.io
|
|
80
|
+
|
|
81
|
+
### Summary of the method
|
|
82
|
+
|
|
83
|
+
We consider the case of a scale-free spheroidal mass density with an
|
|
84
|
+
anisotropic velocity distribution in a scale-free spherical
|
|
85
|
+
potential. The assumption of a spherical potential has the advantage
|
|
86
|
+
that all integrals of motion are known explicitly. Two families of
|
|
87
|
+
phase-space distribution functions are considered. The **case I**
|
|
88
|
+
distribution functions are anisotropic generalizations of the
|
|
89
|
+
flattened $f(E,L_z)$ model, which they include as a special case. The
|
|
90
|
+
**case II** distribution functions generate flattened
|
|
91
|
+
constant-anisotropy models. Free parameters control the radial
|
|
92
|
+
power-law slopes of the mass density and potential, the flattening of
|
|
93
|
+
the mass distribution, and the velocity dispersion anisotropy. The
|
|
94
|
+
models can describe the outer parts of galaxies and the density cusp
|
|
95
|
+
structure near a central black hole, but also provide general insight
|
|
96
|
+
into the dynamical properties of flattened systems. Because of their
|
|
97
|
+
simplicity, they provide a useful complementary approach to the
|
|
98
|
+
construction of flattened self-consistent three-integral models for
|
|
99
|
+
elliptical galaxies.
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
### References
|
|
103
|
+
|
|
104
|
+
The method and some applications are discussed in the following papers:
|
|
105
|
+
```
|
|
106
|
+
`Scale-free dynamical models for galaxies:
|
|
107
|
+
flattened densities in spherical potentials'
|
|
108
|
+
de Bruijne J., van der Marel R.P., de Zeeuw P.T.
|
|
109
|
+
MNRAS, 282, 909-925, 1996
|
|
110
|
+
```
|
|
111
|
+
which can be retrieved at this [link](https://ui.adsabs.harvard.edu/abs/1996MNRAS.282..909D/abstract).
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
`HSTPROMO Internal Proper Motion Kinematics of Dwarf Spheroidal Galaxies:
|
|
115
|
+
I. Velocity Anisotropy and Dark Matter Cusp Slope of Draco'
|
|
116
|
+
Vitral E., van der Marel R.P., Sohn T.S., et al.
|
|
117
|
+
ApJ, 970, 1, 2024
|
|
118
|
+
```
|
|
119
|
+
which can be retrieved at this [link](https://ui.adsabs.harvard.edu/abs/2024ApJ...970....1V/abstract).
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
### Acknowledgments
|
|
123
|
+
|
|
124
|
+
If you have found this software useful for your research, we would
|
|
125
|
+
appreciate an acknowledgment to *"use of the Scale-free Modeling
|
|
126
|
+
Software developed by R.P. van der Marel, J.H.J. de Bruijne and E. Vitral"*,
|
|
127
|
+
along with a citation to the papers from the **References** section above.
|
|
128
|
+
The respective `BibTeX` formats are:
|
|
129
|
+
|
|
130
|
+
```bibtex
|
|
131
|
+
@ARTICLE{1996MNRAS.282..909D,
|
|
132
|
+
author = {{de Bruijne}, Jos H.~J. and {van der Marel}, Roeland P. and {de Zeeuw}, P. Tim},
|
|
133
|
+
title = "{Scale-free dynamical models for galaxies: flattened densities in spherical potentials}",
|
|
134
|
+
journal = {\mnras},
|
|
135
|
+
keywords = {LINE: PROFILES, GALAXIES: ELLIPTICAL AND LENTICULAR, CD, GALAXIES: INDIVIDUAL: NGC 2434, GALAXIES: INDIVIDUAL: NGC 3706, GALAXIES: KINEMATICS AND DYNAMICS, GALAXIES: STRUCTURE, Astrophysics},
|
|
136
|
+
year = 1996,
|
|
137
|
+
month = oct,
|
|
138
|
+
volume = {282},
|
|
139
|
+
number = {3},
|
|
140
|
+
pages = {909-925},
|
|
141
|
+
doi = {10.1093/mnras/282.3.909},
|
|
142
|
+
archivePrefix = {arXiv},
|
|
143
|
+
eprint = {astro-ph/9601044},
|
|
144
|
+
primaryClass = {astro-ph},
|
|
145
|
+
adsurl = {https://ui.adsabs.harvard.edu/abs/1996MNRAS.282..909D},
|
|
146
|
+
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
```bibtex
|
|
151
|
+
@ARTICLE{2024ApJ...970....1V,
|
|
152
|
+
author = {{Vitral}, Eduardo and {van der Marel}, Roeland P. and {Sohn}, Sangmo Tony and {Libralato}, Mattia and {del Pino}, Andr{\'e}s and {Watkins}, Laura L. and {Bellini}, Andrea and {Walker}, Matthew G. and {Besla}, Gurtina and {Pawlowski}, Marcel S. and {Mamon}, Gary A.},
|
|
153
|
+
title = "{HSTPROMO Internal Proper-motion Kinematics of Dwarf Spheroidal Galaxies. I. Velocity Anisotropy and Dark Matter Cusp Slope of Draco}",
|
|
154
|
+
journal = {\apj},
|
|
155
|
+
keywords = {Dark matter, Dwarf spheroidal galaxies, Astronomy data analysis, Proper motions, Stellar kinematics, Stellar dynamics, Galaxy dynamics, Galaxy structure, 353, 420, 1858, 1295, 1608, 1596, 591, 622, Astrophysics - Astrophysics of Galaxies, Astrophysics - Cosmology and Nongalactic Astrophysics},
|
|
156
|
+
year = 2024,
|
|
157
|
+
month = jul,
|
|
158
|
+
volume = {970},
|
|
159
|
+
number = {1},
|
|
160
|
+
eid = {1},
|
|
161
|
+
pages = {1},
|
|
162
|
+
doi = {10.3847/1538-4357/ad571c},
|
|
163
|
+
archivePrefix = {arXiv},
|
|
164
|
+
eprint = {2407.07769},
|
|
165
|
+
primaryClass = {astro-ph.GA},
|
|
166
|
+
adsurl = {https://ui.adsabs.harvard.edu/abs/2024ApJ...970....1V},
|
|
167
|
+
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
### Bug Reports
|
|
173
|
+
|
|
174
|
+
Please send bug reports and important comments or questions to
|
|
175
|
+
marel@stsci.edu
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
### Caveats
|
|
179
|
+
|
|
180
|
+
This software comes without guarantee and on an *as is* basis. It is
|
|
181
|
+
not being actively maintained or upgraded.
|
|
182
|
+
|
|
183
|
+
All original testing of the code was done on a `UNIX Sparc 2`
|
|
184
|
+
workstation with the `SunOS` operating system in the period
|
|
185
|
+
1994-1995. In 1997, R.P. van der Marel ensured that the code would
|
|
186
|
+
run on a `Sun Ultra 170` workstation with the `solaris` operating system.
|
|
187
|
+
However, little detailed testing of the code was performed
|
|
188
|
+
on this operating system.
|
|
189
|
+
|
|
190
|
+
It is not guaranteed that the software will work without problems on
|
|
191
|
+
other platforms, with different operating systems and different
|
|
192
|
+
compilers. However, the code is close to standard fortran, so if any,
|
|
193
|
+
only minor revisions will be necessary.
|
|
194
|
+
|
|
195
|
+
R.P. van der Marel will consider all requests for use of this software.
|
|
196
|
+
However, R.P. van der Marel do
|
|
197
|
+
not allow people who have received the software from him to distribute
|
|
198
|
+
it to third parties.
|
|
199
|
+
Anyone who uses this software is encouraged to
|
|
200
|
+
send him an email with their address, so that he can send reports
|
|
201
|
+
of bugs and revisions.
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
### Program structure
|
|
205
|
+
|
|
206
|
+
The following files/folders are present in this package:
|
|
207
|
+
|
|
208
|
+
- `ghermite/`: Folder containing Gauss-Hermite fitting routines. The files are:
|
|
209
|
+
- `fitvp.e`: Executable.
|
|
210
|
+
- `fitvp.f`: The `Fortran` program to fit Gauss-Hermite moments (up to order 10).
|
|
211
|
+
- `scalefree_los/`:
|
|
212
|
+
- `makefile`: makefile that allows compilation of the program `scalefree.f`.
|
|
213
|
+
- `scalefree.e`: Executable.
|
|
214
|
+
- `scalefree.f`: The `Fortran` program that does all the calculations.
|
|
215
|
+
the file also contains all necessary subroutines, some
|
|
216
|
+
of which are from the [*Numerical Recipes book by Press et
|
|
217
|
+
al.*](https://ui.adsabs.harvard.edu/abs/1992nrfa.book.....P/abstract)
|
|
218
|
+
- `scalefree_posr/`:
|
|
219
|
+
- `makefile`: makefile that allows compilation of the program `scalefree.f`.
|
|
220
|
+
- `scalefree.e`: Executable.
|
|
221
|
+
- `scalefree.f`: The `Fortran` program that does all the calculations.
|
|
222
|
+
the file also contains all necessary subroutines, some
|
|
223
|
+
of which are from the [*Numerical Recipes book by Press et
|
|
224
|
+
al.*](https://ui.adsabs.harvard.edu/abs/1992nrfa.book.....P/abstract)
|
|
225
|
+
- `scalefree_post/`:
|
|
226
|
+
- `makefile`: makefile that allows compilation of the program `scalefree.f`
|
|
227
|
+
and `fitvp.f`.
|
|
228
|
+
- `scalefree.e`: Executable.
|
|
229
|
+
- `scalefree.f`: The `Fortran` program that does all the calculations.
|
|
230
|
+
the file also contains all necessary subroutines, some
|
|
231
|
+
of which are from the [*Numerical Recipes book by Press et
|
|
232
|
+
al.*](https://ui.adsabs.harvard.edu/abs/1992nrfa.book.....P/abstract)
|
|
233
|
+
- `examp/`: directory with example input files for the program `scalefree.f`
|
|
234
|
+
and `fitvp.f`.
|
|
235
|
+
- `images/`: directory with images of the *HSTPROMO* logo and the geometry considered in `scalefree`.
|
|
236
|
+
- `scalefree.py`: The `Python` program that translates the `Fortran` outputs.
|
|
237
|
+
- `install.py`: The `Python` program that installs the code.
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
- `README.md`: This file. Contains instructions and a description of the
|
|
241
|
+
software.
|
|
242
|
+
- `ROTATION.md`: Contains instructions for models with rotation.
|
|
243
|
+
- `VPSHAPES.md`: Contains instructions for the computation of the velocity profiles.
|
|
244
|
+
- `VPOS.md`: Contains the formalism for plane-of-sky velocity moments.
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
### Installation
|
|
248
|
+
|
|
249
|
+
To install the software, run the `install.py` file.\
|
|
250
|
+
The code will ask you the path where your scalefree files are installed.\
|
|
251
|
+
Once you type it and hit **ENTER**, the following output should be produced:
|
|
252
|
+
```console
|
|
253
|
+
Provide the path where your scalefree files are installed.
|
|
254
|
+
For example: /home/yourname/code-packages/scalefree/
|
|
255
|
+
|
|
256
|
+
/YOUR-PATH/scalefree/
|
|
257
|
+
|
|
258
|
+
Installation succesfull.
|
|
259
|
+
Finished.
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
This will construct the executables *`.e`.
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
### Examples
|
|
266
|
+
|
|
267
|
+
The directory `./examp` contains example input files.
|
|
268
|
+
|
|
269
|
+
The code `install.py` is itself an example that runs `scalefree`, and
|
|
270
|
+
creates executable *`.e` files. Once the software is installed, one
|
|
271
|
+
can remove the `exec=True` option for faster outputs.
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
### Known Bugs
|
|
275
|
+
|
|
276
|
+
As discussed below, the calculations of the Gauss-Hermite moments of
|
|
277
|
+
the projected velocity profiles (VPs) do not work well for certain
|
|
278
|
+
parameter ranges. The intrinsic and projected velocity moments should
|
|
279
|
+
always be highly accurate.
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
## PART II: Discussion of the method
|
|
283
|
+
|
|
284
|
+
Construct galaxy models for flattened systems of test-particles
|
|
285
|
+
in spherical potentials, as discussed in [De Bruijne et al (1996)](https://ui.adsabs.harvard.edu/abs/1996MNRAS.282..909D/abstract).
|
|
286
|
+
|
|
287
|
+
Let $b$ be a reference length, $\rho_0$ a reference mass density, and
|
|
288
|
+
$W$ a reference velocity.
|
|
289
|
+
|
|
290
|
+
Introduce dimensionless units:
|
|
291
|
+
|
|
292
|
+
* $r = r_{\mathrm{true}} / b$.
|
|
293
|
+
* $R = R_{\mathrm{true}} / b$.
|
|
294
|
+
* $z = z_{\mathrm{true}} / b$.
|
|
295
|
+
* $v = v_{\mathrm{true}} / (\sqrt{2} W)$.
|
|
296
|
+
* $L = L_{\mathrm{true}} / (\sqrt{2} W b)$.
|
|
297
|
+
* $E = E_{\mathrm{true}} / (W^{2})$.
|
|
298
|
+
* $\Psi = \Psi_{\mathrm{true}} / (W^2)$.
|
|
299
|
+
* $\rho = \rho_{\mathrm{true}} / \rho_0$.
|
|
300
|
+
* $f = f_{\mathrm{true}} / [\rho_0 (2 W^2)^{-3/2}]$.
|
|
301
|
+
|
|
302
|
+
We consider two cases for the potential:
|
|
303
|
+
|
|
304
|
+
#### KEPLERIAN POTENTIAL:
|
|
305
|
+
|
|
306
|
+
Let $M$ be the total mass of the galaxy, such that $\Psi_{\mathrm{true}} = G M / r_{\mathrm{true}}$.\
|
|
307
|
+
Then choose $W = \sqrt{GM/b}$.\
|
|
308
|
+
In these units: $\Psi = 1 / r$.
|
|
309
|
+
|
|
310
|
+
#### LOGARITHMIC POTENTIAL:
|
|
311
|
+
|
|
312
|
+
Let $V_c$ be the circular velocity, such that $\Psi_{\mathrm{true}} = - V_{c}^2 \ln{(r_{\mathrm{true}}/b)}$.
|
|
313
|
+
Then choose $W = V_c$.\
|
|
314
|
+
In these units: $\Psi = - \ln{(r)}$.
|
|
315
|
+
|
|
316
|
+
***
|
|
317
|
+
|
|
318
|
+
Let the mass density fall off with logarithmic slope $\gamma$, and be
|
|
319
|
+
stratified on spheroids with axial ratio $q$:
|
|
320
|
+
|
|
321
|
+
$\rho = r^{-\gamma} (\sin(\theta)^2 + [\cos(\theta)^2/q^2])^{-\gamma/2}$.
|
|
322
|
+
|
|
323
|
+
where $\theta$ is the polar angle such that:
|
|
324
|
+
|
|
325
|
+
$R = r \sin(\theta)$ and $z = r \cos(\theta)$.
|
|
326
|
+
|
|
327
|
+
Since the potential is spherical, the quantities $E$, $L^2$, $L_z^2$ are
|
|
328
|
+
integrals of motion. Let $L_{\mathrm{max}}(E)$ be the maximum angular momentum that
|
|
329
|
+
can be attained by a star at energy $E = \Psi - v^2$.
|
|
330
|
+
|
|
331
|
+
* In the **Keplerian** potential: $L^2_{\mathrm{max}}(E) = 1 / (4E)$.
|
|
332
|
+
|
|
333
|
+
* In the **Logarithmic** potential: $L^2_{\mathrm{max}}(E) = \exp(-2E -1) / 2$
|
|
334
|
+
|
|
335
|
+
We consider even DFs that are separable functions or quasi-separable
|
|
336
|
+
functions of $E$, $\zeta^2$, $\eta^2$:
|
|
337
|
+
|
|
338
|
+
* **case I** : $f_e = g(E) \zeta^{-2 \beta} j(e^2 \eta^2)$
|
|
339
|
+
|
|
340
|
+
* **case II** : $f_e = g(E) \zeta^{-2 \beta} h(e^2 \eta^2 / \zeta^2)$
|
|
341
|
+
|
|
342
|
+
where:
|
|
343
|
+
* $\zeta^2 = L^2/L^2_{\mathrm{max}}(E)$
|
|
344
|
+
|
|
345
|
+
* $\eta^2 = L_z^2/L^2_{\mathrm{max}}(E)$
|
|
346
|
+
|
|
347
|
+
* $e^2 = 1 - q^2$
|
|
348
|
+
|
|
349
|
+
and $\beta$ is a free parameter. With these ansatz's, the functions
|
|
350
|
+
$j$ and $h$ are determined uniquely (see [De Bruijne et al, 1996](https://ui.adsabs.harvard.edu/abs/1996MNRAS.282..909D/abstract)).
|
|
351
|
+
|
|
352
|
+
To allow models with rotation, please read this [link](./ROTATION.md).
|
|
353
|
+
|
|
354
|
+
In addition to the calculation of the intrinsic and projected velocity
|
|
355
|
+
moments, the program `scalefree.f` also reconstructs the projected
|
|
356
|
+
line-of-sight and plane-of-sky
|
|
357
|
+
VP shapes (details [here](./VPSHAPES.md)).
|
|
358
|
+
|
|
359
|
+
### Plane-of-sky additions
|
|
360
|
+
|
|
361
|
+
The current package is very similar to the original `scalefree`
|
|
362
|
+
software presented in
|
|
363
|
+
[De Bruijne et al. (1996)](https://ui.adsabs.harvard.edu/abs/1996MNRAS.282..909D/abstract),
|
|
364
|
+
with the difference that now it is able to solve the velocity
|
|
365
|
+
moments of plane of sky coordinates (POSr and POSt).
|
|
366
|
+
The mathematical description of the new models is given [here](./VPOS.md).
|
|
367
|
+
|
|
368
|
+
### References
|
|
369
|
+
|
|
370
|
+
>* de Bruijne J., van der Marel R.P., de Zeeuw P.T., 1996, MNRAS, 282, 909
|
|
371
|
+
>* Dehnen W., Gerhard O. E., 1994, MNRAS, 268, 1019
|
|
372
|
+
>* Gerhard O. E., 1993, MNRAS, 265, 213
|
|
373
|
+
>* Press W. H., Teukolsky S. A., Vetterling W. T., Flannery B. P.,
|
|
374
|
+
1992, Numerical Recipes, Second Edition.
|
|
375
|
+
Cambridge University Press, Cambridge
|
|
376
|
+
>* Qian E. E., de Zeeuw P. T., van der Marel R. P., Hunter C., 1995,
|
|
377
|
+
MNRAS, 274, 602
|
|
378
|
+
>* van der Marel R. P., Franx M., 1993, ApJ, 407, 525
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
## PART III: Description of program in- and output
|
|
382
|
+
|
|
383
|
+
After the user has entered the required model parameters, and has
|
|
384
|
+
answered to the program how it must deal with the various numerical
|
|
385
|
+
details, the code is set to run.
|
|
386
|
+
|
|
387
|
+
There are three main routines in the `scalefree.py` program:
|
|
388
|
+
|
|
389
|
+
```python
|
|
390
|
+
scalefree.hermite(input, exec=False)
|
|
391
|
+
"""
|
|
392
|
+
Returns the fits of a Gauss-Hermite adjustment to data.
|
|
393
|
+
|
|
394
|
+
Parameters
|
|
395
|
+
----------
|
|
396
|
+
input: str
|
|
397
|
+
Path where to find the data to be fitted.
|
|
398
|
+
Expected file shape:
|
|
399
|
+
--> First line (header): " v VP(v)"
|
|
400
|
+
--> 1st column: x / 2nd column: f(x)
|
|
401
|
+
exec: boolean
|
|
402
|
+
True, if the user wants to generate new .e files.
|
|
403
|
+
|
|
404
|
+
Returns
|
|
405
|
+
-------
|
|
406
|
+
fitinfo : dictionaries
|
|
407
|
+
In order:
|
|
408
|
+
gauss_info: real Gaussian fit.
|
|
409
|
+
- norm
|
|
410
|
+
- mean
|
|
411
|
+
- dispersion
|
|
412
|
+
gaussh_info: Gauss-Hermite fit.
|
|
413
|
+
- norm
|
|
414
|
+
- mean
|
|
415
|
+
- dispersion
|
|
416
|
+
h_moments: First 0-10 moments of the
|
|
417
|
+
Gauss-Hermite fit.
|
|
418
|
+
- hi, with i in [0, 10]
|
|
419
|
+
"""
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
```python
|
|
423
|
+
scalefree.vprofile(
|
|
424
|
+
potential="1",
|
|
425
|
+
gamma="4",
|
|
426
|
+
q="1",
|
|
427
|
+
df="1",
|
|
428
|
+
beta="0",
|
|
429
|
+
s="0.5",
|
|
430
|
+
t="0",
|
|
431
|
+
inclination="90",
|
|
432
|
+
integration="1",
|
|
433
|
+
ngl="0",
|
|
434
|
+
algorithm="1",
|
|
435
|
+
maxmom="0",
|
|
436
|
+
theta="0",
|
|
437
|
+
xi="0",
|
|
438
|
+
dim=None,
|
|
439
|
+
average=False,
|
|
440
|
+
exec=False,
|
|
441
|
+
debug=False,
|
|
442
|
+
usevp=True,
|
|
443
|
+
):
|
|
444
|
+
"""
|
|
445
|
+
Returns the fits of a Gauss-Hermite adjustment to data.
|
|
446
|
+
Note: all results are at an
|
|
447
|
+
(intrinsic or projected) radius of 1 in
|
|
448
|
+
dimensionless units. Results can be scaled to other
|
|
449
|
+
radii using the scale-free nature of the models.
|
|
450
|
+
|
|
451
|
+
Parameters
|
|
452
|
+
----------
|
|
453
|
+
potential: str
|
|
454
|
+
Kepler (1) or Logarithmic (2) Potential.
|
|
455
|
+
gamma: str
|
|
456
|
+
Power-law slope gamma of the mass density.
|
|
457
|
+
q: str
|
|
458
|
+
Intrinsic axial ratio q of the mass density.
|
|
459
|
+
df: str
|
|
460
|
+
Case I (1) or Case II (2) DF
|
|
461
|
+
beta: str
|
|
462
|
+
Anisotropy parameter beta of the DF
|
|
463
|
+
s: str
|
|
464
|
+
Odd part parameter s for the DF
|
|
465
|
+
t: str
|
|
466
|
+
Odd part parameter t for the DF
|
|
467
|
+
inclination: str
|
|
468
|
+
Viewing inclination i in degrees (90=edge-on)
|
|
469
|
+
integration: str
|
|
470
|
+
Use Romberg (0) or Gauss-Legendre (1) integration
|
|
471
|
+
for line-of-sight projection
|
|
472
|
+
ngl: str
|
|
473
|
+
Number of quadrature points / fractional accuracy
|
|
474
|
+
algorithm: str
|
|
475
|
+
Algorithm to calculate VPs and Gauss-Hermite moments
|
|
476
|
+
1: Solve VanderMonde matrix directly without
|
|
477
|
+
regularization. Resulting VP will be nonsense
|
|
478
|
+
but the GH moments are generally well
|
|
479
|
+
determined.
|
|
480
|
+
2: Use regularization with a fixed regularization
|
|
481
|
+
parameter.
|
|
482
|
+
3: Use regularization. Increase regularization
|
|
483
|
+
parameter until the VP has no more than 3
|
|
484
|
+
significant local maxima. A local maximum is
|
|
485
|
+
significant if it exceeds the value of its
|
|
486
|
+
neighbors on the grid by eps times the
|
|
487
|
+
absolute VP maximum.
|
|
488
|
+
maxmom: str
|
|
489
|
+
Maximum number of projected moments
|
|
490
|
+
to use (should be an even number)
|
|
491
|
+
theta: str
|
|
492
|
+
Angle theta in the meridional plane
|
|
493
|
+
(in degrees) (0 = symmetry axis)
|
|
494
|
+
xi: str
|
|
495
|
+
Angle on the projected plane
|
|
496
|
+
(in degrees) (0 = major axis)
|
|
497
|
+
dim: str
|
|
498
|
+
Specific dimension to be considered.
|
|
499
|
+
("los", "posr", "post").
|
|
500
|
+
average: boolean
|
|
501
|
+
Weather the moments are averaged over the first quadrand of
|
|
502
|
+
the sky. For even models, that is the same as the average
|
|
503
|
+
over the whole sky.
|
|
504
|
+
exec: boolean
|
|
505
|
+
True, if the user wants to generate new .e files.
|
|
506
|
+
debug: boolean
|
|
507
|
+
True, if the user whises to print the Fortran output.
|
|
508
|
+
usevp: boolean
|
|
509
|
+
True, if the user wishes to have VP information.
|
|
510
|
+
|
|
511
|
+
Returns
|
|
512
|
+
-------
|
|
513
|
+
vinfo : objects
|
|
514
|
+
List of fit parameters for each of the three observable
|
|
515
|
+
dimensions: LOS, POSr, POSt (in this order).
|
|
516
|
+
Each dimension is itself a collection of dictionaries.
|
|
517
|
+
In this order:
|
|
518
|
+
intmom: Intrinsic velocity moments:
|
|
519
|
+
- rho
|
|
520
|
+
- <v_ph>
|
|
521
|
+
- <v_r^2>
|
|
522
|
+
- <v_th^2>
|
|
523
|
+
- <v_ph^2>
|
|
524
|
+
- beta (for avareged models only)
|
|
525
|
+
projmom: Projected velocity moments:
|
|
526
|
+
- <rho>_p
|
|
527
|
+
- <v>_p
|
|
528
|
+
- <v^2>_p
|
|
529
|
+
- <v^3>_p
|
|
530
|
+
- <v^4>_p
|
|
531
|
+
gauss_info: real Gaussian model.
|
|
532
|
+
- norm
|
|
533
|
+
- mean
|
|
534
|
+
- dispersion
|
|
535
|
+
gaussh_info: Gauss-Hermite model.
|
|
536
|
+
- norm
|
|
537
|
+
- mean
|
|
538
|
+
- dispersion
|
|
539
|
+
h_moments: First 0-6 moments of the
|
|
540
|
+
Gauss-Hermite model.
|
|
541
|
+
- hi, with i in [0, 6]
|
|
542
|
+
vinfo: Velocity distribution function
|
|
543
|
+
- x
|
|
544
|
+
- f(x)
|
|
545
|
+
"""
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
```python
|
|
549
|
+
scalefree.mock(
|
|
550
|
+
potential="1",
|
|
551
|
+
gamma="4",
|
|
552
|
+
q="1",
|
|
553
|
+
df="1",
|
|
554
|
+
beta="0",
|
|
555
|
+
s="0.5",
|
|
556
|
+
t="0",
|
|
557
|
+
nsamples="50",
|
|
558
|
+
seed="-101",
|
|
559
|
+
rin="1",
|
|
560
|
+
rout="1000",
|
|
561
|
+
exec=False,
|
|
562
|
+
debug=False,
|
|
563
|
+
):
|
|
564
|
+
"""
|
|
565
|
+
Returns the fits of a Gauss-Hermite adjustment to data.
|
|
566
|
+
Note: all results are at an
|
|
567
|
+
(intrinsic or projected) radius of 1 in
|
|
568
|
+
dimensionless units. Results can be scaled to other
|
|
569
|
+
radii using the scale-free nature of the models.
|
|
570
|
+
|
|
571
|
+
Parameters
|
|
572
|
+
----------
|
|
573
|
+
potential: str
|
|
574
|
+
Kepler (1) or Logarithmic (2) Potential.
|
|
575
|
+
gamma: str
|
|
576
|
+
Power-law slope gamma of the mass density.
|
|
577
|
+
q: str
|
|
578
|
+
Intrinsic axial ratio q of the mass density.
|
|
579
|
+
df: str
|
|
580
|
+
Case I (1) or Case II (2) DF
|
|
581
|
+
beta: str
|
|
582
|
+
Anisotropy parameter beta of the DF
|
|
583
|
+
s: str
|
|
584
|
+
Odd part parameter s for the DF
|
|
585
|
+
t: str
|
|
586
|
+
Odd part parameter t for the DF
|
|
587
|
+
nsamples: int
|
|
588
|
+
Namber of particles to be generated.
|
|
589
|
+
seed: int
|
|
590
|
+
An integer to initialize the random sequence.
|
|
591
|
+
rin: float
|
|
592
|
+
inner radius for Monte-Carlo drawings
|
|
593
|
+
in dimensionless units
|
|
594
|
+
rout: float
|
|
595
|
+
outer radius for Monte-Carlo drawings
|
|
596
|
+
in dimensionless units
|
|
597
|
+
exec: boolean
|
|
598
|
+
True, if the user wants to generate new .e files.
|
|
599
|
+
debug: boolean
|
|
600
|
+
True, if the user whises to print the Fortran output.
|
|
601
|
+
|
|
602
|
+
Returns
|
|
603
|
+
-------
|
|
604
|
+
mock data : array of shape (N, 6)
|
|
605
|
+
List of random draws for x, y, z, vx, vy, vz.
|
|
606
|
+
"""
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
***
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
README.md,sha256=m1IeLtTYzUPwG-GjmTCqNFmfDGg5jMNTV0hg0fVwGoA,20580
|
|
2
|
+
fortran_src/scalefree.f,sha256=LELzhOr_LkXpgCcdi6THPMcMeApdVoRqpnC3XaYCDh4,87057
|
|
3
|
+
scalefree/__init__.py,sha256=kuefroQbU2j_XJVuc-FBc8cdRSS2-3NVIBgUOqRMJEw,340
|
|
4
|
+
scalefree/vmoments.py,sha256=3qWoBTKiPvkf0dVCX7bjbu1KZyDAyonA5KXq4roympw,26712
|
|
5
|
+
scalefree-0.1.2.dist-info/METADATA,sha256=UfpW5xs6OOkrL6Lin-CX_1ZLgIYw3RztL1CdoB_Cvuc,21599
|
|
6
|
+
scalefree-0.1.2.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
7
|
+
scalefree-0.1.2.dist-info/entry_points.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
+
scalefree-0.1.2.dist-info/RECORD,,
|
|
File without changes
|