# Basis set optimization

Hello, I’m trying to optimize the basis set for B and N starting from monolayer hBN. I have set something like this, for boron:
B 5 # Species label, number of l-shells
n=2 0 2 S \$spl_s_B # n, l, Nzeta
\$s_z1_rc_B 0.000
1.000 1.000
n=2 1 2 S \$spl_p_B P1 # n, l, Nzeta, Polarization, NzetaPol
\$p_z1_rc_B 0.000
1.000 1.000
n=3 0 1 Q \$ch_3s_B
\$3s_z1_rc_B
1.000
n=3 1 1 Q \$ch_3p_B
\$3p_z1_rc_B
1.000
n=4 0 1 Q \$ch_4s_B
\$4s_z1_rc_B
1.000

However, I have some doubts:

• I understand that the charge density should be converged. Thus, is it important the k-point mesh/cut-off mesh that I use to optimize the basis set?
• I’ve seen that the charge confinement could be useful for empty orbitals. Can this be optimized with the simplex algorithm implemented in siesta?

Sincerely,
Laura Caputo

Hi Laura,

here is a basis set for hBN:

%block PAO.Basis
B 3
n=2 0 2 E 40 -0.9
6.96216774708 3.3713211

n=2 1 2 E 40 -0.9
8.93974114822 3.4977770

n=2 2 1 E 40 -0.9 Q 5.4189369 .2152190
8.93974114822

N 3
n=2 0 2 E 40 -0.9
6.5 4.3806496

n=2 1 2 E 40 -0.9
6.71294063991 2.4269315

n=2 2 1 E 40 -0.9 Q 8.2241579 .0100000
6.71294063991
%endblock PAO.Basis

which I’ve been using it for monolayers, bilayers, etc., for a while with decent success. Actually, I think it is the basis set available from Simune.

• Converging a basis set can be done for a specific system (monolayer, bulk, nanotube, etc.), and you can optimize with respect to a given parameter: total energy, lattice constant (theoretical or experimental), and some people have even converged with respect to the electronic bands, although I’m not sure this is a good idea. In any case, you would want the calculations to be sensibly converged, but not so stringent that each calculation in the simplex algorithm takes a long time.
• I think the simplex algorithm that comes with siesta is very general, and can be used to optimize whatever you want with respect to whatever you want. See here.

Although I’m not an expert, maybe others would like to weigh in.