Octopus
|
This module defines classes and functions for interaction partners. More...
This module defines classes and functions for interaction partners.
Interaction partners are general objects, which define the "source" of an interaction (interaction_oct_m::interaction_t).
Data Types | |
interface | interaction_partner_copy_quantities_to_interaction |
interface | interaction_partner_init_interaction_as_partner |
type | interaction_partner_t |
abstract class for general interaction partners More... | |
type | partner_iterator_t |
iterator for the list of partners More... | |
type | partner_list_t |
the list of partners More... | |
Functions/Subroutines | |
recursive subroutine | interaction_partner_add_partners_to_list (this, list, interaction_type) |
add interaction partner to a list More... | |
subroutine | interaction_partner_update_quantity (this, iq) |
Method to be overriden by interaction partners that have quantities that can be updated on demand. More... | |
subroutine | interaction_partner_update_on_demand_quantities (this, quantities, requested_iteration, retardation_allowed) |
Given a list of quantities, update the ones that can be update on demand. More... | |
integer function | interaction_partner_check_couplings_status (this, couplings, requested_iteration) |
Check the status of some couplings. More... | |
subroutine | partner_list_add_node (this, partner) |
add a partner to the list More... | |
class(interaction_partner_t) function, pointer | partner_iterator_get_next (this) |
get next partner from the list More... | |
Variables | |
integer, parameter, public | couplings_undefined = 0 |
integer, parameter, public | couplings_behind_in_time = 1 |
integer, parameter, public | couplings_on_time = 2 |
integer, parameter, public | couplings_ahead_in_time = 3 |
|
private |
add interaction partner to a list
If the interaciton_type is provided, the partner is only added to the list if it supports that interaction.
Definition at line 200 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 223 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 244 of file interaction_partner.F90.
|
private |
Check the status of some couplings.
Possible results are:
Definition at line 292 of file interaction_partner.F90.
|
private |
add a partner to the list
this | the partner list |
partner | the partner to add |
Definition at line 326 of file interaction_partner.F90.
|
private |
get next partner from the list
[in,out] | this | the partner list |
Definition at line 340 of file interaction_partner.F90.
integer, parameter, public interaction_partner_oct_m::couplings_undefined = 0 |
Definition at line 124 of file interaction_partner.F90.
integer, parameter, public interaction_partner_oct_m::couplings_behind_in_time = 1 |
Definition at line 124 of file interaction_partner.F90.
integer, parameter, public interaction_partner_oct_m::couplings_on_time = 2 |
Definition at line 124 of file interaction_partner.F90.
integer, parameter, public interaction_partner_oct_m::couplings_ahead_in_time = 3 |
Definition at line 124 of file interaction_partner.F90.