Here is a link to all orthogonal coordinate systems in three dimensions and
how to calculate vector calculus operations in each -

https://en.wikipedia.org/wiki/Orthogonal_coordinates

On Thu, Mar 23, 2017 at 5:38 PM, Alan Bromborsky <abrombo...@gmail.com>
wrote:

> If the basis vectors are not orthogonal you need to calculate the
> reciprocal basis vectors (equivalent to the inverse of the metric tensor).
> If [image: \mathbf{e}_i] are your basis vectors then [image: \mathbf{e}^i]are
> the reciprocal basis and
> [image: \mathbf{e}_i \cdot \mathbf{e}^j = \delta_{ij}].  Or [image:
> \mathbf{e}^i = g^{ij}\mathbf{e}_j]  where [image: g^{ij}] is the inverse
> of [image: g_{ij}] and the gradient operator is [image:
> \frac{\partial}{\partial x^{i}}\mathbf{e}^{i}] where the [image: x^i] are
> the coordinates.  You need to do the same for orthogonal coordinates but
> since the metric tensor
> for orthogonal coordinates is diagonal computing the inverse is trivial.
> For now I would stick to orthogonal coordinates.
>
> On Thu, Mar 23, 2017 at 3:50 PM, <szymon.mieszc...@gmail.com> wrote:
>
>> Do you think, that we should restrict our class to only orthogonal
>> curvilinear coordinates (Cartesian, Spherical, Cylindrical) or create class
>> as general as possible?
>>
>>
>> W dniu wtorek, 21 marca 2017 23:56:32 UTC+1 użytkownik brombo napisał:
>>>
>>> What you need to define a coordinate system and vector calculus (div,
>>> curl, etc.) is a set of coordinate variables, a corresponding set of basis
>>> vectors, the dot products of all the basis vectors in terms of the
>>> coordinates (the metric tensor), and the derivatives of the basis vectors
>>> as a linear combination of the basis vectors with coefficients that depend
>>> only upon the coordinates (derivable from the Christoffel symbols which are
>>> derived from the metric tensor).  Note that the metric tensor can be
>>> derived from the vector manifold function which you can write in
>>> rectangular coordinates with coefficients that are functions of the
>>> coordinates of the coordinate system you wish to define.  Instead of hard
>>> coding a particular coordinate system just instantiate a member of the
>>> coordinate system class as needed with a given vector manifold function or
>>> a given metric tensor.  For example if the class is called CoordinateSystem
>>> then for a spherical coordinate system you would have -
>>>
>>> ShericalCooridinates = CoordinateSystem((r*cos(theta)
>>> ,r*sin(theta)*cos(phi),r*sin(theta)*sin(phi)),(r,theta,phi))
>>>
>>> where (r*cos(theta),r*sin(theta)*cos(phi),r*sin(theta)*sin(phi)) is the
>>> vector manifold for spherical coordinates and (r,theta,phi) are the
>>> coordinate symbols. The if V is a vector function in terms of the spherical
>>> coordinates you could have
>>>
>>> ShericalCooridinates.div(V) returns the divergence and
>>>
>>> ShericalCooridinates.curl(V) returns the curl, and if A and B are two
>>> vectors in spherical coordinates then
>>>
>>> ShericalCooridinates.dot(A,B) returns the dot product and
>>>
>>> ShericalCooridinates.cross(A,B) returns the cross product.
>>>
>>> On Tue, Mar 21, 2017 at 4:21 PM, Sassi Aissa <sassi.aissa...@gmail.com>
>>> wrote:
>>>
>>>> As I read the description of the Idea, I think I have to implement an
>>>> abstract class called: Coordinate System, then create several classes that
>>>> represent different types
>>>> of Coordinate system and inherent from the so called 'Coordinate
>>>> System' class. Is it like this?
>>>>
>>>> --
>>>> 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/ms
>>>> gid/sympy/747ffaa1-3d64-4728-8e8e-8b76b59e4a31%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/sympy/747ffaa1-3d64-4728-8e8e-8b76b59e4a31%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> --
>> 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+unsubscr...@googlegroups.com.
>> To post to this group, send email to sympy@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/ms
>> gid/sympy/9f60d7ef-1d8d-4f31-8c96-19a668a886d2%40googlegroups.com
>> <https://groups.google.com/d/msgid/sympy/9f60d7ef-1d8d-4f31-8c96-19a668a886d2%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@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/CALOxT-n%2BZT8oghvWibFHMX7UzV8UQ8bEhdnA7Y-gWg_KBvjbEQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to