37 #include "./base/base_uses.f90"
43 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'mixed_environment'
59 SUBROUTINE mixed_init(mixed_env, root_section, para_env, force_env_section, &
62 TYPE(mixed_environment_type),
INTENT(INOUT) :: mixed_env
63 TYPE(section_vals_type),
POINTER :: root_section
64 TYPE(mp_para_env_type),
POINTER :: para_env
65 TYPE(section_vals_type),
POINTER :: force_env_section
66 LOGICAL,
INTENT(IN) :: use_motion_section
68 CHARACTER(len=*),
PARAMETER :: routinen =
'mixed_init'
71 LOGICAL :: use_ref_cell
72 REAL(kind=
dp),
DIMENSION(3) :: abc
73 TYPE(cell_type),
POINTER :: cell, cell_ref
74 TYPE(cp_subsys_type),
POINTER :: subsys
75 TYPE(section_vals_type),
POINTER :: cell_section, subsys_section
77 CALL timeset(routinen, handle)
79 NULLIFY (subsys, cell, cell_ref)
80 NULLIFY (cell_section)
87 force_env_section=force_env_section, &
88 use_motion_section=use_motion_section)
90 CALL read_cell(cell, cell_ref, use_ref_cell=use_ref_cell, &
91 cell_section=cell_section, para_env=para_env)
98 CALL mixed_init_subsys(mixed_env, subsys, cell, cell_ref, &
99 force_env_section, subsys_section)
104 CALL timestop(handle)
121 SUBROUTINE mixed_init_subsys(mixed_env, subsys, cell, cell_ref, &
122 force_env_section, subsys_section)
124 TYPE(mixed_environment_type),
INTENT(INOUT) :: mixed_env
125 TYPE(cp_subsys_type),
POINTER :: subsys
126 TYPE(cell_type),
POINTER :: cell, cell_ref
127 TYPE(section_vals_type),
POINTER :: force_env_section, subsys_section
129 CHARACTER(len=*),
PARAMETER :: routinen =
'mixed_init_subsys'
132 TYPE(atomic_kind_type),
DIMENSION(:),
POINTER :: atomic_kind_set
133 TYPE(distribution_1d_type),
POINTER :: local_molecules, local_particles
134 TYPE(mixed_energy_type),
POINTER :: mixed_energy
135 TYPE(molecule_kind_type),
DIMENSION(:),
POINTER :: molecule_kind_set
136 TYPE(molecule_type),
DIMENSION(:),
POINTER :: molecule_set
137 TYPE(particle_type),
DIMENSION(:),
POINTER :: particle_set
139 CALL timeset(routinen, handle)
140 NULLIFY (mixed_energy, local_molecules, local_particles)
141 particle_set => subsys%particles%els
142 atomic_kind_set => subsys%atomic_kinds%els
143 molecule_set => subsys%molecules%els
144 molecule_kind_set => subsys%molecule_kinds%els
154 particle_set=particle_set, &
155 local_particles=local_particles, &
156 molecule_kind_set=molecule_kind_set, &
157 molecule_set=molecule_set, &
158 local_molecules=local_molecules, &
159 force_env_section=force_env_section)
167 local_molecules=local_molecules, &
168 local_particles=local_particles, &
169 mixed_energy=mixed_energy)
174 CALL timestop(handle)
176 END SUBROUTINE mixed_init_subsys
Define the atomic kind types and their sub types.
Handles all functions related to the CELL.
recursive subroutine, public read_cell(cell, cell_ref, use_ref_cell, cell_section, check_for_ref, para_env)
...
subroutine, public write_cell(cell, subsys_section, tag)
Write the cell parameters to the output unit.
Handles all functions related to the CELL.
subroutine, public cell_release(cell)
releases the given cell (see doc/ReferenceCounting.html)
subroutine, public get_cell(cell, alpha, beta, gamma, deth, orthorhombic, abc, periodic, h, h_inv, symmetry_id, tag)
Get informations about a simulation 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
subroutine, public cp_subsys_set(subsys, atomic_kinds, particles, local_particles, molecules, molecule_kinds, local_molecules, para_env, colvar_p, shell_particles, core_particles, gci, multipoles, results, cell)
sets various propreties of the subsys
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.
Defines the basic variable types.
integer, parameter, public dp
Interface to the message passing library MPI.
subroutine, public allocate_mixed_energy(mixed_energy)
Allocate and/or initialise a mixed energy data structure.
subroutine, public set_mixed_env(mixed_env, atomic_kind_set, particle_set, local_particles, local_molecules, molecule_kind_set, molecule_set, cell_ref, mixed_energy, subsys, input, sub_para_env, cdft_control)
Set the MIXED environment.
initialize mixed environment
subroutine, public mixed_init(mixed_env, root_section, para_env, force_env_section, use_motion_section)
reads the input and database file for mixed
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 the data structure for the particle information.