On Sat, Nov 28, 2009 at 10:24:43AM -0800, Johan Hake wrote: > On Saturday 28 November 2009 00:53:51 Anders Logg wrote: > > On Fri, Nov 27, 2009 at 11:59:52PM -0800, Johan Hake wrote: > > > Hello! > > > > > > I have not pushed anything, but Expressions should be up to shape now, > > > and I am working on simplifying the logic in other places of > > > expression.py > > > > > > I do not like the implementation of the dim method. It is used to read a > > > user defined value dimension and then discarded. I suggest that we add a > > > value_shape attribute to the dolfin.Expression class. If not set by the > > > user it is by default (), i.e., a scalar Expression. > > > > > > class MyExpression(Expression): > > > value_shape = (2,) > > > def eval(self, values, x): > > > values[0] = 1 > > > values[1] = 1 > > > > > > The dim name is also only making sense for Vector Expressions, where I > > > think a value_shape attribute makes sense for all occasions. A > > > value_shape for scalar Expression will still be the default. > > > > I think a dim method makes more sense than adding a variable since it > > is consistent with eval: Then all data a subclassed Expression needs > > to give is defined by a member function. > > Ok, but then I think we should keep it and not just pop it from the > dictionary, so a user can use it after the class is created.
I just tried follow your lead. I didn't even consider popping it would remove it. > Is it very intuitive that dim stands for value dimension? Should we call it > value_dim or value_dimension? Maybe not, but dim is nice and short, and it's less formal than value_rank and value_dimension. So I'd say it should be named dim. > > If we need value_shape and value_dimension (which is good to have), > > can't we just store those values as _value_shape, _value_dimension > > after we have figured out the shape and provide member functions that > > return those values? > > We already have value_rank and value_dimension in the cpp interface. So it > might be overkill to have these for no other sake. ok. -- Anders > > Also note the clever/simplified interface for dim() allowing (1) not > > to overload it for scalars and (2) to return the just the vector > > dimension for vectors: n instead of (n,)). > > Yes, I notices. > > Johan >
signature.asc
Description: Digital signature
_______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

