## 257 Reputation

13 years, 28 days

## You must pass a metric to the Christoffe...

The tensor g1 you are passing to Christoffel is not a metric.  If you pass it a bona fide metric it should work.

The construction of the metric-compatible connection (via the Christoffel command) requires the inverse metric.  Your tensor g1 does not have an inverse.  Try a tensor like dx &t dx + dy &t dy, which defines a metric and should give vanishing Christoffel symbols.

## DeRhamHomotopy and Hook...

Hello Nicola.

For a) see the DifferentialGeometry command DeRhamHomotopy.  For b) see the command Hook.

## Metric needs scalar and tensor products...

Your g1 is not a tensor. (It appears that you are thinking of g1 as a "line element", not as a tensor. )   The tensor form of g1 will require scalar multiplication and tensor products.  Here is a command that will create the tensor corresponding to your line element:

g1 := evalDG(1/2*(dx1 &t dx3 + dx3 &t dx1) + 1/2*(dx2 &t dx4 + dx4 &t dx2) -u22*dx3 &t dx3 - u11*dx4 &t dx4 +2 *u12*1/2*(dx3 &t dx4+ dx4 &t dx3));

Note: supposing the quantities u are not elsewhere assigned any values as functions of the coordinates, they will be viewed as constants and your Christoffel symbols will be zero.

## try this...

What happens if you insert a space on either side of the tensor product, i.e.,

dx&tdx

is replaced with

dx &t dx

?

## The "metric" is not symmetric...

Your metric is not a symmetric tensor.  For example, there is a tensor product du &t dv, but no corresponding product dv &t du.  The Killing vector command tacitly assumes you are handing it a bona fide metric.  Depending upon your Maple version you might be able to use &s for the symmetric tensor product to convert your g into a true metric.

If I make the tensor g symmetric in the obvious way, I find 4 Killing vector fields.

If you actually want the infinitesimal symmetry generators for this asymmetric tensor g, you can use the command InfinitesimalSymmetriesOfGeometricObjectFields.  Then you will find 3 vector fields generating symmetries.

## Your metric is not a metric...

The symmetric rank-2 tensor g you defined is degenerate - so it is not a metric. You can check this by calculating the scalar density of weight 2,  the determinant of the metric,  using the MetricDensity command.  You will find zero. Or you can convert the components of g to a matrix with the command convert(g, DGmatrix).  The resulting matrix has vanishing determinant.  The KillingVectors command only applies to metrics.

If you simply want to find all vector fields which generate symmetries of the tensor g, you can use the command InfinitesimalSymmetriesOfGeometricObjectFields(g) (thank goodness for auto-completion!).  This command creates a general vector field, takes the Lie derivative of whatever tensor you pass to the command, sets the Lie derivative to zero and solves for the components of the vector field.  (This command can also be applied to metrics, of course, so it provides an alternative to the KillingVectors command.)

## Use the tensor product...

DifferentialGeometry interprets the metric as a tensor. You need to tell Maple that the products being used among the differentials are tensor products, e.g., use dx &t dx instead of dx^2.

## InvariantGeometricObjectFields...

Sorry - my mistake - I meant to point you toward the command called

InvariantGeometricObjectFields

## InfinitesimalSymmmetriesOfGeometricObjec...

Have a look at the help page for the DifferentialGeometry/GroupActions command: `InfinitesimalSymmmetriesOfGeometricObjectFields`.

(EDIT: I inadvertently pasted the wrong command, it should have been InvariantGeometricObjectFields)

## The tensor product is not commutative...

It is hard to tell for sure from what you wrote, but one thing to consider is that it matters whether you write

ContractIndices(R0, g, [[1, 1]])

or

ContractIndices(g, R0, [[1, 1]])

In the first case the "lowered index" is the last of the 4 indices which characterize the result.  In the second case the "lowered index" is first of the 4 indices.

## DifferentialGeometry:-JetCalculus[Horizo...

You can do this using the HorizontalHomotopy operator which is in the JetCalculus sub-package of DifferentialGeometry.  I will attach a link to a worksheet ("homotopy.mw") which shows how.  (Like the homotopy operators, this package works with differential forms.  To get a vector field interpretation you will need to take a Hodge dual using the Levi-Civita symbol.  Let me know if you need help with that.)

homotopy.mw

## Explore the DifferentialGeometry and/or ...

I have a vague idea of what you want.  Assuming you really are dealing with a tensor and not just some muti-indexed collection of numbers, I would say that matrix representations of tensors are limited in their utility, and can be outright confusing. Ultimately it is best to try to interpret tensors using the concepts which actually define them mathematically.  With this in mind, I recommend you have a look at the help pages for two maple packages: DifferentialGeometry (and particularly its sub-package, Tensor) and Physics.  Each of these packages provides standard ways of constructing, representing, and visualizing tensors.  The Physics package may be the closest to serving your needs since it will allow you to create and manipulate tensors via an index notation (while DifferentialGeometry uses the standard, index-free approach).

## Sub-package LieAlgebras...

Yes, this is possible provided you have created the abstract Lie algebra, e.g., by specifying its structure equations (all the brackets).  See the documentation for the sub-package of the DifferentialGeometry package called LieAlgebras. In particular, you might start by looking at the help page in that package for LieAlgebraData[StructureConstants] .

## de Rham homotopy...

The ultimate approach to such questions is to use the de Rham Homotopy operator (click on it for details), but for this particular question there will, of course, be simpler methods.

## Check the file name...

It may be that there is a character in the file name which is confusing Maple.  A forward slash will do this.

 1 2 3 4 Page 1 of 4
﻿