Poisson tensors¶
AUTHORS:
- Tobias Diez (2021): initial version 
- class sage.manifolds.differentiable.poisson_tensor.PoissonTensorField(manifold: DifferentiableManifold | VectorFieldModule, name: str | None = 'varpi', latex_name: str | None = '\\varpi')[source]¶
- Bases: - MultivectorField- A Poisson bivector field \(\varpi\) on a differentiable manifold. - That is, at each point \(m \in M\), \(\varpi_m\) is a bilinear map of the type: \[\varpi_m:\ T^*_m M \times T^*_m M \to \RR\]- where \(T^*_m M\) stands for the cotangent space to the manifold \(M\) at the point \(m\), such that \(\varpi_m\) is skew-symmetric and the Schouten-Nijenhuis bracket (cf. - bracket()) of \(\varpi\) with itself vanishes.- INPUT: - manifold– module \(\mathfrak{X}(M)\) of vector fields on the manifold \(M\), or the manifold \(M\) itself
- name– (default:- varpi) name given to the Poisson tensor
- latex_name– (default:- \\varpi) LaTeX symbol to denote the Poisson tensor; if- None, it is formed from- name
 - EXAMPLES: - A Poisson tensor on the 2-sphere: - sage: M.<x,y> = manifolds.Sphere(2, coordinates='stereographic') sage: stereoN = M.stereographic_coordinates(pole='north') sage: stereoS = M.stereographic_coordinates(pole='south') sage: varpi = M.poisson_tensor(name='varpi', latex_name=r'\varpi') sage: varpi 2-vector field varpi on the 2-sphere S^2 of radius 1 smoothly embedded in the Euclidean space E^3 - >>> from sage.all import * >>> M = manifolds.Sphere(Integer(2), coordinates='stereographic', names=('x', 'y',)); (x, y,) = M._first_ngens(2) >>> stereoN = M.stereographic_coordinates(pole='north') >>> stereoS = M.stereographic_coordinates(pole='south') >>> varpi = M.poisson_tensor(name='varpi', latex_name=r'\varpi') >>> varpi 2-vector field varpi on the 2-sphere S^2 of radius 1 smoothly embedded in the Euclidean space E^3 - varpiis initialized by providing its single nonvanishing component w.r.t. the vector frame associated to- stereoN, which is the default frame on- M:- sage: varpi[1, 2] = 1 - >>> from sage.all import * >>> varpi[Integer(1), Integer(2)] = Integer(1) - The components w.r.t. the vector frame associated to - stereoSare obtained thanks to the method- add_comp_by_continuation():- sage: varpi.add_comp_by_continuation(stereoS.frame(), ....: stereoS.domain().intersection(stereoN.domain())) sage: varpi.display() varpi = ∂/∂x∧∂/∂y sage: varpi.display(stereoS) varpi = (-xp^4 - 2*xp^2*yp^2 - yp^4) ∂/∂xp∧∂/∂yp - >>> from sage.all import * >>> varpi.add_comp_by_continuation(stereoS.frame(), ... stereoS.domain().intersection(stereoN.domain())) >>> varpi.display() varpi = ∂/∂x∧∂/∂y >>> varpi.display(stereoS) varpi = (-xp^4 - 2*xp^2*yp^2 - yp^4) ∂/∂xp∧∂/∂yp - The Schouten-Nijenhuis bracket of a Poisson tensor with itself vanishes (this is trivial here, since - Mis 2-dimensional):- sage: varpi.bracket(varpi).display() [varpi,varpi] = 0 - >>> from sage.all import * >>> varpi.bracket(varpi).display() [varpi,varpi] = 0 - hamiltonian_vector_field(function)[source]¶
- Return the Hamiltonian vector field \(X_f\) generated by the given function \(f: M \to \RR\). - The Hamiltonian vector field is defined by \[X_f = - \varpi^\sharp (d f),\]- where \(\varpi^\sharp: T^* M \to TM\) is given by \(\beta(\varpi^\sharp(\alpha)) = \varpi(\alpha, \beta)\). - INPUT: - function– the function generating the Hamiltonian vector field
 - EXAMPLES: - sage: M.<q, p> = EuclideanSpace(2) sage: poisson = M.poisson_tensor('varpi') sage: poisson.set_comp()[1,2] = -1 sage: f = M.scalar_field(function('f')(q, p), name='f') sage: Xf = poisson.hamiltonian_vector_field(f) sage: Xf.display() Xf = d(f)/dp e_q - d(f)/dq e_p - >>> from sage.all import * >>> M = EuclideanSpace(Integer(2), names=('q', 'p',)); (q, p,) = M._first_ngens(2) >>> poisson = M.poisson_tensor('varpi') >>> poisson.set_comp()[Integer(1),Integer(2)] = -Integer(1) >>> f = M.scalar_field(function('f')(q, p), name='f') >>> Xf = poisson.hamiltonian_vector_field(f) >>> Xf.display() Xf = d(f)/dp e_q - d(f)/dq e_p 
 - poisson_bracket(f, g)[source]¶
- Return the Poisson bracket \[\{f, g\} = \varpi(df, dg)\]- of the given functions. - INPUT: - f– first function
- g– second function
 - EXAMPLES: - sage: M.<q, p> = EuclideanSpace(2) sage: poisson = M.poisson_tensor('varpi') sage: poisson.set_comp()[1,2] = -1 sage: f = M.scalar_field(function('f')(q, p), name='f') sage: g = M.scalar_field(function('g')(q, p), name='g') sage: poisson.poisson_bracket(f, g).display() poisson(f, g): E^2 → ℝ (q, p) ↦ d(f)/dp*d(g)/dq - d(f)/dq*d(g)/dp - >>> from sage.all import * >>> M = EuclideanSpace(Integer(2), names=('q', 'p',)); (q, p,) = M._first_ngens(2) >>> poisson = M.poisson_tensor('varpi') >>> poisson.set_comp()[Integer(1),Integer(2)] = -Integer(1) >>> f = M.scalar_field(function('f')(q, p), name='f') >>> g = M.scalar_field(function('g')(q, p), name='g') >>> poisson.poisson_bracket(f, g).display() poisson(f, g): E^2 → ℝ (q, p) ↦ d(f)/dp*d(g)/dq - d(f)/dq*d(g)/dp 
 - sharp(form)[source]¶
- Return the image of the given differential form under the map \(\varpi^\sharp: T^* M \to TM\) defined by \[\beta(\varpi^\sharp(\alpha)) = \varpi(\alpha, \beta).\]- for all \(\alpha, \beta \in T^*_m M\). - In indices, \(\alpha^i = \varpi^{ij} \alpha_j\). - INPUT: - form– the differential form to calculate its sharp of
 - EXAMPLES: - sage: M.<q, p> = EuclideanSpace(2) sage: poisson = M.poisson_tensor('varpi') sage: poisson.set_comp()[1,2] = -1 sage: a = M.one_form(1, 0, name='a') sage: poisson.sharp(a).display() a_sharp = e_p - >>> from sage.all import * >>> M = EuclideanSpace(Integer(2), names=('q', 'p',)); (q, p,) = M._first_ngens(2) >>> poisson = M.poisson_tensor('varpi') >>> poisson.set_comp()[Integer(1),Integer(2)] = -Integer(1) >>> a = M.one_form(Integer(1), Integer(0), name='a') >>> poisson.sharp(a).display() a_sharp = e_p 
 
- class sage.manifolds.differentiable.poisson_tensor.PoissonTensorFieldParal(manifold: DifferentiableManifold | VectorFieldModule, name: str | None = None, latex_name: str | None = None)[source]¶
- Bases: - PoissonTensorField,- MultivectorFieldParal- A Poisson bivector field \(\varpi\) on a parallelizable manifold. - INPUT: - manifold– module \(\mathfrak{X}(M)\) of vector fields on the manifold \(M\), or the manifold \(M\) itself
- name– (default:- varpi) name given to the Poisson tensor
- latex_name– (default:- \\varpi) LaTeX symbol to denote the Poisson tensor; if- None, it is formed from- name
 - EXAMPLES: - Standard Poisson tensor on \(\RR^2\): - sage: M.<q, p> = EuclideanSpace(2) sage: varpi = M.poisson_tensor(name='varpi', latex_name=r'\varpi') sage: varpi[1,2] = -1 sage: varpi 2-vector field varpi on the Euclidean plane E^2 sage: varpi.display() varpi = -e_q∧e_p - >>> from sage.all import * >>> M = EuclideanSpace(Integer(2), names=('q', 'p',)); (q, p,) = M._first_ngens(2) >>> varpi = M.poisson_tensor(name='varpi', latex_name=r'\varpi') >>> varpi[Integer(1),Integer(2)] = -Integer(1) >>> varpi 2-vector field varpi on the Euclidean plane E^2 >>> varpi.display() varpi = -e_q∧e_p