38#include "./base/base_uses.f90"
46 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'eip_environment'
65 SUBROUTINE eip_init(eip_env, root_section, para_env, force_env_section, &
72 CHARACTER(len=*),
PARAMETER :: routinen =
'eip_init'
78 CALL timeset(routinen, handle)
80 cpassert(
ASSOCIATED(eip_env))
83 NULLIFY (colvar_section, eip_section, subsys)
85 IF (.NOT.
ASSOCIATED(subsys_section))
THEN
91 CALL eip_env_set(eip_env=eip_env, eip_input=eip_section, &
92 force_env_input=force_env_section)
96 CALL eip_init_subsys(eip_env=eip_env, subsys=subsys, &
97 subsys_section=subsys_section)
112 SUBROUTINE eip_init_subsys(eip_env, subsys, subsys_section)
117 CHARACTER(len=*),
PARAMETER :: routinen =
'eip_init_subsys'
119 INTEGER :: handle, natom
121 TYPE(
cell_type),
POINTER :: my_cell, my_cell_ref
129 CALL timeset(routinen, handle)
131 NULLIFY (atomic_kind_set, molecule_kind_set, particle_set, molecule_set, &
132 my_cell, my_cell_ref, local_molecules, local_particles)
134 particle_set => subsys%particles%els
135 atomic_kind_set => subsys%atomic_kinds%els
136 molecule_kind_set => subsys%molecule_kinds%els
137 molecule_set => subsys%molecules%els
138 my_cell => subsys%cell
139 my_cell_ref => subsys%cell_ref
143 cell_ref=my_cell_ref, &
144 use_ref_cell=subsys%use_ref_cell)
152 subsys_section=subsys_section)
154 input_section=subsys_section)
158 particle_set=particle_set, &
159 local_particles=local_particles, &
160 molecule_kind_set=molecule_kind_set, &
161 molecule_set=molecule_set, &
162 local_molecules=local_molecules, &
163 force_env_section=eip_env%force_env_input)
165 natom =
SIZE(particle_set)
167 ALLOCATE (eip_env%eip_forces(3, natom))
169 eip_env%eip_forces(:, :) = 0.0_dp
172 local_molecules=local_molecules, &
173 local_particles=local_particles)
178 CALL eip_init_model(eip_env=eip_env)
180 CALL timestop(handle)
182 END SUBROUTINE eip_init_subsys
191 SUBROUTINE eip_init_model(eip_env)
194 CHARACTER(len=*),
PARAMETER :: routinen =
'eip_init_model'
196 CHARACTER(LEN=default_string_length) :: eip_atomic_kind_name
204 CALL timeset(routinen, handle)
206 NULLIFY (atomic_kind_set, atomic_kind_ptr, eip_section)
211 atomic_kind_set => eip_env%subsys%atomic_kinds%els
214 DO i = 1,
SIZE(atomic_kind_set)
215 atomic_kind_ptr => eip_env%subsys%atomic_kinds%els(i)
217 name=eip_atomic_kind_name)
218 SELECT CASE (eip_atomic_kind_name)
221 keyword_name=
"EIP-Model", &
222 i_val=eip_env%eip_model)
224 cpabort(
"EIP models for other elements than Si isn't implemented yet.")
228 CALL timestop(handle)
230 END SUBROUTINE eip_init_model
Define the atomic kind types and their sub types.
subroutine, public get_atomic_kind(atomic_kind, fist_potential, element_symbol, name, mass, kind_number, natom, atom_list, rcov, rvdw, z, qeff, apol, cpol, mm_radius, shell, shell_active, damping)
Get attributes of an atomic kind.
Handles all functions related to the CELL.
Initialize a small environment for a particular calculation.
subroutine, public cp_subsys_create(subsys, para_env, root_section, force_env_section, subsys_section, use_motion_section, qmmm, qmmm_env, exclusions, elkind)
Creates allocates and fills subsys from given input.
types that represent a subsys, i.e. a part of the system
stores a lists of integer that are local to a processor. The idea is that these integers represent ob...
subroutine, public distribution_1d_release(distribution_1d)
releases the given distribution_1d
Distribution methods for atoms, particles, or molecules.
subroutine, public distribute_molecules_1d(atomic_kind_set, particle_set, local_particles, molecule_kind_set, molecule_set, local_molecules, force_env_section, prev_molecule_kind_set, prev_local_molecules)
Distribute molecules and particles.
The environment for the empirical interatomic potential methods.
subroutine, public eip_env_set(eip_env, eip_model, eip_energy, eip_energy_var, eip_forces, coord_avg, coord_var, count, subsys, atomic_kind_set, particle_set, local_particles, molecule_kind_set, molecule_set, local_molecules, eip_input, force_env_input, cell_ref, use_ref_cell, eip_kinetic_energy, eip_potential_energy)
Sets various attributes of the eip environment.
Methods and functions on the EIP environment.
subroutine, public eip_init(eip_env, root_section, para_env, force_env_section, subsys_section)
Initialize the eip environment.
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length
Interface to the message passing library MPI.
Define the molecule kind structure types and the corresponding functionality.
subroutine, public write_molecule_kind_set(molecule_kind_set, subsys_section)
Write a moleculeatomic kind set data set to the output unit.
Define the data structure for the molecule information.
Define methods related to particle_type.
subroutine, public write_fist_particle_coordinates(particle_set, subsys_section, charges)
Write the atomic coordinates to the output unit.
subroutine, public write_structure_data(particle_set, cell, input_section)
Write structure data requested by a separate structure data input section to the output unit....
subroutine, public write_particle_distances(particle_set, cell, subsys_section)
Write the matrix of the particle distances to the output unit.
Define the data structure for the particle information.
Provides all information about an atomic kind.
Type defining parameters related to the simulation cell.
represents a system: atoms, molecules, their pos,vel,...
structure to store local (to a processor) ordered lists of integers.
The empirical interatomic potential environment.
stores all the informations relevant to an mpi environment