for materials, the interface becomes much more consistent, if we add a add_pixel(const Ccoord_t & , const ParamMap &) and set_history_variables(const Ccoord_t &, const ParamMap &) method.
The ParamMap mentioned here takes the role held by the options dict in scipy's optimize function signature: it is a dynamic object that can hold parameters of various types interpreted by the material at runtime. Note that this is only meant to be used at init and should map transparently to python dict in the bindings