<div>I have some existing libMesh code that I would like to use with this ex52 GPU code example.</div><div><br></div><div>I think it may be reasonable to use the existing code for setup of initial conditions and jacobian calc,</div>
<div>But then use the GPU residual calculation.</div><div><br></div><div>Where is the nodal degree of freedom stored in the &quot;DM_Complex&quot; data structure  ?</div><div>I would like to setup the same dof ordering in the libMesh data structures.</div>
<div><br></div><div>I&#39;m also a little unfamiliar with the terminology in the DM_Complex data structure,</div><div>what is being referred to by the &quot;cones&quot;, &quot;maxConeSize&quot;, and &quot;coneOrientation&quot; ? </div>
<div><br></div><div>Lastly,</div><div>Are there any data structures to pass spatially varying element-wise material parameters to the inner loop of the assembly?</div><div><br></div><div>for example, something like:</div>
<div><br></div><div>diff -r 58bb1a4e8a0d src/snes/examples/tutorials/ex52_integrateElement.cu</div><div>--- a/src/snes/examples/tutorials/ex52_integrateElement.cu      Tue Mar 27 23:22:11 2012 -0500</div><div>+++ b/src/snes/examples/tutorials/ex52_integrateElement.cu      Mon Apr 23 09:36:30 2012 -0500</div>
<div>@@ -3,8 +3,8 @@</div><div> </div><div> #include &quot;ex52_gpu.h&quot;</div><div> </div><div>-__device__ vecType f1_laplacian(float u[], vecType gradU[], int comp) {</div><div>-  return gradU[comp];</div><div>+__device__ vecType f1_laplacian(float thermalconductivity, float u[], vecType gradU[], int comp) {</div>
<div>+  return thermalconductivity*gradU[comp];</div><div> }</div><div><br></div><div><br></div><div><br></div><div><br></div><div>Thanks,</div><div>David</div><div><br></div><div><br></div><div><br></div><div><br></div><div>
<br></div><div><br></div><div>On Mon, Apr 2, 2012 at 9:37 PM, Matthew Knepley <span dir="ltr">&lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt;</span> wrote:</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Wed, Mar 28, 2012 at 6:42 PM, Matthew Knepley <span dir="ltr">&lt;<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>&gt;</span> wrote:<br></div><div class="gmail_quote"><div class="im">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>On Wed, Mar 28, 2012 at 6:25 PM, David Fuentes <span dir="ltr">&lt;<a href="mailto:fuentesdt@gmail.com" target="_blank">fuentesdt@gmail.com</a>&gt;</span> wrote:<br></div><div class="gmail_quote"><div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>Yes. This would work. </div><div>I had trouble compiling in single precision using the some of the external package options I was using for double.</div></blockquote><div><br></div></div><div>Okay,  getting on it now.</div>

</div></blockquote><div><br></div></div><div>Okay, I have tested using PetscReal=double with floats on the GPU. If you want doubles on the GPU, you can</div><div>currently change PETSc/FEM.py:434. I am deciding what the best way to specify this type is.</div>

<div><br></div><div>  Thanks,</div><div><br></div></div></blockquote></div>