Reference Guide
2.5.0
|
Public Member Functions | |
def | __init__ (self, field, check_dirty=True, vector_index=None, parent=None) |
def | required (self) |
Public Member Functions inherited from psyclone.dynamo0p3.LFRicHaloExchange | |
def | required (self, ignore_hex_dep=False) |
def | node_str (self, colour=True) |
def | gen_code (self, parent) |
def | lower_to_language_level (self) |
Public Member Functions inherited from psyclone.psyGen.HaloExchange | |
def | vector_index (self) |
def | halo_depth (self) |
def | halo_depth (self, value) |
def | field (self) |
def | dag_name (self) |
def | args (self) |
def | check_vector_halos_differ (self, node) |
Additional Inherited Members | |
Public Attributes inherited from psyclone.psyGen.HaloExchange | |
vector_index | |
The start of an asynchronous halo exchange. This is similar to a regular halo exchange except that the Fortran name of the call is different and the routine only reads the data being transferred (the associated field is specified as having a read access). As a result this class is not able to determine some important properties (such as whether the halo exchange is known to be required or not). This is solved by finding the corresponding asynchronous halo exchange end (a halo exchange start always has a corresponding halo exchange end and vice versa) and calling its methods (a halo exchange end is specified as having readwrite access to its associated field and therefore is able to determine the required properties). :param field: the field that this halo exchange will act on :type field: :py:class:`psyclone.dynamo0p3.DynKernelArgument` :param check_dirty: optional argument (default True) indicating \ whether this halo exchange should be subject to a run-time check \ for clean/dirty halos. :type check_dirty: bool :param vector_index: optional vector index (default None) to \ identify which component of a vector field this halo exchange is \ responsible for :type vector_index: int :param parent: optional PSyIRe parent node (default None) of this \ object :type parent: :py:class:`psyclone.psyir.nodes.Node`
Definition at line 4245 of file dynamo0p3.py.
def psyclone.dynamo0p3.LFRicHaloExchangeStart.required | ( | self | ) |
Call the required method in the corresponding halo exchange end object. This is done as the field in halo exchange start is only read and the dependence analysis beneath this call requires the field to be modified. :returns: (x, y) where x specifies whether this halo exchange \ is (or might be) required - True, or is not required \ - False. If the first tuple item is True then the second \ argument specifies whether we definitely know that we need \ the HaloExchange - True, or are not sure - False. :rtype: (bool, bool)
Definition at line 4328 of file dynamo0p3.py.
References psyclone.dynamo0p3.LFRicHaloExchangeStart._get_hex_end(), psyclone.domain.common.psylayer.psyloop.PSyLoop.field, psyclone.psyGen.HaloExchange.field(), psyclone.domain.lfric.arg_ordering.ArgOrdering.field(), psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.field(), psyclone.domain.lfric.kern_call_invoke_arg_list.KernCallInvokeArgList.field(), psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.field(), psyclone.domain.lfric.kernel_interface.KernelInterface.field(), psyclone.psyir.nodes.node.Node.following(), and psyclone.psyir.nodes.node.Node.sameParent().