/// <inheritdoc/>
            public IVariable <Complex> CreatePrivateVariable(string name, IUnit unit)
            {
                var index  = _map.Count;
                var result = new SolverVariable <Complex>(this, name, index, unit);

                _map.Add(result, index);
                return(result);
            }
            /// <summary>
            /// Initializes a new instance of the <see cref="ComplexSimulationState"/> class.
            /// </summary>
            /// <param name="solver">The solver.</param>
            /// <param name="comparer">The comparer.</param>
            /// <exception cref="ArgumentNullException">Thrown if <paramref name="solver"/> is <c>null</c>.</exception>
            public ComplexSimulationState(ISparsePivotingSolver <Complex> solver, IEqualityComparer <string> comparer)
                : base(comparer)
            {
                Solver = solver.ThrowIfNull(nameof(solver));

                var gnd = new SolverVariable <Complex>(this, Constants.Ground, 0, Units.Volt);

                _map = new VariableMap(gnd);
                Add(Constants.Ground, gnd);
            }