51 integer,
parameter,
public :: &
52 SYSTEM_ELECTRONIC = 1, & !< electronic system (electrons_oct_m::electrons_t)
83 class(system_factory_t),
intent(in) :: this
84 type(namespace_t),
intent(in) :: namespace
85 integer,
intent(in) ::
type
86 integer,
intent(in) :: calc_mode_id
87 class(system_t),
pointer :: system
89 integer :: n_replicas, first, last
90 character(len=128),
allocatable :: names(:)
91 integer,
allocatable :: types(:)
133 safe_deallocate_a(names)
134 safe_deallocate_a(types)
136 case (system_electronic)
145 system =>
dftb_t(namespace)
154 system =>
ions_t(namespace)
165 write(
message(1),
'(a,i5,a)')
"The ensemble has ", n_replicas,
" replicas"
189 system =>
ensemble_t(namespace, n_replicas, first, last, this, names, types, calc_mode_id)
191 safe_deallocate_a(names)
192 safe_deallocate_a(types)
204 character(len=128),
allocatable,
intent(out) :: names(:)
205 integer,
allocatable,
intent(out) :: types(:)
207 integer :: n_systems, is, ic, iother
211 if (
parse_block(namespace,
'Systems', blk) == 0)
then
214 safe_allocate(names(1:n_systems))
215 safe_allocate(types(1:n_systems))
220 if (len_trim(names(is)) == 0)
then
233 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.
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)
subroutine, public messages_info(no_lines, iunit, debug_only, stress, all_nodes, 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.
subroutine, public parse_block_string(blk, l, c, res, convert_to_c)
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)
recursive class(system_t) function, pointer system_factory_create(this, namespace, type, calc_mode_id)
create a new system.
integer, parameter, public system_linear_medium
linear medium for Maxwell calculations (linear_medium_oct_m::linear_medium_t)
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
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