QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
BoundaryCondition< Operator > Class Template Referenceabstract

Abstract boundary condition class for finite difference problems. More...

#include <boundarycondition.hpp>

+ Inheritance diagram for BoundaryCondition< Operator >:
+ Collaboration diagram for BoundaryCondition< Operator >:

Public Types

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

Public Member Functions

virtual ~BoundaryCondition ()=default
 
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
 

Detailed Description

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

Abstract boundary condition class for finite difference problems.

Definition at line 35 of file boundarycondition.hpp.

Member Typedef Documentation

◆ operator_type

typedef Operator operator_type

Definition at line 38 of file boundarycondition.hpp.

◆ array_type

typedef Operator::array_type array_type

Definition at line 39 of file boundarycondition.hpp.

Member Enumeration Documentation

◆ Side

enum Side
Enumerator
None 
Upper 
Lower 

Definition at line 41 of file boundarycondition.hpp.

Constructor & Destructor Documentation

◆ ~BoundaryCondition()

virtual ~BoundaryCondition ( )
virtualdefault

Member Function Documentation

◆ applyBeforeApplying()

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 FdmDirichletBoundary, FdmDiscountDirichletBoundary, FdmTimeDepDirichletBoundary, NeumannBC, and DirichletBC.

◆ applyAfterApplying()

virtual void applyAfterApplying ( array_type ) const
pure virtual

This method modifies an array \( u \) so that it satisfies the given condition.

◆ applyBeforeSolving()

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.

◆ applyAfterSolving()

virtual void applyAfterSolving ( array_type ) const
pure virtual

This method modifies an array \( u \) so that it satisfies the given condition.

◆ setTime()

virtual void setTime ( Time  t)
pure virtual

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

Implemented in NeumannBC, DirichletBC, FdmDirichletBoundary, FdmDiscountDirichletBoundary, and FdmTimeDepDirichletBoundary.