## 3 Complex Job Shop Simulation
### Structure  
As described in Section 2.4, MIMAC consists of six models denoted assets. Most popular and most used is MIMAC set one [47], which has therefore been chosen as the basis for our approach. MIMAC set one encompasses two products with their respective work routes, eighty-three machine groups processing lots with a size of forty-eight wafers, batches (with a minimum and a maximum number of lots) and single wafers (one wafer per process) as well as rework sequences and scrap. It is meant to have a total wafer start of 4000 wafers per week, with twice the share of product one compared to product two.  
Since not all machine groups were used in MIMAC's work routes, it was possible to compress CoJoSim to 69 machine groups (\(n_{MG}\)). Each machine group consists of an individual number of machines, up to 12 in total (\(n_{M}\)). CoJoSim is then parametrized by the described master data of work routes, machine groups and wafer starts resulting from job releases. Therefore, the model could easily be adapted by changing the respective master data. It is therefore very flexibly adaptable to various applications. According to Figure 4, CoJoSim's conceptual reference model is structured in a module \"Job Release\" (JRM) and a module \"Complex Job Shop\" (CJSM) each containing various submodules. When running the implemented simulation model (cf. Sections 4 and 5), transaction data is generated. All data and modules of CoJoSim could be accessed by an application programming interface (API). This API allows external software to read and write data to the simulation model.  
The JRM controls access to the manufacturing system and consists of the subclasses ConWIP control and Front Opening Unified Pod (FOUP). The ConWIP control ensures a consistent work in process in the complex job shop and releases jobs according to a given schedule with associated due dates. Details of ConWIP's mechanisms can be found in the literature [52]. FOUPs correspond to the transport units for wafers in a semiconductor manufacturing facility. Accordingly, this subclass is instantiated for each job and linked to the work route of the associated product type when released to the complex job shop.  
The CJSM comprises the subclass machine group, which is instantiated in frequency of the number of machine groups in the manufacturing system. The machine group, in turn, consists of the subclasses of the dispatcher, the input buffer, the output buffer and the machine. The dispatcher contains manufacturing control with the procedure for selecting the next lot to be processed as soon as a machine becomes available. The input buffer and output buffer represent the stock waiting for processing before the machining process or waiting for transportation after the machining process, respectively. The machine represents the actual machining process, modeled by the setup time and the processing time. The subclass of the machine is instantiated in frequency of the number of parallel machines within the respective machine group ranging from one to \(n_{M}\) and could be of one of the following three types:  
* PerUnit: Machines of this type process each unit, which are wafers in semiconductor manufacturing, separately.
* PerLot: Machines of this type process each lot in a single rush.
* PerBatch: Machines of this type process batches consisting of a number of lots between a minimum and a maximum number.