Reference Guide  2.5.0
psyclone.domain.lfric.kernel.evaluator_targets_metadata.EvaluatorTargetsMetadata Class Reference
Inheritance diagram for psyclone.domain.lfric.kernel.evaluator_targets_metadata.EvaluatorTargetsMetadata:
Collaboration diagram for psyclone.domain.lfric.kernel.evaluator_targets_metadata.EvaluatorTargetsMetadata:

Public Member Functions

def __init__ (self, evaluator_targets)
 
def fortran_string (self)
 
def evaluator_targets (self)
 
def evaluator_targets (self, values)
 

Static Public Member Functions

def create_from_fparser2 (fparser2_tree)
 

Public Attributes

 evaluator_targets
 

Additional Inherited Members

Detailed Description

Class to capture the values of the LFRic kernel
GH_EVALUATOR_TARGETS metadata.  This class supports the creation,
modification and Fortran output of this metadata.

if an evaluator is required for multiple function spaces then
this is specified using the gh_evaluator_targets
metadata.

:param evaluator_targets: a list of function-space names.
:type evaluator_targets: List[str]

Definition at line 45 of file evaluator_targets_metadata.py.

Member Function Documentation

◆ create_from_fparser2()

def psyclone.domain.lfric.kernel.evaluator_targets_metadata.EvaluatorTargetsMetadata.create_from_fparser2 (   fparser2_tree)
static
Create an instance of EvaluatorTargetsMetadata from an fparser2
tree.

LFRic evaluator targets metadata is in array form. Two
versions of the array form are supported:

integer :: gh_evaluator_targets(2) = (/ w0, w1 /)
integer, dimension(2) :: gh_shape = (/ w0, w1 /)

:param fparser2_tree: fparser2 tree capturing the evaluator \
    targets metadata.
:type fparser2_tree: :py:class:`fparser.two.Fortran2003.\
    Data_Component_Def_Stmt`

:returns: an instance of EvaluatorTargetsMetadata.
:rtype: :py:class:`psyclone.domain.lfric.kernel.\
    EvaluatorTargetsMetadata`

Reimplemented from psyclone.domain.lfric.kernel.common_metadata.CommonMetadata.

Definition at line 71 of file evaluator_targets_metadata.py.

71  def create_from_fparser2(fparser2_tree):
72  '''Create an instance of EvaluatorTargetsMetadata from an fparser2
73  tree.
74 
75  LFRic evaluator targets metadata is in array form. Two
76  versions of the array form are supported:
77 
78  integer :: gh_evaluator_targets(2) = (/ w0, w1 /)
79  integer, dimension(2) :: gh_shape = (/ w0, w1 /)
80 
81  :param fparser2_tree: fparser2 tree capturing the evaluator \
82  targets metadata.
83  :type fparser2_tree: :py:class:`fparser.two.Fortran2003.\
84  Data_Component_Def_Stmt`
85 
86  :returns: an instance of EvaluatorTargetsMetadata.
87  :rtype: :py:class:`psyclone.domain.lfric.kernel.\
88  EvaluatorTargetsMetadata`
89 
90  '''
91  const = LFRicConstants()
92  valid_values = const.VALID_FUNCTION_SPACES
93  values_list = EvaluatorTargetsMetadata.\
94  get_intrinsic_array_declaration(
95  fparser2_tree, "INTEGER", "GH_EVALUATOR_TARGETS", valid_values)
96  return EvaluatorTargetsMetadata(values_list)
97 

References psyclone.domain.lfric.kernel.common_declaration_metadata.CommonDeclarationMetadata.get_intrinsic_array_declaration().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ evaluator_targets() [1/2]

def psyclone.domain.lfric.kernel.evaluator_targets_metadata.EvaluatorTargetsMetadata.evaluator_targets (   self)
:returns: a list of evaluator targets values (names of \
    function spaces).
:rtype: List[str]

Definition at line 99 of file evaluator_targets_metadata.py.

99  def evaluator_targets(self):
100  '''
101  :returns: a list of evaluator targets values (names of \
102  function spaces).
103  :rtype: List[str]
104  '''
105  return self._evaluator_targets[:]
106 

References psyclone.domain.lfric.kernel.evaluator_targets_metadata.EvaluatorTargetsMetadata._evaluator_targets, and psyclone.domain.lfric.kernel.lfric_kernel_metadata.LFRicKernelMetadata._evaluator_targets.

◆ evaluator_targets() [2/2]

def psyclone.domain.lfric.kernel.evaluator_targets_metadata.EvaluatorTargetsMetadata.evaluator_targets (   self,
  values 
)
:param values: set the evaluator_targets metadata to the \
    supplied list of values.
:type values: List[str]

Definition at line 108 of file evaluator_targets_metadata.py.

108  def evaluator_targets(self, values):
109  '''
110  :param values: set the evaluator_targets metadata to the \
111  supplied list of values.
112  :type values: List[str]
113  '''
114  const = LFRicConstants()
115  EvaluatorTargetsMetadata.validate_list(values, str)
116  for value in values:
117  EvaluatorTargetsMetadata.validate_scalar_value(
118  value, const.VALID_FUNCTION_SPACES, "evaluator_targets")
119  # Take a copy of the list so that it can't be modified
120  # externally. Also make all values lower case.
121  self._evaluator_targets = [value.lower() for value in values]
122 
123 

References psyclone.domain.lfric.kernel.evaluator_targets_metadata.EvaluatorTargetsMetadata._evaluator_targets, and psyclone.domain.lfric.kernel.lfric_kernel_metadata.LFRicKernelMetadata._evaluator_targets.

◆ fortran_string()

def psyclone.domain.lfric.kernel.evaluator_targets_metadata.EvaluatorTargetsMetadata.fortran_string (   self)
 :returns: the evaluator_targets metadata as Fortran.
 :rtype: str

Definition at line 62 of file evaluator_targets_metadata.py.

62  def fortran_string(self):
63  '''
64  :returns: the evaluator_targets metadata as Fortran.
65  :rtype: str
66  '''
67  return EvaluatorTargetsMetadata.array_declaration_string(
68  "INTEGER", "GH_EVALUATOR_TARGETS", self._evaluator_targets)
69 

References psyclone.domain.lfric.kernel.evaluator_targets_metadata.EvaluatorTargetsMetadata._evaluator_targets, and psyclone.domain.lfric.kernel.lfric_kernel_metadata.LFRicKernelMetadata._evaluator_targets.

Here is the caller graph for this function:

The documentation for this class was generated from the following file: