Skip to content

Releases: idaholab/MontePy

Release 1.2.0

21 Nov 20:45

Choose a tag to compare

Features Added

  • Added checking for additional input after the data block, and raising a warning if it exists (#525).
  • Allow multiple universe fills to accept 2D MNCP lattices (#719).
  • Make LatticeType.RECTANGULAR and LatticeType.HEXAHEDRAL synonymous (#808).
  • Allow setting cell.fill.universes with a numpy array of universe IDs (#736).

Performance Improvement

  • Optimized $\mathcal{O}(N^2)$ scaling in montepy.NumberedObjectCollection.request_number by improving NumberedObjectCollection.check_number to $\mathcal{O}(N)$ (#786).

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)
  • 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 NumberedObjectCollection on Slicing behavior. (#798)
  • Reorganized Python API documentation. Some hyperlinks may be broken now (#828).

Deprecations

  • Dropped support for python 3.9 through 3.11, and numpy 1.26 in order to comply with SPEC 0 (#780).

Contributors

What's Changed

New Contributors

Full Changelog: v1.1.3...v1.2.0

Release 1.1.3

14 Oct 16:35

Choose a tag to compare

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

02 Aug 20:58

Choose a tag to compare

Code Quality

  • Refactor montepy.errors to montepy.exceptions, to reflect that it also contains warnings (#764).

Deprecations

  • Marked montepy.errors as deprecated, with a FutureWarning, use montepy.exceptions instead. (#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

07 Jul 19:59

Choose a tag to compare

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 SDEF by simply not parsing the input for the time being (#767).
  • Fixed parsing bug with DE LOG style inputs by simply not parsing them for now (#767).

Pull Requests

#750, #767, #772, #773, #774, #747, #775

Contributors

@MicahGale, @tjlaboss

Release 1.1.0

19 May 22:32

Choose a tag to compare

Features Added

  • Added Universe.filled_cells, a generator that yields the cells filled with that universe instance (#361).
  • Added __eq__ dunder method to Universe to 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

03 Apr 22:50
3c3704e

Choose a tag to compare

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=80c for 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 = 5 from 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_fraction settable (#511)
  • Added Material.clear to delete all components from a Material (#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.parse to 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 mode a warning is raised, not an exception now (#381).
  • Allowed any numbers.Real or numbers.Integral for when type is enforced (#679).
  • Combine multiple LineExpansionWarnings coming 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_reflecting would put an extra space in the output e.g., * 1 PZ... (#697).
  • Fixed bug where setting a lattice would print as LAT=None. Also switched CellModifier to 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_reflecting to False did 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") and k ("z") dimensions of multiple universe matrix fills were switched (#726).

Breaking Changes

  • Removed Material.material_components (#507)
  • Removed Isotope and changed them to Nuclide
  • Removed MCNP_Problem.add_cell_children_to_problem as it is no longer needed.

Release 1.0.0a4

23 Mar 06:03
3bbb34f

Choose a tag to compare

Release 1.0.0a4 Pre-release
Pre-release

Bug fixes

  • Fixed bug where surf.is_reflecting would put an extra space in the output e.g., * 1 PZ... (#697).
  • Fixed bug where setting a lattice would print as LAT=None. Also switched CellModifier to 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_reflecting to False did not always get exported properly (#709).

Release 0.5.5

20 Mar 19:04

Choose a tag to compare

Bug Fixes

  • Fixed parsing bug with sigma baryon particles (e.g., +/-) (#671).

Documentation Updates

  • Various documentation updates from PyOpenSci review.

Release 1.0.0a3

15 Mar 16:33

Choose a tag to compare

Release 1.0.0a3 Pre-release
Pre-release

Features Added

  • Particle type exceptions are now warnings, not errors (#381).
  • Added Material.clear to Material to clear out all nuclides (#665).
  • Avoided multiple LineExpansionWarnings coming from the same object on export (#198).

Release 1.0.0a2

11 Mar 00:02

Choose a tag to compare

Release 1.0.0a2 Pre-release
Pre-release

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 Real type for floating point numbers and any Integral type for integer numbers during type enforcement (#679).
  • Added strict option to contains and changed contains to contains_all, and contains_any.