[petsc-users] Petsc Options
Barry Smith
bsmith at mcs.anl.gov
Mon Nov 14 20:11:03 CST 2011
I have added to petsc-dev the following
#undef __FUNCT__
#define __FUNCT__ "PetscOptionsUsed"
/*@C
PetscOptionsUsed - Indicates if PETSc has used a particular option set in the database
Not Collective
Input Parameter:
. option - string name of option
Output Parameter:
. used - PETSC_TRUE if the option was used, otherwise false, including if option was not found in options database
Level: advanced
.seealso: PetscOptionsView(), PetscOptionsLeft(), PetscOptionsAllUsed()
@*/
PetscErrorCode PetscOptionsUsed(const char *option,PetscBool *used)
{
PetscInt i;
PetscErrorCode ierr;
PetscFunctionBegin;
*used = PETSC_FALSE;
for (i=0; i<options->N; i++) {
ierr = PetscStrcmp(options->names[i],option,used);CHKERRQ(ierr);
if (*used) {
*used = options->used[i];
break;
}
}
PetscFunctionReturn(0);
}
On Nov 14, 2011, at 5:06 PM, Cody Permann wrote:
>
> On Nov 14, 2011, at 2:20 PM, Matthew Knepley wrote:
>
>> On Mon, Nov 14, 2011 at 9:16 PM, Cody Permann <codypermann at gmail.com> wrote:
>> How about a function that would fill in a char *[] with the options used or a function that would return a boolean for a single option indicating whether it was used or not? Basically we just need a public way to get at the data in PetscOptionTable::used.
>>
>> I don't like the whole table of options used, and we definitely need PetscOptionsOptionUsed(). What about providing
>> the number of options, and an array of all option names?
>
> That will work fine. Anything is better than what we have now ;)
>
>>
>> Matt
>>
>> Thanks,
>> Cody
>>
>> On Nov 14, 2011, at 12:41 PM, Barry Smith wrote:
>>
>> >
>> > Cody,
>> >
>> > What would you like the API to look like?
>> >
>> > Barry
>> >
>> >
>> > On Nov 14, 2011, at 1:39 PM, Cody Permann wrote:
>> >
>> >> There doesn't appear to be an API in PETSc for getting back the command line options "used" or "unused" for a simulation. Yes I am aware that the options unused can be printed but there doesn't appear to be a mechanism for returning them back through a function call. I'd like to add an option to MOOSE that would work like PETSc's "-options_left" CLI argument, but in order to do so I need to combine the options recognized for both libraries to report the global unused list. Right now both MOOSE and PETSc have full access to the raw ARGV vector and each library recognizes it's own options and ignores the rest.
>> >>
>> >> I could strip out the options from ARGV before passing it to PETSc in conjunction with "-options_left" but that doesn't give me quite as much flexibility as I'd like. It looks like there are about two dozen or so PETSc related options functions in the API but none of them return unused options, or otherwise allow me to query whether any particular option was recognized or not. Is this assumption correct?
>> >>
>> >> Thanks,
>> >> Cody
>> >
>>
>>
>>
>>
>> --
>> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
>> -- Norbert Wiener
>
More information about the petsc-users
mailing list