# Evaluating a form field at a point on vectors

I am having trouble matching up terminology in my textbook (Hubbard's *Vector Calculus*) against SageMath operators. I'd like to understand how to solve the following example problem with Sage:

Let

`phi = cos(x z) * dx /\ dy`

be a 2-form on`R^3`

. Evaluate it at the point`(1, 2, pi)`

on the vectors`[1, 0, 1], [2, 2, 3]`

.

The expected answer is:

```
cos (1 * pi) * Matrix([1, 2], [0, 2]).det() = -2
```

So far I have pieced together the following:

```
E.<x,y,z> = EuclideanSpace(3, 'E')
f = E.diff_form(2, 'f')
f[1, 2] = cos(x * z)
point = E((1,2,pi), name='point')
anchor = f.at(point)
v1 = vector([1, 0, 1])
v2 = vector([2, 2, 3])
show(anchor(v1, v2))
```

which fails with the error:

`TypeError: the argument no. 1 must be a module element`

To construct a vector in `E`

, I tried:

```
p1 = E(v1.list())
p2 = E(v2.list())
show(anchor(p1, p2))
```

but that fails with the same error. What's the right way to construct two vectors in `E`

?

Motivated by your question, I've opened the ticket https://trac.sagemath.org/ticket/31609 to add a method

`vector()`

in order to easily create vectors at a given point.Also asked at Stack Overflow question 66934629: Evaluating a form field at a point on vectors in SageMath.