What is the migration constructor and why do I need it?
The migration constructor (a constructor that takes CkMigrateMessage * as parameter) is invoked when an array element migrates to a new processor. If there is anything you want to do when you migrate, you could put it here. However, even if you don’t want to do anything, you must create it, as it is called from the code automatically generated by the Charm++ translator, and constructors aren’t inherited, so we can’t just put a migration constructor in the base class. The migration constructor should not be declared in the .ci file. Of course the array element will require also at least one regular constructor so that it can be created, and these must be declared in the .ci file.