# Slides: ICON Python dycore - frontend overview ###### tags: `frontend` --- Datastructures --- $$\texttt{Field[} \underbrace{\texttt{[Vertex, K]}}_{\text{Position type}}\texttt{, } \underbrace{\texttt{gt.float64}}_{\text{Value type}}\texttt{]}$$ <!-- A mapping from a position to a value. --> --- $$\small\begin{aligned}\texttt{Iterator[} \underbrace{\texttt{[Vertex, K]}}_{\text{Current position type}}\texttt{, } \underbrace{\texttt{[Edge, K]}}_{\text{Field position type}}\texttt{, } \underbrace{\texttt{gt.float64}}_{\text{Value type}}\texttt{]}\end{aligned}$$ <!-- A position together with a field As soon as the type of the current position and of the backing fields position match an iterator matches a value. --> --- ## Beautified Iterator View --- ### Shift + Deref Assume ```python it: Iterator[[Vertex, K], [Edge, K], gt.float64] ``` then ```python it(V2E[0]) ``` gives the value of the first edge neighbor to the current iterators position. --- Local Operator ```python= @gt.local_operator def average(it: Iterator[[Vertex, K], Iterator[Edge, K], DT]): return it(V2E[0])+it(V2E[1])+it(V2E[2])+it(V2E[3]) ```
{"metaMigratedAt":"2023-06-16T15:05:21.894Z","metaMigratedFrom":"Content","title":"Slides: ICON Python dycore - frontend overview","breaks":false,"contributors":"[{\"id\":\"fabd8852-0b5d-4bad-be23-300f4d46cf54\",\"add\":1249,\"del\":102}]"}
    198 views
   Owned this note