Yup, this comes from trying to patch more and more flexibility on a system that wasn't originally designed for that particular flexibility. The matrix and vector are in a strange state at this point that is not defined by our original design.
One way we can mangle our minds around this is to say "the TYPE of the Vec/Mat has not been set yet", we have merely "changed the default type it will become". This isn't completely accurate but that's what happens when you pretend there is dark matter to explain why some observation doesn't match relativity theory and it sounds real cool. At this point I think we just have to live with this weirdness, unless you have a solution. Barry On Dec 2, 2008, at 9:12 AM, Lisandro Dalcin wrote: > Other (really nice!) change I've noticed is that now we can call > {Vec|Mat}Create() and next {Vec|Mat}SetType() and it works! > > However, see this. > > In [1]: from petsc4py import PETSc > > In [2]: x = PETSc.Vec().create() > > In [3]: x.setType('seq') > > In [4]: print x.getType() > > None > > In [5]: A = PETSc.Mat().create() > > In [6]: A.setType('seqaij') > > In [7]: print A.getType() > > None > > > Internally, the "type_name" field is never set, it still is NULL (then > petsc4y returns None). > The problem is that forcing the "type_name" to be set will be really > dangerous (rmember PetscValidType macro). > Any comments? > > > > -- > Lisandro Dalc?n > --------------- > Centro Internacional de M?todos Computacionales en Ingenier?a (CIMEC) > Instituto de Desarrollo Tecnol?gico para la Industria Qu?mica (INTEC) > Consejo Nacional de Investigaciones Cient?ficas y T?cnicas (CONICET) > PTLC - G?emes 3450, (3000) Santa Fe, Argentina > Tel/Fax: +54-(0)342-451.1594 >