180 likes | 331 Views
DANSE Diffraction Software for the SNS: DiffDANSE. S.J.L. Billinge Dept. Physics and Astronomy Michigan State University. Outline. “Local” Goals of DiffDANSE Proposed scope and tasks Preliminary work Communications. DiffDANSE goals.
E N D
DANSE Diffraction Software for the SNS: DiffDANSE S.J.L. Billinge Dept. Physics and Astronomy Michigan State University
Outline • “Local” Goals of DiffDANSE • Proposed scope and tasks • Preliminary work • Communications
DiffDANSE goals • Make diffraction data analysis software that SNS users (and other people) want to use! • Make sure that it has a long life
DiffDANSE goals • Make diffraction data analysis software that people want to use! • Solves people’s scientific problems, opens new scientific horizons • Shortens time to publication • Flexible • Easy to use • Good user documentation • Robust and Stable
DiffDANSE goals • Make sure that it has a long life • Maintainable (esp. by others, i.e., SNS!) • Good developer documentation • Requirements/use cases/tests stored with the code • Extensible • modular • Scalable • Dynamic memory allocation • Distributable/parallelizable • Quality controlled • Open source
Common tasks Libraries/common utilities Education/outreach
Prototype: Dream-desktop for local-structure studies using the atomic pair distribution function (PDF)
Prototype application: PDFgui • Goals: • PDF is a great technique for studying local structure, but our programs are clunky and hard to use…ok for hard-core physicists but not for wider adoption. Give it an easy-to-use interface • Often we want to refine multiple datasets as a function of temperature/pressure/composition, etc.. Make a program that is straightforward to automate for multiple datasets but flexible enough to give the user control over this process • Users are interested in structure, not scattering data. Allow them to interact with the structure straightforwardly in the same program in real time • Make it sufficiently fast that people want to use it • Use it as a prototype to learn how the DANSE software development process is going to go
PDFgui • Solution: • Write Python bindings into our existing PDFFIT2 C++ code to access variables at the python layer at run-time • Wrap an existing plotting program, matplotlib, for 1D plots which support user interactions (zoom, explore, etc.) • Wrap an existing structure visualization program, ATOMEYE, for simple structure visualization • Build a GUI front-end • We want real-time interactivity so… • Graphics can eat up system resources => build in distributed functionality. Have PDFFIT2 running on a remote computer but keep the real-time interactivity
GUI Control Center PDFFIT2 PDFgui component structure Plot Control Matplotlib StruVis Control Pymol
PDFgui • Make code people want to use • Careful design of the structure of the GUI. This went through several iterations and ultimately a complete refactoring as we struggled with how people will use it for different tasks. • User input: • Rapid development cycle was just a few months from inception to the alpha-0 release (local release with a single installation). Now working on alpha-1 (wider release, some feature improvements) • (already expert PDF) Users were up to speed after one tutorial session with no documentation (will address at beta release) • Software control on TRAC and svn allows users to post bug-reports and feature requests that won’t get lost.
PDFgui • Make sure that it has a long life • Modular • Clear separation of gui from program logic. Interaction between the program and the gui through proxies • Team development results in code that is readable by more than one human being • Coding standards for docstrings and basic syntax structure • Project under subversion control under TRAC
Summary • Make codes people want to use • Open Source • Community engagement – what do you want to have? • Community involvement – what do you want to do? • Now beginning to develop the detailed software requirements. Please tell us what you need!