from diagnostics.diagnostic_classes import DiagnosticsByTimes, DumpBySteps
from diagnostics.phase_volume import dump_phase_volume
from diagnostics.steves_uem_diagnostics import steves_plots, electric_potential_plots
from discrete_fourspace.mesh import get_supremum_index
from injectors.injector_classes import ElectronInjector
from injectors.steves_uem_injection import steves_injectelectrons
from injectors.io import photoemission_loader
from photoemission_support import photoemission_parameters, handle_cathode_and_anode
from warp import *
#from histplot import *

# Invoke setup routine: needed to created a cgm file for plots
setup()

#Load the config file and parameters from config file.
config = MyConfigParser()
config.read(args.config_file)

#Load the parameters into the warp objects and register solver
top, w3d, f3d, adv_dt, adv_steps = photoemission_parameters(
    config, args, top, w3d, f3d)
solver = get_solver("wrz", top, w3d)
registersolver(solver)

#Install the conductor elements
conductor_elements = handle_cathode_and_anode(config, args.extraction_field,
                                              args.potential)
for conductor_element in conductor_elements:
    installconductor(
        conductor_element)  # install conductors into the warp framework
    print "Installed " + str(conductor_element)