Welcome to Cadabra Q&A, where you can ask questions and receive answers from other members of the community.
+1 vote

Hi, I couldn't find any mention of the Lie derivative in any documentation of Cadabra (this website, github, additional literature). I'm trying to write a method that expands the expression Lie_V{\<tensor-with_free_indices>} into the formula of the Lie derivative with partial derivatives. The method will be something like expand_Lie(ex,$V$,$m$) The first argument is some expression that has inside "L{...}", the second argument is the vector, and the third argument is for a dummy index.

I started working with the code in p.36 of "The Cadabra Book.pdf" (by Peeters) - this implements expansion of the covariant derivative (nabla).

I need help to add a dummy index to the first term (replacing "L{..}") and multiplying it by the vector. My code currently changes the name "L" into the "v^{p} \partial_{p}" but I think this is incorrect.

def expand_Lie(ex,v,dummy):
    for Lie in ex["L"]:
        Lie.name=r"v^{p} \partial_{p}"
        #Lie *= v^{@(dummy)}
        for arg in Lie.args():
            for index in arg.free_indices():
                t2:= @(arg);
                if index.parent_rel==sub:
                    t1:= \partial_{@(index)}{v^{@(dummy)}};
                    t2[index]:= _{@(dummy)};
                    t1:= -\partial_{@(dummy)}{v^{@(index)}};
                    t2[index]:= ^{@(dummy)};
                ret += Ex(str(Lie.multiplier)) * t1 * t2
            Lie += ret
    return ex


in General questions by (380 points)
edited by

Please log in or register to answer this question.