Class PortfolioOptimizer.Project

java.lang.Object
neqsim.process.fielddevelopment.economics.PortfolioOptimizer.Project
All Implemented Interfaces:
Serializable
Enclosing class:
PortfolioOptimizer

public static class PortfolioOptimizer.Project extends Object implements Serializable
Single project in the portfolio.
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • name

      private String name
    • capexMusd

      private double capexMusd
    • npvMusd

      private double npvMusd
    • type

    • probabilityOfSuccess

      private double probabilityOfSuccess
    • startYear

      private int startYear
    • capexProfile

      private Map<Integer,Double> capexProfile
    • mandatory

      private boolean mandatory
    • dependencies

      private List<String> dependencies
  • Constructor Details

    • Project

      public Project(String name, double capexMusd, double npvMusd, PortfolioOptimizer.ProjectType type, double probabilityOfSuccess)
      Creates a new project.
      Parameters:
      name - project name
      capexMusd - total CAPEX in MUSD
      npvMusd - NPV in MUSD
      type - project type
      probabilityOfSuccess - probability (0-1)
  • Method Details

    • getName

      public String getName()
      Get project name.
      Returns:
      project name
    • getCapexMusd

      public double getCapexMusd()
      Get total CAPEX.
      Returns:
      total CAPEX in MUSD
    • getNpvMusd

      public double getNpvMusd()
      Get NPV.
      Returns:
      NPV in MUSD
    • getType

      Get project type.
      Returns:
      project type
    • getProbabilityOfSuccess

      public double getProbabilityOfSuccess()
      Get probability of success.
      Returns:
      probability of success (0-1)
    • getStartYear

      public int getStartYear()
      Get start year.
      Returns:
      start year
    • setStartYear

      public void setStartYear(int year)
      Set start year.
      Parameters:
      year - the start year to set
    • setCapexProfile

      public void setCapexProfile(Map<Integer,Double> profile)
      Set CAPEX profile by year.
      Parameters:
      profile - the CAPEX profile map with year as key and CAPEX value as value
    • getCapexProfile

      public Map<Integer,Double> getCapexProfile()
      Get CAPEX profile.
      Returns:
      the CAPEX profile map with year as key and CAPEX value as value
    • getCapexForYear

      public double getCapexForYear(int year)
      Get CAPEX for specific year.
      Parameters:
      year - the year to get CAPEX for
      Returns:
      the CAPEX value for the specified year, or 0.0 if not defined
    • isMandatory

      public boolean isMandatory()
      Check if mandatory.
      Returns:
      true if this project is mandatory, false otherwise
    • setMandatory

      public void setMandatory(boolean mandatory)
      Set mandatory flag.
      Parameters:
      mandatory - true if this project is mandatory
    • getDependencies

      public List<String> getDependencies()
      Get dependencies.
      Returns:
      the list of project names this project depends on
    • addDependency

      public void addDependency(String projectName)
      Add dependency.
      Parameters:
      projectName - the name of the project this project depends on
    • getNpvCapexRatio

      public double getNpvCapexRatio()
      Calculate NPV/CAPEX ratio.
      Returns:
      the NPV divided by CAPEX, or 0.0 if CAPEX is zero
    • getEmv

      public double getEmv()
      Calculate expected monetary value.
      Returns:
      the expected monetary value (NPV times probability of success)
    • getRiskWeightedRatio

      public double getRiskWeightedRatio()
      Calculate risk-weighted NPV ratio.
      Returns:
      the NPV/CAPEX ratio multiplied by probability of success