![]()  | 
  
    Octopus
    
   | 
 
abstract interaction class More...
abstract interaction class
This class handles the exchange of couplings from an interaction partner to a system. It can then combine those couplings with information from the system itself to calculate the interaction as needed by the system. This means that the interaction needs to know a list of couplings it requires from the partner and a list of quantities needed from the system.
This class has no explicit constructor, but objects are generated using interactions_factory_create().
Definition at line 224 of file interaction.F90.

Private Member Functions | |
| procedure(interaction_calculate), deferred | calculate | 
| procedure(interaction_calculate_energy), deferred | calculate_energy | 
| procedure | update => interaction_update | 
| Update the interaction to the requested_iteration.  More... | |
| procedure | update_partner_couplings => interaction_update_partner_couplings | 
| Try to update all the couplings needed from the partner to update the interaction.  More... | |
| procedure | restart_read => interaction_restart_read | 
| read restart information  More... | |
| procedure | restart_write => interaction_restart_write | 
Private Attributes | |
| type(iteration_counter_t) | iteration | 
| Iteration counter storing the iteration at which the interaction was last updated.  More... | |
| character(len=:), allocatable | label | 
| label of an interaction, used for debug and restart  More... | |
| logical | intra_interaction | 
| Is this an interaction of a system with itself?  More... | |
| integer | timing | 
| parameter to determine if the interaction should use the couplings at the exact requested iteration or if retardation is allowed  More... | |
| real(real64) | energy | 
| Energy associated with the interaction.  More... | |
| integer, dimension(:), allocatable | system_quantities | 
| Identifiers of the quantities needed from the system.  More... | |
| class(interaction_partner_t), pointer | partner => NULL() | 
| integer, dimension(:), allocatable | couplings_from_partner | 
| Identifiers of the quantities needed from the partner.  More... | |
| logical | partner_couplings_up_to_date = .false. | 
| Have the partner couplings been updated yet?  More... | |
      
  | 
  private | 
Definition at line 242 of file interaction.F90.
      
  | 
  private | 
Definition at line 243 of file interaction.F90.
      
  | 
  private | 
Update the interaction to the requested_iteration.
Definition at line 244 of file interaction.F90.
      
  | 
  private | 
Try to update all the couplings needed from the partner to update the interaction.
Definition at line 245 of file interaction.F90.
      
  | 
  private | 
      
  | 
  private | 
Definition at line 247 of file interaction.F90.
      
  | 
  private | 
Iteration counter storing the iteration at which the interaction was last updated.
Definition at line 226 of file interaction.F90.
      
  | 
  private | 
label of an interaction, used for debug and restart
Definition at line 227 of file interaction.F90.
      
  | 
  private | 
Is this an interaction of a system with itself?
Definition at line 228 of file interaction.F90.
      
  | 
  private | 
parameter to determine if the interaction should use the couplings at the exact requested iteration or if retardation is allowed
Definition at line 229 of file interaction.F90.
      
  | 
  private | 
Energy associated with the interaction.
Definition at line 231 of file interaction.F90.
      
  | 
  private | 
Identifiers of the quantities needed from the system.
Definition at line 234 of file interaction.F90.
      
  | 
  private | 
Definition at line 237 of file interaction.F90.
      
  | 
  private | 
Identifiers of the quantities needed from the partner.
Definition at line 238 of file interaction.F90.
      
  | 
  private | 
Have the partner couplings been updated yet?
Definition at line 239 of file interaction.F90.