Reference Guide
2.5.0
|
Public Member Functions | |
def | cell_map (self, var_accesses=None) |
def | cell_position (self, var_accesses=None) |
def | stencil (self, arg, var_accesses=None) |
def | stencil_2d (self, arg, var_accesses=None) |
def | stencil_unknown_extent (self, arg, var_accesses=None) |
def | stencil_2d_unknown_extent (self, arg, var_accesses=None) |
def | operator (self, arg, var_accesses=None) |
def | fs_compulsory_field (self, function_space, var_accesses=None) |
def | fs_intergrid (self, function_space, var_accesses=None) |
def | scalar (self, scalar_arg, var_accesses=None) |
Public Member Functions inherited from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList | |
def | __init__ (self, kern) |
def | get_user_type (self, module_name, user_type, name, tag=None) |
def | append_structure_reference (self, module_name, user_type, member_list, name, tag=None, overwrite_datatype=None) |
def | mesh_height (self, var_accesses=None) |
def | cma_operator (self, arg, var_accesses=None) |
def | field_vector (self, argvect, var_accesses=None) |
def | field (self, arg, var_accesses=None) |
def | stencil_2d_max_extent (self, arg, var_accesses=None) |
def | stencil_unknown_direction (self, arg, var_accesses=None) |
def | fs_common (self, function_space, var_accesses=None) |
def | basis (self, function_space, var_accesses=None) |
def | diff_basis (self, function_space, var_accesses=None) |
def | field_bcs_kernel (self, function_space, var_accesses=None) |
def | operator_bcs_kernel (self, function_space, var_accesses=None) |
def | mesh_properties (self, var_accesses=None) |
def | quad_rule (self, var_accesses=None) |
def | nlayers_positions (self) |
def | nqp_positions (self) |
def | ndf_positions (self) |
def | cell_ref_name (self, var_accesses=None) |
Public Member Functions inherited from psyclone.domain.lfric.arg_ordering.ArgOrdering | |
def | psyir_append (self, node) |
def | append (self, var_name, var_accesses=None, var_access_name=None, mode=AccessType.READ, metadata_posn=None) |
def | extend (self, list_var_name, var_accesses=None, mode=AccessType.READ, list_metadata_posn=None) |
def | append_integer_reference (self, name, tag=None) |
def | get_array_reference (self, array_name, indices, intrinsic_type, tag=None, symbol=None) |
def | append_array_reference (self, array_name, indices, intrinsic_type, tag=None, symbol=None) |
def | num_args (self) |
def | arglist (self) |
def | psyir_arglist (self) |
def | metadata_index_from_actual_index (self, idx) |
def | generate (self, var_accesses=None) |
def | banded_dofmap (self, function_space, var_accesses=None) |
def | indirection_dofmap (self, function_space, operator=None, var_accesses=None) |
def | ref_element_properties (self, var_accesses=None) |
Additional Inherited Members | |
Static Public Attributes inherited from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList | |
NdfInfo = namedtuple("NdfInfo", ["position", "function_space"]) | |
Kernel call arguments that need to be declared by OpenACC directives. KernCallArgList only needs to be specialised where modified, or additional, arguments are required. Scalars are apparently not required but it is valid in OpenACC to include them and requires less specialisation to keep them in.
Definition at line 50 of file kern_call_acc_arg_list.py.
def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.cell_map | ( | self, | |
var_accesses = None |
|||
) |
Add cell-map to the list of required arrays. :param var_accesses: optional VariablesAccessInfo instance to store the information about variable accesses. :type var_accesses: Optional[ :py:class:`psyclone.core.VariablesAccessInfo`]
Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.
Definition at line 60 of file kern_call_acc_arg_list.py.
References psyclone.domain.common.psylayer.psyloop.PSyLoop._kern, psyclone.domain.lfric.arg_ordering.ArgOrdering._kern, psyclone.domain.lfric.lfric_loop.LFRicLoop._kern, psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), psyclone.domain.lfric.arg_ordering.ArgOrdering.append(), psyclone.domain.lfric.arg_ordering.ArgOrdering.cell_position(), psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.cell_position(), psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.cell_position(), psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.cell_position(), and psyclone.domain.lfric.kernel_interface.KernelInterface.cell_position().
def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.cell_position | ( | self, | |
var_accesses = None |
|||
) |
Adds a cell argument to the argument list and if supplied stores this access in var_accesses. Although normally just a scalar, the cell argument may actually require a lookup from a colour map array. Either way, this method adds the name of the variable to the argument list. :param var_accesses: optional VariablesAccessInfo instance to store the information about variable accesses. :type var_accesses: Optional[ :py:class:`psyclone.core.VariablesAccessInfo`]
Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.
Definition at line 81 of file kern_call_acc_arg_list.py.
References psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), psyclone.domain.lfric.arg_ordering.ArgOrdering.append(), and psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.cell_ref_name().
def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.fs_compulsory_field | ( | self, | |
function_space, | |||
var_accesses = None |
|||
) |
Add compulsory arguments associated with this function space to the list. OpenACC requires the full function-space map to be specified. If supplied it also stores this access in var_accesses. :param function_space: the function space for which the compulsory arguments are added. :type function_space: :py:class:`psyclone.domain.lfric.FunctionSpace` :param var_accesses: optional VariablesAccessInfo instance to store the information about variable accesses. :type var_accesses: Optional[ :py:class:`psyclone.core.VariablesAccessInfo`]
Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.
Definition at line 192 of file kern_call_acc_arg_list.py.
References psyclone.domain.common.psylayer.psyloop.PSyLoop._kern, psyclone.domain.lfric.arg_ordering.ArgOrdering._kern, psyclone.domain.lfric.lfric_loop.LFRicLoop._kern, psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), and psyclone.domain.lfric.arg_ordering.ArgOrdering.append().
def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.fs_intergrid | ( | self, | |
function_space, | |||
var_accesses = None |
|||
) |
Add arrays that need to be uploaded for inter-grid kernels. These arrays contain the mapping between fine and coarse meshes. :param function_space: the function space associated with the mesh. :type function_space: :py:class:`psyclone.domain.lfric.FunctionSpace` :param var_accesses: optional VariablesAccessInfo instance to store the information about variable accesses. :type var_accesses: Optional[ :py:class:`psyclone.core.VariablesAccessInfo`]
Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.
Definition at line 214 of file kern_call_acc_arg_list.py.
References psyclone.domain.common.psylayer.psyloop.PSyLoop._kern, psyclone.domain.lfric.arg_ordering.ArgOrdering._kern, psyclone.domain.lfric.lfric_loop.LFRicLoop._kern, psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), psyclone.domain.lfric.arg_ordering.ArgOrdering.append(), psyclone.domain.lfric.arg_ordering.ArgOrdering.fs_compulsory_field(), psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.fs_compulsory_field(), psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.fs_compulsory_field(), psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.fs_compulsory_field(), and psyclone.domain.lfric.kernel_interface.KernelInterface.fs_compulsory_field().
def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.operator | ( | self, | |
arg, | |||
var_accesses = None |
|||
) |
Add the operator arguments if they have not already been added. OpenACC requires the derived type and the dereferenced data to be specified. If supplied it also stores this access in var_accesses. :param arg: the meta-data description of the operator. :type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument` :param var_accesses: optional VariablesAccessInfo instance to store the information about variable accesses. :type var_accesses: Optional[ :py:class:`psyclone.core.VariablesAccessInfo`]
Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.
Definition at line 171 of file kern_call_acc_arg_list.py.
References psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), psyclone.domain.lfric.arg_ordering.ArgOrdering.append(), and psyclone.domain.lfric.arg_ordering.ArgOrdering.arglist().
def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.scalar | ( | self, | |
scalar_arg, | |||
var_accesses = None |
|||
) |
Override the default implementation as there's no need to specify scalars for an OpenACC data region. :param scalar_arg: the kernel argument. :type scalar_arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument` :param var_accesses: optional VariablesAccessInfo instance that stores information about variable accesses. :type var_accesses: Optional[ :py:class:`psyclone.core.VariablesAccessInfo`]
Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.
Definition at line 239 of file kern_call_acc_arg_list.py.
def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.stencil | ( | self, | |
arg, | |||
var_accesses = None |
|||
) |
Add general stencil information associated with the argument 'arg' to the argument list. OpenACC requires the full dofmap to be specified. If supplied it also stores this access in var_accesses. :param arg: the meta-data description of the kernel argument with which the stencil is associated. :type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument` :param var_accesses: optional VariablesAccessInfo instance to store the information about variable accesses. :type var_accesses: Optional[ :py:class:`psyclone.core.VariablesAccessInfo`]
Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.
Definition at line 96 of file kern_call_acc_arg_list.py.
References psyclone.domain.common.psylayer.psyloop.PSyLoop._kern, psyclone.domain.lfric.arg_ordering.ArgOrdering._kern, psyclone.domain.lfric.lfric_loop.LFRicLoop._kern, psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), and psyclone.domain.lfric.arg_ordering.ArgOrdering.append().
def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.stencil_2d | ( | self, | |
arg, | |||
var_accesses = None |
|||
) |
Add general 2D stencil information associated with the argument 'arg' to the argument list. OpenACC requires the full dofmap to be specified. If supplied it also stores this access in var_accesses.This method passes through to the stencil method. :param arg: the meta-data description of the kernel argument with which the stencil is associated. :type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument` :param var_accesses: optional VariablesAccessInfo instance to store the information about variable accesses. :type var_accesses: Optional[ :py:class:`psyclone.core.VariablesAccessInfo`]
Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.
Definition at line 117 of file kern_call_acc_arg_list.py.
References psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.stencil(), psyclone.dynamo0p3.DynKernelArgument.stencil(), psyclone.parse.kernel.Descriptor.stencil(), psyclone.psyGen.KernelArgument.stencil(), psyclone.domain.lfric.arg_ordering.ArgOrdering.stencil(), psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.stencil(), psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.stencil(), psyclone.domain.lfric.kern_call_invoke_arg_list.KernCallInvokeArgList.stencil(), psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.stencil(), psyclone.domain.lfric.kernel.field_arg_metadata.FieldArgMetadata.stencil, psyclone.domain.lfric.kernel_interface.KernelInterface.stencil(), and psyclone.domain.lfric.lfric_invoke.LFRicInvoke.stencil.
def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.stencil_2d_unknown_extent | ( | self, | |
arg, | |||
var_accesses = None |
|||
) |
Add 2D stencil information to the argument list associated with the argument 'arg' if the extent is unknown. If supplied it also stores this access in var_accesses. This method passes through to the stencil_unknown_extent method. :param arg: the kernel argument with which the stencil is associated. :type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument` :param var_accesses: optional VariablesAccessInfo instance to store the information about variable accesses. :type var_accesses: Optional[ :py:class:`psyclone.core.VariablesAccessInfo`]
Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.
Definition at line 155 of file kern_call_acc_arg_list.py.
References psyclone.domain.lfric.arg_ordering.ArgOrdering.stencil_unknown_extent(), psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.stencil_unknown_extent(), psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.stencil_unknown_extent(), psyclone.domain.lfric.kern_call_invoke_arg_list.KernCallInvokeArgList.stencil_unknown_extent(), psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.stencil_unknown_extent(), and psyclone.domain.lfric.kernel_interface.KernelInterface.stencil_unknown_extent().
def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.stencil_unknown_extent | ( | self, | |
arg, | |||
var_accesses = None |
|||
) |
Add stencil information to the argument list associated with the argument 'arg' if the extent is unknown. If supplied it also stores this access in var_accesses. :param arg: the kernel argument with which the stencil is associated. :type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument` :param var_accesses: optional VariablesAccessInfo instance to store the information about variable accesses. :type var_accesses: Optional[ :py:class:`psyclone.core.VariablesAccessInfo`]
Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.
Definition at line 134 of file kern_call_acc_arg_list.py.
References psyclone.domain.common.psylayer.psyloop.PSyLoop._kern, psyclone.domain.lfric.arg_ordering.ArgOrdering._kern, psyclone.domain.lfric.lfric_loop.LFRicLoop._kern, psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), and psyclone.domain.lfric.arg_ordering.ArgOrdering.append().