Click or drag to resize

GearsBDFWithNordsieckStateCore Class

Contains core functions for Gear's method in combination with the Nordsieck state.
Inheritance Hierarchy
SystemObject
  Altaxo.Calc.OdeGearsBDFWithNordsieckStateCore

Namespace: Altaxo.Calc.Ode
Assembly: AltaxoCore (in AltaxoCore.dll) Version: 4.8.3179.0 (4.8.3179.0)
Syntax
C#
public class Core

The GearsBDFWithNordsieckStateCore type exposes the following members.

Constructors
 NameDescription
Public methodGearsBDFWithNordsieckStateCore(Double, Double, ActionDouble, Double, Double, MultiStepMethodBaseCalculateJacobian, OdeMethodOptions) Initializes a new instance of the GearsBDFWithNordsieckStateCore class. The initial step size is 1.
Public methodGearsBDFWithNordsieckStateCore(Double, Double, ActionDouble, Double, Double, MultiStepMethodBaseCalculateJacobian, OdeMethodOptions) Initializes a new instance of the GearsBDFWithNordsieckStateCore class (mostly for testing purposes, since the kth derivatives at the starting point must be known in advance). The initial step size is 1.
Top
Properties
 NameDescription
Public propertyEvaluateJacobian Gets or sets the function to evaluate the jacobian.
Public propertyMaxOrder Gets or sets the maximum allowed order.
Public propertyMinOrder Gets or sets the minimum allowed order.
Public propertyNumberOfJacobianEvaluations Gets the number of jacobian evaluations so far.
Public propertyNumberOfStepsTaken Gets the number of steps taken so far.
Public propertyX Gets the current x value.
Public propertyY_volatile Gets the current y values. The elements of the returned array must not be changed, and are intended for immediate use only.
Top
Methods
 NameDescription
Public methodAdjustStepSizeAndOrder Compares the errors at the current order q, at order (q-1) and at order (q+1), using the proposed step sizes at these orders. The order which maximizes the step size is then chosen, and the step size is adjusted accordingly.
Public methodCalculate_En_Q Calculates the relative error En for the current order q. See eq. 2.41 in [1].
Public methodCalculate_En_QMinus1 Calculates the relative error En(q-1) for the next lower order (q-1).
Public methodCalculate_En_QPlus1 Calculates the relative error En(q+1) for the next higher order (q+1).
Public methodCalculateOnePlusProducts_tn Calculates the product of the differences of previous x (the term in square brackets in eqs. 2.40, 2.41 and 2.44 in Byrne and Hindmarsh [1]).
Public methodChangeStepSize Changes the size to a new value.
Public methodComputeCoefficients_L Computes the coefficients l. l is used to update the Nordsieck vector if the error vector is known: z_n = z_n0 + e_n * l with e_n = y_n - y_n0.
Public methodCorrect Corrects the Nordsieck array using the corrected y values and the l array. See eq. 2.19 in [1].
Public methodDecreaseOrderBy1 Decreases the order by 1. This method scales the Nordsieck array by the polynomial coefficients of eq. 2.49 in Byrne and Hindmarsh [1].
Public methodEqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
Public methodEvaluateNextSolutionPoint Evaluates the next solution point.
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
Public methodGetHashCodeServes as the default hash function.
(Inherited from Object)
Public methodGetInitialStepSize Gets the initial step size. The absolute and relative tolerances must be set before the call to this function.
Public methodGetInterpolatedY_volatile Gets interpolated y values. The independent variable x must lie inbetween the x of the previous step and the current step.
Public methodGetProposedStepSizeFactorClamped Gets the proposed step size factor (clamped). This clamped version should be used for step size control. For comparison of the errors of order q-1, q, and q+1, use the unclamped version.
Public methodGetProposedStepSizeFactorUnclamped Gets the proposed step size factor (unclamped). This unclamped version should only be used for comparison of the errors of order q-1, q, and q+1. Use the clamped version for step size control.
Public methodGetRelativeError_InfinityNorm Gets the relative error (Infinity norm) from the absolute errors. The absolute errors are given by en - Qn * enm1.
Public methodGetRelativeError_L2Norm Gets the relative error (L2 norm) from the absolute errors. The absolute errors are given by en - Qn * enm1.
Public methodGetTypeGets the Type of the current instance.
(Inherited from Object)
Public methodIncreaseOrderBy1 Increases the order by 1. It is ensured that the Nordsieck state can accomodate the new derivative. The new derivative itself is set to zero. See the notes below eq. 2.49 in Byrne and Hindmarsh [1].
Public methodIterationUsingFunctionalIteration Does some iteration steps. This iteration method does not use the Jacobian for Newton-Raphson steps, instead a functional iteration is executed. This takes much longer to reach the same degree of accuracy. At the end, the corrected y-values are stored in _aux1.
Public methodIterationUsingJacobian Does some iteration steps. At the end, the corrected y-values are stored in _aux1.
Protected methodMemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Public methodOptimizeStepSizeForNextMandatoryPoint Optimizes the step size, in a way that the next mandatory solution point will be reached without too big or too small step sizes.
Public methodPredict Calculates a first guess of the new Nordsieck state from the old state, and advances the _x array to the new point.
Public methodRestoreNordsieckState Restores the Nordsieck state ( copies back from _nordsieckArray_Saved to _nordsieckArray, restores _nordsieckArray_h, and also restores the history of x values in _x.
Public methodSaveNordsieckState Saves the Nordsieck state (makes a copy from _nordsieckArray to _nordsieckArray_h_Saved), and saves the value of the step size in _nordsieckArray_h_Saved).
Public methodScaleStepSize Scales the step size by a factor.
Public methodToStringReturns a string that represents the current object.
(Inherited from Object)
Top
Fields
 NameDescription
Public field_absoluteTolerances The absolute tolerance. This is either an array of length 1 (in this case the absolute tolerances of all y values are equal), or an array of the same size than y.
Public field_en_current The current error array, i.e. the difference between the iterated y and the first estimation of y of the current step. See eq. 2.12 in Byrne/Hindmarsh 1975 [1].
Public field_en_previous The previous error array, i.e. the difference between the iterated y and the first estimation of y of the previous step. See eq. 2.12 in Byrne/Hindmarsh 1975 [1].
Public field_errorNorm The vector norm, by which from the vector of relative errors (dimension N) the scalar relative error is calculated.
Protected field_f The differential equation to integrate. First arg is the independent variable (x), second arg are the current y-values, and the 3rd arg adopts the derivatives of y as calculated by this function.
Public field_iterationMethod 
Public field_relativeTolerances The relativ tolerances. This is either an array of length 1 (in this case the relative tolerances of all y values are equal), or an array of the same size than y.
Public field_x Array of previous x. x[0] is the current x, x[1] is the previous x and so on.
Top
See Also