ConstantValue and Parameter
As discussed at SysGenX meeting, we should:
- Rename
ConstantValuetoAbstractParameter. This is the base class for parameters (previously constants) without a domain - Add
Parameterclass that inherits fromAbstractParameterto represent a parameter with an unknown value - Leave
Constantas it is: representing a constant over a domain
Is Firedrake (or FEniCSx for that matter) using ConstantValue?
As discussed earlier, Constant with an associated domain is motivated by differentiation (i.e. the derivative of a Constant-value maps to the real-element).
Yes, we are using ConstantValue. As soon as you start doing multiple domain calculations, having to associate a domain with a constant is a pain. We concede the differentiation point. For the moment, differentiation WRT to a Parameter won't be possible. In theory in the future it could be made so but that is a much bigger change.
I think AbstractParameter should have a dtype as input, as it could be: Float32,float64,complex64, complex128 etc, which should change the representation of it.