Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Vibrations table: ECCE assigns mode symmetry and describes each mode (IR/Raman teaching)

Open
#367 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
c
Domain
desktop, testing

Research direction

Start by reading NModePanel.C and tracing the existing symmetry code and normal mode data for the supported chemistry codes. The issue calls for a wx-free analysis library with a command-line test; begin by checking how those modes and point-group operations are represented. Done means symmetry and activity assignments plus internal-coordinate mode descriptions match the listed textbook examples and program output.

Written by the indexing model from the issue text.

Description

For teaching, the vibration table should say what each IR/Raman peak is. Today it has Frequency, Sym, Infrared and Raman, and Sym is filled only by codes that print mode symmetry: Gaussian and MOPAC. ORCA, NWChem and ECCE-QM print none, so the column shows mode numbers. (The comment in NModePanel.C that says orca.desc extracts VIBSYM is wrong.)

1. Symmetry, for every code

  • Apply the molecule's point-group operations (existing symmetry code) to each mode's displacement vector and read the irrep from the characters.
  • Add IR active / Raman active from the character table, so a mode with no IR intensity is explained.
  • Where the code prints labels as well (Gaussian, MOPAC), the test compares ours with theirs.

2. A Mode column describing the motion

  • Project each normal mode onto internal coordinates (bond stretches, angle bends, out-of-plane bends, torsions) and show the dominant ones with their share, e.g. C=O stretch 86%, H–O–H bend.
  • Equivalent coordinates moving in phase are symmetric, out of phase antisymmetric (O–H stretch, sym. / antisym.).
  • Bond names follow the Builder's bond orders (C=O, C≡N).

Layout: the analysis goes in a wx-free library with a command-line test; the panel only shows the columns.

Checks: textbook assignments for H2O, CO2, NH3, CH4, HCHO and benzene, and the mode descriptions ORCA and NWChem print where they exist.

Codes: every code that gives normal modes (Gaussian 16, ORCA, NWChem, MOPAC, ECCE-QM).

Labels on the plotted peaks are not part of this.

Dominant language
C
Stars
10
Forks
8
Avg merge
21m
Merged PRs (30d)
1

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from FriendsofECCE/ECCE

All issues in FriendsofECCE/ECCE

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.