Class ParallelSolver<T>
An ISparseSolver<T> that only allows direct access to an element once. All subsequent calls will be through a local element.
Implements
Inherited Members
Namespace: SpiceSharp.Components.ParallelComponents
Assembly: SpiceSharp.dll
Syntax
public class ParallelSolver<T> : ISparsePivotingSolver<T>, ISparseSolver<T>, IPivotingSolver<ISparseMatrix<T>, ISparseVector<T>, T>, ISolver<T>, IParameterSetCollection, IParameterSet
Type Parameters
| Name | Description |
|---|---|
| T | The value type. |
Constructors
ParallelSolver(ISparsePivotingSolver<T>)
Initializes a new instance of the ParallelSolver<T> class.
Declaration
public ParallelSolver(ISparsePivotingSolver<T> parent)
Parameters
| Type | Name | Description |
|---|---|---|
| ISparsePivotingSolver<T> | parent | The parent. |
Properties
Degeneracy
Gets or sets the degeneracy of the matrix. For example, specifying 1 will let the solver know that one equation is expected to be linearly dependent on the others.
Declaration
public int Degeneracy { get; set; }
Property Value
| Type | Description |
|---|---|
| int | The degeneracy. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if the value is negative. |
| ArgumentException | Thrown when trying to write in a parallel solver. |
IsFactored
Gets a value indicating whether this solver has been factored. A solver needs to be factored becore it can solve for a solution.
Declaration
public bool IsFactored { get; }
Property Value
| Type | Description |
|---|---|
| bool |
|
NeedsReordering
Gets or sets a value indicating whether the solver needs to be reordered all the way from the start.
Declaration
public bool NeedsReordering { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
|
Remarks
If this flag is false, the solver will still reorder when using OrderAndFactor(), but it will try to stay away from reordering as long as possible. This flag will force the solver to immediately start reordering.
Exceptions
| Type | Condition |
|---|---|
| ArgumentException | Thrown when trying to write in a parallel solver. |
PivotSearchReduction
Gets or sets the pivot search reduction. This makes sure that pivots cannot be chosen from the last N rows. The default, 0, lets the pivot strategy to choose from the whole matrix.
Declaration
public int PivotSearchReduction { get; set; }
Property Value
| Type | Description |
|---|---|
| int | The pivot search reduction. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if the value is negative. |
| ArgumentException | Thrown when trying to write in a parallel solver. |
Size
Gets the size of the solver. This is the total number of equations.
Declaration
public int Size { get; }
Property Value
| Type | Description |
|---|---|
| int | The size. |
Methods
Apply()
Applies all bridge elements.
Declaration
public void Apply()
CreateParameterSetter<P>(string)
Creates an action that can set the parameter of the specified type and with the specified name.
Declaration
public Action<P> CreateParameterSetter<P>(string name)
Parameters
| Type | Name | Description |
|---|---|---|
| string | name | The name of the parameter. |
Returns
| Type | Description |
|---|---|
| Action<P> | An action that can set the parameter value, or |
Type Parameters
| Name | Description |
|---|---|
| P | The parameter value type. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |
CreatePropertyGetter<P>(string)
Creates a function that can get the value of a property of the specified type and with the specified name.
Declaration
public Func<P> CreatePropertyGetter<P>(string name)
Parameters
| Type | Name | Description |
|---|---|---|
| string | name | The name of the property. |
Returns
| Type | Description |
|---|---|
| Func<P> | A function that can get the property value, or |
Type Parameters
| Name | Description |
|---|---|
| P | The property value type. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |
FindElement(MatrixLocation)
Finds the element at the specified location in the matrix.
Declaration
public Element<T> FindElement(MatrixLocation location)
Parameters
| Type | Name | Description |
|---|---|---|
| MatrixLocation | location | The location. |
Returns
| Type | Description |
|---|---|
| Element<T> | The element if it exists; otherwise |
FindElement(int)
Finds the element at the specified position in the right-hand side vector.
Declaration
public Element<T> FindElement(int row)
Parameters
| Type | Name | Description |
|---|---|---|
| int | row | The row index. |
Returns
| Type | Description |
|---|---|
| Element<T> | The element if it exists; otherwise |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if |
GetElement(MatrixLocation)
Gets the element at the specified location in the matrix. A new element is created if it doesn't exist yet.
Declaration
public Element<T> GetElement(MatrixLocation location)
Parameters
| Type | Name | Description |
|---|---|---|
| MatrixLocation | location | The location. |
Returns
| Type | Description |
|---|---|
| Element<T> | The matrix element. |
GetElement(int)
Gets the element at the specified position in the right-hand side vector. A new element is created if it doesn't exist yet.
Declaration
public Element<T> GetElement(int row)
Parameters
| Type | Name | Description |
|---|---|---|
| int | row | The row. |
Returns
| Type | Description |
|---|---|
| Element<T> | The vector element. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if |
GetProperty<P>(string)
Gets the value of a property of the specified type and with the specified name.
Declaration
public P GetProperty<P>(string name)
Parameters
| Type | Name | Description |
|---|---|---|
| string | name | The name of the property. |
Returns
| Type | Description |
|---|---|
| P | The value of the property. |
Type Parameters
| Name | Description |
|---|---|
| P | The property value type. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |
| ParameterNotFoundException | Thrown if a parameter by the specified name could not be found. |
RemoveElement(MatrixLocation)
Removes a matrix element at the specified location.
Declaration
public bool RemoveElement(MatrixLocation location)
Parameters
| Type | Name | Description |
|---|---|---|
| MatrixLocation | location | The location. |
Returns
| Type | Description |
|---|---|
| bool |
|
RemoveElement(int)
Removes a right-hand side vector element.
Declaration
public bool RemoveElement(int index)
Parameters
| Type | Name | Description |
|---|---|---|
| int | index |
Returns
| Type | Description |
|---|---|
| bool |
|
Reset()
Clears all matrix and vector elements.
Declaration
public void Reset()
SetParameter<P>(string, P)
Sets a parameter in the parameter set of the specified type and with the specified name.
Declaration
public void SetParameter<P>(string name, P value)
Parameters
| Type | Name | Description |
|---|---|---|
| string | name | The name of the parameter. |
| P | value | The value that the parameter should be set to. |
Type Parameters
| Name | Description |
|---|---|
| P | The parameter value type. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |
| ParameterNotFoundException | Thrown if a parameter by the specified name could not be found. |
TryGetProperty<P>(string, out P)
Tries to get the value of a property of the specified type and with the specified name.
Declaration
public bool TryGetProperty<P>(string name, out P value)
Parameters
| Type | Name | Description |
|---|---|---|
| string | name | The name of the property. |
| P | value | The value of the property if the property was found. |
Returns
| Type | Description |
|---|---|
| bool |
|
Type Parameters
| Name | Description |
|---|---|
| P | The property value type. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |
TrySetParameter<P>(string, P)
Tries to set a parameter in the parameter set of the specified type and with the specified name.
Declaration
public bool TrySetParameter<P>(string name, P value)
Parameters
| Type | Name | Description |
|---|---|---|
| string | name | The name of the parameter. |
| P | value | The value that the parameter should be set to. |
Returns
| Type | Description |
|---|---|
| bool |
|
Type Parameters
| Name | Description |
|---|---|
| P | The parameter value type. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |