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

Splitting ModelSystem and Cell #159

Open
ndaelman-hu opened this issue Dec 13, 2024 · 1 comment
Open

Splitting ModelSystem and Cell #159

ndaelman-hu opened this issue Dec 13, 2024 · 1 comment
Labels
question Further information is requested

Comments

@ndaelman-hu
Copy link
Collaborator

ndaelman-hu commented Dec 13, 2024

This issue was prompted by the Area C meeting on 13.12.2024

System Hierarchies and Particle Definitions

The current structure of ModelSystem leaves some unclarities open wrt structuring. Any ModelSystem instance contains subsections model_system and cell.

  • The intended use of model_system is to cover subsystems in the system hierarchy. What may constitute a subsystem is completely context-dependent. Atoms, monomers, material phases, device components, coarse-grained systems, ONIOM shells are equally valid, and may even be used intermittently, e.g. first by material phase, then by monomer: system -> slab + [polymer -> monomer] (where -> stands for "subsystem of").
  • cell specifies the positions, velocities, etc. of whatever kind of particle it refers to. It may also employ other sections, like AtomState, for more contextual definitions.

Structuring Options

This schema is now ambiguous regarding where to place the particle definitions (i.e. populate cell):

  • top level: all particles are defined at the top-level system. Subsystems only refer back to the particles via their indices.
  • bottom level: each leaf node in the system hierarchy defines its own particles. Supersystem nodes (i.e. nodes that aren't leafs) simply stay blank.
  • maximally referential: similar to "bottom level", but each supersystem node repeats the particle definitions of its own subsystems.
  • minimalistic referential: similar to "bottom level", but each supersystem node refers to the origins of its own subsystems.
  • free-style: no clear structure, fully up to the whims of the parser dev.

Under the current schema, all options are equally valid. I think we can all agree that we'd like to set a clearer guideline of which approach to use. We seem to prefer the "top level" approach overall.
This assumes, of course, that we won't run into any cases where we need the more generic "bottom level" and its alternatives. I think that we can safely split such cases over multiple entries, as they typically involve very different kinds of calculations. Feel free to provide counterexamples.

Suggested Solution

If we end up going with "top-level", we either:

  1. decouple cell from ModelSystem.
  2. have model_system be of a simpler type than ModelSystem.

Regardless of the implementation, we should still retain some common (intrinsic) properties for any subsystem, e.g. total charge, total mass. We should also support references to ModelMethod, to cover cases like ONIOM.

Sketch of the problem statement and suggested solutions.
Screenshot_from_2024-12-13_10-58-54

@ndaelman-hu ndaelman-hu added the question Further information is requested label Dec 13, 2024
@ndaelman-hu
Copy link
Collaborator Author

@EBB2675 do you anticipated any case where a subsystem may refer to an electronic section?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant