Struct FdmSchemeDesc
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
TypeFdmSchemeDescFdmSchemeTypeThe scheme's type.
Thetadoubleθ: the implicit weight; the method of lines' tolerance; TR-BDF2's α.
Mudoubleμ: 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
Theta
θ: the implicit weight; the method of lines' tolerance; TR-BDF2's α.
public double Theta { get; init; }
Property Value
Type
The scheme's type.
public FdmSchemeDescFdmSchemeType Type { get; init; }
Property Value
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
TypeFdmSchemeDescFdmSchemeTypeThetadoubleMudouble
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
otherFdmSchemeDesc
Returns
Equals(object)
public override bool Equals(object obj)
Parameters
objobject
Returns
ExplicitEuler()
The explicit Euler scheme.
public static FdmSchemeDesc ExplicitEuler()
Returns
- FdmSchemeDesc
The description.
GetHashCode()
public override int GetHashCode()
Returns
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
epsdoubleThe solver's tolerance.
relInitStepSizedoubleThe 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
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
leftFdmSchemeDescrightFdmSchemeDesc
Returns
operator !=(FdmSchemeDesc, FdmSchemeDesc)
public static bool operator !=(FdmSchemeDesc left, FdmSchemeDesc right)
Parameters
leftFdmSchemeDescrightFdmSchemeDesc