Class PortfolioRiskAnalyzer

java.lang.Object
neqsim.process.safety.risk.portfolio.PortfolioRiskAnalyzer
All Implemented Interfaces:
Serializable

public class PortfolioRiskAnalyzer extends Object implements Serializable
Portfolio Risk Analyzer for multi-asset analysis.

Performs Monte Carlo simulation across multiple assets to analyze portfolio-level risk, including common cause failures, correlated events, and aggregated production impact. Essential for corporate risk management and insurance/contract negotiations.

Version:
1.0
Author:
NeqSim Development Team
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • name

      private String name
      Analyzer name.
    • assets

      Assets in portfolio.
    • commonCauseScenarios

      private List<PortfolioRiskAnalyzer.CommonCauseScenario> commonCauseScenarios
      Common cause scenarios.
    • numberOfSimulations

      private int numberOfSimulations
      Number of simulations.
    • simulationPeriodYears

      private double simulationPeriodYears
      Simulation period in years.
    • random

      private Random random
      Random number generator.
    • lastResult

      private PortfolioRiskResult lastResult
      Results of last simulation.
  • Constructor Details

    • PortfolioRiskAnalyzer

      public PortfolioRiskAnalyzer(String name)
      Creates a portfolio risk analyzer.
      Parameters:
      name - analyzer name
  • Method Details

    • addAsset

      public void addAsset(PortfolioRiskAnalyzer.Asset asset)
      Adds an asset to the portfolio.
      Parameters:
      asset - asset to add
    • addAsset

      public PortfolioRiskAnalyzer.Asset addAsset(String id, String name, double maxProduction)
      Creates and adds an asset.
      Parameters:
      id - asset ID
      name - asset name
      maxProduction - maximum production rate
      Returns:
      created asset
    • addCommonCauseScenario

      public void addCommonCauseScenario(PortfolioRiskAnalyzer.CommonCauseScenario scenario)
      Adds a common cause scenario.
      Parameters:
      scenario - common cause scenario
    • createRegionalWeatherScenario

      public PortfolioRiskAnalyzer.CommonCauseScenario createRegionalWeatherScenario(String region, double frequency, double duration)
      Creates a regional weather scenario.
      Parameters:
      region - affected region
      frequency - annual frequency
      duration - duration in days
      Returns:
      created scenario
    • setNumberOfSimulations

      public void setNumberOfSimulations(int n)
      Sets number of simulations.
      Parameters:
      n - number of simulations
    • setSimulationPeriodYears

      public void setSimulationPeriodYears(double years)
      Sets simulation period.
      Parameters:
      years - simulation period in years
    • run

      public PortfolioRiskResult run()
      Runs the portfolio risk simulation.
      Returns:
      simulation results
    • samplePoisson

      private int samplePoisson(double lambda)
    • getAsset

      private PortfolioRiskAnalyzer.Asset getAsset(String assetId)
    • mean

      private double mean(List<Double> values)
    • stdDev

      private double stdDev(List<Double> values)
    • percentile

      private double percentile(List<Double> values, int p)
    • max

      private double max(List<Double> values)
    • getName

      public String getName()
    • getAssets

      public List<PortfolioRiskAnalyzer.Asset> getAssets()
    • getCommonCauseScenarios

      public List<PortfolioRiskAnalyzer.CommonCauseScenario> getCommonCauseScenarios()
    • getLastResult

      public PortfolioRiskResult getLastResult()
    • toJson

      public String toJson()
      Converts to JSON string.
      Returns:
      JSON representation
    • toString

      public String toString()
      Overrides:
      toString in class Object