# How can I generate a new basis set?

We have different options available to generate basis sets within CP2K. However, all of them also require a large part of manual invention. There are no black box schemes.

## Method 1:

Optimize the exponents of a Gaussian basis with the atomic code for a given reference state (see tests/ATOM/regtest-2/Ru*.inp). You have to choose the number of Gaussians per $l$ quantum number, atomic state, …) Calculate the contraction coefficients and generate additional functions using a recipe from quantum chemistry.

You might want to add polarization functions that are not available through atomic calculations.

## Method 2:

Just like Method 1 but calculate the contractions from a atomic response calculation. (tests/ATOM/regtest-2/Ru_basis.inp)

## Method 3:

MOLOPT basis sets. This requires extensive calculations on test molecules. you can see an example in tests/QS/regtest-optbas