Re: [Libmesh-users] parallel.h bug report

2008-10-13 Thread Roy Stogner
On Mon, 13 Oct 2008, John Peterson wrote: > Okay. For some reason I thought tiny structs like that might get > padded out to a 4 or 8-byte boundary in memory. The reason for padding is to avoid misaligned data in memory. So if you had a struct containing a char and a short, for example, a padd

Re: [Libmesh-users] parallel.h bug report

2008-10-13 Thread John Peterson
On Mon, Oct 13, 2008 at 1:58 PM, Roy Stogner <[EMAIL PROTECTED]> wrote: > > > On Mon, 13 Oct 2008, John Peterson wrote: > >> I checked out GCC's implementation of std::complex and I see the >> class contains two T's rather than e.g. a length=2 array such as: "T >> array[2];". So in the (purely aca

Re: [Libmesh-users] parallel.h bug report

2008-10-13 Thread Roy Stogner
On Mon, 13 Oct 2008, John Peterson wrote: > I checked out GCC's implementation of std::complex and I see the > class contains two T's rather than e.g. a length=2 array such as: "T > array[2];". So in the (purely academic) case where someone had a > vector> I would be a little worried about the

Re: [Libmesh-users] parallel.h bug report

2008-10-13 Thread John Peterson
On Mon, Oct 13, 2008 at 11:12 AM, Roy Stogner <[EMAIL PROTECTED]> wrote: > > > On Mon, 13 Oct 2008, John Peterson wrote: > >> Hmm... >> >> I'm not sure I see how this function works. r and r_src are >> vector> but we are MPI gathering them as datatype, where >> T=Real. Surely the layouts of an ar

Re: [Libmesh-users] parallel.h bug report

2008-10-13 Thread Roy Stogner
On Mon, 13 Oct 2008, John Peterson wrote: > On Mon, Oct 13, 2008 at 9:04 AM, Gong Ding <[EMAIL PROTECTED]> wrote: >> In function >> >> template >> >> inline void gather(const unsigned int root_id, >> >> std::vector > &r) >> >> line 1454 to 1457 should be >> // now resize r to

Re: [Libmesh-users] parallel.h bug report

2008-10-13 Thread John Peterson
On Mon, Oct 13, 2008 at 9:04 AM, Gong Ding <[EMAIL PROTECTED]> wrote: > In function > > template > > inline void gather(const unsigned int root_id, > > std::vector > &r) > > line 1454 to 1457 should be > // now resize r to hold the global data > > // on the receiving processor >

[Libmesh-users] parallel.h bug report

2008-10-13 Thread Gong Ding
In function template inline void gather(const unsigned int root_id, std::vector > &r) line 1454 to 1457 should be // now resize r to hold the global data // on the receiving processor if (root_id == libMesh::processor_id()) r.resize(globalsize/2); since mysize