Releases: idaholab/MontePy
Release 1.2.0
Features Added
- Added checking for additional input after the
datablock, and raising a warning if it exists (#525). - Allow multiple universe fills to accept 2D MNCP lattices (#719).
- Make
LatticeType.RECTANGULARandLatticeType.HEXAHEDRALsynonymous (#808). - Allow setting
cell.fill.universeswith a numpy array of universe IDs (#736).
Performance Improvement
- Optimized
$\mathcal{O}(N^2)$ scaling inmontepy.NumberedObjectCollection.request_numberby improvingNumberedObjectCollection.check_numberto$\mathcal{O}(N)$ (#786).
Bugs Fixed
- Fixed bug where lines that were the allowed length was raising a
LineOverRunWarningwhen read by MontePy (#517). - Added descriptive TypeError messages (#801)
- Fixed a bug that caused to write an extra termination line between the data block and the cell data section in the MCNP input. (#819) (#703).
Documentation
Added a web browser instance of jupyter to the website allowing testing out MontePy with no python installed locally (#796).
- Improved documentation for
NumberedObjectCollectionon Slicing behavior. (#798) - Reorganized Python API documentation. Some hyperlinks may be broken now (#828).
Deprecations
Contributors
What's Changed
- adopt spec 0 by @MicahGale in #781
- Drop numpy 1.26 and Python 3.11 by @MicahGale in #807
- Feature: Set cell.fill.universes with an array of IDs by @digvijay-y in #815
- Add support for python 3.14, and drop prior to 3.12 by @MicahGale in #820
- Rename hex by @tjlaboss in #822
- Remove python 3.9 dead code by @MicahGale in #824
- Stage release 1.2.0 by @MicahGale in #823
- Fixed how API docs are generated by @MicahGale in #828
- Add: boundary condition type to repr for surfaces by @digvijay-y in #831
- Make multiple universe fills accept < 3 dimensions by @digvijay-y in #835
- Update ipykernel requirement from ~=6.0 to >=6,<8 by @dependabot[bot] in #836
- Feature/525 detect empty lines by @kordusas in #819
- Bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #840
- Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #839
- Bump sigstore/gh-action-sigstore-python from f909491f27c345faa936da468c9ddfac57cbeb49 to 27dac9cce16c9883a0d4b51c9e0a520102d68016 by @dependabot[bot] in #838
- Improve NumberedObjectCollection.check_number by @digvijay-y in #841
- Update default importance values to 1.0 in Importance class and tests by @Kaos599 in #830
- Temporarily fixed parsing error with
FMESHby @MicahGale in #850 - Used semi-emperical mass formula to avoid testing with ridiculous nuclides by @MicahGale in #851
- Added Jupyter Lite to Website for in browser python. by @MicahGale in #843
- Stage release 1.2.0 by @MicahGale in #845
New Contributors
Full Changelog: v1.1.3...v1.2.0
Release 1.1.3
Dependencies
Pinned ipykernel to version 6 (#833).
Documentation
- Improved documentation for NumberedObjectCollections on Slicing behavior. (#798)
Bugs Fixed
- Fixed bug where lines that were the allowed length was raising a LineOverRunWarning when read by MontePy (#517).
- Added descriptive TypeError messages (#801)
Full Changelog: v1.1.2...v1.1.3
Contributors
Release 1.1.2
Code Quality
- Refactor
montepy.errorstomontepy.exceptions, to reflect that it also contains warnings (#764).
Deprecations
- Marked
montepy.errorsas deprecated, with aFutureWarning, usemontepy.exceptionsinstead. (#764).
Bugs Fixed
- Fixed parsing error where MontePy could not handle a fill matrix that was sparse (#601).
PRs
- Refactor montepy.errors -> montepy.exceptions by @tjlaboss in #778
- Bump sigstore/gh-action-sigstore-python from da62987e6c3e005b9835a67dd171c6e23ec6cfd6 to 047e8aa38a2a125cc0bf1332cfb9b53f9fdc0733 by @dependabot[bot] in #787
- Make it Possible to have sparse fill matrices by @MicahGale in #695
- Version 1.1.2 release by @MicahGale in #788
Full Changelog: v1.1.1...v1.1.2
Release 1.1.1
Features Added
- Added demonstration jupyter notebooks for working with Pin Cell and PWR assemblies in MontePy.
Bugs Fixed
- Fixed bug where surfaces created from scratch couldn't be accurately written out to the file (#652).
- Fixed bug where surface transformations couldn't be unset and exported properly (#711).
- Fixed bug where negative numbers were treated as valid by
append_renumber(#690). - Fixed bug that couldn't parse
SDEFby simply not parsing the input for the time being (#767). - Fixed parsing bug with
DE LOGstyle inputs by simply not parsing them for now (#767).
Pull Requests
#750, #767, #772, #773, #774, #747, #775
Contributors
Release 1.1.0
Features Added
- Added
Universe.filled_cells, a generator that yields the cells filled with that universe instance (#361). - Added
__eq__dunder method toUniverseto support equality comparisons (#361). - Changed general plane constants checker to support more than 9 constants (#761).
Bugs Fixed
- Fixed bug where MontePy would overly aggressively round outputs and remove the user's intent (#756).
- Fixed bug where a cell complement in the first five characters causes a spurious vertical mode detection (#753).
Contributors
Release 1.0.0
Changes
This release primarily focuses on redesigning the material interface. For details see the migration guide. Also the updated getting started guide shows how to use a lot of these new features.
Materials
The biggest change is that Material is no longer a wrapper of dictionary; it now behaves like a list.
This will make it a lot easier to do the following with materials:
- Query, edit, and add nuclides to a specific material
- Change what the default library, e.g.,
nlib=80cfor a specific material - Find all materials that contain certain nuclides
- Create a new nuclide intuitively: e.g.,
montepy.Nuclide("U-235m1.80c") - Materials are now iterable themselves.
General
This will also make it a lot easier to work with MontePy objects in general by:
- If a typo in made in an attribute an error raised. This prevents
cell.nuber = 5from having no effect. - Create new objects with their just their string version of the MCNP input. You can create a new cell with
montepy.Cell("1 0 -2 imp:n=1"). In a lot of cases it's a better idea to do:problem.parse("1 0 -2 imp:n=1").
Features Added
Material Interface Changes
- Redesigned how Materials hold Material_Components. See migration guide (#507)
- Made it easier to create an Isotope (now Nuclide):
montepy.Nuclide("H-1.80c")#505 - Improved material printing to avoid very long lists of components (#144)
- Allow querying for materials by components (#95)
- Added support for getting and setting default libraries, e.g.,
nlib, from a material (#369) - Added most objects to the top level so they can be accessed like:
montepy.Cell. - Made
Material.is_atom_fractionsettable (#511) - Added
Material.clearto delete all components from aMaterial(#655).
General Updates
- When a typo in an object attribute is made an Error is raised rather than silently having no effect (#508)
- Made NumberedObjectCollections act like a set (#138)
- Automatically added children objects, e.g., the surfaces in a cell, to the problem when the cell is added to the problem (#63).
- Added ability to parse all MCNP objects from a string (#88).
- Added function:
MCNP_Problem.parseto parse arbitrary MCNP object (#88). - Warnings are no longer raised for comments that exceed the MCNP maximum line length (#188).
- If an importance is set for a particle type not included in
modea warning is raised, not an exception now (#381). - Allowed any
numbers.Realornumbers.Integralfor when type is enforced (#679). - Combine multiple
LineExpansionWarningscoming from the same object on export (#198).
Bugs Fixed
- Made it so that a material created from scratch can be written to file (#512).
- Added support for parsing materials with parameters mixed throughout the definition (#182).
- Fixed bug where
surf.is_reflectingwould put an extra space in the output e.g.,* 1 PZ...(#697). - Fixed bug where setting a lattice would print as
LAT=None. Also switchedCellModifierto print in the cell block by default (#699). - Fixed bug that wouldn't allow cloning most surfaces (#704).
- Fixed bug that crashed when some cells were not assigned to any universes (#705).
- Fixed bug where setting
surf.is_reflectingtoFalsedid not always get exported properly (#709). - Fixed bug where setting multiple universes for a cell fill not being properly exported (#714).
- Corrected bug where blank importance objects can't be printed (#549).
- Fixed bug where the
i("x") andk("z") dimensions of multiple universe matrixfillswere switched (#726).
Breaking Changes
- Removed
Material.material_components(#507) - Removed
Isotopeand changed them toNuclide - Removed
MCNP_Problem.add_cell_children_to_problemas it is no longer needed.
Release 1.0.0a4
Bug fixes
- Fixed bug where
surf.is_reflectingwould put an extra space in the output e.g.,* 1 PZ...(#697). - Fixed bug where setting a lattice would print as
LAT=None. Also switchedCellModifierto print in the cell block by default (#699). - Fixed bug that wouldn't allow cloning most surfaces (#704).
- Fixed bug that crashed when some cells were not assigned to any universes (#705).
- Fixed bug where setting
surf.is_reflectingtoFalsedid not always get exported properly (#709).
Release 0.5.5
Bug Fixes
- Fixed parsing bug with sigma baryon particles (e.g.,
+/-) (#671).
Documentation Updates
- Various documentation updates from PyOpenSci review.
Release 1.0.0a3
Release 1.0.0a2
Second alpha-release of 1.0.0
Features added
- Warnings are no longer raised for comments that exceed the maximum line lengths (#188).
- Particle type exceptions are now warnings, not errors (#381).
- Allow any
Realtype for floating point numbers and anyIntegraltype for integer numbers during type enforcement (#679). - Added
strictoption tocontainsand changedcontainstocontains_all, andcontains_any.