(git:98357aa)
Loading...
Searching...
No Matches
libgrpp.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2026 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: MIT !
6!--------------------------------------------------------------------------------------------------!
7
8!
9! libgrpp - a library for the evaluation of integrals over
10! generalized relativistic pseudopotentials.
11!
12! Copyright (C) 2021-2023 Alexander Oleynichenko
13!
14
15MODULE libgrpp
16 USE iso_c_binding, ONLY: c_double,&
17 c_int32_t
18
19 IMPLICIT NONE
20
21 PRIVATE
22
23 INTEGER(4), PARAMETER :: LIBGRPP_CART_ORDER_DIRAC = 0
24 INTEGER(4), PARAMETER :: LIBGRPP_CART_ORDER_TURBOMOLE = 1
25
26 INTEGER(4), PARAMETER :: LIBGRPP_NUCLEAR_MODEL_POINT_CHARGE = 0
27 INTEGER(4), PARAMETER :: LIBGRPP_NUCLEAR_MODEL_CHARGED_BALL = 1
28 INTEGER(4), PARAMETER :: LIBGRPP_NUCLEAR_MODEL_GAUSSIAN = 2
29 INTEGER(4), PARAMETER :: LIBGRPP_NUCLEAR_MODEL_FERMI = 3
30 INTEGER(4), PARAMETER :: LIBGRPP_NUCLEAR_MODEL_FERMI_BUBBLE = 4
31 INTEGER(4), PARAMETER :: LIBGRPP_NUCLEAR_MODEL_POINT_CHARGE_NUMERICAL = 5
32
33 PUBLIC :: libgrpp_init
38
39 INTERFACE
40
41 SUBROUTINE libgrpp_init()
42 ! no arguments
43 END SUBROUTINE libgrpp_init
44
45 SUBROUTINE libgrpp_finalize()
46 ! no arguments
47 END SUBROUTINE libgrpp_finalize
48
50 ! no arguments
52
53 SUBROUTINE libgrpp_set_radial_tolerance(tolerance)
54 REAL(8), INTENT(in) :: tolerance
55
56 END SUBROUTINE libgrpp_set_radial_tolerance
57
58 SUBROUTINE libgrpp_set_angular_screening_tolerance(tolerance)
59 REAL(8), INTENT(in) :: tolerance
60
62
63 SUBROUTINE libgrpp_set_modified_bessel_tolerance(tolerance)
64 REAL(8), INTENT(in) :: tolerance
65
67
68 SUBROUTINE libgrpp_set_cartesian_order(order)
69 INTEGER(4), INTENT(in) :: order
70
71 END SUBROUTINE libgrpp_set_cartesian_order
72
74 origin_A, L_A, num_primitives_A, coeffs_A, alpha_A, &
75 origin_B, L_B, num_primitives_B, coeffs_B, alpha_B, &
76 rpp_origin, rpp_num_primitives, rpp_powers, rpp_coeffs, rpp_alpha, &
77 matrix &
78 )
79 ! shell centered on atom A
80 REAL(8), DIMENSION(*), INTENT(in) :: origin_A
81 INTEGER(4), INTENT(in) :: L_A, num_primitives_A
82 REAL(8), INTENT(in) :: coeffs_A(*), alpha_A(*)
83 REAL(8), DIMENSION(*), INTENT(in) :: origin_B
84 INTEGER(4), INTENT(in) :: L_B, num_primitives_B
85 REAL(8), INTENT(in) :: coeffs_B(*), alpha_B(*)
86 REAL(8), DIMENSION(*), INTENT(in) :: rpp_origin
87 INTEGER(4), DIMENSION(*), INTENT(in) :: rpp_num_primitives, rpp_powers
88 REAL(8), DIMENSION(*), INTENT(in) :: rpp_coeffs, rpp_alpha
89 REAL(8), DIMENSION(*), INTENT(out) :: matrix
90
91! shell centered on atom B
92! pseudopotential expansion
93! output: matrix with PP integrals
94
95 END SUBROUTINE libgrpp_type1_integrals
96
98 origin_A, L_A, num_primitives_A, coeffs_A, alpha_A, &
99 origin_B, L_B, num_primitives_B, coeffs_B, alpha_B, &
100 rpp_origin, rpp_ang_momentum, rpp_num_primitives, rpp_powers, rpp_coeffs, rpp_alpha, &
101 matrix &
102 )
103 ! shell centered on atom A
104 REAL(8), DIMENSION(*), INTENT(in) :: origin_A
105 INTEGER(4), INTENT(in) :: L_A, num_primitives_A
106 REAL(8), INTENT(in) :: coeffs_A(*), alpha_A(*)
107 REAL(8), DIMENSION(*), INTENT(in) :: origin_B
108 INTEGER(4), INTENT(in) :: L_B, num_primitives_B
109 REAL(8), INTENT(in) :: coeffs_B(*), alpha_B(*)
110 REAL(8), DIMENSION(*), INTENT(in) :: rpp_origin
111 INTEGER(4), INTENT(in) :: rpp_ang_momentum
112 INTEGER(4), DIMENSION(*), INTENT(in) :: rpp_num_primitives, rpp_powers
113 REAL(8), DIMENSION(*), INTENT(in) :: rpp_coeffs, rpp_alpha
114 REAL(8), DIMENSION(*), INTENT(out) :: matrix
115
116! shell centered on atom B
117! pseudopotential expansion
118! output: matrix with PP integrals
119
120 END SUBROUTINE libgrpp_type2_integrals
121
122 SUBROUTINE libgrpp_spin_orbit_integrals( &
123 origin_A, L_A, num_primitives_A, coeffs_A, alpha_A, &
124 origin_B, L_B, num_primitives_B, coeffs_B, alpha_B, &
125 rpp_origin, rpp_ang_momentum, rpp_num_primitives, rpp_powers, rpp_coeffs, rpp_alpha, &
126 so_x_matrix, so_y_matrix, so_z_matrix &
127 )
128 ! shell centered on atom A
129 REAL(8), DIMENSION(*), INTENT(in) :: origin_A
130 INTEGER(4), INTENT(in) :: L_A, num_primitives_A
131 REAL(8), INTENT(in) :: coeffs_A(*), alpha_A(*)
132 REAL(8), DIMENSION(*), INTENT(in) :: origin_B
133 INTEGER(4), INTENT(in) :: L_B, num_primitives_B
134 REAL(8), INTENT(in) :: coeffs_B(*), alpha_B(*)
135 REAL(8), DIMENSION(*), INTENT(in) :: rpp_origin
136 INTEGER(4), INTENT(in) :: rpp_ang_momentum
137 INTEGER(4), DIMENSION(*), INTENT(in) :: rpp_num_primitives, rpp_powers
138 REAL(8), DIMENSION(*), INTENT(in) :: rpp_coeffs, rpp_alpha
139 REAL(8), DIMENSION(*), INTENT(out) :: so_x_matrix, so_y_matrix, so_z_matrix
140
141! shell centered on atom B
142! pseudopotential expansion
143! output: matrices with PP integrals
144
145 END SUBROUTINE libgrpp_spin_orbit_integrals
146
148 origin_A, L_A, num_primitives_A, coeffs_A, alpha_A, &
149 origin_B, L_B, num_primitives_B, coeffs_B, alpha_B, &
150 rpp_origin, rpp_num_primitives, rpp_powers, rpp_coeffs, rpp_alpha, &
151 point_3d, grad_arep_x, grad_arep_y, grad_arep_z &
152 )
153 ! shell centered on atom A
154 REAL(8), DIMENSION(*), INTENT(in) :: origin_A
155 INTEGER(4), INTENT(in) :: L_A, num_primitives_A
156 REAL(8), INTENT(in) :: coeffs_A(*), alpha_A(*)
157 REAL(8), DIMENSION(*), INTENT(in) :: origin_B
158 INTEGER(4), INTENT(in) :: L_B, num_primitives_B
159 REAL(8), INTENT(in) :: coeffs_B(*), alpha_B(*)
160 REAL(8), DIMENSION(*), INTENT(in) :: rpp_origin
161 INTEGER(4), DIMENSION(*), INTENT(in) :: rpp_num_primitives, rpp_powers
162 REAL(8), DIMENSION(*), INTENT(in) :: rpp_coeffs, rpp_alpha, point_3d
163 REAL(8), DIMENSION(*), INTENT(out) :: grad_arep_x, grad_arep_y, grad_arep_z
164
165! shell centered on atom B
166! pseudopotential expansion
167! differentiation wrt the 3d point (x,y,z)
168! output: matrices d<Int>/dx, d<Int>/dy, d<Int>/dZ
169
171
173 origin_A, L_A, num_primitives_A, coeffs_A, alpha_A, &
174 origin_B, L_B, num_primitives_B, coeffs_B, alpha_B, &
175 rpp_origin, rpp_ang_momentum, rpp_num_primitives, rpp_powers, rpp_coeffs, rpp_alpha, &
176 point_3d, grad_arep_x, grad_arep_y, grad_arep_z &
177 )
178 ! shell centered on atom A
179 REAL(8), DIMENSION(*), INTENT(in) :: origin_A
180 INTEGER(4), INTENT(in) :: L_A, num_primitives_A
181 REAL(8), INTENT(in) :: coeffs_A(*), alpha_A(*)
182 REAL(8), DIMENSION(*), INTENT(in) :: origin_B
183 INTEGER(4), INTENT(in) :: L_B, num_primitives_B
184 REAL(8), INTENT(in) :: coeffs_B(*), alpha_B(*)
185 REAL(8), DIMENSION(*), INTENT(in) :: rpp_origin
186 INTEGER(4), INTENT(in) :: rpp_ang_momentum
187 INTEGER(4), DIMENSION(*), INTENT(in) :: rpp_num_primitives, rpp_powers
188 REAL(8), DIMENSION(*), INTENT(in) :: rpp_coeffs, rpp_alpha, point_3d
189 REAL(8), DIMENSION(*), INTENT(out) :: grad_arep_x, grad_arep_y, grad_arep_z
190
191! shell centered on atom B
192! pseudopotential expansion
193! differentiation wrt the 3d point (x,y,z)
194! output: matrices d<Int>/dx, d<Int>/dy, d<Int>/dZ
195
197
199 origin_A, L_A, num_primitives_A, coeffs_A, alpha_A, &
200 origin_B, L_B, num_primitives_B, coeffs_B, alpha_B, &
201 rpp_origin, rpp_ang_momentum, rpp_num_primitives, rpp_powers, rpp_coeffs, rpp_alpha, &
202 point_3d, grad_sox_x, grad_sox_y, grad_sox_z, &
203 grad_soy_x, grad_soy_y, grad_soy_z, &
204 grad_soz_x, grad_soz_y, grad_soz_z &
205 )
206 ! shell centered on atom A
207 REAL(8), DIMENSION(*), INTENT(in) :: origin_A
208 INTEGER(4), INTENT(in) :: L_A, num_primitives_A
209 REAL(8), INTENT(in) :: coeffs_A(*), alpha_A(*)
210 REAL(8), DIMENSION(*), INTENT(in) :: origin_B
211 INTEGER(4), INTENT(in) :: L_B, num_primitives_B
212 REAL(8), INTENT(in) :: coeffs_B(*), alpha_B(*)
213 REAL(8), DIMENSION(*), INTENT(in) :: rpp_origin
214 INTEGER(4), INTENT(in) :: rpp_ang_momentum
215 INTEGER(4), DIMENSION(*), INTENT(in) :: rpp_num_primitives, rpp_powers
216 REAL(8), DIMENSION(*), INTENT(in) :: rpp_coeffs, rpp_alpha, point_3d
217 REAL(8), DIMENSION(*), INTENT(out) :: grad_sox_x, grad_sox_y, grad_sox_z, &
218 grad_soy_x, grad_soy_y, grad_soy_z, &
219 grad_soz_x, grad_soz_y, grad_soz_z
220
221! shell centered on atom B
222! pseudopotential expansion
223! differentiation wrt the 3d point (x,y,z)
224! output: matrices d<SO_x>/dx, d<SO_x>/dy, d<SO_x>/dZ
225! output: matrices d<SO_y>/dx, d<SO_y>/dy, d<SO_y>/dZ
226! output: matrices d<SO_z>/dx, d<SO_z>/dy, d<SO_z>/dZ
227
229
230 END INTERFACE
231
232CONTAINS
233
234! **************************************************************************************************
235!> \brief ...
236!> \param origin_A ...
237!> \param L_A ...
238!> \param num_primitives_A ...
239!> \param coeffs_A ...
240!> \param alpha_A ...
241!> \param origin_B ...
242!> \param L_B ...
243!> \param num_primitives_B ...
244!> \param coeffs_B ...
245!> \param alpha_B ...
246!> \param rpp_origin ...
247!> \param num_oc_shells ...
248!> \param oc_shells_L ...
249!> \param oc_shells_J ...
250!> \param rpp_num_primitives ...
251!> \param rpp_powers ...
252!> \param rpp_coeffs ...
253!> \param rpp_alpha ...
254!> \param oc_shells_num_primitives ...
255!> \param oc_shells_coeffs ...
256!> \param oc_shells_alpha ...
257!> \param arep_matrix ...
258!> \param so_x_matrix ...
259!> \param so_y_matrix ...
260!> \param so_z_matrix ...
261! **************************************************************************************************
263 origin_A, L_A, num_primitives_A, coeffs_A, alpha_A, &
264 origin_B, L_B, num_primitives_B, coeffs_B, alpha_B, &
265 rpp_origin, num_oc_shells, &
266 oc_shells_L, oc_shells_J, rpp_num_primitives, rpp_powers, rpp_coeffs, rpp_alpha, &
267 oc_shells_num_primitives, oc_shells_coeffs, oc_shells_alpha, &
268 arep_matrix, so_x_matrix, so_y_matrix, so_z_matrix &
269 )
270
271 ! shell centered on atom A
272 REAL(8), INTENT(in) :: origin_A(*)
273 INTEGER(4), INTENT(in) :: L_A, num_primitives_A
274 REAL(8), INTENT(in) :: coeffs_A(*), alpha_A(*), origin_B(*)
275 INTEGER(4), INTENT(in) :: L_B, num_primitives_B
276 REAL(8), INTENT(in) :: coeffs_B(*), alpha_B(*), rpp_origin(*)
277 INTEGER(4) :: num_oc_shells
278 INTEGER(4), INTENT(in) :: oc_shells_L(:), oc_shells_J(:), &
279 rpp_num_primitives(:), rpp_powers(:, :)
280 REAL(8), INTENT(in) :: rpp_coeffs(:, :), rpp_alpha(:, :)
281 INTEGER(4) :: oc_shells_num_primitives(:)
282 REAL(8) :: oc_shells_coeffs(:, :), &
283 oc_shells_alpha(:, :)
284 REAL(8), INTENT(out) :: arep_matrix(*), so_x_matrix(*), &
285 so_y_matrix(*), so_z_matrix(*)
286
287 INTEGER :: i, j, ncart1, ncart2
288 INTERFACE
290 origin_A, L_A, num_primitives_A, coeffs_A, alpha_A, &
291 origin_B, L_B, num_primitives_B, coeffs_B, alpha_B, &
292 pot_origin, pot_L, pot_J, pot_num_primitives, pot_powers, pot_coeffs, pot_alpha, &
293 oc_shell_num_primitives, oc_shell_coeffs, oc_shell_alpha, &
294 arep_matrix, so_x_matrix, so_y_matrix, so_z_matrix) &
295 BIND(C, name="libgrpp_outercore_potential_integrals_part_1_")
296 IMPORT :: c_int32_t, c_double
297 REAL(kind=c_double), DIMENSION(*) :: origin_a
298 INTEGER(kind=C_INT32_T) :: L_A
299 INTEGER(kind=C_INT32_T) :: num_primitives_A
300 REAL(kind=c_double), DIMENSION(*) :: coeffs_a
301 REAL(kind=c_double), DIMENSION(*) :: alpha_a
302 REAL(kind=c_double), DIMENSION(*) :: origin_b
303 INTEGER(kind=C_INT32_T) :: L_B
304 INTEGER(kind=C_INT32_T) :: num_primitives_B
305 REAL(kind=c_double), DIMENSION(*) :: coeffs_b
306 REAL(kind=c_double), DIMENSION(*) :: alpha_b
307 REAL(kind=c_double), DIMENSION(*) :: pot_origin
308 INTEGER(kind=C_INT32_T) :: pot_L
309 INTEGER(kind=C_INT32_T) :: pot_J
310 INTEGER(kind=C_INT32_T) :: pot_num_primitives
311 INTEGER(kind=C_INT32_T), DIMENSION(*) :: pot_powers
312 REAL(kind=c_double), DIMENSION(*) :: pot_coeffs
313 REAL(kind=c_double), DIMENSION(*) :: pot_alpha
314 INTEGER(kind=C_INT32_T) :: oc_shell_num_primitives
315 REAL(kind=c_double), DIMENSION(*) :: oc_shell_coeffs
316 REAL(kind=c_double), DIMENSION(*) :: oc_shell_alpha
317 REAL(kind=c_double), DIMENSION(*) :: arep_matrix
318 REAL(kind=c_double), DIMENSION(*) :: so_x_matrix
319 REAL(kind=c_double), DIMENSION(*) :: so_y_matrix
320 REAL(kind=c_double), DIMENSION(*) :: so_z_matrix
322 END INTERFACE
323 INTERFACE
325 origin_A, L_A, num_primitives_A, coeffs_A, alpha_A, &
326 origin_B, L_B, num_primitives_B, coeffs_B, alpha_B, &
327 pot_origin, oc_shell_1_L, oc_shell_1_J, &
328 pot1_num_primitives, pot1_powers, pot1_coeffs, pot1_alpha, &
329 oc_shell_1_num_primitives, oc_shell_1_coeffs, oc_shell_1_alpha, &
330 oc_shell_2_L, oc_shell_2_J, pot2_num_primitives, pot2_powers, pot2_coeffs, &
331 pot2_alpha, oc_shell_2_num_primitives, oc_shell_2_coeffs, oc_shell_2_alpha, &
332 arep_matrix, so_x_matrix, so_y_matrix, so_z_matrix) &
333 BIND(C, name="libgrpp_outercore_potential_integrals_part_2_")
334 IMPORT :: c_int32_t, c_double
335 REAL(kind=c_double), DIMENSION(*) :: origin_a
336 INTEGER(kind=C_INT32_T) :: L_A
337 INTEGER(kind=C_INT32_T) :: num_primitives_A
338 REAL(kind=c_double), DIMENSION(*) :: coeffs_a
339 REAL(kind=c_double), DIMENSION(*) :: alpha_a
340 REAL(kind=c_double), DIMENSION(*) :: origin_b
341 INTEGER(kind=C_INT32_T) :: L_B
342 INTEGER(kind=C_INT32_T) :: num_primitives_B
343 REAL(kind=c_double), DIMENSION(*) :: coeffs_b
344 REAL(kind=c_double), DIMENSION(*) :: alpha_b
345 REAL(kind=c_double), DIMENSION(*) :: pot_origin
346 INTEGER(kind=C_INT32_T) :: oc_shell_1_L
347 INTEGER(kind=C_INT32_T) :: oc_shell_1_J
348 INTEGER(kind=C_INT32_T) :: pot1_num_primitives
349 INTEGER(kind=C_INT32_T), DIMENSION(*) :: pot1_powers
350 REAL(kind=c_double), DIMENSION(*) :: pot1_coeffs
351 REAL(kind=c_double), DIMENSION(*) :: pot1_alpha
352 INTEGER(kind=C_INT32_T) :: oc_shell_1_num_primitives
353 REAL(kind=c_double), DIMENSION(*) :: oc_shell_1_coeffs
354 REAL(kind=c_double), DIMENSION(*) :: oc_shell_1_alpha
355 INTEGER(kind=C_INT32_T) :: oc_shell_2_L
356 INTEGER(kind=C_INT32_T) :: oc_shell_2_J
357 INTEGER(kind=C_INT32_T) :: pot2_num_primitives
358 INTEGER(kind=C_INT32_T), DIMENSION(*) :: pot2_powers
359 REAL(kind=c_double), DIMENSION(*) :: pot2_coeffs
360 REAL(kind=c_double), DIMENSION(*) :: pot2_alpha
361 INTEGER(kind=C_INT32_T) :: oc_shell_2_num_primitives
362 REAL(kind=c_double), DIMENSION(*) :: oc_shell_2_coeffs
363 REAL(kind=c_double), DIMENSION(*) :: oc_shell_2_alpha
364 REAL(kind=c_double), DIMENSION(*) :: arep_matrix
365 REAL(kind=c_double), DIMENSION(*) :: so_x_matrix
366 REAL(kind=c_double), DIMENSION(*) :: so_y_matrix
367 REAL(kind=c_double), DIMENSION(*) :: so_z_matrix
369 END INTERFACE
370
371! shell centered on atom B
372! pseudopotential expansion
373! outercore shells
374! output: matrices with PP integrals
375! local variables
376
377 ncart1 = (l_a + 1)*(l_a + 2)/2
378 ncart2 = (l_b + 1)*(l_b + 2)/2
379
380 arep_matrix(1:ncart1*ncart2) = 0.0d0
381 so_x_matrix(1:ncart1*ncart2) = 0.0d0
382 so_y_matrix(1:ncart1*ncart2) = 0.0d0
383 so_z_matrix(1:ncart1*ncart2) = 0.0d0
384
385 ! the first non-local term:
386 ! \sum_{nlj} U*|nlj><nlj| + |nlj><nlj|*U
387 DO i = 1, num_oc_shells
389 origin_a, l_a, num_primitives_a, coeffs_a, alpha_a, &
390 origin_b, l_b, num_primitives_b, coeffs_b, alpha_b, &
391 rpp_origin, oc_shells_l(i), oc_shells_j(i), &
392 rpp_num_primitives(i), rpp_powers(i, :), rpp_coeffs(i, :), rpp_alpha(i, :), &
393 oc_shells_num_primitives(i), oc_shells_coeffs(i, :), oc_shells_alpha(i, :), &
394 arep_matrix, so_x_matrix, so_y_matrix, so_z_matrix &
395 )
396 END DO
397
398 ! the second non-local term:
399 ! \sum_{nlj,n'lj} |nlj><nlj| U |n'lj><n'lj|
400 DO i = 1, num_oc_shells
401 DO j = 1, num_oc_shells
402
404 origin_a, l_a, num_primitives_a, coeffs_a, alpha_a, &
405 origin_b, l_b, num_primitives_b, coeffs_b, alpha_b, &
406 rpp_origin, &
407 oc_shells_l(i), oc_shells_j(i), &
408 rpp_num_primitives(i), rpp_powers(i, :), rpp_coeffs(i, :), rpp_alpha(i, :), &
409 oc_shells_num_primitives(i), oc_shells_coeffs(i, :), oc_shells_alpha(i, :), &
410 oc_shells_l(j), oc_shells_j(j), &
411 rpp_num_primitives(j), rpp_powers(j, :), rpp_coeffs(j, :), rpp_alpha(j, :), &
412 oc_shells_num_primitives(j), oc_shells_coeffs(j, :), oc_shells_alpha(j, :), &
413 arep_matrix, so_x_matrix, so_y_matrix, so_z_matrix &
414 )
415
416 END DO
417 END DO
418
420END MODULE libgrpp
421
void libgrpp_finalize()
void libgrpp_spin_orbit_integrals_gradient(libgrpp_shell_t *shell_A, libgrpp_shell_t *shell_B, double *grpp_origin, libgrpp_potential_t *potential, double *point_3d, double **grad_so_x, double **grad_so_y, double **grad_so_z)
void libgrpp_outercore_potential_integrals_part_1(libgrpp_shell_t *shell_A, libgrpp_shell_t *shell_B, double *C, libgrpp_potential_t *oc_potential, libgrpp_shell_t *oc_shell, double *arep_matrix, double *so_x_matrix, double *so_y_matrix, double *so_z_matrix)
void libgrpp_outercore_potential_integrals(libgrpp_shell_t *shell_A, libgrpp_shell_t *shell_B, double *rpp_origin, int num_oc_shells, libgrpp_potential_t **oc_potentials, libgrpp_shell_t **oc_shells, double *arep, double *esop_x, double *esop_y, double *esop_z)
void libgrpp_outercore_potential_integrals_part_2(libgrpp_shell_t *shell_A, libgrpp_shell_t *shell_B, double *C, libgrpp_potential_t *oc_potential_1, libgrpp_shell_t *oc_shell_1, libgrpp_potential_t *oc_potential_2, libgrpp_shell_t *oc_shell_2, double *arep_matrix, double *so_x_matrix, double *so_y_matrix, double *so_z_matrix)
void libgrpp_set_angular_screening_tolerance(double tolerance)
void libgrpp_set_radial_tolerance(double tolerance)
void libgrpp_set_cartesian_order(int order)
void libgrpp_set_default_parameters()
void libgrpp_set_modified_bessel_tolerance(double tolerance)
void libgrpp_spin_orbit_integrals(libgrpp_shell_t *shell_A, libgrpp_shell_t *shell_B, double *rpp_origin, libgrpp_potential_t *potential, double *so_x_matrix, double *so_y_matrix, double *so_z_matrix)