59 class(interactions_factory_t),
intent(in) :: this
60 integer,
intent(in) :: type
61 class(interaction_partner_t),
target,
intent(inout) :: partner
62 class(interaction_t),
pointer :: interaction
86 message(1) =
"Unknown interaction in interactions_factory_create"
100 type(namespace_t),
intent(in) :: namespace
101 integer,
intent(in) :: interactions(:)
102 type(interactions_factory_options_t) :: options(size(interactions))
104 integer :: line, col, i,
type, timing
124 options%timing = timing
127 do i = 1,
size(interactions)
128 select case (interactions(i))
208 if (
parse_block(namespace,
"Interactions", blk) == 0)
then
217 call messages_input_error(namespace,
"Interactions", details=
"Unknown interaction type", row=line, column=0)
221 i = findloc(interactions,
type, dim=1)
227 call messages_input_error(namespace,
"Interactions",
"Unknown interaction mode", row=line, column=1)
230 select case (options(i)%mode)
integer, parameter, public mxll_vec_pot_to_matter
integer, parameter, public linear_medium_to_em_field
integer, parameter, public lorentz_force
integer, parameter, public lennard_jones
integer, parameter, public gravity
integer, parameter, public mxll_b_field_to_matter
integer, parameter, public mxll_e_field_to_matter
integer, parameter, public current_to_mxll_field
integer, parameter, public coulomb_force
This module defines the abstract interaction_t class, and some auxiliary classes for interactions.
integer, parameter, public timing_exact
This module defines classes and functions for interaction partners.
This module defines the abstract class for the interaction factory.
integer, parameter, public no_partners
integer, parameter, public all_except
integer, parameter, public only_partners
integer, parameter, public all_partners
type(interactions_factory_options_t) function, dimension(size(interactions)) interactions_factory_options(namespace, interactions)
return a list of options to be used when creating the interactions
class(interaction_t) function, pointer interactions_factory_create(this, type, partner)
create an interaction of given type with specified partner
character(len=256), dimension(max_lines), public message
to be output by fatal, warning
subroutine, public messages_fatal(no_lines, only_root_writes, namespace)
subroutine, public messages_input_error(namespace, var, details, row, column)
Maxwell-field-to-matter interactions.
subroutine, public parse_block_string(blk, l, c, res, convert_to_c)
integer function, public parse_block(namespace, name, blk, check_varinfo_)
Coulomb interaction between two systems of particles.
Class to transfer a current to a Maxwell field.
Gravity interaction between two systems of particles. This should be used for testing purposes only....
abstract class for interaction factories
Lennard-Jones interaction between two systems of particles.
Lorenz force between a systems of particles and an electromagnetic field.
class to transfer a Maxwell B field to a matter system
class to transfer a Maxwell electric field to a medium
class to transfer a Maxwell vector potential to a medium