use introspection.n_comonents instead of dim+2+this->n_compositional_fields()