<div dir="ltr">Ah, thanks.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Oct 15, 2020 at 11:39 PM Jed Brown <<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Mark Adams <<a href="mailto:mfadams@lbl.gov" target="_blank">mfadams@lbl.gov</a>> writes:<br>
<br>
> I have:<br>
><br>
> #if defined(PETSC_HAVE_CUDA)<br>
>   ierr = PetscInfo3(pc,"PETSC_HAVE_CUDA ---------------------Test:<br>
> factor=%D. cuda=%D<br>
> level=%D\n",pc_gamg->level_reduction_factors[pc_gamg->current_level],<br>
> *PetscDefined(PETSC_HAVE_CUDA)*,pc_gamg->current_level);CHKERRQ(ierr);<br>
> #endif<br>
><br>
> and see:<br>
><br>
> [0] PCGAMGCreateLevel_GAMG(): PETSC_HAVE_CUDA ---------------------Test:<br>
> factor=2.* cuda=0* level=0<br>
><br>
> So PETSC_HAVE_CUDA is defined yet PetscDefined(PETSC_HAVE_CUDA) is 0. Am I<br>
> missing something?<br>
<br>
The syntax is PetscDefined(HAVE_CUDA).  This is explained by way of example in the man page, but perhaps it should be explicitly repeated.<br>
<br>
<a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscDefined.html" rel="noreferrer" target="_blank">https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscDefined.html</a><br>
</blockquote></div>