# EinsteinPy - Making Einstein possible in Python¶

**EinsteinPy** is an open source pure Python package dedicated to problems arising
in General Relativity and gravitational physics, such as goedesics plotting for
Schwarzschild, Kerr and Kerr Newman space-time model, calculation of Schwarzschild
radius, calculation of Event Horizon and Ergosphere for Kerr space-ime. Symbolic
Manipulations of various tensors like Metric, Riemann, Ricci and Christoffel Symbols
is also possible using the library. EinsteinPy also features Hypersurface Embedding of
Schwarzschild space-time, which will soon lead to modelling of Gravitational Lensing!
It is released under the MIT license.

View source code of EinsteinPy!

Key features of EinsteinPy are:

Geometry analysis and trajectory calculation in vaccum solutions of Einstein’s field equations

Schwarzschild space-time

Kerr space-time

Kerr-Newman space-time

Various utilities related to above geometry models

Schwarzschild Radius

Event horizon and ergosphere for Kerr black hole

Maxwell Tensor and electromagnetic potential in Kerr-Newman space-time

And much more!

Symbolic Calculation of various quantities

Christoffel Symbols

Riemann Curvature Tensor

Ricci Tensor

Index uppering and lowering!

Simplification of symbolic expressions

Geodesic Plotting

Static Plotting using Matplotlib

Interactive 2D plotting

Environment aware plotting!

Coordinate conversion with unit handling

Spherical/Cartesian Coordinates

Boyer-Lindquist/Cartesian Coordinates

Hypersurface Embedding of Schwarzschild Space-Time

And more to come!

Einsteinpy is developed by an open community. Release announcements and general discussion take place on our mailing list and chat.

The source code, issue tracker and wiki are hosted on GitHub, and all contributions and feedback are more than welcome. You can test EinsteinPy in your browser using binder, a cloud Jupyter notebook server:

EinsteinPy works on recent versions of Python and is released under the MIT license, hence allowing commercial use of the library.

```
from einsteinpy.plotting import StaticGeodesicPlotter
a = StaticGeodesicPlotter(mass)
a.plot(r,v)
```

## Contents¶

- Getting started
- User guide
- Vacuum Solutions to Einstein’s Field Equations
- Jupyter notebooks
- Visualizing advancement of perihelion in Schwarzschild space-time
- Animations in EinsteinPy
- Symbolically Understanding Christoffel Symbol and Riemann Curvature Tensor using EinsteinPy
- Contravariant & Covariant indices in Tensors (Symbolic)
- Analysing Earth using EinsteinPy!
- Visualizing frame dragging in Kerr space-time
- Visualizing event horizon and ergosphere of Kerr black hole
- Plotting Spacial Hypersurface Embedding for Schwarzschild Space-Time

- What’s new
- Developer Guide
- EinsteinPy API