atmcfg_m Module


Uses

  • module~~atmcfg_m~~UsesGraph module~atmcfg_m atmcfg_m module~constants_m constants_m module~atmcfg_m->module~constants_m iso_fortran_env iso_fortran_env module~constants_m->iso_fortran_env

Used by

  • module~~atmcfg_m~~UsedByGraph module~atmcfg_m atmcfg_m module~ia_dihedral_m ia_dihedral_m module~ia_dihedral_m->module~atmcfg_m module~ia_vdw_m ia_vdw_m module~ia_vdw_m->module~atmcfg_m module~ia_external_m ia_external_m module~ia_external_m->module~atmcfg_m module~ia_angle_m ia_angle_m module~ia_angle_m->module~atmcfg_m module~ia_tether_m ia_tether_m module~ia_tether_m->module~atmcfg_m module~setup_m setup_m module~setup_m->module~atmcfg_m module~config_io_m config_io_m module~setup_m->module~config_io_m module~stats_m stats_m module~setup_m->module~stats_m module~bd_solver_m bd_solver_m module~setup_m->module~bd_solver_m module~interaction_m interaction_m module~setup_m->module~interaction_m module~pairtab_m pairtab_m module~pairtab_m->module~atmcfg_m module~config_io_m->module~atmcfg_m module~stats_m->module~atmcfg_m module~bd_solver_m->module~atmcfg_m module~bd_solver_m->module~config_io_m module~bd_solver_m->module~stats_m module~bd_solver_m->module~interaction_m module~interaction_m->module~atmcfg_m module~interaction_m->module~ia_dihedral_m module~interaction_m->module~ia_vdw_m module~interaction_m->module~ia_external_m module~interaction_m->module~ia_angle_m module~interaction_m->module~ia_tether_m module~interaction_m->module~pairtab_m module~interaction_m->module~stats_m program~main main program~main->module~setup_m

Contents


Variables

TypeVisibility AttributesNameInitial
integer, public, parameter:: mxparam =12

Maximum number of parameters for bonds, angles, etc.


Derived Types

type, public :: atmcfg_t

Components

TypeVisibility AttributesNameInitial
integer, public :: num_atom_types =0

Number of atom_types

character(len=8), public, dimension(:), allocatable:: atom_names

(num_atom_types,) array. Name of atoms of each type.

integer, public, dimension(:), allocatable:: atom_styles

(num_atom_types,) array. Style of atoms of each type.

real(kind=rp), public, dimension(:), allocatable:: atom_mass

(num_atom_types,) array. Mass of atoms of each type.

integer, public :: num_atoms =0

Number of atoms

integer, public, dimension(:), allocatable:: atoms

(num_atoms,) array.

Read more…
real(kind=rp), public, dimension(:), allocatable:: charge

(num_atoms,) array.

real(kind=rp), public, dimension(:,:), allocatable:: coordinates

(3, num_atoms) array

real(kind=rp), public, dimension(:,:), allocatable:: forces

(3, num_atoms) array

integer, public :: num_bond_types =0

Number of bond_types

integer, public, dimension(:), allocatable:: bond_styles

(num_bond_types,) array.

real(kind=rp), public, dimension(:,:), allocatable:: bond_params

(mxparam,num_bond_types) array.

integer, public :: num_bonds =0

Total number of bonds.

integer, public, dimension(:,:), allocatable:: bonds

(3, num_bonds) array. Bond i is of type bt = bonds(1,i), directed from atom bonds(2,i) to bonds(3,i). Its style is bond_styles(bt) with parameters bond_params(:,bt).

integer, public :: num_angle_types =0

Number of angle_types

integer, public, dimension(:), allocatable:: angle_styles

(num_angle_types,) array

real(kind=rp), public, dimension(:,:), allocatable:: angle_params

(mxparam, num_angle_types) array

integer, public :: num_angles =0

Number of angles

integer, public, dimension(:,:), allocatable:: angles

(4, num_angles) array. Angle i is of type ant = angles(1,i), incident to atoms angles(2,i), angles(3,i), and angles(4,i). Its style is angle_styles(ant) with parameters angle_params(:,ant).

integer, public :: num_dihedral_types =0

Number of dihedral_types

integer, public, dimension(:), allocatable:: dihedral_styles

(num_dihedral_types,) array

real(kind=rp), public, dimension(:,:), allocatable:: dihedral_params

(mxparam, num_dihedral_types) array

integer, public :: num_dihedrals =0

Number of dihedrals

integer, public, dimension(:,:), allocatable:: dihedrals

(5, num_dihedrals) array. Dihedral i is of type dt = dihedrals(1,i), incident to atoms dihedrals(2,i), dihedrals(3,i), dihedrals(4,i), and dihedrals(5,i). Its style is dihedral_styles(dt) with parameters dihedral_params(:,dt).

integer, public :: num_branches =0

Total number of branches (including the backbone)

integer, public, dimension(:,:), allocatable:: branches

(3,num_branches) array. Branch i is tethered to atom branches(1,i), contains branches(2,i) atoms, with the beginning atom index branches(3,i).

integer, public :: num_molecule_types =0

Number of molecule_types

character(len=8), public, dimension(:), allocatable:: molecule_names

(num_molecule_types,) array

integer, public, dimension(:), allocatable:: molecule_pop

(num_molecule_types,) array

integer, public :: num_molecules =0

Number of molecules

integer, public, dimension(:,:), allocatable:: molecules

(9,num_molecules) array. For molecule i, its type mt = molecules(1,i), containing molecules(2,i) atoms with beginning index molecules(3,i), molecules(4,i) bonds with beginning index molecules(5,i), molecules(6,i) angles with beginning index molecules(7,i), and molecules(8,i) dihedrals with beginning index molecules(9,i).

real(kind=rp), public, dimension(3):: molecule_com =0.0_rp

Center of mass of the molecule. This is used only when imcon == 0, i.e. for a single molecule without periodic boundaries.

integer, public :: num_tether_types =0

Number of tether_types

integer, public, dimension(:), allocatable:: tether_styles

(num_tether_types,) array

real(kind=rp), public, dimension(:,:), allocatable:: tether_params

(mxparam, num_tether_types) array

integer, public :: num_tethers =0

Number of tethers

integer, public, dimension(:,:), allocatable:: tethers

(2, num_tethers) array. Tether i is of type tt = tethers(1,i), tethering atom tethers(2,i) to a point tether_points(:,i). Its style is tether_styles(tt) with parameters tether_params(:,tt).

real(kind=rp), public, dimension(:,:), allocatable:: tether_points

(3, num_tethers) array

integer, public :: num_vdw_types =0

Number of vdw_types

integer, public, dimension(:), allocatable:: vdw_styles

(num_vdw_types,) array

real(kind=rp), public, dimension(:,:), allocatable:: vdw_params

(mxparam, num_vdw_types) array

integer, public, dimension(:,:), allocatable:: vdw_pairs

(2, num_vdw_types) array. Stores atom type of interacting pairs, such that at_i >= at_j.

integer, public :: num_externals =0

Number of external fields

integer, public, dimension(:), allocatable:: external_styles

(num_external,) array

real(kind=rp), public, dimension(:,:), allocatable:: external_params

(mxparam, num_external) array

integer, public :: flow_style =0
real(kind=rp), public, dimension(:), allocatable:: flow_params

(mxparam,) array


Subroutines

public subroutine atmcfg_delete(this)

Deallocates all memory acquired by a configuration_t object and resets all other components to zero. Exception: num_coeffs is not reset to zero.

Arguments

Type IntentOptional AttributesName
type(atmcfg_t), intent(inout) :: this