Skip to content

Commit e2ac760

Browse files
committed
Updating example paper
1 parent 8b124be commit e2ac760

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

docs/example_paper.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,48 @@ design, and support for Astropy functionality in `Gala` will enable exciting
7979
scientific explorations of forthcoming data releases from the *Gaia* mission
8080
[@gaia] by students and experts alike.
8181

82+
# Software Design
83+
84+
`Gala`'s architecture reflects several key design decisions balancing performance,
85+
usability, and extensibility. We chose a hybrid Python/C implementation strategy:
86+
performance-critical numerical operations (orbit integration, force calculations)
87+
are implemented in C and Cython, while the user-facing API remains pure Python.
88+
This trade-off prioritizes computational efficiency for large-scale simulations
89+
while maintaining the flexibility and ease of use that makes Python attractive
90+
for research.
91+
92+
Rather than contributing to existing packages like `galpy` or `SciPy`, we built
93+
`Gala` to address specific architectural needs: (1) tight integration with Astropy's
94+
unit and coordinate systems, enabling seamless transformation between reference frames;
95+
(2) a composable potential framework allowing users to combine multiple gravitational
96+
components programmatically; and (3) a class-based API design that balances object-oriented
97+
extensibility with functional programming patterns common in numerical computing. While
98+
`galpy` provides excellent tools for Milky Way modeling, its callback-based potential
99+
system and limited coordinate frame support made it unsuitable for our use cases involving
100+
complex multi-component systems and coordinate transformations. `Gala`'s design philosophy
101+
prioritizes making common operations simple while still enabling complex workflows through
102+
composition rather than configuration.
103+
104+
# Research Impact Statement
105+
106+
`Gala` has demonstrated substantial research impact since its initial release. The package
107+
has been used in over 50 peer-reviewed publications spanning diverse topics in galactic
108+
dynamics, including studies of tidal streams [@Pearson:2017], dark matter substructure
109+
detection, and the dynamics of stellar systems. External adoption includes integration
110+
into the Astropy ecosystem as an affiliated package and incorporation into graduate-level
111+
curricula at multiple institutions [@Binney:2008].
112+
113+
The package's impact extends beyond direct citations through enabling new research
114+
methodologies. `Gala`'s fast orbit integration and coordinate transformation capabilities
115+
have become critical infrastructure for analyzing data from the *Gaia* space mission [@gaia],
116+
which has delivered positions and velocities for over 1 billion stars. Several research
117+
groups have contributed extensions, including new gravitational potential models and
118+
integration schemes, demonstrating community adoption and collaborative development.
119+
The package has been downloaded over 100,000 times from PyPI and conda-forge, with active
120+
usage indicated by sustained issue reporting and feature requests from researchers across
121+
multiple institutions and countries. This broad adoption validates `Gala`'s role as essential
122+
infrastructure for the galactic dynamics research community.
123+
82124
# Mathematics
83125

84126
Single dollars ($) are required for inline mathematics e.g. $f(x) = e^{\pi/x}$
@@ -119,6 +161,11 @@ and referenced from text using \autoref{fig:example}.
119161
Figure sizes can be customized by adding an optional second parameter:
120162
![Caption for example figure.](figure.png){ width=20% }
121163

164+
# AI usage disclosure
165+
166+
No generative AI tools were used in the development of this software, the writing
167+
of this manuscript, or the preparation of supporting materials.
168+
122169
# Acknowledgements
123170

124171
We acknowledge contributions from Brigitta Sipocz, Syrtis Major, and Semyeong

0 commit comments

Comments
 (0)