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)
Пример #4
0
    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')