# Scalar Field in Diff Form Algebra? Check fails!

25 views

### Michael Jung

Apr 14, 2019, 4:35:13 AM4/14/19
to sage-devel
Since 8.8beta1 there is a critical issue regarding scalar fields:

`sage: M = Manifold(2, 'M')sage: X.<x,y> = M.chart()sage: f = M.scalar_field(x, name='f')sage: f in M.diff_form_module(1)---------------------------------------------------------------------------AttributeError                            Traceback (most recent call last)<ipython-input-38-9654b754d2bc> in <module>()      2 X = M.chart(names=('x', 'y',)); (x, y,) = X._first_ngens(2)      3 f = M.scalar_field(x, name='f')----> 4 f in M.diff_form_module(Integer(1))/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/structure/parent.pyx in sage.structure.parent.Parent.__contains__ (build/cythonized/sage/structure/parent.c:9885)()   1090             return True   1091         try:-> 1092             x2 = self(x)   1093             EQ = (x2 == x)   1094             if EQ is True:/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/structure/parent.pyx in sage.structure.parent.Parent.__call__ (build/cythonized/sage/structure/parent.c:9219)()    898         if mor is not None:    899             if no_extra_args:--> 900                 return mor._call_(x)    901             else:    902                 return mor._call_with_args(x, args, kwds)/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/structure/coerce_maps.pyx in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ (build/cythonized/sage/structure/coerce_maps.c:4551)()    160                 print(type(C), C)    161                 print(type(C._element_constructor), C._element_constructor)--> 162             raise    163     164     cpdef Element _call_with_args(self, x, args=(), kwds={}):/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/structure/coerce_maps.pyx in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ (build/cythonized/sage/structure/coerce_maps.c:4443)()    155         cdef Parent C = self._codomain    156         try:--> 157             return C._element_constructor(x)    158         except Exception:    159             if print_warnings:/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/manifolds/differentiable/diff_form_module.pyc in _element_constructor_(self, comp, frame, name, latex_name)    818         resu = self.element_class(self._fmodule, self._degree, name=name,    819                                   latex_name=latex_name)--> 820         if comp != []:    821             resu.set_comp(frame)[:] = comp    822         return resu/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/manifolds/scalarfield.pyc in __ne__(self, other)   1285    1286         """-> 1287         return not (self == other)   1288    1289     ####### End of required methods for an algebra element (beside arithmetic) #######/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/manifolds/scalarfield.pyc in __eq__(self, other)   1244                 return False   1245             try:-> 1246                 other = self.parent()(other)  # conversion to a scalar field   1247             except TypeError:   1248                 return False/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/structure/parent.pyx in sage.structure.parent.Parent.__call__ (build/cythonized/sage/structure/parent.c:9219)()    898         if mor is not None:    899             if no_extra_args:--> 900                 return mor._call_(x)    901             else:    902                 return mor._call_with_args(x, args, kwds)/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/structure/coerce_maps.pyx in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ (build/cythonized/sage/structure/coerce_maps.c:4551)()    160                 print(type(C), C)    161                 print(type(C._element_constructor), C._element_constructor)--> 162             raise    163     164     cpdef Element _call_with_args(self, x, args=(), kwds={}):/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/structure/coerce_maps.pyx in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ (build/cythonized/sage/structure/coerce_maps.c:4443)()    155         cdef Parent C = self._codomain    156         try:--> 157             return C._element_constructor(x)    158         except Exception:    159             if print_warnings:/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/manifolds/scalarfield_algebra.pyc in _element_constructor_(self, coord_expression, chart, name, latex_name)    470                                       coord_expression=coord_expression,    471                                       name=name, latex_name=latex_name,--> 472                                       chart=chart)    473         return resu    474 /home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/manifolds/differentiable/scalarfield.pyc in __init__(self, parent, coord_expression, chart, name, latex_name)    630         """    631         ScalarField.__init__(self, parent, coord_expression=coord_expression,--> 632                              chart=chart, name=name, latex_name=latex_name)    633         self._tensor_type = (0,0)    634 /home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/manifolds/scalarfield.pyc in __init__(self, parent, coord_expression, chart, name, latex_name)   1101                         self._express[ch] = ch.function(coord_expression)   1102                 else:-> 1103                     self._express[chart] = chart.function(coord_expression)   1104         self._init_derived()   # initialization of derived quantities   1105 /home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/manifolds/chart.pyc in function(self, expression, calc_method, expansion_symbol, order)   1087         return parent.element_class(parent, expression, calc_method=calc_method,   1088                                     expansion_symbol=expansion_symbol,-> 1089                                     order=order)   1090    1091     def zero_function(self):/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/manifolds/chart_func.pyc in __init__(self, parent, expression, calc_method, expansion_symbol, order)    360                 calc_method = self._calc_method._current    361             self._express[calc_method] = self._calc_method._tranf[calc_method](--> 362                                                                     expression)    363         # Derived quantities:    364         self._der = None  # list of partial derivatives (to be set by diff()/home/michi/GitProjects/sage/local/lib/python2.7/site-packages/sage/manifolds/calculus_method.pyc in _Sympy_to_SR(expression)    106         # If SR cannot transform a sympy expression this is because it is a    107         # sympy abstract function--> 108         a = expression._sage_()    109         # As all sage objects have a ._sage_ operator, they have to be    110         # catchedAttributeError: 'list' object has no attribute '_sage_'Code hier eingeben...`

I'm not sure if tickets of beta issues are welcome.

Best Regards
Michael

### Michael Jung

Apr 14, 2019, 4:38:40 AM4/14/19
to sage-devel
I apologize. The issue was there before (tested on sage 8.6). I open a ticket. Agreed?

However, how are beta issues managed?

Best regards
Michael

### Eric Gourgoulhon

Apr 14, 2019, 5:09:09 AM4/14/19
to sage-devel

Le dimanche 14 avril 2019 10:38:40 UTC+2, Michael Jung a écrit :
I apologize. The issue was there before (tested on sage 8.6). I open a ticket. Agreed?

Thanks for the report.