////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] voltage  (V)  Current voltage across the short.
///
/// @returns  double  (1/ohm)  Current conductance of the short.
///
/// @details  Computes and returns the electrical short conductance based on malfunction mode and
///           given voltage.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  flag   (--)  Malfunction activation flag.
/// @param[in]  value  (W)   Malfunction activation value.
/// @param[in]  minV   (V)   Malfunction minimum voltage value.
///
/// @details  Sets the constant power malfunction and minimum voltage controls to the given values.
///           The default values clear the malfunction and zero the minimum voltage.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  flag   (--)   Malfunction activation flag.
/// @param[in]  value  (amp)  Malfunction activation value.
/// @param[in]  minV   (V)    Malfunction minimum voltage value.
///
/// @details  Sets the constant current malfunction and minimum voltage controls to the given values.
///           The default values clear the malfunction and zero the minimum voltage.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  flag   (--)  Malfunction activation flag.
/// @param[in]  value  (W)   Malfunction activation value.
/// @param[in]  minV   (V)   Malfunction minimum voltage value.
///
/// @details  Sets the initial power malfunction and minimum voltage controls to the given values.
///           The default values clear the malfunction and zero the minimum voltage.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  flag   (--)   Malfunction activation flag.
/// @param[in]  value  (amp)  Malfunction activation value.
/// @param[in]  minV   (V)    Malfunction minimum voltage value.
///
/// @details  Sets the initial current malfunction and minimum voltage controls to the given values.
///           The default values clear the malfunction and zero the minimum voltage.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  flag   (--)   Malfunction activation flag.
/// @param[in]  value  (ohm)  Malfunction activation value.
/// @param[in]  minV   (V)    Malfunction minimum voltage value.
///
/// @details  Sets the constant resistance malfunction and minimum voltage controls to the given values.
///           The default values clear the malfunction and zero the minimum voltage.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  convergedStep  (--)  Not used.
/// @param[in]  absoluteStep   (--)  Not used.
///
/// @return   GunnsBasicLink::SolutionResult  (--)  Always returns CONFIRM.
///
/// @details  This link never has a reason to reject or delay the solution so it always confirms.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  This is the default constructor for the UtGunnsElectricalResistor class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Test for Update State.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  This is the default constructor for the UtGunnsShortUtil class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for the computeShort method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Test for Process Outputs.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this GUNNS Resistor With Power Function link model unit test.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Resistor With Power Function link model construction of configuration.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Resistor With Power Function link model construction of input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Resistor With Power Function link model default construction.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Resistor With Power Function link model nominal initialization without
///           exceptions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Resistor With Power Function link model accessors.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Resistor With Power Function link model modifiers.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Resistor With Power Function link model step method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Resistor With Power Function link model minorStep method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Resistor with Power Function link model computeFlows method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Resistor With Power Function link model restart method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Resistor With Power Function link model initialization exceptions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  This is the default constructor for the UtGunnsResistiveLoad class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this GUNNS Electrical Short link model unit test.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Electrical Short link model construction of configuration.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Electrical Short link model construction of input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Electrical Short link model default construction.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Electrical Short link model nominal initialization without exceptions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Electrical Short link model step method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Electrical Short link model restart method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for GUNNS Electrical Short link model initialization exceptions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this Photovoltaic Section model config data.  This only exists to
///           avoid ambiguity with the overloaded custom constructors below.  This shouldn't
///           actually be used, as a section configured with this constructor will not be able to
///           initialize.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] sectionSourceAngleExponent     (--)   Exponent on trig function of light source incident angle.
/// @param[in] sectionBacksideReduction       (--)   Reduction fraction (0-1) when lit from back side.
/// @param[in] sectionSourceAngleEdgeOn       (--)   Angle of light source to surface is edge-on instead of normal.
/// @param[in] sectionRefSourceFluxMagnitude  (W/m2) Reference ambient flux magnitude of light source at the surface.
/// @param[in] stringBlockingDiodeVoltageDrop (v)    Voltage drop across the diode at end of string.
/// @param[in] stringBypassDiodeVoltageDrop   (v)    Voltage drop across each bypass diode.
/// @param[in] stringBypassDiodeInterval      (--)   Number of cells per bypass diode.
/// @param[in] stringNumCells                 (--)   Number of cells in this string.
/// @param[in] cellSurfaceArea                (m2)   Cell surface area of one side.
/// @param[in] cellEfficiency                 (--)   Cell photovoltaic efficiency (0-1).
/// @param[in] cellSeriesResistance           (ohm)  Cell series resistance.
/// @param[in] cellShuntResistance            (ohm)  Cell shunt resistance.
/// @param[in] cellOpenCircuitVoltage         (v)    Cell open-circuit voltage.
/// @param[in] cellRefTemperature             (K)    Cell Reference temperature for temperature effects.
/// @param[in] cellTemperatureVoltageCoeff    (1/K)  Cell coefficient for temperature effect on open-circuit voltage.
/// @param[in] cellTemperatureVoltageCoeff    (1/K)  Cell coefficient for temperature effect on source current.
///
/// @details  This overloaded constructor constructs this Photovoltaic Section Mode config data for
///           the original version strings.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] cellRefVoc                     (V)     Reference cell open-circuit voltage.
/// @param[in] cellRefIsc                     (amp)   Reference cell short-circuit current.
/// @param[in] cellRefVmp                     (V)     Reference cell voltage at the maximum power point.
/// @param[in] cellRefImp                     (amp)   Reference cell current at the maximum power point.
/// @param[in] cellRefTemperature             (K)     Reference cell temperature.
/// @param[in] cellCoeffDVocDT                (V/K)   Coefficient for temperature effect on open-circuit voltage.
/// @param[in] cellCoeffDIscDT                (amp/K) Coefficient for temperature effect on source current.
/// @param[in] cellIdeality                   (1)     Cell equivalent diode ideality constant.
/// @param[in] cellArea                       (m2)    Optional cell area, used for efficiency estimation.
/// @param[in] sectionSourceAngleExponent     (--)    Exponent on trig function of light source incident angle.
/// @param[in] sectionBacksideReduction       (--)    Reduction fraction (0-1) when lit from back side.
/// @param[in] sectionSourceAngleEdgeOn       (--)    Angle of light source to surface is edge-on instead of normal.
/// @param[in] sectionRefSourceFluxMagnitude  (W/m2)  Reference ambient flux magnitude of light source absorbed by the surface.
/// @param[in] stringBlockingDiodeVoltageDrop (v)     Voltage drop across the diode at end of string.
/// @param[in] stringBypassDiodeVoltageDrop   (v)     Voltage drop across each bypass diode.
/// @param[in] stringBypassDiodeInterval      (--)    Number of cells per bypass diode.
/// @param[in] stringNumCells                 (--)    Number of cells in this string.
///
/// @details  This overloaded constructor constructs this Photovoltaic Section Mode config data for
///           the version 2 strings.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] sectionSourceFluxMagnitude   (W/m2) Ambient flux magnitude of light source at the surface.
/// @param[in] sectionSourceAngle           (rad)  Angle of light source to surface.
/// @param[in] sectionSourceExposedFraction (--)   Surface area fraction exposed to light source (0-1).
/// @param[in] sectionTemperature           (K)    Temperature of the section.
///
/// @details  Default constructs this Photovoltaic Section Model input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this Photovoltaic Section Model.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] configData (--) Pointer to the section config data.
///
/// @details  Default constructs this Photovoltaic Section Model with pointer to its config data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] name               (--) The instance name for H&S messages.
/// @param[in] inputData          (--) Reference to this section's initial input data.
/// @param[in] numStringsOverride (--) Overrides the config data number of strings for this section.
///
/// @throws   TsInitializationException
///
/// @details  Initializes this Photovoltaic Section Model with its instance name and input data and
///           validates its configuration and input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @throws   TsInitializationException
///
/// @details  Validates this Photovoltaic Section configuration and input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] dt (s) Integration time step.
///
/// @details  Updates this Photovoltaic Section Model's state, including the contained string
///           states.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] dt (s) Integration time step.
///
/// @details  This drives the environment interface to the contained strings, including lighting and
///           temperature.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this Photovoltaic Cell Version 2 Equivalent Circuit model.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] configData (--) The cell configuration data.
/// @param[in] name       (--) Instance name for identification in error messages.
///
/// @throws   TsInitializationException
///
/// @details  Initializes this Photovoltaic Cell Version 2 Equivalent Circuit model with the cell
///           configuration data an the instance name.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Computes the efficiency and fill factor for the cell at current conditions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] refCell     (--)   Pointer to the reference cell.
/// @param[in] temperature (K)    Cell temperature.
/// @param[in] photoFlux   (W/m2) Cell absorbed illumination power flux.
/// @param[in] degradation (--)   Fraction of cell degradation.
///
/// @throws   TsOutOfBoundsException
///
/// @details  Computes the equivalent cell parameters as differing from the given reference cell
///           affected by the given temperature and illumination values.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @throws   TsOutOfBoundsException
///
/// @details  Computes N*Vt, Rs, Rsh, I0, and IL, given Voc, Isc, Vmp, Imp, T, and ideality.  This
///           method to calculate Rs, Rsh, I0 and IL is from Reference 1.  Results and some
///           intermediate computations are checked for valid ranges and exception is thrown for
///           any out-of-bounds values to avoid later math faults.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] voltage (V) Cell terminal voltage to compute the current for.
///
/// @returns  double (amp) Cell terminal current.
///
/// @throws   TsOutOfBoundsException
///
/// @details  Returns the current leaving the cell at its output terminal, given the cell output
///           terminal voltage, using the Lambert W+0 function.  For given voltages lying at or
///           below zero or at or above open-circuit voltage, return the short-circuit current and
///           zero current, respectively.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  current (amp) Cell terminal current to compute the voltage for.
///
/// @returns  double (V) Cell terminal voltage.
///
/// @throws   TsOutOfBoundsException
///
/// @details  Returns the voltage across the cell at its output terminal, given the cell output
///           terminal current, using the Lambert W+0 function.  For given currents lying at or
///           below zero or at or above the short-circuit current, return the open-circuit voltage
///           and zero voltage, respectively.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this Photovoltaic String Model version 2.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] configData (--) Pointer to the string config data.
/// @param[in] inputData  (--) Pointer to this string's input data.
///
/// @details  Default constructs this Photovoltaic String Model version 2 with pointers to its
///           configuration & input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default destructs this Photovoltaic String Model version 2.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] name (--) The instance name for H&S messages.
///
/// @throws   TsInitializationException
///
/// @details  Initializes this Photovoltaic String Model version 2 with its instance name and
///           validates its configuration.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @throws   TsInitializationException
///
/// @details  Validates this Photovoltaic String Model configuration.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Updates this Photovoltaic String Model's state, including the equivalent circuit
///           properties, based on the current input conditions such as lighting and temperature.
///           These states do not depend on the current loading of the string.  Effects of loading
///           are calculated in other functions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Computes the Maximum Power Point of the string.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  power      (W)   The output power load to apply.
/// @param[in]  shortSide  (--)  True uses the solution on the short-circuit side of maximum power.
///
/// @details  This loads the string at either the MPP, or zero power at Isc or Voc, depending on the
///           the given power output.  This version 2 string model does not have the ability to
///           load the string at arbitrary power loads, only at either MPP or zero.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  v1  (V)  The terminal voltage to calculate outputs for.
///
/// @throws   TsOutOfBoundsException
///
/// @details  This loads the string at the given terminal voltage on its I-V curve and computes the
///           resulting terminal output state.  If the given terminal voltage exceeds the limits of
///           the I-V curve, then the terminal output current, power and conductance are zeroed.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  g  (1/ohm)  The load conductance to compute the results for.
///
/// @throws   TsOutOfBoundsException
///
/// @details  This loads the string near either the open-circuit or short-circuit points, depending
///           on which side of the MPP the given conductance represents.  The version 2 equivalent
///           cell model has limited ability to load at arbitrary current or power, so we can't load
///           at arbitrary conductance either.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  v1  (V)  The terminal voltage to calculate outputs for.
///
/// @returns  double (amp) String current at the given voltage.
///
/// @throws   TsOutOfBoundsException
///
/// @details This computes the string current at the given string voltage.  This doesn't store the
///          result or actually load the string.  Voltage is given for the entire string, but we can
///          only compute current for an equivalent cell, so we work out what the individual cell
///          voltage is by adding the series diode voltage drops and dividing by the number of
///          active cells.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this GUNNS Photovoltaic Regulator Trip Functions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] configData (--) Pointer to the config data for this cell instance (not used).
/// @param[in] name       (--) Instance name for memory allocation and H&S messages.
///
/// @details  This initializes the instance name.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] refCell     (--) Not used.
/// @param[in] temperature (--) Not used.
/// @param[in] photoFlux   (--) Not used.
/// @param[in] degradation (--) Not used.
///
/// @details  This is an empty virtual method intended for override by derived classes.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] flag      (--)   Malfunction activation flag.
/// @param[in] magnitude (W/m2) Malfunction magnitude.
/// @param[in] duration  (s)    Malfunction total duration.
/// @param[in] ramptime  (s)    Malfunction ramp in & out duration.
///
/// @details  Sets the photo power flux malfunction controls to the given values.  Calling this with
///           default arguments deactivates the malfunction.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] flag  (--) Malfunction activation flag.
/// @param[in] value (--) Malfunction value (0-1).
///
/// @details  Sets the source exposed fraction malfunction controls to the given values.  Calling
///           this with default arguments deactivates the malfunction.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] flag  (--) Malfunction activation flag.
/// @param[in] value (K)  Malfunction value.
///
/// @details  Sets the temperature malfunction controls to the given values.  Calling this with
///           default arguments deactivates the malfunction.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] name  (--) Instance name for memory allocation and H&S messages.
/// @param[in] nodes (--) Pointer to the network nodes list.
///
/// @details  Default constructs this Photovoltaic Array Link config data.  This only exists to
///           avoid ambiguity with the overloaded custom constructors below.  This shouldn't
///           actually be used, as an array configured with this constructor will not be able to
///           initialize.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] name                           (--)   Instance name for memory allocation and H&S messages.
/// @param[in] nodes                          (--)   Pointer to the network nodes list.
/// @param[in] arrayNumSections               (--)   Number of sections in the array.
/// @param[in] arrayNumStrings                (--)   Default total number of strings in the array.
/// @param[in] sectionSourceAngleExponent     (--)   Exponent on trig function of light source incident angle.
/// @param[in] sectionBacksideReduction       (--)   Reduction fraction (0-1) when lit from back side.
/// @param[in] sectionSourceAngleEdgeOn       (--)   Angle of light source to surface is edge-on instead of normal.
/// @param[in] sectionRefSourceFluxMagnitude  (W/m2) Reference ambient flux magnitude of light source at the surface.
/// @param[in] stringBlockingDiodeVoltageDrop (V)    Voltage drop across the diode at end of string.
/// @param[in] stringBypassDiodeVoltageDrop   (V)    Voltage drop across each bypass diode.
/// @param[in] stringBypassDiodeInterval      (--)   Number of cells per bypass diode.
/// @param[in] stringNumCells                 (--)   Number of cells in this string.
/// @param[in] cellSurfaceArea                (m2)   Cell surface area of one side.
/// @param[in] cellEfficiency                 (--)   Cell photovoltaic efficiency (0-1).
/// @param[in] cellSeriesResistance           (ohm)  Cell series resistance.
/// @param[in] cellShuntResistance            (ohm)  Cell shunt resistance.
/// @param[in] cellOpenCircuitVoltage         (V)    Cell open-circuit voltage.
/// @param[in] cellRefTemperature             (K)    Cell Reference temperature for temperature effects.
/// @param[in] cellTemperatureVoltageCoeff    (1/K)  Cell coefficient for temperature effect on open-circuit voltage.
/// @param[in] cellTemperatureVoltageCoeff    (1/K)  Cell coefficient for temperature effect on source current.
///
/// @details  This overloaded constructor constructs this Photovoltaic Array Link config data for
///           the original version strings.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] name                           (--)    Instance name for memory allocation and H&S messages.
/// @param[in] nodes                          (--)    Pointer to the network nodes list.
/// @param[in] cellRefVoc                     (V)     Reference cell open-circuit voltage.
/// @param[in] cellRefIsc                     (amp)   Reference cell short-circuit current.
/// @param[in] cellRefVmp                     (V)     Reference cell voltage at the maximum power point.
/// @param[in] cellRefImp                     (amp)   Reference cell current at the maximum power point.
/// @param[in] cellRefTemperature             (K)     Reference cell temperature.
/// @param[in] cellCoeffDVocDT                (V/K)   Coefficient for temperature effect on open-circuit voltage.
/// @param[in] cellCoeffDIscDT                (amp/K) Coefficient for temperature effect on source current.
/// @param[in] cellIdeality                   (1)     Cell equivalent diode ideality constant.
/// @param[in] cellArea                       (m2)    Optional cell area, used for efficiency estimation.
/// @param[in] sectionSourceAngleExponent     (--)    Exponent on trig function of light source incident angle.
/// @param[in] sectionBacksideReduction       (--)    Reduction fraction (0-1) when lit from back side.
/// @param[in] sectionSourceAngleEdgeOn       (--)    Angle of light source to surface is edge-on instead of normal.
/// @param[in] sectionRefSourceFluxMagnitude  (W/m2)  Reference ambient flux magnitude of light source absorbed by the surface.
/// @param[in] stringBlockingDiodeVoltageDrop (V)     Voltage drop across the diode at end of string.
/// @param[in] stringBypassDiodeVoltageDrop   (V)     Voltage drop across each bypass diode.
/// @param[in] stringBypassDiodeInterval      (--)    Number of cells per bypass diode.
/// @param[in] stringNumCells                 (--)    Number of cells in this string.
/// @param[in] arrayNumSections               (--)    Number of sections in the array.
/// @param[in] arrayNumStrings                (--)    Default total number of strings in the array.
///
/// @details  This overloaded constructor constructs this Photovoltaic Array Link config data for
///           the version 2 strings.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] sectionSourceFluxMagnitude   (W/m2) Ambient flux magnitude of light source at the surface.
/// @param[in] sectionSourceAngle           (r)    Angle of light source to surface.
/// @param[in] sectionSourceExposedFraction (--)   Surface area fraction exposed to light source (0-1).
/// @param[in] sectionTemperature           (K)    Temperature of the section.
///
/// @details  Default constructs this Photovoltaic Array Link input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this Photovoltaic Array Link.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]     configData   (--) Photovoltaic Array Config Data.
/// @param[in]     inputData    (--) Photovoltaic Section Input Data.
/// @param[in,out] networkLinks (--) Network links.
/// @param[in]     port0        (--) Network port 0.
///
/// @throws   TsInitializationException
///
/// @details  Initializes this Photovoltaic Array Link with configuration and input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @throws   TsInitializationException
///
/// @details  Validates this GUNNS Photovoltaic Array configuration.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] dt (s) Integration time step.
///
/// @throws   TsOutOfBoundsException
///
/// @details  Computes this link's contributions to the network system of equations prior to the
///           network major step solution.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  dt         (s)   Not used.
/// @param[in]  minorStep  (--)  Not used.
///
/// @details  Updates this link's contributions to the network system of equations for minor steps.
///           If the strings are not tied to a common output, then they are being individually
///           loaded by a downstream regulator and the output node of this link isn't used, so zero
///           this link's effects on it.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] dt (s) Integration time step.
///
/// @details  Updates the photovoltaic sections in their environment, and from their outputs
///           computes the average array performance parameters for this time step.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Builds the Admittance Matrix for the link.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] convergedStep (--) Not used.
/// @param[in] absoluteStep  (--) Not used.
///
/// @returns  SolutionResult  (--)  Whether this link confirms or rejects the network solution.
///
/// @details  This link only directly contributes to the network system of equations when the array
///           strings are tied to the common output node.  In that case, check if the output voltage
///           has moved between the open- or short-circuit sides.  If so, reject the solution and
///           start over.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] dt (s) Not used.
///
/// @details  Computes the flows and final outputs resulting from the network solution.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[out] power       (W)     Returned output load power at the given terminal voltage.
/// @param[out] conductance (1/ohm) Returned output load conductance at the given terminal voltage.
/// @param[in]  voltage     (V)     The terminal voltage to calculate outputs for.
///
/// @details  This computes the output power and load conductance that will place the array at the
///           given terminal voltage on its I-V curve.  If the given terminal voltage exceeds the
///           limits of the I-V curve, then zeroes are returned.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  power      (W)   The output power load to apply.
/// @param[in]  shortSide  (--)  True uses the solution on the short-circuit side of maximum power.
///
/// @details  This loads the array at the given power output and on the given side of the array's
///           Maximum Power Point on its I-V performance curve.  If the given power exceeds the
///           array's maximum power output then the terminal outputs are zeroed.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Computes the active regulated voltage level for this pass including the setpoint
///           commands and biases.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] name                   (--)  Link name.
/// @param[in] nodes                  (--)  Network nodes array.
/// @param[in] voltageConvLimit       (V)   Maximum ratio this regulator can increase the input voltage from the array to the output.
/// @param[in] voltageConvEfficiency  (--)  Power efficiency (0-1) of input to output voltage conversion.
/// @param[in] array                  (--)  Pointer to the PV array link.
/// @param[in] inCurrentSensor        (--)  Optional pointer to the input current sensor wrapper.
/// @param[in] inVoltageSensor        (--)  Optional pointer to the input voltage sensor wrapper.
/// @param[in] outCurrentSensor       (--)  Optional pointer to the output current sensor wrapper.
/// @param[in] outVoltageSensor       (--)  Optional pointer to the output voltage sensor wrapper.
/// @param[in] inputOverCurrentTrip   (amp) Optional input over-current trip limit.
/// @param[in] inputOverVoltageTrip   (V)   Optional input over-volt trip limit.
/// @param[in] outputOverCurrentTrip  (amp) Optional output over-current trip limit.
/// @param[in] outputOverVoltageTrip  (V)   Optional output over-volt trip limit.
/// @param[in] outputUnderVoltageTrip (V)   Optional output under-volt trip limit.
/// @param[in] tripPriority           (--)  Trip network step priority.
///
/// @details  Default constructs this Photovoltaic Array Converting Regulator configuration data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] voltageSetpoint      (V)  Initial setpoint for the regulated output voltage.
/// @param[in] voltageSetpointDelta (V)  Initial nominal delta to voltage setpoint.
/// @param[in] powered              (--) Initial state of power on flag.
/// @param[in] enabled              (--) Initial state of enable command.
///
/// @details  Default constructs this Photovoltaic Array Converting Regulator input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default Gunns Photovoltaic Array Converting Regulator Constructor.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]     configData   (--) Photovoltaic Array Converting Regulator Config Data.
/// @param[in]     inputData    (--) Photovoltaic Array Converting Regulator Input Data.
/// @param[in,out] networkLinks (--) Network links.
/// @param[in]     port0        (--) Network port 0.
///
/// @throws   TsInitializationException
///
/// @details  This method initializes this Photovoltaic Array Converting Regulator with config and
///           input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  configData  (--) Photovoltaic Array Converting Regulator Config Data.
/// @param[in]  inputData   (--) Photovoltaic Array Converting Regulator Input Data.
///
/// @throws   TsInitializationException
///
/// @details  Validates this GUNNS Photovoltaic Array Converting Regulator config & input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] dt (s) Not used.
///
/// @details  Computes this link's contributions to the network system of equations prior to the
///           network major step solution.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] dt        (s)  Not used.
/// @param[in] minorStep (--) Not used.
///
/// @details  Computes this link's contributions to the network system of equations prior to each
///           network minor step solution.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Computes maximum current this regulator can output at the regulated voltage.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @returns  bool  (--)  True if the mState value changed in this update.
///
/// @details  Determines the mState based on demanded power from the circuit, and array model
///           conditions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] convergedStep (--) The count of minor steps since the network last converged.
/// @param[in] absoluteStep  (--) Not used.
///
/// @returns  SolutionResult  (--)  Whether this link confirms or rejects the network solution.
///
/// @details  This updates the state after every minor step, and rejects if it changed on a
///           converged step.  Updates sensors and trips on converged steps.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in, out] wrapper (--) The sensor wrapper network spotter containing the actual sensor.
///
/// @details  Even though the PV regulators step the sensors multiple times each network update
///           cycle, they always pass zero time step to the sensor, so the sensor's drift malf isn't
///           integrated by those calls.  So we have the spotter step the sensor one last time at
///           the end of the network cycle, this time with a time step to finally update the drift.
///
/// @note  Caller must ensure that wrapper argument isn't NULL.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] section (--) Array section number of this load order.
/// @param[in] string  (--) Section string number of this load order.
///
/// @details  Default constructs this Photovoltaic Array Shunting Regulator String Load Order.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] that (--) Object to be copied from.
///
/// @details  Copy constructs this Photovoltaic Array Shunting Regulator String Load Order.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  that  (--)  Object to be checked for equality with this one.
///
/// @returns  bool  (--)  True if the objects are identical.
///
/// @details  Returns true if this is the same object as that, or if all of this objects attributes
///           are equal to that's.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] name                   (--)    Link name.
/// @param[in] nodes                  (--)    Network nodes array.
/// @param[in] outputConductance      (1/ohm) Conductance of the regulated output.
/// @param[in] shuntConductance       (1/ohm) Conductance of each string shunt.
/// @param[in] array                  (--)    Pointer to the PV array link.
/// @param[in] inCurrentSensor        (--)    Optional pointer to the input current sensor wrapper.
/// @param[in] inVoltageSensor        (--)    Optional pointer to the input voltage sensor wrapper.
/// @param[in] outCurrentSensor       (--)    Optional pointer to the output current sensor wrapper.
/// @param[in] outVoltageSensor       (--)    Optional pointer to the output voltage sensor wrapper.
/// @param[in] inputOverCurrentTrip   (amp)   Optional input over-current trip limit.
/// @param[in] inputOverVoltageTrip   (V)     Optional input over-volt trip limit.
/// @param[in] outputOverCurrentTrip  (amp)   Optional output over-current trip limit.
/// @param[in] outputOverVoltageTrip  (V)     Optional output over-volt trip limit.
/// @param[in] outputUnderVoltageTrip (V)     Optional output under-volt trip limit.
/// @param[in] tripPriority           (--)    Trip network step priority.
///
/// @details  Default constructs this Photovoltaic Array Shunting Regulator configuration data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] section (--) Array section number of the load order.
/// @param[in] string  (--) Section string number of the load order.
///
/// @details  Creates a Photovoltaic Array Shunting Regulator String Load Order with the given
///           values and adds it to the string load order vector.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] voltageSetpoint  (V)   Initial setpoint for the regulated output voltage.
/// @param[in] powered          (--)  Initial state of power on flag.
/// @param[in] enabled          (--)  Initial state of enabled, powered and commanded on, etc.
/// @param[in] minOperatePower  (W)   Initial minimum bulk power available from array to operate.
///
/// @details  Default constructs this Photovoltaic Array Shunting Regulator input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default Gunns Photovoltaic Array Shunting Regulator Constructor.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]     configData   (--) Photovoltaic Array Shunting Regulator Config Data.
/// @param[in]     inputData    (--) Photovoltaic Array Shunting Regulator Input Data.
/// @param[in,out] networkLinks (--) Network links.
/// @param[in]     port0        (--) Network port 0.
/// @param[in]     port1        (--) Network port 1.
///
/// @throws   TsInitializationException
///
/// @details  This method initializes this Photovoltaic Array Shunting Regulator with configuration
///           and input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  configData  (--) Photovoltaic Array Shunting Regulator Config Data.
/// @param[in]  inputData   (--) Photovoltaic Array Shunting Regulator Input Data.
///
/// @throws   TsInitializationException
///
/// @details  Validates this GUNNS Photovoltaic Array Shunting Regulator configuration & input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Computes maximum power and current outputs the array can supply this pass, and
///           initially loads all strings at the regulated voltage.  The strings can be reloaded
///           later this pass.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Performs initial state transitions in response to the array state this pass.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Builds the Admittance Matrix for the link.  The behavior depends on state.  In REG and
///           OFF states, the input and output nodes are loaded separately and are not connected.
///           In SAG mode, this link simply connects the nodes like a conductor.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] convergedStep (--) The count of minor steps since the network last converged.
/// @param[in] absoluteStep  (--) Not used.
///
/// @returns  SolutionResult  (--)  Whether this link confirms or rejects the network solution.
///
/// @details  This link determines whether to accept or reject the converged network solution.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] dt (s) Not used.
///
/// @details  Computes the final outputs resulting from the network solution.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  power  (W)  Total power load to be placed on the strings.
///
/// @details  Loops over the array strings and loads each at the regulated voltage until the power
///           argument value has been exceeded.  The remaining strings are shunted.  A negative
///           power argument value will shunt all the strings.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Computes the active regulated voltage level for this pass including the setpoint
///           command and biases.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Builds the Source Vector for the link.  The behavior depends on state.  In REG state,
///           this link creates a potential source on the output node at the regulated voltage.  In
///           the SAG & OFF states, there is no source.  There is never a source on the input node.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Computes the output flux resulting from the network solution.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this GUNNS Photovoltaic Regulator Sensors.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in, out] wrapper (--) The sensor wrapper network spotter containing the actual sensor.
///
/// @details  Additionally, calls configureWrapperStepFlags.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @returns  bool  (--)  True if any trip logics are tripped, false if none are.
///
/// @details  Returns whether any trip logics are currently tripped.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Builds the source vector for the link.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this Photovoltaic Cell model config data.  This only exists to
///           avoid ambiguity with the overloaded custom constructors below.  This shouldn't
///           actually be used, as a cell configured with this constructor will not be able to
///           initialize.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] cellSurfaceArea             (m2)  Surface area of one side.
/// @param[in] cellEfficiency              (--)  Photovoltaic efficiency (0-1).
/// @param[in] cellSeriesResistance        (ohm) Series resistance.
/// @param[in] cellShuntResistance         (ohm) Shunt resistance.
/// @param[in] cellOpenCircuitVoltage      (V)   Open-circuit voltage.
/// @param[in] cellRefTemperature          (K)   Reference temperature for temperature effects.
/// @param[in] cellTemperatureVoltageCoeff (1/K) Coefficient for temperature effect on open-circuit voltage.
/// @param[in] cellTemperatureVoltageCoeff (1/K) Coefficient for temperature effect on source current.
///
/// @details  This overloaded constructor constructs this Photovoltaic Cell config data for an
///           original version cell model.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] voc         (V)     Open-circuit voltage.
/// @param[in] isc         (amp)   Short-circuit current.
/// @param[in] vmp         (V)     Voltage at the maximum power point.
/// @param[in] imp         (amp)   Current at the maximum power point.
/// @param[in] photoFlux   (W/m2)  Absorbed photo power flux incident on the string.
/// @param[in] temperature (K)     Temperature.
/// @param[in] coeffDVocDT (V/K)   Coefficient for temperature effect on open-circuit voltage.
/// @param[in] coeffDIscDT (amp/K) Coefficient for temperature effect on source current.
/// @param[in] ideality    (1)     Diode ideality constant.
/// @param[in] cellArea    (m2)    Optional cell area, used for efficiency estimation.
///
/// @details  This overloaded constructor constructs this Photovoltaic Cell config data for a
///           version 2 cell model.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this Photovoltaic Cell Equivalent Circuit Model.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Zeroes all attributes of this Photovoltaic Cell Equivalent Circuit Model, except for
///           the instance name.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Zeroes all attributes of this Photovoltaic String Model Load State.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this Photovoltaic String model config data.  This only exists to
///           avoid ambiguity with the overloaded custom constructors below.  This shouldn't
///           actually be used, as a string configured with this constructor will not be able to
///           initialize.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] stringBlockingDiodeVoltageDrop (V)   Voltage drop across the diode at end of string.
/// @param[in] stringBypassDiodeVoltageDrop   (V)   Voltage drop across each bypass diode.
/// @param[in] stringBypassDiodeInterval      (--)  Number of cells per bypass diode.
/// @param[in] stringNumCells                 (--)  Number of cells in this string.
/// @param[in] cellSurfaceArea                (m2)  Cell surface area of one side.
/// @param[in] cellEfficiency                 (--)  Cell photovoltaic efficiency (0-1).
/// @param[in] cellSeriesResistance           (ohm) Cell series resistance.
/// @param[in] cellShuntResistance            (ohm) Cell shunt resistance.
/// @param[in] cellOpenCircuitVoltage         (V)   Cell open-circuit voltage.
/// @param[in] cellRefTemperature             (K)   Cell Reference temperature for temperature effects.
/// @param[in] cellTemperatureVoltageCoeff    (1/K) Cell coefficient for temperature effect on open-circuit voltage.
/// @param[in] cellTemperatureVoltageCoeff    (1/K) Cell coefficient for temperature effect on source current.
///
/// @details  This overloaded constructor constructs this Photovoltaic String Model config data for
///           an original version string model.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] stringBlockingDiodeVoltageDrop (V)     Voltage drop across the diode at end of string.
/// @param[in] stringBypassDiodeVoltageDrop   (V)     Voltage drop across each bypass diode.
/// @param[in] stringBypassDiodeInterval      (--)    Number of cells per bypass diode.
/// @param[in] stringNumCells                 (--)    Number of cells in this string.
/// @param[in] cellRefVoc                     (V)     Reference cell open-circuit voltage.
/// @param[in] cellRefIsc                     (amp)   Reference cell short-circuit current.
/// @param[in] cellRefVmp                     (V)     Reference cell voltage at the maximum power point.
/// @param[in] cellRefImp                     (amp)   Reference cell current at the maximum power point.
/// @param[in] cellRefPhotoFlux               (W/m2)  Reference cell absorbed photo power flux.
/// @param[in] cellRefTemperature             (K)     Reference cell temperature.
/// @param[in] cellCoeffDVocDT                (V/K)   Coefficient for temperature effect on open-circuit voltage.
/// @param[in] cellCoeffDIscDT                (amp/K) Coefficient for temperature effect on source current.
/// @param[in] cellIdeality                   (1)     Cell equivalent diode ideality constant.
/// @param[in] cellArea                       (m2)    Optional cell area, used for efficiency estimation.
///
/// @details  This overloaded constructor constructs this Photovoltaic String Model config data for
///           a Version 2 string model.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] stringPhotoFlux             (W/m2) Photo power flux incident on the string.
/// @param[in] stringSourceExposedFraction (--)   Surface area fraction exposed to light source (0-1).
/// @param[in] stringTemperature           (K)    Temperature of the string.
///
/// @details  Default constructs this Photovoltaic String Model input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] dt (s) Integration time step.
///
/// @details  Applies malfunctions to override the string input data values.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] time     (s)    Elapsed ramp time.
/// @param[in] outValue (W/m2) Ramp-out value to ramp from/to.
///
/// @returns  double (W/m2) Photo power flux.
///
/// @details  Computes and returns the photo power flux as a sinusoid from the start value to the
///           hold value over the given elapsed time.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this Photovoltaic String Model.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] configData (--) Pointer to the string config data.
/// @param[in] inputData  (--) Pointer to this string's input data.
///
/// @details  Default constructs this Photovoltaic String Model with pointers to its configuration
///           & input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in] name (--) The instance name for H&S messages.
///
/// @throws   TsInitializationException
///
/// @details  Initializes this Photovoltaic String Model with its instance name and validates its
///           configuration.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Determines the number of cell groups that are bypassed.  Since all cells in a group
///           are in series, if any one cell is either shaded or failed, it blocks current through
///           the entire cell group, and current from upstream is bypassed around the group through
///           its bypass diode.
///
///           For simplicity, we don't specify which groups are failed vs. shaded.  Rather the # of
///           active groups is reduced by the # of failed or shaded groups, whichever is greater.
///
///           In reality, bad facing and low ambient light flux would cause bypass too.  But these
///           affect all groups equally and their bulk affects on the string are already modeled, so
///           we don't bother to count them here.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Computes the Maximum Power Point assuming the junction node is at the open-circuit
///           voltage, shunt diode is reverse biased and series diode is forward biased.
///
/// @note     Caller must ensure mEqProps->mSeriesConductance > 0.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  power      (W)   The output power load to apply.
/// @param[in]  shortSide  (--)  True uses the solution on the short-circuit side of maximum power.
///
/// @details  This loads the string at the given power output and on the given side of the string's
///           Maximum Power Point on its I-V performance curve.  If the given power exceeds the
///           string's maximum power output then the terminal outputs are zeroed.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  v1  (V)  The terminal voltage to calculate outputs for.
///
/// @details  This loads the string at the given terminal voltage on its I-V curve and computes the
///           resulting terminal output state.  If the given terminal voltage exceeds the limits of
///           the I-V curve, then the terminal outputs are zeroed.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  g  (1/ohm)  The load conductance to compute the results for.
///
/// @details  This loads the string with the given conductive load and computes the resulting
///           terminal output state.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]  v1  (V)  The terminal voltage to calculate outputs for.
///
/// @returns  double (amp) String current at the given voltage.
///
/// @details  This is similar to loadAtVoltage method, but only returns the current, and doesn't
///           store the result or actually load the string.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  This is the default constructor for the UtGunnsElectPvSection class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for construction of Photovoltaic Section model configuration data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for construction of Photovoltaic Section model input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the constructor of the GunnsElectPvSection class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Section model nominal initialization without exceptions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Section model nominal initialization with exceptions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Section model update method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the Photovoltaic Section getter and setter methods.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  This is the default constructor for the UtGunnsElectPvString2 class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Cell version 2 configuration data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Cell equivalent circuit version 2 model construction.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Cell equivalent circuit version 2 model nominal initialization.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Cell equivalent circuit version 2 model nominal initialization
///           with error handling.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Cell equivalent circuit version 2 model update method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Cell equivalent circuit version 2 model computeCurrent method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Cell equivalent circuit version 2 model computeVoltage method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the constructor of the GunnsElectPvString2 class.  This class has no member
///           variables, so this test is mainly checking the base class constructor.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic String version 2 model nominal initialization without
///           exceptions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic String model nominal initialization with exceptions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic String model version 2 determination of number of active cells
///           and bypassed groups.  This repeats some of the base class
///           UtGunnsElectPvString::testActiveCells() to verify that
///           GunnsElectPvString::updateBypassedGroups() is called.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic String version 2 model update method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the loadAtPower method.  Since the string vesrion 2 model has a limitation that
///           it can't be loaded at an arbitrary power, it can only load at either Voc, Isc, or MPP.
///           So we just test those 3 options.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the loadAtVoltage and predictCurrentAtVoltage methods.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the loadAtConductance method.  Since the string vesrion 2 model has a limitation
///           that it can't be loaded at an arbitrary conductance, it can only load at either near
///           Voc or Isc.  So we just test those 2 options.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  This is the default constructor for the UtGunnsElectPvArray class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for construction of Photovoltaic Array Link configuration data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for construction of Photovoltaic Array Link input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the constructor of the GunnsElectPvArray class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Array Link nominal initialization without exceptions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Array Link nominal initialization without exceptions, using a
///           custom number of strings for each section.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Array Link nominal initialization with exceptions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Array Link restart method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Array Link step and updateState methods.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the Array Link getter and setter methods.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the predictLoadAtVoltage method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the loadAtPower method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  This is the default constructor for the UtGunnsElectPvString class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Cell configuration data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Cell equivalent circuit model.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic load state data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for construction of Photovoltaic String model configuration data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for construction of Photovoltaic String model input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic String model input data applyOverrides method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the constructor of the GunnsElectPvString class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic String model nominal initialization without exceptions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic String model determination of number of active cells and
///           bypassed groups.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic String model step method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the Photovoltaic String getter and setter methods.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the Photovoltaic String loadAtMpp method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the loadAtConductance method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  This is the default constructor for the UtGunnsElectPvRegShunt class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for construction of Photovoltaic Array Shunting Regulator Link configuration data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for construction of Photovoltaic Array Shunting Regulator Link input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the constructor of the GunnsElectPvRegShunt class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Array Shunting Regulator Link nominal initialization without
///           exceptions, supplying a custom strings load order list.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Array Shunting Regulator Link nominal initialization without
///           exceptions, with default string load order.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Array Shunting Regulator Link nominal initialization with exceptions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Array Shunting Regulator Link restart method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Array Shunting Regulator Link step and updateState methods.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the Array Shunting Regulator Link minorStep method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the Array Shunting Regulator Link getter and setter methods.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  This is the default constructor for the UtGunnsElectPvRegConv class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for construction of Photovoltaic Array Converter Regulator Link configuration data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for construction of Photovoltaic Array Converter Regulator Link input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the constructor of the GunnsElectPvRegConv class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Array Converter Regulator Link nominal initialization without
///           exceptions, supplying a custom strings load order list.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Photovoltaic Array Converter Regulator Link nominal initialization with exceptions.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Array Converter Regulator Link restart method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for Array Converter Regulator Link step and updateState methods.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the Array Converter Regulator Link minorStep method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the Array Converter Regulator Link getter and setter methods.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  This is the default constructor for the UtGunnsElectPvRegSensors class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for default construction of a GunnsElectPvRegSensors.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests the sensor connection methods.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  This is the default constructor for the UtGunnsElectPvRegTrips class.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Tests for default construction of a GunnsElectPvRegTrips.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]   i  --  Index of constituent fluid
///
/// @return   --  Type of the specified constituent fluid of this PolyFluid
///
/// @details  Returns the type of the constituent fluid with the specified index in this PolyFluid
///           or NO_FLUID if not present.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]   flowRate  (kg/s)  Mass flow rate
///
/// @return   void
///
/// @details  Sets the mass flow rate (kg/s) of this PolyFluid and its constituent fluids.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]   mole  (kg*mol) Moles of the PolyFluid
///
/// @return   void
///
/// @details  Sets the moles and updates the mass of this PolyFluid and its constituent fluids.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]      temperature  (K)    Temperature of MonoFluid input data
/// @param[in]      pressure     (kPa)  Pressure of MonoFluid input data
/// @param[in]      flowRate     (kg/s) Mass flow rate of MonoFluid input data
/// @param[in]      mass         (kg)   Mass of MonoFluid input data
///
/// @details  Default constructs this MonoFluid input data with obviously invalid default values.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]      that  --  Source to copy
///
/// @details  Copy constructs this MonoFluid input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @details  Default constructs this MonoFluid with obviously invalid default values. This should
///           be followed by a call to the initialize method before calling an update method.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]      properties --   Pointer to fluid properties
/// @param[in]      inputData  --   Input data
///
/// @throws   TsInitializationException
///
/// @details  Constructs this MonoFluid with configuration data (properties) and input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]      that  --   Source to copy from
///
/// @details  Copy constructs this MonoFluid.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @param[in]      properties  --  Pointer to fluid properties
/// @param[in]      inputData   --  Input data
///
/// @return   void
///
/// @throws   TsInitializationException
///
/// @details  Initializes this MonoFluid with configuration data (properties) and input data.
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
/// @return   void
///
/// @throws   TsInitializationException
///
/// @details  Validates this MonoFluid input and configuration data.
////////////////////////////////////////////////////////////////////////////////////////////////////