# Revision history [back]

### Coordinate charts, functions of one variable as bounds of another(?)

Hi there. I have a Manifold (4,M) and its coordinate chart defined as:

M = Manifold(4, 'M', latex_name=r'\mathcal{M}', structure='Lorentzian')

X.<t,r,th,ph>=M.chart(r"t r:(0,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

X.coord_range()

sage: t: (−∞,+∞);r: (0,+∞);θ: (0,π);ph: 0,2π

What i am trying to do ,unsuccesfully so far, is to pass a (θ) function as the lower bound of my 'r' coordinates domain.

Lets say that i have an r(th) function r(th)=th^2+0.52 . It does work if i insert it directly in the range as

X.<t,r,th,ph>=M.chart(r"t r:(th^2+0.52,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

but for more complex functions of r,th , this is not really an option. I have an (r,th) surface that needs to serve as my r domain, which unfortunately can not be solved for r in order to use this.

So,I need to figure out one of these two to solve the problem i currently have:

i) somehow use a callable function in the lower 'r' bound, for example

X.=M.chart(r"t r:(K(th),+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

which when i try i get a

TypeError: unable to simplify to float approximation

or

ii) use a chart function of sort to restrict the r variable with a surface (r,th) and keep the other 3 restrictions as they are.

### Coordinate charts, functions of one variable as bounds of another(?)

Hi there. I have a Manifold (4,M) and its coordinate chart defined as:

M = Manifold(4, 'M', latex_name=r'\mathcal{M}', structure='Lorentzian')

X.<t,r,th,ph>=M.chart(r"t r:(0,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

X.coord_range()

sage: t: (−∞,+∞);r: (0,+∞);θ: (0,π);ph: 0,2π

What i am trying to do ,unsuccesfully so far, is to pass a (θ) function as the lower bound of my 'r' coordinates domain.

Lets say that i have an r(th) function r(th)=th^2+0.52 . It does work if i insert it directly in the range as

X.<t,r,th,ph>=M.chart(r"t r:(th^2+0.52,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

but for more complex functions of r,th , this is not really an option. I have an (r,th) surface that needs to serve as my r domain, which unfortunately can not be solved for r in order to use this.

So,I need to figure out one of these two to solve the problem i currently have:

i) somehow use a callable function in the lower 'r' bound, for example

X.=M.chart(r"t r:(K(th),+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

which when i try i get a

TypeError: unable to simplify to float approximation

or

ii) use a chart function of sort to restrict the r variable with a surface (r,th) and keep the other 3 restrictions as they are.

### Coordinate charts, functions of one variable coordinate as bounds of another(?)

Hi there. I have a Manifold (4,M) and its coordinate chart defined as:

M = Manifold(4, 'M', latex_name=r'\mathcal{M}', structure='Lorentzian')

X.<t,r,th,ph>=M.chart(r"t r:(0,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

X.coord_range()

sage: t: (−∞,+∞);r: (0,+∞);θ: (0,π);ph: 0,2π

What i am trying to do ,unsuccesfully so far, is to pass a (θ) function as the lower bound of my 'r' coordinates domain.

Lets say that i have an r(th) function r(th)=th^2+0.52 . It does work if i insert it directly in the range as

X.<t,r,th,ph>=M.chart(r"t r:(th^2+0.52,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

but for more complex functions of r,th , this is not really an option. I have an (r,th) surface that needs to serve as my r domain, which unfortunately can not be solved for r in order to use this.

So,I need to figure out one of these two to solve the problem i currently have:

i) somehow use a callable function in the lower 'r' bound, for example

X.=M.chart(r"t r:(K(th),+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

which when i try i get a

TypeError: unable to simplify to float approximation

or

ii) use a chart function of sort to restrict the r variable with a surface (r,th) and keep the other 3 restrictions as they are.

Update 1: surface i need to pass as a restriction in addition to r>2.

f(r,th)=0.160000000000000sin(th)^4/r^2 - 1/256(0.120000000000000r^7log(r - 2) - 30r^6(0.0160000000000000log(r - 2) - 0.00800000000000000) + 2r^5(0.240000000000000log(r - 2) - 8.36000000000000) + 32.3200000000000r^4 + 0.160000000000000r^3 - (0.360000000000000r^7log(r - 2) - 90r^6(0.0160000000000000log(r - 2) - 0.00800000000000000) + 90r^5(0.0160000000000000log(r - 2) - 0.0240000000000000) + 0.960000000000000r^4 + 0.480000000000000r^3 + 1.92000000000000r^2 - 45(0.00800000000000000r^7 - 0.0320000000000000r^6 + 0.0320000000000000r^5)log(r) + 0.640000000000000r - 3.84000000000000)cos(th)^2 + 0.640000000000000r^2 - 15(0.00800000000000000r^7 - 0.0320000000000000r^6 + 0.0320000000000000r^5)log(r) + 0.640000000000000r - 1.28000000000000)(0.120000000000000r^6log(r - 2) + 0.240000000000000r^5 - 2r^4(0.120000000000000log(r - 2) - 8.12000000000000) - 0.160000000000000r^3 - 3(0.120000000000000r^6log(r - 2) + 0.240000000000000r^5 - 30r^4(0.00800000000000000log(r - 2) - 0.00800000000000000) - 0.160000000000000r^3 - 15(0.00800000000000000r^6 - 0.0160000000000000r^4)log(r) + 0.640000000000000r + 1.28000000000000)cos(th)^2 - 15(0.00800000000000000r^6 - 0.0160000000000000r^4)log(r) + 0.640000000000000r + 1.28000000000000)*sin(th)^2/r^7>10^(-1)

### Coordinate charts, functions of one coordinate as bounds of another(?)

Hi there. I have a Manifold (4,M) and its coordinate chart defined as:

M = Manifold(4, 'M', latex_name=r'\mathcal{M}', structure='Lorentzian')

X.<t,r,th,ph>=M.chart(r"t r:(0,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

X.coord_range()

sage: t: (−∞,+∞);r: (0,+∞);θ: (0,π);ph: 0,2π

What i am trying to do ,unsuccesfully so far, is to pass a (θ) function as the lower bound of my 'r' coordinates domain.

Lets say that i have an r(th) function r(th)=th^2+0.52 . It does work if i insert it directly in the range as

X.<t,r,th,ph>=M.chart(r"t r:(th^2+0.52,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

but for more complex functions of r,th , this is not really an option. I have an (r,th) surface that needs to serve as my r domain, which unfortunately can not be solved for r in order to use this.

So,I need to figure out one of these two to solve the problem i currently have:

i) somehow use a callable function in the lower 'r' bound, for example

X.=M.chart(r"t r:(K(th),+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

which when i try i get a

TypeError: unable to simplify to float approximation

or

ii) use a chart function of sort to restrict the r variable with a surface (r,th) and keep the other 3 restrictions as they are.

Update 1: surface i need to pass as a restriction in addition to r>2.

f(r,th)=0.160000000000000sin(th)^4/r^2 - 1/256(0.120000000000000r^7log(r - 2) - 30r^6(0.0160000000000000log(r - 2) - 0.00800000000000000) + 2r^5(0.240000000000000log(r - 2) - 8.36000000000000) + 32.3200000000000r^4 + 0.160000000000000r^3 - (0.360000000000000r^7log(r - 2) - 90r^6(0.0160000000000000log(r - 2) - 0.00800000000000000) + 90r^5(0.0160000000000000log(r - 2) - 0.0240000000000000) + 0.960000000000000r^4 + 0.480000000000000r^3 + 1.92000000000000r^2 - 45(0.00800000000000000r^7 - 0.0320000000000000r^6 + 0.0320000000000000r^5)log(r) + 0.640000000000000r - 3.84000000000000)cos(th)^2 + 0.640000000000000r^2 - 15(0.00800000000000000r^7 - 0.0320000000000000r^6 + 0.0320000000000000r^5)log(r) + 0.640000000000000r - 1.28000000000000)(0.120000000000000r^6log(r - 2) + 0.240000000000000r^5 - 2r^4(0.120000000000000log(r - 2) - 8.12000000000000) - 0.160000000000000r^3 - 3(0.120000000000000r^6log(r - 2) + 0.240000000000000r^5 - 30r^4(0.00800000000000000log(r - 2) - 0.00800000000000000) - 0.160000000000000r^3 - 15(0.00800000000000000r^6 - 0.0160000000000000r^4)log(r) + 0.640000000000000r + 1.28000000000000)cos(th)^2 - 15(0.00800000000000000r^6 - 0.0160000000000000r^4)log(r) + 0.640000000000000r + 1.28000000000000)*sin(th)^2/r^7>10^(-1)1.28000000000000)*sin(th)^2/r^7

### Coordinate charts, functions of one coordinate as bounds of another(?)

Hi there. I have a Manifold (4,M) and its coordinate chart defined as:

M = Manifold(4, 'M',
latex_name=r'\mathcal{M}',
structure='Lorentzian') 'M',latex_name=r'\mathcal{M}', structure='Lorentzian')

X.<t,r,th,ph>=M.chart(r"t r:(0,+inf)
th:(0,pi):\theta
ph:(0,2*pi):periodic\phi") X.coord_range() r:(0,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

X.coord_range()

sage: t: (−∞,+∞);r: (0,+∞);θ: (0,π);ph: 0,2π 
[0,2π](periodic) 

What i am trying to do ,unsuccesfully so far, is to pass a (θ) function as the lower bound of my 'r' coordinates domain.

Lets say that i have an r(th) function r(th)=th^2+0.52 . It does work if i insert it directly in the range as

X.<t,r,th,ph>=M.chart(r"t r:(th^2+0.52,+inf)
th:(0,pi):\theta
ph:(0,2*pi):periodic\phi") 
r:(th^2+0.52,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi") 

but for more complex functions of r,th , this is not really an option. I have an (r,th) surface that needs to serve as my r domain, which unfortunately can not be solved for r in order to use this.

So,I need to figure out one of these two to solve the problem i currently have:

i) somehow use a callable function in the lower 'r' bound, for example

X.=M.chart(r"t

X.<t,r,th,ph>=M.chart(r"t r:(K(th),+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")  
ph:(0,2*pi):periodic\phi") 

which when i try i get a

TypeError: unable to simplify to float approximation 
approximation 

or

ii) use a chart function of sort to restrict the r variable with a surface (r,th) and keep the other 3 restrictions as they are.

Update 1: surface i need to pass as a restriction in addition to r>2.

f(r,th)=0.160000000000000sin(th)^4/r^2 - 1/256(0.120000000000000r^7log(r - 2) - 30r^6(0.0160000000000000log(r - 2) - 0.00800000000000000) + 2r^5(0.240000000000000log(r - 2) - 8.36000000000000) + 32.3200000000000r^4 + 0.160000000000000r^3 - (0.360000000000000r^7log(r - 2) - 90r^6(0.0160000000000000log(r - 2) - 0.00800000000000000) + 90r^5(0.0160000000000000log(r - 2) - 0.0240000000000000) + 0.960000000000000r^4 + 0.480000000000000r^3 + 1.92000000000000r^2 - 45(0.00800000000000000r^7 - 0.0320000000000000r^6 + 0.0320000000000000r^5)log(r) + 0.640000000000000r - 3.84000000000000)cos(th)^2 + 0.640000000000000r^2 - 15(0.00800000000000000r^7 - 0.0320000000000000r^6 + 0.0320000000000000r^5)log(r) + 0.640000000000000r - 1.28000000000000)(0.120000000000000r^6log(r - 2) + 0.240000000000000r^5 - 2r^4(0.120000000000000log(r - 2) - 8.12000000000000) - 0.160000000000000r^3 - 3(0.120000000000000r^6log(r - 2) + 0.240000000000000r^5 - 30r^4(0.00800000000000000log(r - 2) - 0.00800000000000000) - 0.160000000000000r^3 - 15(0.00800000000000000r^6 - 0.0160000000000000r^4)log(r) + 0.640000000000000r + 1.28000000000000)cos(th)^2 - 15(0.00800000000000000r^6 - 0.0160000000000000r^4)log(r) + 0.640000000000000r + 1.28000000000000)*sin(th)^2/r^7

### Coordinate charts, functions of one coordinate as bounds of another(?)

Hi there. I have a Manifold (4,M) and its coordinate chart defined as:

M = Manifold(4, 'M',latex_name=r'\mathcal{M}', structure='Lorentzian')

X.<t,r,th,ph>=M.chart(r"t r:(0,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

X.coord_range()

sage: t: (−∞,+∞);r: (0,+∞);θ: (0,π);ph: [0,2π](periodic)


What i am trying to do ,unsuccesfully so far, is to pass a (θ) function as the lower bound of my 'r' coordinates domain.

Lets say that i have an r(th) function r(th)=th^2+0.52 . It does work if i insert it directly in the range as

X.<t,r,th,ph>=M.chart(r"t r:(th^2+0.52,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")


but for more complex functions of r,th , this is not really an option. I have an (r,th) surface that needs to serve as my r domain, which unfortunately can not be solved for r in order to use this.

So,I need to figure out one of these two to solve the problem i currently have:

somehow use a callable function in the lower 'r' bound, for example

X.<t,r,th,ph>=M.chart(r"t r:(K(th),+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")


which when i try i get a

TypeError: unable to simplify to float approximation


or

ii) use a chart function of sort to restrict the r variable with a surface (r,th) and keep the other 3 restrictions as they are.

Update 1: 1: surface i need to pass as a restriction in addition to r>2.

f(r,th)=0.160000000000000sin(th)^4/r^2 - 1/256(0.120000000000000r^7log(r - 2) - 30r^6(0.0160000000000000log(r - 2) - 0.00800000000000000) + 2r^5(0.240000000000000log(r - 2) - 8.36000000000000) + 32.3200000000000r^4 + 0.160000000000000r^3 - (0.360000000000000r^7log(r - 2) - 90r^6(0.0160000000000000log(r - 2) - 0.00800000000000000) + 90r^5(0.0160000000000000log(r - 2) - 0.0240000000000000) + 0.960000000000000r^4 + 0.480000000000000r^3 + 1.92000000000000r^2 - 45(0.00800000000000000r^7 - 0.0320000000000000r^6 + 0.0320000000000000r^5)log(r) + 0.640000000000000r - 3.84000000000000)cos(th)^2 + 0.640000000000000r^2 - 15(0.00800000000000000r^7 - 0.0320000000000000r^6 + 0.0320000000000000r^5)log(r) + 0.640000000000000r - 1.28000000000000)(0.120000000000000r^6log(r - 2) + 0.240000000000000r^5 - 2r^4(0.120000000000000log(r - 2) - 8.12000000000000) - 0.160000000000000r^3 - 3(0.120000000000000r^6log(r - 2) + 0.240000000000000r^5 - 30r^4(0.00800000000000000log(r - 2) - 0.00800000000000000) - 0.160000000000000r^3 - 15(0.00800000000000000r^6 - 0.0160000000000000r^4)log(r) + 0.640000000000000r + 1.28000000000000)cos(th)^2 - 15(0.00800000000000000r^6 - 0.0160000000000000r^4)log(r) + 0.640000000000000r + 1.28000000000000)*sin(th)^2/r^7 7 None

### Coordinate charts, functions of one coordinate as bounds of another(?)

Hi there. I have a Manifold (4,M) and its coordinate chart defined as: as:

M = Manifold(4, 'M',latex_name=r'\mathcal{M}', 'M', latex_name=r'\mathcal{M}', structure='Lorentzian')

X.<t,r,th,ph>=M.chart(r"t r:(0,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")

X.<t,r,th,ph> = M.chart(r"t r:(0,+oo) th:(0,π):\theta ph:(0,2*π):periodic\phi")


which gives:

sage: X.coord_range()

sage: t: (−∞,+∞);r: (0,+∞);θ: (0,π);ph: [0,2π](periodic)
(-oo, +oo); r: (0, +oo); th: (0, pi); ph: [0, 2*pi] (periodic)


What i am trying to do ,unsuccesfully do, unsuccessfully so far, is to pass a (θ) pass a function of θ as the lower bound of my 'r' r coordinates domain.

Lets Let's say that i have an r(th) function r(th) function r(th)=th^2+0.52 . = th^2 + 0.2. It does work if i insert it directly in the range as

X.<t,r,th,ph>=M.chart(r"t r:(th^2+0.52,+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")
X.<t,r,th,ph> = M.chart(r"t r:(th^2+0.2,+oo) th:(0,π):\theta ph:(0,2*π):periodic\phi")


but for more complex functions of r,th r, th, this is not really an option. option. I have an (r,th) (r, th) surface that needs to serve as my r domain, r domain, which unfortunately can not cannot be solved for r r in order to use this.

So,I So, I need to figure out one of these two to solve the problem i currently have:

(i) somehow use a callable function in the lower 'r' r bound, for example

X.<t,r,th,ph>=M.chart(r"t r:(K(th),+inf) th:(0,pi):\theta ph:(0,2*pi):periodic\phi")
X.<t,r,th,ph> = M.chart(r"t r:(K(th),+oo) th:(0,π):\theta ph:(0,2*π):periodic\phi")


which when i try i get a

TypeError: unable to simplify to float approximation


or

ii) (ii) use a chart function of sort to restrict the r r variable with with a surface (r,th) (r, th) and keep the other 3 restrictions as they are.

r>2.
f(r, th) = 0.16*sin(th)^4/r^2 - 1/256*(0.12*r^7*log(r - 2) - 30*r^6*(0.016*log(r - 2) - 0.008) + 2*r^5*(0.24*log(r - 2) - 8.36) + 32.32*r^4 + 0.16*r^3 - (0.36*r^7*log(r - 2) - 90*r^6*(0.016*log(r - 2) - 0.008) + 90*r^5*(0.016*log(r - 2) - 0.024) + 0.96*r^4 + 0.48*r^3 + 1.92*r^2 - 45*(0.008*r^7 - 0.032*r^6 + 0.032*r^5)*log(r) + 0.64*r - 3.84)*cos(th)^2 + 0.64*r^2 - 15*(0.008*r^7 - 0.032*r^6 + 0.032*r^5)*log(r) + 0.64*r - 1.28)*(0.12*r^6*log(r - 2) + 0.24*r^5 - 2*r^4*(0.12*log(r - 2) - 8.12) - 0.16*r^3 - 3*(0.12*r^6*log(r - 2) + 0.24*r^5 - 30*r^4*(0.008*log(r - 2) - 0.008) - 0.16*r^3 - 15*(0.008*r^6 - 0.016*r^4)*log(r) + 0.64*r + 1.28)*cos(th)^2 - 15*(0.008*r^6 - 0.016*r^4)*log(r) + 0.64*r + 1.28)*sin(th)^2/r^7