Class PortfolioOptimizer.Project
java.lang.Object
neqsim.process.fielddevelopment.economics.PortfolioOptimizer.Project
- All Implemented Interfaces:
Serializable
- Enclosing class:
PortfolioOptimizer
Single project in the portfolio.
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate booleanprivate Stringprivate doubleprivate doubleprivate static final longprivate intprivate PortfolioOptimizer.ProjectType -
Constructor Summary
ConstructorsConstructorDescriptionProject(String name, double capexMusd, double npvMusd, PortfolioOptimizer.ProjectType type, double probabilityOfSuccess) Creates a new project. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddDependency(String projectName) Add dependency.doublegetCapexForYear(int year) Get CAPEX for specific year.doubleGet total CAPEX.Get CAPEX profile.Get dependencies.doublegetEmv()Calculate expected monetary value.getName()Get project name.doubleCalculate NPV/CAPEX ratio.doubleGet NPV.doubleGet probability of success.doubleCalculate risk-weighted NPV ratio.intGet start year.getType()Get project type.booleanCheck if mandatory.voidsetCapexProfile(Map<Integer, Double> profile) Set CAPEX profile by year.voidsetMandatory(boolean mandatory) Set mandatory flag.voidsetStartYear(int year) Set start year.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
name
-
capexMusd
private double capexMusd -
npvMusd
private double npvMusd -
type
-
probabilityOfSuccess
private double probabilityOfSuccess -
startYear
private int startYear -
capexProfile
-
mandatory
private boolean mandatory -
dependencies
-
-
Constructor Details
-
Project
public Project(String name, double capexMusd, double npvMusd, PortfolioOptimizer.ProjectType type, double probabilityOfSuccess) Creates a new project.- Parameters:
name- project namecapexMusd- total CAPEX in MUSDnpvMusd- NPV in MUSDtype- project typeprobabilityOfSuccess- probability (0-1)
-
-
Method Details
-
getName
-
getCapexMusd
public double getCapexMusd()Get total CAPEX.- Returns:
- total CAPEX in MUSD
-
getNpvMusd
public double getNpvMusd()Get NPV.- Returns:
- NPV in MUSD
-
getType
-
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
-
getCapexProfile
-
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
-
addDependency
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
-