An assignment holds current values of all the variables of a model. These classes decouple an assignment of variables to their values from the model. This is needed for any kind of parallel computations, or in general, to be able to hold multiple different assignments in memory.