GSoC 2016: Implementation of multiple types of coordinate systems for vectors

96 views
Skip to first unread message

Adarsh Saraf

unread,
Mar 5, 2016, 12:32:22 PM3/5/16
to sympy
Hi,

I am Adarsh Saraf, a first year M.Tech(Computer Science) student with the Sri Sathya Sai Institute of Higher Learning from India. I would be interested in working for the project: 'Implementation of multiple types of coordinate systems for vectors' as part of GSoC 2016.
I would like to know more about the project and whom I should contact for further details regarding the project.

Thank You,
Adarsh Saraf

Alan Bromborsky

unread,
Mar 5, 2016, 12:44:25 PM3/5/16
to sy...@googlegroups.com
Sections 2.2 and 2.3.3 in attached document might be of use if you wish to implement different coordinate systems via the metric tensor.  For example the metric tensor for spherical coordinates is a diagonal matrix with diagonal entries g_ii = [1, r**2, r**2*sin(theta)**2].  For this all the derivatives of the basis vectors (needed for div and curl) can be calculated using the Christoffel symbols.  With this approach you could have a list of metric tensors for all separable coordinate systems in 3 dimensions and then calculate the curl and div in each of these coordinate systems.  Note that in this approach the basis vectors must initially be unormalized (see the sections referenced in the attached document).

--
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 sympy+un...@googlegroups.com.
To post to this group, send email to sy...@googlegroups.com.
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/e2827c93-976c-496e-9c73-07aae4e2d1e0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

galgebra_coordinates.pdf

Jason Moore

unread,
Mar 5, 2016, 3:45:14 PM3/5/16
to sy...@googlegroups.com
Here is a pull request that started implementing this for the 3D vector module: https://github.com/sympy/sympy/pull/9937

Alan Bromborsky

unread,
Mar 5, 2016, 5:49:39 PM3/5/16
to sy...@googlegroups.com
The link for the scale factors for all 3D separable coordinate systems is -
If you are going to due one you might as well do all of them.

Francesco Bonazzi

unread,
Mar 8, 2016, 6:57:37 AM3/8/16
to sympy
Maybe we should change approach to the coordinate systems. Implementing the code inside the vector module may end up messing up everything.

What about a separate module to handle coordinate system properties in a new-style assumption manner?

One could have assumptions like:
  • Qcoord.is_spherical(vector)
  • Qcoord.belongs_to_coord_system(vector, coord_system_object)
  • Qcoord.has_laplacian(coord_system_object, Lambda_for_laplacian)
  • Qcoord.connect_coord_system(coord_system1, coord_system2, transformation_function)

It's quite complicated to specify all these properties upon class creation, it would need lots of parameters.


Connecting a coordinate system to a Cartesian one fully specifies (mathematically) how the operators (gradient, divergence, curl) operate, but one could just wish to specify the form of the operators, without specifying the transformation function.


I believe an assumptions systems is a good way to handle coordinate systems. It could in principle also be extended to the matrix module.

Reply all
Reply to author
Forward
0 new messages