passagemath-symbolics 10.8.1a1__cp314-cp314t-musllinux_1_2_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- passagemath_symbolics/__init__.py +3 -0
- passagemath_symbolics-10.8.1a1.dist-info/METADATA +186 -0
- passagemath_symbolics-10.8.1a1.dist-info/RECORD +181 -0
- passagemath_symbolics-10.8.1a1.dist-info/WHEEL +5 -0
- passagemath_symbolics-10.8.1a1.dist-info/top_level.txt +3 -0
- sage/all__sagemath_symbolics.py +17 -0
- sage/calculus/all.py +14 -0
- sage/calculus/calculus.py +2838 -0
- sage/calculus/desolvers.py +1864 -0
- sage/calculus/predefined.py +51 -0
- sage/calculus/tests.py +225 -0
- sage/calculus/var.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/calculus/var.pyx +401 -0
- sage/dynamics/all__sagemath_symbolics.py +6 -0
- sage/dynamics/complex_dynamics/all.py +5 -0
- sage/dynamics/complex_dynamics/mandel_julia.py +765 -0
- sage/dynamics/complex_dynamics/mandel_julia_helper.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/dynamics/complex_dynamics/mandel_julia_helper.pyx +1034 -0
- sage/ext/all__sagemath_symbolics.py +1 -0
- sage/ext_data/kenzo/CP2.txt +45 -0
- sage/ext_data/kenzo/CP3.txt +349 -0
- sage/ext_data/kenzo/CP4.txt +4774 -0
- sage/ext_data/kenzo/README.txt +49 -0
- sage/ext_data/kenzo/S4.txt +20 -0
- sage/ext_data/magma/latex/latex.m +1021 -0
- sage/ext_data/magma/latex/latex.spec +1 -0
- sage/ext_data/magma/sage/basic.m +356 -0
- sage/ext_data/magma/sage/sage.spec +1 -0
- sage/ext_data/magma/spec +9 -0
- sage/geometry/all__sagemath_symbolics.py +8 -0
- sage/geometry/hyperbolic_space/all.py +5 -0
- sage/geometry/hyperbolic_space/hyperbolic_coercion.py +755 -0
- sage/geometry/hyperbolic_space/hyperbolic_constants.py +5 -0
- sage/geometry/hyperbolic_space/hyperbolic_geodesic.py +2419 -0
- sage/geometry/hyperbolic_space/hyperbolic_interface.py +206 -0
- sage/geometry/hyperbolic_space/hyperbolic_isometry.py +1083 -0
- sage/geometry/hyperbolic_space/hyperbolic_model.py +1502 -0
- sage/geometry/hyperbolic_space/hyperbolic_point.py +621 -0
- sage/geometry/riemannian_manifolds/all.py +7 -0
- sage/geometry/riemannian_manifolds/parametrized_surface3d.py +1632 -0
- sage/geometry/riemannian_manifolds/surface3d_generators.py +461 -0
- sage/interfaces/all__sagemath_symbolics.py +1 -0
- sage/interfaces/magma.py +2991 -0
- sage/interfaces/magma_free.py +90 -0
- sage/interfaces/maple.py +1402 -0
- sage/interfaces/mathematica.py +1345 -0
- sage/interfaces/mathics.py +1312 -0
- sage/interfaces/sympy.py +1398 -0
- sage/interfaces/sympy_wrapper.py +197 -0
- sage/interfaces/tides.py +938 -0
- sage/libs/all__sagemath_symbolics.py +6 -0
- sage/manifolds/all.py +7 -0
- sage/manifolds/calculus_method.py +553 -0
- sage/manifolds/catalog.py +437 -0
- sage/manifolds/chart.py +4010 -0
- sage/manifolds/chart_func.py +3416 -0
- sage/manifolds/continuous_map.py +2183 -0
- sage/manifolds/continuous_map_image.py +155 -0
- sage/manifolds/differentiable/affine_connection.py +2475 -0
- sage/manifolds/differentiable/all.py +1 -0
- sage/manifolds/differentiable/automorphismfield.py +1383 -0
- sage/manifolds/differentiable/automorphismfield_group.py +604 -0
- sage/manifolds/differentiable/bundle_connection.py +1445 -0
- sage/manifolds/differentiable/characteristic_cohomology_class.py +1840 -0
- sage/manifolds/differentiable/chart.py +1241 -0
- sage/manifolds/differentiable/curve.py +1028 -0
- sage/manifolds/differentiable/de_rham_cohomology.py +541 -0
- sage/manifolds/differentiable/degenerate.py +559 -0
- sage/manifolds/differentiable/degenerate_submanifold.py +1668 -0
- sage/manifolds/differentiable/diff_form.py +1660 -0
- sage/manifolds/differentiable/diff_form_module.py +1062 -0
- sage/manifolds/differentiable/diff_map.py +1315 -0
- sage/manifolds/differentiable/differentiable_submanifold.py +291 -0
- sage/manifolds/differentiable/examples/all.py +1 -0
- sage/manifolds/differentiable/examples/euclidean.py +2517 -0
- sage/manifolds/differentiable/examples/real_line.py +897 -0
- sage/manifolds/differentiable/examples/sphere.py +1186 -0
- sage/manifolds/differentiable/examples/symplectic_space.py +187 -0
- sage/manifolds/differentiable/examples/symplectic_space_test.py +40 -0
- sage/manifolds/differentiable/integrated_curve.py +4035 -0
- sage/manifolds/differentiable/levi_civita_connection.py +841 -0
- sage/manifolds/differentiable/manifold.py +4254 -0
- sage/manifolds/differentiable/manifold_homset.py +1826 -0
- sage/manifolds/differentiable/metric.py +3032 -0
- sage/manifolds/differentiable/mixed_form.py +1507 -0
- sage/manifolds/differentiable/mixed_form_algebra.py +559 -0
- sage/manifolds/differentiable/multivector_module.py +800 -0
- sage/manifolds/differentiable/multivectorfield.py +1522 -0
- sage/manifolds/differentiable/poisson_tensor.py +268 -0
- sage/manifolds/differentiable/pseudo_riemannian.py +755 -0
- sage/manifolds/differentiable/pseudo_riemannian_submanifold.py +1839 -0
- sage/manifolds/differentiable/scalarfield.py +1343 -0
- sage/manifolds/differentiable/scalarfield_algebra.py +472 -0
- sage/manifolds/differentiable/symplectic_form.py +912 -0
- sage/manifolds/differentiable/symplectic_form_test.py +220 -0
- sage/manifolds/differentiable/tangent_space.py +412 -0
- sage/manifolds/differentiable/tangent_vector.py +616 -0
- sage/manifolds/differentiable/tensorfield.py +4665 -0
- sage/manifolds/differentiable/tensorfield_module.py +963 -0
- sage/manifolds/differentiable/tensorfield_paral.py +2450 -0
- sage/manifolds/differentiable/tensorfield_paral_test.py +16 -0
- sage/manifolds/differentiable/vector_bundle.py +1725 -0
- sage/manifolds/differentiable/vectorfield.py +1717 -0
- sage/manifolds/differentiable/vectorfield_module.py +2445 -0
- sage/manifolds/differentiable/vectorframe.py +1832 -0
- sage/manifolds/family.py +270 -0
- sage/manifolds/local_frame.py +1490 -0
- sage/manifolds/manifold.py +3090 -0
- sage/manifolds/manifold_homset.py +452 -0
- sage/manifolds/operators.py +359 -0
- sage/manifolds/point.py +994 -0
- sage/manifolds/scalarfield.py +3718 -0
- sage/manifolds/scalarfield_algebra.py +629 -0
- sage/manifolds/section.py +3111 -0
- sage/manifolds/section_module.py +831 -0
- sage/manifolds/structure.py +229 -0
- sage/manifolds/subset.py +2721 -0
- sage/manifolds/subsets/all.py +1 -0
- sage/manifolds/subsets/closure.py +131 -0
- sage/manifolds/subsets/pullback.py +883 -0
- sage/manifolds/topological_submanifold.py +891 -0
- sage/manifolds/trivialization.py +733 -0
- sage/manifolds/utilities.py +1348 -0
- sage/manifolds/vector_bundle.py +1347 -0
- sage/manifolds/vector_bundle_fiber.py +332 -0
- sage/manifolds/vector_bundle_fiber_element.py +111 -0
- sage/matrix/all__sagemath_symbolics.py +1 -0
- sage/matrix/matrix_symbolic_dense.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_symbolic_dense.pxd +6 -0
- sage/matrix/matrix_symbolic_dense.pyx +1030 -0
- sage/matrix/matrix_symbolic_sparse.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_symbolic_sparse.pxd +6 -0
- sage/matrix/matrix_symbolic_sparse.pyx +1038 -0
- sage/modules/all__sagemath_symbolics.py +1 -0
- sage/modules/vector_callable_symbolic_dense.py +105 -0
- sage/modules/vector_symbolic_dense.py +116 -0
- sage/modules/vector_symbolic_sparse.py +118 -0
- sage/rings/all__sagemath_symbolics.py +4 -0
- sage/rings/asymptotic/all.py +6 -0
- sage/rings/asymptotic/asymptotic_expansion_generators.py +1485 -0
- sage/rings/asymptotic/asymptotic_ring.py +4858 -0
- sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py +4106 -0
- sage/rings/asymptotic/growth_group.py +5373 -0
- sage/rings/asymptotic/growth_group_cartesian.py +1400 -0
- sage/rings/asymptotic/term_monoid.py +5205 -0
- sage/rings/function_field/all__sagemath_symbolics.py +2 -0
- sage/rings/polynomial/all__sagemath_symbolics.py +1 -0
- sage/symbolic/all.py +15 -0
- sage/symbolic/assumptions.py +987 -0
- sage/symbolic/benchmark.py +93 -0
- sage/symbolic/callable.py +456 -0
- sage/symbolic/callable.pyi +66 -0
- sage/symbolic/comparison_impl.pyi +38 -0
- sage/symbolic/complexity_measures.py +35 -0
- sage/symbolic/constants.py +1286 -0
- sage/symbolic/constants_c_impl.pyi +10 -0
- sage/symbolic/expression_conversion_algebraic.py +310 -0
- sage/symbolic/expression_conversion_sympy.py +317 -0
- sage/symbolic/expression_conversions.py +1727 -0
- sage/symbolic/function_factory.py +355 -0
- sage/symbolic/function_factory.pyi +41 -0
- sage/symbolic/getitem_impl.pyi +24 -0
- sage/symbolic/integration/all.py +1 -0
- sage/symbolic/integration/external.py +271 -0
- sage/symbolic/integration/integral.py +1075 -0
- sage/symbolic/maxima_wrapper.py +162 -0
- sage/symbolic/operators.py +267 -0
- sage/symbolic/operators.pyi +61 -0
- sage/symbolic/pynac_constant_impl.pyi +13 -0
- sage/symbolic/pynac_function_impl.pyi +8 -0
- sage/symbolic/random_tests.py +461 -0
- sage/symbolic/relation.py +2062 -0
- sage/symbolic/ring.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/symbolic/ring.pxd +5 -0
- sage/symbolic/ring.pyi +110 -0
- sage/symbolic/ring.pyx +1393 -0
- sage/symbolic/series_impl.pyi +10 -0
- sage/symbolic/subring.py +1025 -0
- sage/symbolic/symengine.py +19 -0
- sage/symbolic/tests.py +40 -0
- sage/symbolic/units.py +1468 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-symbolics
|
|
2
|
+
r"""
|
|
3
|
+
Poisson tensors
|
|
4
|
+
|
|
5
|
+
AUTHORS:
|
|
6
|
+
|
|
7
|
+
- Tobias Diez (2021): initial version
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
# *****************************************************************************
|
|
11
|
+
# Copyright (C) 2020 Tobias Diez
|
|
12
|
+
#
|
|
13
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
14
|
+
# as published by the Free Software Foundation; either version 2 of
|
|
15
|
+
# the License, or (at your option) any later version.
|
|
16
|
+
# https://www.gnu.org/licenses/
|
|
17
|
+
# *****************************************************************************
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
from typing import Optional, Union
|
|
21
|
+
|
|
22
|
+
from sage.manifolds.differentiable.diff_form import DiffForm
|
|
23
|
+
from sage.manifolds.differentiable.manifold import DifferentiableManifold
|
|
24
|
+
from sage.manifolds.differentiable.multivectorfield import (
|
|
25
|
+
MultivectorField,
|
|
26
|
+
MultivectorFieldParal,
|
|
27
|
+
)
|
|
28
|
+
from sage.manifolds.differentiable.scalarfield import DiffScalarField
|
|
29
|
+
from sage.manifolds.differentiable.vectorfield import VectorField
|
|
30
|
+
from sage.manifolds.differentiable.vectorfield_module import VectorFieldModule
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class PoissonTensorField(MultivectorField):
|
|
34
|
+
r"""
|
|
35
|
+
A Poisson bivector field `\varpi` on a differentiable manifold.
|
|
36
|
+
|
|
37
|
+
That is, at each point `m \in M`, `\varpi_m` is a bilinear map of the type:
|
|
38
|
+
|
|
39
|
+
.. MATH::
|
|
40
|
+
|
|
41
|
+
\varpi_m:\ T^*_m M \times T^*_m M \to \RR
|
|
42
|
+
|
|
43
|
+
where `T^*_m M` stands for the cotangent space to the
|
|
44
|
+
manifold `M` at the point `m`, such that `\varpi_m` is skew-symmetric and the
|
|
45
|
+
Schouten-Nijenhuis bracket (cf.
|
|
46
|
+
:meth:`~sage.manifolds.differentiable.multivectorfield.MultivectorField.bracket`)
|
|
47
|
+
of `\varpi` with itself vanishes.
|
|
48
|
+
|
|
49
|
+
INPUT:
|
|
50
|
+
|
|
51
|
+
- ``manifold`` -- module `\mathfrak{X}(M)` of vector fields on the
|
|
52
|
+
manifold `M`, or the manifold `M` itself
|
|
53
|
+
- ``name`` -- (default: ``varpi``) name given to the Poisson tensor
|
|
54
|
+
- ``latex_name`` -- (default: ``\\varpi``) LaTeX symbol to denote
|
|
55
|
+
the Poisson tensor; if ``None``, it is formed from ``name``
|
|
56
|
+
|
|
57
|
+
EXAMPLES:
|
|
58
|
+
|
|
59
|
+
A Poisson tensor on the 2-sphere::
|
|
60
|
+
|
|
61
|
+
sage: M.<x,y> = manifolds.Sphere(2, coordinates='stereographic')
|
|
62
|
+
sage: stereoN = M.stereographic_coordinates(pole='north')
|
|
63
|
+
sage: stereoS = M.stereographic_coordinates(pole='south')
|
|
64
|
+
sage: varpi = M.poisson_tensor(name='varpi', latex_name=r'\varpi')
|
|
65
|
+
sage: varpi
|
|
66
|
+
2-vector field varpi on the 2-sphere S^2 of radius 1 smoothly embedded
|
|
67
|
+
in the Euclidean space E^3
|
|
68
|
+
|
|
69
|
+
``varpi`` is initialized by providing its single nonvanishing component
|
|
70
|
+
w.r.t. the vector frame associated to ``stereoN``, which is the
|
|
71
|
+
default frame on ``M``::
|
|
72
|
+
|
|
73
|
+
sage: varpi[1, 2] = 1
|
|
74
|
+
|
|
75
|
+
The components w.r.t. the vector frame associated to ``stereoS`` are
|
|
76
|
+
obtained thanks to the method
|
|
77
|
+
:meth:`~sage.manifolds.differentiable.tensorfield.TensorField.add_comp_by_continuation`::
|
|
78
|
+
|
|
79
|
+
sage: varpi.add_comp_by_continuation(stereoS.frame(),
|
|
80
|
+
....: stereoS.domain().intersection(stereoN.domain()))
|
|
81
|
+
sage: varpi.display()
|
|
82
|
+
varpi = ∂/∂x∧∂/∂y
|
|
83
|
+
sage: varpi.display(stereoS)
|
|
84
|
+
varpi = (-xp^4 - 2*xp^2*yp^2 - yp^4) ∂/∂xp∧∂/∂yp
|
|
85
|
+
|
|
86
|
+
The Schouten-Nijenhuis bracket of a Poisson tensor with itself vanishes
|
|
87
|
+
(this is trivial here, since ``M`` is 2-dimensional)::
|
|
88
|
+
|
|
89
|
+
sage: varpi.bracket(varpi).display()
|
|
90
|
+
[varpi,varpi] = 0
|
|
91
|
+
"""
|
|
92
|
+
|
|
93
|
+
def __init__(
|
|
94
|
+
self,
|
|
95
|
+
manifold: Union[DifferentiableManifold, VectorFieldModule],
|
|
96
|
+
name: Optional[str] = "varpi",
|
|
97
|
+
latex_name: Optional[str] = "\\varpi",
|
|
98
|
+
):
|
|
99
|
+
r"""
|
|
100
|
+
Construct a Poisson bivector field.
|
|
101
|
+
|
|
102
|
+
TESTS::
|
|
103
|
+
|
|
104
|
+
sage: from sage.manifolds.differentiable.poisson_tensor import PoissonTensorField
|
|
105
|
+
sage: M = manifolds.Sphere(2, coordinates='stereographic')
|
|
106
|
+
sage: varpi = PoissonTensorField(M, name='varpi', latex_name=r'\varpi')
|
|
107
|
+
sage: varpi
|
|
108
|
+
2-vector field varpi on the 2-sphere S^2 of radius 1 smoothly
|
|
109
|
+
embedded in the Euclidean space E^3
|
|
110
|
+
"""
|
|
111
|
+
try:
|
|
112
|
+
vector_field_module = manifold.vector_field_module()
|
|
113
|
+
except AttributeError:
|
|
114
|
+
vector_field_module = manifold
|
|
115
|
+
|
|
116
|
+
MultivectorField.__init__(
|
|
117
|
+
self, vector_field_module, 2, name=name, latex_name=latex_name
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
def hamiltonian_vector_field(self, function: DiffScalarField) -> VectorField:
|
|
121
|
+
r"""
|
|
122
|
+
Return the Hamiltonian vector field `X_f` generated by the given function `f: M \to \RR`.
|
|
123
|
+
|
|
124
|
+
The Hamiltonian vector field is defined by
|
|
125
|
+
|
|
126
|
+
.. MATH::
|
|
127
|
+
|
|
128
|
+
X_f = - \varpi^\sharp (d f),
|
|
129
|
+
|
|
130
|
+
where `\varpi^\sharp: T^* M \to TM` is given by
|
|
131
|
+
`\beta(\varpi^\sharp(\alpha)) = \varpi(\alpha, \beta)`.
|
|
132
|
+
|
|
133
|
+
INPUT:
|
|
134
|
+
|
|
135
|
+
- ``function`` -- the function generating the Hamiltonian vector field
|
|
136
|
+
|
|
137
|
+
EXAMPLES::
|
|
138
|
+
|
|
139
|
+
sage: M.<q, p> = EuclideanSpace(2)
|
|
140
|
+
sage: poisson = M.poisson_tensor('varpi')
|
|
141
|
+
sage: poisson.set_comp()[1,2] = -1
|
|
142
|
+
sage: f = M.scalar_field(function('f')(q, p), name='f')
|
|
143
|
+
sage: Xf = poisson.hamiltonian_vector_field(f)
|
|
144
|
+
sage: Xf.display()
|
|
145
|
+
Xf = d(f)/dp e_q - d(f)/dq e_p
|
|
146
|
+
"""
|
|
147
|
+
vector_field = -self.sharp(function.exterior_derivative())
|
|
148
|
+
if function._name is not None:
|
|
149
|
+
vector_field.set_name(f"X{function._name}", f"X_{{{function._latex_name}}}")
|
|
150
|
+
return vector_field
|
|
151
|
+
|
|
152
|
+
def sharp(self, form: DiffForm) -> VectorField:
|
|
153
|
+
r"""
|
|
154
|
+
Return the image of the given differential form under the map
|
|
155
|
+
`\varpi^\sharp: T^* M \to TM` defined by
|
|
156
|
+
|
|
157
|
+
.. MATH::
|
|
158
|
+
|
|
159
|
+
\beta(\varpi^\sharp(\alpha)) = \varpi(\alpha, \beta).
|
|
160
|
+
|
|
161
|
+
for all `\alpha, \beta \in T^*_m M`.
|
|
162
|
+
|
|
163
|
+
In indices, `\alpha^i = \varpi^{ij} \alpha_j`.
|
|
164
|
+
|
|
165
|
+
INPUT:
|
|
166
|
+
|
|
167
|
+
- ``form`` -- the differential form to calculate its sharp of
|
|
168
|
+
|
|
169
|
+
EXAMPLES::
|
|
170
|
+
|
|
171
|
+
sage: M.<q, p> = EuclideanSpace(2)
|
|
172
|
+
sage: poisson = M.poisson_tensor('varpi')
|
|
173
|
+
sage: poisson.set_comp()[1,2] = -1
|
|
174
|
+
sage: a = M.one_form(1, 0, name='a')
|
|
175
|
+
sage: poisson.sharp(a).display()
|
|
176
|
+
a_sharp = e_p
|
|
177
|
+
"""
|
|
178
|
+
if form.degree() != 1:
|
|
179
|
+
raise ValueError(
|
|
180
|
+
f"the degree of the differential form must be one but it is {form.degree()}"
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
vector_field = form.up(self)
|
|
184
|
+
vector_field.set_name(f"{form._name}_sharp", f"{form._latex_name}^\\sharp")
|
|
185
|
+
return vector_field
|
|
186
|
+
|
|
187
|
+
def poisson_bracket(
|
|
188
|
+
self, f: DiffScalarField, g: DiffScalarField
|
|
189
|
+
) -> DiffScalarField:
|
|
190
|
+
r"""
|
|
191
|
+
Return the Poisson bracket
|
|
192
|
+
|
|
193
|
+
.. MATH::
|
|
194
|
+
|
|
195
|
+
\{f, g\} = \varpi(df, dg)
|
|
196
|
+
|
|
197
|
+
of the given functions.
|
|
198
|
+
|
|
199
|
+
INPUT:
|
|
200
|
+
|
|
201
|
+
- ``f`` -- first function
|
|
202
|
+
- ``g`` -- second function
|
|
203
|
+
|
|
204
|
+
EXAMPLES::
|
|
205
|
+
|
|
206
|
+
sage: M.<q, p> = EuclideanSpace(2)
|
|
207
|
+
sage: poisson = M.poisson_tensor('varpi')
|
|
208
|
+
sage: poisson.set_comp()[1,2] = -1
|
|
209
|
+
sage: f = M.scalar_field(function('f')(q, p), name='f')
|
|
210
|
+
sage: g = M.scalar_field(function('g')(q, p), name='g')
|
|
211
|
+
sage: poisson.poisson_bracket(f, g).display()
|
|
212
|
+
poisson(f, g): E^2 → ℝ
|
|
213
|
+
(q, p) ↦ d(f)/dp*d(g)/dq - d(f)/dq*d(g)/dp
|
|
214
|
+
"""
|
|
215
|
+
bracket = self.contract(0, f.exterior_derivative()).contract(
|
|
216
|
+
0, g.exterior_derivative()
|
|
217
|
+
)
|
|
218
|
+
bracket.set_name(
|
|
219
|
+
f"poisson({f._name}, {g._name})",
|
|
220
|
+
"\\{" + f"{f._latex_name}, {g._latex_name}" + "\\}",
|
|
221
|
+
)
|
|
222
|
+
return bracket
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
class PoissonTensorFieldParal(PoissonTensorField, MultivectorFieldParal):
|
|
226
|
+
r"""
|
|
227
|
+
A Poisson bivector field `\varpi` on a parallelizable manifold.
|
|
228
|
+
|
|
229
|
+
INPUT:
|
|
230
|
+
|
|
231
|
+
- ``manifold`` -- module `\mathfrak{X}(M)` of vector fields on the
|
|
232
|
+
manifold `M`, or the manifold `M` itself
|
|
233
|
+
- ``name`` -- (default: ``varpi``) name given to the Poisson tensor
|
|
234
|
+
- ``latex_name`` -- (default: ``\\varpi``) LaTeX symbol to denote the
|
|
235
|
+
Poisson tensor; if ``None``, it is formed from ``name``
|
|
236
|
+
|
|
237
|
+
EXAMPLES:
|
|
238
|
+
|
|
239
|
+
Standard Poisson tensor on `\RR^2`::
|
|
240
|
+
|
|
241
|
+
sage: M.<q, p> = EuclideanSpace(2)
|
|
242
|
+
sage: varpi = M.poisson_tensor(name='varpi', latex_name=r'\varpi')
|
|
243
|
+
sage: varpi[1,2] = -1
|
|
244
|
+
sage: varpi
|
|
245
|
+
2-vector field varpi on the Euclidean plane E^2
|
|
246
|
+
sage: varpi.display()
|
|
247
|
+
varpi = -e_q∧e_p
|
|
248
|
+
"""
|
|
249
|
+
|
|
250
|
+
def __init__(
|
|
251
|
+
self,
|
|
252
|
+
manifold: Union[DifferentiableManifold, VectorFieldModule],
|
|
253
|
+
name: Optional[str] = None,
|
|
254
|
+
latex_name: Optional[str] = None,
|
|
255
|
+
):
|
|
256
|
+
r"""
|
|
257
|
+
Construct a Poisson bivector field.
|
|
258
|
+
|
|
259
|
+
TESTS::
|
|
260
|
+
|
|
261
|
+
sage: from sage.manifolds.differentiable.poisson_tensor import PoissonTensorFieldParal
|
|
262
|
+
sage: M.<q, p> = EuclideanSpace(2)
|
|
263
|
+
sage: poisson = PoissonTensorFieldParal(M, name='varpi', latex_name=r'\varpi')
|
|
264
|
+
sage: poisson
|
|
265
|
+
2-vector field varpi on the Euclidean plane E^2
|
|
266
|
+
"""
|
|
267
|
+
PoissonTensorField.__init__(self, manifold, name, latex_name)
|
|
268
|
+
MultivectorFieldParal.__init__(self, self._vmodule, 2, name, latex_name)
|