Reference Guide
2.5.0
|
Public Member Functions | |
def | __init__ (self, kernel_args, arg_meta_data, arg_info, call, check=True) |
def | ref_name (self, function_space=None) |
def | is_scalar (self) |
def | is_field (self) |
def | is_operator (self) |
def | descriptor (self) |
def | argument_type (self) |
def | intrinsic_type (self) |
def | mesh (self) |
def | vector_size (self) |
def | name_indexed (self) |
def | psyir_expression (self) |
def | declaration_name (self) |
def | proxy_name (self) |
def | proxy_name_indexed (self) |
def | proxy_declaration_name (self) |
def | proxy_data_type (self) |
def | function_space (self) |
def | function_space_to (self) |
def | function_space_from (self) |
def | function_spaces (self) |
def | function_space_names (self) |
def | intent (self) |
def | discontinuous (self) |
def | stencil (self) |
def | stencil (self, value) |
def | infer_datatype (self, proxy=False) |
Public Member Functions inherited from psyclone.psyGen.KernelArgument | |
def | __init__ (self, arg, arg_info, call) |
def | space (self) |
def | metadata_index (self) |
Public Member Functions inherited from psyclone.psyGen.Argument | |
def | infer_datatype (self) |
def | __str__ (self) |
def | name (self) |
def | text (self) |
def | form (self) |
def | is_literal (self) |
def | access (self) |
def | access (self, value) |
def | precision (self) |
def | data_type (self) |
def | module_name (self) |
def | call (self) |
def | call (self, value) |
def | backward_dependence (self) |
def | forward_write_dependencies (self, ignore_halos=False) |
def | backward_write_dependencies (self, ignore_halos=False) |
def | forward_dependence (self) |
def | forward_read_dependencies (self) |
Public Attributes | |
intrinsic_type | |
argument_type | |
access | |
This class provides information about individual LFRic kernel call arguments as specified by the kernel argument metadata and the kernel invocation in the Algorithm layer. :param kernel_args: object encapsulating all arguments to the \ kernel call. :type kernel_args: :py:class:`psyclone.dynamo0p3.DynKernelArguments` :param arg_meta_data: information obtained from the metadata for \ this kernel argument. :type arg_meta_data: :py:class:`psyclone.domain.lfric.LFRicArgDescriptor` :param arg_info: information on how this argument is specified in \ the Algorithm layer. :type arg_info: :py:class:`psyclone.parse.algorithm.Arg` :param call: the kernel object with which this argument is associated. :type call: :py:class:`psyclone.domain.lfric.LFRicKern` :param bool check: whether to check for consistency between the \ kernel metadata and the algorithm layer. Defaults to True. :raises InternalError: for an unsupported metadata in the argument \ descriptor data type.
Definition at line 5351 of file dynamo0p3.py.
def psyclone.dynamo0p3.DynKernelArgument.argument_type | ( | self | ) |
:returns: the API type of this argument, as specified in \ the metadata. :rtype: str
Reimplemented from psyclone.psyGen.Argument.
Definition at line 5816 of file dynamo0p3.py.
References psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._argument_type, psyclone.dynamo0p3.DynKernelArgument._argument_type, psyclone.gocean1p0.GOKernelGridArgument._argument_type, psyclone.gocean1p0.GO1p0Descriptor._argument_type, and psyclone.parse.kernel.Descriptor._argument_type.
def psyclone.dynamo0p3.DynKernelArgument.declaration_name | ( | self | ) |
:returns: the name for this argument with the array dimensions \ added if required. :rtype: str
Definition at line 5919 of file dynamo0p3.py.
References psyclone.domain.common.algorithm.psyir.AlgorithmInvokeCall._name, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata._name, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.GridArg._name, psyclone.domain.lfric.kernel.lfric_kernel_metadata.LFRicKernelMetadata._name, psyclone.dynamo0p3.DynFuncDescriptor03._name, psyclone.expression.NamedArg._name, psyclone.gocean1p0.GOKernelGridArgument._name, psyclone.gocean1p0.GOStencil._name, psyclone.nemo.NemoInvoke._name, psyclone.nemo.NemoPSy._name, psyclone.parse.algorithm.FileInfo._name, psyclone.parse.algorithm.InvokeCall._name, psyclone.parse.kernel.KernelProcedure._name, psyclone.parse.kernel.KernelType._name, psyclone.parse.module_info.ModuleInfo._name, psyclone.psyGen.PSy._name, psyclone.psyGen.Invoke._name, psyclone.psyGen.Kern._name, psyclone.psyGen.Argument._name, psyclone.psyir.nodes.container.Container._name, psyclone.psyir.nodes.routine.Routine._name, psyclone.psyir.symbols.symbol.Symbol._name, psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._vector_size, and psyclone.dynamo0p3.DynKernelArgument._vector_size.
def psyclone.dynamo0p3.DynKernelArgument.descriptor | ( | self | ) |
:returns: a descriptor object which contains Kernel metadata \ about this argument. :rtype: :py:class:`psyclone.domain.lfric.LFRicArgDescriptor`
Definition at line 5807 of file dynamo0p3.py.
References psyclone.gocean1p0.GOKernelArgument._arg, psyclone.psyGen.DataAccess._arg, and psyclone.psyGen.KernelArgument._arg.
def psyclone.dynamo0p3.DynKernelArgument.discontinuous | ( | self | ) |
Returns True if this argument is known to be on a discontinuous function space including any_discontinuous_space, otherwise returns False. :returns: whether the argument is discontinuous. :rtype: bool
Definition at line 6057 of file dynamo0p3.py.
References psyclone.domain.lfric.kernel.field_arg_metadata.FieldArgMetadata.function_space, psyclone.domain.lfric.kernel.meta_funcs_arg_metadata.MetaFuncsArgMetadata.function_space, psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor.function_space(), psyclone.dynamo0p3.DynKernelArgument.function_space(), psyclone.gocean1p0.GOKernelArgument.function_space(), and psyclone.parse.kernel.Descriptor.function_space().
def psyclone.dynamo0p3.DynKernelArgument.function_space | ( | self | ) |
Returns the expected finite element function space for a kernel argument as specified by the kernel argument metadata: a single function space for a field and function_space_from for an operator. :returns: function space for this argument. :rtype: :py:class:`psyclone.domain.lfric.FunctionSpace`
Definition at line 5971 of file dynamo0p3.py.
References psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._argument_type, psyclone.dynamo0p3.DynKernelArgument._argument_type, psyclone.gocean1p0.GOKernelGridArgument._argument_type, psyclone.gocean1p0.GO1p0Descriptor._argument_type, psyclone.parse.kernel.Descriptor._argument_type, psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._function_spaces, psyclone.dynamo0p3.DynFunctionSpaces._function_spaces, psyclone.dynamo0p3.DynKernelArgument._function_spaces, psyclone.domain.lfric.kernel.operator_arg_metadata.OperatorArgMetadata.function_space_from, psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor.function_space_from(), and psyclone.dynamo0p3.DynKernelArgument.function_space_from().
def psyclone.dynamo0p3.DynKernelArgument.function_space_from | ( | self | ) |
:returns: the 'from' function space of an operator. :rtype: str
Definition at line 5994 of file dynamo0p3.py.
References psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._function_spaces, psyclone.dynamo0p3.DynFunctionSpaces._function_spaces, and psyclone.dynamo0p3.DynKernelArgument._function_spaces.
def psyclone.dynamo0p3.DynKernelArgument.function_space_names | ( | self | ) |
Returns a list of the names of the function spaces associated with this argument. We have more than one function space when dealing with operators. :returns: list of function space names for this argument. :rtype: list of str
Definition at line 6016 of file dynamo0p3.py.
References psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._function_spaces, psyclone.dynamo0p3.DynFunctionSpaces._function_spaces, and psyclone.dynamo0p3.DynKernelArgument._function_spaces.
def psyclone.dynamo0p3.DynKernelArgument.function_space_to | ( | self | ) |
:returns: the 'to' function space of an operator. :rtype: str
Definition at line 5986 of file dynamo0p3.py.
References psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._function_spaces, psyclone.dynamo0p3.DynFunctionSpaces._function_spaces, and psyclone.dynamo0p3.DynKernelArgument._function_spaces.
def psyclone.dynamo0p3.DynKernelArgument.function_spaces | ( | self | ) |
Returns the expected finite element function space for a kernel argument as specified by the kernel argument metadata: a single function space for a field and a list containing function_space_to and function_space_from for an operator. :returns: function space(s) for this argument. :rtype: list of :py:class:`psyclone.domain.lfric.FunctionSpace`
Definition at line 6002 of file dynamo0p3.py.
References psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._function_spaces, psyclone.dynamo0p3.DynFunctionSpaces._function_spaces, and psyclone.dynamo0p3.DynKernelArgument._function_spaces.
def psyclone.dynamo0p3.DynKernelArgument.infer_datatype | ( | self, | |
proxy = False |
|||
) |
Infer the datatype of this kernel argument in the PSy layer using the LFRic API rules. If any LFRic infrastructure modules are required but are not already present then suitable ContainerSymbols are added to the outermost symbol table. Similarly, DataTypeSymbols are added for any required LFRic derived types that are not already in the symbol table. TODO #1258 - ultimately this routine should not have to create any DataTypeSymbols as that should already have been done. :param bool proxy: whether or not we want the type of the proxy \ object for this kernel argument. Defaults to False (i.e. return the type rather than the proxy type). :returns: the datatype of this argument. :rtype: :py:class:`psyclone.psyir.symbols.DataType` :raises NotImplementedError: if an unsupported argument type is found.
Definition at line 6097 of file dynamo0p3.py.
References psyclone.f2pygen.CallGen._call, psyclone.gocean1p0.GOKernelGridArgument._call, psyclone.psyGen.DataAccess._call, psyclone.psyGen.Argument._call, psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._data_type, psyclone.dynamo0p3.DynKernelArgument._data_type, psyclone.psyGen.Argument._data_type, psyclone.dynamo0p3.DynKernelArgument._module_name, psyclone.parse.algorithm.ParsedCall._module_name, psyclone.parse.algorithm.KernelCall._module_name, psyclone.psyGen.CodedKern._module_name, psyclone.psyGen.Argument._module_name, psyclone.psyir.nodes.psy_data_node.PSyDataNode._module_name, psyclone.dynamo0p3.DynKernelArgument._proxy_data_type, psyclone.dynamo0p3.DynKernelArgument.intrinsic_type, psyclone.gocean1p0.GOKernelArgument.intrinsic_type(), psyclone.gocean1p0.GOKernelGridArgument.intrinsic_type(), psyclone.psyGen.Argument.intrinsic_type(), psyclone.dynamo0p3.DynKernelArgument.is_field(), psyclone.dynamo0p3.DynKernelArgument.is_operator(), psyclone.dynamo0p3.DynKernelArgument.is_scalar(), psyclone.gocean1p0.GOKernelArgument.is_scalar(), psyclone.gocean1p0.GOKernelGridArgument.is_scalar(), psyclone.psyGen.KernelArgument.is_scalar(), psyclone.psyir.symbols.typed_symbol.TypedSymbol.is_scalar(), psyclone.psyGen.Argument.precision(), psyclone.psyir.symbols.datatypes.ScalarType.precision, and psyclone.psyir.symbols.datatypes.ArrayType.precision().
def psyclone.dynamo0p3.DynKernelArgument.intent | ( | self | ) |
Returns the Fortran intent of this argument as defined by the valid access types for this API :returns: the expected Fortran intent for this argument as \ specified by the kernel argument metadata :rtype: str
Definition at line 6033 of file dynamo0p3.py.
References psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.GridArg.access, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.access, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.ScalarArg.access(), psyclone.domain.lfric.kernel.common_meta_arg_metadata.CommonMetaArgMetadata.access, psyclone.dynamo0p3.DynKernelArgument.access, psyclone.parse.kernel.Descriptor.access(), psyclone.psyGen.Argument.access(), and psyclone.psyir.symbols.interfaces.ArgumentInterface.access.
def psyclone.dynamo0p3.DynKernelArgument.intrinsic_type | ( | self | ) |
:returns: the intrinsic Fortran type of this argument for scalars \ or of the argument's data for fields and operators. :rtype: str
Reimplemented from psyclone.psyGen.Argument.
Definition at line 5825 of file dynamo0p3.py.
References psyclone.dynamo0p3.DynKernelArgument._intrinsic_type.
def psyclone.dynamo0p3.DynKernelArgument.is_field | ( | self | ) |
:returns: True if this kernel argument represents a field, \ False otherwise. :rtype: bool
Definition at line 5787 of file dynamo0p3.py.
References psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._argument_type, psyclone.dynamo0p3.DynKernelArgument._argument_type, psyclone.gocean1p0.GOKernelGridArgument._argument_type, psyclone.gocean1p0.GO1p0Descriptor._argument_type, and psyclone.parse.kernel.Descriptor._argument_type.
def psyclone.dynamo0p3.DynKernelArgument.is_operator | ( | self | ) |
:returns: True if this kernel argument represents an operator, \ False otherwise. :rtype: bool
Definition at line 5797 of file dynamo0p3.py.
References psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._argument_type, psyclone.dynamo0p3.DynKernelArgument._argument_type, psyclone.gocean1p0.GOKernelGridArgument._argument_type, psyclone.gocean1p0.GO1p0Descriptor._argument_type, and psyclone.parse.kernel.Descriptor._argument_type.
def psyclone.dynamo0p3.DynKernelArgument.is_scalar | ( | self | ) |
:returns: True if this kernel argument represents a scalar, \ False otherwise. :rtype: bool
Reimplemented from psyclone.psyGen.KernelArgument.
Definition at line 5777 of file dynamo0p3.py.
References psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._argument_type, psyclone.dynamo0p3.DynKernelArgument._argument_type, psyclone.gocean1p0.GOKernelGridArgument._argument_type, psyclone.gocean1p0.GO1p0Descriptor._argument_type, and psyclone.parse.kernel.Descriptor._argument_type.
def psyclone.dynamo0p3.DynKernelArgument.mesh | ( | self | ) |
:returns: mesh associated with argument ('GH_FINE' or 'GH_COARSE'). :rtype: str
Definition at line 5834 of file dynamo0p3.py.
References psyclone.domain.lfric.kernel.meta_mesh_arg_metadata.MetaMeshArgMetadata._mesh, psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._mesh, psyclone.dynamo0p3.DynKernelArgument._mesh, and psyclone.parse.kernel.Descriptor._mesh.
def psyclone.dynamo0p3.DynKernelArgument.name_indexed | ( | self | ) |
:returns: the name for this argument with an additional index \ which accesses the first element for a vector argument. :rtype: str
Definition at line 5851 of file dynamo0p3.py.
References psyclone.domain.common.algorithm.psyir.AlgorithmInvokeCall._name, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata._name, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.GridArg._name, psyclone.domain.lfric.kernel.lfric_kernel_metadata.LFRicKernelMetadata._name, psyclone.dynamo0p3.DynFuncDescriptor03._name, psyclone.expression.NamedArg._name, psyclone.gocean1p0.GOKernelGridArgument._name, psyclone.gocean1p0.GOStencil._name, psyclone.nemo.NemoInvoke._name, psyclone.nemo.NemoPSy._name, psyclone.parse.algorithm.FileInfo._name, psyclone.parse.algorithm.InvokeCall._name, psyclone.parse.kernel.KernelProcedure._name, psyclone.parse.kernel.KernelType._name, psyclone.parse.module_info.ModuleInfo._name, psyclone.psyGen.PSy._name, psyclone.psyGen.Invoke._name, psyclone.psyGen.Kern._name, psyclone.psyGen.Argument._name, psyclone.psyir.nodes.container.Container._name, psyclone.psyir.nodes.routine.Routine._name, psyclone.psyir.symbols.symbol.Symbol._name, psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._vector_size, and psyclone.dynamo0p3.DynKernelArgument._vector_size.
def psyclone.dynamo0p3.DynKernelArgument.proxy_data_type | ( | self | ) |
:returns: the type of this argument's proxy (if it exists) as \ defined in LFRic infrastructure. :rtype: str or NoneType
Definition at line 5961 of file dynamo0p3.py.
References psyclone.dynamo0p3.DynKernelArgument._proxy_data_type.
def psyclone.dynamo0p3.DynKernelArgument.proxy_declaration_name | ( | self | ) |
:returns: the proxy name for this argument with the array \ dimensions added if required. :rtype: str
Definition at line 5950 of file dynamo0p3.py.
References psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._vector_size, psyclone.dynamo0p3.DynKernelArgument._vector_size, and psyclone.dynamo0p3.DynKernelArgument.proxy_name().
def psyclone.dynamo0p3.DynKernelArgument.proxy_name | ( | self | ) |
:returns: the proxy name for this argument. :rtype: str
Definition at line 5930 of file dynamo0p3.py.
References psyclone.domain.common.algorithm.psyir.AlgorithmInvokeCall._name, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata._name, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.GridArg._name, psyclone.domain.lfric.kernel.lfric_kernel_metadata.LFRicKernelMetadata._name, psyclone.dynamo0p3.DynFuncDescriptor03._name, psyclone.expression.NamedArg._name, psyclone.gocean1p0.GOKernelGridArgument._name, psyclone.gocean1p0.GOStencil._name, psyclone.nemo.NemoInvoke._name, psyclone.nemo.NemoPSy._name, psyclone.parse.algorithm.FileInfo._name, psyclone.parse.algorithm.InvokeCall._name, psyclone.parse.kernel.KernelProcedure._name, psyclone.parse.kernel.KernelType._name, psyclone.parse.module_info.ModuleInfo._name, psyclone.psyGen.PSy._name, psyclone.psyGen.Invoke._name, psyclone.psyGen.Kern._name, psyclone.psyGen.Argument._name, psyclone.psyir.nodes.container.Container._name, psyclone.psyir.nodes.routine.Routine._name, and psyclone.psyir.symbols.symbol.Symbol._name.
def psyclone.dynamo0p3.DynKernelArgument.proxy_name_indexed | ( | self | ) |
:returns: the proxy name for this argument with an additional \ index which accesses the first element for a vector \ argument. :rtype: str
Definition at line 5938 of file dynamo0p3.py.
References psyclone.domain.common.algorithm.psyir.AlgorithmInvokeCall._name, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata._name, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.GridArg._name, psyclone.domain.lfric.kernel.lfric_kernel_metadata.LFRicKernelMetadata._name, psyclone.dynamo0p3.DynFuncDescriptor03._name, psyclone.expression.NamedArg._name, psyclone.gocean1p0.GOKernelGridArgument._name, psyclone.gocean1p0.GOStencil._name, psyclone.nemo.NemoInvoke._name, psyclone.nemo.NemoPSy._name, psyclone.parse.algorithm.FileInfo._name, psyclone.parse.algorithm.InvokeCall._name, psyclone.parse.kernel.KernelProcedure._name, psyclone.parse.kernel.KernelType._name, psyclone.parse.module_info.ModuleInfo._name, psyclone.psyGen.PSy._name, psyclone.psyGen.Invoke._name, psyclone.psyGen.Kern._name, psyclone.psyGen.Argument._name, psyclone.psyir.nodes.container.Container._name, psyclone.psyir.nodes.routine.Routine._name, psyclone.psyir.symbols.symbol.Symbol._name, psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._vector_size, and psyclone.dynamo0p3.DynKernelArgument._vector_size.
def psyclone.dynamo0p3.DynKernelArgument.psyir_expression | ( | self | ) |
Looks up or creates a reference to a suitable Symbol for this kernel argument. If the argument is a scalar that has been provided as a literal (in the Algorithm layer) then the PSyIR of the expression is returned. :returns: the PSyIR for this kernel argument. :rtype: :py:class:`psyclone.psyir.nodes.Node` :raises InternalError: if this argument is a literal but we fail to \ construct PSyIR that is consistent with this. :raises NotImplementedError: if this argument is not a literal, scalar or field.
Reimplemented from psyclone.psyGen.Argument.
Definition at line 5861 of file dynamo0p3.py.
References psyclone.f2pygen.CallGen._call, psyclone.gocean1p0.GOKernelGridArgument._call, psyclone.psyGen.DataAccess._call, psyclone.psyGen.Argument._call, psyclone.dynamo0p3.DynKernelArgument.argument_type, psyclone.gocean1p0.GOKernelArgument.argument_type, psyclone.gocean1p0.GOKernelGridArgument.argument_type(), psyclone.parse.kernel.Descriptor.argument_type(), psyclone.psyGen.Argument.argument_type(), psyclone.gocean1p0.GOKernelArgument.infer_datatype(), psyclone.psyGen.Argument.infer_datatype(), psyclone.dynamo0p3.DynKernelArgument.infer_datatype(), psyclone.parse.algorithm.Arg.is_literal(), psyclone.psyGen.Argument.is_literal(), psyclone.dynamo0p3.DynKernelArgument.is_scalar(), psyclone.gocean1p0.GOKernelArgument.is_scalar(), psyclone.gocean1p0.GOKernelGridArgument.is_scalar(), psyclone.psyGen.KernelArgument.is_scalar(), psyclone.psyir.symbols.typed_symbol.TypedSymbol.is_scalar(), psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.name, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.GridArg.name, psyclone.domain.gocean.transformations.gocean_const_loop_bounds_trans.GOConstLoopBoundsTrans.name(), psyclone.domain.gocean.transformations.gocean_move_iteration_boundaries_inside_kernel_trans.GOMoveIterationBoundariesInsideKernelTrans.name(), psyclone.domain.gocean.transformations.gocean_opencl_trans.GOOpenCLTrans.name(), psyclone.domain.lfric.kernel.lfric_kernel_metadata.LFRicKernelMetadata.name, psyclone.domain.nemo.transformations.create_nemo_invoke_schedule_trans.CreateNemoInvokeScheduleTrans.name(), psyclone.domain.nemo.transformations.create_nemo_psy_trans.CreateNemoPSyTrans.name(), psyclone.domain.nemo.transformations.nemo_allarrayrange2loop_trans.NemoAllArrayRange2LoopTrans.name(), psyclone.domain.nemo.transformations.nemo_arrayrange2loop_trans.NemoArrayRange2LoopTrans.name(), psyclone.domain.nemo.transformations.nemo_outerarrayrange2loop_trans.NemoOuterArrayRange2LoopTrans.name(), psyclone.dynamo0p3.DynamoPSy.name(), psyclone.expression.FunctionVar.name, psyclone.expression.NamedArg.name(), psyclone.gocean1p0.GOKernelGridArgument.name(), psyclone.gocean1p0.GOStencil.name(), psyclone.parse.algorithm.FileInfo.name(), psyclone.parse.algorithm.InvokeCall.name(), psyclone.parse.kernel.KernelProcedure.name(), psyclone.parse.kernel.KernelType.name(), psyclone.parse.module_info.ModuleInfo.name(), psyclone.psyad.transformations.assignment_trans.AssignmentTrans.name(), psyclone.psyGen.PSy.name(), psyclone.psyGen.Invoke.name(), psyclone.psyGen.Kern.name(), psyclone.psyGen.CodedKern.name, psyclone.psyGen.Argument.name(), psyclone.psyGen.Transformation.name(), psyclone.psyGen.DummyTransformation.name(), psyclone.psyir.nodes.container.Container.name, psyclone.psyir.nodes.member.Member.name, psyclone.psyir.nodes.reference.Reference.name(), psyclone.psyir.nodes.routine.Routine.name, psyclone.psyir.symbols.symbol.Symbol.name(), psyclone.psyir.transformations.allarrayaccess2loop_trans.AllArrayAccess2LoopTrans.name(), psyclone.psyir.transformations.arrayrange2loop_trans.ArrayRange2LoopTrans.name(), psyclone.psyir.transformations.fold_conditional_return_expressions_trans.FoldConditionalReturnExpressionsTrans.name(), psyclone.psyir.transformations.loop_trans.LoopTrans.name(), psyclone.psyir.transformations.omp_task_trans.OMPTaskTrans.name(), psyclone.psyir.transformations.psy_data_trans.PSyDataTrans.name(), psyclone.transformations.OMPSingleTrans.name(), psyclone.transformations.OMPMasterTrans.name(), psyclone.transformations.OMPParallelTrans.name(), psyclone.transformations.MoveTrans.name(), psyclone.transformations.Dynamo0p3AsyncHaloExchangeTrans.name(), psyclone.transformations.Dynamo0p3KernelConstTrans.name(), psyclone.transformations.ACCEnterDataTrans.name(), psyclone.transformations.ACCRoutineTrans.name(), psyclone.transformations.ACCKernelsTrans.name(), psyclone.transformations.ACCDataTrans.name(), psyclone.transformations.KernelImportsToArguments.name(), psyclone.psyGen.Argument.precision(), psyclone.psyir.symbols.datatypes.ScalarType.precision, and psyclone.psyir.symbols.datatypes.ArrayType.precision().
def psyclone.dynamo0p3.DynKernelArgument.ref_name | ( | self, | |
function_space = None |
|||
) |
Returns the name used to dereference this type of argument (depends on whether it is a field or operator and, if the latter, whether it is the to- or from-space that is specified). :param function_space: the function space of this argument :type function_space: :py:class:`psyclone.domain.lfric.FunctionSpace` :returns: the name used to dereference this argument. :rtype: str :raises GenerationError: if the supplied function space is not one \ of the function spaces associated with \ this argument. :raises GenerationError: if the supplied function space is not being \ returned by either 'function_space_from' or \ 'function_space_to'. :raises GenerationError: if the argument type is not supported.
Definition at line 5438 of file dynamo0p3.py.
References psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._data_type, psyclone.dynamo0p3.DynKernelArgument._data_type, psyclone.psyGen.Argument._data_type, psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._function_spaces, psyclone.dynamo0p3.DynFunctionSpaces._function_spaces, psyclone.dynamo0p3.DynKernelArgument._function_spaces, psyclone.dynamo0p3.DynKernelArgument._init_field_properties(), psyclone.dynamo0p3.DynKernelArgument._init_operator_properties(), psyclone.dynamo0p3.DynKernelArgument._init_scalar_properties(), psyclone.dynamo0p3.DynKernelArgument._module_name, psyclone.parse.algorithm.ParsedCall._module_name, psyclone.parse.algorithm.KernelCall._module_name, psyclone.psyGen.CodedKern._module_name, psyclone.psyGen.Argument._module_name, psyclone.psyir.nodes.psy_data_node.PSyDataNode._module_name, psyclone.dynamo0p3.DynKernelArgument._precision, psyclone.psyGen.Argument._precision, psyclone.psyir.symbols.datatypes.ScalarType._precision, psyclone.psyir.symbols.datatypes.ArrayType._precision, psyclone.dynamo0p3.DynKernelArgument._proxy_data_type, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.GridArg.access, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.access, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.ScalarArg.access(), psyclone.domain.lfric.kernel.common_meta_arg_metadata.CommonMetaArgMetadata.access, psyclone.dynamo0p3.DynKernelArgument.access, psyclone.parse.kernel.Descriptor.access(), psyclone.psyGen.Argument.access(), psyclone.psyir.symbols.interfaces.ArgumentInterface.access, psyclone.dynamo0p3.DynKernelArgument.argument_type, psyclone.gocean1p0.GOKernelArgument.argument_type, psyclone.gocean1p0.GOKernelGridArgument.argument_type(), psyclone.parse.kernel.Descriptor.argument_type(), psyclone.psyGen.Argument.argument_type(), psyclone.dynamo0p3.DynKernelArgument.descriptor(), psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor.function_spaces(), psyclone.domain.lfric.lfric_invoke.LFRicInvoke.function_spaces, psyclone.dynamo0p3.DynKernelArgument.function_spaces(), psyclone.dynamo0p3.DynKernelArgument.intrinsic_type, psyclone.gocean1p0.GOKernelArgument.intrinsic_type(), psyclone.gocean1p0.GOKernelGridArgument.intrinsic_type(), psyclone.psyGen.Argument.intrinsic_type(), psyclone.dynamo0p3.DynKernelArgument.is_field(), psyclone.parse.algorithm.Arg.is_literal(), psyclone.psyGen.Argument.is_literal(), psyclone.dynamo0p3.DynKernelArgument.is_operator(), psyclone.dynamo0p3.DynKernelArgument.is_scalar(), psyclone.gocean1p0.GOKernelArgument.is_scalar(), psyclone.gocean1p0.GOKernelGridArgument.is_scalar(), psyclone.psyGen.KernelArgument.is_scalar(), and psyclone.psyir.symbols.typed_symbol.TypedSymbol.is_scalar().
def psyclone.dynamo0p3.DynKernelArgument.stencil | ( | self | ) |
:returns: stencil information for this argument if it exists. :rtype: :py:class:`psyclone.dynamo0p3.LFRicArgStencil`
Reimplemented from psyclone.psyGen.KernelArgument.
Definition at line 6079 of file dynamo0p3.py.
References psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg._stencil, psyclone.domain.lfric.arg_index_to_metadata_index.ArgIndexToMetadataIndex._stencil(), psyclone.domain.lfric.kernel.field_arg_metadata.FieldArgMetadata._stencil, psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._stencil, psyclone.domain.lfric.metadata_to_arguments_rules.MetadataToArgumentsRules._stencil(), psyclone.dynamo0p3.DynKernelArgument._stencil, psyclone.gocean1p0.GOStencil._stencil, and psyclone.parse.kernel.Descriptor._stencil.
def psyclone.dynamo0p3.DynKernelArgument.stencil | ( | self, | |
value | |||
) |
Sets stencil information for this kernel argument. :param value: stencil information for this argument. :type value: :py:class:`psyclone.dynamo0p3.LFRicArgStencil`
Definition at line 6087 of file dynamo0p3.py.
References psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg._stencil, psyclone.domain.lfric.arg_index_to_metadata_index.ArgIndexToMetadataIndex._stencil(), psyclone.domain.lfric.kernel.field_arg_metadata.FieldArgMetadata._stencil, psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._stencil, psyclone.domain.lfric.metadata_to_arguments_rules.MetadataToArgumentsRules._stencil(), psyclone.dynamo0p3.DynKernelArgument._stencil, psyclone.gocean1p0.GOStencil._stencil, psyclone.parse.kernel.Descriptor._stencil, and psyclone.dynamo0p3.DynKernelArgument.stencil().
def psyclone.dynamo0p3.DynKernelArgument.vector_size | ( | self | ) |
:returns: the vector size of this argument as specified in \ the Kernel metadata. :rtype: str
Definition at line 5842 of file dynamo0p3.py.
References psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._vector_size, and psyclone.dynamo0p3.DynKernelArgument._vector_size.