Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

Electron density contour map in a plane (molecular plane or three atoms)

未關閉
#215 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
5/5
預估耗時
3-5 天
新手友好度
35/100
Issue 類型
功能
描述清晰度
描述清楚
活躍度
活躍
技術堆疊
c

研究方向

Start by reading ComputeMoCmd in src/viz and the MoDiagramCanvas pattern; the issue calls for a wx-free evaluator library, CLI, tests, a headless render tool and an MO-panel integration. Run the evaluator and rendering tests, then compare point values and plane plots against Multiwfn. Done means the specified density, plane, contour, canvas and export workflows pass the listed numerical and headless-render checks.

由索引模型根據 Issue 內容生成。

描述

enhancement

Summary

A 2D contour map of the electron density (and spin density) in a chosen plane, the classic textbook figure. ECCE already computes the density from each calculation's MO coefficients, occupations and basis (ComputeMoCmd, MO panel "Density" / "Spin Density"), but only on an axis-aligned 3D grid for isosurfaces. The MO panel's "Contour" style draws a single isovalue on the 3D surface, not a map in a plane.

The new application icon (benzene in-plane density, log-spaced contours, viridis) shows this kind of figure. It is currently drawn from a model density; once this feature exists, the icon should be regenerated from ECCE's own output.

Design

Per the project rule, analysis goes in a wx-free library with a CLI and tests; the panel only gathers options and draws.

  1. Point evaluator. Move the density evaluation out of ComputeMoCmd (src/viz) into a wx-free library: ρ(r) = Σ_μν P_μν φ_μ(r) φ_ν(r) from the stored MOs and occupations, at arbitrary points. The 3D grid command then calls the same code, so there is one implementation.
  2. Plane. Default: the least-squares plane through all atoms, used when it fits (RMS deviation below a threshold, e.g. benzene, water). Otherwise the plane through three atoms the user selects. In-plane axes from the principal axes; a margin around the projected atoms.
  3. Contours. Marching squares on a plane grid (resolution about 0.05 Å, adjustable). Log-spaced levels by default (the density spans orders of magnitude), with a linear option, a level count, and limits. Contours of the core density are capped, so the nuclei do not turn into solid blots.
  4. Canvas. A header-only canvas in the MoDiagramCanvas pattern: contour lines in viridis, atom positions and labels, a scale bar in Å, and a colour key giving the level values (e/bohr³). It must be paintable to a bitmap headlessly, with a render tool and a test.
  5. Panel. In the MO panel, beside the isosurface controls: field (density, spin density, a selected MO with signed contours, dashed for negative), plane choice, levels. Export to PNG/SVG.

Verification

  • Evaluator: the density integrated over a large 3D grid gives N electrons (e.g. 10 for water, 42 for benzene) to within grid error. Cusps sit at the nuclei.
  • Against an independent oracle: Multiwfn's plane contour plots of the same Gaussian and ORCA outputs, and point values of ρ at chosen points compared numerically, not by eye.
  • Headless renders for water, benzene and an open-shell case (spin density), reviewed as PNGs.
  • A plane through three atoms of a non-planar molecule (e.g. through H–C–H of CH₄).

Estimate

2–3 days, most of it the evaluator extraction and the oracle comparison.

主要語言
C
星號
10
分支
8
平均合併
21 分鐘
30 天內合併 PR
1

環境準備

這個專案沒有提供開發容器、Dockerfile 或貢獻指南,環境需要你自己搭建:先看它的 README,通用步驟見我們的新手貢獻指南。

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

FriendsofECCE/ECCE 的其他 Issue

查看 FriendsofECCE/ECCE 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。