./programname options   -on_error_attach_debugger 

then when it stops look at the object and see what it is and why it isn’t a Mat 
 This is trivial and not worth a bunch of emails back and forth; you need to 
know the basics of using a debugger.


 Barry

> On Oct 20, 2014, at 5:21 PM, Harshad Sahasrabudhe <[email protected]> wrote:
> 
> Hi Matt,
> 
> If I have 2 instances of PETSc, one which is initialized by LibMesh and the 
> other which is initialized in my code, then would getting a Mat from one 
> version to the other cause this issue? I know that this is not the right way 
> to do it, I'm just trying to zero in on the problem.
> 
> a) is not the problem, since I create and assemble the matrix using LibMesh 
> API. b) is not it either, I ran a simple example and it works in that case. 
> For c), I ran my code with Valgrind and didn't get any invalid write errors.
> 
> Thanks,
> Harshad
> 
> On Mon, Oct 20, 2014 at 4:19 PM, Matthew Knepley <[email protected]> wrote:
> On Mon, Oct 20, 2014 at 3:17 PM, Harshad Sahasrabudhe <[email protected]> 
> wrote:
> I get the Mat object from libMesh::PetscMatrix<>::mat(), and it's been 
> created and assembled before I call MatGetType.
> 
> But what you are getting is invalid, so either
> 
>   a) it has not been created and assembled in LibMesh
> 
>   b) the right thing is not getting passed back (LibMesh problem)
> 
> or
> 
>   c) you are overwriting memory and it manifests here (check with valgrind)
> 
> It is very easy to look in these structures using the debugger. We are just 
> checking an integer
> in the header for the object that identifies it as a Mat.
> 
>    Matt
>  
> On Mon, Oct 20, 2014 at 4:12 PM, Matthew Knepley <[email protected]> wrote:
> On Mon, Oct 20, 2014 at 3:07 PM, Harshad Sahasrabudhe <[email protected]> 
> wrote:
> Hi,
> 
> I get the following error when I call MatGetType even though I'm calling the 
> function with a Mat object.
> 
> [0]PETSC ERROR: Invalid argument!
> [0]PETSC ERROR: Wrong type of object: Parameter # 1!
> 
> What could be going wrong?
> 
> You are not calling it with a valid Mat object. Did you call MatCreate?
> 
>    Matt
>  
> Thanks,
> Harshad
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments 
> is infinitely more interesting than any results to which their experiments 
> lead.
> -- Norbert Wiener
> 
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments 
> is infinitely more interesting than any results to which their experiments 
> lead.
> -- Norbert Wiener
> 

Reply via email to