Metadata-Version: 2.4
Name: ramp-batman
Version: 0.0.2
Summary: Package for solving reactions and decays by Bateman's equation
Author-email: Nuclear RAMP team <nuclear.ramp.dev@gmail.com>
License: MIT License
        
        Copyright (c) 2026 Eshed Magali
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Topic :: Scientific/Engineering
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: dask
Requires-Dist: matplotlib
Requires-Dist: more-itertools
Requires-Dist: multipledispatch
Requires-Dist: networkx
Requires-Dist: numpy
Requires-Dist: ramp-coremaker
Requires-Dist: ramp-endf
Requires-Dist: ramp-isotopes
Requires-Dist: ramp-reactions
Requires-Dist: scipy
Requires-Dist: toolz
Provides-Extra: test
Requires-Dist: hypothesis; extra == "test"
Requires-Dist: pytest; extra == "test"
Dynamic: license-file

# Burnup Code
This code was designed to solve the Bateman's equation:
dN/dt = (Lambda+React*Phi)*N
where N is the vector of nuclide density for each nuclide in each spatial cell,
Lambda is the decay model matrix, that corresponds to the rate of decay of each
nuclide to other nuclides, React is the reaction model matrix, that corresponds
to the rate of transmutation of each isotope into other isotopes due to the
neutron flux, and Phi is the absolute flux level in the core that has to be
somehow normalized to make the reaction rates fit the actual physical processes.

## Design Goals
The design goals for this package are:
1. The code must be parallelizable to more than one computer (achieved).
1. The code must pass benchmarks (partially achieved).
1. Code runtime must be in the few minute scale. CPU time may be up to an hour 
   for a large core. (Achieved! Full core at 7 minutes with 32 CPUs)
1. Code must be stable for large time steps. (Partially Achieved, depends on 
   power renormalization requirements.)
1. Code must be abstract and use simple external API. (Under Review)
1. Isotopic data must allow for both fudged and real database built data. (Achieved!)
1. Code must pass high standards (Under Review and Not Finished):
    a. Code must be fully documented. Type hinting counts for simple functions.
    b. Code must be modular and modules should be as implementation independent 
       of one another as possible.
    c. Code must pass code review regularly and Major versions in flying colors.
    d. Test coverage must be 90%+, and tests must include parallel tasked cases. 
       Mock tests are required. Multiple input tests required for numerical tests.
    e. Code must be easily installable.

## Ways to Contribute
1. We need to work on proper automatic documentation. Currently not done.
1. Code needs better quality and refactoring. You're welcome to try your hand.
1. Other exponentiation methods than CRAM could potentially be faster. Please
   try your hand at them.
1. The code currently takes explicit time steps with constant flux as the base
   method. The academic papers speak of using a predictor-corrector model to
   extend the correctness with lower cost. This should be investigated to reduce
   the number of internal steps, or a Lie algebra method can be used as well.
1. Benchmarks for this code are required.
