JOURNAL OF GEOMETRIC MECHANICS doi:10.3934/jgm.2021018 ©American Institute of Mathematical Sciences
ON COMPUTATIONAL POISSON GEOMETRY I: SYMBOLIC FOUNDATIONS
Miguel Angel´ Evangelista-Alvarado, Jose´ Crisp´ın Ru´ız-Pantaleon´ ∗ and Pablo Suarez-Serrato´ Instituto de Matem´aticas Universidad Nacional Aut´onomade M´exico Circuito Exterior, Ciudad Universitaria, Coyoac´an,04510, Mexico City, Mexico
(Communicated by Juan C. Marrero)
Abstract. We present a computational toolkit for (local) Poisson–Nijenhuis calculus on manifolds. Our Python module PoissonGeometry implements our algorithms and accompanies this paper. Examples of how our methods can be used are explained, including gauge transformations of Poisson bivector in di- mension 3, parametric Poisson bivector fields in dimension 4, and Hamiltonian vector fields of parametric families of Poisson bivectors in dimension 6.
1. Introduction. The origin of the concepts in this paper is the analysis of me- chanical systems of Sim´eonDenis Poisson in 1809 [33]. A Poisson manifold is a pair (M, Π), where M is a smooth manifold and Π a contravariant 2–tensor field (bivector field) on M satisfying the equation [[Π, Π]] = 0, (1) with respect to the Schouten–Nijenhuis bracket [[ , ]] for multivector fields [31, 13]. Suppose m = dim M, and fix a local coordinate system x = (U; x1, . . . , xm) on M. Then, Π has the following coordinate representation [28, 37]: ∂ ∂ X ∂ ∂ Π = 1 Πij ∧ = Πij ∧ (2) 2 ∂xi ∂xj ∂xi ∂xj 1≤i ij ∞ Here, the functions Π ∈ CU are called the coefficients of Π, they are skew– symmetric, Πji = −Πij, and {∂/∂xi} is the canonical basis for vector fields on U ⊆ M. The Poisson bivector field, and its associated bracket, are essential elements in the comprehension of Hamiltonian dynamics [27, 13]. We recommend interested readers consult the available surveys of this field [39, 23]. 2020 Mathematics Subject Classification. Primary: 68W30, 97N80, 53D17. Key words and phrases. Poisson structures, Poisson–Nijenhuis calculus, symbolic computation, Python. This research was partially supported by CONACyT, “Programa para un Avance Global e Inte- grado de la Matem´aticaMexicana” FORDECYT 265667 and UNAM-DGAPA-PAPIIT-IN104819. JCRP thanks CONACyT for a postdoctoral fellowship held during the production of this work. ∗ Corresponding author: Jos´eCrisp´ınRu´ız-Pantale´on. 1 2 EVANGELISTA–ALVARADO, RU´IZ–PANTALEON´ AND SUAREZ–SERRATO´ Table1 below compiles the functions in our Python module PoissonGeometry1, their corresponding algorithm, and examples where such objects are used in the references. We describe all of our algorithms in section 2. Finally, in section 3 we present two applications that illustrate the usefulness of our computational methods. These are, a new result about gauge transformations of Poisson bivector fields in dimension 3 (Proposition 3.1), and a description of parametric families of Poisson bivectors in dimension 4 (Lemma 3.2). Table 1. Functions, corresponding algorithms, and examples where each particular method can be or has been, used in the theory of Poisson geometry. Our methods perform the symbolic calculus that realize these ideas computationally. Function Algorithm Examples sharp morphism 2.1 [13, 27,7] poisson bracket 2.2 [27,7] hamiltonian vf 2.3 [7, 36] coboundary operator 2.4 [32,2] curl operator 2.5 [12,2] bivector to matrix 2.6 [13, 27,7] jacobiator 2.7 [13, 27,7] modular vf 2.8 [1, 21,2] is unimodular homogeneous * 2.9 [12, 27,2,7] one forms bracket 2.10 [16, 23] gauge transformation 2.11 [10,9] linear normal form R3 2.12 [32,7] isomorphic lie poisson R3 2.13 [32,7] flaschka ratiu bivector 2.14 [12, 18, 35, 15] is poisson tensor * 2.15 [18, 35, 15] is in kernel * 2.16 [13, 27,2,7] is casimir * 2.17 [12, 18, 35, 15] is poisson vf * 2.18 [32,3] is poisson pair * 2.19 [4,2] Remark 1. We have indicated with an asterisk (*) the six methods whose im- plementations require testing whether a symbolic expression is zero. Theoretical computational constraints naturally limit these. The following diagram illustrates functional dependencies in PoissonGeometry. 1Our code repository is found at: https://github.com/appliedgeometry/poissongeometry. ON COMPUTATIONAL POISSON GEOMETRY I 3 one forms bracket sharp morphism is in kernel hamiltonian vf is casimir poisson bracket jacobiator coboundary operator is poisson tensor is poisson vf flaschka ratiu bivector is poisson pair curl operator modular vf bivector to matrix is unimodular homogeneous gauge transformation linear normal form R3 isomorphic lie poisson R3 2. Syntax and implementation of PoissonGeometry methods. PoissonGeom- etry is our Python module for local calculus on Poisson manifolds. First, we define symbolic variables that emulate local coordinates on a finite smooth manifold M. By default, these symbolic variables are just the juxtaposition of the symbol x and an index of the set {1, . . . , m = dim M}: (x1, . . . , xm). Scalar Functions. A local representation of a scalar function is written in Pois- sonGeometry using string literal expressions. For example, the function f = a(x1)2 + b(x2)2 + c(x3)2 should be written exactly as follows: ‘a * x1**2 + b * x2**2 + c * x3**2’. All characters that are not local coordinates are treated as (symbolic) pa- rameters: a, b and c for the previous example. Our standing assumption is that the functions involved in all the algorithms below are computable. Multivector Fields and Differential forms. Both multivector fields and differ- ential forms are written using dictionaries with tuples of integers as keys and string type values. If the coordinate expression of a (non–trivial) a–multivector field A on M, with a ∈ N, is given by X ∂ ∂ ∂ A = Ai1i2···ia ∧ ∧ · · · ∧ ,Ai1···ia = Ai1···ia (x), ∂xi1 ∂xi2 ∂xia 1≤i1 1···a i1···ia m−a+1···m (1, ..., a): A , ..., (i1, ..., ia): A , ..., (m − a + 1, ..., m): A . Here, each key (i1, . . . , ia) is a tuple containing ordered indices 1 ≤ i1 < ··· < ia ≤ m, and the corresponding value Ai1···ia is the string expression of the scalar function (coefficient) Ai1···ia of A. 4 EVANGELISTA–ALVARADO, RU´IZ–PANTALEON´ AND SUAREZ–SERRATO´ The syntax for differential forms is the same. It is important to remark that we only need to write the keys and values of non–zero coefficients. See the documen- tation for more details. Now we will describe the implementation of all functions of the module Pois- sonGeometry. 2.1. Key functions. This subsection contains functions that serve as a basis for the implementation of almost all functions of PoissonGeometry. 2.1.1. Sharp morphism. The function sharp morphism computes the image of a dif- ferential 1–form under the vector bundle morphism Π] : T∗M → TM, induced by a bivector field Π on M, defined by β, Π](α) := Π(α, β), (3) for any α, β ∈ T∗M [13, 27]. Here, h , i is the natural pairing for differential 1–forms and vector fields. ] Equivalently, Π (α) = iαΠ, where i• is the interior product of multivector fields and differential forms defined by the rule iβ∧β0 := iβ ◦ iβ0 [24]. Analogously for j vector fields. In local coordinates, if α = αj dx , j = 1, . . . , m, then m X ∂ X ∂ ∂ Π](α) = α Πij = α Πij − α Πij . (4) i ∂xj i ∂xj j ∂xi i,j=1 1≤i Algorithm 2.1 sharp morphism(bivector, one form) Input: a (Poisson) bivector field Π and a differential 1–form α Output: a vector field, which is the image of α under the vector bundle morphism in (3) induced by Π 1: procedure 2: m ← dimension of the manifold 3: if m = 1 then . bivector fields are trivial in this case 4: return a variable encoding the trivial vector field 5: end if 6: bivector ← a variable encoding the (Poisson) bivector field 7: one form ← a variable encoding the differential 1–form 8: sharp array ← a variable encoding the computation of the vector field Π](α) in (4), using bivector and one form 9: return sharp array 10: end procedure Observe that the morphism in (3) is defined, in particular, for Poisson bivector fields. So the function sharp morphism can be applied to this class of bivector fields. 2.1.2. Poisson brackets. A Poisson bracket on M is a Lie bracket structure { , } on ∞ the space of smooth functions CM which is compatible with the pointwise product by the Leibniz rule [13, 27]. Explicitly, the Poisson bracket induced by a Poisson bivector field Π on M is given by the formula i ∂g {f, g} = dg, Π](df) = Π](df) , f, g ∈ C ∞; (5) Π ∂xi M for i = 1, . . . , m. ON COMPUTATIONAL POISSON GEOMETRY I 5 The function poisson bracket computes the Poisson bracket, induced by a Poisson bivector field, of two scalar functions. Algorithm 2.2 poisson bracket(bivector, function 1, function 2 ) Input: a Poisson bivector field and two scalar functions Output: the Poisson bracket, induced by the Poisson bivector field, of the two scalar functions 1: procedure 2: m ← dimension of the manifold 3: if m = 1 then 4: return 0 . bivector fields are trivial in this case 5: end if 6: bivector ← a variable encoding the Poisson bivector field 7: function 1, function 2 ← variables encoding the scalar functions 8: if function 1= function 2 then 9: return 0 . if f = g in (5), then {f, g}Π = 0 10: end if 11: diff function 1 ← a variable encoding the differential of function 1 12: sharp function 1 ← sharp morphism(bivector, diff function 1) . see, Algorithm 2.1 13: bracket ← a variable encoding the pairing of the differential of function 2 with sharp function 1 . computation of hdg, Π](df)i in (5) 14: return bracket 15: end procedure Remark 2. In SymPy, different (common) symbolic expressions can be recognized as mathematically equal. Thus, for example, the expressions x1 * x1 and x1**2 are identified as the same, even though as strings they are distinct. 2.1.3. Hamiltonian vector fields. The function hamiltonian vf computes the Hamil- tonian vector field ] Xh := Π (dh), (6) ∞ of a function h ∈ CM , with respect to a Poisson bivector field Π on M [13, 27]. Algorithm 2.3 hamiltonian vf(bivector, hamiltonian function) Input: a Poisson bivector field and a scalar function Output: the Hamiltonian vector field of the scalar function relative to the Poisson bivector field 1: procedure 2: m ← dimension of the manifold 3: if m = 1 then . bivector fields are trivial in this case 4: return a variable encoding the trivial vector field 5: end if 6: bivector ← a variable encoding the Poisson bivector field 7: ham function ← a variable encoding the scalar function 8: diff hamiltonian ← a variable encoding the differential of ham function 6 EVANGELISTA–ALVARADO, RU´IZ–PANTALEON´ AND SUAREZ–SERRATO´ 9: return sharp morphism(bivector, diff hamiltonian) . see Algorithm 2.1 and formula (6) 10: end procedure 2.1.4. Coboundary operator. The adjoint operator of a Poisson bivector field Π on M with respect to the Schouten–Nijenhuis bracket gives rise to a cochain com- plex (Γ(∧TM), δπ), called the Lichnerowicz–Poisson complex of (M, Π) [28, 13, ∞ 27]. Here, Γ(∧TM) denotes the CM –module of multivector fields on M, and • •+1 δΠ : Γ(∧ TM) → Γ(∧ TM) is the coboundary operator defined by δΠ(A) := [[Π,A]],A ∈ Γ(∧TM). (7) ∞ Explicitly, if a = deg A, then for any f1, . . . , fa+1 ∈ CM : a+1 X k+1 [[Π,A]](df1,..., dfa+1) = (−1) fk,A(df1,..., dfk,..., dfa+1) Π k=1 X k+l + (−1) A d{fk, fl}Π, df1,..., dfk,..., dcfl,..., dfa+1 1≤k Throughout this paper the symbol b will denote the absence of the corresponding 1 a+1 factor. In particular, if f1 = x , . . . , fa+1 = x are local coordinates on M, we have for 1 ≤ i1 < ··· < ia+1 ≤ m: a+1 i1···ia+1 X k+1 ik i1···ibk···ia+1 [[Π,A]] = (−1) x ,A Π k=1 X ∂Πikil + (−1)k+l As i1···ibk···ibl···ia+1 (8) ∂xs 1≤k Algorithm 2.4 coboundary operator(bivector, multivector) Input: a Poisson bivector field Π and a multivector field A Output: a multivector field, which is the image of A under the coboundary oper- ator induced by Π 1: procedure 2: m ← dimension of the manifold 3: a ← degree of the multivector field 4: if m = 1 or a+1 > m then 5: return a variable encoding the trivial multivector field . bivector fields are trivial if m = 1. We have deg [[Π,A]]= deg A + 1 in (7) 6: end if 7: bivector ← a variable encoding the Poisson bivector field 8: multivector ← a variable encoding the multivector field 9: if a=0 then ON COMPUTATIONAL POISSON GEOMETRY I 7 10: return hamiltonian vf(bivector,(−1) · multivector) . see Algorithm 2.3 . if deg A = 0, then [[Π,A]]= −XA = X−A in (7) 11: end if 12: image multivector ← a variable encoding the computation of the multivector field [[Π,A]] in (7) 13: return image multivector 14: end procedure 2.1.5. Curl (divergence) operator. Fix a volume form Ω on an oriented Poisson manifold (M, Π, Ω). The divergence, relative to Ω, of an a–multivector field A on M is the unique (a − 1)–multivector field DΩ(A) on M satisfying iDΩ(A)Ω = diAΩ. (9) It induces a (well defined, Ω–dependent) coboundary operator DΩ : A 7→ DΩ(A) on the module of multivector fields on M, called the curl operator [24, 27]. The volume ∞ form Ω can be expressed as Ω = fΩ0, for a nowhere vanishing function f ∈ CM , and 1 m 1 Ω0 = dx ∧ · · · ∧ dx in local coordinates. This gives DΩ = DΩ0 + f idf . Then, for i1···ia i1 ia any a–multivector field A = A ∂/∂x ∧ · · · ∧ ∂/∂x on M, with 1 ≤ i1 < ··· < ia ≤ m, the divergence of A with respect to the volume form fΩ0 is given by: m ∂Ai1···ia 1 ∂f ∂ ∂ ∂ X k+1 i1···ia d DfΩ0 (A) = (−1) + A ∧ · · · ∧ ∧ · · · ∧ ∂xik f ∂xik ∂xi1 ∂xik ∂xia k=1 (10) If m = 1, the wedge product above is simply multiplication by 1. Let f be a nowhere vanishing scalar function. The function curl operator com- putes the divergence of a multivector field with respect to the volume form fΩ0. Algorithm 2.5 curl operator(multivector, function) Input: a multivector field A and a nowhere vanishing scalar function f Output: zero if A is a scalar function. Otherwise, a multivector field, which is the divergence of A with respect to the volume form fΩ0 1: procedure 2: m ← dimension of the manifold 3: a ← degree of the multivector field 4: if a=0 then 5: return 0 . if deg A = 0, then DΩ(A) = 0 in (9) 6: end if 7: multivector ← a variable encoding the multivector field 8: function ← a variable encoding the nowhere vanishing function 9: curl multivector ← a variable encoding the computation of the multivector field DfΩ0 (A) in (10) 10: return curl multivector 11: end procedure 2.2. Matrix of a bivector field. The function bivector to matrix computes the (local) matrix [Πij] of a bivector field Π on M [13, 27], which depends on the 8 EVANGELISTA–ALVARADO, RU´IZ–PANTALEON´ AND SUAREZ–SERRATO´ coefficients of Π in (2). In particular, it computes the matrix of a Poisson bivector field. Algorithm 2.6 bivector to matrix(bivector) Input: a (Poisson) bivector field Π Output: the (local) matrix of Π 1: procedure 2: m ← dimension of the manifold 3: if m = 1 then 4: return the 1–dimensional zero matrix . bivector fields are trivial in this case 5: end if 6: return an array encoding the skew–symmetric m × m–matrix [Πij], whose entries are the coefficients Πij of Π in (2) 7: end procedure 2.3. Jacobiator. Consider the Schouten–Nijenhuis bracket of a bivector field Π with itself, [[Π, Π]]. This 3–multivector field is called the Jacobiator of Π and it is computed with the jacobiator function. The Jacobi identity in (1) for Π follows from the vanishing of its Jacobiator [13, 27]. Algorithm 2.7 jacobiator(bivector) Input: a bivector field Output: the Schouten–Nijenhuis bracket of the bivector field with itself 1: procedure 2: bivector ← a variable encoding the bivector field 3: return coboundary operator(bivector, bivector) . see Algorithm 2.4 4: end procedure 2.4. Modular vector field. For (M, Π, Ω) an orientable Poisson manifold, and a fixed volume form Ω on M, the map ZΩ : h 7−→ DΩ(Xh) (11) ∞ is a derivation of CM . Therefore, it defines a vector field on M, called the modular vector field of Π relative to Ω [38,1, 13, 27]. Here, DΩ is the curl operator in (9) relative to Ω. Then, ZΩ is a Poisson vector field of Π which is independent of 1 the choice of a volume form, modulo Hamiltonian vector fields: ZΩ0 = ZΩ − f Xf , 0 ∞ with Ω = fΩ, for a nowhere vanishing function f ∈ CM . In this context, the Pois- son bivector field Π is said to be unimodular if ZΩ is a Hamiltonian vector field. Equivalently, if ZΩ is zero for some volume form on M. We can compute the modular vector field of Π relative to a volume form fΩ as the (minus) divergence of Π: ZfΩ = −DfΩ(Π) = DfΩ(−Π). (12) Let f be a nowhere vanishing scalar function. The function modular vectorfield computes the modular vector field of a Poisson bivector field with respect to the 1 m volume form fΩ0, where Ω0 = dx ∧ · · · ∧ dx in local coordinates. ON COMPUTATIONAL POISSON GEOMETRY I 9 Algorithm 2.8 modular vf(bivector, function) Input: a Poisson bivector field and a nowhere vanishing scalar function f Output: the modular vector field of the Poisson bivector field relative to the vol- ume form fΩ0 1: procedure 2: bivector ← a variable encoding the Poisson bivector field 3: function ← a variable encoding the nowhere vanishing function 4: return curl operator((−1) · bivector, function) . see Algorithm 2.5 and formula (12) 5: end procedure 2.5. Unimodularity of homogeneous Poisson bivector fields. We can verify whether a Poisson bivector field known to be homogeneous is also unimodular or not with the is unimodular homogeneous function. A Poisson bivector field Π on Rm, ∂ ∂ Π = 1 Πij ∧ , i, j = 1 . . . , m; (13) 2 ∂xi ∂xj is said to be homogeneous if each coefficient Πij is a homogeneous polynomial [27]. To implement our method, we use the following fact: a homogeneous Poisson bivec- tor field on Rm is unimodular on (the whole of) Rm if and only if its modular vector field in (11) relative to the Euclidean volume form is zero [25]. Algorithm 2.9 is unimodular homogeneous(bivector) Input: a homogeneous Poisson bivector field on Rm Output: verify if the modular vector field respect to the Euclidean volume form on Rm of the Poisson bivector field is zero, or not 1: procedure 2: bivector ← a variable encoding the homogeneous Poisson bivector field 3: if all values in modular vf(bivector, 1) are zero then 4: return True . see Algorithm 2.8 5: end if 6: return False 7: end procedure 2.6. Bracket on differential 1-forms. The function one forms bracket computes the Lie bracket of two differential 1–forms α, β ∈ Γ T∗M induced by a Poisson bivec- tor field Π on M [13, 27], and defined by ] {α, β}Π := iΠ](α)dβ − iΠ](β)dα + d β, Π (α) . (14) Here, d is the exterior derivative for differential forms and {df, dg}Π = d{f, g}Π, ∞ by definition, for all f, g ∈ CM . The bracket on the right–hand side of this equality is the Poisson bracket for smooth functions on M induced by Π. In coordinates, if k l α = αk dx and β = βl dx , for k, l = 1, . . . , m: 10 EVANGELISTA–ALVARADO, RU´IZ–PANTALEON´ AND SUAREZ–SERRATO´ m ] j X j ∂βi ∂βj j ∂αi ∂αj ∂ Π α βj {α, β} = Π]α − − Π]β − + dxi Π ∂xj ∂xi ∂xj ∂xi ∂xi i,j=1 X j ∂βi ∂βj j ∂αi ∂αj = Π]α − − Π]β − dxi ∂xj ∂xi ∂xj ∂xi 1≤i