50 integer,
parameter,
public :: &
51 SYSTEM_ELECTRONIC = 1, & !< electronic system (electrons_oct_m::electrons_t)
81 class(system_factory_t),
intent(in) :: this
82 type(namespace_t),
intent(in) :: namespace
83 integer,
intent(in) ::
type
84 class(system_t),
pointer :: system
87 character(len=128),
allocatable :: names(:)
88 integer,
allocatable :: types(:)
130 safe_deallocate_a(names)
131 safe_deallocate_a(types)
133 case (system_electronic)
142 system =>
dftb_t(namespace)
151 system =>
ions_t(namespace)
162 write(
message(1),
'(a,i5,a)')
"The ensemble has ", n_replicas,
" replicas"
168 system =>
ensemble_t(namespace, n_replicas, this, names, types)
170 safe_deallocate_a(names)
171 safe_deallocate_a(types)
183 character(len=128),
allocatable,
intent(out) :: names(:)
184 integer,
allocatable,
intent(out) :: types(:)
186 integer :: n_systems, is, ic, iother
190 if (
parse_block(namespace,
'Systems', blk) == 0)
then
193 safe_allocate(names(1:n_systems))
194 safe_allocate(types(1:n_systems))
199 if (len_trim(names(is)) == 0)
then
212 if (names(is) == names(iother))
then
type(debug_t), save, public debug
This module implements the ensemble class.
This module defines a linear medium for use in classical electrodynamics calculations.
This module defines a container system for electrons and ions.
subroutine, public messages_info(no_lines, iunit, verbose_limit, stress, all_nodes, namespace)
character(len=256), dimension(max_lines), public message
to be output by fatal, warning
subroutine, public messages_input_error(namespace, var, details, row, column)
subroutine, public messages_experimental(name, namespace)
This module implements the basic mulsisystem class, a container system for other systems.
character(len=27), parameter, public parser_varname_excluded_characters
The following characters should not be allowed in variable names.
integer function, public parse_block(namespace, name, blk, check_varinfo_)
This module defines the abstract class for the system factory.
integer, parameter, public system_matter
electrons including ions (matter_oct_m::matter_t)
integer, parameter, public system_ions
ensemble of charged classical particles (ions_oct_m::ions_t)
integer, parameter, public system_ensemble
ensemble container (ensemble_oct_m::ensemble_t)
integer, parameter, public system_linear_medium
linear medium for Maxwell calculations (linear_medium_oct_m::linear_medium_t)
recursive class(system_t) function, pointer system_factory_create(this, namespace, type)
create a new system.
integer, parameter, public system_classical_particle
single classical particle (classical_particle_oct_m::classical_particle_t)
integer, parameter, public system_charged_particle
single charged classical particle (charged_particle_oct_m::charged_particle_t)
subroutine parse_subsystems(namespace, names, types)
integer, parameter, public system_dispersive_medium
dispersive medium for classical electrodynamics (dispersive_medium_oct_m::dispersive_medium_t)
integer, parameter, public system_multisystem
container system. (multisystem_basic_oct_m::multisystem_basic_t)
integer, parameter, public system_dftbplus
tight binding system (dftb_oct_m::dftb_t)
integer, parameter, public system_maxwell
maxwell system, (maxwell_oct_m::maxwell_t)
This module implements the abstract system type.
class for a charged classical particle
class for a neutral classical particle
class for a tight binding
dispersive medium for classical electrodynamics calculations
Class describing the electron system.
linear medium for classical electrodynamics
container class for for electrons and ions
Class describing Maxwell systems.
Container class for lists of system_oct_m::system_t.
abstract class of the system factory
factory for classes, derived from the abstract system_cot_m::system_t class