Table of Contents

Struct FdmSchemeDesc

Namespace
NanoQL.Methods
Assembly
NanoQL.dll

The description of a finite-difference scheme: its type and its two parameters, θ and μ, which the method of lines and TR-BDF2 read as their own parameters.

public readonly struct FdmSchemeDesc : IEquatable<FdmSchemeDesc>
Implements
Inherited Members

Constructors

FdmSchemeDesc(FdmSchemeDescFdmSchemeType, double, double)

The description of a finite-difference scheme: its type and its two parameters, θ and μ, which the method of lines and TR-BDF2 read as their own parameters.

public FdmSchemeDesc(FdmSchemeDescFdmSchemeType Type, double Theta, double Mu)

Parameters

Type FdmSchemeDescFdmSchemeType

The scheme's type.

Theta double

θ: the implicit weight; the method of lines' tolerance; TR-BDF2's α.

Mu double

μ: the second predictor's weight; the method of lines' relative first step; TR-BDF2's tolerance.

Properties

Mu

μ: the second predictor's weight; the method of lines' relative first step; TR-BDF2's tolerance.

public double Mu { get; init; }

Property Value

double

Theta

θ: the implicit weight; the method of lines' tolerance; TR-BDF2's α.

public double Theta { get; init; }

Property Value

double

Type

The scheme's type.

public FdmSchemeDescFdmSchemeType Type { get; init; }

Property Value

FdmSchemeDescFdmSchemeType

Methods

CraigSneyd()

The Craig-Sneyd scheme, θ = μ = ½.

public static FdmSchemeDesc CraigSneyd()

Returns

FdmSchemeDesc

The description.

CrankNicolson()

The Crank-Nicolson scheme, θ = ½.

public static FdmSchemeDesc CrankNicolson()

Returns

FdmSchemeDesc

The description.

Deconstruct(out FdmSchemeDescFdmSchemeType, out double, out double)

public void Deconstruct(out FdmSchemeDescFdmSchemeType Type, out double Theta, out double Mu)

Parameters

Type FdmSchemeDescFdmSchemeType
Theta double
Mu double

Douglas()

The Douglas scheme, θ = ½: Crank-Nicolson in one dimension.

public static FdmSchemeDesc Douglas()

Returns

FdmSchemeDesc

The description.

Equals(FdmSchemeDesc)

public bool Equals(FdmSchemeDesc other)

Parameters

other FdmSchemeDesc

Returns

bool

Equals(object)

public override bool Equals(object obj)

Parameters

obj object

Returns

bool

ExplicitEuler()

The explicit Euler scheme.

public static FdmSchemeDesc ExplicitEuler()

Returns

FdmSchemeDesc

The description.

GetHashCode()

public override int GetHashCode()

Returns

int

Hundsdorfer()

The Hundsdorfer-Verwer scheme, θ = ½ + √3/6, μ = ½.

public static FdmSchemeDesc Hundsdorfer()

Returns

FdmSchemeDesc

The description.

ImplicitEuler()

The implicit Euler scheme.

public static FdmSchemeDesc ImplicitEuler()

Returns

FdmSchemeDesc

The description.

MethodOfLines(double, double)

The method of lines.

public static FdmSchemeDesc MethodOfLines(double eps = 0.001, double relInitStepSize = 0.01)

Parameters

eps double

The solver's tolerance.

relInitStepSize double

The solver's first step, relative to the time step.

Returns

FdmSchemeDesc

The description.

ModifiedCraigSneyd()

The modified Craig-Sneyd scheme, θ = μ = ⅓.

public static FdmSchemeDesc ModifiedCraigSneyd()

Returns

FdmSchemeDesc

The description.

ModifiedHundsdorfer()

The modified Hundsdorfer-Verwer scheme, θ = 1 − √2/2, μ = ½.

public static FdmSchemeDesc ModifiedHundsdorfer()

Returns

FdmSchemeDesc

The description.

ToString()

public override string ToString()

Returns

string

TrBDF2()

The TR-BDF2 scheme, α = 2 − √2, its BDF2 stage's tolerance 1e-8.

public static FdmSchemeDesc TrBDF2()

Returns

FdmSchemeDesc

The description.

Operators

operator ==(FdmSchemeDesc, FdmSchemeDesc)

public static bool operator ==(FdmSchemeDesc left, FdmSchemeDesc right)

Parameters

left FdmSchemeDesc
right FdmSchemeDesc

Returns

bool

operator !=(FdmSchemeDesc, FdmSchemeDesc)

public static bool operator !=(FdmSchemeDesc left, FdmSchemeDesc right)

Parameters

left FdmSchemeDesc
right FdmSchemeDesc

Returns

bool