Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes #32

Merged
merged 32 commits into from
Jul 19, 2024
Merged

Fixes #32

merged 32 commits into from
Jul 19, 2024

Commits on Mar 2, 2024

  1. Introducing the kind checks.

    In principle, we can also not define the kinds, in that case it is up to the plugin
    to use the get_kinds() method of the StructureData to define kinds.
    mikibonacci committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    5f25772 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2024

  1. Configuration menu
    Copy the full SHA
    88db339 View commit details
    Browse the repository at this point in the history
  2. StructureData developer guide,

    missing: PropertyCollector and properties.
    mikibonacci committed Mar 3, 2024
    Configuration menu
    Copy the full SHA
    0d0d892 View commit details
    Browse the repository at this point in the history
  3. First profiling for the atomistic vs orm StructureData generation.

    Need more profiling for low-atoms systems, where it seems orm is better
    mikibonacci committed Mar 3, 2024
    Configuration menu
    Copy the full SHA
    3ce21d6 View commit details
    Browse the repository at this point in the history
  4. Comment on profiling

    mikibonacci committed Mar 3, 2024
    Configuration menu
    Copy the full SHA
    8073366 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6a77b2b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    5df4776 View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2024

  1. Adding the automatic kind generation.

    Missing: deactivate this automatism.
    mikibonacci committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    07b1fed View commit details
    Browse the repository at this point in the history
  2. Adding the allow_kinds input in the StructureData init.

    used to deactivate the automatic kind generation.
    mikibonacci committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    4341bcb View commit details
    Browse the repository at this point in the history

Commits on Mar 8, 2024

  1. Adding the to_legacy_structuredata method in atomistc.StructureData

    This is provided in temporary way in order to make easier to
    migrate the plugin gradually to this new Data.
    
    In a first step, we should use this method anytime the plugin uses
    the StructureData. Then add the properties setting.
    mikibonacci committed Mar 8, 2024
    Configuration menu
    Copy the full SHA
    0762995 View commit details
    Browse the repository at this point in the history

Commits on Apr 7, 2024

  1. - Adding the developer docs

    - Adding some bugfixing for the empty StructureData init.
    mikibonacci committed Apr 7, 2024
    Configuration menu
    Copy the full SHA
    cccc60f View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2024

  1. Configuration menu
    Copy the full SHA
    adb66ba View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2024

  1. Fixing aiidateam#16

    mikibonacci committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    b8aab3e View commit details
    Browse the repository at this point in the history

Commits on May 8, 2024

  1. This solves issue aiidateam#10

    This is implemented following the pydantic PR for aiida-core: aiidateam/aiida-core#6255
    mikibonacci committed May 8, 2024
    Configuration menu
    Copy the full SHA
    5dcd3c9 View commit details
    Browse the repository at this point in the history

Commits on May 15, 2024

  1. New implementation, following the pydantic PR.

    adding the `charges` properties, in the same way as we have the cell and
    pbc: hard-coding the getter and setter methods.
    
    For now, no data validation is there.
    mikibonacci committed May 15, 2024
    Configuration menu
    Copy the full SHA
    9c88cf2 View commit details
    Browse the repository at this point in the history
  2. Added the support to read charges also from ASE Atoms object.

    Added the map_kinds method, which return the mapping for the kinds as
    contained in the sites attribute.
    mikibonacci committed May 15, 2024
    Configuration menu
    Copy the full SHA
    4e646d1 View commit details
    Browse the repository at this point in the history
  3. Reverting back to non-pydantic implementation (Just removing the Model

    attribute from the StructureData class, nothing else changed)
    
    Added also the charges in the get_ase method.
    mikibonacci committed May 15, 2024
    Configuration menu
    Copy the full SHA
    035a050 View commit details
    Browse the repository at this point in the history

Commits on May 28, 2024

  1. Attaching the properties to the Sites.

    - code refactored: now `StructureData` and `Site` classes are in separated files, as well as the utils; `Kind` class is removed
    - `Site` class now contains the properties: `symbol`, `position`, `mass`, `charge`, `magnetization`, `kind_name`; `kind_name` should be removed. The properties are defined via the `property` decorator
    - `from_ase`, `to_ase` methods are added
    - `from_pymatgen`, `to_pymatgen` methods are added (**TOBE fixed to add also the magnetization**)
    - `from_file`, `to_file` methods are added. They rely on ASE `io.read` and `io.write` functions.
    - the `orm.StructureData` (the old one) now has a method `to_atomistic`
    - the `utils.py` file contains also the `to_kinds` and `get_kinds` functions, to automatically generate kinds. The user should only use the `get_kinds` function. **TOBE refined: kind names, and remove the other kinds methods from the StructureData class.**
    - the `StructureData` constructor now works in this way: we provide the pbc, cell. Then we should use the `append_atom` method afterwards. **TOBE discussed, I guess we cann add lists contaning site-wise value for properties**
    - slicing of structure data: defined the __getitem__ method, to obtain a sliced structuredata instance from the initial one.
    - TOBE added: `to_supercell` method.
    mikibonacci committed May 28, 2024
    Configuration menu
    Copy the full SHA
    2fac55f View commit details
    Browse the repository at this point in the history

Commits on May 29, 2024

  1. adding the possiblity to provide lists in the constructor BUT we are

    gonna change this by providing the possibility to provide list of sites
    (each of them is a dictionary), in the same format as they are
    represented in the database
    mikibonacci committed May 29, 2024
    Configuration menu
    Copy the full SHA
    8423553 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0bf175c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    406b2ed View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2024

  1. Configuration menu
    Copy the full SHA
    963be51 View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2024

  1. New StructureData and StructureDataMutable

    both inheriting from StructureDataCore.
    Added properties:
    - charge
    - magmom
    
    Relevant added methods:
    
    - from/to ASE/Pymatgen
    - to_legacy
    - to_structuredata
    - to_mutable_structuredata
    
    Added single page for API tutorial.
    
    Added tests for basic functionalities of both Structure Classes.
    mikibonacci committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    2f4e31c View commit details
    Browse the repository at this point in the history
  2. Allowing also magmom to be provided as floats: they

    are then stored as [magmom,0,0]
    mikibonacci committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    1950aa0 View commit details
    Browse the repository at this point in the history
  3. Improving mutability and minor changes.

    Mutability is improved by removing all the setter methods, both in
    StructureDataCore and Site classes. Moreover, lists and tuples are
    returned as np.array with flags.writeable=False, meaning that we cannot
    even modify the internal arrays/lists.
    
    Other minor changes:
    
    - Now in StructureDataCore we have to define the pbc, cell and sites
    keywords to initialise it (and so the other subclasses), this is
    helpful to then document the inputs.
    - `get_kinds` routine fixed to work also with magmoms (arrays)
    - docu and tests updated with respect to these changes.
    mikibonacci committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    28bb411 View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2024

  1. Adding type hinting and minor fixes

    removing mutable attribute in Site class
    adding a get_global_properties method in StructureDataCore,
    not used now but in the future to have a list of the properties in the
    database (not only attached to the single sites), to make easy to query
    wrt a property.
    mikibonacci committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    157bfcc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e491bfe View commit details
    Browse the repository at this point in the history
  3. Improving flexibility, automatic get_kinds and pymatgen fixings.

    Providing full flexibility in the StructureDataMutable while preserving same data structure of StructureData.
    
    - adding the parent and index when we initialise the Site class (i.e. when we access structure.sites). This is helpful to be able to change directly properties in the StructureDataMutable class.
    - in the same direction, we implemented the ObservedArray class which basically allows to trigger the setter methods of arrays/lists even if we modify only one element (for example: structure.sites[0].position[0] = 5). In this way, changes are written into the structure._data, which represents the real data stored in the instance.
    
    `get_kinds` method now is stable.
    
    Fixing pymatgen problems with oxi_state and magmom.
    mikibonacci committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    3ffc2ef View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    da6d9c2 View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2024

  1. This fixes aiidateam#27 and

    mikibonacci committed Jul 19, 2024
    Configuration menu
    Copy the full SHA
    2daeb1d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c9f9b6c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a58fa4a View commit details
    Browse the repository at this point in the history