developers:overview
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
developers:overview [2018/01/31 19:57] – [An overview of ABINIT development] Jean-Michel Beuken | developers:overview [2024/09/02 14:28] (current) – Maryam Azizi | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <WRAP important> | ||
===== An overview of ABINIT development ===== | ===== An overview of ABINIT development ===== | ||
Line 13: | Line 14: | ||
</ | </ | ||
- | ===== Introduction | + | ==== Introduction ==== |
Line 36: | Line 37: | ||
- | === Developer environment === | + | ==== Developer environment |
- | In order to implement this basic philosophy of development within ABINIT, different languages/ | + | In order to implement this basic philosophy of development within ABINIT, different languages/ |
These languages/ | These languages/ | ||
Line 47: | Line 48: | ||
* CPP is the preprocessor for the Fortran 90 sources. Thanks to build system directives passed to CPP, the sequential or parallel version of ABINIT are generated, different external libraries may or may not be incorporated, | * CPP is the preprocessor for the Fortran 90 sources. Thanks to build system directives passed to CPP, the sequential or parallel version of ABINIT are generated, different external libraries may or may not be incorporated, | ||
* Fortran 90 (or F90) is the language in which the vast majority of ABINIT routines is written. The developer need to have a good knowledge of Fortran 90 to develop within ABINIT. They should have a F90 compiler available on their machine. | * Fortran 90 (or F90) is the language in which the vast majority of ABINIT routines is written. The developer need to have a good knowledge of Fortran 90 to develop within ABINIT. They should have a F90 compiler available on their machine. | ||
- | * HTML is the language in which most of the ABINIT documentation is written, either within the package (e.g. description of input variables), or on the Web site (the present text is written in HTML). HTML files are text files, that can be edited using simple editors like vi or emacs, or more advanced editors. This language is interpreted by Web browser. ABINIT developers should have at least a basic knowledge of HTML to be able to document properly their work in ABINIT. | + | * |
* MPI is the Message-Passing Interface library, used for the parallelism within ABINIT. In order to generate parallel code, the user and developer need to have the MPI library compiled on their machine. In order to develop in ABINIT, a basic knowledge of MPI is requested. Of course, a deep knowledge of MPI might be needed for several developments. | * MPI is the Message-Passing Interface library, used for the parallelism within ABINIT. In order to generate parallel code, the user and developer need to have the MPI library compiled on their machine. In order to develop in ABINIT, a basic knowledge of MPI is requested. Of course, a deep knowledge of MPI might be needed for several developments. | ||
* Python is a scripting language, that is used for the automatic testing of ABINIT and in the build system. Its use should be transparent to the developers. Although a knowledge of Python is not requested to develop in ABINIT, it might help for the post-analysis. A suitable version of Python should come by default with every UNIX/ | * Python is a scripting language, that is used for the automatic testing of ABINIT and in the build system. Its use should be transparent to the developers. Although a knowledge of Python is not requested to develop in ABINIT, it might help for the post-analysis. A suitable version of Python should come by default with every UNIX/ | ||
- | * ROBODOC is a tool to create HTML (Web-browsable) file from source files (F90 for ABINIT). Developers are not required to use ROBODOC, but the ABINIT F90 must conform to the ABINIT-ROBODOC standard to be processed by ROBODOC before delivery over the Web. So, understanding the ABINIT-ROBODOC standard is requested by ABINIT developers. | + | * ROBODOC is a tool to create |
- | The set-up of the documentation concerning these different tools (including a basic initiation), | + | The set-up of the documentation concerning these different tools (including a basic initiation), |
Here follows some more information, | Here follows some more information, | ||
- | == Code repositories == | + | ==== Code repositories |
As mentioned above, managing different versions of ABINIT is done thanks to a a tool called git. For an introduction to this useful tool, you should look at the git dedicated pages. | As mentioned above, managing different versions of ABINIT is done thanks to a a tool called git. For an introduction to this useful tool, you should look at the git dedicated pages. | ||
Line 65: | Line 66: | ||
For developers, using the repository is a privileged way of managing their contributions, | For developers, using the repository is a privileged way of managing their contributions, | ||
- | == Protocol for the developer == | + | ==== Protocol for the developer |
After installation on the development machine (e.g. */ | After installation on the development machine (e.g. */ |
developers/overview.1517428620.txt.gz · Last modified: 2018/01/31 19:57 by Jean-Michel Beuken