Skip to content

Extended way of providing overrides #238

@giovannipizzi

Description

@giovannipizzi

Continuing from #206, I think we need to discuss a more general way of how to specify overrides for the codes.

This could be combined with the option to define code-agnostic overrides: e.g. if we want to change the smearing and k-points, should we do it via overrides (and define a common interface for such an override?).

E.g. the overrides could be a list of functions, and each implementation returns a generator of override functions, e.g.:

override_kpoints = get_override_kpoints(k_density=0.1, shift=(0,0,0))
override_smearings = get_override_smearings(type='gaussian', broadening=0.1)
apply_overrides(builder, [override_kpoints, override_smearings, ...])

(and we decide that the interface of get_override_kpoints and similar functions is the same for all plugins).

(And override function would be a function that gets a builder and returns a modified builder).

Just an initial idea to start discussion!

Metadata

Metadata

Assignees

No one assigned

    Labels

    topic/protocolIssues related to protocols and their overrides

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions