Home Examples Screenshots User manual Bluesky logo
OghmaNano Simulate organic/Perovskite Solar Cells, OFETs, and OLEDs DOWNLOAD

3D drift–diffusion: doped GaAs resistor

Doped GaAs block with left-to-right acceptor gradient; top and bottom contacts indicated.
Doped GaAs block with a left→right acceptor profile; contacts on opposing faces.

This tutorial demonstrates how to go from a quick 2D drift–diffusion setup to a full 3D electrical simulation for a simple—but very instructive—device: a doped gallium-arsenide (GaAs) resistor. It is ideal for teaching and example sheets: the physics are clean, the JV is near-linear, and the outputs nicely illustrate how potentials and currents distribute in space.

1. Create the 2D GaAs resistor

  1. New simulationGaAs demosDoped wire / resistor.
  2. Geometry: start in 2D with mesh points along X and Y. (Keep Z disabled for now; we’ll enable it later.)
  3. Doping: define an acceptor profile that increases from left→right (p-type gradient). The “wire” is just a rectangular GaAs block with this gradient applied.
  4. Contacts: opposing faces act as electrodes (top/bottom or left/right depending on your axis convention). One will be swept in voltage while the other is held at 0 V.
  5. Recombination: enable simple SRH (analytic form). No dynamic traps are required for this demo.

2. Run & sanity-check (2D)

Solver log showing step times, contact voltages, matched contact currents, and residuals ~1e-9.
Healthy run: matched contact currents and residuals ≲10−9.

Click Run. In the log:

Open Output:

3. Extend to 3D: mesh & contacts

3D mesh with Z enabled; contacts resized to finite width and offset on opposing faces.
Enable Z, then size/offset finite-area contacts in 3D.

Enable the Z dimension in the mesh editor. Choose modest sizes first: Nx × Ny × Nz = 5 × 5 × 5. Runtime/memory scale roughly as \( \mathcal{O}(N_x N_y N_z) \approx \mathcal{O}(N^3) \), so 10×10×10 is fine on a laptop, but 20×20×20 or more can get heavy quickly.

In 3D, contacts are finite-area objects (not implicitly spanning the full face as in 2D). Open the Dimension/Contact editor and:

4. Run & analyze (3D)

3D snapshots of Jn_z and Jp_z showing current entry/exit from offset contacts across voltage.
Directional currents: Jn,z and Jp,z vs. bias with offset pads.

Run the 3D simulation (keep the mesh modest). Inspect:

5. Practical tips & pitfalls

Contact editor showing full-face and partial-pad configurations with offsets.
Contact editor: full-face vs. partial pads with offsets.