| 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() | |
| logical, | private, | allocatable | :: | can_translate(:,:) | |||
| class(Abstract_Hetero_Couples), | private, | allocatable | :: | box_couples | |||
| class(Abstract_Hetero_Couples), | private, | allocatable | :: | component_couples(:) | |||
| class(Abstract_Tower_Sampler), | private, | allocatable | :: | boxes_selector | |||
| class(Abstract_Tower_Sampler), | private, | allocatable | :: | components_selectors(:) |
| procedure, public :: construct => Concrete_construct | |
| procedure, public :: destroy => Concrete_destroy | |
| procedure, public :: reset_selectors => Concrete_reset_selectors | |
| procedure, public :: get_num_choices => Concrete_get_num_choices | |
| procedure, public :: try => Concrete_try | |
| procedure, private :: metropolis_algorithm => Concrete_metropolis_algorithm | |
| procedure, private :: define_swap => Concrete_define_swap | |
| procedure, private :: acceptation_probability => Concrete_acceptation_probability | |
| procedure, private :: visit_walls => Concrete_visit_walls | |
| procedure, private :: visit_short => Concrete_visit_short | |
| procedure, private :: visit_fields => Concrete_visit_fields | |
| procedure, private :: visit_dipolar => Concrete_visit_dipolar | |
| procedure, private :: update_components => Concrete_update_components |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Boxes_Particles_Swap), | intent(in) | :: | this |
\[ P[i_I^{\boldsymbol{I}} \to N_I^{\boldsymbol{J}} + 1, i_J^{\boldsymbol{J}} \to N_J^{\boldsymbol{I}} + 1] = \min \left(1, \frac{N_I^{\boldsymbol{I}}}{N_I^{\boldsymbol{J}} + 1} \frac{N_J^{\boldsymbol{J}}}{N_J^{\boldsymbol{I}} + 1} e^{-\beta \Delta U_{i_I^{\boldsymbol{I}} \to N_I^{\boldsymbol{J}} + 1, i_J^{\boldsymbol{J}} \to N_J^{\boldsymbol{I}} + 1}} \right) \]
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Boxes_Particles_Swap), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | ij_boxes(:) | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| real(kind=DP), | intent(in) | :: | delta_energy |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Boxes_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(:) | ||
| logical, | intent(in) | :: | can_translate(:,:) | |||
| class(Abstract_Hetero_Couples), | intent(in) | :: | box_couples | |||
| class(Abstract_Hetero_Couples), | intent(in) | :: | component_couples(:) | |||
| class(Abstract_Tower_Sampler), | intent(in) | :: | boxes_selector | |||
| class(Abstract_Tower_Sampler), | intent(in) | :: | components_selectors(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Boxes_Particles_Swap), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Boxes_Particles_Swap), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Boxes_Particles_Swap), | intent(in) | :: | this | |||
| type(Generating_Observables_Wrapper), | intent(inout) | :: | observables |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Boxes_Particles_Swap), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | success | |||
| type(Concrete_Double_Energies), | intent(inout) | :: | deltas(:) | |||
| integer, | intent(in) | :: | ij_boxes(:) | |||
| integer, | intent(in) | :: | ij_components(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Boxes_Particles_Swap), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | abort | |||
| type(Concrete_Double_Particle), | intent(inout) | :: | partners(:) | |||
| integer, | intent(in) | :: | ij_boxes(:) | |||
| integer, | intent(in) | :: | ij_components(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Boxes_Particles_Swap), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | overlap | |||
| type(Concrete_Double_Energies), | intent(inout) | :: | deltas(:) | |||
| integer, | intent(in) | :: | ij_boxes(:) | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Double_Particle), | intent(in) | :: | partners(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Boxes_Particles_Swap), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | overlap | |||
| type(Concrete_Double_Energies), | intent(inout) | :: | deltas(:) | |||
| integer, | intent(in) | :: | ij_boxes(:) | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Double_Particle), | intent(in) | :: | partners(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Boxes_Particles_Swap), | intent(in) | :: | this | |||
| type(Concrete_Double_Energies), | intent(inout) | :: | deltas(:) | |||
| integer, | intent(in) | :: | ij_boxes(:) | |||
| type(Concrete_Double_Particle), | intent(in) | :: | partners(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Boxes_Particles_Swap), | intent(in) | :: | this | |||
| type(Concrete_Double_Energies), | intent(inout) | :: | deltas(:) | |||
| integer, | intent(in) | :: | ij_boxes(:) | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Double_Particle), | intent(in) | :: | partners(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Boxes_Particles_Swap), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | ij_boxes(:) | |||
| integer, | intent(in) | :: | ij_components(:) | |||
| type(Concrete_Double_Particle), | intent(in) | :: | partners(:) |