Skip to content

Module cell layout

The module cell layout defines the physical geometry of cells within a module. Cells are arranged in a grid, with the bottom-left cell labelled as X=0, Y=0. Columns and rows are always aligned.

The layout inputs control the number of cells, the spacing between them, optional grouping (which creates additional horizontal or vertical gaps), and edge spacing around the outermost cells. These inputs directly affect the optical ray tracing simulation. The spacing between cells also affects the calculated ribbon length used in the series resistance calculation.

These inputs are found in the Geometry section of the Inputs → Module tab. The separate Electrical circuit section of the same tab is described on the module electrical layout page.

The cell layout inputs define how many cells the module contains and how they are arranged in the grid. All values are adjusted using increment/decrement buttons rather than free-text entry.

The number of columns of cells in the module.

The number of rows of cells in the module.

A read-only output calculated as columns multiplied by rows.

Cell spacing defines the gap between adjacent cells. This space is filled by the same layer materials (e.g., encapsulant and backsheet) as defined on the Layers tab, and directly affects the optical simulation — light entering the cell gap region interacts with the inter-cell materials rather than the active cell area.

The figure below shows how the user inputs, XsepX_{\text{sep}} and YsepY_{\text{sep}}, define the distance between the edge of the solar cell and the edge of the unit cell. (The solar cell and the unit cell are concentric.)

Single unit cell
Multiple unit cells

When Define cell groups is enabled, the module’s cells are divided into groups with additional spacing between them. This is a purely optical input — it adds extra inter-cell gap material between groups of cells without changing the electrical circuit topology.

Cell groups are useful for modelling modules where physical gaps exist between blocks of cells, such as half-cut cell modules with a gap along the centreline, or modules with visible spacing between cell groups for aesthetic reasons.

When cell groups are enabled, the following inputs appear:

  • Groups per row: the number of cell groups in the X direction
  • Groups per column: the number of cell groups in the Y direction
  • X separation (XgX_g): the extra spacing between groups in the X direction (only shown when groups per row > 1)
  • Y separation (YgY_g): the extra spacing between groups in the Y direction (only shown when groups per column > 1)

The group spacing XgX_g and YgY_g is in addition to the standard cell spacing. It does not add extra space to the module perimeter.

When Include perimeter is enabled, additional space is added around the outermost cells of the module. This perimeter region uses the same layer structure as the inter-cell gap. Four values can be set independently:

  • Left (Xp1X_{p1}), Right (Xp2X_{p2}), Bottom (Yp1Y_{p1}), Top (Yp2Y_{p2})

The perimeter is distinct from the frame, which sits outside the active module area. The perimeter defines the gap between the outermost cells and the frame (or module edge if no frame is present). The layers, materials, and interfaces within the perimeter region are the same as those within the cell-separation region of the unit cells, as defined on the Layers tab.

Frame and perimeter dimensions

The figure below shows a module with 4 cells in each row and 9 cells in each column, grouped into 2 cell groups in the X direction and 3 cell groups in the Y direction. It illustrates how the cell group spacing, perimeter, and frame dimensions relate to each other.

Cell group dimensions

SunSolve Power provides preset standard module layouts that can be loaded to quickly configure common module configurations. These presets set the cell count, spacing, and arrangement to match widely used module designs. Standard layouts are available when the inputs are not locked.

The module preview section at the top of the Module tab displays computed dimensions and areas based on the geometry inputs. All areas are in cm² and dimensions in cm.

The area of one cell, as determined by the cell shape and dimensions. See cell area for the formula used for each wafer shape.

The combined active area of all cells in the module:

Atotal cell=Acell×Nx×NyA_{\text{total cell}} = A_{\text{cell}} \times N_x \times N_y

where NxN_x and NyN_y are the number of columns and rows.

The total area of non-cell regions inside the module perimeter — the inter-cell spacing, any cell group spacing, and any perimeter white space. This is the area filled by the encapsulant and backsheet layers. For a unit-cell module configuration this value is zero.

Only shown when a frame is included. The total area occupied by the frame material around the module perimeter:

Aframe=(Fx1+Fx2)×Yinner+(Fy1+Fy2)×Xinner+Fx1Fy1+Fx1Fy2+Fx2Fy1+Fx2Fy2A_{\text{frame}} = (F_{x1} + F_{x2}) \times Y_{\text{inner}} + (F_{y1} + F_{y2}) \times X_{\text{inner}} + F_{x1} F_{y1} + F_{x1} F_{y2} + F_{x2} F_{y1} + F_{x2} F_{y2}

where XinnerX_{\text{inner}} and YinnerY_{\text{inner}} are the dimensions inside the frame (cells + spacing + perimeter) and Fx1F_{x1}, Fx2F_{x2}, Fy1F_{y1}, Fy2F_{y2} are the frame widths on each side.

The overall footprint of the module:

Amodule=Xtotal×YtotalA_{\text{module}} = X_{\text{total}} \times Y_{\text{total}}

The overall module dimensions. These are built up from the cell and spacing inputs:

Xtotal=Nx×(Wcell+Xsep)+(Gx1)×Xg+Xp1+Xp2+Fx1+Fx2X_{\text{total}} = N_x \times (W_{\text{cell}} + X_{\text{sep}}) + (G_x - 1) \times X_g + X_{p1} + X_{p2} + F_{x1} + F_{x2} Ytotal=Ny×(Hcell+Ysep)+(Gy1)×Yg+Yp1+Yp2+Fy1+Fy2Y_{\text{total}} = N_y \times (H_{\text{cell}} + Y_{\text{sep}}) + (G_y - 1) \times Y_g + Y_{p1} + Y_{p2} + F_{y1} + F_{y2}

where GxG_x and GyG_y are the number of cell groups (1 if cell groups are disabled), XgX_g and YgY_g are the group spacings, Xp1X_{p1}/Xp2X_{p2}/Yp1Y_{p1}/Yp2Y_{p2} are the perimeter values (0 if perimeter is disabled), and Fx1F_{x1}/Fx2F_{x2}/Fy1F_{y1}/Fy2F_{y2} are the frame widths (0 if no frame).