<div dir="ltr">I have a PetscOptionsBegin/End() block. Inside, we create some contexts, which<div>have PetscOptionsHead/Tail() blocks. This used to work fine, but I started getting</div><div>a bizarre error.</div><div><br>
</div><div>It turned out that the part of the function after OptionsTail() had not run. This was</div><div>because the PetscOptionsPublishCount was > 1. This happened because I had</div><div>moved the creation of a PetscObject inside the Begin/End block. This was the</div>
<div>first object created, so a ThreadComm communicator was created. This called</div><div>PetscThreadCommSetNThreads(), which called its own OptionsBegin/End block</div><div>which screwed up mine.</div><div><br></div><div>
This is crazy.</div><div><br></div><div>   Matt<br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>