Hi Justin,
You’ve got quite a few things going on here; I’ll try to address as much as I can.
While there are no Ubuntu packages of Cantera 3.1 for Ubuntu 18.04, you should still be able to use the latest version if you install using Conda or Pip.
The first attempt at restoring, sim = ct.Sim1D.restore("ConvecSurface11.yaml","mix") is expected to fail. Here, you’re calling an instance method of the Sim1D class (restore), without first creating an instance of the class. The second approach, where you first instantiate a Solution object and use that to create a ImpingingJet object before calling restore is correct.
You’re right that the domain names need to match in order for the restoration to work correctly. While there isn’t a way to specify these names to the restore function, you can change the names on the ImpingingJet object before calling restore. For example:
sim = ct.ImpingingJet(gas=gas, width=width, surface=surf_phase) sim.inlet.name = 'inlet' sim.flame.name = 'flow' sim.surface.name = 'surf' sim.restore(fileName, "unity")where those three names correspond to the names used in the original C++ simulation.
In the last issue, you’re getting hit by the fact that the reaction rates on the surface are dependent not only on the state of the surf_phase but also the gas phase object gas. Because the gas object is also being used by the Sim1D object for property calculations, its state may change after calculating any of these properties. The correct way to handle this is by setting the state of the gas to match the final grid point by calling sim.set_gas_state(sim.flame.n_points - 1) before accessing any properties of the surface phase that depend on the gas state. This can perhaps be viewed as a relative of the problem described in Enhancement #201.
Regards,
Ray