[petsc-users] command line handling in PETSC 3.2, a simple fix for Wheezy?

Alexei Matveev alexei.matveev+petsc at gmail.com
Fri Apr 26 07:17:03 CDT 2013


Dear List,

While porting an application to the upcoming Debian Wheeze
we noted a misbehaviour in command line parsing by PETSC 3.2.

It looks like if a "--key value" pair is following a "--flag-with-no-value"
option
at the leading position, the key-value pair is being ignored. See minimal
example below.

Is this something known? Is there a simple fix that had a chance
to convince Debian maintainers to apply it before 7.0 or even
7.0.1?

Alexei, Bo


$ cat options.c

#include "petsc.h"

int main( int argc, char *argv[] )
{
    int val1 = 1;
    int val2 = 2;
    PetscBool test;
    PetscErrorCode ierr;

    PetscInitialize( &argc, &argv, 0, 0);

    ierr = PetscOptionsHasName (PETSC_NULL, "--test", &test);
    if (test)
        PetscPrintf (PETSC_COMM_WORLD, "with --test option\n");
    else
        PetscPrintf (PETSC_COMM_WORLD, "without --test option \n");

    ierr = PetscOptionsGetInt (PETSC_NULL, "--op1", &val1, &test);
    ierr = PetscOptionsGetInt (PETSC_NULL, "--op2", &val2, &test);



    PetscPrintf (PETSC_COMM_WORLD, "op1: %d\n", val1);
    PetscPrintf (PETSC_COMM_WORLD, "op2: %d\n", val2);

    PetscFinalize();

    return 0;
}

When executing on neh13, "--opt1" couldn't get its value from command line
when the no-value option "--test" appears before it:

lib at neh13:~/petsc/options$ ./test --test --op1 23 --op2 45
with --test option
op1: 1
op2: 45
lib at neh13:~/petsc/options$ ./test --op1 23 --op2 45
without --test option
op1: 23
op2: 45
lib at neh13:~/petsc/options$ ./test --op1 23 --op2 45 --test
with --test option
op1: 23
op2: 45

I also test it on quad4 and on my local cluster with the latest version of
Petsc(3.3), this bug doesn't appear:

lib at crc3:~/petsc/options$ ./test --test --op1 23 --op2 45
with --test option
op1: 23
op2: 45

Looks it only exists in Petsc-3.2 :(
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130426/d61f75e2/attachment.html>


More information about the petsc-users mailing list