Justin Chang via petsc-users <[email protected]> writes: > Hi all, > > I am attempting to write my own scour preconditioner for a FEniCS/petsc4py. > I managed to attach a DMShell to the KSP so that I can employ command-line > options for field splitting. Suppose I want to solve the Navier-Stokes > equation and have the following command-line options: > > -ksp_type fgmres > -pc_type fieldsplit > -pc_fieldsplit_type schur > -pc_fieldsplit_schur_fact_type full > -fieldsplit_0_ksp_type gmres > -fieldsplit_0_pc_type hypre > -fieldsplit_1_ksp_type preonly > -fieldsplit_1_pc_type python > -fieldsplit_1_pc_python_type pfibs.MyPCD > > Where MyPCD is part of my pfibs module and looks something like this: > > class MyPCD(object): > def setUp(self, pc): > # Do something # > .... > def apply(self, pc, x, y): > # Do something # > .... > > The problem is that in my actual python code (mycode.py) I have a dict()
Where does this dict come from? When is it available? > object that I would like to pass into the setUp() call inside MyPCD to read > in, but it is not clear how I can do this if I set the pc python type via > command line options. If I hard-coded this, I would just call > pc.setPythonContext(...) but I was wondering if there's a way to do this, > e.g., attaching an appctx/dict to the pc itself. Does anyone have ideas or > suggestions on how to go about doing this? > > Thanks, > Justin
