Skip to content

Programs for modeling various aspects of general relativity and cosmology.

License

Notifications You must be signed in to change notification settings

KaiSmith/Pynstein

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alt tag

##What is Pynstein? Pynstein is a python library that allows the user to easily do general relativity calculations.

##Features

  • Given a metric, Pynstein can calculate:
    • Inerse metrics
    • Christoffel Symbols
    • Reimann Curvature Tensor
    • Ricci Curvature Tensor
    • Conservation equation
    • Einstein Tensor
    • and given the stress energy tensor, the Einstein Equations
  • Can numerically evolve a universe given inital conditions

##Dependencies

  • numpy
  • scipy
  • sympy
  • matplotlib

##Example Usage

#Define variables
t = sp.Symbol('t')
r = sp.Symbol('r')
theta = sp.Symbol('theta')
phi = sp.Symbol('phi')

#Define rho and p functions
w = sp.Symbol('w')
rho = sp.Function('rho')(t)
p = w*rho

#Create FRW metric
frw_metric = np.diag([-1, a**2/(1-k*r**2), a**2*r**2,a**2*r**2*sp.sin(theta)**2])
 frw_metric_key = [t, r, theta, phi]

#Generate Einstein tensor
einstein = einstein_tensor_from_scratch(frw_metric, frw_metric_key)
einstein = raise_one_index(einstein, frw_metric)

#Generate the 2 distinct Einstein field equations
ein_eq = einstein_equations(einstein, np.diag([-rho, p, p, p]))

##Authors Kai Smith (kai.smith@case.edu)

David Clark (davidclark@berkeley.edu)

About

Programs for modeling various aspects of general relativity and cosmology.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages