# Changes between Version 51 and Version 53 of Ticket #28519

Ignore:
Timestamp:
10/04/19 08:38:22 (19 months ago)
Comment:

Okay. I'm going to create a new branch. Due to our discussion, treating the components of mixed forms as immutable/fixed -- in the sense of our previous argumentation -- is an appropriate way, in my opinion.

The issues about scalar fields are mainly moved to ticket #28554. I guess, a whole new discussion arises there.

Do you agree?

### Legend:

Unmodified
 v51 - readability of code improved in mixed_form.py and mixed_form_algebra.py - now, mixed form components are declared as copies - set_form_name() method is added - now, the display() method displays only names - display_expansion() method is added; display_expansion() shows the expansion in a particular frame and chart - now, mixed form components are seen as immutable in the sense of the discussion below; as a result, the component setup is modified - now, the display() method shows **only** the expansion in a particular frame and chart **Scalar Fields** - scalar field can be partially defined in one top chart domain, so the display method was misleading in this case. This is now fixed: the display() method shows ''all'' known expressions. For each such expression, the greatest domain, where this expression is known, is displayed (moved to #28554). - now, multiplication of named scalar fields f and g leads to f \cdot g in LaTeX code - division by zero in _div_() is now checked via is_trivial_zero() - ~~scalar field can be partially defined in one top chart domain, so the display method was misleading in this case. This is now fixed: the display() method shows ''all'' known expressions. For each such expression, the greatest domain, where this expression is known, is displayed~~ (moved to #28554). - ~~now, multiplication of named scalar fields f and g leads to f \cdot g in LaTeX code~~ (moved to #28554) - ~~division by zero in _div_() is now checked via is_trivial_zero()~~ (moved to #28554) ** Differential Forms / Tensor Fields** - more consistency between scalar fields and tensor fields: - a copy of scalar fields took the name from the original, a copy of tensor fields did not; now, a copy takes the name in any case - method set_restriction() added to scalar fields - coercion via restriction rearranged in scalar fields following tensor fields - a copy of scalar fields took the name from the original, a copy of tensor fields did not; now, a copy takes the name in any case (in moment of creation, the copy is the very same algebraic object) - ~~method set_restriction() added to scalar fields~~ (moved to #28554) - ~~coercion via restriction rearranged in scalar fields following tensor fields~~ (moved to #28554) - minor code rearrangements, i.e. for code reuse or consistency - copy() now inherits the attribute _is_zero from the original (both for tensor fields and scalar fields) to ensure better zero treatment - manipulation of the zero element raises an error