Octopus
interaction_partner_oct_m::interaction_partner_t Type Reference

abstract class for general interaction partners More...

Detailed Description

abstract class for general interaction partners

Some interactions require a partner. This is usually a system, but it could also be some external entity, like an external field. An interaction partner must expose some quantities that the interaction can use.

Definition at line 135 of file interaction_partner.F90.

Inheritance diagram for interaction_partner_oct_m::interaction_partner_t:
Inheritance graph

Public Attributes

type(namespace_t), public namespace
 
integer, dimension(:), allocatable, public supported_interactions_as_partner
 list of interactions, which support this interaction_partner_t as partner More...
 
type(quantity_t), dimension(max_quantities), public quantities
 Array of all possible quantities. The elements of the array are accessed using the quantity`s identifiers. More...
 

Private Member Functions

procedure add_partners_to_list => interaction_partner_add_partners_to_list
 
procedure update_quantity => interaction_partner_update_quantity
 Method to be overriden by interaction partners that have quantities that can be updated on demand. More...
 
procedure update_on_demand_quantities => interaction_partner_update_on_demand_quantities
 Given a list of quantities, update the ones that can be update on demand. More...
 
procedure check_couplings_status => interaction_partner_check_couplings_status
 Check the status of some couplings. More...
 
procedure(interaction_partner_init_interaction_as_partner), deferred init_interaction_as_partner
 
procedure(interaction_partner_copy_quantities_to_interaction), deferred copy_quantities_to_interaction
 

Member Function/Subroutine Documentation

◆ add_partners_to_list()

procedure interaction_partner_oct_m::interaction_partner_t::add_partners_to_list
private

Definition at line 146 of file interaction_partner.F90.

◆ update_quantity()

procedure interaction_partner_oct_m::interaction_partner_t::update_quantity
private

Method to be overriden by interaction partners that have quantities that can be updated on demand.

This routine simply throws an error, as it is not mean to be called. We could have implemented this as a deferred method, but we prefer not to force interaction partners that do not have quantities to be updated on demand to implement it.

Definition at line 147 of file interaction_partner.F90.

◆ update_on_demand_quantities()

procedure interaction_partner_oct_m::interaction_partner_t::update_on_demand_quantities
private

Given a list of quantities, update the ones that can be update on demand.

For each quantity that is not always available, the update will only take place if the quantity can be evaluated at the requested iteration. Currently we also allow for a special case: some quantities are allowed to get ahead by one iteration if "retardation_allowed" is set to true.

Definition at line 148 of file interaction_partner.F90.

◆ check_couplings_status()

procedure interaction_partner_oct_m::interaction_partner_t::check_couplings_status
private

Check the status of some couplings.

Possible results are:

  • COUPLINGS_UNDEFINED: if there are some couplings ahead in time and some on time
  • COUPLINGS_BEHIND_IN_TIME: if any coupling is behind in time and COUPLINGS_UNDEFINED condition is not met
  • COUPLINGS_ON_TIME: if all couplings are right on time
  • COUPLINGS_AHEAD_IN_TIME: if all couplings are ahead in time

Definition at line 149 of file interaction_partner.F90.

◆ init_interaction_as_partner()

procedure(interaction_partner_init_interaction_as_partner), deferred interaction_partner_oct_m::interaction_partner_t::init_interaction_as_partner
private

Definition at line 150 of file interaction_partner.F90.

◆ copy_quantities_to_interaction()

procedure(interaction_partner_copy_quantities_to_interaction), deferred interaction_partner_oct_m::interaction_partner_t::copy_quantities_to_interaction
private

Definition at line 152 of file interaction_partner.F90.

Member Data Documentation

◆ namespace

type(namespace_t), public interaction_partner_oct_m::interaction_partner_t::namespace

Definition at line 137 of file interaction_partner.F90.

◆ supported_interactions_as_partner

integer, dimension(:), allocatable, public interaction_partner_oct_m::interaction_partner_t::supported_interactions_as_partner

list of interactions, which support this interaction_partner_t as partner

Definition at line 139 of file interaction_partner.F90.

◆ quantities

type(quantity_t), dimension(max_quantities), public interaction_partner_oct_m::interaction_partner_t::quantities

Array of all possible quantities. The elements of the array are accessed using the quantity`s identifiers.

Definition at line 142 of file interaction_partner.F90.


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