# Revision history [back]

### Setting the components of a differential form systematically.

Suppose for some p and q we have a manifold

Sage: p=1
Sage: q=2

Sage: M = Manifold((2*p*q), 'M', field='complex')
Sage: U = M.open_subset('U')
Sage: x = U.chart(names=tuple('x_%d' % i for i in range(2*p*q)))
Sage: eU = x.frame()


and some differential forms

Sage: d = {(i): var("d_{}".format(i)) for i in range(2*p*q)}

Sage: for i in range(2*p*q):
Sage:     d[i] = M.diff_form(i)


I want to construct and/or inspect components of these differential forms in a systematic way, which is to say I want to be able to iterate over the components. So for example, one way in which I've tried to do this is to create lists.
For example, if we let

Sage: R = [eU, 0, 1]


I would want to say

Sage: d[2]R = 1


but this gives me a syntax error.
I've also tried something like

Sage: S = [0, 1]
Sage: d[2][eU, :]S = 1


but again I get a syntax error.

 2 retagged FrédéricC 5127 ●3 ●42 ●111

### Setting the components of a differential form systematically.

Suppose for some p and q we have a manifold

Sage: p=1
Sage: q=2

Sage: M = Manifold((2*p*q), 'M', field='complex')
Sage: U = M.open_subset('U')
Sage: x = U.chart(names=tuple('x_%d' % i for i in range(2*p*q)))
Sage: eU = x.frame()


and some differential forms

Sage: d = {(i): var("d_{}".format(i)) for i in range(2*p*q)}

Sage: for i in range(2*p*q):
Sage:     d[i] = M.diff_form(i)


I want to construct and/or inspect components of these differential forms in a systematic way, which is to say I want to be able to iterate over the components. So for example, one way in which I've tried to do this is to create lists.
For example, if we let

Sage: R = [eU, 0, 1]


I would want to say

Sage: d[2]R = 1


but this gives me a syntax error.
I've also tried something like

Sage: S = [0, 1]
Sage: d[2][eU, :]S = 1


but again I get a syntax error.