Constant model jacobian buggy
The jacobian of the ConstantModel is defined as
self._jacobian = 0.
This already looks quite simplified and as one woould expect it easily causes trouble, e.g. as shown in this example:
import nifty5 as ift
space = ift.RGSpace(4)
a = ift.full(space, 1.)
hspace = space.get_default_codomain()
ht = ift.HarmonicTransformOperator(hspace, target = space)
b = ift.full(hspace, 1.)
multia = ift.MultiField.from_dict({'a':a})
var_a = ift.Variable(multia)['a']
const_b = ift.Constant(multia, b)
sumabvalue = var_a.value + ht(const_b).value
# Here it crashes due to domain mismatch, even though you can add the values just fine
sumab = var_a + ht(const_b)
There are at least 2 possible ways to fix this issue. One possibility is to make the ConstantModel use the position again, such that it can return zeros in the correct domain. Another possibility is to have an operator that maps anything to an empty MultiDomain. (which then can be added with other fields) I favor the last one, it is however incompatible with the way that martin wants to unify Field and MultiField. Any thoughts @kjako @mtr @parras ?