MPI aware entry points of the dispersion calculation.
Every rank holds the complete structure, evaluates the share of the interaction loops assigned to its rank and the results are reduced over the communicator. All routines report the missing feature in the error handler if s-dftd3 was built without MPI support, see dftd3_feature.
Calculate dispersion energy distributed over an MPI communicator
Calculate atom-resolved dispersion energies distributed over a communicator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(error_type), | intent(out), | allocatable | :: | error |
Error handling |
|
| class(structure_type), | intent(in) | :: | mol |
Molecular structure data |
||
| class(d3_model), | intent(in) | :: | disp |
Dispersion model |
||
| class(damping_param), | intent(in) | :: | param |
Damping parameters |
||
| type(realspace_cutoff), | intent(in) | :: | cutoff |
Realspace cutoffs |
||
| integer, | intent(in) | :: | comm |
MPI communicator handle, users of mpi_f08 pass comm%mpi_val |
||
| real(kind=wp), | intent(out), | contiguous | :: | energies(:) |
Dispersion energy |
|
| real(kind=wp), | intent(out), | optional, | contiguous | :: | gradient(:,:) |
Dispersion gradient |
| real(kind=wp), | intent(out), | optional, | contiguous | :: | sigma(:,:) |
Dispersion virial |
| real(kind=wp), | intent(out), | optional, | contiguous | :: | hessian(:,:) |
Dispersion hessian |
Calculate scalar dispersion energy distributed over a communicator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(error_type), | intent(out), | allocatable | :: | error |
Error handling |
|
| class(structure_type), | intent(in) | :: | mol |
Molecular structure data |
||
| class(d3_model), | intent(in) | :: | disp |
Dispersion model |
||
| class(damping_param), | intent(in) | :: | param |
Damping parameters |
||
| type(realspace_cutoff), | intent(in) | :: | cutoff |
Realspace cutoffs |
||
| integer, | intent(in) | :: | comm |
MPI communicator handle, users of mpi_f08 pass comm%mpi_val |
||
| real(kind=wp), | intent(out) | :: | energy |
Dispersion energy |
||
| real(kind=wp), | intent(out), | optional, | contiguous | :: | gradient(:,:) |
Dispersion gradient |
| real(kind=wp), | intent(out), | optional, | contiguous | :: | sigma(:,:) |
Dispersion virial |
| real(kind=wp), | intent(out), | optional, | contiguous | :: | hessian(:,:) |
Dispersion hessian |
Calculate the geometric counterpoise correction distributed over a communicator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(error_type), | intent(out), | allocatable | :: | error |
Error handling |
|
| class(structure_type), | intent(in) | :: | mol |
Molecular structure data |
||
| type(gcp_param), | intent(in) | :: | param |
Geometric counterpoise parameters |
||
| type(realspace_cutoff), | intent(in) | :: | cutoff |
Realspace cutoffs |
||
| integer, | intent(in) | :: | comm |
MPI communicator handle, users of mpi_f08 pass comm%mpi_val |
||
| real(kind=wp), | intent(out) | :: | energy |
Counter-poise energy |
||
| real(kind=wp), | intent(out), | optional, | contiguous | :: | gradient(:,:) |
Counter-poise gradient |
| real(kind=wp), | intent(out), | optional, | contiguous | :: | sigma(:,:) |
Counter-poise virial |
| real(kind=wp), | intent(out), | optional, | contiguous | :: | hessian(:,:) |
Counter-poise hessian |
Create the work partition of the calling rank in a communicator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(error_type), | intent(out), | allocatable | :: | error |
Error handling |
|
| type(work_partition), | intent(out) | :: | partition |
New work partition |
||
| integer, | intent(in) | :: | comm |
MPI communicator handle, users of mpi_f08 pass comm%mpi_val |