PetscDTAltV#

An interface for common operations on k-forms, also known as alternating algebraic forms or alternating k-linear maps. The name of the interface comes from the notation “Alt V” for the algebra of all k-forms acting vectors in the space V, also known as the exterior algebra of V*. A recommended reference for this material is Section 2 “Exterior algebra and exterior calculus” in “Finite element exterior calculus, homological techniques, and applications”, by Arnold, Falk, & Winther (2006, doi:10.1017/S0962492906210018).

A k-form w (k is called the “form degree” of w) is an alternating k-linear map acting on tuples (v_1, …, v_k) of

vectors from a vector space V and producing a real number#

  • alternating: swapping any two vectors in a tuple reverses the sign of the result, e.g. w(v_1, v_2, …, v_k) = -w(v_2, v_1, …, v_k)

  • k-linear: w acts linear in each vector separately, e.g. w(av + by, v_2, …, v_k) = aw(v,v_2,…,v_k) + bw(y,v_2,…,v_k) This action is implemented as PetscDTAltVApply().

The k-forms on a vector space form a vector space themselves, Alt^k V. The dimension of Alt^k V, if V is N dimensional, is N choose k. (This shows that for an N dimensional space, only 0 <= k <= N are valid form degrees.)

The standard basis for Alt^k V, used in PetscDTAltV, has one basis k-form for each ordered subset of k coordinates of the N dimensional space#

For example, if the coordinate directions of a four dimensional space are (t, x, y, z), then there are 4 choose 2 = 6 ordered subsets of two coordinates. They are, in lexicographic order, (t, x), (t, y), (t, z), (x, y), (x, z) and (y, z). PetscDTAltV also orders the basis of Alt^k V lexicographically by the associated subsets.

The unit basis k-form associated with coordinates (c_1, …, c_k) acts on a set of k vectors (v_1, …, v_k) by creating a square matrix V where V[i,j] = v_i[c_j] and taking the determinant of V.

If j + k <= N, then a j-form f and a k-form g can be multiplied to create a (j+k)-form using the wedge or exterior product, (f wedge g). This is an anticommutative product, (f wedge g) = -(g wedge f). It is sufficient to describe the wedge product of two basis forms.

Let f be the basis j-form associated with coordinates (f_1,…,f_j) and g be the basis k-form associated with coordinates (g_1,…,g_k)#

  • If there is any coordinate in both sets, then (f wedge g) = 0.

  • Otherwise, (f wedge g) is a multiple of the basis (j+k)-form h associated with (f_1,…,f_j,g_1,…,g_k).

  • In fact it is equal to either h or -h depending on how (f_1,…,f_j,g_1,…,g_k) compares to the same list of coordinates given in ascending order: if it is an even permutation of that list, then (f wedge g) = h, otherwise (f wedge g) = -h. The wedge product is implemented for either two inputs (f and g) in PetscDTAltVWedge(), or for one (just f, giving a matrix to multiply against multiple choices of g) in PetscDTAltVWedgeMatrix().

If k > 0, a k-form w and a vector v can combine to make a (k-1)-formm through the interior product, (w int v), defined by (w int v)(v_1,…,v_{k-1}) = w(v,v_1,…,v_{k-1}).

The interior product is implemented for either two inputs (w and v) in PetscDTAltVInterior, for one (just v, giving a matrix to multiply against multiple choices of w) in PetscDTAltVInteriorMatrix(), or for no inputs (giving the sparsity pattern of PetscDTAltVInteriorMatrix()) in PetscDTAltVInteriorPattern().

When there is a linear map L: V -> W from an N dimensional vector space to an M dimensional vector space, it induces the linear pullback map L^* : Alt^k W -> Alt^k V, defined by L^* w(v_1,…,v_k) = w(L v_1, …, L v_k). The pullback is implemented as PetscDTAltVPullback() (acting on a known w) and PetscDTAltVPullbackMatrix() (creating a matrix that computes the actin of L^*).

Alt^k V and Alt^(N-k) V have the same dimension, and the Hodge star operator maps between them. We note that Alt^N V is a one dimensional space, and its basis vector is sometime called vol. The Hodge star operator has the property that (f wedge (star g)) = (f,g) vol, where (f,g) is the simple inner product of the basis coefficients of f and g. Powers of the Hodge star operator can be applied with PetscDTAltVStar

See Also#

PetscDTAltVApply(), PetscDTAltVWedge(), PetscDTAltVInterior(), PetscDTAltVPullback(), PetscDTAltVStar()

Level#

intermediate

Location#

src/dm/dt/interface/dtaltv.c


Edit on GitLab

Index of all DT routines
Table of Contents for all manual pages
Index of all manual pages