Reference Guide  2.5.0
psyclone.dynamo0p3.DynBoundaryConditions Class Reference
Inheritance diagram for psyclone.dynamo0p3.DynBoundaryConditions:
Collaboration diagram for psyclone.dynamo0p3.DynBoundaryConditions:

Public Member Functions

def __init__ (self, node)
 
def initialise (self, parent)
 
- Public Member Functions inherited from psyclone.domain.lfric.lfric_collection.LFRicCollection
def declarations (self, parent)
 

Static Public Attributes

 BoundaryDofs = namedtuple("BoundaryDofs", ["argument", "function_space"])
 

Detailed Description

Manages declarations and initialisation of quantities required by
kernels that need boundary condition information.

:param node: the Invoke or Kernel stub for which we are to handle \
             any boundary conditions.
:type node: :py:class:`psyclone.dynamo0p3.LFRicInvoke` or \
            :py:class:`psyclone.domain.lfric.LFRicKern`

:raises GenerationError: if a kernel named "enforce_bc_code" is found \
                         but does not have an argument on ANY_SPACE_1.
:raises GenerationError: if a kernel named "enforce_operator_bc_code" is \
                         found but does not have exactly one argument.

Definition at line 3526 of file dynamo0p3.py.

Member Function Documentation

◆ initialise()

def psyclone.dynamo0p3.DynBoundaryConditions.initialise (   self,
  parent 
)
Initialise any boundary-dofs arrays required by an Invoke.

:param parent: node in PSyIR to which to add declarations.
:type parent: :py:class:`psyclone.psyir.nodes.Node`

Reimplemented from psyclone.domain.lfric.lfric_collection.LFRicCollection.

Definition at line 3615 of file dynamo0p3.py.

3615  def initialise(self, parent):
3616  '''
3617  Initialise any boundary-dofs arrays required by an Invoke.
3618 
3619  :param parent: node in PSyIR to which to add declarations.
3620  :type parent: :py:class:`psyclone.psyir.nodes.Node`
3621 
3622  '''
3623  for dofs in self._boundary_dofs:
3624  name = "boundary_dofs_" + dofs.argument.name
3625  parent.add(AssignGen(
3626  parent, pointer=True, lhs=name,
3627  rhs="%".join([dofs.argument.proxy_name,
3628  dofs.argument.ref_name(dofs.function_space),
3629  "get_boundary_dofs()"])))
3630 
3631 

References psyclone.dynamo0p3.DynBoundaryConditions._boundary_dofs.


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