dev:codestructure
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
codestructure [2013/10/09 15:01] – 159.92.9.130 | dev:codestructure [2020/08/21 10:15] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 3: | Line 3: | ||
CP2K is a large, complex application which has many features, methods and algorithms implemented. | CP2K is a large, complex application which has many features, methods and algorithms implemented. | ||
- | - Source files should have prefix: | + | ====== File Names ====== |
- | - '' | + | Source files should have prefixes corresponding to their main functionalities. For example: |
- | construction, | + | |
- | SCF cycle etc) | + | * '' |
- | - '' | + | |
- | - '' | + | |
- | - '' | + | |
- | - '' | + | |
- | - '' | + | |
- | - '' | + | |
- | - '' | + | |
- | - '' | + | |
- | - '' | + | |
- | - These prefixes are not exclusive, nor are they always | + | * '' |
- | logical. There are exceptions in code naming conventions. | + | * '' |
+ | * '' | ||
+ | |||
+ | These prefixes are not exclusive, nor are they always logical. There are exceptions in code naming conventions, for example: | ||
+ | |||
+ | * '' | ||
+ | |||
+ | ====== Overall Structure ====== | ||
+ | |||
+ | * Extensive use of Fortran modules, and there are //no// global variables | ||
+ | * Major parts of the CP2K code are compiled into separate libraries, for example: | ||
+ | * '' | ||
+ | * each library corresponds to a '' | ||
+ | |||
+ | ====== Structure of Quickstep ====== | ||
+ | |||
+ | Quickstep part of the CP2K code calculates the ab initio self-consistent Kohn-Sham energy and the associated forces of a periodic system. The calculation involves | ||
+ | |||
+ | * Construction of the Kohn-Sham energy functional and Hamiltonian, | ||
+ | * Mapping of operators represented as matrices in Gaussian basis onto the real space (RS) multi-grids (// | ||
+ | * Mapping of functions defined on the RS grids into matrix elements represented in the Gaussian basis (// | ||
+ | * Fast Fourier Transform that maps functions defined on each level of the RS multi-grid into the corresponding planewave coefficients; | ||
+ | * Dense and Sparse linear algebra operations, e.g. matrix multiplications | ||
+ | * Minimisation of the Kohn-Sham energy with respect to the electronic density matrix (using matrix operations) | ||
+ | * Self-consistent cycle for the electronic charge density | ||
+ | |||
+ | Most of the computational time are spent on: | ||
+ | |||
+ | * Collocation | ||
+ | * Integration | ||
+ | * Linear algebraic operations | ||
+ | * Fast Fourier Transforms | ||
+ | |||
+ | ===== Data Structure of Key Variables ===== | ||
+ | |||
+ | This subsection is the modules containing the definition the key data used in Quickstep calculations | ||
+ | |||
+ | * Electronic density and its derivatives, | ||
+ | * Module: '' | ||
+ | * File: '' | ||
+ | * Container type: '' | ||
+ | |||
+ |
dev/codestructure.1381330902.txt.gz · Last modified: 2020/08/21 10:14 (external edit)