mod_topology Module


Uses

  • module~~mod_topology~~UsesGraph module~mod_topology mod_topology module~mod_adjacency_mat mod_adjacency_mat module~mod_topology->module~mod_adjacency_mat module~mod_memory mod_memory module~mod_topology->module~mod_memory module~mod_adjacency_mat->module~mod_memory module~mod_io mod_io module~mod_memory->module~mod_io module~mod_constants mod_constants module~mod_memory->module~mod_constants iso_c_binding iso_c_binding module~mod_memory->iso_c_binding module~mod_io->module~mod_constants module~mod_constants->iso_c_binding

Used by

  • module~~mod_topology~~UsedByGraph module~mod_topology mod_topology proc~ommp_qm_helper_set_frozen_atoms ommp_qm_helper_set_frozen_atoms proc~ommp_qm_helper_set_frozen_atoms->module~mod_topology module~mod_mmpol mod_mmpol module~mod_mmpol->module~mod_topology module~mod_nonbonded mod_nonbonded module~mod_mmpol->module~mod_nonbonded module~mod_link_atom mod_link_atom module~mod_mmpol->module~mod_link_atom module~mod_electrostatics mod_electrostatics module~mod_mmpol->module~mod_electrostatics module~mod_bonded mod_bonded module~mod_mmpol->module~mod_bonded proc~qm_helper_terminate qm_helper_terminate proc~qm_helper_terminate->module~mod_topology proc~qm_helper_terminate->module~mod_nonbonded module~mod_nonbonded->module~mod_topology proc~qm_helper_init qm_helper_init proc~qm_helper_init->module~mod_topology module~mod_link_atom->module~mod_topology module~mod_link_atom->module~mod_nonbonded module~mod_link_atom->module~mod_bonded proc~init_link_atom init_link_atom proc~init_link_atom->module~mod_topology proc~mmpol_init_from_xyz mmpol_init_from_xyz proc~mmpol_init_from_xyz->module~mod_topology proc~mmpol_init_from_xyz->module~mod_mmpol proc~mmpol_init_from_xyz->module~mod_electrostatics module~mod_prm mod_prm proc~mmpol_init_from_xyz->module~mod_prm module~mod_qm_helper mod_qm_helper module~mod_qm_helper->module~mod_topology module~mod_qm_helper->module~mod_mmpol module~mod_qm_helper->module~mod_nonbonded proc~ommp_system_from_qm_helper ommp_system_from_qm_helper proc~ommp_system_from_qm_helper->module~mod_topology proc~ommp_system_from_qm_helper->module~mod_mmpol proc~ommp_system_from_qm_helper->module~mod_prm proc~init_bonded_for_link_atom init_bonded_for_link_atom proc~init_bonded_for_link_atom->module~mod_topology proc~init_bonded_for_link_atom->module~mod_bonded proc~init_bonded_for_link_atom->module~mod_prm proc~ommp_set_frozen_atoms ommp_set_frozen_atoms proc~ommp_set_frozen_atoms->module~mod_topology proc~add_link_atom add_link_atom proc~add_link_atom->module~mod_topology module~mod_geomgrad mod_geomgrad module~mod_geomgrad->module~mod_topology module~mod_geomgrad->module~mod_mmpol proc~ommp_create_link_atom ommp_create_link_atom proc~ommp_create_link_atom->module~mod_topology proc~ommp_create_link_atom->module~mod_mmpol proc~ommp_create_link_atom->module~mod_nonbonded proc~ommp_create_link_atom->module~mod_link_atom proc~ommp_create_link_atom->module~mod_qm_helper module~mod_electrostatics->module~mod_topology module~ommp_interface ommp_interface module~ommp_interface->module~mod_topology module~ommp_interface->module~mod_mmpol module~ommp_interface->module~mod_qm_helper module~ommp_interface->module~mod_electrostatics module~mod_iohdf5 mod_iohdf5 module~ommp_interface->module~mod_iohdf5 module~mod_iohdf5->module~mod_topology module~mod_iohdf5->module~mod_mmpol module~mod_iohdf5->module~mod_nonbonded module~mod_iohdf5->module~mod_electrostatics module~mod_iohdf5->module~mod_bonded proc~qm_helper_update_coord qm_helper_update_coord proc~qm_helper_update_coord->module~mod_topology module~mod_bonded->module~mod_topology module~mod_prm->module~mod_topology module~mod_prm->module~mod_electrostatics module~mod_prm->module~mod_bonded proc~init_vdw_for_link_atom init_vdw_for_link_atom proc~init_vdw_for_link_atom->module~mod_topology proc~assign_pitors assign_pitors proc~assign_pitors->module~mod_bonded proc~c_ommp_qm_helper_get_e_p2n C_ommp_qm_helper_get_E_p2n proc~c_ommp_qm_helper_get_e_p2n->module~mod_qm_helper proc~ommp_terminate_qm_helper ommp_terminate_qm_helper proc~ommp_terminate_qm_helper->module~mod_qm_helper proc~r1_hdf5_read_array r1_hdf5_read_array proc~r1_hdf5_read_array->module~mod_mmpol proc~i1_hdf5_read_array i1_hdf5_read_array proc~i1_hdf5_read_array->module~mod_mmpol proc~ommp_potential_mm2ext ommp_potential_mm2ext proc~ommp_potential_mm2ext->module~mod_electrostatics proc~c_ommp_qm_helper_use_frozen C_ommp_qm_helper_use_frozen proc~c_ommp_qm_helper_use_frozen->module~mod_qm_helper proc~c_ommp_qm_helper_get_frozen C_ommp_qm_helper_get_frozen proc~c_ommp_qm_helper_get_frozen->module~mod_qm_helper proc~c_ommp_qm_helper_get_cqm C_ommp_qm_helper_get_cqm proc~c_ommp_qm_helper_get_cqm->module~mod_qm_helper proc~ommp_qm_helper_vdw_energy ommp_qm_helper_vdw_energy proc~ommp_qm_helper_vdw_energy->module~mod_qm_helper proc~ommp_qm_helper_vdw_geomgrad ommp_qm_helper_vdw_geomgrad proc~ommp_qm_helper_vdw_geomgrad->module~mod_qm_helper proc~ommp_get_strbnd_energy ommp_get_strbnd_energy proc~ommp_get_strbnd_energy->module~mod_bonded proc~ommp_get_pitors_energy ommp_get_pitors_energy proc~ommp_get_pitors_energy->module~mod_bonded proc~ommp_update_link_atoms_position ommp_update_link_atoms_position proc~ommp_update_link_atoms_position->module~mod_link_atom proc~ommp_update_link_atoms_position->module~mod_qm_helper proc~ommp_turn_pol_off ommp_turn_pol_off proc~ommp_turn_pol_off->module~mod_electrostatics proc~ommp_field_pol2ext ommp_field_pol2ext proc~ommp_field_pol2ext->module~mod_electrostatics proc~l1_hdf5_read_array l1_hdf5_read_array proc~l1_hdf5_read_array->module~mod_mmpol proc~r3_hdf5_read_array r3_hdf5_read_array proc~r3_hdf5_read_array->module~mod_mmpol proc~ommp_qm_helper_link_atom_geomgrad ommp_qm_helper_link_atom_geomgrad proc~ommp_qm_helper_link_atom_geomgrad->module~mod_qm_helper proc~ommp_set_external_field ommp_set_external_field proc~ommp_set_external_field->module~mod_electrostatics module~mod_polarization mod_polarization proc~ommp_set_external_field->module~mod_polarization proc~electrostatic_for_ene electrostatic_for_ene proc~electrostatic_for_ene->module~mod_electrostatics proc~c_ommp_set_fmm_min_cell_size C_ommp_set_fmm_min_cell_size proc~c_ommp_set_fmm_min_cell_size->module~mod_electrostatics proc~ommp_angtor_geomgrad ommp_angtor_geomgrad proc~ommp_angtor_geomgrad->module~mod_bonded proc~link_atom_angle_geomgrad link_atom_angle_geomgrad proc~link_atom_angle_geomgrad->module~mod_bonded proc~c_ommp_qm_helper_get_e_m2n C_ommp_qm_helper_get_E_m2n proc~c_ommp_qm_helper_get_e_m2n->module~mod_qm_helper proc~ommp_get_urey_energy ommp_get_urey_energy proc~ommp_get_urey_energy->module~mod_bonded proc~c_ommp_terminate_qm_helper C_ommp_terminate_qm_helper proc~c_ommp_terminate_qm_helper->module~mod_qm_helper proc~ommp_angle_geomgrad ommp_angle_geomgrad proc~ommp_angle_geomgrad->module~mod_link_atom proc~ommp_angle_geomgrad->module~mod_bonded proc~c_ommp_qm_helper_get_nmm C_ommp_qm_helper_get_nmm proc~c_ommp_qm_helper_get_nmm->module~mod_qm_helper proc~assign_strbnd assign_strbnd proc~assign_strbnd->module~mod_bonded proc~assign_tortors assign_tortors proc~assign_tortors->module~mod_bonded proc~ommp_vdw_geomgrad ommp_vdw_geomgrad proc~ommp_vdw_geomgrad->module~mod_nonbonded proc~ommp_get_full_bnd_energy ommp_get_full_bnd_energy proc~ommp_get_full_bnd_energy->module~mod_link_atom proc~ommp_get_full_bnd_energy->module~mod_bonded proc~ommp_bond_geomgrad ommp_bond_geomgrad proc~ommp_bond_geomgrad->module~mod_link_atom proc~ommp_bond_geomgrad->module~mod_bonded proc~ommp_get_vdw_energy ommp_get_vdw_energy proc~ommp_get_vdw_energy->module~mod_nonbonded proc~ommp_get_torsion_energy ommp_get_torsion_energy proc~ommp_get_torsion_energy->module~mod_link_atom proc~ommp_get_torsion_energy->module~mod_bonded proc~ommp_potential_pol2ext ommp_potential_pol2ext proc~ommp_potential_pol2ext->module~mod_electrostatics proc~link_atom_torsion_geomgrad link_atom_torsion_geomgrad proc~link_atom_torsion_geomgrad->module~mod_bonded proc~assign_imptorsion assign_imptorsion proc~assign_imptorsion->module~mod_bonded proc~assign_torsion assign_torsion proc~assign_torsion->module~mod_bonded proc~electrostatic_for_grad electrostatic_for_grad proc~electrostatic_for_grad->module~mod_electrostatics proc~qm_helper_init_vdw_prm qm_helper_init_vdw_prm proc~qm_helper_init_vdw_prm->module~mod_prm proc~assign_bond assign_bond proc~assign_bond->module~mod_bonded proc~ommp_strtor_geomgrad ommp_strtor_geomgrad proc~ommp_strtor_geomgrad->module~mod_bonded proc~c_ommp_set_fmm_distance C_ommp_set_fmm_distance proc~c_ommp_set_fmm_distance->module~mod_electrostatics proc~ommp_torsion_geomgrad ommp_torsion_geomgrad proc~ommp_torsion_geomgrad->module~mod_link_atom proc~ommp_torsion_geomgrad->module~mod_bonded proc~assign_opb assign_opb proc~assign_opb->module~mod_bonded proc~c_ommp_qm_helper_use_nonbonded C_ommp_qm_helper_use_nonbonded proc~c_ommp_qm_helper_use_nonbonded->module~mod_qm_helper proc~ommp_init_qm_helper ommp_init_qm_helper proc~ommp_init_qm_helper->module~mod_qm_helper proc~ommp_set_default_matv ommp_set_default_matv proc~ommp_set_default_matv->module~mod_electrostatics proc~c_ommp_field_mm2ext C_ommp_field_mm2ext proc~c_ommp_field_mm2ext->module~mod_electrostatics proc~i3_hdf5_read_array i3_hdf5_read_array proc~i3_hdf5_read_array->module~mod_mmpol module~mod_polarization->module~mod_mmpol module~mod_polarization->module~mod_electrostatics proc~ommp_full_geomgrad ommp_full_geomgrad proc~ommp_full_geomgrad->module~mod_nonbonded proc~ommp_full_geomgrad->module~mod_geomgrad proc~qm_helper_vdw_geomgrad qm_helper_vdw_geomgrad proc~qm_helper_vdw_geomgrad->module~mod_mmpol proc~qm_helper_vdw_geomgrad->module~mod_nonbonded proc~qm_helper_vdw_geomgrad->module~mod_link_atom proc~c_ommp_qm_helper_get_g_n2p C_ommp_qm_helper_get_G_n2p proc~c_ommp_qm_helper_get_g_n2p->module~mod_qm_helper proc~rotation_geomgrad rotation_geomgrad proc~rotation_geomgrad->module~mod_electrostatics proc~assign_mpoles assign_mpoles proc~assign_mpoles->module~mod_electrostatics proc~ommp_urey_geomgrad ommp_urey_geomgrad proc~ommp_urey_geomgrad->module~mod_bonded proc~assign_pol assign_pol proc~assign_pol->module~mod_electrostatics proc~ommp_get_fixedelec_energy ommp_get_fixedelec_energy proc~ommp_get_fixedelec_energy->module~mod_electrostatics module~mod_ommp_c_interface mod_ommp_C_interface module~mod_ommp_c_interface->module~ommp_interface proc~dipole_t dipole_T proc~dipole_t->module~mod_electrostatics proc~ommp_fixedelec_geomgrad ommp_fixedelec_geomgrad proc~ommp_fixedelec_geomgrad->module~mod_geomgrad proc~qm_helper_link_atom_geomgrad qm_helper_link_atom_geomgrad proc~qm_helper_link_atom_geomgrad->module~mod_mmpol proc~qm_helper_link_atom_geomgrad->module~mod_link_atom module~mod_inputloader mod_inputloader module~mod_inputloader->module~mod_mmpol proc~mmpol_init_from_mmp mmpol_init_from_mmp proc~mmpol_init_from_mmp->module~mod_mmpol proc~mmpol_init_from_mmp->module~mod_electrostatics proc~r2_hdf5_read_array r2_hdf5_read_array proc~r2_hdf5_read_array->module~mod_mmpol proc~i2_hdf5_read_array i2_hdf5_read_array proc~i2_hdf5_read_array->module~mod_mmpol proc~mmpol_init_from_hdf5 mmpol_init_from_hdf5 proc~mmpol_init_from_hdf5->module~mod_mmpol proc~mmpol_init_from_hdf5->module~mod_nonbonded proc~mmpol_init_from_hdf5->module~mod_electrostatics proc~mmpol_init_from_hdf5->module~mod_bonded proc~c_ommp_update_coordinates C_ommp_update_coordinates proc~c_ommp_update_coordinates->module~mod_mmpol proc~ommp_get_polelec_energy ommp_get_polelec_energy proc~ommp_get_polelec_energy->module~mod_electrostatics proc~ommp_get_polelec_energy->module~mod_polarization proc~c_ommp_full_geomgrad C_ommp_full_geomgrad proc~c_ommp_full_geomgrad->module~ommp_interface proc~ommp_get_imptorsion_energy ommp_get_imptorsion_energy proc~ommp_get_imptorsion_energy->module~mod_bonded proc~init_eel_for_link_atom init_eel_for_link_atom proc~init_eel_for_link_atom->module~mod_electrostatics proc~init_eel_for_link_atom->module~mod_prm proc~link_atom_bond_geomgrad link_atom_bond_geomgrad proc~link_atom_bond_geomgrad->module~mod_bonded proc~c_ommp_qm_helper_get_e_n2m C_ommp_qm_helper_get_E_n2m proc~c_ommp_qm_helper_get_e_n2m->module~mod_qm_helper proc~ommp_full_bnd_geomgrad ommp_full_bnd_geomgrad proc~ommp_full_bnd_geomgrad->module~mod_link_atom proc~ommp_full_bnd_geomgrad->module~mod_bonded proc~c_ommp_field_pol2ext C_ommp_field_pol2ext proc~c_ommp_field_pol2ext->module~mod_electrostatics proc~ommp_polelec_geomgrad ommp_polelec_geomgrad proc~ommp_polelec_geomgrad->module~mod_geomgrad proc~ommp_potential_mmpol2ext ommp_potential_mmpol2ext proc~ommp_potential_mmpol2ext->module~mod_electrostatics proc~ommp_set_vdw_cutoff ommp_set_vdw_cutoff proc~ommp_set_vdw_cutoff->module~mod_nonbonded proc~l2_hdf5_read_array l2_hdf5_read_array proc~l2_hdf5_read_array->module~mod_mmpol proc~qm_helper_init_vdw qm_helper_init_vdw proc~qm_helper_init_vdw->module~mod_nonbonded proc~update_coordinates update_coordinates proc~update_coordinates->module~mod_link_atom proc~update_coordinates->module~mod_electrostatics proc~ommp_get_bond_energy ommp_get_bond_energy proc~ommp_get_bond_energy->module~mod_link_atom proc~ommp_get_bond_energy->module~mod_bonded proc~ommp_set_default_solver ommp_set_default_solver proc~ommp_set_default_solver->module~mod_electrostatics proc~ommp_field_mmpol2ext ommp_field_mmpol2ext proc~ommp_field_mmpol2ext->module~mod_electrostatics proc~assign_angle assign_angle proc~assign_angle->module~mod_bonded proc~ommp_pitors_geomgrad ommp_pitors_geomgrad proc~ommp_pitors_geomgrad->module~mod_bonded proc~assign_angtor assign_angtor proc~assign_angtor->module~mod_bonded proc~ommp_strbnd_geomgrad ommp_strbnd_geomgrad proc~ommp_strbnd_geomgrad->module~mod_bonded proc~ommp_get_angtor_energy ommp_get_angtor_energy proc~ommp_get_angtor_energy->module~mod_bonded proc~assign_strtor assign_strtor proc~assign_strtor->module~mod_bonded proc~qm_helper_vdw_energy qm_helper_vdw_energy proc~qm_helper_vdw_energy->module~mod_mmpol proc~qm_helper_vdw_energy->module~mod_nonbonded proc~qm_helper_vdw_energy->module~mod_link_atom proc~c_ommp_qm_helper_get_v_m2n C_ommp_qm_helper_get_V_m2n proc~c_ommp_qm_helper_get_v_m2n->module~mod_qm_helper proc~rotate_multipoles rotate_multipoles proc~rotate_multipoles->module~mod_electrostatics module~mod_solvers mod_solvers module~mod_solvers->module~mod_electrostatics proc~c_ommp_qm_helper_get_e_n2p C_ommp_qm_helper_get_E_n2p proc~c_ommp_qm_helper_get_e_n2p->module~mod_qm_helper proc~c_ommp_qm_helper_get_h_n2m C_ommp_qm_helper_get_H_n2m proc~c_ommp_qm_helper_get_h_n2m->module~mod_qm_helper proc~ommp_get_link_atom_coordinates ommp_get_link_atom_coordinates proc~ommp_get_link_atom_coordinates->module~mod_link_atom proc~ommp_get_angle_energy ommp_get_angle_energy proc~ommp_get_angle_energy->module~mod_link_atom proc~ommp_get_angle_energy->module~mod_bonded proc~c_ommp_qm_helper_get_v_p2n C_ommp_qm_helper_get_V_p2n proc~c_ommp_qm_helper_get_v_p2n->module~mod_qm_helper proc~polelec_geomgrad polelec_geomgrad proc~polelec_geomgrad->module~mod_electrostatics proc~polelec_geomgrad->module~mod_polarization proc~ommp_get_tortor_energy ommp_get_tortor_energy proc~ommp_get_tortor_energy->module~mod_bonded proc~ommp_get_opb_energy ommp_get_opb_energy proc~ommp_get_opb_energy->module~mod_bonded proc~assign_urey assign_urey proc~assign_urey->module~mod_bonded proc~ommp_imptorsion_geomgrad ommp_imptorsion_geomgrad proc~ommp_imptorsion_geomgrad->module~mod_bonded proc~ommp_opb_geomgrad ommp_opb_geomgrad proc~ommp_opb_geomgrad->module~mod_bonded proc~c_ommp_qm_helper_get_g_n2m C_ommp_qm_helper_get_G_n2m proc~c_ommp_qm_helper_get_g_n2m->module~mod_qm_helper proc~ommp_qm_helper_update_coord ommp_qm_helper_update_coord proc~ommp_qm_helper_update_coord->module~mod_qm_helper proc~mmpol_init mmpol_init proc~mmpol_init->module~mod_electrostatics proc~assign_vdw assign_vdw proc~assign_vdw->module~mod_nonbonded proc~ommp_field_mm2ext ommp_field_mm2ext proc~ommp_field_mm2ext->module~mod_electrostatics proc~mmpol_terminate mmpol_terminate proc~mmpol_terminate->module~mod_nonbonded proc~mmpol_terminate->module~mod_electrostatics proc~mmpol_terminate->module~mod_bonded proc~ommp_terminate ommp_terminate proc~ommp_terminate->module~mod_mmpol proc~c_ommp_qm_helper_get_qm_atoms C_ommp_qm_helper_get_qm_atoms proc~c_ommp_qm_helper_get_qm_atoms->module~mod_qm_helper proc~c_ommp_qm_helper_get_npol C_ommp_qm_helper_get_npol proc~c_ommp_qm_helper_get_npol->module~mod_qm_helper proc~tmatvec_otf TMatVec_otf proc~tmatvec_otf->module~mod_electrostatics proc~ommp_tortor_geomgrad ommp_tortor_geomgrad proc~ommp_tortor_geomgrad->module~mod_bonded proc~mmpol_prepare mmpol_prepare proc~mmpol_prepare->module~mod_electrostatics proc~c_ommp_get_opb_energy C_ommp_get_opb_energy proc~c_ommp_get_opb_energy->module~mod_bonded proc~ommp_get_strtor_energy ommp_get_strtor_energy proc~ommp_get_strtor_energy->module~mod_bonded proc~fixedelec_geomgrad fixedelec_geomgrad proc~fixedelec_geomgrad->module~mod_electrostatics proc~ommp_init_mmp ommp_init_mmp proc~ommp_init_mmp->module~mod_inputloader proc~polarization polarization proc~polarization->module~mod_solvers proc~ommp_init_xyz ommp_init_xyz proc~ommp_init_xyz->module~mod_inputloader

Contents


Derived Types

type, public ::  ommp_topology_type

Components

Type Visibility Attributes Name Initial
integer(kind=ip), public :: mm_atoms

number of MM atoms

real(kind=rp), public, allocatable :: cmm(:,:)

Coordinates of MM atoms (3:mm_atoms)

type(yale_sparse), public, allocatable :: conn(:)

connectivity matrices listing atoms separetad by 1, 2, 3 (and 4 -- only for AMOEBA) bonds. 1st element is the adjacency matrix.

logical(kind=lp), public :: use_frozen = .false.

Flag to use the frozen atom feature, if it is set to true frozen array is read/used otherwise all atoms are active

logical(kind=lp), public, allocatable :: frozen(:)

For each atom, if set to true, it will contribute to the total energy but its coordinates are locked to the initial value.

integer(kind=ip), public, allocatable :: atz(:)

The atomic number for each atom of the system, when it is not initialized, it contains only zeros.

logical(kind=lp), public :: atz_initialized = .false.

Initialization flag for atz, when it is filled with actual values it should be set to true

real(kind=rp), public, allocatable :: atmass(:)

The atomic mass for each atom in the system, when it is not initialized it contains only zeros

logical(kind=lp), public :: atmass_initialized = .false.

Initialization flag for atmass, when it is filled with actual values it should be set to true

integer(kind=ip), public, allocatable :: attype(:)

Atom class for each atom in the system. It is only used during certain parameters assignaments; when it is not initialized, it contains only zeros.

logical(kind=lp), public :: attype_initialized = .false.

Initialization flag for attype, when it is filled with actual values it should be set to true

integer(kind=ip), public, allocatable :: atclass(:)

Atom class for each atom in the system. It is only used during certain parameters assignaments; when it is not initialized, it contains only zeros.

logical(kind=lp), public :: atclass_initialized = .false.

Initialization flag for atclass, when it is filled with actual values it should be set to true


Subroutines

public subroutine topology_init(top_obj, mm_atoms)

Arguments

Type IntentOptional Attributes Name
type(ommp_topology_type), intent(out) :: top_obj
integer(kind=ip), intent(in) :: mm_atoms

public subroutine guess_connectivity(top, exclude_list)

This subroutine guess the connectivity of the system from the coordinates and the atomic number of its atoms. It is based on distances and atomic radii, so it can easily fail on distorted geometries. It should be used only when the the bonds of the molecule are not availble in any other way; it is often used to assign connectivity to a QM part that does not have any. H B C N O F Si P S Cl As Se Br Te I

Arguments

Type IntentOptional Attributes Name
type(ommp_topology_type), intent(inout) :: top

Topology for which connectivity should be guessed.

integer(kind=ip), intent(in), optional :: exclude_list(:)

List of atoms that should not be connected when guessing the topology, this is used for LA that could have an ambiguous or not defined position.

public subroutine set_frozen(top_obj, frozen_atoms)

Set the frozen atoms in the current topology, if the the frozen atoms has already been set, it reinitialize the whole list, without taking into account the content of [[top_obj%frozen]]

Arguments

Type IntentOptional Attributes Name
type(ommp_topology_type), intent(inout) :: top_obj

Topology object to use

integer(kind=ip), intent(in) :: frozen_atoms(:)

Indexes of atoms to be frozen

public subroutine check_conn_matrix(top_obj, n)

Check if adjacency matrix up to nth order is present in topology object. If it is not present, update the topology accordingly.

Arguments

Type IntentOptional Attributes Name
type(ommp_topology_type), intent(inout) :: top_obj
integer(kind=ip), intent(in) :: n

public subroutine topology_terminate(top_obj)

Arguments

Type IntentOptional Attributes Name
type(ommp_topology_type), intent(out) :: top_obj

public subroutine create_new_bond(top, i, j)

Create a new bond between atoms i and j in the topology.

Arguments

Type IntentOptional Attributes Name
type(ommp_topology_type), intent(inout) :: top
integer(kind=ip), intent(in) :: i
integer(kind=ip), intent(in) :: j

public subroutine merge_top(top1, top2, top3, map13, map23)

Merge topologies top1 and top2 to create top3 no link between the two topologies are created. map13 and map23 are arrays mapping the atoms of top1 to top3 and the ones of top2 to top3 respectively

Arguments

Type IntentOptional Attributes Name
type(ommp_topology_type), intent(in) :: top1
type(ommp_topology_type), intent(in) :: top2
type(ommp_topology_type), intent(out) :: top3
integer(kind=ip), intent(out), allocatable :: map13(:)
integer(kind=ip), intent(out), allocatable :: map23(:)