Thank you for answer. I would like to work on this topic during GSoC and 
your answer, that at the moment we should stick only to orthogonal 
coordinates is useful.
Now I am preparing proposal.



W dniu czwartek, 23 marca 2017 22:56:28 UTC+1 użytkownik brombo napisał:
>
> 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 <[email protected] 
> <javascript:>> 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, <[email protected] <javascript:>> 
>> 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 <[email protected]> 
>>>> 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 [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> 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/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 [email protected] <javascript:>.
>>> To post to this group, send email to [email protected] 
>>> <javascript:>.
>>> 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/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 [email protected].
To post to this group, send email to [email protected].
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/9cf2539a-4bd9-43bb-8be6-6f5faa83cfca%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to