| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Box_Particles_Swap), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | abort | |||
| type(Concrete_Particle), | intent(out) | :: | particles(:) | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Box_Particles_Swap), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | overlap | |||
| real(kind=DP), | intent(out) | :: | delta_energies(:) | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Box_Particles_Swap), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | overlap | |||
| real(kind=DP), | intent(out) | :: | delta_energies(:,:) | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Box_Particles_Swap), | intent(in) | :: | this | |||
| real(kind=DP), | intent(out) | :: | delta_energies(:) | |||
| integer, | intent(in) | :: | i_box | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Box_Particles_Swap), | intent(in) | :: | this | |||
| real(kind=DP), | intent(out) | :: | delta_energies(:,:) | |||
| real(kind=DP), | intent(out) | :: | delta_shared_energy | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Box_Particles_Swap), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(Concrete_Observables_Changes), | intent(inout) | :: | changes | |||
| integer, | intent(in) | :: | ij_components(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(Concrete_Observables_Changes), | intent(inout) | :: | changes | |||
| integer, | intent(in) | :: | ij_components(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Box_Particles_Swap), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| real(kind=DP), | intent(in) | :: | delta_energy |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(Environment_Wrapper), | private, | pointer | :: | environment | => | null() | |
| type(Mixture_Wrapper), | private, | pointer | :: | mixture | => | null() | |
| type(Short_Interactions_Wrapper), | private, | pointer | :: | short_interactions | => | null() | |
| type(Dipolar_Interactions_Dynamic_Wrapper), | private, | pointer | :: | dipolar_interactions_dynamic(:) | => | null() | |
| type(Dipolar_Interactions_Static_Wrapper), | private, | pointer | :: | dipolar_interactions_static(:) | => | null() | |
| type(Changes_Wrapper), | private, | pointer | :: | changes | => | null() | |
| logical, | private, | allocatable | :: | can_swap(:,:) | |||
| class(Abstract_Hetero_Couples), | private, | allocatable | :: | couples(:) | |||
| class(Abstract_Tower_Sampler), | private, | allocatable | :: | selectors(:) | [i, j] <-> k: convert |
| procedure, public :: construct => Abstract_construct | |
| procedure, public :: destroy => Abstract_destroy | |
| procedure, public :: reset_selectors => Abstract_reset_selectors | |
| procedure, public :: get_num_choices => Abstract_get_num_choices | |
| procedure, public :: try => Abstract_try | |
| procedure, private :: metropolis_algorithm => Abstract_metropolis_algorithm | |
| procedure(Abstract_define_swap), private :: define_swap | |
| procedure(Abstract_acceptation_probability), private :: acceptation_probability | |
| procedure(Abstract_visit_walls), private :: visit_walls | |
| procedure(Abstract_visit_short), private :: visit_short | |
| procedure(Abstract_visit_field), private :: visit_field | |
| procedure(Abstract_visit_dipolar), private :: visit_dipolar | |
| procedure(Abstract_update_components), private :: update_components | |
| procedure(Abstract_increment_hit), private, nopass :: increment_hit | |
| procedure(Abstract_increment_success), private, nopass :: increment_success |
Identities swap
| procedure, public :: construct => Abstract_construct | |
| procedure, public :: destroy => Abstract_destroy | |
| procedure, public :: reset_selectors => Abstract_reset_selectors | |
| procedure, public :: get_num_choices => Abstract_get_num_choices | |
| procedure, public :: try => Abstract_try | |
| procedure, private :: define_swap => Transmutation_define_swap | |
| procedure, private :: acceptation_probability => Transmutation_acceptation_probability | |
| procedure, private :: visit_walls => Transmutation_visit_walls | |
| procedure, private :: visit_short => Transmutation_visit_short | |
| procedure, private :: visit_field => Transmutation_visit_field | |
| procedure, private :: visit_dipolar => Transmutation_visit_dipolar | |
| procedure, private :: update_components => Transmutation_update_components | |
| procedure, private, nopass :: increment_hit => Transmutation_increment_hit | |
| procedure, private, nopass :: increment_success => Transmutation_increment_success |
Positions swap
| procedure, public :: construct => Abstract_construct | |
| procedure, public :: destroy => Abstract_destroy | |
| procedure, public :: reset_selectors => Abstract_reset_selectors | |
| procedure, public :: get_num_choices => Abstract_get_num_choices | |
| procedure, public :: try => Abstract_try | |
| procedure, private :: define_swap => Switch_define_swap | |
| procedure, private :: acceptation_probability => Switch_acceptation_probability | |
| procedure, private :: visit_walls => Switch_visit_walls | |
| procedure, private :: visit_short => Switch_visit_short | |
| procedure, private :: visit_field => Switch_visit_field | |
| procedure, private :: visit_dipolar => Switch_visit_dipolar | |
| procedure, private :: update_components => Switch_update_components | |
| procedure, private, nopass :: increment_hit => Switch_increment_hit | |
| procedure, private, nopass :: increment_success => Switch_increment_success |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Box_Particles_Swap), | intent(in) | :: | this |
\[ P[i \in I \to j \in J] = \min \left( 1, \frac{N_I}{N_J + 1} \frac{\rho_J}{\rho_I} e^{-\beta \Delta U_{i \to j}} \frac{a_I^{-N_I}}{a_J^{-N_J}} \right) \]
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Transmutation), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| real(kind=DP), | intent(in) | :: | delta_energy |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Switch), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| real(kind=DP), | intent(in) | :: | delta_energy |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Box_Particles_Swap), | intent(out) | :: | this | |||
| type(Environment_Wrapper), | intent(in), | target | :: | environment | ||
| type(Mixture_Wrapper), | intent(in), | target | :: | mixture | ||
| type(Short_Interactions_Wrapper), | intent(in), | target | :: | short_interactions | ||
| type(Dipolar_Interactions_Dynamic_Wrapper), | intent(in), | target | :: | dipolar_interactions_dynamic(:) | ||
| type(Dipolar_Interactions_Static_Wrapper), | intent(in), | target | :: | dipolar_interactions_static(:) | ||
| type(Changes_Wrapper), | intent(in), | target | :: | changes | ||
| logical, | intent(in) | :: | can_swap(:,:) | |||
| class(Abstract_Hetero_Couples), | intent(in) | :: | couples(:) | |||
| class(Abstract_Tower_Sampler), | intent(in) | :: | selectors(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Box_Particles_Swap), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Box_Particles_Swap), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Box_Particles_Swap), | intent(in) | :: | this | |||
| type(Generating_Observables_Wrapper), | intent(inout) | :: | observables |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Box_Particles_Swap), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | success | |||
| type(Concrete_Double_Energies), | intent(inout) | :: | deltas | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Transmutation), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | abort | |||
| type(Concrete_Particle), | intent(out) | :: | particles(:) | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Transmutation), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | overlap | |||
| real(kind=DP), | intent(out) | :: | delta_energies(:) | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Transmutation), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | overlap | |||
| real(kind=DP), | intent(out) | :: | delta_energies(:,:) | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Transmutation), | intent(in) | :: | this | |||
| real(kind=DP), | intent(out) | :: | delta_energies(:) | |||
| integer, | intent(in) | :: | i_box | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Transmutation), | intent(in) | :: | this | |||
| real(kind=DP), | intent(out) | :: | delta_energies(:,:) | |||
| real(kind=DP), | intent(out) | :: | delta_shared_energy | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Transmutation), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(Concrete_Observables_Changes), | intent(inout) | :: | changes | |||
| integer, | intent(in) | :: | ij_components(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(Concrete_Observables_Changes), | intent(inout) | :: | changes | |||
| integer, | intent(in) | :: | ij_components(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Switch), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | abort | |||
| type(Concrete_Particle), | intent(out) | :: | particles(:) | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Switch), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | overlap | |||
| real(kind=DP), | intent(out) | :: | delta_energies(:) | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Switch), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | overlap | |||
| real(kind=DP), | intent(out) | :: | delta_energies(:,:) | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Switch), | intent(in) | :: | this | |||
| real(kind=DP), | intent(out) | :: | delta_energies(:) | |||
| integer, | intent(in) | :: | i_box | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Switch), | intent(in) | :: | this | |||
| real(kind=DP), | intent(out) | :: | delta_energies(:,:) | |||
| real(kind=DP), | intent(out) | :: | delta_shared_energy | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Box_Particles_Switch), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | i_box | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Particle), | intent(in) | :: | particles(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(Concrete_Observables_Changes), | intent(inout) | :: | changes | |||
| integer, | intent(in) | :: | ij_components(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(Concrete_Observables_Changes), | intent(inout) | :: | changes | |||
| integer, | intent(in) | :: | ij_components(:) |