The interface of the library, basically all the operation performed by an external code should be done through the routines of this module. The interface is conceived to work naturally with C and Fortran; the C interface is also used to build the interface for Python. In a fortran code, this module can be imported and it should expose directly all the vector and scalar quantities needed. In a C code, routines are provided to get the pointer or the values of vector and scalar quantites respectively.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character, | public, | parameter | :: | ommp_version_string | = | _OMMP_VERSION |
Solve the polarization equation for a certain external field and compute the interaction energy of the induced dipoles with themselves and fixed multipoles.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_qm_helper), | intent(in) | :: | qm | |||
| type(ommp_system), | intent(inout) | :: | s |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_qm_helper), | intent(inout) | :: | qm | |||
| type(ommp_system), | intent(inout) | :: | s | |||
| integer(kind=ommp_integer), | intent(in) | :: | imm | |||
| integer(kind=ommp_integer), | intent(in) | :: | iqm | |||
| integer(kind=ommp_integer), | intent(in) | :: | ila | |||
| character(len=*), | intent(in) | :: | prmfile | |||
| real(kind=ommp_real), | intent(in), | optional | :: | la_dist_in | ||
| integer(kind=ommp_integer), | intent(in), | optional | :: | n_eel_remove_in |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | pointer | :: | s | |||
| integer(kind=ommp_integer), | intent(in), | value | :: | solver |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | pointer | :: | s | |||
| integer(kind=ommp_integer), | intent(in), | value | :: | matv |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | pointer | :: | s | ||
| character(len=*) | :: | filename |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | pointer | :: | s | ||
| character(len=*) | :: | xyzfile | ||||
| character(len=*) | :: | prmfile |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | pointer | :: | s |
OpenMMPol system |
|
| integer(kind=ommp_integer), | intent(in) | :: | n |
Atoms to freeze |
||
| integer(kind=ommp_integer), | intent(in) | :: | frozen(n) |
Atoms to freeze |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | pointer | :: | s |
OpenMMPol system |
|
| integer(kind=ommp_integer), | intent(in) | :: | n |
Atoms to freeze in MM indexing |
||
| integer(kind=ommp_integer), | intent(in) | :: | nopol(n) |
Atoms to freeze in MM indexing |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | pointer | :: | s |
This function get an external field and solve the polarization system in the presence of the provided external field.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj | ||
| real(kind=ommp_real), | intent(in) | :: | ext_field(3,sys_obj%eel%pol_atoms) | |||
| integer(kind=ommp_integer), | intent(in), | value | :: | solver | ||
| integer(kind=ommp_integer), | intent(in), | value | :: | matv | ||
| logical, | intent(in), | optional, | value | :: | add_mm_field |
This is just the same as ommp_set_external_field but implicitly assuming ommp_set_external_field as false, mainly here for interface consistency with C
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | sys_obj | ||
| real(kind=ommp_real), | intent(in) | :: | ext_field(3,sys_obj%eel%pol_atoms) | |||
| integer(kind=ommp_integer), | intent(in), | value | :: | solver | ||
| integer(kind=ommp_integer), | intent(in), | value | :: | matv |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| integer(kind=ommp_integer), | intent(in) | :: | n | |||
| real(kind=ommp_real), | intent(in) | :: | cext(3,n) | |||
| real(kind=ommp_real), | intent(inout) | :: | v(n) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| integer(kind=ommp_integer), | intent(in) | :: | n | |||
| real(kind=ommp_real), | intent(in) | :: | cext(3,n) | |||
| real(kind=ommp_real), | intent(inout) | :: | v(n) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| integer(kind=ommp_integer), | intent(in) | :: | n | |||
| real(kind=ommp_real), | intent(in) | :: | cext(3,n) | |||
| real(kind=ommp_real), | intent(inout) | :: | v(n) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(in), | target | :: | s | ||
| integer(kind=ommp_integer), | intent(in), | value | :: | n | ||
| real(kind=ommp_real), | intent(in) | :: | cext(3,n) | |||
| real(kind=ommp_real), | intent(out) | :: | E(3,n) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(in), | target | :: | s | ||
| integer(kind=ommp_integer), | intent(in), | value | :: | n | ||
| real(kind=ommp_real), | intent(in) | :: | cext(3,n) | |||
| real(kind=ommp_real), | intent(out) | :: | E(3,n) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(in), | target | :: | s | ||
| integer(kind=ommp_integer), | intent(in), | value | :: | n | ||
| real(kind=ommp_real), | intent(in) | :: | cext(3,n) | |||
| real(kind=ommp_real), | intent(out) | :: | E(3,n) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(in) | :: | E(:,:) | |||
| real(kind=ommp_real), | intent(in) | :: | Egrd(:,:) | |||
| real(kind=ommp_real), | intent(out) | :: | grd(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout), | target | :: | s | ||
| real(kind=ommp_real), | intent(out) | :: | grd(3,s%top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | pointer | :: | s | |||
| character(len=*) | :: | filename | ||||
| character(len=*) | :: | namespace |
This function is an interface for saving an HDF5 file with all the data contained in mmpol module using mod_io
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | pointer | :: | s | |||
| character(len=*) | :: | filename | ||||
| character(len=*) | :: | namespace |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | pointer | :: | s | |||
| character(len=*) | :: | filename | ||||
| character(len=*) | :: | namespace |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_qm_helper), | intent(inout), | pointer | :: | s | ||
| integer(kind=ommp_integer) | :: | n | ||||
| real(kind=ommp_real), | intent(in) | :: | cqm(:,:) | |||
| real(kind=ommp_real), | intent(in) | :: | qqm(:) | |||
| integer(kind=ommp_integer), | intent(in) | :: | zqm(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_qm_helper), | intent(inout), | pointer | :: | s |
OpenMMPol system |
|
| integer(kind=ommp_integer), | intent(in) | :: | n |
Atoms to freeze |
||
| integer(kind=ommp_integer), | intent(in) | :: | frozen(n) |
Atoms to freeze |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_qm_helper), | intent(inout), | pointer | :: | s |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_qm_helper), | intent(inout) | :: | s | |||
| real(kind=ommp_real), | intent(in) | :: | cqm(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_qm_helper), | intent(in) | :: | qm | |||
| type(ommp_system), | intent(inout) | :: | s | |||
| real(kind=ommp_real), | intent(inout) | :: | evdw_ba(qm%qm_top%mm_atoms) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_qm_helper), | intent(in) | :: | qm | |||
| type(ommp_system), | intent(inout) | :: | s | |||
| real(kind=ommp_real), | intent(out) | :: | qmg(:,:) | |||
| real(kind=ommp_real), | intent(out) | :: | mmg(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_qm_helper), | intent(in) | :: | qm | |||
| type(ommp_system), | intent(inout) | :: | s | |||
| real(kind=ommp_real), | intent(out) | :: | qmg(:,:) | |||
| real(kind=ommp_real), | intent(out) | :: | mmg(:,:) | |||
| real(kind=ommp_real), | intent(in) | :: | old_qmg(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(in) | :: | s | |||
| integer(kind=ommp_integer), | intent(in) | :: | la_idx | |||
| real(kind=ommp_real), | intent(out), | dimension(3) | :: | crd |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_qm_helper), | intent(inout) | :: | qm | |||
| type(ommp_system), | intent(inout) | :: | s |
External interface for smartinput function
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | json_filename | |||
| type(ommp_system), | intent(inout), | pointer | :: | system | ||
| type(ommp_qm_helper), | intent(inout), | pointer | :: | qmhelp |
External interface for smartinput function
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | json_filename | |||
| character(len=*), | intent(in) | :: | path | |||
| character(len=*), | intent(inout) | :: | outs |
Takes in input a QM Helper object, with initialized atom types, and using a parameter file, it generates a OMMP System object that corresponds to the QM system. It is used for internal testing pourpose but other creative things are always possible.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_qm_helper), | intent(in) | :: | qmh | |||
| character(len=*), | intent(in) | :: | prm_file | |||
| type(ommp_system), | intent(inout), | pointer | :: | sys |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ommp_system), | intent(inout) | :: | s | |||
| real(kind=ommp_real), | intent(in) | :: | cutoff |