classes_des_reci_structure Module

module~~classes_des_reci_structure~~UsesGraph module~classes_des_reci_structure classes_des_reci_structure module~procedures_dipolar_interactions_micro procedures_dipolar_interactions_micro module~procedures_dipolar_interactions_micro->module~classes_des_reci_structure module~classes_box_size_memento classes_box_size_memento module~classes_box_size_memento->module~classes_des_reci_structure module~types_particle_wrapper types_particle_wrapper module~types_particle_wrapper->module~classes_des_reci_structure module~classes_structure_factor classes_structure_factor module~types_particle_wrapper->module~classes_structure_factor module~classes_periodic_box classes_periodic_box module~classes_periodic_box->module~classes_des_reci_structure module~classes_periodic_box->module~classes_box_size_memento module~classes_reciprocal_lattice classes_reciprocal_lattice module~classes_periodic_box->module~classes_reciprocal_lattice module~classes_component_coordinates classes_component_coordinates module~classes_periodic_box->module~classes_component_coordinates module~types_component_wrapper types_component_wrapper module~types_component_wrapper->module~classes_des_reci_structure module~classes_reciprocal_lattice->module~classes_des_reci_structure module~classes_structure_factor->module~classes_des_reci_structure iso_fortran_env iso_fortran_env iso_fortran_env->module~classes_des_reci_structure iso_fortran_env->module~procedures_dipolar_interactions_micro iso_fortran_env->module~classes_box_size_memento iso_fortran_env->module~types_particle_wrapper iso_fortran_env->module~classes_periodic_box iso_fortran_env->module~classes_reciprocal_lattice iso_fortran_env->module~classes_structure_factor module~data_constants data_constants iso_fortran_env->module~data_constants module~procedures_checks procedures_checks iso_fortran_env->module~procedures_checks module~procedures_errors procedures_errors iso_fortran_env->module~procedures_errors module~classes_number_to_string classes_number_to_string iso_fortran_env->module~classes_number_to_string module~types_potential_domain types_potential_domain iso_fortran_env->module~types_potential_domain module~classes_component_dipole_moments classes_component_dipole_moments iso_fortran_env->module~classes_component_dipole_moments iso_fortran_env->module~classes_component_coordinates module~classes_component_chemical_potential classes_component_chemical_potential iso_fortran_env->module~classes_component_chemical_potential module~classes_coordinates classes_coordinates iso_fortran_env->module~classes_coordinates module~procedures_coordinates_micro procedures_coordinates_micro iso_fortran_env->module~procedures_coordinates_micro module~data_constants->module~classes_des_reci_structure module~data_constants->module~procedures_dipolar_interactions_micro module~data_constants->module~classes_box_size_memento module~data_constants->module~types_particle_wrapper module~data_constants->module~classes_periodic_box module~data_constants->module~classes_reciprocal_lattice module~data_constants->module~procedures_checks module~data_constants->module~classes_component_dipole_moments module~data_constants->module~classes_component_coordinates module~data_constants->module~classes_coordinates module~data_constants->module~procedures_coordinates_micro module~procedures_checks->module~classes_periodic_box module~procedures_checks->module~classes_reciprocal_lattice module~procedures_checks->module~classes_component_dipole_moments module~procedures_checks->module~classes_component_coordinates module~procedures_checks->module~classes_component_chemical_potential module~procedures_checks->module~procedures_coordinates_micro module~procedures_errors->module~classes_periodic_box module~procedures_errors->module~classes_reciprocal_lattice module~procedures_errors->module~procedures_checks module~classes_num_particles classes_num_particles module~procedures_errors->module~classes_num_particles module~procedures_errors->module~classes_component_coordinates module~procedures_errors->module~procedures_coordinates_micro module~classes_number_to_string->module~procedures_checks module~types_potential_domain->module~procedures_checks module~types_potential_domain_selector types_potential_domain_selector module~types_potential_domain_selector->module~procedures_checks module~data_strings data_strings module~data_strings->module~classes_number_to_string module~data_strings->module~procedures_coordinates_micro module~classes_num_particles->module~types_component_wrapper module~classes_num_particles->module~classes_component_coordinates module~classes_component_dipole_moments->module~types_component_wrapper module~classes_component_coordinates->module~types_component_wrapper module~classes_component_coordinates->module~classes_component_dipole_moments module~classes_component_chemical_potential->module~types_component_wrapper module~classes_coordinates->module~classes_component_dipole_moments module~classes_coordinates->module~classes_component_coordinates module~procedures_coordinates_micro->module~classes_component_coordinates
Help

Used By

module~~classes_des_reci_structure~~UsedByGraph module~classes_des_reci_structure classes_des_reci_structure module~procedures_des_reci_visitor_factory procedures_des_reci_visitor_factory module~classes_des_reci_structure->module~procedures_des_reci_visitor_factory module~classes_des_reci_visitor classes_des_reci_visitor module~classes_des_reci_structure->module~classes_des_reci_visitor module~types_dipolar_interactions_static_wrapper types_dipolar_interactions_static_wrapper module~classes_des_reci_structure->module~types_dipolar_interactions_static_wrapper module~procedures_des_reci_structure_factory procedures_des_reci_structure_factory module~classes_des_reci_structure->module~procedures_des_reci_structure_factory module~classes_des_reci_visitor->module~procedures_des_reci_visitor_factory module~types_dipolar_interactions_dynamic_wrapper types_dipolar_interactions_dynamic_wrapper module~classes_des_reci_visitor->module~types_dipolar_interactions_dynamic_wrapper module~types_dipolar_interactions_static_wrapper->module~procedures_des_reci_visitor_factory module~types_physical_model_wrapper types_physical_model_wrapper module~types_dipolar_interactions_static_wrapper->module~types_physical_model_wrapper module~procedures_dipolar_interactions_factory procedures_dipolar_interactions_factory module~types_dipolar_interactions_static_wrapper->module~procedures_dipolar_interactions_factory module~procedures_dipolar_interactions_facades_factory procedures_dipolar_interactions_facades_factory module~types_dipolar_interactions_static_wrapper->module~procedures_dipolar_interactions_facades_factory module~classes_box_particles_swap classes_box_particles_swap module~types_dipolar_interactions_static_wrapper->module~classes_box_particles_swap module~classes_box_particle_move classes_box_particle_move module~types_dipolar_interactions_static_wrapper->module~classes_box_particle_move module~classes_boxes_particle_teleportation classes_boxes_particle_teleportation module~types_dipolar_interactions_static_wrapper->module~classes_boxes_particle_teleportation module~classes_dipolar_interactions_facade classes_dipolar_interactions_facade module~types_dipolar_interactions_static_wrapper->module~classes_dipolar_interactions_facade module~classes_box_particle_exchange classes_box_particle_exchange module~types_dipolar_interactions_static_wrapper->module~classes_box_particle_exchange module~classes_boxes_particles_swap classes_boxes_particles_swap module~types_dipolar_interactions_static_wrapper->module~classes_boxes_particles_swap module~classes_boxes_volume_exchange classes_boxes_volume_exchange module~types_dipolar_interactions_static_wrapper->module~classes_boxes_volume_exchange module~classes_volume_change_method classes_volume_change_method module~types_dipolar_interactions_static_wrapper->module~classes_volume_change_method module~classes_box_volume_change classes_box_volume_change module~types_dipolar_interactions_static_wrapper->module~classes_box_volume_change module~procedures_dipolar_interactions_resetter procedures_dipolar_interactions_resetter module~types_dipolar_interactions_static_wrapper->module~procedures_dipolar_interactions_resetter module~procedures_dlc_visitor_factory procedures_dlc_visitor_factory module~types_dipolar_interactions_static_wrapper->module~procedures_dlc_visitor_factory module~procedures_transmutation_updaters procedures_transmutation_updaters module~types_dipolar_interactions_static_wrapper->module~procedures_transmutation_updaters module~procedures_exchange_updaters procedures_exchange_updaters module~types_dipolar_interactions_static_wrapper->module~procedures_exchange_updaters module~types_dipolar_interactions_dynamic_wrapper->module~types_physical_model_wrapper module~types_dipolar_interactions_dynamic_wrapper->module~procedures_dipolar_interactions_factory module~procedures_dipolar_interactions_visitor procedures_dipolar_interactions_visitor module~types_dipolar_interactions_dynamic_wrapper->module~procedures_dipolar_interactions_visitor module~types_dipolar_interactions_dynamic_wrapper->module~procedures_dipolar_interactions_facades_factory module~classes_particle_insertion_method classes_particle_insertion_method module~types_dipolar_interactions_dynamic_wrapper->module~classes_particle_insertion_method module~procedures_transmutation_visitors procedures_transmutation_visitors module~types_dipolar_interactions_dynamic_wrapper->module~procedures_transmutation_visitors module~types_dipolar_interactions_dynamic_wrapper->module~classes_box_particles_swap module~types_dipolar_interactions_dynamic_wrapper->module~classes_box_particle_move module~types_dipolar_interactions_dynamic_wrapper->module~classes_boxes_particle_teleportation module~types_dipolar_interactions_dynamic_wrapper->module~classes_dipolar_interactions_facade module~types_dipolar_interactions_dynamic_wrapper->module~classes_box_particle_exchange module~procedures_exchange_visitors procedures_exchange_visitors module~types_dipolar_interactions_dynamic_wrapper->module~procedures_exchange_visitors module~types_dipolar_interactions_dynamic_wrapper->module~classes_boxes_particles_swap module~procedures_box_particle_exchange_factory procedures_box_particle_exchange_factory module~types_physical_model_wrapper->module~procedures_box_particle_exchange_factory module~procedures_boxes_volume_exchange_factory procedures_boxes_volume_exchange_factory module~types_physical_model_wrapper->module~procedures_boxes_volume_exchange_factory module~procedures_particle_insertion_method_factory procedures_particle_insertion_method_factory module~types_physical_model_wrapper->module~procedures_particle_insertion_method_factory module~procedures_plmc_visitor procedures_plmc_visitor module~types_physical_model_wrapper->module~procedures_plmc_visitor module~procedures_markov_chain_explorer_factory procedures_markov_chain_explorer_factory module~types_physical_model_wrapper->module~procedures_markov_chain_explorer_factory module~procedures_boxes_particles_swap_factory procedures_boxes_particles_swap_factory module~types_physical_model_wrapper->module~procedures_boxes_particles_swap_factory module~procedures_volume_change_method_factory procedures_volume_change_method_factory module~types_physical_model_wrapper->module~procedures_volume_change_method_factory module~procedures_box_particles_swap_factory procedures_box_particles_swap_factory module~types_physical_model_wrapper->module~procedures_box_particles_swap_factory module~procedures_maximum_boxes_compression_explorer_factory procedures_maximum_boxes_compression_explorer_factory module~types_physical_model_wrapper->module~procedures_maximum_boxes_compression_explorer_factory module~procedures_plmc_resetter procedures_plmc_resetter module~types_physical_model_wrapper->module~procedures_plmc_resetter module~procedures_markov_chain_generator_factory procedures_markov_chain_generator_factory module~types_physical_model_wrapper->module~procedures_markov_chain_generator_factory module~procedures_box_particle_move_factory procedures_box_particle_move_factory module~types_physical_model_wrapper->module~procedures_box_particle_move_factory module~procedures_dipolar_neighbourhoods_visitors_factory procedures_dipolar_neighbourhoods_visitors_factory module~types_physical_model_wrapper->module~procedures_dipolar_neighbourhoods_visitors_factory program~plmc_explore plmc_explore module~types_physical_model_wrapper->program~plmc_explore module~procedures_physical_model_factory procedures_physical_model_factory module~types_physical_model_wrapper->module~procedures_physical_model_factory module~procedures_boxes_particle_teleportation_factory procedures_boxes_particle_teleportation_factory module~types_physical_model_wrapper->module~procedures_boxes_particle_teleportation_factory module~procedures_generating_algorithms_factory procedures_generating_algorithms_factory module~types_physical_model_wrapper->module~procedures_generating_algorithms_factory program~plmc_generate plmc_generate module~types_physical_model_wrapper->program~plmc_generate module~procedures_box_volume_change_factory procedures_box_volume_change_factory module~types_physical_model_wrapper->module~procedures_box_volume_change_factory module~procedures_dipolar_interactions_factory->module~procedures_physical_model_factory module~procedures_dipolar_interactions_factory->module~classes_boxes_volume_exchange module~procedures_dipolar_interactions_factory->module~classes_volume_change_method module~procedures_dipolar_interactions_factory->module~classes_box_volume_change module~procedures_dipolar_interactions_visitor->module~classes_dipolar_interactions_facade module~procedures_dipolar_interactions_visitor->module~procedures_plmc_visitor module~procedures_dipolar_interactions_visitor->module~classes_boxes_volume_exchange module~procedures_dipolar_interactions_visitor->module~classes_volume_change_method module~procedures_dipolar_interactions_visitor->module~classes_box_volume_change module~procedures_dipolar_interactions_facades_factory->module~procedures_physical_model_factory module~classes_particle_insertion_method->module~procedures_particle_insertion_method_factory module~types_markov_chain_explorer_wrapper types_markov_chain_explorer_wrapper module~classes_particle_insertion_method->module~types_markov_chain_explorer_wrapper module~procedures_exploration_inquirers procedures_exploration_inquirers module~classes_particle_insertion_method->module~procedures_exploration_inquirers module~procedures_transmutation_visitors->module~classes_box_particles_swap module~procedures_transmutation_visitors->module~classes_boxes_particles_swap module~classes_box_particles_swap->module~procedures_box_particles_swap_factory module~classes_box_particle_move->module~procedures_box_particle_move_factory module~classes_boxes_particle_teleportation->module~procedures_boxes_particle_teleportation_factory module~classes_dipolar_interactions_facade->module~types_physical_model_wrapper module~classes_dipolar_interactions_facade->module~procedures_dipolar_interactions_facades_factory module~classes_dipolar_interactions_facade->module~classes_boxes_volume_exchange module~classes_dipolar_interactions_facade->module~classes_volume_change_method module~classes_dipolar_interactions_facade->module~classes_box_volume_change module~classes_box_particle_exchange->module~procedures_box_particle_exchange_factory module~procedures_exchange_visitors->module~classes_boxes_particle_teleportation module~procedures_exchange_visitors->module~classes_box_particle_exchange module~classes_boxes_particles_swap->module~procedures_boxes_particles_swap_factory module~procedures_box_particle_exchange_factory->module~procedures_generating_algorithms_factory module~procedures_boxes_volume_exchange_factory->module~procedures_generating_algorithms_factory module~procedures_particle_insertion_method_factory->module~procedures_markov_chain_explorer_factory module~procedures_plmc_visitor->program~plmc_explore module~procedures_plmc_visitor->program~plmc_generate module~procedures_markov_chain_explorer_factory->program~plmc_explore module~procedures_boxes_particles_swap_factory->module~procedures_generating_algorithms_factory module~procedures_volume_change_method_factory->module~procedures_markov_chain_explorer_factory module~procedures_box_particles_swap_factory->module~procedures_generating_algorithms_factory module~procedures_maximum_boxes_compression_explorer_factory->module~procedures_markov_chain_explorer_factory module~procedures_plmc_resetter->program~plmc_explore module~procedures_plmc_resetter->program~plmc_generate module~procedures_box_particle_move_factory->module~procedures_generating_algorithms_factory module~procedures_dipolar_neighbourhoods_visitors_factory->module~procedures_markov_chain_explorer_factory module~procedures_boxes_particle_teleportation_factory->module~procedures_generating_algorithms_factory module~procedures_generating_algorithms_factory->module~procedures_markov_chain_generator_factory module~procedures_generating_algorithms_factory->program~plmc_generate module~procedures_box_volume_change_factory->module~procedures_generating_algorithms_factory module~classes_boxes_volume_exchange->module~procedures_boxes_volume_exchange_factory module~classes_volume_change_method->module~procedures_volume_change_method_factory module~classes_volume_change_method->module~types_markov_chain_explorer_wrapper module~classes_volume_change_method->module~procedures_exploration_inquirers module~classes_box_volume_change->module~procedures_box_volume_change_factory module~types_markov_chain_explorer_wrapper->module~procedures_markov_chain_explorer_factory module~types_markov_chain_explorer_wrapper->program~plmc_explore module~procedures_exploring_writers_factory procedures_exploring_writers_factory module~types_markov_chain_explorer_wrapper->module~procedures_exploring_writers_factory module~procedures_exploration_inquirers->module~procedures_dipolar_interactions_facades_factory module~procedures_exploration_inquirers->module~procedures_markov_chain_explorer_factory module~procedures_exploration_inquirers->program~plmc_explore module~procedures_exploration_inquirers->module~procedures_exploring_writers_factory module~procedures_short_interactions_factory procedures_short_interactions_factory module~procedures_exploration_inquirers->module~procedures_short_interactions_factory module~procedures_short_interactions_factory->module~procedures_physical_model_factory module~procedures_dipolar_interactions_resetter->module~classes_dipolar_interactions_facade module~procedures_dipolar_interactions_resetter->module~procedures_plmc_resetter module~procedures_transmutation_updaters->module~classes_box_particles_swap module~procedures_transmutation_updaters->module~classes_boxes_particles_swap module~procedures_exchange_updaters->module~classes_boxes_particle_teleportation module~procedures_exchange_updaters->module~classes_box_particle_exchange
Help


Derived Types

type, public, abstract, extends(Abstract_Structure_Factor) :: Abstract_DES_Reci_Structure

Components

TypeVisibility AttributesNameInitial
class(Abstract_Periodic_Box), private, pointer:: periodic_box=> null()
class(Abstract_Box_Size_Memento), private, pointer:: box_size_memento=> null()
integer, private :: reci_numbers(num_dimensions) =0
type(Component_Wrapper), private, pointer:: components(:)=> null()
logical, private, allocatable:: are_dipolar(:)
complex(kind=DP), private, allocatable:: structure(:,:,:)

Type-Bound Procedures

procedure, public :: construct => Abstract_construct
procedure, public :: destroy => Abstract_destroy
procedure, public :: target => Abstract_target
procedure, public :: reset => Abstract_reset
procedure, public :: is_dipolar => Abstract_is_dipolar
procedure, public :: get => Abstract_get
procedure, public :: update_translation => Abstract_update_translation
procedure, public :: update_transmutation => Abstract_update_transmutation
procedure, public :: update_rotation => Abstract_update_rotation
procedure, public :: update_add => Abstract_update_add
procedure, public :: update_remove => Abstract_update_remove
procedure, public :: update_switch => Abstract_update_switch
procedure, private :: update_exchange => Abstract_update_exchange

Type-Bound Procedures

procedure, public :: construct => Abstract_construct
procedure, public :: destroy => Abstract_destroy
procedure, public :: target => Abstract_target
procedure, public :: reset => Abstract_reset
procedure, public :: is_dipolar => Abstract_is_dipolar
procedure, public :: get => Abstract_get
procedure, public :: update_translation => Abstract_update_translation
procedure, public :: update_transmutation => Abstract_update_transmutation
procedure, public :: update_rotation => Abstract_update_rotation
procedure, public :: update_add => Abstract_update_add
procedure, public :: update_remove => Abstract_update_remove
procedure, public :: update_switch => Abstract_update_switch

Type-Bound Procedures

procedure, public :: update_rotation => Abstract_update_rotation
procedure, public :: update_add => Abstract_update_add
procedure, public :: update_remove => Abstract_update_remove
procedure, public :: construct => Null_construct
procedure, public :: destroy => Null_destroy
procedure, public :: target => Null_target
procedure, public :: reset => Null_reset
procedure, public :: is_dipolar => Null_is_dipolar
procedure, public :: get => Null_get
procedure, public :: update_translation => Null_update_translation
procedure, public :: update_transmutation => Null_update_transmutation
procedure, public :: update_switch => Null_update_switch
procedure, private :: update_exchange => Null_update_exchange

Functions

private pure function Abstract_is_dipolar(this, i_component) result(is_dipolar)

Arguments

Type IntentOptional AttributesName
class(Abstract_DES_Reci_Structure), intent(in) :: this
integer, intent(in) :: i_component

Return Value logical

private pure function Abstract_get(this, n_1, n_2, n_3) result(structure)

Structure factor: \[ S(\vec{k}) = \sum_{\vec{x}, \vec{\mu}} (\vec{k}\cdot\vec{\mu}) e^{i\vec{k}\cdot\vec{x}} \]

Arguments

Type IntentOptional AttributesName
class(Abstract_DES_Reci_Structure), intent(in) :: this
integer, intent(in) :: n_1
integer, intent(in) :: n_2
integer, intent(in) :: n_3

Return Value complex(kind=DP)

private pure function Null_is_dipolar(this, i_component) result(is_dipolar)

Arguments

Type IntentOptional AttributesName
class(Null_DES_Reci_Structure), intent(in) :: this
integer, intent(in) :: i_component

Return Value logical

private pure function Null_get(this, n_1, n_2, n_3) result(structure)

Arguments

Type IntentOptional AttributesName
class(Null_DES_Reci_Structure), intent(in) :: this
integer, intent(in) :: n_1
integer, intent(in) :: n_2
integer, intent(in) :: n_3

Return Value complex(kind=DP)


Subroutines

private subroutine Abstract_construct(this, periodic_box, box_size_memento, reciprocal_lattice, components, are_dipolar)

Arguments

Type IntentOptional AttributesName
class(Abstract_DES_Reci_Structure), intent(out) :: this
class(Abstract_Periodic_Box), intent(in) :: periodic_box
class(Abstract_Box_Size_Memento), intent(in) :: box_size_memento
class(Abstract_Reciprocal_Lattice), intent(in) :: reciprocal_lattice
type(Component_Wrapper), intent(in) :: components(:)
logical, intent(in) :: are_dipolar(:)

private subroutine Abstract_destroy(this)

Arguments

Type IntentOptional AttributesName
class(Abstract_DES_Reci_Structure), intent(inout) :: this

private subroutine Abstract_target(this, periodic_box, box_size_memento, components)

Arguments

Type IntentOptional AttributesName
class(Abstract_DES_Reci_Structure), intent(inout) :: this
class(Abstract_Periodic_Box), intent(in), target:: periodic_box
class(Abstract_Box_Size_Memento), intent(in), target:: box_size_memento
type(Component_Wrapper), intent(in), target:: components(:)

private pure subroutine Abstract_reset(this)

Arguments

Type IntentOptional AttributesName
class(Abstract_DES_Reci_Structure), intent(inout) :: this

private pure subroutine Abstract_update_translation(this, i_component, new_position, old)

Structure factor update when a particle is translated: \( (\vec{x}, \vec{\mu}) \to (\vec{x}^\prime, \vec{\mu}) \). \[ \Delta S(\vec{k}) = (\vec{k}\cdot\vec{\mu}) \left( e^{i\vec{k}\cdot\vec{x}^\prime} - e^{i\vec{k}\cdot\vec{x}} \right) \]

Arguments

Type IntentOptional AttributesName
class(Abstract_DES_Reci_Structure), intent(inout) :: this
integer, intent(in) :: i_component
real(kind=DP), intent(in) :: new_position(:)
type(Concrete_Particle), intent(in) :: old

private pure subroutine Abstract_update_transmutation(this, ij_components, new_dipole_moment, old)

Structure factor update when a particle is transmuted: \( (\vec{x}, \vec{\mu}) \to (\vec{x}, \vec{\mu}^\prime) \). \[ \Delta S(\vec{k}) = \vec{k}\cdot(\vec{\mu}^\prime - \vec{\mu}) e^{i\vec{k}\cdot\vec{x}} \]

Arguments

Type IntentOptional AttributesName
class(Abstract_DES_Reci_Structure), intent(inout) :: this
integer, intent(in) :: ij_components(:)
real(kind=DP), intent(in) :: new_dipole_moment(:)
type(Concrete_Particle), intent(in) :: old

private pure subroutine Abstract_update_rotation(this, i_component, new_dipole_moment, old)

Arguments

Type IntentOptional AttributesName
class(Abstract_DES_Reci_Structure), intent(inout) :: this
integer, intent(in) :: i_component
real(kind=DP), intent(in) :: new_dipole_moment(:)
type(Concrete_Particle), intent(in) :: old

private pure subroutine Abstract_update_add(this, i_component, particle)

cf. Abstract_update_exchange

Arguments

Type IntentOptional AttributesName
class(Abstract_DES_Reci_Structure), intent(inout) :: this
integer, intent(in) :: i_component
type(Concrete_Particle), intent(in) :: particle

private pure subroutine Abstract_update_remove(this, i_component, particle)

cf. Abstract_update_exchange

Arguments

Type IntentOptional AttributesName
class(Abstract_DES_Reci_Structure), intent(inout) :: this
integer, intent(in) :: i_component
type(Concrete_Particle), intent(in) :: particle

private pure subroutine Abstract_update_exchange(this, i_component, particle, signed)

Structure factor update when a particle of coordinates \( (\vec{x}, \vec{\mu}) \) is added (\( + )\) or removed (\( - \)). \[ \Delta S(\vec{k}) = \pm (\vec{k}\cdot\vec{\mu}) e^{i\vec{k}\cdot\vec{x}} \]

Arguments

Type IntentOptional AttributesName
class(Abstract_DES_Reci_Structure), intent(inout) :: this
integer, intent(in) :: i_component
type(Concrete_Particle), intent(in) :: particle
real(kind=DP), intent(in) :: signed

private pure subroutine Abstract_update_switch(this, ij_components, particles)

Structure factor update when 2 particles of coordinates \( (\vec{x}_1, \vec{\mu}_1) \) and \( (\vec{x}_2, \vec{\mu}_2) \) are switched. \[ \Delta S(\vec{k}) = \vec{k}\cdot(\vec{\mu}_1 - \vec{\mu}_2) \left( e^{i\vec{k}\cdot\vec{x}_2} - e^{i\vec{k}\cdot\vec{x}_1} \right) \]

Arguments

Type IntentOptional AttributesName
class(Abstract_DES_Reci_Structure), intent(inout) :: this
integer, intent(in) :: ij_components(:)
type(Concrete_Particle), intent(in) :: particles(:)

private subroutine Null_construct(this, periodic_box, box_size_memento, reciprocal_lattice, components, are_dipolar)

Arguments

Type IntentOptional AttributesName
class(Null_DES_Reci_Structure), intent(out) :: this
class(Abstract_Periodic_Box), intent(in) :: periodic_box
class(Abstract_Box_Size_Memento), intent(in) :: box_size_memento
class(Abstract_Reciprocal_Lattice), intent(in) :: reciprocal_lattice
type(Component_Wrapper), intent(in) :: components(:)
logical, intent(in) :: are_dipolar(:)

private subroutine Null_destroy(this)

Arguments

Type IntentOptional AttributesName
class(Null_DES_Reci_Structure), intent(inout) :: this

private subroutine Null_target(this, periodic_box, box_size_memento, components)

Arguments

Type IntentOptional AttributesName
class(Null_DES_Reci_Structure), intent(inout) :: this
class(Abstract_Periodic_Box), intent(in), target:: periodic_box
class(Abstract_Box_Size_Memento), intent(in), target:: box_size_memento
type(Component_Wrapper), intent(in), target:: components(:)

private pure subroutine Null_reset(this)

Arguments

Type IntentOptional AttributesName
class(Null_DES_Reci_Structure), intent(inout) :: this

private pure subroutine Null_update_translation(this, i_component, new_position, old)

Arguments

Type IntentOptional AttributesName
class(Null_DES_Reci_Structure), intent(inout) :: this
integer, intent(in) :: i_component
real(kind=DP), intent(in) :: new_position(:)
type(Concrete_Particle), intent(in) :: old

private pure subroutine Null_update_transmutation(this, ij_components, new_dipole_moment, old)

Arguments

Type IntentOptional AttributesName
class(Null_DES_Reci_Structure), intent(inout) :: this
integer, intent(in) :: ij_components(:)
real(kind=DP), intent(in) :: new_dipole_moment(:)
type(Concrete_Particle), intent(in) :: old

private pure subroutine Null_update_exchange(this, i_component, particle, signed)

Arguments

Type IntentOptional AttributesName
class(Null_DES_Reci_Structure), intent(inout) :: this
integer, intent(in) :: i_component
type(Concrete_Particle), intent(in) :: particle
real(kind=DP), intent(in) :: signed

private pure subroutine Null_update_switch(this, ij_components, particles)

Arguments

Type IntentOptional AttributesName
class(Null_DES_Reci_Structure), intent(inout) :: this
integer, intent(in) :: ij_components(:)
type(Concrete_Particle), intent(in) :: particles(:)


classes_average_num_particles classes_beta_pressure classes_beta_pressure_excess classes_box_particle_exchange classes_box_particle_move classes_box_particles_swap classes_box_size_checker classes_box_size_memento classes_box_volume_change classes_boxes_particle_teleportation classes_boxes_particles_swap classes_boxes_volume_exchange classes_changed_box_size classes_changed_box_size_ratio classes_changes_success_writer classes_complete_coordinates_reader classes_complete_coordinates_writer classes_component_chemical_potential classes_component_coordinates classes_component_coordinates_reader classes_component_coordinates_writer classes_component_dipole_moments classes_coordinates classes_coordinates_copier classes_density_explorer classes_des_convergence_parameter classes_des_real_component classes_des_real_pair classes_des_reci_structure classes_des_reci_visitor classes_des_reci_weight classes_des_self_component classes_des_surf_mixture classes_dipolar_interactions_facade classes_dipolar_neighbourhoods_visitor classes_dipoles_neighbourhood classes_dirac_distribution_plus classes_directed_graph_writer classes_dlc_structures classes_dlc_visitor classes_dlc_weight classes_exchanged_boxes_size classes_external_field classes_field_expression classes_floor_penetration classes_generating_algorithm classes_hard_contact classes_hetero_couples classes_line_writer classes_maximum_box_compression classes_maximum_box_compression_explorer classes_min_distance classes_mixture_total_moment classes_move_tuner classes_moved_coordinates classes_neighbour_cells classes_num_particles classes_number_to_string classes_pair_potential classes_parallelepiped_domain classes_particle_insertion_method classes_periodic_box classes_permittivity classes_plmc_propagator classes_potential_expression classes_radial_explorer classes_random_coordinates classes_random_orientation classes_random_position classes_real_writer classes_reciprocal_lattice classes_rectangle_writer classes_rotated_orientations classes_short_pairs_visitor classes_structure_factor classes_structure_visitor classes_temperature classes_tower_sampler classes_translated_positions classes_triangle_writer classes_tunable_move classes_visitable_cells classes_visitable_cells_memento classes_visitable_list classes_visitable_walls classes_volume_change_method classes_walls_visitor data_cells data_constants data_input_prefixes data_output_objects data_strings module_changes_success module_list_node module_move_tuning procedures_average_nums_particles_factory procedures_beta_pressure_factory procedures_beta_pressures_excess_factory procedures_box_particle_exchange_factory procedures_box_particle_move_factory procedures_box_particles_swap_factory procedures_box_size procedures_box_size_memento_factory procedures_box_volume_change_factory procedures_boxes_particle_teleportation_factory procedures_boxes_particles_swap_factory procedures_boxes_size_checker_factory procedures_boxes_volume_exchange_factory procedures_cells_memento procedures_centered_block_micro procedures_changed_boxes_size_factory procedures_changed_boxes_size_ratio_factory procedures_changes_component_factory procedures_changes_factory procedures_changes_properties procedures_changes_success_writer_factory procedures_checks procedures_command_arguments procedures_complete_coordinates_reader procedures_complete_coordinates_reader_factory procedures_complete_coordinates_writer_factory procedures_component_chemical_potential_factory procedures_component_coordinates_factory procedures_component_coordinates_reader_factory procedures_component_coordinates_writer_factory procedures_component_dipole_moments_factory procedures_component_factory procedures_coordinates_copier_factory procedures_coordinates_micro procedures_coordinates_reader procedures_density_explorer_factory procedures_des_convergence_parameter_factory procedures_des_real_component_factory procedures_des_real_pair_factory procedures_des_reci_structure_factory procedures_des_reci_visitor_factory procedures_des_reci_weight_factory procedures_des_surf_mixture_factory procedures_dipolar_interactions_facades_factory procedures_dipolar_interactions_factory procedures_dipolar_interactions_micro procedures_dipolar_interactions_resetter procedures_dipolar_interactions_visitor procedures_dipolar_neighbourhoods_factory procedures_dipolar_neighbourhoods_visitors_factory procedures_dipoles_field_interaction procedures_dirac_distribution_plus_factory procedures_directed_graph_writer_factory procedures_dlc_structures_factory procedures_dlc_visitor_factory procedures_dlc_weight_factory procedures_elementary_geometry procedures_elementary_statistics procedures_energies_writers_factory procedures_environment_factory procedures_environment_inquirers procedures_errors procedures_exchange_updaters procedures_exchange_visitors procedures_exchanged_boxes_size_factory procedures_exploration_inquirers procedures_exploring_observables_factory procedures_exploring_writers_factory procedures_external_fields_factory procedures_field_expression_factory procedures_field_expression_micro procedures_floor_penetration_factory procedures_generating_algorithms_factory procedures_generating_observables_factory procedures_generating_writers_factory procedures_hard_contact_factory procedures_hetero_couples_factory procedures_json_data_factory procedures_json_reports_factory procedures_line_writer_factory procedures_logical_factory procedures_markov_chain_explorer_factory procedures_markov_chain_generator_factory procedures_maximum_box_compression_factory procedures_maximum_boxes_compression_explorer_factory procedures_metropolis_algorithm procedures_min_distance_factory procedures_mixture_inquirers procedures_mixture_properties procedures_mixture_total_moments_factory procedures_move_tuner_factory procedures_moved_coordinates_factory procedures_neighbour_cells_factory procedures_num_particles_factory procedures_observables_changes_factory procedures_observables_energies_factory procedures_observables_factory procedures_pair_potential_factory procedures_parallelepiped_domain_macro procedures_parallelepiped_domain_micro procedures_parallelepiped_domains_factory procedures_particle_insertion_method_factory procedures_periodic_boxes_factory procedures_permittivity_factory procedures_physical_model_factory procedures_plmc_help procedures_plmc_iterations procedures_plmc_propagator_factory procedures_plmc_resetter procedures_plmc_visitor procedures_plmc_writer procedures_potential_expression_factory procedures_property_inquirers procedures_radial_explorer_factory procedures_random_coordinates_factory procedures_random_number procedures_random_seed_factory procedures_readers_factory procedures_real_writer_factory procedures_reals_factory procedures_reciprocal_lattices_factory procedures_rectangle_writer_factory procedures_selectors_resetters procedures_short_interactions_factory procedures_short_interactions_inquirers procedures_short_interactions_resetter procedures_short_interactions_visitor procedures_short_pairs_visitors_factory procedures_string_factory procedures_temperature_factory procedures_tower_sampler_factory procedures_transmutation_updaters procedures_transmutation_visitors procedures_triangle_observables procedures_triangle_writer_factory procedures_visit_condition procedures_visitable_cells_factory procedures_visitable_cells_memento_factory procedures_visitable_list_factory procedures_visitable_walls_factory procedures_volume_change_method_factory procedures_walls_visitors_factory procedures_writers_inquirers types_cells_wrapper types_changes_component_wrapper types_changes_success_writer_selector types_changes_wrapper types_component_coordinates_reader_selector types_component_coordinates_writer_selector types_component_wrapper types_dipolar_interactions_dynamic_wrapper types_dipolar_interactions_static_wrapper types_energies_writers types_environment_wrapper types_exploring_io types_exploring_writers_wrapper types_generating_io types_generating_observables_wrapper types_generating_writers_wrapper types_json_report types_logical_wrapper types_markov_chain_explorer_wrapper types_markov_chain_generator_wrapper types_mixture_wrapper types_move_tuner_parameters types_observables_changes types_observables_energies types_particle_wrapper types_physical_model_wrapper types_potential_domain types_potential_domain_selector types_raw_coordinates types_readers_wrapper types_real_wrapper types_short_interactions_wrapper types_string_wrapper