emlab.domain.technology.PowerGeneratingTechnology.java Source code

Java tutorial

Introduction

Here is the source code for emlab.domain.technology.PowerGeneratingTechnology.java

Source

/*******************************************************************************
 * Copyright 2012 the original author or authors.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/
package emlab.domain.technology;

import java.util.HashSet;
import java.util.Set;

import org.neo4j.graphdb.Direction;
import org.springframework.data.neo4j.annotation.NodeEntity;
import org.springframework.data.neo4j.annotation.RelatedTo;

import agentspring.simulation.SimulationParameter;

@NodeEntity
public class PowerGeneratingTechnology {

    private String name;

    @SimulationParameter(label = "Capacity (MW)", from = 0, to = 2000)
    private double capacity;

    @SimulationParameter(label = "Efficiency", from = 0, to = 1)
    private double efficiency;

    @SimulationParameter(label = "Efficiency modifier (exogenous)", from = -1, to = 1)
    private double efficiencyModifierExogenous;

    @SimulationParameter(label = "CO2 capture efficiency", from = 0, to = 1)
    private double co2CaptureEffciency;

    @SimulationParameter(label = "Total investment cost (EUR)", from = 0, to = 1000000000)
    private double baseInvestmentCost;
    private double investmentCostModifierExogenous;

    @SimulationParameter(label = "Down payment (30% of investment)", from = 0, to = 1000000000)
    private double downPayment;

    @SimulationParameter(label = "Depreciation time (years)", from = 0, to = 40)
    private int depreciationTime;

    @SimulationParameter(label = "Minimum running hours (hours/year)", from = 0, to = 8760)
    private double minimumRunningHours;

    @SimulationParameter(label = "Fixed operating cost (euro/MW)", from = 0, to = 100000)
    private double fixedOperatingCost;
    private double fixedOperatingCostModifierAfterLifetime;

    @SimulationParameter(label = "Expected lifetime", from = 0, to = 40)
    private int expectedLifetime;

    @SimulationParameter(label = "Expected leadtime", from = 0, to = 10)
    private int expectedLeadtime;

    private int expectedPermittime;
    private double minimumFuelQuality;

    @SimulationParameter(label = "Maximum installed capacity fraction in country", from = 0, to = 1)
    private double maximumInstalledCapacityFractionInCountry;

    @SimulationParameter(label = "Maximum installed capacity fraction per producer", from = 0, to = 1)
    private double maximumInstalledCapacityFractionPerAgent;

    private double baseSegmentDependentAvailability;

    private double peakSegmentDependentAvailability;

    private boolean applicableForLongTermContract;

    private boolean intermittent;

    public double getBaseSegmentDependentAvailability() {
        return baseSegmentDependentAvailability;
    }

    public void setBaseSegmentDependentAvailability(double baseSegmentDependentAvailability) {
        this.baseSegmentDependentAvailability = baseSegmentDependentAvailability;
    }

    public double getPeakSegmentDependentAvailability() {
        return peakSegmentDependentAvailability;
    }

    public void setPeakSegmentDependentAvailability(double peakSegmentDependentAvailability) {
        this.peakSegmentDependentAvailability = peakSegmentDependentAvailability;
    }

    public double getMaximumInstalledCapacityFractionInCountry() {
        return maximumInstalledCapacityFractionInCountry;
    }

    public void setMaximumInstalledCapacityFractionInCountry(double maximumInstalledCapacityFractionInCountry) {
        this.maximumInstalledCapacityFractionInCountry = maximumInstalledCapacityFractionInCountry;
    }

    public double getMaximumInstalledCapacityFractionPerAgent() {
        return maximumInstalledCapacityFractionPerAgent;
    }

    public void setMaximumInstalledCapacityFractionPerAgent(double maximumInstalledCapacityFractionPerAgent) {
        this.maximumInstalledCapacityFractionPerAgent = maximumInstalledCapacityFractionPerAgent;
    }

    public double getDownPayment() {
        return downPayment;
    }

    public void setDownPayment(double downPayment) {
        this.downPayment = downPayment;
    }

    public int getDepreciationTime() {
        return depreciationTime;
    }

    public void setDepreciationTime(int depreciationTime) {
        this.depreciationTime = depreciationTime;
    }

    public double getMinimumRunningHours() {
        return minimumRunningHours;
    }

    public void setMinimumRunningHours(double minimumRunningHours) {
        this.minimumRunningHours = minimumRunningHours;
    }

    @RelatedTo(type = "FUEL", elementClass = Substance.class, direction = Direction.OUTGOING)
    private Set<Substance> fuels;

    public String getName() {
        return name;
    }

    public void setName(String label) {
        this.name = label;
    }

    /*
     * assumption: the first is the main fuel
     */
    public Substance getMainFuel() {
        if (getFuels().size() > 0) {
            return getFuels().iterator().next();
        } else {
            return null;
        }
    }

    public Set<Substance> getCoCombustionFuels() {
        Set<Substance> coFuels = new HashSet<Substance>(getFuels());
        coFuels.remove(getMainFuel());
        return coFuels;
    }

    public double getCapacity() {
        return capacity;
    }

    public void setCapacity(double capacity) {
        this.capacity = capacity;
    }

    public double getEfficiency() {
        return efficiency;
    }

    public void setEfficiency(double efficiency) {
        this.efficiency = efficiency;
    }

    public double getEfficiencyModifierExogenous() {
        return efficiencyModifierExogenous;
    }

    public void setEfficiencyModifierExogenous(double efficiencyModifierExogenous) {
        this.efficiencyModifierExogenous = efficiencyModifierExogenous;
    }

    public double getCo2CaptureEffciency() {
        return co2CaptureEffciency;
    }

    public void setCo2CaptureEffciency(double co2CaptureEffciency) {
        this.co2CaptureEffciency = co2CaptureEffciency;
    }

    public double getInvestmentCostModifierExogenous() {
        return investmentCostModifierExogenous;
    }

    public void setInvestmentCostModifierExogenous(double investmentCostModifierExogenous) {
        this.investmentCostModifierExogenous = investmentCostModifierExogenous;
    }

    public double getFixedOperatingCost() {
        return fixedOperatingCost;
    }

    public void setFixedOperatingCost(double fixedOperatingCost) {
        this.fixedOperatingCost = fixedOperatingCost;
    }

    public double getFixedOperatingCostModifierAfterLifetime() {
        return fixedOperatingCostModifierAfterLifetime;
    }

    public void setFixedOperatingCostModifierAfterLifetime(double fixedOperatingCostModifierAfterLifetime) {
        this.fixedOperatingCostModifierAfterLifetime = fixedOperatingCostModifierAfterLifetime;
    }

    public int getExpectedLifetime() {
        return expectedLifetime;
    }

    public void setExpectedLifetime(int expectedLifetime) {
        this.expectedLifetime = expectedLifetime;
    }

    public int getExpectedLeadtime() {
        return expectedLeadtime;
    }

    public void setExpectedLeadtime(int expectedLeadtime) {
        this.expectedLeadtime = expectedLeadtime;
    }

    public int getExpectedPermittime() {
        return expectedPermittime;
    }

    public void setExpectedPermittime(int expectedPermittime) {
        this.expectedPermittime = expectedPermittime;
    }

    public double getMinimumFuelQuality() {
        return minimumFuelQuality;
    }

    public void setMinimumFuelQuality(double minimumFuelQuality) {
        this.minimumFuelQuality = minimumFuelQuality;
    }

    public Set<Substance> getFuels() {
        return fuels;
    }

    public void setFuels(Set<Substance> fuels) {
        this.fuels = fuels;
    }

    public String toString() {
        return this.getName();
    }

    public boolean isApplicableForLongTermContract() {
        return applicableForLongTermContract;
    }

    public void setApplicableForLongTermContract(boolean applicableForLongTermContract) {
        this.applicableForLongTermContract = applicableForLongTermContract;
    }

    public double getBaseInvestmentCost() {
        return baseInvestmentCost;
    }

    public void setBaseInvestmentCost(double baseInvestmentCost) {
        this.baseInvestmentCost = baseInvestmentCost;
    }

    public boolean isIntermittent() {
        return intermittent;
    }

    public void setIntermittent(boolean intermittent) {
        this.intermittent = intermittent;
    }

}