to my mind, Blitz++ is indeed the best choice for implementing tensor calculus!
2011/6/10 Boyce Griffith <[email protected]> > On 6/10/11 12:05 PM, John Peterson wrote: > > On Fri, Jun 10, 2011 at 9:50 AM, Ataollah Mesgarnejad > > <[email protected]> wrote: > >> Dear all, > >> > >> Is there a way to implement a fourth order tensor A_ijkl using libmesh > native classes? > > > > Nope. > > > >> If not how do you recommend to do it ? > > > > If it has a fixed size I * J * K * L: > > > > Real tensor[I][J][K][L]; > > > > If the size is variable, you could use a > > > > vector<vector<vector<vector<Real> > > > > > > > (This is one reason why Fortran programmers think C++ is dumb.) > > > > but a better idea would be to write a class which wraps the data > > structure above or a 1D vector and do array subscripting tricks. > > > > If you want to bring external libraries into the mix, there is > > probably a good one out there. Don't know of one off the top of my > > head. > > One external library that might be worth considering for this kind of > stuff is Blitz++, which provides "tensor-like" notation that can make > dealing with higher order tensors less painful: > > http://www.oonumerics.org/blitz/docs/blitz_3.html#SEC99 > > (It is also easy to get carried away and write very cryptic array > expressions.) > > Blitz++ development has slowed over the last several years, and so to > get the most recent released version (0.9) to run on recent C++ > compilers, it may be necessary to patch the source code, e.g.: > > http://sharpen.che.caltech.edu/mediawiki/index.php/Patching_blitz_0.9 > > If you download the source from their repo, I think it should work > without patching. > > -- Boyce > > > ------------------------------------------------------------------------------ > EditLive Enterprise is the world's most technically advanced content > authoring tool. Experience the power of Track Changes, Inline Image > Editing and ensure content is compliant with Accessibility Checking. > http://p.sf.net/sfu/ephox-dev2dev > _______________________________________________ > Libmesh-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/libmesh-users > ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
