> Any additional methods that are provided will _not work_ if they do 
> not have access to the RefFrame objects (in order to know how to 
> transform between coordinates). Your proposal does not explain how 
> these RefFrame objects will be accessed. 
>

But they do.

I'll try to explain the structure one more time.
Basic->Expr->Vector

Every Vector has an attribute, `ref_frame`, that specifies the RefFrame 
object that we are using for that vector. (Also,Vector objects are just 
basis vectors)

Now, let us say we have a vector field like this:

v = x * e_x + y * e_y + z * e_z 

Without the VectAdd class, v is just an Add and we would have none of the 
methods we need for operating on vectors. Instead, if we have v as a 
VectAdd object, we can extend the Add class to provide methods that are 
required on vectors.

Initially, when we weren't following the basis vector based approach, v 
would have been a Vector object. In *that* case, we would have had these 
methods defined in the Vector class. But since we are following the 
approach where a Vector is just a basis vector, therefore we need something 
to deal with vector fields that are not instances of Vector. Hence the 
requirement for these two classes.

Here's the hierarchy:
Basic->Expr->Add->VectAdd 

Basic->Expr->Mul->VectMul

I hope this clarifies the issue. Any more problems?

-- 
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 http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to