Write new simulations#

We’ve seen that it’s possible to write new objective functions and plug them into the new inversion framework by inheriting from the base.Objective abstract class and implementing its abstract methods.

We can do something similar if we want to write our own simulations. In that case we need to create a class that inherits from base.Simulation and implements its base.Simulation.n_data and base.Simulation.n_params abstract properties, and its base.Simulation.__call__ and base.Simulation.jacobian asbtract methods.