# HodgeDual

HodgeDual[tensor]

gives the Hodge dual of the tensor

HodgeDual[tensor,dim]

dualizes tensor in the slots with dimension dim

HodgeDual[tensor,dim,slots]

dualizes tensor in the given slots.

# Details • HodgeDual[tensor] requires all slots of tensor to have the same dimension dim, which will be taken as the implied second argument. The result will have rank dim-r, where r is the rank of tensor.
• HodgeDual[tensor,dim] dualizes tensor in all slots with the given dimension, leaving the rest as the last slots of the result.
• HodgeDual[tensor,dim,slots] requires the given slots of tensor to have dimension dim.
• HodgeDual effectively antisymmetrizes in advance the slots to be dualized.

# Examples

open allclose all

## Basic Examples(2)

Hodge dual of a three-dimensional vector:

Hodge dual of a scalar in dimension three:

## Scope(5)

Hodge dual of an antisymmetric array:

Hodge dual of a scalar:

The second argument is needed in this case: Hodge dual of an array that is antisymmetric only in some slots:

Specify in which slots to dualize:

Hodge dual in some slots only:

HodgeDual of a symbolic array:

Properties when using the single-argument form or a redundant second argument:

Using the two-argument from to dualize in a different dimension:

With three arguments:

## Properties & Relations(6)

The LeviCivitaTensor in dimension is the HodgeDual of 1 in that dimension:

Take any square matrix:

This is an alternative way to compute its determinant:

Take a three-dimensional vector field:

This is an alternative way to compute its curl:

Hodge duality can also be computed by contraction with the LeviCivitaTensor:

A double Hodge dual of an antisymmetric array equals the original array, except possibly for a sign:

With a symbolic array:

Cross of vectors in dimension is ( times the Hodge dual of their tensor product:

Similarly, the Cross of vectors in dimension is simply the Hodge dual of their wedge product: