{ "info": { "author": "Dr. Dan Dwyer", "author_email": "dadwyer@lbl.gov", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Scientific/Engineering :: Physics" ], "description": "OKLO: A toolkit for modeling nuclides and nuclear reactions\n===========================================================\n\nThe OKLO package provides a set of convenient tools for modeling\nnuclides and the reactions between them. It provides methods to\nuniquely identify the known nuclides, define unique reactions which\nallow transitions from one nuclide to another, associate arbitrary\nuser-specified data to these objects, and treat collections of\nnuclides and reactions as a single network.\n\nWhile this package was initially designed for the purpose of\ncalculating the flux of antineutrinos emitted by nuclear reactors, it\nis designed in a generic fashion for a broad range of applications\n(e.g. solar physics, supernova physics, etc.).\n\n\nInstallation:\n=============\n\nInstallion is most convenient via the pip utility:\n::\n $ pip install oklo\n\nDescription:\n============\n\nHere follows a brief description of the core tools provided by the\nOKLO package.\n\nNuclide:\n--------\n\nA nuclide is a unique nuclear state identified by the number of\nprotons and number of neutrons in the nucleus, as well as an optional\nmetastable isomeric energy level. Each nuclide serves as a data\n'whiteboard'. Users can associate arbitrary data with a nuclide using\na standard (key, value) approach.\n::\n >>> from oklo.core.ids import NuclideId\n >>> from oklo.core.nuclide import Nuclide\n >>> C_12_id = NuclideId(Z=6,A=12,M=0) # Create unique ID for Carbon-12\n >>> C_12 = Nuclide(nucl_id=C_12_id) # Create nuclide object\n >>> C_12.Z\n 6\n >>> C_12.A\n 12\n >>> C_12.M\n 0\n >>> C_12.N\n 6\n >>> C_12.name\n 'Carbon_12'\n >>> C_12.element_name\n 'Carbon'\n >>> C_12.element_abbrev\n 'C'\n >>> C_12['current_abundance'] = 0.8 # Associate user-defined data\n >>> C_12['current_abundance']\n 0.8\n\n\nReaction:\n---------\n\nA reaction is a unique type of nuclear transition between nuclides,\nsuch as the beta decay of 12B to 12C. Each reaction serves as a data\n'whiteboard'. Users can associate arbitrary data with a reaction\nusing a standard (key, value) approach.\n::\n >>> from oklo.core.ids import NuclideId, ReactionId\n >>> from oklo.core.defs import ReactionType\n >>> from oklo.core.reaction import Reaction\n >>> B_12_beta_decay_id = ReactionId(init_nucl_id=NuclideId('Boron_12'), \\\n reac_type=ReactionType.BetaDecay)\n >>> B_12_beta_decay = Reaction(reac_id=B_12_beta_decay_id)\n >>> B_12_beta_decay.initial_nuclide_id.name\n Boron_12\n >>> B_12_beta_decay.final_nuclide_id.name\n Carbon_12\n >>> from oklo.core.units import Hz\n >>> B_12_beta_decay['current_rate'] = 1.0 * Hz\n >>> B_12_beta_decay['current_rate'] / Hz\n 1.0\n\n\nReactionNetwork:\n----------------\n\nA ReactionNetwork is a collection of nuclides and reactions relating\nthese nuclides. This class serves as a standard entry point for\ncalculation of quantities of interest. For example, users can iterate\nover the nuclides and reactions within the network to calculate total\nquantities for the network.\n\nThis class is effectively a 'graph' data structure in computer science\nlingo, where a set of nodes (nuclides) are connected by a set of links\n(reactions).\n\nPhysical Models (NuclideModel and ReactionModel):\n-------------------------------------------------\n\nA physical model is a user-defined class which defines rules for\nautomating the addition of user-specified data to the whiteboards\nNuclides or Reactions. For example, you could specify the relative\nabundance of each nuclide present within the sun according to your\npreferred physical model.\n\nUsers should define their own physical model class which inherits from\neither NuclideModel or ReactionModel base classes, and implements a\n'process(nuclide)' or 'process(reaction)' function which adds the\nappropriate data to the whiteboard based on the unique nuclide or\nreaction ID.\n\nFactories (NuclideFactory and ReactionFactory):\n-----------------------------------------------\n\nFactories provide a convenient method to populate a ReactionNetwork\ngiven one or a set of physical models.\n\nExamples:\n=========\n\nFor a more advance example, demonstrating the use of models and\nfactories, execute the following::\n $ python -i oklo/examples/antineutrino_spectrum_endf.py\n\nThis builds a reaction network for modeling a nominal commercial PWR\nreactor. The network is populated with tabulated nuclear data on\ncumulative fission yields and beta decay spectra. The network is then\nused to estimate the average antineutrino energy spectrum emitted per\nfission in the reactor.\n\nIf matplotlib is installed, then associated figures will also be\ngenerated.", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dadwyer/oklo", "keywords": "physics nuclear reactor beta decay neutrino", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "oklo", "package_url": "https://pypi.org/project/oklo/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/oklo/", "project_urls": { "Homepage": "https://github.com/dadwyer/oklo" }, "release_url": "https://pypi.org/project/oklo/0.1/", "requires_dist": null, "requires_python": null, "summary": "A toolkit for modeling nuclides and nuclear reactions.", "version": "0.1" }, "last_serial": 1706701, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "ac7c12c4ba24be96f0f67fda7b29330a", "sha256": "362f4696f06faa2c8d732c6dfc2f9647e1f2f18b6034e7102c7dc216164c60b7" }, "downloads": -1, "filename": "oklo-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ac7c12c4ba24be96f0f67fda7b29330a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 626232, "upload_time": "2015-09-03T16:34:42", "url": "https://files.pythonhosted.org/packages/ee/d5/e2e967c2e272ef236ea036e3956eb81456700affb72539ddb8726f030ef8/oklo-0.1-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ac7c12c4ba24be96f0f67fda7b29330a", "sha256": "362f4696f06faa2c8d732c6dfc2f9647e1f2f18b6034e7102c7dc216164c60b7" }, "downloads": -1, "filename": "oklo-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ac7c12c4ba24be96f0f67fda7b29330a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 626232, "upload_time": "2015-09-03T16:34:42", "url": "https://files.pythonhosted.org/packages/ee/d5/e2e967c2e272ef236ea036e3956eb81456700affb72539ddb8726f030ef8/oklo-0.1-py2.py3-none-any.whl" } ] }