MixedScheme Class Template Reference

#include <ql/FiniteDifferences/mixedscheme.hpp>

Inheritance diagram for MixedScheme:

Inheritance graph
[legend]
List of all members.

Detailed Description

template<class Operator>
class QuantLib::MixedScheme< Operator >

Mixed (explicit/implicit) scheme for finite difference methods.

See sect. The finite differences framework for details on the method.

In this implementation, the passed operator must be derived from either TimeConstantOperator or TimeDependentOperator. Also, it must implement at least the following interface:

typedef ... arrayType; // copy constructor/assignment // (these will be provided by the compiler if none is defined) Operator(const Operator&); Operator& operator=(const Operator&); // inspectors Size size(); // modifiers void setTime(Time t); // operator interface arrayType applyTo(const arrayType&); arrayType solveFor(const arrayType&); static Operator identity(Size size); // operator algebra Operator operator*(double, const Operator&); Operator operator+(const Operator&, const Operator&); Operator operator+(const Operator&, const Operator&);

Warning:
The differential operator must be linear for this evolver to work.

Todo:
a) derive variable theta schemes b) introduce multi time-level schemes.


Protected Types

typedef Operator::arrayType arrayType
typedef Operator operatorType
typedef BoundaryCondition<
Operator > 
bcType

Protected Member Functions

 MixedScheme (const Operator &L, double theta, const std::vector< Handle< bcType > > &bcs)
void step (arrayType &a, Time t)
void setStep (Time dt)

Protected Attributes

Operator L_
Operator I_
Operator explicitPart_
Operator implicitPart_
Time dt_
double theta_
std::vector< Handle< bcType > > bcs_

Friends

class FiniteDifferenceModel< MixedScheme< Operator > >


QuantLib.org
QuantLib
Hosted by
SourceForge.net Logo
Documentation generated by
doxygen