~~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.

Thanks in advance!

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

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

`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
```