On Mon, Jan 17, 2011 at 06:07:19PM +0000, Garth N. Wells wrote: > > > On 17/01/11 18:03, Anders Logg wrote: > > On Mon, Jan 17, 2011 at 04:30:23PM +0000, Garth N. Wells wrote: > >> > >> > >> On 17/01/11 16:28, Anders Logg wrote: > >>> The following doesn't seem to work in Python any longer: > >>> > >>> A = Matrix(10, 10) > >>> > >>> Is matrix initialization broken? > >>> > >> > >> Probably not broken - more like > >> > >> A = Matrix(10, 10) > >> > >> is not supported. Since a Matrix is in general sparse, it doesn't make > >> sense to initialise it as above (some backends even insist on the > >> sparsity being defined at construction). > >> > >> Garth > > > > It would be good to allow simple initialization of a Matrix without > > requiring to go through all the hassle of creating a SparsityPattern. > > > > I generally don't think we should disallow certain operations just > > because they are potentially slow. > > It's not just that they're slow. They cannot be supported by all backends.
Then we throw an error. > > Some operations (like Matrix index > > access) will only be performed for toy problems or while testing and > > then speed is not very important (since the problem is small anyway). > > > > If it's made available, it will be used. This type of operation is main > reason for things breaking in parallel. We have getitem and setitem > which are sufficiently unfriendly that hopefully users get the idea that > they're for testing only. Just because something can be misused, it shouldn't be disallowed. It would be easy (and more helpful) to add a message the first time getitem/setitem is used in a program: Warning: Index access to matrix/vector values is potentially very slow and it breaks in parallel. To disable this warning, set the parameter "warning_index_access" to false. -- Anders _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp