Conversation
7a72b38 to
bc28a96
Compare
335276c to
b40ba66
Compare
rprospero
left a comment
There was a problem hiding this comment.
Looks clearer than I'd expected from anything with CIF attached to it. I have some general comments and a few minor suggestions, but the only major concern is establishing a FilePath type in the long term.
trisyoungs
left a comment
There was a problem hiding this comment.
I think this is a great start for the new CIF handling in Dissolve2. From looking through the nodes as they stand I think we should move away from operating on the context and passing it as a pointer, and move towards passing a proper CIFContext object around, each node making a copy of the input context, modifying it, and sending its own CIFContext as an output. If we do this then we can also have a pseudo-Configuration generated within each CIFContext at each stage of the graph.
This work aims to encompass much of the existing functionality of the
CIFHandlerandImportCIFDialoginterfaces. It does this via passing a pointer to aCIFContext(which is a node type alias forCIFHandler) between various nodes.Together these form a sort of CIF-node "family".
CIFLoaderNode: Initialises aCIFContextobject and reads into it the contents of a .cif file.CIFMolecularSpecies: Recieves and stores aCIFContext *, generating from it the detected molecular species and supercell configuration as output parametersCIFSuperMolecule: Recieves and stores aCIFContext *, generating from it the supercell speciesCIFPeriodicFramework: Recieves and stores aCIFContext *, generating from it the unit cell species and configuration as output parametersCIFAtomicOptionsNode,CIFBondingOptionsNode, andCIFNETAOptionsNodeoperate on the context pointer and apply various settings to it (for instanceremoveAtomics,useCIFBondingDefinitions, andsetMoietyRemovalNetaetc.`SetCIFAtomGroupActivitytakes theCIFContext *and allows for activation/deactivation of chosenCIFAssemblyCIFAtomGroupinstances.