On Thu, 17 Sep 2009, Jan Biermann wrote:

> I have been using an old libmesh version until now because I didn't want to 
> bother changing all my application code. But now the problem size becomes 
> this big that I cannot get around the latest version (because I think you 
> changed the mesh class for parallel computing, so not storing the entire mesh 
> on every processor,right?)

No permanent change to the mesh class yet - the ParallelMesh does what
you're talking about, but it still has some bugs with adaptive
coarsening, and no schedule for when they might be fixed.  If you're
not doing any adaptive coarsening then you can --enable-parmesh at
configure time to use it.

There is a permanent change in the SVN head to use "ghosted" instead
of global PETSc vectors for many applications, which should save you a
little RAM.

> But now that I want to install the latest version, I ran into some bugs where 
> the code didn't want to compile for complex numbers but after fixing it,

Thanks for letting us know!  I haven't tried --enable-complex on the
SVN head in a long while.

I've added a libmesh_not_implemented() to the Ensight output if people
try to write with LIBMESH_USE_COMPLEX_NUMBERS, and made a few changes
to make sure it compiles.  EnsightIO is a relatively new class from
Ben Kirk; I'm not familiar with the format and I'm not sure when/if
we'll be able to add actual complex-number support to it.

I've changed fabs() to std::abs() in Derek's new NumericVector::abs()
functions, and v*v to libmesh_norm(v) in
NumericVector::subset_l2_norm().

Trilinos seems pretty incompatible with complex numbers unless there's
an EpetraVector option I'm missing, so I've changed our configure.in
to disable Trilinos support whenever complex-number support is
requested.

> I finally  get an error that I don't understand:

We use Parallel::datatype<> to wrap a bunch of MPI calls into a much
nicer interface.  Unfortunately, it looks like MPI_DOUBLE_COMPLEX is a
Fortran-only datatype, and MPI::DOUBLE_COMPLEX requires a C++ MPI2
standard whereas we've been trying to stay C MPI1 compatible, so we
have to write special template definition for Parallel operations
on std::complex data.  If allgather code ever tried to use a
non-special template definition, this is the error you'd see.

Ben added a new Parallel::allgather() argument a while back, but he
did it properly on both the regular and complex versions - I'm not
sure what the problem here could be.  I'll keep looking.
---
Roy

------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to