<div dir="ltr"><div class="gmail_extra">On Mon, Jan 7, 2013 at 10:19 AM, Paul Mullowney <span dir="ltr"><<a href="mailto:paulm@txcorp.com" target="_blank">paulm@txcorp.com</a>></span> wrote:<br><div class="gmail_quote">

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">I looked at the code for VecCUSPGetArrayWrite() in cuspvecimpl.h. I
    can't see why the compiler complains about uninitialized values
    although this only happens, I think, when I compile in double
    complex.</div></blockquote><div><br></div><div>It's likely a compiler analysis bug of not propagating the CHKERRQ checks back up the stack. See comment in PetscLayoutFindOwner() for an example of this and the preferred workaround.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000"><div></div>
    Yes this should only be called once, I will add a fix to this. Although
    there is no memory leak as I check this under the hood in
    txpetscgpu.<br>
    <br>
    Is there any way to determine from a MAT object whether a Tranpose
    solve is needed? That is, is there any global information that I can
    access that tells my I'm running BiCG and thus I need a Transpose
    Solve?  If so, then I could do all of this in the Setup functions
    (i.e. the functions that do the ILU factorization and then push the
    data down to the GPU.)<div></div></div></blockquote></div><br></div><div class="gmail_extra">No, we don't have this information up-front. (It's not until a later function call that MatSolveTranspose() is called.) Best to do that setup the first time it's used and not again (unless the matrix changes, in which case you MatAssemblyEnd should invalidate the flag).</div>

</div>