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); } 'SimpleJob'(SJ6){ 'Memory'(SJM6)->"30"; 'JobInstance'(SJI6); } 'SimpleJob'(SJ7){ 'Memory'(SJM7)->"30"; 'JobInstance'(SJI7); } 'SimpleJob'(SJ8){ 'Memory'(SJM8)->"30"; 'JobInstance'(SJI8); } 'SimpleJob'(SJ9){ 'Memory'(SJM9)->"30"; 'JobInstance'(SJI9); } 'SimpleJob'(SJ10){ 'Memory'(SJM10)->"30"; 'JobInstance'(SJI10); } 'SimpleJob'(SJ11){ 'Memory'(SJM11)->"30"; 'JobInstance'(SJI11); } 'SimpleJob'(SJ12){ 'Memory'(SJM12)->"30"; 'JobInstance'(SJI12); } 'SimpleJob'(SJ13){ 'Memory'(SJM13)->"30"; 'JobInstance'(SJI13); } 'SimpleJob'(SJ14){ 'Memory'(SJM14)->"30"; 'JobInstance'(SJI14); } 'SimpleJob'(SJ15){ 'Memory'(SJM15)->"30"; 'JobInstance'(SJI15); } 'SimpleJob'(SJ16){ 'Memory'(SJM16)->"30"; 'JobInstance'(SJI16); } //Partitions 'Partition'(Par1){ 'Memory'(PM1)->"210"; } 'Partition'(Par2){ 'Memory'(PM2)->"210"; } 'Partition'(Par3){ 'Memory'(PM3)->"210"; } 'Partition'(Par4){ 'Memory'(PM4)->"400"; } 'Partition'(Par5){ 'Memory'(PM5)->"400"; } '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); 'JobInstance'.'ins'(CJI113,SJ6.SJI6,SJ6); 'JobInstance'.'ins'(CJI117,SJ7.SJI7,SJ7); 'JobInstance'.'ins'(CJI118,SJ8.SJI8,SJ8); 'JobInstance'.'ins'(CJI119,SJ9.SJI9,SJ9); 'JobInstance'.'ins'(CJI1110,SJ10.SJI10,SJ10); 'JobInstance'.'ins'(CJI1111,SJ11.SJI11,SJ11); 'JobInstance'.'ins'(CJI1112,SJ12.SJI12,SJ12); 'JobInstance'.'ins'(CJI1113,SJ13.SJI13,SJ13); 'JobInstance'.'ins'(CJI1114,SJ14.SJI14,SJ14); 'JobInstance'.'ins'(CJI1115,SJ15.SJI15,SJ15); 'JobInstance'.'ins'(CJI1116,SJ16.SJI16,SJ16); //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); 'Application'.'memoryNeeded'(AMN86,SJ6,SJ6.SJM6); 'Application'.'memoryNeeded'(AMN87,SJ7,SJ7.SJM7); 'Application'.'memoryNeeded'(AMN88,SJ8,SJ8.SJM8); 'Application'.'memoryNeeded'(AMN89,SJ9,SJ9.SJM9); 'Application'.'memoryNeeded'(AMN810,SJ10,SJ10.SJM10); 'Application'.'memoryNeeded'(AMN811,SJ11,SJ11.SJM11); 'Application'.'memoryNeeded'(AMN812,SJ12,SJ12.SJM12); 'Application'.'memoryNeeded'(AMN813,SJ13,SJ13.SJM13); 'Application'.'memoryNeeded'(AMN814,SJ14,SJ14.SJM14); 'Application'.'memoryNeeded'(AMN815,SJ15,SJ15.SJM15); 'Application'.'memoryNeeded'(AMN816,SJ16,SJ16.SJM16); 'IDPartition'(PartitionID) ->"0"; 'IDCPIOM'(CPIOMID) -> "0"; }