How to understand GridFunction CoefficientFunction?

Hi developers,

  1. CoefficientFunction is implemented as expression trees. The root of trees are spatial coordinates (x, y, z);
    In addition, the Ngsolve mesh is also based on spatial coordinates (x, y, z).
    Hence, the CoefficientFunction defines on the mesh without finite element spaces.
  2. GridFunction is necessarily defined on the finite element spaces by basis functions.
  3. GridFunctionCoefficientFunction is the type of gradient of GridFunction.
    Q:How to understand this GridFunctionCoefficientFunction class?
    what does it mean? Also see the following figure

If gradu is a CoefficientFunction, why is the type GridFunctionCoefficientFunction?

Many thanks!
Best regards,
Coulson

GridFunctionCoefficientFunction is a derived class from CoefficientFunction, and so is GridFunction, and many more.