Table of Contents

Class BoundaryCondition<TOperator>

Namespace
NanoQL.Methods
Assembly
NanoQL.dll

A boundary condition of a finite-difference problem, applied around an operator's applies and solves.

public abstract class BoundaryCondition<TOperator>

Type Parameters

TOperator

The operator the condition modifies.

Inheritance
BoundaryCondition<TOperator>
Derived
Inherited Members

Remarks

An extension point, as in QuantLib: later units derive their boundary conditions from it. A condition modifies the values in place, through the caller's span. QuantLib's deprecated NeumannBC and DirichletBC, on the old framework's tridiagonal operator, aren't ported.

Constructors

BoundaryCondition()

protected BoundaryCondition()

Methods

ApplyAfterApplying(Span<double>)

Modifies values u, in place, so that they satisfy the condition.

public abstract void ApplyAfterApplying(Span<double> a)

Parameters

a Span<double>

The values.

ApplyAfterSolving(Span<double>)

Modifies values u, in place, so that they satisfy the condition.

public abstract void ApplyAfterSolving(Span<double> a)

Parameters

a Span<double>

The values.

ApplyBeforeApplying(TOperator)

Modifies an operator L before it is applied to values u, so that v = Lu satisfies the condition.

public abstract void ApplyBeforeApplying(TOperator op)

Parameters

op TOperator

The operator.

ApplyBeforeSolving(TOperator, Span<double>)

Modifies an operator L and the right-hand side before the system Lu' = u is solved, so that u' satisfies the condition.

public abstract void ApplyBeforeSolving(TOperator op, Span<double> rhs)

Parameters

op TOperator

The operator.

rhs Span<double>

The right-hand side, modified in place.

SetTime(double)

Sets the current time of a time-dependent condition.

public abstract void SetTime(double t)

Parameters

t double

The time.