Effective Computation in Physics
- Length: 552 pages
- Edition: 1
- Language: English
- Publisher: O'Reilly Media
- Publication Date: 2015-07-05
- ISBN-10: 1491901535
- ISBN-13: 9781491901533
- Sales Rank: #99310 (See Top 100 Books)
More physicists today are taking on the role of software developer as part of their research, but software development isn’t always easy or obvious, even for physicists. This practical book teaches essential software development skills to help you automate and accomplish nearly any aspect of research in a physics-based field.
Written by two PhDs in nuclear engineering, this book includes practical examples drawn from a working knowledge of physics concepts. You’ll learn how to use the Python programming language to perform everything from collecting and analyzing data to building software and publishing your results.
In four parts, this book includes:
- Getting Started: Jump into Python, the command line, data containers, functions, flow control and logic, and classes and objects
- Getting It Done: Learn about regular expressions, analysis and visualization, NumPy, storing data in files and HDF5, important data structures in physics, computing in parallel, and deploying software
- Getting It Right: Build pipelines and software, learn to use local and remote version control, and debug and test your code
- Getting It Out There: Document your code, process and publish your findings, and collaborate efficiently; dive into software licenses, ownership, and copyright procedures
Table of Contents
Part I. Getting Started
Chapter 1. Introduction to the Command Line
Chapter 2. Programming Blastoff with Python
Chapter 3. Essential Containers
Chapter 4. Flow Control and Logic
Chapter 5. Operating with Functions
Chapter 6. Classes and Objects
Part II. Getting It Done
Chapter 7. Analysis and Visualization
Chapter 8. Regular Expressions
Chapter 9. NumPy: Thinking in Arrays
Chapter 10. Storing Data: Files and HDF5
Chapter 11. Important Data Structures in Physics
Chapter 12. Performing in Parallel
Chapter 13. Deploying Software
Part III. Getting It Right
Chapter 14. Building Pipelines and Software
Chapter 15. Local Version Control
Chapter 16. Remote Version Control
Chapter 17. Debugging
Chapter 18. Testing
Part IV. Getting It Out There
Chapter 19. Documentation
Chapter 20. Publication
Chapter 21. Collaboration
Chapter 22. Licenses, Ownership, and Copyright
Chapter 23. Further Musings on Computational Physics