Electron density contour map in a plane (molecular plane or three atoms)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- c
- Área
- data-visualization
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- 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. - 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.
- 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.
- Canvas. A header-only canvas in the
MoDiagramCanvaspattern: 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. - 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.
- Lenguaje dominante
- C
- Estrellas
- 10
- Forks
- 8
- Merge medio
- 21 min
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de FriendsofECCE/ECCE
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
FriendsofECCE/ECCE#336 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
FriendsofECCE/ECCE#339 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 28/100
FriendsofECCE/ECCE#338 · 2 comentarios ·
-
Basis Set Tool: periodic table cut off on the right; elements 110-118 still have placeholder namesAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 40/100
FriendsofECCE/ECCE#337 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 8/100
FriendsofECCE/ECCE#335 ·
Todos los issues de FriendsofECCE/ECCE
Issues similares
-
[Issue]: hipsparselt.h C API as shipped now requires C23 -- ONLY because of missing include or guardAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ROCm/rocm-libraries#13736 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
Los mantenedores suelen responder en 1 día
-
`inverse()` of a controlled `CUGate` drops the phase parameter γPosiblemente ocupada @rupasri118 la tomó hoy. Abiertobug mod: circuit
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Qiskit/qiskit#17223 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
PackageKit/PackageKit#1026 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
OpenPrinting/libcupsfilters#284 ·
Los mantenedores suelen responder en 1 día