Major Change: Caustic is now initialized before run. After initialization, run with C.run_caustic(args) function