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

CP2K: default Hirshfeld charges (Gaussian shape functions) are unphysical for ionic solids; generate SHAPE_FUNCTION DENSITY or label them

Open
#669 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
42/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
c
Domain
data, desktop

Research direction

Start by tracing how ECCE builds CP2K inputs when charge analysis is requested, then find how the Viewer labels or displays CP2K Hirshfeld charges. The issue identifies the desired density-based SHAPE_FUNCTION option and an approximate label or hiding behavior for default Gaussian-shape results. Done means charge requests use the specified density-based analysis and default-run charges are labeled or hidden; the payload names no files or tests.

Written by the indexing model from the issue text.

Description

Andy's CP2K run 03_SOMS_ord1_final_PBE-D3BJ_700Ry_rel100_forces (sodium niobate, GTH-q9 Na, PBE-D3BJ): CP2K's own output gives Mulliken Na +0.82 but Hirshfeld Na -1.02, Nb -0.41, O +0.24 (Hirshfeld table: Ref Charge 9.000, Population 10.02). The input has no &HIRSHFELD section, so CP2K used its default analysis (SHAPE_FUNCTION GAUSSIAN, radii from tables), which is a crude promolecule and fails for ions with semicore pseudopotentials. ECCE parses the table correctly; the numbers are CP2K's. Wanted: when ECCE's CP2K input asks for charges, write &PRINT &HIRSHFELD SHAPE_FUNCTION DENSITY &END (atomic reference densities; optionally SELF_CONSISTENT T for iterative Hirshfeld), and in the Viewer label CP2K Hirshfeld charges from a default (Gaussian-shape) run as approximate, or hide them.

Dominant language
C
Stars
10
Forks
8
Avg merge
2h 39m
Merged PRs (30d)
9

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.