24#ifndef quantlib_fdm_vpp_step_condition_hpp
25#define quantlib_fdm_vpp_step_condition_hpp
35 class FdmLinearOpIterator;
36 class FdmInnerValueCalculator;
56 ext::shared_ptr<FdmInnerValueCalculator> gasPrice,
57 ext::shared_ptr<FdmInnerValueCalculator> sparkSpreadPrice);
81 const ext::shared_ptr<FdmInnerValueCalculator>
gasPrice_;
1-D array used in linear algebra.
Real evolveAtPMax(Real sparkSpread) const
virtual Array changeState(Real gasPrice, const Array &state, Time t) const =0
virtual Real maxValue(const Array &states) const =0
Real evolve(const FdmLinearOpIterator &iter, Time t) const
const Size stateDirection_
const ext::shared_ptr< FdmMesher > mesher_
const Real fuelCostAddon_
const ext::shared_ptr< FdmInnerValueCalculator > gasPrice_
void applyTo(Array &a, Time t) const override
Real evolveAtPMin(Real sparkSpread) const
const Real startUpFixCost_
const ext::shared_ptr< FdmInnerValueCalculator > sparkSpreadPrice_
std::vector< ext::function< Real(Real)> > stateEvolveFcts_
condition to be applied at every time step
layer of abstraction to calculate the inner value
Maps function, bind and cref to either the boost or std implementation.
Real Time
continuous quantity with 1-year units
std::size_t Size
size of a container
Maps shared_ptr to either the boost or std implementation.
conditions to be applied at every time step
ext::shared_ptr< FdmMesher > mesher