Package: gtrpy
GTRPyGTRPy is a python package that allows you to calculate the well-known tensors in the General Theory of Relativity withoutwriting a single line of code. Furthermore, you can apply many operations to 6 different types of fields,in both 3D and 4D.It's tested for GNU/Linux. However, it should also work in macOS. If you ever encounter with a problem, feel free to create an issue.InstallationYou can easily install the GTRPy viapython3 -m pip install gtrpyor, you can directly clone the repositorygit clone https://github.com/camarman/GTRPy.gitto your favourite directoryRequirementsInstall thepython3requirements by runningpython3 -m pip install numpy Pillow pysimplegui sympyAdditionally, you will also needtkinterandLaTeXsupport to run the GTRPy. These can be installed by running:in Fedorasudo dnf install dvipng python3-tkinter texlive-collection-latex texlive-collection-latexextrain Ubuntusudo apt install dvipng python3-tk texlive-latex-base texlive-latex-extraUser GuideTo start GTRPy, simply runpython3 -m gtrpy.runThe program will create thelogsdirectory under your current directory, which will contain the outputs of the performed operations.Please look at thedocs/user_guide.mdfor a summary of the GTRPy. You can look at thedemosdirectory, to see more detailed examples.Current FeaturesGTR TensorsEither by using predefined coordinates or by defining the coordinate system yourself, you can calculate:Inverse Metric TensorChristoffel SymbolRiemann TensorRicci TensorRicci ScalarWeyl TensorTraceless Ricci TensorEinstein TensorKretschmann ScalarThe one important point in GTRPy is that the variables defined in the metric tensormust be constant. For example, you can write the Schwarzschild Coordinates System asg = diag[-(1-r_s/r), (1-r_s/r)**(-1), r^2, r^2sin^2(theta)]and that is totally fine for GTRPy, sincer_s = 2GM/c^2is a constant.Let us suppose you have another variable calledF(r)which is a function ofr. And the metric is given asg = diag[-1, F, r^2, r^2sin^2(theta)]Sadly, the GTRPy will interpret thisFas a constant and not as a function ofr. So the result will be wrong. On the other hand, if you know what that function is, for instance ifF(r) = r^3, then you should writer^3instead ofFand use the GTRPy in that way. Thus, you should write the metric asg = diag[-1, r^3, r^2, r^2sin^2(theta)]and now, the GTRPy will work perfectly fine.FieldsCurrently, there are 6 different types of fields that you can carry out operations. These are:Scalar FieldType (1,0) Vector FieldType (0,1) Vector FieldType (2,0) Tensor FieldType (1,1) Tensor FieldType (0,2) Tensor FieldAvailable Operations in GTRPyPrint out the equations obtained from each operation by clicking a single buttonChecking the Killing field condition for a given vector fieldVarying the type of a given vector and tensor fieldCalculating Covariant and Lie derivatives for scalar, vector, and tensor fieldsOverview4D/Main Page3D/Main Page4D/Scalar Field4D/Vector Field4D/Tensor Field3D/Scalar Field3D/Vector Field3D/Tensor FieldUpcoming FeaturesGradient, Divergence, Curl, and Laplace operations on fieldsPartial and Covariant derivatives of the GTR tensorsIncluding more coordinate systemsAdding a user-defined (custom) function supportContributingI am looking for developers who would like to contribute to the project. If you are interested, feel free to create an issue by stating how would you like to contribute. Any help or idea is appreciated. For more information, you can also look at theCONTRIBUTING.md.