Performance (optimization) API examples¶
This section describes some usage examples of the Knowledge-Base Interface.
Function documentation¶
Performance Function documentation:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#--Call information of all Performance functions--
print(API.getPerformance.__doc__)
print(API.updatePerformance.__doc__)
print(API.setPerformance.__doc__)
print(API.getAnalysisModel.__doc__)
print(API.updateAnalysisModel.__doc__)
print(API.setAnalysisModel.__doc__)
getAnalysisModel
Interface objects documentation¶
Performance Interface objects documentation:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#--Call information of the Performance interface object and contained functions--
print(InterfaceObjects.PerformanceModel.__doc__)
print(InterfaceObjects.PerformanceModel.json2object.__doc__)
print(InterfaceObjects.PerformanceModel.object2json.__doc__)
Stopcondition Interface objects documentation:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#--Call information of the Stopcondition interface object and contained functions--
print(InterfaceObjects.StopCondition.__doc__)
Parameter Interface objects documentation:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#--Call information of the Parameter interface object and contained functions--
print(InterfaceObjects.Parameter.__doc__)
Objective Interface objects documentation:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#--Call information of the Objective interface object and contained functions--
print(InterfaceObjects.Objective.__doc__)
Constraint Interface objects documentation:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#--Call information of the Constraint interface object and contained functions--
print(InterfaceObjects.Constraint.__doc__)
DecisionVariable Interface objects documentation:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#--Call information of the DecisionVariable interface object and contained functions--
print(InterfaceObjects.DecisionVariable.__doc__)
Analysis Model Interface objects documentation:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#--Call information of the Performance interface object and contained functions--
print(InterfaceObjects.AnalysisModel.__doc__)
print(InterfaceObjects.AnalysisModel.json2object.__doc__)
print(InterfaceObjects.AnalysisModel.object2json.__doc__)
Fetch KB data¶
Fetching the Performance model:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#define the path to the KB instance model
path_KB = API.resolvePath('input/KB_examples/test_getPerformance.pacopackage')
#importing the KB instance model
API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB)
# fetching the Performance model
InterfaceObject_received = API.getPerformance('OPTIMIZATION-v1')
Fetching the Analysis model:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#define the path to the KB instance model
path_KB = API.resolvePath('input/KB_examples/test_getAnalysisModel.pacopackage')
#importing the KB instance model
API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB)
# fetching the Performance model
InterfaceObject_received = API.getAnalysisModel('AnalysisModel_v1')
Update KB data¶
Updating the Performance model:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#load the json file to perform update
jsonPath = API.resolvePath('input/JSON-docs/updatePerformanceModel.json')
interfaceObject = InterfaceObjects.PerformanceModel(jsonPath)
#define the path to the KB instance model
path_KB = API.resolvePath('input/KB_examples/test_updateASG.pacopackage')
#importing the KB instance model
API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB)
#perform update
error = API.updatePerformance(interfaceObject)
Updating the Analysis model:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#set the interface objects
Contacts = [Contact(Name="Contact1", Type="TEST",SearchDistance=5.0,ApplicationAreas=[['AA_1',None]])]
BoundaryConditions = [BoundaryCondition(Name="BC_001", Type="Unknown",Value=21.0,Direction=[0.0,1.0,1.0,1.0,0.0,1.0],DOF=[False,True,False,True,True,False],ApplicationAreas=[['AA_1',None]])]
interfaceObject = AnalysisModel(Name='AnalysisModel_v1',
Description="[UPDATE] This is a description of the analysis model",
Version="0.0.2", GUID="", AnalysisType="",
ModelFile="C:/location/pointing/to/NEWmodelfile", SubsetNumber=6.0,
ModelDescription=["stl", "0.0.2", "JEAN VAN"], Contacts=Contacts,BoundaryConditions=BoundaryConditions,DecisionVariables=[],ApplicationAreas=[],DEBUG=True)
#define the path to the KB instance model
path_KB = API.resolvePath('input/KB_examples/test_UpdateAnalysisModel.pacopackage')
#importing the KB instance model
API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB)
#perform update
error = API.updateAnalysisModel(interfaceObject)
Add KB data¶
Adding the Performance model:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#load the json file to perform update
jsonPath = API.resolvePath('input/JSON-docs/setPerformanceModel.json')
interfaceObject = InterfaceObjects.PerformanceModel(jsonPath)
#define the path to the KB instance model
path_KB = API.resolvePath('input/KB_examples/test_updateASG.pacopackage')
#importing the KB instance model
API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB)
#perform adding the performance model
error = API.setPerformance(interfaceObject)
Adding the Analysis model:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
#create an empty KB model
API.createEmptyKB(Name="New_KB_ANALYSIS", OutputPath="output/KB_Instance/")
# set a product (no product = no analysis possible)
producteObject = InterfaceObjects.Product(Name='OldGearBox', STEPFile='c:/NEW/PATH/TO/THE/STEPFILE')
#set the interface objects
Contacts = [Contact(Name="Contact1", Type="TEST",SearchDistance=5.0,ApplicationAreas=[['AA_1',None]])]
BoundaryConditions = [BoundaryCondition(Name="BC_001", Type="Unknown",Value=21.0,Direction=[0.0,1.0,1.0,1.0,0.0,1.0],DOF=[False,True,False,True,True,False],ApplicationAreas=[['AA_1',None]])]
interfaceObject = AnalysisModel(Name='AnalysisModel_v1',
Description="[UPDATE] This is a description of the analysis model",
Version="0.0.2", GUID="", AnalysisType="",
ModelFile="C:/location/pointing/to/NEWmodelfile", SubsetNumber=6.0,
ModelDescription=["stl", "0.0.2", "JEAN VAN"], Contacts=Contacts,BoundaryConditions=BoundaryConditions,DecisionVariables=[],ApplicationAreas=[],DEBUG=True)
#define the path to the KB instance model
path_KB = API.resolvePath('output/KB_Instance/New_KB_ANALYSIS.pacopackage')
#importing the KB instance model
API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB)
#set the product
error = API.setProduct(interfaceObject=producteObject)
#Reload + set the analysis
self.MM, self.model, self.model_instance = API.importKBInstanceModel(path_KB)
error = API.setAnalysisModel(analysisObject)
Instantiating from JSON file¶
instantiating the Performance model:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
# Specify the absolute path to the JSON file
jsonDescriptor = API.resolvePath('input/JSON-docs/PerformanceModel.json')
# instantiate the Performance model via the JSON file
pModel = InterfaceObjects.PerformanceModel(jsonDescriptor)
Generating JSON object¶
Generating the Performance JSON model:
from Interface_KB import KB_Interface,InterfaceObjects
API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True)
# Specify the absolute path to the JSON file
jsonDescriptor = API.resolvePath('input/JSON-docs/PerformanceModel.json')
# instantiate the Performance model via the JSON file
pModel = InterfaceObjects.PerformanceModel(jsonDescriptor)
#generating the JSON object
pModel_json = pModel.object2json()
#printing the JSON object
print(pModel_json)