Reference Guide
2.5.0
|
Public Member Functions | |
def | __init__ (self, kern) |
def | cell_position (self, var_accesses=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_unknown_extent (self, arg, var_accesses=None) |
def | stencil_unknown_direction (self, arg, var_accesses=None) |
def | stencil (self, arg, var_accesses=None) |
def | stencil_2d_max_extent (self, arg, var_accesses=None) |
def | stencil_2d_unknown_extent (self, arg, var_accesses=None) |
def | stencil_2d (self, arg, var_accesses=None) |
def | operator (self, arg, var_accesses=None) |
def | fs_compulsory_field (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 | indirection_dofmap (self, function_space, operator=None, 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 | cell_map (self, var_accesses=None) |
def | scalar (self, scalar_arg, var_accesses=None) |
def | fs_common (self, function_space, var_accesses=None) |
def | fs_intergrid (self, function_space, var_accesses=None) |
def | banded_dofmap (self, function_space, var_accesses=None) |
def | ref_element_properties (self, var_accesses=None) |
Creates the argument list required to create and declare the required arguments for a kernel subroutine. The ordering and type of the arguments is captured by the base class. :param kern: Kernel for which to create argument list. :type kern: :py:class:`psyclone.domain.lfric.LFRicKern` :raises NotImplementedError: if the kernel is inter-grid. :raises NotImplementedError: if the kernel requires properties of the \ reference element.
Definition at line 46 of file kern_stub_arg_list.py.
def psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.basis | ( | self, | |
function_space, | |||
var_accesses = None |
|||
) |
Add basis function information for this function space to the argument list and optionally to the variable access information. There can be more than one if this is an evaluator and/or multiple 'gh_shape's have been requested in the kernel metadata. If supplied it also stores these accesses in var_accesses. :param function_space: the function space for which to provide \ the basis functions :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: \ :py:class:`psyclone.core.VariablesAccessInfo` :raises InternalError: if the evaluator shape is not recognised.
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 331 of file kern_stub_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_stub_arg_list.KernStubArgList.cell_position | ( | self, | |
var_accesses = None |
|||
) |
Adds a cell argument to the argument list and if supplied stores this access in var_accesses. :param var_accesses: optional VariablesAccessInfo instance to store \ the information about variable accesses. :type var_accesses: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 67 of file kern_stub_arg_list.py.
References 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_stub_arg_list.KernStubArgList.cma_operator | ( | self, | |
arg, | |||
var_accesses = None |
|||
) |
Add the CMA operator and associated scalars to the argument list and optionally add them to the variable access information. :param arg: the CMA operator argument. :type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument` :param var_accesses: optional VariablesAccessInfo instance to store \ the information about variable accesses. :type var_accesses: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 103 of file kern_stub_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(), psyclone.psyir.nodes.node.ChildrenList.extend(), and psyclone.domain.lfric.arg_ordering.ArgOrdering.extend().
def psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.diff_basis | ( | self, | |
function_space, | |||
var_accesses = None |
|||
) |
Add differential basis information for the function space to the argument list. If supplied it also stores this access in var_accesses. :param function_space: the function space for which the differential \ basis functions are required. :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: \ :py:class:`psyclone.core.VariablesAccessInfo` :raises InternalError: if the evaluator shape is not recognised.
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 372 of file kern_stub_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_stub_arg_list.KernStubArgList.field | ( | self, | |
arg, | |||
var_accesses = None |
|||
) |
Add the field array associated with the argument 'arg' to the argument list. If supplied it also stores this access in var_accesses. :param arg: the field to be added. :type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument` :param var_accesses: optional VariablesAccessInfo instance to store \ the information about variable accesses. :type var_accesses: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 158 of file kern_stub_arg_list.py.
References 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_stub_arg_list.KernStubArgList.field_bcs_kernel | ( | self, | |
function_space, | |||
var_accesses = None |
|||
) |
Implement the boundary_dofs array fix for a field. If supplied it also stores this access in var_accesses. :param function_space: the function space for which boundary dofs \ are required. :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: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 413 of file kern_stub_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_stub_arg_list.KernStubArgList.field_vector | ( | self, | |
argvect, | |||
var_accesses = None |
|||
) |
Add the field vector associated with the argument 'argvect' to the argument list. If supplied it also stores these accesses to the var_access object. :param argvect: the field vector to add. :type argvect: :py:class:`psyclone.dynamo0p3.DynKernelArgument` :param var_accesses: optional VariablesAccessInfo instance to store \ the information about variable accesses. :type var_accesses: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 136 of file kern_stub_arg_list.py.
References 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_stub_arg_list.KernStubArgList.fs_compulsory_field | ( | self, | |
function_space, | |||
var_accesses = None |
|||
) |
Provide compulsory arguments if there is a field on this function space. 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: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 314 of file kern_stub_arg_list.py.
References 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_stub_arg_list.KernStubArgList.indirection_dofmap | ( | self, | |
function_space, | |||
operator = None , |
|||
var_accesses = None |
|||
) |
Add indirection dofmap required when applying a CMA operator. If supplied it also stores this access in var_accesses. :param function_space: the function space for which the indirect \ dofmap is required. :type function_space: :py:class:`psyclone.domain.lfric.FunctionSpace` :param operator: the CMA operator. :type operator: :py:class:`psyclone.dynamo0p3.DynKernelArgument` :param var_accesses: optional VariablesAccessInfo instance to store \ the information about variable accesses. :type var_accesses: \ :py:class:`psyclone.core.VariablesAccessInfo` :raises InternalError: if no kernel argument is supplied. :raises InternalError: if the supplied kernel argument is not a \ CMA operator.
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 477 of file kern_stub_arg_list.py.
def psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.mesh_height | ( | self, | |
var_accesses = None |
|||
) |
Add mesh height (nlayers) to the argument list and if supplied stores this access in var_accesses. :param var_accesses: optional VariablesAccessInfo instance to store \ the information about variable accesses. :type var_accesses: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 79 of file kern_stub_arg_list.py.
References 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_stub_arg_list.KernStubArgList.mesh_properties | ( | self, | |
var_accesses = None |
|||
) |
Provide the kernel arguments required for the mesh properties specified in the kernel metadata. If supplied it also stores this access in var_accesses. :param var_accesses: optional VariablesAccessInfo instance to store \ the information about variable accesses. :type var_accesses: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 445 of file kern_stub_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.extend(), and psyclone.domain.lfric.arg_ordering.ArgOrdering.extend().
def psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.operator | ( | self, | |
arg, | |||
var_accesses = None |
|||
) |
Add the operator arguments to the argument list. 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: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 298 of file kern_stub_arg_list.py.
References 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_stub_arg_list.KernStubArgList.operator_bcs_kernel | ( | self, | |
function_space, | |||
var_accesses = None |
|||
) |
Supply necessary additional arguments for the kernel that applies boundary conditions to a LMA operator. If supplied it also stores this access in var_accesses. :param function_space: the 'to' function space of the operator. :type function_space: :py:class:`psyclone.dynamo3.FunctionSpace` :param var_accesses: optional VariablesAccessInfo instance to store \ the information about variable accesses. :type var_accesses: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 430 of file kern_stub_arg_list.py.
References psyclone.domain.lfric.arg_ordering.ArgOrdering.field_bcs_kernel(), psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.field_bcs_kernel(), psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.field_bcs_kernel(), and psyclone.domain.lfric.kernel_interface.KernelInterface.field_bcs_kernel().
def psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.quad_rule | ( | self, | |
var_accesses = None |
|||
) |
Add quadrature-related information to the kernel argument list. Adds the necessary arguments to the argument list, and optionally adds variable access information to the var_accesses object. :param var_accesses: optional VariablesAccessInfo instance to store \ the information about variable accesses. :type var_accesses: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 463 of file kern_stub_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.extend(), and psyclone.domain.lfric.arg_ordering.ArgOrdering.extend().
def psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.stencil | ( | self, | |
arg, | |||
var_accesses = None |
|||
) |
Add general stencil information associated with the argument 'arg' to the argument list. 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: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 211 of file kern_stub_arg_list.py.
References psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList._stub_symtab, 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_stub_arg_list.KernStubArgList.stencil_2d | ( | self, | |
arg, | |||
var_accesses = None |
|||
) |
Add general 2D stencil information associated with the argument 'arg' to the argument list. 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: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 271 of file kern_stub_arg_list.py.
References psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList._stub_symtab, 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_stub_arg_list.KernStubArgList.stencil_2d_max_extent | ( | self, | |
arg, | |||
var_accesses = None |
|||
) |
Add the maximum branch extent for a 2D stencil associated with the argument 'arg' to the argument list. If supplied it also stores this 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 `SingleVariableAccessInfo` \ instance to store the information about variable accesses. :type var_accesses: \ :py:class:`psyclone.core.SingleVariableAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 231 of file kern_stub_arg_list.py.
References psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList._stub_symtab, 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_stub_arg_list.KernStubArgList.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. :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: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 252 of file kern_stub_arg_list.py.
References psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList._stub_symtab, 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_stub_arg_list.KernStubArgList.stencil_unknown_direction | ( | self, | |
arg, | |||
var_accesses = None |
|||
) |
Add stencil information to the argument list associated with the argument 'arg' if the direction 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: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 192 of file kern_stub_arg_list.py.
References psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList._stub_symtab, 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_stub_arg_list.KernStubArgList.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: \ :py:class:`psyclone.core.VariablesAccessInfo`
Reimplemented from psyclone.domain.lfric.arg_ordering.ArgOrdering.
Definition at line 173 of file kern_stub_arg_list.py.
References psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList._stub_symtab, psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), and psyclone.domain.lfric.arg_ordering.ArgOrdering.append().