# Add `positions` similar to `momenta` to `Model`

It would be useful for Hamiltonians with real space dependence (such as hopping terms in non-crystalline systems, or the continuum description of a quantum well) if we allowed definition of symbols that are `positions`

. The only difference compared to `momenta`

would be that they don't flip sign under antiunitary symmetry operations.

It could also be useful to allow multiple vectors that transform the same way, for example to treat interaction terms that have multiple momentum variables.

This is all possible in current `qsymm`

in a hacky way: extend the real space dimension to the total number of transforming symbols, use `momenta`

that is a single vector with all these vectors stacked, and make `R`

in `PointGroupElements`

block-diagonal with the appropriate transformation matrices in each block. The `positions`

type transformation can be faked by using `-R`

in antiunitary operators.

`<TLDR>`

We could consider supporting other similar quantities, like `angular_momenta`

which change sign under TR but do not change under spatial inversion (this really only makes sense in 3D, in lower dimensions it is ambiguous whether something is a rotation or an inversion). This would mostly be useful for classical dynamical variables, *not* for fixed external fields. For example one may ask, what is the symmetry of the electromagnetic term `E⋅B`

, a product of a `position`

and an `angular_momentum`

type variable (it is invariant under anything that doesn't change space-time orientation). However, when examining the symmetries of the quantum Hamiltonian `B⋅σ`

with fixed external field `B`

, `B`

should *not* be transformed. We should give this more thought, it is not clear to me how many types of such objects we need in general, whether the behaviour under PH and TR is independent.