5

Current situation

My scientific project contains mainly different analytical and numerical calculations with physics purpose, i.e. I work with Mathematica, MATLAB, Fortran. Of course it is a good idea to commit the progress with a version control program like git.

I was asking some friends what would be the best way to structure my files. Beside the simple and well-known programmer's file structure (/bin/,/dat/,/doc/,/src/,...), I found no satisfying but similar answers:

I hope this issue is not getting closed as it is asked by a physicist ;) as I guess many scientists are facing the same question at some point in more or less extension. By knowing that programmers have faced such issues before, I do not ask this question at Physics Stack Exchange, where it could probably be marked as off-topic or too broad.

Example

In my last project I had the following global structure where I had some interaction between the different project items:

/External_Code_Contribution/
/Experimental_Data/
/Analytical_Calculations/
  /Project_Issue_1/
  /Project_Issue_5/
/Documentations/
  /Thesis/
  /Papers/
  /Talks/
/Literature/
/Project_Organization/
/Numerical_Calculations/
  /Project_Issue_1/
    /SubIssue_A/
    /SubIssue_B/
    /SubIssue_C/
  /Project_Issue_2/
  /Project_Issue_3/
  /Project_Issue_4/
  /Project_Issue_6/

Description: In this project I divided the files according their functionality (external contribution, exp. data, numerics, documentation,...) and then subdivided them according to their issue (what was calculated at that step) where each issue again contained subissues (e.g. for analogous calculations with a different data set) with source code, binaries and processed data (for simplicity all in the same directory).

Unfortunately in this approach I ether had to:

  • refer to the source code in the corresponding issue (danger of changing anything can lead to incompatibilities), or
  • copy the source code to each new issue (each source code file with same name but in a different folder could be different).

Question

Who faced this issue of structuring projects in directories? Please tell me your approach and the arguments that brought you to this structure!

(Possible addition: What should I keep in mind when I set up a file structure for a project as described above?)

If you do not completely understand the answer, please do not hesitate to ask instead of flagging. Thank you!

Community
  • 1
  • 1
strpeter
  • 2,562
  • 3
  • 27
  • 48
  • I don't think a clean algorithm exists for organizing files into a directory structure. But there's a narrower (and therefore answerable) question in the middle there: how to deal with several data sets, all going through similar -- but not identical -- calculations. Would that be worth pursuing? – Beta May 18 '14 at 15:35
  • It is definitely worth pursuing with the narrower question. I am just not fully sure whether I understand what you mean. So I rephrase the narrower question which could be: How should one deal with several (analogous) data sets or source code files that have almost the same functionality. But feel free also to tell me how **you** interpreted the "question in the middle there"! – strpeter May 19 '14 at 07:26

0 Answers0