Octopus
|
abstract class for general interaction partners More...
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.
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 |
|
private |
Definition at line 146 of file interaction_partner.F90.
|
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.
|
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.
|
private |
Check the status of some couplings.
Possible results are:
Definition at line 149 of file interaction_partner.F90.
|
private |
Definition at line 150 of file interaction_partner.F90.
|
private |
Definition at line 152 of file interaction_partner.F90.
type(namespace_t), public interaction_partner_oct_m::interaction_partner_t::namespace |
Definition at line 137 of file interaction_partner.F90.
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.
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.