{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'SageMath version 8.0, Release Date: 2017-07-21'"
]
},
"execution_count": 1,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"version()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"%display latex"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"# General case: F(t)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"## Spacetime"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4-dimensional differentiable manifold M\n"
]
}
],
"source": [
"M = Manifold(4, 'M')\n",
"print(M)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
]
},
"execution_count": 4,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"XBL. = M.chart(r't x th:(0,pi):\\theta ph:(0,2*pi):\\phi')\n",
"XBL"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
]
},
"execution_count": 5,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"g = M.lorentzian_metric('g')\n",
"F=function('F')(t)\n",
"g[0,0]=-1/F\n",
"g[1,1]=F\n",
"g[2,2]=t^2\n",
"g[3,3]=t^2*sin(th)^2\n",
"g.display()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"## Ricci's scalar"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Scalar field r(g) on the 4-dimensional differentiable manifold M\n"
]
}
],
"source": [
"Ric = g.ricci_scalar() ; print(Ric)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
]
},
"execution_count": 7,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"Ric.expr().factor()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"## Kretschmann's scalar"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tensor field Riem(g) of type (1,3) on the 4-dimensional differentiable manifold M\n"
]
}
],
"source": [
"R = g.riemann() ; print(R)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tensor field of type (0,4) on the 4-dimensional differentiable manifold M\n"
]
}
],
"source": [
"dR = R.down(g); print(dR)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tensor field of type (4,0) on the 4-dimensional differentiable manifold M\n"
]
}
],
"source": [
"uR = R.up(g); print(uR)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
]
},
"execution_count": 11,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"Kr_scalar = uR['^{abcd}']*dR['_{abcd}']\n",
"K=Kr_scalar.expr().factor()\n",
"K"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"# Case 1 (Hayward): F_1(t)=\\frac{2t^2}{t^3+2b^2}-1 --> nonsingular"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"var('b');"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"## Spacetime"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
]
},
"execution_count": 13,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"g1 = M.lorentzian_metric('g1')\n",
"F1=2*t^2/(t^3+2*b)-1\n",
"g1[0,0]=-1/F1\n",
"g1[1,1]=F1\n",
"g1[2,2]=t^2\n",
"g1[3,3]=t^2*sin(th)^2\n",
"g1.display()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"## Ricci's scalar"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Scalar field r(g1) on the 4-dimensional differentiable manifold M\n"
]
}
],
"source": [
"Ric1 = g1.ricci_scalar() ; print(Ric1)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
]
},
"execution_count": 15,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"Ric1.expr().factor()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"## Kretschmann's scalar"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tensor field Riem(g1) of type (1,3) on the 4-dimensional differentiable manifold M\n"
]
}
],
"source": [
"R1 = g1.riemann() ; print(R1)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tensor field of type (0,4) on the 4-dimensional differentiable manifold M\n"
]
}
],
"source": [
"dR1 = R1.down(g1); print(dR1)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tensor field of type (4,0) on the 4-dimensional differentiable manifold M\n"
]
}
],
"source": [
"uR1 = R1.up(g1); print(uR1)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
]
},
"execution_count": 19,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"Kr_scalar1 = uR1['^{abcd}']*dR1['_{abcd}']\n",
"K1=Kr_scalar1.expr().factor()\n",
"K1"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"# Case 2: F_2(t)=\\frac{2t}{t^2+2b}-1 --> singular"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"## Spacetime"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
]
},
"execution_count": 20,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"g2 = M.lorentzian_metric('g2')\n",
"F2=2*t/(t^2+2*b)-1\n",
"g2[0,0]=-1/F2\n",
"g2[1,1]=F2\n",
"g2[2,2]=t^2\n",
"g2[3,3]=t^2*sin(th)^2\n",
"g2.display()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"## Ricci's scalar"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Scalar field r(g2) on the 4-dimensional differentiable manifold M\n"
]
}
],
"source": [
"Ric2 = g2.ricci_scalar() ; print(Ric2)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
]
},
"execution_count": 22,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"Ric2.expr().factor()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"## Kretschmann's scalar"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tensor field Riem(g2) of type (1,3) on the 4-dimensional differentiable manifold M\n"
]
}
],
"source": [
"R2 = g2.riemann() ; print(R2)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tensor field of type (0,4) on the 4-dimensional differentiable manifold M\n"
]
}
],
"source": [
"dR2 = R2.down(g2); print(dR2)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tensor field of type (4,0) on the 4-dimensional differentiable manifold M\n"
]
}
],
"source": [
"uR2 = R2.up(g2); print(uR2)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
]
},
"execution_count": 26,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"Kr_scalar2 = uR2['^{abcd}']*dR2['_{abcd}']\n",
"K2=Kr_scalar2.expr().factor()\n",
"K2"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 8.0",
"name": "sage-8.0"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.13"
}
},
"nbformat": 4,
"nbformat_minor": 0
}