So you basically do error propagation on the squares? In that case you can keep the first implementation, but change it to 

LocalError
GEMEtaPartition::localError(float strip, float cluster_size = 1) const
{
  return this->specificTopology().localError(strip, cluster_size*cluster_size/12.);
}

And delete the second function.