Inspecting values of Jacobian matrix
Dear Firedrakers, I would like to inspect the values of my Jacobian matrix derived from my form F. I did a J=derivative(F,u) print assemble(J).M But this did not result in the actual values (see below for output). Can I somehow obtain the actual values? Thank you! Henrik Output of print assemble(J).M OP2 Mat: None_None_None_None_matrix, sparsity (OP2 Sparsity: dsets (MixedDataSet((DataSet(ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), (1,), 'None_nodes_dset'), DataSet(ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), (1,), 'None_nodes_dset'))), MixedDataSet((DataSet(ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), (1,), 'None_nodes_dset'), DataSet(ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), (1,), 'None_nodes_dset')))), rmaps (MixedMap((DecoratedMap(Map(ExtrudedSet(Set((0, 0, 0, 0), 'plexmesh_interior_facets'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 2, None, 'None_interior_facet_node'), frozenset(['ALL']), frozenset([]), None), DecoratedMap(Map(ExtrudedSet(Set((0, 0, 0, 0), 'plexmesh_interior_facets'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 2, None, 'None_interior_facet_node'), frozenset(['ALL']), frozenset([]), None))), MixedMap((DecoratedMap(Map(ExtrudedSet(Set((1, 1, 1, 1), 'plexmesh_cells'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 1, None, 'None_cell_node'), frozenset(['ALL', 'ON_INTERIOR_FACETS']), frozenset([]), None), DecoratedMap(Map(ExtrudedSet(Set((1, 1, 1, 1), 'plexmesh_cells'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 1, None, 'None_cell_node'), frozenset(['ALL', 'ON_INTERIOR_FACETS']), frozenset([]), None)))), cmaps (MixedMap((DecoratedMap(Map(ExtrudedSet(Set((0, 0, 0, 0), 'plexmesh_interior_facets'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 2, None, 'None_interior_facet_node'), frozenset(['ALL']), frozenset([]), None), DecoratedMap(Map(ExtrudedSet(Set((0, 0, 0, 0), 'plexmesh_interior_facets'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 2, None, 'None_interior_facet_node'), frozenset(['ALL']), frozenset([]), None))), MixedMap((DecoratedMap(Map(ExtrudedSet(Set((1, 1, 1, 1), 'plexmesh_cells'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 1, None, 'None_cell_node'), frozenset(['ALL', 'ON_INTERIOR_FACETS']), frozenset([]), None), DecoratedMap(Map(ExtrudedSet(Set((1, 1, 1, 1), 'plexmesh_cells'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 1, None, 'None_cell_node'), frozenset(['ALL', 'ON_INTERIOR_FACETS']), frozenset([]), None)))), name None_None_None_None_sparsity), datatype float64 -- Dipl.-Math. Henrik Büsing Institute for Applied Geophysics and Geothermal Energy E.ON Energy Research Center RWTH Aachen University ------------------------------------------------------ Mathieustr. 10 | Tel +49 (0)241 80 49907 52074 Aachen, Germany | Fax +49 (0)241 80 49889 ------------------------------------------------------ http://www.eonerc.rwth-aachen.de/GGE hbuesing@eonerc.rwth-aachen.de ------------------------------------------------------
Hello, I suspect it’s print assemble(J).M.values what you’re looking for. Regards, Miklos
On 30 Sep 2015, at 10:06, Buesing, Henrik <HBuesing@eonerc.rwth-aachen.de> wrote:
Dear Firedrakers,
I would like to inspect the values of my Jacobian matrix derived from my form F. I did a
J=derivative(F,u) print assemble(J).M
But this did not result in the actual values (see below for output). Can I somehow obtain the actual values? Thank you!
Henrik
Output of print assemble(J).M
OP2 Mat: None_None_None_None_matrix, sparsity (OP2 Sparsity: dsets (MixedDataSet((DataSet(ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), (1,), 'None_nodes_dset'), DataSet(ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), (1,), 'None_nodes_dset'))), MixedDataSet((DataSet(ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), (1,), 'None_nodes_dset'), DataSet(ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), (1,), 'None_nodes_dset')))), rmaps (MixedMap((DecoratedMap(Map(ExtrudedSet(Set((0, 0, 0, 0), 'plexmesh_interior_facets'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 2, None, 'None_interior_facet_node'), frozenset(['ALL']), frozenset([]), None), DecoratedMap(Map(ExtrudedSet(Set((0, 0, 0, 0), 'plexmesh_interior_facets'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 2, None, 'None_interior_facet_node'), frozenset(['ALL']), frozenset([]), None))), MixedMap((DecoratedMap(Map(ExtrudedSet(Set((1, 1, 1, 1), 'plexmesh_cells'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 1, None, 'None_cell_node'), frozenset(['ALL', 'ON_INTERIOR_FACETS']), frozenset([]), None), DecoratedMap(Map(ExtrudedSet(Set((1, 1, 1, 1), 'plexmesh_cells'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 1, None, 'None_cell_node'), frozenset(['ALL', 'ON_INTERIOR_FACETS']), frozenset([]), None)))), cmaps (MixedMap((DecoratedMap(Map(ExtrudedSet(Set((0, 0, 0, 0), 'plexmesh_interior_facets'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 2, None, 'None_interior_facet_node'), frozenset(['ALL']), frozenset([]), None), DecoratedMap(Map(ExtrudedSet(Set((0, 0, 0, 0), 'plexmesh_interior_facets'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 2, None, 'None_interior_facet_node'), frozenset(['ALL']), frozenset([]), None))), MixedMap((DecoratedMap(Map(ExtrudedSet(Set((1, 1, 1, 1), 'plexmesh_cells'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 1, None, 'None_cell_node'), frozenset(['ALL', 'ON_INTERIOR_FACETS']), frozenset([]), None), DecoratedMap(Map(ExtrudedSet(Set((1, 1, 1, 1), 'plexmesh_cells'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 1, None, 'None_cell_node'), frozenset(['ALL', 'ON_INTERIOR_FACETS']), frozenset([]), None)))), name None_None_None_None_sparsity), datatype float64
-- Dipl.-Math. Henrik Büsing Institute for Applied Geophysics and Geothermal Energy E.ON Energy Research Center RWTH Aachen University ------------------------------------------------------ Mathieustr. 10 | Tel +49 (0)241 80 49907 52074 Aachen, Germany | Fax +49 (0)241 80 49889 ------------------------------------------------------ http://www.eonerc.rwth-aachen.de/GGE <http://www.eonerc.rwth-aachen.de/GGE> hbuesing@eonerc.rwth-aachen.de <mailto:hbuesing@eonerc.rwth-aachen.de> ------------------------------------------------------
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk <mailto:firedrake@imperial.ac.uk> https://mailman.ic.ac.uk/mailman/listinfo/firedrake <https://mailman.ic.ac.uk/mailman/listinfo/firedrake>
Von: firedrake-bounces@imperial.ac.uk [mailto:firedrake-bounces@imperial.ac.uk] Im Auftrag von Miklos Homolya Gesendet: 30 September 2015 10:14 An: firedrake@imperial.ac.uk Betreff: Re: [firedrake] Inspecting values of Jacobian matrix Hello, I suspect it's print assemble(J).M.values [Buesing, Henrik] Hmm... I get a PETSc error then (see below). Is there sth. similar for "Mat type nest"? Traceback (most recent call last): File "test.py", line 151, in <module> print assemble(J).M.values File "<string>", line 2, in values File "/home/hb111949/Code/PyOP2/pyop2/versioning.py", line 115, in modifies retval = method(self, *args, **kwargs) File "/home/hb111949/Code/PyOP2/pyop2/petsc_base.py", line 726, in values return self.handle[:, :] File "PETSc/Mat.pyx", line 218, in petsc4py.PETSc.Mat.__getitem__ (src/petsc4py.PETSc.c:111135) File "PETSc/petscmat.pxi", line 962, in petsc4py.PETSc.mat_getitem (src/petsc4py.PETSc.c:30533) File "PETSc/petscmat.pxi", line 882, in petsc4py.PETSc.matgetvalues (src/petsc4py.PETSc.c:29285) petsc4py.PETSc.Error: error code 56 [0] MatGetValues() line 1782 in /rwthfs/rz/cluster/home/hb111949/petsc_opt/src/mat/interface/matrix.c [0] No support for this operation for this object type [0] Mat type nest what you're looking for. Regards, Miklos On 30 Sep 2015, at 10:06, Buesing, Henrik <HBuesing@eonerc.rwth-aachen.de<mailto:HBuesing@eonerc.rwth-aachen.de>> wrote: Dear Firedrakers, I would like to inspect the values of my Jacobian matrix derived from my form F. I did a J=derivative(F,u) print assemble(J).M But this did not result in the actual values (see below for output). Can I somehow obtain the actual values? Thank you! Henrik Output of print assemble(J).M OP2 Mat: None_None_None_None_matrix, sparsity (OP2 Sparsity: dsets (MixedDataSet((DataSet(ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), (1,), 'None_nodes_dset'), DataSet(ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), (1,), 'None_nodes_dset'))), MixedDataSet((DataSet(ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), (1,), 'None_nodes_dset'), DataSet(ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), (1,), 'None_nodes_dset')))), rmaps (MixedMap((DecoratedMap(Map(ExtrudedSet(Set((0, 0, 0, 0), 'plexmesh_interior_facets'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 2, None, 'None_interior_facet_node'), frozenset(['ALL']), frozenset([]), None), DecoratedMap(Map(ExtrudedSet(Set((0, 0, 0, 0), 'plexmesh_interior_facets'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 2, None, 'None_interior_facet_node'), frozenset(['ALL']), frozenset([]), None))), MixedMap((DecoratedMap(Map(ExtrudedSet(Set((1, 1, 1, 1), 'plexmesh_cells'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 1, None, 'None_cell_node'), frozenset(['ALL', 'ON_INTERIOR_FACETS']), frozenset([]), None), DecoratedMap(Map(ExtrudedSet(Set((1, 1, 1, 1), 'plexmesh_cells'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 1, None, 'None_cell_node'), frozenset(['ALL', 'ON_INTERIOR_FACETS']), frozenset([]), None)))), cmaps (MixedMap((DecoratedMap(Map(ExtrudedSet(Set((0, 0, 0, 0), 'plexmesh_interior_facets'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 2, None, 'None_interior_facet_node'), frozenset(['ALL']), frozenset([]), None), DecoratedMap(Map(ExtrudedSet(Set((0, 0, 0, 0), 'plexmesh_interior_facets'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 2, None, 'None_interior_facet_node'), frozenset(['ALL']), frozenset([]), None))), MixedMap((DecoratedMap(Map(ExtrudedSet(Set((1, 1, 1, 1), 'plexmesh_cells'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 1, None, 'None_cell_node'), frozenset(['ALL', 'ON_INTERIOR_FACETS']), frozenset([]), None), DecoratedMap(Map(ExtrudedSet(Set((1, 1, 1, 1), 'plexmesh_cells'), 5), ExtrudedSet(Set((4, 4, 4, 4), 'None_nodes'), 5), 1, None, 'None_cell_node'), frozenset(['ALL', 'ON_INTERIOR_FACETS']), frozenset([]), None)))), name None_None_None_None_sparsity), datatype float64 -- Dipl.-Math. Henrik Büsing Institute for Applied Geophysics and Geothermal Energy E.ON Energy Research Center RWTH Aachen University ------------------------------------------------------ Mathieustr. 10 | Tel +49 (0)241 80 49907 52074 Aachen, Germany | Fax +49 (0)241 80 49889 ------------------------------------------------------ http://www.eonerc.rwth-aachen.de/GGE hbuesing@eonerc.rwth-aachen.de<mailto:hbuesing@eonerc.rwth-aachen.de> ------------------------------------------------------ _______________________________________________ firedrake mailing list firedrake@imperial.ac.uk<mailto:firedrake@imperial.ac.uk> https://mailman.ic.ac.uk/mailman/listinfo/firedrake
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 30/09/15 09:19, Buesing, Henrik wrote:
Von: firedrake-bounces@imperial.ac.uk [mailto:firedrake-bounces@imperial.ac.uk] Im Auftrag von Miklos Homolya Gesendet: 30 September 2015 10:14 An: firedrake@imperial.ac.uk Betreff: Re: [firedrake] Inspecting values of Jacobian matrix
Hello,
I suspect it's
print assemble(J).M.values
[Buesing, Henrik] Hmm... I get a PETSc error then (see below). Is there sth. similar for "Mat type nest"?
You can look at the values of the individual blocks, corresponding to the subspaces in your mixed space, like so: M = assemble(J).M print M[i, j].values where i and j are the block row and column indices. Lawrence -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJWC53IAAoJECOc1kQ8PEYvrUQIAL2cbn+iDOcC1KItC07ZuI93 UuzrbHBDoGqXZLhhcdddJkk3XVqDr47xuu4UFOSBLyEROimi/X5lyLiE+h+d48yg /OtSp0r2+iwUUQcxKhqKSumWaLr62qc71NV61nTcwHW/iJAM4FhxUlmCfe+lpht6 01UkufcgKwt7qBomXMXgQjFkV7qXp0tIaS+YlDLaRelD4xV3/paWmjNhzNrZxtqx KUWC82bUhakv3M2sCdsHiBXtiHvOrPaC3LgFBQHhqnKk83Nxia/ols4JE1+LzBTH 3WUuLzU+Cw8ERB/vQkeMcBb0XYTKANWqmiCQZYcUW1W2KHLhBL+LIZP1yoMI+io= =8MAd -----END PGP SIGNATURE-----
-----Ursprüngliche Nachricht----- Von: firedrake-bounces@imperial.ac.uk [mailto:firedrake- bounces@imperial.ac.uk] Im Auftrag von Lawrence Mitchell Gesendet: 30 September 2015 10:31 An: firedrake@imperial.ac.uk Betreff: Re: [firedrake] Inspecting values of Jacobian matrix
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 30/09/15 09:19, Buesing, Henrik wrote:
Von: firedrake-bounces@imperial.ac.uk [mailto:firedrake-bounces@imperial.ac.uk] Im Auftrag von Miklos Homolya Gesendet: 30 September 2015 10:14 An: firedrake@imperial.ac.uk Betreff: Re: [firedrake] Inspecting values of Jacobian matrix
Hello,
I suspect it's
print assemble(J).M.values
[Buesing, Henrik] Hmm... I get a PETSc error then (see below). Is there sth. similar for "Mat type nest"?
You can look at the values of the individual blocks, corresponding to the subspaces in your mixed space, like so:
M = assemble(J).M
print M[i, j].values
where i and j are the block row and column indices. [Buesing, Henrik] Great! That worked. Unfortunately the values are wrong... I will post another question concerning this. Thank you!
Henrik
Lawrence
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1
iQEcBAEBAgAGBQJWC53IAAoJECOc1kQ8PEYvrUQIAL2cbn+iDOcC1KItC07ZuI93 UuzrbHBDoGqXZLhhcdddJkk3XVqDr47xuu4UFOSBLyEROimi/X5lyLiE+h+d48yg /OtSp0r2+iwUUQcxKhqKSumWaLr62qc71NV61nTcwHW/iJAM4FhxUlmCfe+lpht6 01UkufcgKwt7qBomXMXgQjFkV7qXp0tIaS+YlDLaRelD4xV3/paWmjNhzNrZxtqx KUWC82bUhakv3M2sCdsHiBXtiHvOrPaC3LgFBQHhqnKk83Nxia/ols4JE1+LzBTH 3WUuLzU+Cw8ERB/vQkeMcBb0XYTKANWqmiCQZYcUW1W2KHLhBL+LIZP1yoMI+io= =8MAd -----END PGP SIGNATURE-----
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
participants (3)
-
Buesing, Henrik
-
Lawrence Mitchell
-
Miklos Homolya