3D Script for Calculating Jsc, Voc,FF and eta


Dear Sir,
I want to calculate Jsc, Voc,FF and eta for the DEVICE simulation but in 3D like the attaching script that calculates it in 2D. Could you help me to get the differences between the two scripts in 3D and 2D?
Thanks in Advance
solar_cell_2d_FOMs.lsf (1.5 KB)


Hi. The main difference between this 2D case and a 3D case would be that the length in the third dimension in the 2D case is coming from the “norm length” whereas for the 3D case it will some from the span of the solver region in that dimension.

So for example, in the above screenshot the command for calculating Ly should be replaced by,

Ly = getnamed("CHARGE","y span")*100;

Other than this the rest of the script would remain the same.

NOTE: Of course this is assuming that the orientation of the solar cell remains unchanged. If the illuminated surface of the solar cell is on the (say) XZ plane rather than the XY plane then you will need to divide I with Lx and Lz instead of Lx and Ly.


Dear Sir,

Could you help me to get the proper results for NW solar cell with active layer as GaAs?
I want to calculate the Voc, Jsc, FF and eta. I tried to get it with the attaching script.
Could you help me to find my mistake?
solar_cell_3d_GaAs.lsf (1.5 KB)


Hi. The script looks fine to me. If you believe that the plots you are getting are wrong then one thing to know is that the script makes two assumptions,

  1. The contact you are getting the data from should be the anode of the pn junction (i.e. the current should be negative at zero bias and positive at very high forward bias).

  2. The applied forward bias voltage should be large enough that there is a zero-crossing point in the I-V curve.

A sample for the I-V would be,