Skip to content

Yield simulation options

The Yield simulation options control how SunSolve performs optical ray tracing and electrical simulations to calculate system performance. These settings affect simulation accuracy, computational requirements, and the level of electrical detail in your results.


The solve type determines the electrical configuration level at which the simulation calculates output power.

DC output of each module within the unit system. This mode assumes:

  • Modules operate at their individual maximum power points
  • Modules are not electrically interconnected
  • No inverter or string-level losses

Use this mode for:

  • Module-level performance analysis
  • When solving PVsyst factors

DC output of strings of series-connected modules. This mode includes:

  • Module-to-module electrical mismatch within strings
  • String-level voltage and current calculations
  • String definitions configured on the Fields tab

Use this mode for:

  • String-level performance analysis
  • Quantifying electrical mismatch losses
  • DC system design validation

AC output of multiple parallel strings connected to an inverter. This mode includes:

  • All String DC features
  • String-to-string mismatch
  • Inverter efficiency modeling and losses
  • Array and inverter configuration defined on the Fields tab

Use this mode for:

  • Complete system AC performance predictions
  • Inverter sizing and selection analysis
  • Energy yield forecasting

Ray settings control the computational parameters for optical ray tracing, balancing simulation accuracy with solve time.

Choose how the number of rays per solar angle is determined:

Automatically determine (Default)

  • SunSolve calculates optimal ray count based on your system size
  • Minimum enforced: 500,000 rays
  • Maximum limits enforced to prevent timeout (see module limits)
  • Shows the Fidelity level control

Rays per solar angle are calculated as:

R=Nmodules×2,000,000×fR = \lfloor N_{\text{modules}} \times 2{,}000{,}000 \rfloor \times f

where:

  • RR = rays per solar angle
  • NmodulesN_{\text{modules}} = number of modules in the unit system
  • ff = fidelity multiplier (0.5, 1.0, 2.0, 4.0, or 8.0)
  • \lfloor \rfloor = floor function (rounds down to nearest integer)

Custom value (Advanced users only)

  • Manually specify exact ray count
  • Allows expert users to override automatic calculations
  • Shows editable “Rays per solar angle” field
  • Use with caution: too few rays increase stochastic error, too many cause timeouts

Multiplier for automatically-determined ray count. Available levels: 0.5×, (default), , , .

Higher fidelity increases the number of rays proportionally, improving accuracy at the cost of longer computation time. For example, 2× fidelity doubles the ray count and approximately doubles solve time.

When to adjust fidelity:

  • Increase (2×-8×): Complex optical structures, high-precision studies, validation work
  • Decrease (0.5×): Initial design exploration, geometry testing, large parameter sweeps
  • Keep at 1×: Most production simulations (default provides good accuracy/time balance)

Note: Higher fidelity levels reduce the maximum number of modules you can include in your unit system. See technical constraints for details.

For more information on the relationship between ray count and accuracy, see Stochastic error.


Selects the mathematical model for sky distribution of diffuse light. For detailed description of the models see sky distribution of diffuse light

For most yield simulations use either Hay-Davies or Perez (1990). Reserve Perez (PVsyst) for direct comparison with PVSyst results.

Assumes diffuse light is uniformly distributed across the sky hemisphere.

Accounts for circumsolar brightening (concentration of diffuse light around the sun’s position).

Advanced anisotropic models accounting for both circumsolar and horizon brightening.

Available algorithms:

  • Perez (1987): Original formulation
  • Perez (1990): Updated with refined coefficients
  • Perez (SAM): System Advisor Model implementation
  • Perez (PVsyst): PVsyst software implementation (Advanced users only)

Special analysis options for isolating specific optical or electrical effects. Primarily used for extraction of PVsyst factors (when using the manual method). These inputs manipulate the 3D unit-system scene.

Adds a light-blocking barrier to vertical gaps between panels while maintaining tip-to-tip module group length.

Purpose: Used in extraction of bifacial loss factors. Prevents light passing through gaps to better isolate edge effects.

Adds a light-blocking barrier to the rear side of every module in the unit-system.

Purpose: Allows calculation of bifacial gain by comparing front-only to bifacial configurations.

Makes module frame transparent to light while maintaining its geometry.

Purpose: Isolates frame shading effects.

Note: Removing the frame will often result in more transmission between modules.

Batch operations to control transparency of all structural components (posts, rafters, purlins, torque tubes, clamps, ballasts, rails, custom objects).

Set all structure to transparent:

  • Makes all structure transparent while maintaining geometry
  • Isolates structural shading losses

Set all structure to solid:

  • Restores normal optical properties
  • Returns to realistic shading analysis

Determines the coordinate system convention used to define module orientation within the system.

For detailed explanation of these conventions and when to use each, see System dimensions: XY axis and landscape/portrait.

Uses the same XY coordinate system as module definition. X and Y directions match those in module layout.

Uses landscape/portrait terminology independent of module XY definition.


Whether to include electrical mismatch losses in module output calculations.

Status: Always enabled in current version

For more information, see Sources of electrical mismatch and Stochastic error.

Controls the number of significant figures for output display across all results.

Valid range: Typically 2-6 significant figures Default: 4

This is a display-only setting; all internal calculations use full precision.


These settings require advanced user privileges. Contact us to request access. Most users do not require control of these settings and should use the defaults.

The “Show advanced options” checkbox (visible only to advanced users) controls visibility of:

  • Spectral range settings (wavelength min/max/interval)
  • Polarization tracking
  • Solar angles matrix configuration
  • Advanced ray options (rays per packet, max bounces, intensity threshold)
  • Advanced output options

Controls the wavelength range and number of wavelength bins used in the simulation. By default set to 300 nm to 1200 nm with step size of 20 nm.

Shortest wavelength traced in the simulation.

Valid range: 200-2500 nm Default: 300 nm Units: nm (nanometers) or μm (micrometers)

Longest wavelength traced in the simulation.

Valid range: 200-2500 nm Default: 1200 nm Units: nm (nanometers) or μm (micrometers)

Step size between traced wavelengths.

Valid range: 1-500 nm (must be > 1 nm) Default: 20 nm Units: nm (nanometers) or μm (micrometers)

Several constraints ensure valid wavelength configurations:

  1. Minimum < Maximum

    wlMin < wlMax

    Error: “Minimum wavelength is greater than the maximum wavelength.”

  2. At least 2 intervals

    wlMax ≥ wlMin + 2 × wlInterval

    Error: “There must be at least 2 wavelength intervals between the minimum and maximum wavelength.”

  3. Integer number of intervals

    (wlMax - wlMin) mod wlInterval = 0

    Error: “There must be an integer number of wavelength intervals between the minimum and maximum wavelength.”

  4. Maximum 250 wavelengths

    (wlMax - wlMin) / wlInterval ≤ 250

    Error: “Cannot solve more than 250 individual wavelength values. This is a temporary limit in place until the server side solver is upgraded.”

Controls whether ray tracing tracks the polarization state of light rays.

Assume TM=TE at all interactions (Default)

Section titled “Assume TM=TE at all interactions (Default)”
  • Faster computation
  • Assumes no polarization dependence in optical properties
  • Suitable for most PV systems
  • Tracks electric field orientation (s and p polarization) at each interface
  • More accurate for systems with polarization-dependent optical properties
  • Slower computation

For technical details on polarization handling, see Ray tracing methodology.

Defines the grid of solar positions for which full ray tracing is performed. SunSolve interpolates results for intermediate solar positions throughout the year.

Number of elevation arcs spanning from horizon to zenith.

Valid range: 2-20 Default: 5 Units: Dimensionless (count)

Number of azimuth points along each elevation arc.

Valid range: 5-60 Default: 20 Units: Dimensionless (count)

Maximum incident zenith angle for solar position solving. Limits ray tracing to solar elevations above a minimum threshold.

Valid range: 80-90° Default: 89° Units: Degrees (°)

Purpose: Angles very near the horizon contribute little to annual energy and take longer to solve due to extreme incidence angles.

Number of isotropic sky condition solves to perform for diffuse light calculations.

Valid range: 1-100 Default: 5 Units: Dimensionless (count)

Purpose: Isotropic solves calculate diffuse light absorption from all sky directions without direct beam contribution.

Total = (numberOfArcs × pointsPerArc) + numberOfIsotropicSolves

Default calculation: (5 × 20) + 5 = 105 total solves

When to adjust:

  • Increase arcs/points: Complex systems with strong angular dependencies, high-precision annual studies
  • Decrease arcs/points: Quick design iteration, systems with weak angular variation
  • Increase isotropic solves: Sites with high diffuse fraction, detailed diffuse analysis
  • Decrease isotropic solves: Sites with predominantly direct irradiance

For more on solar arc interpolation methodology, see Ray tracing methodology.

Number of rays traced in each computational batch before results are tallied.

Valid range: 20 to 500,000 (must be multiple of 20) Default: 500,000

Higher values reduce overhead but require more memory. The default works well for most systems.

Maximum number of optical interactions (reflections/transmissions) allowed per ray before tracing ceases.

Valid range: 1 to 10,000 Default: 1,000

When to increase:

  • Weakly absorbing materials or wavelengths
  • Complex multi-bounce optical structures
  • Systems with many highly reflective surfaces

Trade-off: Higher values improve precision but significantly increase computation time. For more on ray bouncing, see Ray tracing methodology.

Minimum light intensity (as percentage of initial) at which ray tracing continues. Rays below this threshold are discarded.

Valid range: 0.001% to 99% Default: 0.01% Units: Percentage (%)

When to adjust:

  • Lower (0.001-0.005%): Capture very weak light contributions (long simulation time)
  • Higher (0.05-0.1%): Faster simulations when weak contributions are negligible

The maximum rays setting must be at least as large as rays per packet:

maxRays ≥ numRays

Error: “Maximum number of rays is less than the number of rays per packet.”