pair_modify in hbond/dreiding/lj

Dear Prof. Kohlmeyer,

In an example uploaded on GitHub, you have used these commands for hbond/dreiding/lj:

> pair_coeff 1 1 lj/cut/coul/long 0.015200000256300 2.846421344984478 pair_coeff 1 2 lj/cut/coul/long 0.001232882795416 2.846421344984478
> pair_coeff 1 3 lj/cut/coul/long 0.038019995160237 3.159705878878677
> pair_coeff 1 4 lj/cut/coul/long 0.038139744011598 2.939787518071103
> pair_coeff 2 2 lj/cut/coul/long 9.99999974737875e-05 2.846421344984478
> pair_coeff 2 3 lj/cut/coul/long 0.003083828758188 3.159705878878677
> pair_coeff 2 4 lj/cut/coul/long 0.003093541672406 2.939787518071103
> pair_coeff 3 3 lj/cut/coul/long 0.095100000500679 3.472990412772877
> pair_coeff 3 4 lj/cut/coul/long 0.095399530150179 3.253072051965302
> pair_coeff 4 4 lj/cut/coul/long 0.095700003206730 3.033153691157727
> pair_coeff 4 4 hbond/dreiding/lj 2 i 4.000 2.750000000000000 4
> pair_modify mix arithmetic

here, the interactions between i and j atoms are defined in pair_coeffs in addition to a mixing rule with the pair_modify command. Why both? Could you please explain this for me?

Also, based on the manual:

“Whenever pair_style hybrid/overlay is used, ordinary mixing rules are not applied to atoms like the donor and acceptor atoms because they are typically referenced in multiple pair styles”

So, can we use pair_modify for all pair_styles and atoms?

I really appreciate your helpful advice in advance.

Kind regards,
Mina