You should be able to call PetscOptionsSetValue() anytime you want, as I said
between different uses of MUMPS you can call it to use different directories.
Perhaps this confused you?
Note:
This function can be called BEFORE PetscInitialize()
It is one of the very few functions that can be called before
PetscInitialize() but it does not NEED to be called before PetscInitialize().
Barry
> On Feb 28, 2022, at 7:34 PM, Sam Guo <[email protected]> wrote:
>
> Hi Barry,
> I can only call PetscOptionsSetValue before PetscInitialize() but I call
> PetscInitialize only once at the beginning of my program. I want to change
> MUMPS OOC_TMPDIR dynamically on the fly.
>
> Thanks,
> Sam
>
> On Mon, Feb 28, 2022 at 1:34 PM Barry Smith <[email protected]
> <mailto:[email protected]>> wrote:
>
> You can call PetscOptionsSetValue("-mat_mumps_ooc_tmpdir","directory");
> anytime before the KSP/PCSetUp() is called. If you have multiple uses of
> MUMPs solvers you can call this between each use so that a different
> directory is used for different MUMPS usage.
>
> Barry
>
>
>
>> On Feb 28, 2022, at 2:22 PM, Sam Guo <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> Dear PETSc dev team,
>> I would like to set MUMPS OOC_TMPDIR programmatically on fly (instead of
>> statically using PetscOptionsString
>> <https://petsc.org/main/docs/manualpages/Sys/PetscOptionsString.html#PetscOptionsString>("-mat_mumps_ooc_tmpdir",
>> "out of core directory", "None", mumps->id.ooc_tmpdir,
>> mumps->id.ooc_tmpdir, sizeof(mumps->id.ooc_tmpdir), NULL);). It seems there
>> is such an API, am I correct?
>>
>> Thanks,
>> Sam
>