On Thu, 5 Sep 2013, Mark F. Adams wrote: > > On Sep 5, 2013, at 12:39 PM, Matthew Knepley <[email protected]> wrote: > > > On Thu, Sep 5, 2013 at 11:35 AM, Mark F. Adams <[email protected]> wrote: > > > > On Sep 5, 2013, at 6:16 AM, Matthew Knepley <[email protected]> wrote: > > > >> On Thu, Sep 5, 2013 at 1:19 AM, Mark F. Adams <[email protected]> wrote: > >> In > >> http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscInitialize.html > >> I see: > >> > >> file - [optional] PETSc database file, also checks > >> ~username/.petscrc and .petscrc use NULL to not check for code specific > >> file. Use -skip_petscrc in the code specific file to skip the .petscrc > >> files > >> > >> I don't understand what "Use -skip_petscrc in the code specific file" > >> means. In looking at the code it seems like this line should read > >> something like: > >> > >> … If you do not want to use a resource file, use NULL and add > >> -skip_petscrc to the command line. > >> > >> Here is what it is trying to say. There are three files we can check: > >> > >> 1) ~username/.petscrc > >> 2) cwd/.petscrc > >> 3) "code specific file", whose name is passed into PetscIntitialize() > >> > >> If you pass in NULL to PetscInitialize(), it will not check option 3). If > >> you pass in a real name to PetscIntiialize(), and > >> in the "code specific file" you put -skpi_petscrc, then it will not check > >> options 1) and 2). > > > > OK, I'm being dense but I think to be explicit you need to add "If you pass > > in NULL and use -skip_petscrc on the command line then no files will be > > checked." > > > > I wanted to not have files get checked and added -skip_petscrc to the > > command line but this was not sufficient. I needed to change the code to > > use NULL (or I told my user to do so). Sorry but I could not figure this > > out from the docs or even your better explanation w/o looking at the code. > > It is natural to want to just add a command line option w/o recompiling, > > and this would be possible (not that I'm volunteering to do it) and would > > fit the PETSc philosophy of using command lines args and not user code to > > control. Perhaps this is a dummy proof doc: > > > > There are three files we can check: > > > > 1) ~username/.petscrc > > 2) cwd/.petscrc and cwd/petscrc > > 3) This code specific file. > > > > If you pass in NULL, it will not check option 3) and if you additionally > > use -skip_petsc on the command line then no files will checked. If you pass > > in a real file name, and you put -skpi_petscrc in this file, then it will > > not check options 1) and 2). > > > > Why don't we change it so that not even the "code specific file" is checked > > with passing -skip_petscrc? I think this makes more sense > > and it would solve Mark's problem, and likely other future problems. > > This would be easy to do. Satish's suggestion of a new parameter > -skip_useroptfile would work too but and more stuff … I would vote for Matt's > solution.
One issue is: command line arguments are not always available [some fortran compilers - whose internals we don't know about or get changed in subsequent releases]. We also have PETSC_OPTIONS env variable. Perhaps we might have to call load this up twice [similar to PetscOptionsInsertArgs_Private() - the first time to capture -skip_petscrc] - and the second time for precedence rule.. Satish
