@Stefan : I would recommend having a separate class for ScalarFields. Even I wasn't sure of the need for this till yesterday, when we came across the problem of how the user would define a scalar field in any coordinate system he wants(which is not the global frame). In such cases, I propose something like the following- rho = ScalarField(6*x**2*y, c_rect1) rho.express(c_sph)
If we find a better way to this this I am all for it, but for now the above seems elegant and convenient. In any case, I tried my hand at expressing a few of the steps put forward by Stefan in a mock SymPy session. I would request all of you to have a look at it and express your views (please elaborate on the reasons for any editing if done in the current code). It is a WIP obviously. The wiki link - https://github.com/sympy/sympy/wiki/Vectors-EM-framework On Wed, Jun 5, 2013 at 4:16 AM, Stefan Krastanov <[email protected] > wrote: > Here is a quick summary from today: > > - probably scalar fields will be represented simply by SymPy expressions > where some of the symbols will have special meaning (the coordinates) > - probably vectors will be represented like in mechanics (one object, not > necessarily a sympy expression) > > - using reference systems translated and rotated with respect to each > other is rather unclear at the moment: before continuing with the irc > meetings I would suggest that the students provide a _nice_ wiki presenting > the answers to the questions in the previous thread and also the following > questions: > > Bellow is the question in "mathematical" terms. Transform it in whatever > way you find appropriate to fit your suggested APIs: > > - in 3D > - I have three points A, B and C. > - I use each of them as the zero of three different coordinate systems > - The A and B systems are both Cartesian but rotated by theta_AB around > axis_AB > - The C system is spherical (r, phi, theta). The theta=0 axis is rotated > wrt the z axis of A by the Euler angles alpha, beta, gamma > - I define a scalar field in A, another scalar field in B and a vector > field in C > - I want the sum of the scalar fields > - I want the gradient of that sum > - I want the convective derivative of the vector field from C wrt the > gradient from the question above > - I want to express the entities from the above 4 question in each of the > three coordinate systems. > - For all this please explicitly choose some fields for the examples and > calculate the expected results by hand (and add them to the example session > as mock results). > > I think that this will really stress test the suggested API. The only > thing missing is the time dependence needed in mechanics. I strongly > suggest that we first finish the considerations above before continuing. > > @Prasoon and Sachin, when will you be able to provide a detailed wiki page > with an example session for what is asked here? There is really no need to > hurry (officially GSoC has not started yet) so please take your time (a > week?). > > Stefan > > > On 4 June 2013 01:12, Aaron Meurer <[email protected]> wrote: > >> The discussion was at http://piratepad.net/KBviCWUlA3. >> >> I'm curious what you think of this kind of discussion, as opposed to >> IRC. Google docs is also an option (it has a chat). I think the >> downside is that unlike IRC, which is logged at >> http://colabti.org/irclogger/irclogger_logs/sympy, it's a little >> harder to search through these discussions afterwords. >> >> Aaron Meurer >> >> >> On Mon, Jun 3, 2013 at 4:16 PM, Stefan Krastanov >> <[email protected]> wrote: >> > Today we had the first discussion with Prasoon and Sachin about their >> > projects. >> > >> > We did not progress much but at least we outlined the two general >> approaches >> > that we can use for these modules (specifically for creating vector >> fields). >> > I will give them somewhat arbitrary names here: >> > >> > - the `mechanics` way - having a Vector class that keeps all the >> information >> > about the field and it is not part of expression trees in the way Basic >> and >> > Expr are. For instance Vector(something along >> cartesian.x)+Vector(something >> > along spherical.r) will result in Vector(complex internal structure). >> > >> > - the `diffgeom` way - having base/unit vectors and building all the >> rest in >> > terms of their linear combinations (all this expressed as sympy >> > expressions). >> > >> > >> > >> > Prasoon and Sachin did not have the time to look at the example problem >> that >> > was given in the previous email yet (no harm done there, there is still >> some >> > time before the official starting date). Probably this will be the >> subject >> > of our next discussion. >> > >> > The next discussion was scheduled for tomorrow. After that I suggest >> that we >> > keep most of the discussions to the mailing list and the gihub wiki and >> meet >> > on irc / realtime wikis / google docs / etc once a week. >> > >> > Stefan >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups >> > "sympy" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> an >> > email to [email protected]. >> > To post to this group, send email to [email protected]. >> > Visit this group at http://groups.google.com/group/sympy?hl=en-US. >> > For more options, visit https://groups.google.com/groups/opt_out. >> > >> > >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sympy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/sympy?hl=en-US. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sympy?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.
