The DOF_Numberer class is a base class. Its purpose is
to define the interface common among all subclasses. A DOF_Numberer
object is responsible for assigning the equation numbers to the
individual dofs in each of the DOF_Groups in the AnalysisModel. The
base DOF_Numberer uses a GraphNumberer object to first number the
DOF_Groups, based on the ordering of the DOF_Group objects, it
assigns the equation numbers to the individual
degrees-of-freedom. Subtypes may wish to implement the numbering in
a more efficient manner by using the FE_Element and DOF_Group objects
directly.