#15916: Tensors on free modules of finite rank
-------------------------------------+-------------------------------------
Reporter: egourgoulhon | Owner:
Type: enhancement | Status: new
Priority: major | Milestone: sage-6.2
Component: linear algebra | Keywords: free module,
Merged in: | tensor, tensor product
Reviewers: | Authors: egourgoulhon,
Work issues: | mbejger
Commit: | Report Upstream: N/A
f8e9c3e62c1b016a41d377a0ccdbcd665aa189dc| Branch:
Stopgaps: | u/egourgoulhon/tensor_modules
| Dependencies:
-------------------------------------+-------------------------------------
== Description ==
This ticket implements:
* '''tensor products''' of the type M\otimes ...\otimes M \otimes M*
\otimes...\otimes M*
where M is a free module of finite rank over a commutative ring R and M*
is its dual (''k'' factors of M and ''l'' factors of M*, say)
* the elements of the above tensor products, considered as '''tensors'''
of type ''(k,l)'' on M, i.e. multilinear forms (M*)^''k''^ \times M^''l''^
--> R, thanks to the canonical isomorphism (M*)* = M (which holds since M
is a free module of finite rank)
* the following '''tensor operations''':
* operations inherent to the module structure (addition, multiplication
by a ring element)
* tensor product of two tensors
* tensor contraction
* symmetry / antisymmetry handling (on subset of the tensor arguments or
on all arguments)
* exterior product of alternating forms
No distinguished basis is assumed on the free module M; on the contrary
many bases can be introduced. Each tensor has then various
representations, via its components in the various bases.
== Motivation and context ==
The ticket has been motivated by tensors on smooth manifolds over '''R''',
within the
[http://sagemanifolds.obspm.fr SageManifolds] project. In this context,
tensors on free modules appear at two levels:
* ''tensors on tangent spaces:''
* commutative ring R: real field '''R'''
* free module M: tangent vector space at a given manifold's point
* ''tensor fields on a manifold:''
* commutative ring R: the set C^oo^(N) of smooth functions N--> '''R''',
where N is a parallelizable open set of the manifold
* free module M: the set X(N) of smooth vector fields on N (since N is
parallelizable, this is a free module; its rank is the manifold's
dimension)
== Documentation ==
Apart from the numerous doctests in the code, some pieces of documentation
are
* the tutorial worksheet posted
[http://sagemanifolds.obspm.fr/examples/html/SM_tensors_modules.html here]
(a pdf version is
[http://sagemanifolds.obspm.fr/examples/pdf/SM_tensors_modules.pdf here])
* the "tensors on free modules"
[http://sagemanifolds.obspm.fr/doc/tensors_free_module/index.html
reference manual] (a pdf version is
[http://sagemanifolds.obspm.fr/doc/tensors_free_modules_ref.pdf here]); it
can also be generated via the command `sage -docbuild tensors_free_module
html`
See also [http://sagemanifolds.obspm.fr/tensor_modules.html this page].
== Remarks ==
1. Although developed in the context of [http://sagemanifolds.obspm.fr
SageManifolds] (ticket:14865), the ticket is self-contained and does not
depend on other parts of !SageManifolds. It this respect, it can be viewed
as some attempt to include a first subset of !SageManifolds in Sage, with
a moderate size: the ticket comprises 9391 lines of Python code (most of
them being doctests), while at present !SageManifolds contains 29240 lines
of code.
2. The ticket follows Sage's !Parent/Element scheme and the (new) category
framework. In particular, the ticket's free module class
([http://sagemanifolds.obspm.fr/doc/tensors_free_module/finite_free_module.html
FiniteFreeModule]) passes the module !TestSuite.
3. It turned out to be necessary to develop a new class to implement free
modules of finite rank. Indeed, the category of free modules does not
exist yet in Sage: only those of generic modules (Modules) or free modules
with a distinguished basis (!ModulesWithBasis) are available. Now, the
tangent space at a given point of a manifold is a vector space without any
distinguished basis (in other words, while the tangent space is isomorphic
to '''R'''^n^, there is no ''canonical'' isomorphism, each isomorphism
relying on the choice of some coordinate chart). The new class,
[http://sagemanifolds.obspm.fr/doc/tensors_free_module/finite_free_module.html
FiniteFreeModule], does not rely on any distinguished basis. It inherits
directly from
[http://www.sagemath.org/doc/reference/modules/sage/modules/module.html
sage.modules.module.Module]. In particular, it does not inherit from
[http://www.sagemath.org/doc/reference/modules/sage/modules/free_module.html#sage.modules.free_module.FreeModule_generic
sage.modules.module.Module_old.FreeModule_generic] since the latter does
not conform to the new coercion model and seems to assume a distinguished
basis (cf. its method
[http://www.sagemath.org/doc/reference/modules/sage/modules/free_module.html#sage.modules.free_module.FreeModule_generic
basis()]).
--
Ticket URL: <http://trac.sagemath.org/ticket/15916>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.