Could it error if the input starts with PETS_ to prevent inadvertent mistakes hanging around for years?
> On Oct 15, 2020, at 10:39 PM, Jed Brown <[email protected]> wrote: > > Mark Adams <[email protected]> writes: > >> I have: >> >> #if defined(PETSC_HAVE_CUDA) >> ierr = PetscInfo3(pc,"PETSC_HAVE_CUDA ---------------------Test: >> factor=%D. cuda=%D >> level=%D\n",pc_gamg->level_reduction_factors[pc_gamg->current_level], >> *PetscDefined(PETSC_HAVE_CUDA)*,pc_gamg->current_level);CHKERRQ(ierr); >> #endif >> >> and see: >> >> [0] PCGAMGCreateLevel_GAMG(): PETSC_HAVE_CUDA ---------------------Test: >> factor=2.* cuda=0* level=0 >> >> So PETSC_HAVE_CUDA is defined yet PetscDefined(PETSC_HAVE_CUDA) is 0. Am I >> missing something? > > The syntax is PetscDefined(HAVE_CUDA). This is explained by way of example > in the man page, but perhaps it should be explicitly repeated. > > https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscDefined.html
