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

[WIP] Start working on next results reader #410

Closed

Conversation

drewejohnson
Copy link
Collaborator

The file serpentTools/next/results.py contains the in-progress ResultFile and ResultReader implementations. These are
heavily inspired by the current ResultsReader, originally developed by @DanKotlyar

The basic idea is similar to the DetectorFile and DetectorReader, where the latter can be re-used across multiple files and configured independently. Essentially you can do something like

>>> r = ResultReader()
>>> r29 = ResultReader(serpentVersion="2.1.29")
>>> justK = ResultReader(extras={"ABS_KEFF", })

and then the .read method on all these instances to process a file. The ResultFile class doesn't have a lot of functionality beyond storing the resdata, metadata, and dictionaries. The goal is to provide the same functionality as the existing ResultsReader.

There are still some tasks that I would like to resolve before merging, some more obvious than others. I will leave them here for posterity

  • Variable expansion using the groups (like "eig" to get eigenvalues -> {"ABS_KEFF", "COL_KEFF", ...}
  • Testing against the current ResultsReader
  • Implement more functionality on the ResultFile
  • Documentation
  • Add to serpentTools.next through import

Marking as [skip ci] to avoid builds as this will be left as a draft for discussion and transparency

Supports #335

The file serpentTools/next/results.py contains the in-progress
ResultFile and ResultReader implementations. These are
heavily inspired by the current ResultsReader, originally
developed by @DanKotlyar

The basic idea is similar to the DetectorFile and DetectorReader,
where the latter can be re-used across multiple files and configured
independently. Essentially you can do something like

```python
>>> r = ResultReader()
>>> r29 = ResultReader(serpentVersion="2.1.29")
>>> justK = ResultReader(extras={"ABS_KEFF", })
```

and then the `.read` method on all these instances to process a file.
The ResultFile class doesn't have a lot of functionality beyond storing
the resdata, metadata, and dictionaries. The goal is to provide the
same functionality as the existing ResultsReader.

There are still some tasks that I would like to resolve before merging,
some more obvious than others. I will leave them here for posterity

- [ ] Variable expansion using the groups (like ``"eig"`` to get
  eigenvalues -> ``{"ABS_KEFF", "COL_KEFF", ...}``
- [ ] Testing against the current ResultsReader
- [ ] Implement more functionality on the ResultFile
- [ ] Documentation
- [ ] Add to ``serpentTools.next`` through import

Marking as [skip ci] to avoid builds as this will be left as a draft
for discussion and transparency
@drewejohnson
Copy link
Collaborator Author

I still want to get to this, but it will need to be back-ported onto main

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant