Octopus
interaction_oct_m::interaction_t Type Reference

abstract interaction class More...

Detailed Description

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.

Inheritance diagram for interaction_oct_m::interaction_t:
Inheritance graph

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_titeration
 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...
 

Member Function/Subroutine Documentation

◆ calculate()

procedure(interaction_calculate), deferred interaction_oct_m::interaction_t::calculate
private

Definition at line 242 of file interaction.F90.

◆ calculate_energy()

procedure(interaction_calculate_energy), deferred interaction_oct_m::interaction_t::calculate_energy
private

Definition at line 243 of file interaction.F90.

◆ update()

procedure interaction_oct_m::interaction_t::update
private

Update the interaction to the requested_iteration.

Definition at line 244 of file interaction.F90.

◆ update_partner_couplings()

procedure interaction_oct_m::interaction_t::update_partner_couplings
private

Try to update all the couplings needed from the partner to update the interaction.

Definition at line 245 of file interaction.F90.

◆ restart_read()

procedure interaction_oct_m::interaction_t::restart_read
private

read restart information

return .true. on success.

Definition at line 246 of file interaction.F90.

◆ restart_write()

procedure interaction_oct_m::interaction_t::restart_write
private

Definition at line 247 of file interaction.F90.

Member Data Documentation

◆ iteration

type(iteration_counter_t) interaction_oct_m::interaction_t::iteration
private

Iteration counter storing the iteration at which the interaction was last updated.

Definition at line 226 of file interaction.F90.

◆ label

character(len=:), allocatable interaction_oct_m::interaction_t::label
private

label of an interaction, used for debug and restart

Definition at line 227 of file interaction.F90.

◆ intra_interaction

logical interaction_oct_m::interaction_t::intra_interaction
private

Is this an interaction of a system with itself?

Definition at line 228 of file interaction.F90.

◆ timing

integer interaction_oct_m::interaction_t::timing
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.

◆ energy

real(real64) interaction_oct_m::interaction_t::energy
private

Energy associated with the interaction.

Definition at line 231 of file interaction.F90.

◆ system_quantities

integer, dimension(:), allocatable interaction_oct_m::interaction_t::system_quantities
private

Identifiers of the quantities needed from the system.

Definition at line 234 of file interaction.F90.

◆ partner

class(interaction_partner_t), pointer interaction_oct_m::interaction_t::partner => NULL()
private

Definition at line 237 of file interaction.F90.

◆ couplings_from_partner

integer, dimension(:), allocatable interaction_oct_m::interaction_t::couplings_from_partner
private

Identifiers of the quantities needed from the partner.

Definition at line 238 of file interaction.F90.

◆ partner_couplings_up_to_date

logical interaction_oct_m::interaction_t::partner_couplings_up_to_date = .false.
private

Have the partner couplings been updated yet?

Definition at line 239 of file interaction.F90.


The documentation for this type was generated from the following file: