def __init__(self, facility): self.heel = batch_class(0, "heel") # heel initialization. self.batch = batch_class(0, "batch") # batch initialization. self.process_time_delay = np.loadtxt( facility.process_states_dir + '/process.operation.time.inp', usecols=[1])[1] # 8 hours = 0.3333 days # self.batch = batch_class(self.batch_size, "batch") self.failure_rate = np.loadtxt( facility.failure_equipment_dir + '/melter.failure.data.inp', usecols=[1]) # 0.0333 days-1 = 1/30 days self.maintenance_time_delay = np.loadtxt( facility.failure_equipment_dir + '/melter.failure.data.inp', usecols=[2]) # 0.1667 days = 4 hours self.cleaning_time_delay = np.loadtxt( facility.failure_equipment_dir + '/melter.failure.data.inp', usecols=[3]) # 0.0833 days = 2 hours self.time_of_last_failure = 0 # The melter hasn't failed yet. self.true_batch_loss = 0 self.failure_count = 0 self.failure_data_output = data_output_class( "melter_failure_data", facility.equipment_failure_odir) facility_component_class.__init__(self, "melter", "processor", facility.material_flow_odir) self.sum = 0.0
def __init__(self, expected_total_weight, expected_batch_weight, expected_residual_weight, description, object_type, output_dir): self.expected_weight = expected_weight_class(expected_total_weight, expected_batch_weight, expected_residual_weight) if output_dir != None: self.data_output = data_output_class(description, output_dir) self.description = description self.object_type = object_type
def __init__(self,facility): self.expected_loss = np.loadtxt(facility.process_states_dir+ \ '/melter.loss.fraction.inp',usecols=[1])[0] self.batch_loss_bounds = np.loadtxt(facility.process_states_dir+'/melter.loss.fraction.inp', usecols=[1])[1:3] self.process_time_delay = np.loadtxt(facility.process_states_dir+ \ '/process.operation.time.inp',usecols=[1])[1] self.heel = batch_class(0,"heel") self.failure_rate = np.loadtxt(facility.failure_equipment_dir+'/melter.failure.data.inp',usecols=[1]) self.maintenance_time_delay = np.loadtxt(facility.failure_equipment_dir+ \ '/melter.failure.data.inp',usecols=[2]) self.cleaning_time_delay = np.loadtxt(facility.failure_equipment_dir+ \ '/melter.failure.data.inp',usecols=[2]) self.time_of_last_failure = 0 self.true_batch_loss = 0 self.failure_count = 0 self.failure_data_output = data_output_class("melter_failure_data", facility.equipment_failure_odir) facility_component_class.__init__(self, 0, 0, 0, "melter", "processor", facility.material_flow_odir)
def __init__(self, description, object_type, output_dir): if output_dir != None: self.data_output = data_output_class(description, output_dir) self.description = description self.object_type = object_type
def __init__(self,root_dir,subsystem): """ Although large, all this part does is read in the number of input files required to start up the facility. A lot of these directories aren't used here, but are used in the initialization of the components modules. """ self.operation_time = 0 self.total_campaign = 1 self.expected_muf = 0 self.measured_muf = 0 self.false_alarm_count = 0 self.melter_did_fail = False self.did_conduct_inspection = False self.log_file = open(root_dir + '/log.txt','w') self.root_dir = root_dir self.subsystem = subsystem self.debugger = open(root_dir + '/debugger.txt','w') ####### # Begin Preprocessing ####### self.log_file.write('Fuel fabrication \n\nPREPROCESSING\n') ####### # obtain all the directories ####### home_dir=open(self.root_dir+'/simulation/meta.data/home.dir.inp').read() directory_path_file=open(self.root_dir+'/simulation/meta.data/fuel.fabrication_simulation.dir.inp').readlines() #get directory paths directory_paths=directory_path_file[0].split(',') #split path data and set directories self.input_dir=directory_paths[0] self.output_dir=directory_paths[1] self.edge_transition_dir=directory_paths[2] self.failure_distribution_dir=directory_paths[3] self.failure_equipment_dir=directory_paths[4] self.kmps_dir=directory_paths[5] self.process_states_dir=directory_paths[6] self.system_false_alarm_dir=directory_paths[7] self.data_dir=directory_paths[8] self.figures_dir=directory_paths[9] self.system_odir=directory_paths[10] self.material_flow_odir=directory_paths[11] self.inventory_odir=directory_paths[12] self.false_alarm_odir=directory_paths[13] self.kmps_odir=directory_paths[14] self.muf_odir=directory_paths[15] self.equipment_failure_odir=directory_paths[16] self.system_gdir=directory_paths[17] self.material_flow_gdir=directory_paths[18] self.inventory_gdir=directory_paths[19] self.false_alarm_gdir=directory_paths[20] self.kmps_gdir=directory_paths[21] self.muf_gdir=directory_paths[22] self.equipment_failure_gdir=directory_paths[23] ####### # read input data ####### self.total_operation_time=np.loadtxt(self.process_states_dir+'/facility.operation.inp') self.end_of_campaign_time_delay = np.loadtxt(self.system_false_alarm_dir+'/system.inspection.time.inp', usecols=[1]) self.end_of_campaign_alarm_threshold = np.loadtxt(self.system_false_alarm_dir+'/eoc.alarm.threshold.inp') self.facility_inspection_time = np.loadtxt(self.system_false_alarm_dir+'/facility.inspection.time.inp') ####### # open files ####### self.system_time_output=open(self.system_odir+'/facility.operation.time.out','w+') self.system_info_output=open(self.system_odir+'/system_info.out','w+') self.muf_data_output = data_output_class("muf", self.muf_odir) ####### # write data for TIME=Initial_Time ####### self.system_time_output.write('%.4f\n'%(self.operation_time)) self.system_info_output.write('%.4f\t%i\t%i\n'%(self.operation_time,self.total_campaign, self.false_alarm_count)) ###### # Initial parameters (used more than once) ###### self.initial_inventory = np.loadtxt(self.process_states_dir+'/unprocessed.storage.inventory.inp') ####### # Initialize facility components ####### self.storage_unit = storage_unit_class(self) self.edge = edge_transition_class(self,0) self.fuel_fabricator = fuel_fabricator_class(self) self.final_storage_unit = final_storage_unit_class(self) ####### # Log end of Preprocess ####### self.log_file.write('END PREPROCESSING \n\n\n')