52 integer,
parameter,
public :: &
53 SYSTEM_ELECTRONIC = 1, & !< electronic system (electrons_oct_m::electrons_t)
84 class(system_factory_t),
intent(in) :: this
85 type(namespace_t),
intent(in) :: namespace
86 integer,
intent(in) ::
type
87 integer,
intent(in) :: calc_mode_id
88 type(mpi_grp_t),
intent(in) :: grp
89 class(system_t),
pointer :: system
91 integer :: n_replicas, first, last
92 character(len=128),
allocatable :: names(:)
93 integer,
allocatable :: types(:)
135 safe_deallocate_a(names)
136 safe_deallocate_a(types)
138 case (system_electronic)
139 system =>
electrons_t(namespace, grp, calc_mode_id)
156 system =>
ions_t(namespace, grp)
167 write(
message(1),
'(a,i5,a)')
"The ensemble has ", n_replicas,
" replicas"
191 system =>
ensemble_t(namespace, n_replicas, first, last, this, names, types, calc_mode_id, grp)
193 safe_deallocate_a(names)
194 safe_deallocate_a(types)
206 character(len=128),
allocatable,
intent(out) :: names(:)
207 integer,
allocatable,
intent(out) :: types(:)
209 integer :: n_systems, is, ic, iother
213 if (
parse_block(namespace,
'Systems', blk) == 0)
then
216 safe_allocate(names(1:n_systems))
217 safe_allocate(types(1:n_systems))
222 if (len_trim(names(is)) == 0)
then
235 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, grp)
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