Most Popular

1500 questions
54
votes
9 answers

Functional Programming and Scientific Computing

I apologize if this is a vague question, but here goes: Over the past few years, functional programming has received a lot of attention in the Software Engineering community. Many have started using languages such as Scala and Haskell and claimed…
Inquest
  • 3,394
  • 3
  • 26
  • 44
53
votes
5 answers

What are criteria to choose between finite-differences and finite-elements

I am used to thinking of finite-differences as a special case of finite-elements, on a very constrained grid. So what are the conditions on how to choose between Finite Difference Method (FDM) and Finite Element Method (FEM) as a numerical…
shuhalo
  • 3,660
  • 1
  • 20
  • 31
51
votes
4 answers

What makes Fortran fast?

Fortran has a special place in numerical programming. You can certainly make good and fast software in other languages, but Fortran keeps performing very well despite its age. Moreover, it's easier to make fast programs in Fortran. I've made fast…
cauchi
  • 897
  • 1
  • 9
  • 12
48
votes
8 answers

What are good ways to document scientific software?

Many times, when I've inherited or encountered scientific code written by other people (or occasionally, even my own work), I've noticed that documentation is either sparse or nonexistent. If I'm lucky, I see informative comments. If I'm very lucky,…
Geoff Oxberry
  • 30,394
  • 9
  • 64
  • 127
48
votes
2 answers

What does "symplectic" mean in reference to numerical integrators, and does SciPy's odeint use them?

In this comment I wrote: ...default SciPy integrator, which I'm assuming only uses symplectic methods. in which I am refering to SciPy's odeint, which uses either a "non-stiff (Adams) method" or a "stiff (BDF) method". According to the source: def…
uhoh
  • 1,048
  • 1
  • 10
  • 17
48
votes
7 answers

Is algorithmic analysis by flop-counting obsolete?

In my numerical analysis courses, I learned to analyze the efficiency of algorithms by counting the number of floating-point operations (flops) they require, relative to the size of the problem. For instance, in Trefethen & Bau's text on Numerical…
David Ketcheson
  • 16,522
  • 4
  • 54
  • 105
47
votes
7 answers

Parallelizing a for-loop in Python

Are there any tools in Python that are like Matlab's parfor? I found this thread, but it's four years old. I thought maybe someone here might have more recent experience. Here's an example of the type of thing I'd like to parallelize: X =…
44
votes
14 answers

Which software and workflow is recommend for publication of scientific data and graphs?

Which software provides a good workflow from simple plotting of a few datapoints up to the creation of publication level graphics with detailed styles, mathematical typesetting and "professional quality"? This is a bit related to the question of…
Alexander
  • 541
  • 1
  • 5
  • 7
43
votes
18 answers

Where can one obtain good data sets/test problems for testing algorithms/routines?

In evaluating the quality of a piece of software you are about to use (whether it's something you wrote or a canned package) in computational work, it is often a good idea to see how well it works on standard data sets or problems. Where might one…
J. M.
  • 3,155
  • 28
  • 37
42
votes
8 answers

How to link code to publications

Scholarly papers in scientific computing (and many other fields, nowadays) typically involve some amount of code or even whole software packages that were written specifically for that paper or were used to obtain results in the paper. What is the…
David Ketcheson
  • 16,522
  • 4
  • 54
  • 105
42
votes
6 answers

Are there simple ways to numerically solve the time-dependent Schrödinger equation?

I would like to run some simple simulations of scattering of wavepackets off of simple potentials in one dimension. Are there simple ways to numerically solve the one-dimensional TDSE for a single particle? I know that, in general, trying to use…
Emilio Pisanty
  • 826
  • 9
  • 15
41
votes
3 answers

What's the state of the art in parallel ODE methods?

I'm currently looking into parallel methods for ODE integration. There is a lot of new and old literature out there describing a wide range of approaches, but I haven't found any recent surveys or overview articles describing the topic in…
Florian Brucker
  • 970
  • 1
  • 8
  • 21
41
votes
4 answers

Scientific standards for numerical errors

In my field of research the specification of experimental errors is commonly accepted and publications which fail to provide them are highly criticized. At the same time I often find that results of numerical computations are provided without any…
highsciguy
  • 1,119
  • 9
  • 16
41
votes
4 answers

How does the MATLAB backslash operator solve $Ax=b$ for square matrices?

I was comparing a few of my codes to "stock" MATLAB codes. I am surprised at the results. I ran a sample code (Sparse Matrix) n = 5000; a = diag(rand(n,1)); b = rand(n,1); disp('For a\b'); tic;a\b;toc; disp('For LU'); tic;LULU;toc; disp('For Conj…
Inquest
  • 3,394
  • 3
  • 26
  • 44
40
votes
11 answers

Venues for publishing papers that emphasize software

Software is a fundamental part of computational science, and is increasingly recognized as an essential part of the scientific record. Given the value of using existing and well-tested code, it seems worthwhile to communicate the existence of…
David Ketcheson
  • 16,522
  • 4
  • 54
  • 105