Perfect that will work for me.<div><br></div><div>Thanks,<br>Cody<br><br><div class="gmail_quote">On Mon, Nov 14, 2011 at 7:11 PM, Barry Smith <span dir="ltr">&lt;<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
  I have added to petsc-dev the following<br>
<br>
#undef __FUNCT__<br>
#define __FUNCT__ &quot;PetscOptionsUsed&quot;<br>
/*@C<br>
   PetscOptionsUsed - Indicates if PETSc has used a particular option set in the database<br>
<br>
   Not Collective<br>
<br>
   Input Parameter:<br>
.    option - string name of option<br>
<br>
   Output Parameter:<br>
.   used - PETSC_TRUE if the option was used, otherwise false, including if option was not found in options database<br>
<br>
   Level: advanced<br>
<br>
.seealso: PetscOptionsView(), PetscOptionsLeft(), PetscOptionsAllUsed()<br>
@*/<br>
PetscErrorCode  PetscOptionsUsed(const char *option,PetscBool *used)<br>
{<br>
  PetscInt       i;<br>
  PetscErrorCode ierr;<br>
<br>
  PetscFunctionBegin;<br>
  *used = PETSC_FALSE;<br>
  for (i=0; i&lt;options-&gt;N; i++) {<br>
    ierr = PetscStrcmp(options-&gt;names[i],option,used);CHKERRQ(ierr);<br>
    if (*used) {<br>
      *used = options-&gt;used[i];<br>
      break;<br>
    }<br>
  }<br>
  PetscFunctionReturn(0);<br>
<div class="HOEnZb"><div class="h5">}<br>
<br>
On Nov 14, 2011, at 5:06 PM, Cody Permann wrote:<br>
<br>
&gt;<br>
&gt; On Nov 14, 2011, at 2:20 PM, Matthew Knepley wrote:<br>
&gt;<br>
&gt;&gt; On Mon, Nov 14, 2011 at 9:16 PM, Cody Permann &lt;<a href="mailto:codypermann@gmail.com">codypermann@gmail.com</a>&gt; wrote:<br>
&gt;&gt; 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.<br>

&gt;&gt;<br>
&gt;&gt; I don&#39;t like the whole table of options used, and we definitely need PetscOptionsOptionUsed(). What about providing<br>
&gt;&gt; the number of options, and an array of all option names?<br>
&gt;<br>
&gt; That will work fine.  Anything is better than what we have now ;)<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt;    Matt<br>
&gt;&gt;<br>
&gt;&gt; Thanks,<br>
&gt;&gt; Cody<br>
&gt;&gt;<br>
&gt;&gt; On Nov 14, 2011, at 12:41 PM, Barry Smith wrote:<br>
&gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;  Cody,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;    What would you like the API to look like?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;   Barry<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Nov 14, 2011, at 1:39 PM, Cody Permann wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; There doesn&#39;t appear to be an API in PETSc for getting back the command line options &quot;used&quot; or &quot;unused&quot; for a simulation.  Yes I am aware that the options unused can be printed but there doesn&#39;t appear to be a mechanism for returning them back through a function call.  I&#39;d like to add an option to MOOSE that would work like PETSc&#39;s &quot;-options_left&quot; 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&#39;s own options and ignores the rest.<br>

&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I could strip out the options from ARGV before passing it to PETSc in conjunction with &quot;-options_left&quot; but that doesn&#39;t give me quite as much flexibility as I&#39;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?<br>

&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Thanks,<br>
&gt;&gt; &gt;&gt; Cody<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
&gt;&gt; -- Norbert Wiener<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>