On Sun, Nov 13, 2011 at 22:45, Roy Stogner <[email protected]> wrote:
> The libMesh terminate handler catches C++ exceptions; gdb intercepts
> segfaults... but on PETSc errors, we've got nothing in place to catch
> the problem before program exit. My workaround has always been to
> re-run and step through the program manually, but in hindsight I
> suppose we ought to be figuring out something appropriate to give to
> PetscPushErrorHandler()?
>
You could do that. I just have
"break PetscError"
in my ~/.gdbinit. That way when I run in the debugger, it automatically
stops at the first error. You can also -run_in_debugger which also sets
this up. Or use -on_error_attach_debugger which has a similar effect, but
runs full speed up until an error is encountered.
David,
void RBSCMConstruction::load_matrix_B()
{
// Load the operators from the RBConstruction
EquationSystems& es = this->get_equation_systems();
RBConstruction& rb_system = es.get_system<RBConstruction>(RB_system_name);
matrix_B->zero();
matrix_B->add(1.,*rb_system.get_inner_product_matrix());
}
Could you manage to call MatCopy() here instead? The problem is that the
matrix isn't assembled yet, we don't know the preallocation. I haven't
figured out how you were creating this matrix (such that it got here while
still being set as unassembled), but it would be cleaner to just call
MatCopy() in this circumstances.
------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users