# Revision history [back]

To get the value of a scalar field at a point, simply use the call method, i.e. the parenthesis operator. In your case:

gP3.ricci_scalar()(p)


Actually, at() is reserved to tensor fields of valence $>0$, since for them the call method has a different meaning.

To get the value of a scalar field at a point, simply use the call method, i.e. the parenthesis operator. In your case:

gP3.ricci_scalar()(p)


Actually, at() is reserved to tensor fields of valence $>0$, since for them the call method has a different meaning. For instance, if g is the metric tensor and u and v are two vector fields, the call method of g is used to denote the metric scalar product g(u,v). The following identity, which involves the various call methods and at(), holds:

g.at(p)(u.at(p), v.at(p)) == g(u, v)(p)


Here is a full example:

sage: E.<x,y> = EuclideanSpace()
sage: g = E.metric()
sage: u = E.vector_field(-y, x)
sage: v = E.vector_field(x+y, x-y)
sage: p = E((2, 3)); p
Point on the Euclidean plane E^2
sage: bool( g.at(p)(u.at(p), v.at(p)) == g(u, v)(p) )
True


To get the value of a scalar field at a point, simply use the call method, i.e. the parenthesis operator. In your case:

gP3.ricci_scalar()(p)


Actually, at() is reserved to tensor fields of valence $>0$, since for them the call method has a different meaning. For instance, if g is the metric tensor and u and v are two vector fields, the call method of g is used to denote the metric scalar product g(u,v). The following identity, which involves the various call methods and at(), holds:

g.at(p)(u.at(p), v.at(p)) == g(u, v)(p)


Here is a full example:

sage: E.<x,y> = EuclideanSpace()
sage: g = E.metric()
sage: g.display()
g = dx*dx + dy*dy
sage: u = E.vector_field(-y, x)
sage: v = E.vector_field(x+y, x-y)
sage: p = E((2, 3)); p
Point on the Euclidean plane E^2
sage: bool( g.at(p)(u.at(p), v.at(p)) == g(u, v)(p) )
True


To get the value of a scalar field at a point, simply use the call method, i.e. the parenthesis operator. In your case:

gP3.ricci_scalar()(p)


Actually, at() is reserved to tensor fields of valence $>0$, since for them the call method has a different meaning. For instance, if g is the metric tensor and u and v are two vector fields, the call method of g is used to denote the metric scalar product bilinear form action of g on the pair (u,v) as g(u,v). The following identity, which involves the various call methods and at(), holds:

g.at(p)(u.at(p), v.at(p)) == g(u, v)(p)


Here is a full example:

sage: E.<x,y> = EuclideanSpace()
sage: g = E.metric()
sage: g.display()
g = dx*dx + dy*dy
sage: u = E.vector_field(-y, x)
sage: v = E.vector_field(x+y, x-y)
sage: p = E((2, 3)); p
Point on the Euclidean plane E^2
sage: bool( g.at(p)(u.at(p), v.at(p)) == g(u, v)(p) )
True