Simulating Bulk-Heterojunction Morphologies with 2D Slices

Bulk-heterojunction (BHJ) devices are often modeled as 1D effective-medium stacks. That approach is fast and excellent for many OPV use-cases. In this tutorial, we deliberately keep part of the lateral structure by taking 2D slices through a 3D BHJ morphology and solving a 2D drift–diffusion problem. You’ll learn how to import a morphology, discretize it efficiently, assign materials and mobilities, and run JV and field-map analyses.
1) Device setup & active-layer composition

Create or open the supplied BHJ morphology example. In the Layers editor, set three layers:
- Top contact (hole- or electron-selective, depending on convention).
- Active layer composed of two interpenetrating materials:
- Polymer (red): high hole mobility, low electron mobility.
- Complement (light-blue matrix): high electron mobility, low hole mobility.
- Bottom contact (the “other” selective contact).
This asymmetry creates an effective BHJ: electrons prefer the blue network, holes prefer the red network. Bandgaps and interfacial energetics can be refined later; here we demonstrate the concept with transport asymmetry.
2) Load morphology & generate a mesh

Open the Database tab → Shape database and choose a morphology (e.g., Morphology 1 for a fine structure or Morphology 3 for a coarse structure). If importing an external image/volume:
- Use Load image and apply a Threshold filter to obtain a binary phase map.
- Ensure the object is closed (no holes to the exterior) to form a well-defined domain.
- Click Build mesh to create the initial triangulation.
3) Reduce triangles for efficiency
The raw mesh can contain tens of thousands of tiny triangles, which is inefficient. Use Node/Triangle reduction (e.g., Reduce → Build mesh) to remove redundant elements, especially in flat/featureless regions. The tool performs multiple passes until no further reduction is possible, yielding a compact mesh that solves much faster while preserving morphology.
4) Assign materials & mobilities

In the material parameter panels:
- Polymer (red): high hole mobility, low electron mobility.
- Matrix (light-blue): high electron mobility, low hole mobility.
Ensure the red phase touches the hole-selective contact and the blue phase touches the electron-selective contact. If needed, slightly embed phases into the respective electrodes to guarantee percolating contact.
5) Run the 2D drift–diffusion simulation
Run the electrical simulation (dark or illuminated). Under illumination you should see a sensible JV curve (e.g., JV.dat
with current densities on the order of 102 A·m−2 and a realistic VOC), depending on your parameters. Use the Snapshots folder to inspect:
- Generation (G) heatmaps: where photons generate carriers in the polymer phase.
- Free electron/hole densities: 2D maps that reveal transport pathways.
- Voltage stepping: scroll through bias to study how densities evolve with field.
6) Analysis ideas
- Compare fine vs. coarse morphologies (Morphology 1–3) on JSC, VOC, and FF.
- Vary mobility contrast to explore percolation limits.
- Add excitons and SRH traps if you want to study recombination pathways in detail.
- Map carrier overlap regions to infer recombination “hot spots.”
Advanced options
- Excitons: enable in the physics panel to include generation–dissociation kinetics.
- Bandgap & offsets: refine energetic alignment for more realistic JV.
- Custom morphologies: paint/edit in the Shape database or import new images/volumes.
Notes & provenance
The example morphologies shown here are inspired by numerical phase-field constructions (fine → coarse tunability). We slice the 3D structures to obtain 2D electrical problems for speed and clarity. For deeper mathematical background on morphology generation and preconditioning strategies, see the Chemnitz group’s phase-field work (acknowledgement to “Martin & colleagues”).