Re: [eigen] [RFC] Tensor module: class hierarchy |

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: Re: [eigen] [RFC] Tensor module: class hierarchy*From*: Ralf Denzer <ralf.denzer@xxxxxxxxxxxxxx>*Date*: Sun, 08 Jun 2014 15:01:28 +0200

Hello Christian, just a comment concerning your TODO-list:

I don't know if you know about FTensor library from Walter Landry: http://www.wlandry.net/Projects/FTensor He can do the following code: FTensor::Index<'i', 3> i; FTensor::Index<'j', 3> j; FTensor::Index<'k', 3> k; FTensor::Index<'l', 3> l; FTensor::Tensor2<double, 3,3> cauchy; FTensor::Tensor2<double, 3,3> P; FTensor::Tensor2<double, 3,3> f; double JF; ... // single contraction with 'j' // so, he has Einstein summation convention! P(i, k) = JF * cauchy(j, i) * f(k, j); ... FTensor::Tensor4<double, 3,3,3,3> C4; FTensor::Tensor4<double, 3,3,3,3> IdydI; ... // dyadic products of 2nd order tensor // additionally with some transpositions C4(i, j, k, l) = IdydI(i, k, j, l) + f(j, i) * f(l, k) - f(l, i) * f(j, k); Personally, I like his notation very much, because it's very close to the usual index notation for tensors. Thus, he defines a lot of operator*, operator+ etc. for all kinds of contractions and other tensor products ... and he defines some special tensors of different order with symmetries ... A similar library is https://code.google.com/p/ltensor/ Best Ralf On 06/08/2014 01:26 PM, Christian Seiler wrote:

Hi there, I am currently working on the tensor module to try to make it more useful. (In case you are not familiar with it: I put some introductory words in the wiki: [1]) The current state is: it basically only stores data for now. My goal for the immediate future is to implement a class hierarchy similar to that which Eigen uses itself. This will then allow me to introduce some basic expressions such as adding two tensors etc, which will immediately make the tensor module quite a bit more useful than beforehand. My problem here is that I have some conceptual questions I'd like to discuss before proceeding. I've documented the details under: http://eigen.tuxfamily.org/index.php?title=Working_notes_-_Tensor_module Basically I have three immediate things I'd like to have feedback on: 1. the names of the new class hierarchy: do you agree or do you have better ideas? 2. packet access for tensors: should I just deviate from Eigen by changing the argument order of writePacket for tensors or should writePacket() for tensors only accept std::array for index specification? (see wiki page for an explanation) 3. expression template names: is it possible to somehow reuse the CwiseBinaryOp etc. names for tensors (obviously with a different implementation behind it) or do I have to go the way of TensorCwiseBinaryOp? Any other general comments / ideas / suggestions are of course also welcome. Thank you! Regards, Christian [1] http://eigen.tuxfamily.org/index.php?title=Tensor_support

**Follow-Ups**:**Re: [eigen] [RFC] Tensor module: class hierarchy***From:*Christian Seiler

**References**:**[eigen] [RFC] Tensor module: class hierarchy***From:*Christian Seiler

**Messages sorted by:**[ date | thread ]- Prev by Date:
**[eigen] [RFC] Tensor module: class hierarchy** - Next by Date:
**Re: [eigen] [RFC] Tensor module: class hierarchy** - Previous by thread:
**[eigen] [RFC] Tensor module: class hierarchy** - Next by thread:
**Re: [eigen] [RFC] Tensor module: class hierarchy**

Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |