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