# Tag Info

53

Python (as of 2.6 and 3.0) now searches in the ~/.local directory for local installs, which do not require administrative privileges to install, so you just need to point your installer to that directory. If you have already downloaded the package foo and would like to install it manually, type: cd path/to/foo python setup.py install --user If you are ...

15

As far as I know, Lapack is the only publicly available implementation of a number of algorithms (nonsymmetric dense eigensolver, pseudo-quadratic time symmetric eigensolver, fast Jacobi SVD). Most libraries that don't rely on BLAS+Lapack tend to support very primitive operations like matrix multiplication, LU factorization, and QR decomposition. Lapack ...

14

If you want something open-source, you probably want to try COIN's CBC code (they also have a couple other MILP solvers, like a branch-and-price framework, or SYMPHONY). Gurobi and CPLEX will be considerably faster, and as of the 2011 or 2012 INFORMS meeting, Gurobi was faster than CPLEX (though the performance metrics are of course problem dependent). On ...

11

If you want Matrix classes with an intuitive interface All the LAPACK and BLAS features Easy to learn and use API Easy to install Then I recommend you to have a look at my library FLENS. I designed it for exactly these kind of tasks. However, it requires a C++11 conform compiler (e.g. gcc 4.7 or clang). FLENS gives you exactly the same performance as ...

11

I would say that there are a number of reasons why there are no computational science contests besides the potentially massive computational resources required. Time limits: Writing scientific computing code is usually not something that you want to rush. A lot of emphasis is on making sure it is correct, and thorough consideration of test/corner cases. ...

11

I maintain (and am the main coder of) a simulation software that has been developed for ~8 years and is used by few hundreds people. It all started as a side project during my PhD, and it clearly outgrew itself. It is both over- and under-engineered: the architecture of some parts is too complicated for their own good, whereas some other parts (whose ...

10

In my opinion, being a beginning graduate student doesn't change the answer by David Ketcheson here to the question you've linked in your post. Code minimal versions of algorithms you want to learn. Then set them aside. Coding your own algorithms is most useful for learning, but for research (or production) code, unless your research goals are to write ...

10

I'd like to give some more breadth to Geoff's thoughtful answer. In particular, I want to give you a little more perspective on the value of your programming efforts as opposed to your research efforts in your early career as an academic. You will find that being able to write software to augment your scientific research will make you a valuable member of ...

10

LibMesh supports Clough-Tocher and tensor product Hermite $C^1$ elements, see the biharmonic example. FEniCS has a biharmonic example that does uses a mixed continuous-discontinuous Galerkin formulation. Any package with $C^0$ elements that can compute second derivatives and can integrate DG jump terms can also use this approach. PetIGA Supports isogeometric ...

10

I'll give you my perspective, which is encoded in the deal.II project that you reference. First, there are two kinds of error conditions: Errors that can be recovered from, and errors that can not be recovered from. The former is, for example, if an input file can't be read -- for example if you are reading information from a file such as $HOME/.dealii ... 9 Absolutely. You should check out VisIt, Paraview, Tecplot, Ensight, and similar tools. 9 In general, I'd say the following open source tools tend to be (roughly) best-of-breed, in the following order: PETSc has implemented a number of ODE solvers as part of TS, its time-stepping routines. There are a number of integrators implemented, including ARKIMEX, EIMEX, Rosenbrock-W, Crank-Nicolson, backward Euler, several Runge-Kutta methods (including ... 9 "developers lack the skills". Maybe. I think it's much more likely that the developers lack the incentives. Making solid code is difficult and expensive and, in academia, comes with minimal-to-negative reward. You're asking for a list of things of guidelines, but all of your examples are specific to the technical situation, not the social situation. That'... 8 I don't really have much more to say than I already did on the pages you linked to, but for me the primary arguments go like this: In many problems, one needs to adapt the mesh between time steps. The conceptual framework for doing this is the Rothe method where one can choose the spatial discretization independently at each time step whereas the method of ... 8 deal.II uses the Threading Building Blocks throughout the library and by and large we're reasonably happy with it. We've looked at a few alternatives, in particular OpenMP since everyone seems to be using that for simpler codes, but found them lacking. In particular, OpenMP has the huge disadvantage that its task model does not allow you to get a handle for ... 8 the planned longevity of TeX comes to mind: “Ever since those beginnings in 1977, the TeX research project that I embarked on was driven by two major goals. The first goal was quality: we wanted to produce documents that were not just nice, but actually the best. (…) The second major goal was archival: to create systems that would be independent of ... 8 I would suggest that a full database may be overkill for your purposes, though it would certainly work. Even$5 \cdot 10^5\$ rows should be no more than around 25mb of data. I would strongly recommend doing the analysis/plotting/etc with the same tool that you will use for querying your data. It is my experience that when changing what to analyse only takes ...

8

You can try Geogebra (it is free). With SolveODE command and sliders you can do what yo want. For the usage of SolveODE command see. For example by using following command SolveODE[ <f'(x, y)>, <Start x>, <Start y>, <End x>, <Step> ] with SolveODE[A + B y + C sin(y), l, m, 10, 0.1] I got the solution curve below. You can vary ...

7

3D Navier-Stokes problems are already difficult to analyze, not to mention rheological concerns. I could have suggested Polyflow of Ansys but I will not because I believe it is a poorly executed idea. GUI is not good, solver options are tricky to adjust. Actually, I suggest not to rely on commercial software. Solvers in this area are not that general, they ...

7

You might consider writing the entire paper in Noweb. It's a bit tedious to set up, but it's a very powerful way to mix code and LaTeX-formatted text, equations, and figures. For long programs, it tends to turn your code into more of a book than an article, but for short programs, it might work out pretty well. If you don't want to go that far, it still ...

7

The obvious answer would of course be to not implement it all yourself but to use what others have done before. For example, deal.II (http://www.dealii.org -- disclaimer: I am one of the authors of this library) already has DG elements on quads, hexes, and curved elements, tutorial programs that show how to use them, etc. All this has been tested for a ...

7

One of the authors of fenics, A. Logg, have written a very good paper on datastructures of storing meshes. The paper is A. Logg (2009). Efficient Representation of Computational Meshes http://arxiv.org/abs/1205.3081 In fact it's always a tradeoff between storing all the topological informations (nodes around nodes, faces around nodes, etc...) OR having to ...

7

Almost everything you can build and install in your own space. With GNU autotools, you can do something like ./configure --prefix=/path/to/your/work/space ... and then follow the usual compilation instructions. Things based on CMake and Scons have similar facilities.

7

Assuming that your kernel is somewhat smooth, use low-rank approximation. Here's a naive example: import numpy as np N=2000 input=np.random.random(N) x=np.linspace(-1,1,N) y=np.linspace(-2,2,N) X,Y=np.meshgrid(x,y,sparse=True) A = np.exp(1j*2*np.pi*X*Y) output = np.dot(A, input) U,S,V = np.linalg.svd(A) # find truncation rank for given tolerance k = ...

6

I use only two debuggers for serial and parallel programs: The Kernighan debugger, i.e. judicious print statements and careful thinking. Multiple instances of GDB as described o http://www.open-mpi.org/faq/?category=debugging#serial-debuggers. In the case where (2) is not sufficiently scalable, I refer to (1b).

6

I think the cost-benefit analysis depends upon the desired scientific computing literacy that you want to achieve during your studies. For most scientist who work with computers being proficient in scientific computing is enough, this requires: a high-level (abstract) understanding of the main algorithms used, and programming skills that allow you to ...

6

(actually the comments provide an answer to your question, but this is additional information). 1) http://qblade.de.to/ This is a link to a free software called as QBlade. It is a wind turbine design and optimization software with emphasis on blade design (using XFOIL). This might come useful in designing/ optimization the rotor blades. What can it be ...

6

deal.II (see http://www.dealii.org/) does support Nedelec elements and, as a consequence, can solve the problems you're interested in. (Full disclaimer: I'm one of the principal developers of deal.II.)

6

There's no guarantee in the standard that any progress is made on the non-blocking sends until you actually call MPI_WAIT. It's a perfectly valid implementation to just queue up the operations and when you call MPI_WAIT, all of the MPI_ISEND operations complete at once. In reality, they usually tend to get a chance to progress anytime you enter the MPI ...

6

Mixed integer linear programming problems are much harder to solve than linear programming problems. In terms of computational complexity, LP's can be solved in polynomial time while solving MILP is an NP-Hard problem. The known algorithms for solving MILP's have exponential worst case complexity. There are other software packages for mixed integer ...

Only top voted, non community-wiki answers of a minimum length are eligible