SVN for CSMP version 5.0

CSMP v. 5.0 has a new respository for version control that is hosted at the University of Edinburgh's high-performance computing system ECDF. It uses the 1.6.x branch of the software Subversion (also known as SVN). Below is a step by step instruction how to obtain access to the CSMP repository, its contents, and a very basic hitchhiker's guide to using SVN. Please use the CSMP forum to post questions/comments about the repository or using SVN. This site will be updated accordingly.

Step 1: Registering for the the repository

Users with an existing account for the University of Edinburgh Authentication Service (EASE)

If you already have an EASE account, you need to register it for the SVN service on ECDF by executing the following steps:

  1. Go to https://eddie.ecdf.ed.ac.uk/svnreg/userreg.php and register your EASE account for using the SVN service.
  2. Generate a new (and safe!) password for the SVN service that is different from your current EASE password.
  3. Email Sebastian your EASE account name (not the password!) such that it can be added to the authentication list of the CSMP repository.

Users without an existing account for the University of Edinburgh Authentication Service (e.g., developers from MU Leoben or ETH Zurich)

If you do not have an EASE account, you need to become a "friend of EASE" first and then register it for the SVN service on ECDF by executing the following steps:

  1. Go to https://www.ease.ed.ac.uk/friend/ and register your email address with EASE. The Edinburgh University computing system will now be able to idenfity you with this email as an EASE friend.
  2. Go to https://eddie.ecdf.ed.ac.uk/svnreg/userreg.php and register your email address for using the SVN service.
  3. Generate a new (and safe!) password for the SVN service.
  4. Email Sebastian your "EASE friend" email address (not the password!) such that it can be added to the authentication list of the CSMP repository.

IMPORTANT: Only once all three (or four) steps have been completed, you will be able to access the repository. We will email you a confirmation that your account/email address has been added to the CSMP repository authentication list.

Step 2: Setting up your local computer to access the repository

The URL for the new CSMP v. 5.0 repository is https://svn.ecdf.ed.ac.uk/repo/geos/csmp/. To access it (e.g., checkout the repository or upload revised files) you will need to install the Subversion software on your local computer. Here is a by no means complete list of SVN clients (let us know if you find a very recommendable tool):

Once you have downloaded and installed your SVN software on your PC/Mac/Linux box, you will need to configure it. Please refer to the help manual of your software. The key information that you will need to access the CSMP repository is:

Step 3: Accessing the repository

Subversion is quite complex. Please refer to a tutorial or more detailed manual for using SVN. A quick-start guide for using SVN on Linux can be found here and for using Tortoise SVN here. http://svnbook.red-bean.com/ provides a more detailed description. Below are some basic commands that you will probably find useful:

  • Checkout operation: Retrieves the entire CSMP repository and creates a local copy on your computer.
  • Commit operation: Commits a revised (or deleted or newly created) file/folder to the CSMP repository. Please make sure that you document your changes when committing a modified file/folder!
  • Add operation: Schedules the addition of a new file/folder to the repository. This requires the commit operation to complete the addition.
  • Delete operation: Schedules the deletion of an existing file/folder to the repository. This requires the commit operation to complete the deletion. Note that the file/folder will never be removed completely from the CSMP repository. In other words, you can retreive a file/folder even if you have deleted it 2 years ago — but only if it was in the CSMP repository at one time.
  • Update operation: Checks for updates in the CSMP repository and will download them to your local copy. A warning will be issued if a conflict exists, that is if a file/folder in the repository has changed and the same file/folder on your local CSMP copy has been changed as well.
  • Rename operation: Renames a file/folder in your local CSMP copy. After committing the change, the file/folder in the CSMP repository will be renamed as well.
  • Log operation: Will display of the log file containing the changes of a file/folder. If the repository users have commented their changes when committing a modified file/folder, it will be straightforward to understand who did which change.

Step 4: Contents of the repository

The CSMP repository contains the source code of CSMP version 5.0. If you checkout the repository, it will create the following sub-directories in a directory named "csmp":

  1. applications: Contains a folder "examples" with all the input files for CSMP's distributed examples. You may want to use this folder for creating your new CSMP applications.
  2. documentation: Contains a basic CSMP documentation (several PDF documents) as well as the source code for the HTML extractor. The latter allows you to extract the HTML code from the CSMP documentation and create a set of HTML documents. This may be superseeded by the DOxygen documentation soon.
  3. experimental: This directory contains source code that should not be part of the CSMP release but which you may want to share with other CSMP developers or, at least, for which you want to have a repository such that you can back-track changes. Currently, the CSMP black-oil model is the only experimental CSMP code stored here.
  4. libraries: All compiled CSMP libraries will be copied to this directory. During the checkout, only the SAMG library stub for using the SAMG Windows DLL is contained in this directory.
  5. source_code: This contains all the CSMP source code that will also be part of the release. Each sub-directory contains a CodeWarrior project, a project for DevC++ (a GNU-compiler based IDE), and makefiles for compiling CSMP with Intel or GNU compilers on a Linux computer/cluster. These projects and makefiles will allow you to compile all CSMP libraries and, in the case of the CSMP distributed examples, a stand-alone executable. Please note that you probably will have to adapt the DevC++ projects and makefiles for your own computer. If you do so, please do not check in these modified versions — unless you find a major bug in one of the projects/makefiles.
  6. support_libraries: This directory contains several third-party libraries which are needed to run CSMP v. 5.0, namely: f2c, jpeg, meschach, mpich2, metis, triangle, and samg. Note that the mpich2 library is not complete. It contains only a couple of header files needed to compile the CSMP code. If you are planning to run CSMP in a parallel environment, you will need to use the MPI/MPICH version installed on your cluster/workstation. The samg directory contains the Windows DLL for SAMG. The triangle directory contains the source code for the popular meshing tool triangle.
  7. tutorials: This directory contains three tutorials for using and running CSMP (including some programming exercises). Hopefully this will expand to a collection of tutorials in the near future. CodeWarrior and DevC++ projects are provided for creating the executables.
  8. varia: Contains a couple of miscellaneous files, for example a corrected winnt.h file for CodeWarrior, which is buggy in the original CodeWarrior distribution, and a meshing directory which contains a few windows exectutables to generate triangle-based FE meshes and visualise them.

Step 5: Current repository users

Since the EASE accounts and EASE friend emails (see above) are quite cryptic it can be difficult to read the log-files and understand who commited which change. Hence a list of human-readable user names and account names is given below:

Account name Name
v1sgbosc Sebastian Geiger (repository owner)
v1yzaret Yan Zaretskiy
v1cfrick Claudia Fricke
v1kschmi Karen Schmid
christine.maier_at_pet.hw.ac.uk Christine Maier
thomas.drieser_at_erdw.ethz.ch Thomas Driesner
gruen_at_erdw.ethz.ch Gillian Gruen
office_at_tabatabaei.com Ali Tabatabaei
apaluszn_at_imperial.ac.uk Adriana Paluszny
hamid.nick_at_gmail.com Hamid Nick
weis_at_erdw.ethz.ch Philipp Weis
georg.seidl_at_unileoben.ac.at Georg Seidl
stephan.matthai_at_unileoben.ac.at Stephan Matthai
sarah.fowler_at_erdw.ethz.ch Sarah Fowler
steinberger_at_erdw.ethz.ch Ingo Steinberger
maike.schubert_at_erdw.ethz.ch Maike Schubert

Step 6: Final comments

The CSMP repository will only become useful if we all use it to manager our changes; and debug our code before we commit any changes to it — remember that you may be breaking someone elses code if you are changing the CSMP source code! Currently, the repository has a quota of 300 MB. We can increase it to 2.5 GB (at a one-off cost of £100) if needed. But 300 MB should suffice as long as we commit only source code to the repository; so please refrain from (accidentally) adding object files, large (binary) input or output files, etc. to the repository. While I am sure that your 1.5 GB VTK file will allow for a fantastic 3D visualisation, not everyone may be interested in having the raw data in his/her local copy of CSMP…

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License