Skip to content

Support for libxc #237

@giovannipizzi

Description

@giovannipizzi

We're defining in #236 an Enum with a few known XC functionals (LDA, PBE, PBEsol). There is a suggestion to use libxc. However, maybe we should keep the simple Enum for the most commonly used names (like the ones above and maybe a few more that can be added in the future) for simplicity (otherwise one hast to remember that "PBE" is "gga_x_pbe gga_c_pbe", not immediately obvious from the long libxc list.

A few things to discuss:

  • should we keep an Enum, add a value LIBXC, and if this is provided, there is an additional 'string' input where the actual functional is specified?
  • Should we use the names (e.g. gga_x_pbe gga_c_pbe) or the integer IDs from libxc (101 - 130)? And how to separate the exchange and correlation parts when both are provided? (space or other)
  • Who's in charge for converting between the two in the plugin? (Practical example: QE wants the string, Abinit the integers).
  • Specifying libxc means we want actually to use the libxc implementation, or a plugin could e.g. detect that gga_x_pbe gga_c_pbe is PBE and switch to the internal PBE implementation (that should always be there, even if the code was compiled without libxc support)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions