On Tue, 15 Sep 2015, John Peterson wrote:

> We should probably try to prevent this type of configuration from getting
> run by throwing an error if the Eigen sparse solvers are invoked when
> n_processors() > 1.
>
> @roystgnr any preferences for how to do this?

How are we not already throwing an error?  This is probably my fault
for dropping work on the FAQ I was going to add to the website, where
"run in devel or debug mode!" was entry #1.

In all the EigenSparseVector constructors:

   libmesh_assert_equal_to (n, n_local);

I'm sometimes tempted to go the PETSc route and configure to only
build devel mode by default, but I suspect that would just make the
learning curve problem *worse*.  At least when a new user sees weird
results they're likely to ask the mailing list; when a new user sees
slow results they may just assume the code is slow and silently move
on.

Perhaps this particular error is bad enough to be worth screaming
about in opt mode?  Maybe even adding the libmesh_opt_assert()
macro(s) I wanted once upon a time, to get us in the habit of adding
such asserts when they're valuable and cheap?  The vector constructors
are (pretty much by definition) not called in innermost loops, and if
even that's too bad we could put the opt-assertion in the solver
constructors and it won't even be in any outer loops.
---
Roy

------------------------------------------------------------------------------
_______________________________________________
Libmesh-users mailing list
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to