BoundaryCondition Class Template Reference
[Finite-differences framework]

#include <ql/methods/finitedifferences/boundarycondition.hpp>

List of all members.


Detailed Description

template<class Operator>
class QuantLib::BoundaryCondition< Operator >

Abstract boundary condition class for finite difference problems.


Public Types

enum  Side { None, Upper, Lower }
typedef Operator operator_type
typedef Operator::array_type array_type

Public Member Functions

virtual void applyBeforeApplying (operator_type &) const=0
virtual void applyAfterApplying (array_type &) const =0
virtual void applyBeforeSolving (operator_type &, array_type &rhs) const=0
virtual void applyAfterSolving (array_type &) const =0
virtual void setTime (Time t)=0


Member Enumeration Documentation

enum Side

Todo:
Generalize for n-dimensional conditions


Member Function Documentation

virtual void applyBeforeApplying ( operator_type &   )  const [pure virtual]

This method modifies an operator $ L $ before it is applied to an array $ u $ so that $ v = Lu $ will satisfy the given condition.

Implemented in NeumannBC, and DirichletBC.

virtual void applyAfterApplying ( array_type &   )  const [pure virtual]

This method modifies an array $ u $ so that it satisfies the given condition.

Implemented in NeumannBC, and DirichletBC.

virtual void applyBeforeSolving ( operator_type &  ,
array_type &  rhs 
) const [pure virtual]

This method modifies an operator $ L $ before the linear system $ Lu' = u $ is solved so that $ u' $ will satisfy the given condition.

Implemented in NeumannBC, and DirichletBC.

virtual void applyAfterSolving ( array_type &   )  const [pure virtual]

This method modifies an array $ u $ so that it satisfies the given condition.

Implemented in NeumannBC, and DirichletBC.

virtual void setTime ( Time  t  )  [pure virtual]

This method sets the current time for time-dependent boundary conditions.

Implemented in NeumannBC, and DirichletBC.