<?xml version="1.0" encoding="UTF-8"?>
<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel"
    modelDirectory="/de.hftstuttgart.energycomponents.model/src-gen"
    creationIcons="false" editDirectory="/de.hftstuttgart.energycomponents.edit/src-gen"
    editorDirectory="/de.hftstuttgart.energycomponents.editor/src-gen" modelPluginID="de.hftstuttgart.energycomponents.model"
    modelName="EnergyComponents" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
    codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="15.0"
    copyrightFields="false" editPluginID="de.hftstuttgart.energycomponents.edit" usedGenPackages="../../de.hftstuttgart.cityunits.model/model/Quantities.genmodel#//quantities"
    operationReflection="true" importOrganizing="true">
  <foreignModel>EnergyComponents.ecore</foreignModel>
  <testsDirectory xsi:nil="true"/>
  <genPackages prefix="EnComp" basePackage="de.hftstuttgart" disposableProviderFactory="true"
      ecorePackage="EnergyComponents.ecore#/">
    <genEnums typeSafeEnumCompatible="false" ecoreEnum="EnergyComponents.ecore#//HeatSources">
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//HeatSources/air"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//HeatSources/ground"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//HeatSources/water"/>
    </genEnums>
    <genEnums typeSafeEnumCompatible="false" ecoreEnum="EnergyComponents.ecore#//CollectorTypes">
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//CollectorTypes/flatPlaneCollector"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//CollectorTypes/evacuatedTubeCollector"/>
    </genEnums>
    <genEnums typeSafeEnumCompatible="false" ecoreEnum="EnergyComponents.ecore#//ElectricalStorageTypes">
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//ElectricalStorageTypes/lithiumIon"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//ElectricalStorageTypes/leadAcid"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//ElectricalStorageTypes/niMH"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//ElectricalStorageTypes/lithiumPolymer"/>
    </genEnums>
    <genEnums typeSafeEnumCompatible="false" ecoreEnum="EnergyComponents.ecore#//BoilerTypes">
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//BoilerTypes/condensingBoiler"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//BoilerTypes/lowtemperatureBoiler"/>
    </genEnums>
    <genEnums typeSafeEnumCompatible="false" ecoreEnum="EnergyComponents.ecore#//ThermalStorageTypes">
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//ThermalStorageTypes/sensible"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//ThermalStorageTypes/latent"/>
    </genEnums>
    <genEnums typeSafeEnumCompatible="false" ecoreEnum="EnergyComponents.ecore#//cellTypesElectrolyzer">
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//cellTypesElectrolyzer/PEM"/>
    </genEnums>
    <genEnums typeSafeEnumCompatible="false" ecoreEnum="EnergyComponents.ecore#//FuelTypes">
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//FuelTypes/naturalGas"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//FuelTypes/oil"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//FuelTypes/diesel"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//FuelTypes/bioGas"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//FuelTypes/syntheticGas"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//FuelTypes/woodPellets"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//FuelTypes/woodChips"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//FuelTypes/sewageGas"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//FuelTypes/electricity"/>
    </genEnums>
    <genEnums typeSafeEnumCompatible="false" ecoreEnum="EnergyComponents.ecore#//TypeOfHeatSource">
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/naturalGas"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/biogas"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/oil"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/diesel"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/syntheticGas"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/woodPellets"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/woodChips"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/sewageGas"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/LNG"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/CNG"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/water"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/air"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/soil"/>
      <genEnumLiterals ecoreEnumLiteral="EnergyComponents.ecore#//TypeOfHeatSource/none"/>
    </genEnums>
    <genClasses ecoreClass="EnergyComponents.ecore#//EnergyComponent">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//EnergyComponent/description"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//EnergyComponent/modelName"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//EnergyComponent/revisionYear"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//EnergyComponent/technicalLifetime"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponent/manufacturer"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//EnergyComponentsCatalog">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//EnergyComponentsCatalog/author"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/bioFuels"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/media"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/combinedHeatPowerUtilities"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/boilers"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/photovoltaicModules"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/solarThermalCollectors"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/windTurbines"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/geothermalHeatExchangers"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/heatPumps"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/inverters"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/heatExchangers"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/electrolyzers"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/hydrogenCompressors"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/fuelCells"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/thermalStorages"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/powerStorages"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/hydrogenStorages"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/fossilFuels"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/manufacturers"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/materials"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/energycomponentscostcatalog"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCatalog/energycarriers"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//ThermalStorage">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ThermalStorage/volume"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ThermalStorage/thermalStorageType"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ThermalStorage/maxTemp"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ThermalStorage/tankThickness"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ThermalStorage/insulationThickness"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//ThermalStorage/usesMedium"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//ThermalStorage/insulationMaterial"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ThermalStorage/height"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//ThermalStorage/tankMaterial"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//ElectricalStorage">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ElectricalStorage/electricalStorageType"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ElectricalStorage/batteryCapacity"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ElectricalStorage/batteryVoltage"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ElectricalStorage/batteryLifeCycle"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ElectricalStorage/selfDischarge"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ElectricalStorage/inverterIncluded"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ElectricalStorage/batteryEffiency"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ElectricalStorage/energyContent"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//CombinedHeatPower">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//CombinedHeatPower/thermalEfficiency"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//CombinedHeatPower/electricalEfficiency"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//CombinedHeatPower/installedElectricalPower"/>
      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//CombinedHeatPower/electricalEfficiencyPartLoad"/>
      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//CombinedHeatPower/thermalEfficiencyPartLoad"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//HeatPump">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//HeatPump/heatSource"/>
      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//HeatPump/coefficientOfPerformance"/>
      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//HeatPump/powerInput"/>
      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//HeatPump/heatOutput"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//Boiler">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Boiler/nominalEfficiency"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Boiler/boilerType"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//SolarThermalCollector">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//SolarThermalCollector/collectorType"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//SolarThermalCollector/apertureArea"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//SolarThermalCollector/opticalEfficiency"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//SolarThermalCollector/linearHeatLossCoefficient"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//SolarThermalCollector/quadraticalHeatLossCoefficient"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//Electrolyzer">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Electrolyzer/cellType"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Electrolyzer/cellArea"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Electrolyzer/numberOfCells"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Electrolyzer/maxOperatingCurrentDensity"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Electrolyzer/minOperatingCurrentDensity"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Electrolyzer/overloadCapacity"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Electrolyzer/nominalCellVoltage"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//ThermalEnergyDevice">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ThermalEnergyDevice/installedThermalPower"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ThermalEnergyDevice/modulationRange"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ThermalEnergyDevice/fuel"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//HydrogenCompressor">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//HydrogenCompressor/efficiency"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//HydrogenCompressor/thermodynamicMode"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//HydrogenCompressor/maxPressure"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//HydrogenCompressor/maxDeliveryRate"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//HydrogenStorage">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//HydrogenStorage/numberOfCylinders"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//HydrogenStorage/cylinderVolume"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//HydrogenStorage/nominalPressure"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//FuelCell"/>
    <genClasses ecoreClass="EnergyComponents.ecore#//EnergyCarrier">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//EnergyCarrier/co2EmissionsFactor"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//EnergyCarrier/primaryEnergyFactor"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//EnergyCarrier/name"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//EnergyCarrier/cost"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//FossilFuel">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//FossilFuel/methaneContent"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//Hydrogen">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Hydrogen/chemicalPurity"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//Hydrogen/hydrogenForHydrogenStorage"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//Electricity">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Electricity/renewableShare"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//BioFuel">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//BioFuel/waterContent"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//BioFuel/ashContent"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//Fuel">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Fuel/netCalorificValue"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Fuel/grossCalorificValue"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Fuel/density"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Fuel/fuelType"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//WindTurbine"/>
    <genClasses ecoreClass="EnergyComponents.ecore#//PhotovoltaicModule">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//PhotovoltaicModule/cellType"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//PhotovoltaicModule/nominalPower"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//PhotovoltaicModule/mppVoltage"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//PhotovoltaicModule/mppCurrent"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//PhotovoltaicModule/nominalEfficiency"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//PhotovoltaicModule/moduleArea"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//Inverter"/>
    <genClasses ecoreClass="EnergyComponents.ecore#//HeatExchanger">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//HeatExchanger/heatRecoveryEfficiency"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//HeatExchanger/nominalElectricityConsumption"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//GeothermalHeatExchanger">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//GeothermalHeatExchanger/pipeDiameter"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//Medium">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Medium/density"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Medium/heatCapacity"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Medium/evaporationTemperature"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Medium/meltingTemperature"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Medium/name"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//LinearFunction">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//LinearFunction/key"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//LinearFunction/parameterM"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//LinearFunction/parameterC"/>
      <genOperations ecoreOperation="EnergyComponents.ecore#//LinearFunction/linearfunction"
          body="return getParameterM() * x + getParameterC();">
        <genParameters ecoreParameter="EnergyComponents.ecore#//LinearFunction/linearfunction/x"/>
      </genOperations>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//DataPoint">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//DataPoint/x"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//DataPoint/y"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//TableFunction">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//TableFunction/key"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//TableFunction/datapoints"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//ExponentialFunction">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ExponentialFunction/key"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ExponentialFunction/parameterA"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//ExponentialFunction/parameterB"/>
      <genOperations documentation="y = ParameterA * ParameterB ^ x" ecoreOperation="EnergyComponents.ecore#//ExponentialFunction/exponentialfunction"
          body="return getParameterA() * Math.pow(getParameterB(), x);">
        <genParameters ecoreParameter="EnergyComponents.ecore#//ExponentialFunction/exponentialfunction/x"/>
      </genOperations>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//Characteristic"/>
    <genClasses image="false" ecoreClass="EnergyComponents.ecore#//TableCharacteristic">
      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//TableCharacteristic/functions"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//LinearCharacteristic">
      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//LinearCharacteristic/functions"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//ExponentionalCharacteristic">
      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//ExponentionalCharacteristic/functions"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//Manufacturer">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Manufacturer/manufacturerName"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Manufacturer/country"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Manufacturer/outOfBusinessSince"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//PolynomialCharacteristic">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//PolynomialCharacteristic/functions"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//PolynomialFunction">
      <genFeatures documentation="y = ParameterA * x^2 + ParameterB * x + ParameterC"
          createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//PolynomialFunction/key"/>
      <genFeatures documentation="y = ParameterA * x^2 + ParameterB * x + ParameterC"
          createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//PolynomialFunction/parameterA"/>
      <genFeatures documentation="y = ParameterA * x^2 + ParameterB * x + ParameterC"
          createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//PolynomialFunction/parameterB"/>
      <genFeatures documentation="y = ParameterA * x^2 + ParameterB * x + ParameterC"
          createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//PolynomialFunction/parameterC"/>
      <genOperations ecoreOperation="EnergyComponents.ecore#//PolynomialFunction/polynomialfunction"
          body="return getParameterA() * Math.pow( x,2 ) + getParameterB() * x + getParameterC();">
        <genParameters ecoreParameter="EnergyComponents.ecore#//PolynomialFunction/polynomialfunction/x"/>
      </genOperations>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//Material">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Material/thermalConductivity"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Material/name"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//EnergyComponentsCostCatalog">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//EnergyComponentsCostCatalog/author"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//EnergyComponentsCostCatalog/revisionYear"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//EnergyComponentsCostCatalog/costCategories"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//EnergyComponentsCostCatalog/personnelCost"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//Cost">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Cost/componentName"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Cost/description"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Cost/heatSource"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Cost/datasource"/>
      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//Cost/investmentCost"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Cost/otherInvestmentCost"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Cost/personnelHours"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Cost/personnelCostShare"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Cost/administrationAndOtherCostShare"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//Cost/maintenanceCostShare"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//PowerCharacteristic">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EnergyComponents.ecore#//PowerCharacteristic/functions"/>
    </genClasses>
    <genClasses ecoreClass="EnergyComponents.ecore#//PowerFunction">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//PowerFunction/key"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//PowerFunction/parameterA"/>
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EnergyComponents.ecore#//PowerFunction/parameterB"/>
      <genOperations documentation="y = ParameterA * x^ParameterB" ecoreOperation="EnergyComponents.ecore#//PowerFunction/powerfunction"
          body="return getParameterA() * Math.pow( x,getParameterB() );">
        <genParameters ecoreParameter="EnergyComponents.ecore#//PowerFunction/powerfunction/x"/>
      </genOperations>
    </genClasses>
  </genPackages>
</genmodel:GenModel>