On 11/14/2011 01:06 AM, Jed Brown wrote:
> 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.

Certainly, thanks for the suggestion Jed. The idea is that we're just 
copying the assembled matrix over from rb_system to provide the "right 
hand side" matrix for RBSCMConstruction (which derives from EigenSystem).

Would I have to use the raw PETSc MatCopy() though? I don't see a 
libMesh wrapper for it, and using SparseMatrix's operator= gives a 
memory leak... this is why I was doing the "zero" then "add" (which is 
presumably horribly inefficient, but at least it's not PETSc-specific...)

David


------------------------------------------------------------------------------
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

Reply via email to