Nuclear data web portal tools
navigate the slides with left and right keys
ShimPlotWell : an adventure in online nuclear data visualisation www.xsplot.com
J. Shimwell
This work was funded by the RCUK Energy Programme
[Grant number EP/P012450/1]
Live broadcast available on https://slides.com/shimwell/iaea/live
Motivation
- Required a quick method of generating macroscopic cross section plots for materials.
- Required a quick method of plotting microscopic cross section plots for different isotope and different reactions.
Web based plotting
Client side: JavaScript,
React JS, HTML5
Rest APIs
Online databases
Storage buckets
Hosted containers
Virtual machines
Cloud computing
Web-apps
RESTful API
An Application Program Interface (API) that uses HTTP requests to access data
url = www.a_random_web_address.com
json_query = {'protons':3,
'neutrons':4,
'evaluation':'jeff3.2'
}
request = url + '?' + json_query
code awaiting request written in
Node.js, Python, Java 8, C# or Go
A JSON response
response = {'count':12}
RESTful API - counting entries
Demonstration of a RESTful API designed to count the number of matching entries in a database of cross sections
Python scripts + PyMongo library + zappa deployment + AWS
Deployment of with Zappa
RESTful API - matching entries
Demonstration of a RESTful API designed to return the matching entries in a database
Python scripts + PyMongo library + zappa deployment + AWS
Serverless computing
Available from public cloud providers
- Amazon Web Services (Lambda functions)
- Google Cloud functions
- Microsoft Azure Cloud functions
Cloud native apps using serverless functions
- Continuous scalable
- Flexibility
- Cost effective (no pay for idle)
- Fully managed service
- Easily deployable
Online database
Adding to the database
Search for matching entries
Retrieving matching results
data = {"element_full": "antimony",
"element": "sb",
"nucleon_number": "118m",
"products": "nonelas",
"mt_number": "3",
"proton_number": "51",
"neutron_number": "67",
"incident_particle": "d",
"library": "tendl.2017"}
collection.insert(data)
search_dictionary={'element':'U'}
result = collection.find(search_dictionary)
{"results": [{"mt_number": "103", "proton_number": "92", "incident_particle": "h", "element": "u", "neutron_number": "135", "products": "p", "library": "tendl.2017", "nucleon_number": "227", "element_full": "uranium", "score": 0.0},
{"mt_number": "104", "proton_number": "92", "incident_particle": "h", "element": "u", "neutron_number": "135", "products": "d", "library": "tendl.2017", "nucleon_number": "227", "element_full": "uranium", "score": 0.0},
{"mt_number": "105", "proton_number": "92", "incident_particle": "h", "element": "u", "neutron_number": "135", "products": "t", "library": "tendl.2017", "nucleon_number": "227", "element_full": "uranium", "score": 0.0}...]}
....]
NoSQL databases gaining popularity in Web 2.0 due to ability to scale horizontally using clusters of machines and database "fragments"
Online database
Vertical Scaling
relational SQL databases
Horizontal Scaling
NoSQL
databases
Online database
Considerations:
- Cross browser / device compatibility
- Input / output data formats (JSON EPS SVG PDF)
- Customizability
- Range of charts available
- Learning curve
- Compatibility with web frameworks
- Performance
- Community support
JavaScript based web compatible plotting libraries.
Over 20 options including D3, Plotly, Chart.js, Fusion chart etc
Plotting libraries
Tritium breeding
Radioactivity - activation
Use of cloud functions together with NoSQL databases and online storage solutions.
A scalable solution
Current monthly cost £0.42
- 15GB of online nuclear data cross sections,
- 350MB online database,
- 3 Lambda functions for searching and retrieving data.
AWS Lambda costs
- Monthly free usage limits
- 1,000,000 requests
- Up to 3,200,000 s of compute
- Thereafter
- $0.20 per 1M requests
- 0.00001667 for every GB sec
A world wide solution
Locate services at AWS nodes or edge locations
to achieve the lowest latency
Javascript and HTML based website that queries rest APIs to find and plot data
Rest API for searching database
Nuclear data cross sections
Database describing available nuclear data
Webpage graphical user interface
Plotting library
Putting everything together
Rest API for retrieving xs data
Rest API for counting matches
Putting everything together again
Using Dash the Plotly framework for creating web applications
Rest API for searching database
Nuclear data cross sections
Database describing available nuclear data
Web-app graphical user interface
Plotting library
Rest API for retrieving xs data
Rest API for counting matches
Putting everything together
alternative framework options
Declarative
React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes.
Component-Based
Build encapsulated components that manage their own state, then compose them to make complex UIs.
Learn Once, Write Anywhere
We don’t make assumptions about the rest of your technology stack, so you can develop new features in React without rewriting existing code.
React can also render on the server using Node and power mobile apps using React Native.
Database are capable of representing preprocessed collections of nuclear data
Nuclear data on the fly
Producing nuclear data for every possible temperature for all isotopes and all reactions would lead to a large database.
Generating nuclear data on the fly as specified by the user would be a more suitable solution and avoid searching a huge databases
Introducing OpenMC nuclear processing capabilities
- Python based API
- Cross section extraction tools
- Microscopic cross sections for isotopes and element reactions
- Material construction tools
- Combine isotopes and elements
- Macroscopic cross sections for materials
- Unified energy grid allowing different reactions to be combined
- Nuclear data extraction from h5 files
- Fast access time to schema hdf5
- ACE file conversion to h5 files is available
Nuclear data on the fly
Containerized web-app with all the required software and data.
Nuclear data
Containerization
Putting everything together try 3
Conclusion
- Many options exist for creating a nuclear data web portal.
- Capability of web technology has increase while the cost of has decreased.
- Cloud computing offers world wide deployment of compute and data with options for scaling up.
- Development of web technologies such as JavaScript based plotting libraries allows improved interactivity.
- Producing a data centric web-app is achievable by connecting existing packages together. This reduces the in house development burden and the time to market.
IAEA
By Jonathan Shimwell
IAEA
For data vis meeting
- 727