Translate the provided English OghmaNano HTML/PHP page into Farsi (fa) by performing a strict, diff-only transformation: preserve all HTML, PHP, structure, order, IDs, classes, scripts, includes, include count, include locations, tables, menus, analytics, schema, and layout exactly as-is; do NOT add, remove, duplicate, reorder, or re-insert any PHP include statements; change to ; if and only if the English page does not already set $lang or include menu_top.html, then immediately after insert "$lang='fa'; include($_SERVER['DOCUMENT_ROOT'].'/menu_top.html');", otherwise do not add a second include; in the $meta array translate title and description faithfully (no SEO rewriting), change canonical to the /fa/ version, ensure 'lang' => 'fa', and ensure 'i18n_key' exists and is set deterministically to the canonical path WITHOUT the scheme/host and WITHOUT the /fa prefix (i.e., i18n_key = parse_url(canonical,PHP_URL_PATH) with any leading '/fa' removed); keep all other existing meta keys unchanged and do not add or remove any others; translate all visible text into professional, technical Farsi without adding, expanding, enriching, summarising, editorialising, or improving content; use standard physics terminology (drift–diffusion, SRH, transfer-matrix, etc.) while keeping scientific abbreviations (JV, OLED, OFET, EQE, SRH) in Latin characters; convert every localized_url(...,'en') to localized_url(...,'fa') and do not alter other URLs; translate headings, lists, buttons, and duplicated mobile/desktop sections consistently while keeping IDs, styles, emojis, symbols, punctuation, line breaks, and formatting exactly matching the English source; translate “Translations” to “ترجمه‌ها” and keep get_translations(0) unchanged; do NOT add structured data (JSON-LD), schema, emojis, new sections, new text, new links, new scripts, or metadata that does not already exist in the English source EXCEPT adding 'lang' and the deterministic 'i18n_key' as defined above; output a complete valid HTML file only, with no commentary or explanations. If the English source contains any JSON-LD/schema/script blocks (including application/ld+json), keep them byte-identical (do not translate, do not change URLs, do not add/remove fields), and if the English source does not contain them, do not add them. Place the answer in an html code block. Large-area Contact Simulation – Part C | OghmaNano Tutorial
خانه نمونه‌ها اسکرین‌شات‌ها راهنمای کاربر لوگوی Bluesky YouTube
OghmaNano شبیه‌سازی سلول‌های خورشیدی آلی/پروسکایتی، OFETها و OLEDها دانلود

Large-area device simulation – Part C: Editing the contact geometry (shape and size)

In Part B we treated the contact geometry as fixed and explored how the resistive losses depend on material properties and scan settings. In practice, however, the most powerful knob you have is geometry: the mesh pattern, its pitch, its line width, and the device size it must serve.

In this section we will modify the physical structure of the contact. This includes swapping between different honeycomb patterns, editing the underlying mesh dimensions, and resizing the simulated substrate.

💡 Tip: If you want to generate your own mesh patterns from 2D images (e.g. from a printed mask, microscope image, or CAD export), see /manual/tutorial-shape-db-part-a.html. This is the workflow used to populate the Shape Database referenced below.

Step 1: Open the Object Editor for the metallic mesh

In the 3D view, right-click the hexagonal metallic mesh and choose Edit object (see ??). This opens the Object Editor (??).

Right-click menu on the hexagonal mesh highlighting Edit object
Right-click the mesh and select Edit object.
Object editor showing colour, optical material, and object shape from the shape database
The Object Editor for the metallic mesh. You can change attributes (colour/alpha), swap materials, and select the underlying object shape.

This editor lets you change almost every aspect of the object. However, keep in mind that this mesh sits within a layered epitaxy structure, not in free space, so some options are naturally constrained by the layer stack.

Step 2: Changing the honeycomb pattern via the Mesh Editor

In the Object Editor, find Object shape. The mesh is currently pulled from the Shape Database (e.g. honeycomb). Click the three dots next to Edit to open the Mesh Editor (see ??).

Mesh editor showing shape from database honeycomb and xyz size fields
The Mesh Editor. The geometry is pulled from the Shape Database and scaled using the xyz size fields (in metres).

In the Mesh Editor, click the three dots on the right of Shape from database. This opens the Shape Database browser (see ??). In this example, we navigate to a folder containing several honeycomb variants (used previously for paper figures) and select one.

Shape database browser showing multiple honeycomb variants
Choose an alternative honeycomb pattern from the Shape Database. After selection, the 3D structure updates immediately.

Not all shapes make physical sense for contacts. A contact mesh must form a connected conducting network that interfaces sensibly with the polymer beneath it. Decorative or free-form shapes (e.g. gaussians, teapots) generally do not form a valid current-collection structure. Honeycomb-type patterns are a natural starting point because they create a connected mesh with repeated cells.

If you want to create your own patterns (for example from a printed mask image), follow the workflow in /manual/tutorial-shape-db-part-a.html and then import them into the Shape Database.

Step 3: Changing the size of the device

You can change the overall device size by clicking Substrate xz-size in the left-hand ribbon of the main window. This opens the dimension editor shown in ??.

Main window showing substrate xz-size editor and an enlarged substrate
Changing the substrate size. Here the x and z dimensions have been increased, enlarging the simulated area.

In the example above, the substrate size has been doubled. You will immediately notice something important: the substrate grows, but the honeycomb mesh does not automatically follow. This is because the mesh is a 3D object whose absolute dimensions are set in the Mesh Editor (see ??), not by the substrate size control.

So resizing a device is a two-step operation:

Conclusion: A general workflow for complex 3D contact problems

You have now seen a complete workflow for simulating large-area transparent/metallic contacts:

This approach is not limited to solar cells. Any device where current must spread laterally through a resistive layer—OLED panels, electrochromics, sensors, flexible electronics, large-area photodetectors—can be treated in the same way. The key is that the physics is dominated by resistive current collection, making a 3D circuit representation both appropriate and computationally efficient.

👉 Next step: Apply this workflow to your own contact patterns by importing shapes into the Shape Database and setting resistivities to match your measured materials.