Skip to content

nrpy/nrpylatex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

100 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NRPyLaTeX Logo


CI PyPI Binder arXiv

NRPy+'s LaTeX Interface to SymPy (CAS) for General Relativity

  • automatic expansion of
  • automatic index raising and lowering
  • arbitrary coordinate system (default)
  • exception handling and debugging

§ Installation

To install NRPyLaTeX using PyPI, run the following command in the terminal

$ pip install nrpylatex 

§ Exporting (CAS)

If you are using Mathematica instead of SymPy, run the following code to convert your output

from sympy import mathematica_code namespace = parse_latex(...) for var in namespace: exec(f'{var} = mathematica_code({var})') 

If you are using a different CAS, reference the SymPy documentation to find the relevant printing function.

§ Interactive Tutorial (MyBinder)

Quick Start | NRPy+ Integration | Guided Example (BSSN Formalism)

§ Documentation and Usage

Getting Started and API Reference

Simple Example (Kretschmann Scalar)

Python REPL or Script (*.py)

>>> from nrpylatex import parse_latex >>> parse_latex(r""" ... % ignore "\begin{align}" "\end{align}" ... \begin{align} ... % coord [t, r, \theta, \phi] ... % define gDD --dim 4 --zeros ... % define G M --const ... %% define Schwarzschild metric diagonal ... g_{t t} &= -\left(1 - \frac{2GM}{r}\right) \\ ... g_{r r} &= \left(1 - \frac{2GM}{r}\right)^{-1} \\ ... g_{\theta \theta} &= r^2 \\ ... g_{\phi \phi} &= r^2 \sin^2{\theta} \\ ... %% generate metric inverse gUU, determinant det(gDD), and connection GammaUDD ... % assign gDD --metric ... R^\alpha{}_{\beta \mu \nu} &= \partial_\mu \Gamma^\alpha_{\beta \nu} - \partial_\nu \Gamma^\alpha_{\beta \mu} ... + \Gamma^\alpha_{\mu \gamma} \Gamma^\gamma_{\beta \nu} - \Gamma^\alpha_{\nu \sigma} \Gamma^\sigma_{\beta \mu} \\ ... K &= R^{\alpha \beta \mu \nu} R_{\alpha \beta \mu \nu} ... \end{align} ... """) ('G', 'GammaUDD', 'gDD', 'gUU', 'epsilonUUUU', 'RUDDD', 'K', 'RUUUU', 'M', 'r', 'theta', 'RDDDD', 'gdet') >>> from sympy import simplify >>> print(simplify(K)) 48*G**2*M**2/r**6 

IPython REPL or Jupyter Notebook

In [1]: %load_ext nrpylatex In [2]: %%parse_latex ...: % ignore "\begin{align}" "\end{align}" ...: \begin{align} ...: % coord [t, r, \theta, \phi] ...: % define gDD --dim 4 --zeros ...: % define G M --const ...: %% define Schwarzschild metric diagonal ...: g_{t t} &= -\left(1 - \frac{2GM}{r}\right) \\ ...: g_{r r} &= \left(1 - \frac{2GM}{r}\right)^{-1} \\ ...: g_{\theta \theta} &= r^2 \\ ...: g_{\phi \phi} &= r^2 \sin^2{\theta} \\ ...: %% generate metric inverse gUU, determinant det(gDD), and connection GammaUDD ...: % assign gDD --metric ...: R^\alpha{}_{\beta \mu \nu} &= \partial_\mu \Gamma^\alpha_{\beta \nu} - \partial_\nu \Gamma^\alpha_{\beta \mu} ...: + \Gamma^\alpha_{\mu \gamma} \Gamma^\gamma_{\beta \nu} - \Gamma^\alpha_{\nu \sigma} \Gamma^\sigma_{\beta \mu} \\ ...: K &= R^{\alpha \beta \mu \nu} R_{\alpha \beta \mu \nu} ...: \end{align} Out[2]: ('G', 'GammaUDD', 'gDD', 'gUU', 'epsilonUUUU', 'RUDDD', 'K', 'RUUUU', 'M', 'r', 'theta', 'RDDDD', 'gdet') In [3]: from sympy import simplify In [4]: print(simplify(K)) Out[4]: 48*G**2*M**2/r**6 

About

LaTeX interface for SymPy, Mathematica, Maple, and other computer algebra packages, for the benefit of general relativity and differential geometry research. Part of the NRPy+ ecosystem.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages