Questions about xTerior

38 views
Skip to first unread message

Joao Miguel Batista Matzenbacher

unread,
Sep 13, 2025, 2:27:43 PM (12 days ago) Sep 13
to xAct Tensor Computer Algebra

Dear colleagues,

I hope this message finds you well.

Recently, I have been experimenting with xTerior in order to automate some of my work, and I have a few questions that may help achieve a clearer understanding of how this can be done optimally.

Here is the scenario: I'm working with some sort of deformation of the usual differential form setup. Essentially, I need to define a k-form whose exterior derivative is obtained by taking the usual derivative of its coefficient and then adding a d\Xi fator (which can be expressed as a linear combination of the usual dx-basis).

My approach so far goes as follows: to define the mentioned k-form structure, I started by expressing its coefficient as a combination of 0-forms and then combined these 0-forms with 1-forms dX that I previously defined to mimic the usual basis structure.  The exterior derivative is implemented as the following: first,  I compute the usual derivative of the k-form coefficient, and then add a d\Xi-factor to build the new (k+1)-form basis. The next step is to implement a Rule to rewrite d\Xi in terms of the usual dX. 

This leads to my main questions
1) First of all, is there a more efficient way to implement the above described scenario? 
2) After performing the exterior derivative (as you can see in the attached notebook), is there a way to collect and organize all the dX ^ ... ^dX array terms, so that the resulting object can be expressed as a coefficient contracted with the usual dX-basis?

For clarity and to enrich the discussion, I have attached the mentioned notebook below.

Best regards,

João Matzenbacher.
  
Cálculo derivadas exteriores.nb

Juan Margalef

unread,
Sep 14, 2025, 10:19:28 AM (11 days ago) Sep 14
to xAct Tensor Computer Algebra
Hi

I am not sure I understand what you want. Is your dX factor fixed? You have defined it as a 1-form, hence you cannot add it to a k+1 form unless k=0. In any case, your approach would work better if you use xCoba, which allows you to work with coordinates and bases and define your operator as

Operator[zeroform_[index_]] /; Deg[zeroform[index]] == 0 := Diff[x[index]] + dX[index]

This is only defined for zero-forms, hence the conditional in the definition. Moreover, since dX has only one index, this definition only works for zero-forms with one index.

As for your second questions, you can try IndexCollect[yourexpression, dX[a] \[Wedge] dX[b] \[Wedge] dX[c] \[Wedge] dX[d]]

Best,
Juan



Reply all
Reply to author
Forward
0 new messages