namespace 'ARINC'; import 'ARINC'.'metamodel'; entity(solution); entity (model) { //Cabinets 'Cabinet'(C1); 'Cabinet'(C2); 'Cabinet'(C3); 'Cabinet'.'neighbours'(CN1,C1,C2); 'Cabinet'.'neighbours'(CN1,C2,C3); //Jobs 'CriticalJob'(CJ1){ 'Memory'(CJM1)->"30"; 'JobInstance'(CJ1I1); 'JobInstance'(CJ1I2); } 'CriticalJob'(CJ2){ 'Memory'(CJM2)->"30"; 'JobInstance'(CJ2I1); 'JobInstance'(CJ2I2); 'JobInstance'(CJ2I3); } 'CriticalJob'(CJ3){ 'Memory'(CJM3)->"30"; 'JobInstance'(CJ3I1); 'JobInstance'(CJ3I2); } 'CriticalJob'(CJ4){ 'Memory'(CJM4)->"30"; 'JobInstance'(CJ4I1); 'JobInstance'(CJ4I2); 'JobInstance'(CJ4I3); } 'CriticalJob'(CJ5){ 'Memory'(CJM5)->"30"; 'JobInstance'(CJ5I1); 'JobInstance'(CJ5I2); 'JobInstance'(CJ5I3); } 'CriticalJob'(CJ6){ 'Memory'(CJM6)->"30"; 'JobInstance'(CJ6I1); 'JobInstance'(CJ6I2); 'JobInstance'(CJ6I3); } 'CriticalJob'(CJ7){ 'Memory'(CJM7)->"30"; 'JobInstance'(CJ7I1); 'JobInstance'(CJ7I2); 'JobInstance'(CJ7I3); } 'SimpleJob'(SJ1){ 'Memory'(SJM1)->"30"; 'JobInstance'(SJI1); } 'SimpleJob'(SJ2){ 'Memory'(SJM2)->"30"; 'JobInstance'(SJI2); } 'SimpleJob'(SJ3){ 'Memory'(SJM3)->"30"; 'JobInstance'(SJI3); } 'SimpleJob'(SJ4){ 'Memory'(SJM4)->"30"; 'JobInstance'(SJI4); } 'SimpleJob'(SJ5){ 'Memory'(SJM5)->"30"; 'JobInstance'(SJI5); } //Partitions 'Partition'(Par1){ 'Memory'(PM1)->"210"; } 'Partition'(Par2){ 'Memory'(PM2)->"210"; } 'Partition'(Par3){ 'Memory'(PM3)->"210"; } 'Partition'(Par4){ 'Memory'(PM4)->"120"; } 'Partition'(Par5){ 'Memory'(PM5)->"120"; } 'Partition'.'freeMemory'(FM1,Par1,Par1.PM1); 'Partition'.'freeMemory'(FM2,Par2,Par2.PM2); 'Partition'.'freeMemory'(FM3,Par3,Par3.PM3); 'Partition'.'freeMemory'(FM4,Par4,Par4.PM4); 'Partition'.'freeMemory'(FM5,Par5,Par5.PM5); //Instances 'JobInstance'.'ins'(CJI1,CJ1.CJ1I1,CJ1); 'JobInstance'.'ins'(CJI2,CJ1.CJ1I2,CJ1); 'JobInstance'.'ins'(CJI3,CJ2.CJ2I1,CJ2); 'JobInstance'.'ins'(CJI4,CJ2.CJ2I2,CJ2); 'JobInstance'.'ins'(CJI5,CJ2.CJ2I3,CJ2); 'JobInstance'.'ins'(CJI6,CJ3.CJ3I1,CJ3); 'JobInstance'.'ins'(CJI7,CJ3.CJ3I2,CJ3); 'JobInstance'.'ins'(CJI8,CJ4.CJ4I1,CJ4); 'JobInstance'.'ins'(CJI9,CJ4.CJ4I2,CJ4); 'JobInstance'.'ins'(CJI10,CJ4.CJ4I3,CJ4); 'JobInstance'.'ins'(CJI11,CJ5.CJ5I1,CJ5); 'JobInstance'.'ins'(CJI12,CJ5.CJ5I2,CJ5); 'JobInstance'.'ins'(CJI13,CJ5.CJ5I3,CJ5); 'JobInstance'.'ins'(CJI14,CJ6.CJ6I1,CJ6); 'JobInstance'.'ins'(CJI15,CJ6.CJ6I2,CJ6); 'JobInstance'.'ins'(CJI16,CJ6.CJ6I3,CJ6); 'JobInstance'.'ins'(CJI17,CJ7.CJ7I1,CJ7); 'JobInstance'.'ins'(CJI18,CJ7.CJ7I2,CJ7); 'JobInstance'.'ins'(CJI19,CJ7.CJ7I3,CJ7); 'JobInstance'.'ins'(CJI108,SJ1.SJI1,SJ1); 'JobInstance'.'ins'(CJI109,SJ2.SJI2,SJ2); 'JobInstance'.'ins'(CJI110,SJ3.SJI3,SJ3); 'JobInstance'.'ins'(CJI111,SJ4.SJI4,SJ4); 'JobInstance'.'ins'(CJI112,SJ5.SJI5,SJ5); //Memory 'Application'.'memoryNeeded'(AMN1,CJ1,CJ1.CJM1); 'Application'.'memoryNeeded'(AMN2,CJ2,CJ2.CJM2); 'Application'.'memoryNeeded'(AMN3,CJ3,CJ3.CJM3); 'Application'.'memoryNeeded'(AMN4,CJ4,CJ4.CJM4); 'Application'.'memoryNeeded'(AMN5,CJ5,CJ5.CJM5); 'Application'.'memoryNeeded'(AMN4,CJ6,CJ6.CJM6); 'Application'.'memoryNeeded'(AMN5,CJ7,CJ7.CJM7); 'Application'.'memoryNeeded'(AMN6,SJ1,SJ1.SJM1); 'Application'.'memoryNeeded'(AMN7,SJ2,SJ2.SJM2); 'Application'.'memoryNeeded'(AMN8,SJ3,SJ3.SJM3); 'Application'.'memoryNeeded'(AMN7,SJ4,SJ4.SJM4); 'Application'.'memoryNeeded'(AMN8,SJ5,SJ5.SJM5); 'IDPartition'(PartitionID) ->"0"; 'IDCPIOM'(CPIOMID) -> "0"; }