Difference between revisions of "Main Page"
(→Modeling & Simulation) |
(→Libraries) |
||
Line 10: | Line 10: | ||
====Libraries==== | ====Libraries==== | ||
− | Libraries are collections of code that can be reused in you programs. When you are learning to write programs to solve physics problems, it is tempting to try to "write your own", i.e. write code to implement functionality already available in one or more libraries. | + | Libraries are collections of code that can be reused in you programs. When you are learning to write programs to solve physics problems, it is tempting to try to "write your own", i.e. write code to implement functionality already available in one or more libraries. You should fight this temptation and learn to use libraries early on, it will save you time, and make your code more robust. |
+ | |||
+ | For example, finding the inverse of a matrix is a very difficult task to perform on a computer. There are many complications that arise from the finite precision and memory of a computer. Many (hundreds or thousands) people have worked many years to develop different algorithms to handle different special cases that may be encountered. An algorithm for determining the inverse of an an arbitrary matrix will typically check for several different special conditions and determine the best special algorithm to use. If you are writing a program to solve a differential equation that requires you to compute the inverse of a matrix to solve the equation, there is no reason to write a function that computes the inverse of a matrix. The function you write will not be as fast, accurate, or robust as the functions available in a library. | ||
+ | |||
+ | Now, this is not to say that writing your own matrix inversion algorithm is pointless. If your goal is to learn about the inverse matrix and practical challenges associated with finding it, writing your own inversion function is instructive. | ||
====Tools==== | ====Tools==== |
Revision as of 10:10, 23 March 2014
Welcome to the FHSU Physics Department Wiki!
Contents
Main Topics
Modeling & Simulation
Codes
BTEC is a multi-physics C++ code that simulates laser-tissue interaction. It is capable of predicting how much energy is required to cause damage to the retina with a laser pointer for example.
Schrodinger is a FORTRAN code that solves Schrodinger's equation.
Libraries
Libraries are collections of code that can be reused in you programs. When you are learning to write programs to solve physics problems, it is tempting to try to "write your own", i.e. write code to implement functionality already available in one or more libraries. You should fight this temptation and learn to use libraries early on, it will save you time, and make your code more robust.
For example, finding the inverse of a matrix is a very difficult task to perform on a computer. There are many complications that arise from the finite precision and memory of a computer. Many (hundreds or thousands) people have worked many years to develop different algorithms to handle different special cases that may be encountered. An algorithm for determining the inverse of an an arbitrary matrix will typically check for several different special conditions and determine the best special algorithm to use. If you are writing a program to solve a differential equation that requires you to compute the inverse of a matrix to solve the equation, there is no reason to write a function that computes the inverse of a matrix. The function you write will not be as fast, accurate, or robust as the functions available in a library.
Now, this is not to say that writing your own matrix inversion algorithm is pointless. If your goal is to learn about the inverse matrix and practical challenges associated with finding it, writing your own inversion function is instructive.
Tools
HPC - High Performance Computing
Miscellaneous Tools
LucidChart an an online diagram editor that is pretty good. Students and teachers can signup for an account and get free access to the top-level subscription which allows you to collaborate on creating diagrams, where multiple people are allowed to edit it at once. This tool could be used to quickly draw some simple circuit diagrams, draw a UML diagram of some programming project, create flow charts for planning a presentation or paper, and much more.
Doing Science
There are many tools available that make our jobs as scientists easier. Here is a collection of software, analysis techniques, and more, that you may find useful.
- Linux is a free and open source operating system that is very common in academic and research settings.
- LaTeX is THE standard for typesetting technical papers. Once you learn how to use it, you will never want to write a paper in Word again.
- Gnuplot is a simple, yet powerful, command-line plotting program. You can use it to quickly plot data during analysis, or to create publication quality figures.
- Data Analysis: this page contains various information related to analyzing data, including error analysis.
Student/Class Projects
- The Phys 100, Introduction to Engineering Science, class has been launching high altitude weather balloons as a class project since Fall of 2011. See their project page here.
Random Unorganized Topics
To see a set of unorganized links to various projects that have used this wiki, go here
MediaWiki Information
Consult the User's Guide for information on using the wiki software.