50 integer,
parameter,
public :: &
51 SYSTEM_ELECTRONIC = 1, & !< electronic system (electrons_oct_m::electrons_t)
82 class(system_factory_t),
intent(in) :: this
83 type(namespace_t),
intent(in) :: namespace
84 integer,
intent(in) ::
type
85 integer,
intent(in) :: calc_mode_id
86 class(system_t),
pointer :: system
89 character(len=128),
allocatable :: names(:)
90 integer,
allocatable :: types(:)
132 safe_deallocate_a(names)
133 safe_deallocate_a(types)
135 case (system_electronic)
144 system =>
dftb_t(namespace)
153 system =>
ions_t(namespace)
164 write(
message(1),
'(a,i5,a)')
"The ensemble has ", n_replicas,
" replicas"
170 system =>
ensemble_t(namespace, n_replicas, this, names, types, calc_mode_id)
172 safe_deallocate_a(names)
173 safe_deallocate_a(types)
185 character(len=128),
allocatable,
intent(out) :: names(:)
186 integer,
allocatable,
intent(out) :: types(:)
188 integer :: n_systems, is, ic, iother
192 if (
parse_block(namespace,
'Systems', blk) == 0)
then
195 safe_allocate(names(1:n_systems))
196 safe_allocate(types(1:n_systems))
201 if (len_trim(names(is)) == 0)
then
214 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