## 2.6 Computational codes

In this thesis. we do global optimization based on our own code, while perform local optimization (i.e. structural relaxation) by using other available codes. There are many codes which have been widely used at both atomistic level and electronic level. In this thesis, we mainly used GULP ^{62} and DMACRYS ^{63} for classical simulations, VASP ^{64} and SIESTA ^{65} for ab-initio simulations. VASP is a plane wave code while SIESTA uses localized basis sets. Both VASP and SIESTA use pseudopotentials for calculation. If needed, there are also some codes (such as WIEN2K ^{66}) which could support all-electron calculation, which might be useful for elements under high pressure. Most of these codes provide a set of algorithms for relaxation. The choice of appropriate algorithm for minimization depends on the size of the system and number of variables. In general, a good algorithm should be robust and fast converged. It is always good to take into account the second order term (i.e. Hessian matrix) when the computational cost is affordable.

In most of calculations within this thesis, structure relaxations are performed using DFT within PBE functional in the framework of PAW method as implemented in the VASP code. And the conjugate-gradient algorithm are mostly used (IBRION = 2) during structure relaxation stage.