1
|
Search.setIndex({"docnames": ["faq/faq", "getting_started/getting_started", "glossary/glossary", "index", "internal/internal", "introduction/introduction", "user_manual/user_manual"], "filenames": ["faq/faq.rst", "getting_started/getting_started.rst", "glossary/glossary.rst", "index.rst", "internal/internal.rst", "introduction/introduction.rst", "user_manual/user_manual.rst"], "titles": ["Frequently Asked Questions", "Getting Started", "Glossary", "GridTools", "Internal Documentation", "Introduction", "User Manual"], "terms": {"gridtool": [0, 2, 6], "The": [0, 1, 2, 4, 5], "document": [0, 3], "base": [0, 5, 6], "sphinx": 0, "go": [0, 1, 4, 6], "docs_src": 0, "manual": [0, 3], "your": [0, 5, 6], "consol": 0, "pip": 0, "instal": [0, 1], "r": [0, 1, 6], "requir": [0, 1, 4, 5, 6], "txt": [0, 5], "make": [0, 1, 4, 5, 6], "output": [0, 1, 4, 6], "subdirectori": 0, "insid": [0, 1, 4, 6], "main": [0, 1, 2, 4, 6], "directori": [0, 1, 5], "thi": [1, 4, 5, 6], "chapter": [1, 4], "describ": [1, 2, 4, 5, 6], "how": [1, 3, 4, 5, 6], "us": [1, 2, 3, 4, 6], "solv": [1, 4], "simpl": [1, 5, 6], "pde": [1, 4], "we": [1, 4, 5, 6], "fourth": 1, "order": [1, 2, 4, 5, 6], "horizont": [1, 2, 4, 6], "explain": [1, 6], "necessari": [1, 4, 6], "step": [1, 4, 6], "from": [1, 2, 4, 5, 6], "scratch": [1, 6], "detail": [1, 6], "refer": [1, 2, 5, 6], "later": [1, 4, 5, 6], "more": [1, 3, 6], "our": [1, 3, 4, 5, 6], "given": [1, 2, 4, 6], "frac": 1, "partial": [1, 2, 6], "phi": 1, "t": [1, 4, 6], "begin": [1, 4, 6], "case": [1, 4, 6], "alpha": 1, "nabla": 1, "4": [1, 4, 5, 6], "z": [1, 6], "leq": 1, "z_": 1, "text": 1, "0": [1, 2, 4, 5, 6], "z_0": 1, "end": [1, 4, 6], "where": [1, 4, 5, 6], "squar": [1, 4], "two": [1, 4, 5, 6], "dimension": [1, 2, 6], "onli": [1, 2, 4, 5, 6], "up": [1, 4, 5, 6], "some": [1, 4, 6], "maxim": [1, 4], "interest": 1, "calcul": [1, 6], "l": [1, 6], "delta": 1, "left": [1, 4, 6], "2": [1, 4, 6], "x": [1, 4, 6], "y": [1, 4, 6], "right": [1, 4, 6], "In": [1, 4, 5, 6], "follow": [1, 4, 5, 6], "walk": 1, "through": [1, 2, 6], "its": [1, 2, 4, 5, 6], "notat": 1, "doe": [1, 4, 6], "manag": [1, 2, 5], "input": [1, 4, 6], "field": [1, 2, 4, 5, 6], "second": [1, 4, 6], "final": [1, 6], "function": [1, 3, 4, 5], "For": [1, 2, 4, 5, 6], "finit": 1, "differ": [1, 2, 5, 6], "discret": 1, "restrict": 1, "mathbb": 1, "3": [1, 4, 5, 6], "grid": [1, 2, 3, 5], "i": [1, 2, 3, 4, 6], "x_i": 1, "j": [1, 2, 4, 6], "y_j": 1, "dimens": [1, 2, 4, 6], "k": [1, 2, 6], "z_k": 1, "vertic": [1, 2, 4], "ar": [1, 2, 4, 5, 6], "comput": [1, 2, 3, 5], "domain": [1, 2, 4, 5], "defin": [1, 2, 4], "all": [1, 2, 4, 5, 6], "point": [1, 2, 4, 5, 6], "lambda": [1, 6], "quad": 1, "dot": [1, 4, 6], "n_i": 1, "1": [1, 4, 5, 6], "n_j": 1, "n_k": 1, "support": [1, 6], "ani": [1, 4, 5, 6], "number": [1, 4, 6], "howev": [1, 4, 5, 6], "iter": [1, 2, 4], "alwai": [1, 4, 6], "three": [1, 4, 6], "treat": [1, 4, 6], "one": [1, 2, 4, 5, 6], "here": [1, 6], "ij": [1, 6], "plane": [1, 6], "execut": [1, 2, 3, 4, 5], "parallel": [1, 2, 5, 6], "while": [1, 2, 4, 6], "can": [1, 2, 4, 5, 6], "sequenti": [1, 6], "consequ": 1, "must": [1, 4, 5, 6], "depend": [1, 3, 6], "within": [1, 4, 6], "now": [1, 4, 6], "suffici": 1, "just": [1, 4, 5, 6], "rememb": 1, "surround": 1, "boundari": [1, 2, 3, 4, 5], "region": [1, 2, 4], "depict": [1, 6], "fig": [1, 4, 6], "happen": [1, 4, 6], "valu": [1, 2, 4, 6], "mai": [1, 4, 6], "read": [1, 2, 4, 6], "section": [1, 2, 6], "set": [1, 2, 4, 5, 6], "need": [1, 4, 5, 6], "phi_in": 1, "phi_out": 1, "n": [1, 4, 6], "arrai": [1, 2], "like": [1, 4, 6], "object": [1, 2, 4, 6], "capabl": [1, 5, 6], "access": [1, 2, 4], "an": [1, 2, 4, 5, 6], "element": [1, 2, 4, 6], "syntax": [1, 6], "synchron": [1, 6], "between": [1, 2, 4, 6], "cpu": [1, 5, 6], "memori": [1, 4, 6], "devic": [1, 5, 6], "e": [1, 2, 4, 5, 6], "g": [1, 2, 4, 5, 6], "cuda": [1, 4, 5], "gpu": [1, 4, 6], "sinc": [1, 4, 6], "architectur": [1, 2, 5, 6], "type": [1, 2], "which": [1, 2, 4, 5, 6], "typic": [1, 6], "look": [1, 4, 6], "includ": [1, 5, 6], "hpp": [1, 6], "traits_t": 1, "cpu_ifirst": [1, 6], "effici": [1, 2, 4, 5, 6], "index": [1, 2, 3, 6], "might": [1, 6], "target": [1, 5, 6], "therefor": [1, 4, 6], "layout": [1, 2, 4, 5], "implicitli": 1, "decid": 1, "class": [1, 2, 4], "don": [1, 4, 6], "have": [1, 4, 5, 6], "user": [1, 2, 3, 4, 5], "face": [1, 2, 5, 6], "constructor": [1, 4, 6], "builder": 1, "design": [1, 3], "pattern": [1, 6], "instead": [1, 4, 6], "librari": [1, 2, 3, 4, 5], "provid": [1, 2, 4, 5], "templat": [1, 4, 5, 6], "instanti": [1, 4, 6], "To": [1, 4, 5, 6], "creat": [1, 4, 6], "suppli": 1, "desir": [1, 6], "properti": [1, 6], "chain": 1, "setter": 1, "return": [1, 4, 6], "std": [1, 6], "shared_ptr": [1, 6], "newli": 1, "also": [1, 2, 4, 5, 6], "oper": [1, 2, 3, 4, 5], "synonym": [1, 2], "There": [1, 4, 6], "eg": 1, "doubl": [1, 6], "size": [1, 2, 4, 6], "each": [1, 4, 5, 6], "10": [1, 4, 6], "12": [1, 4], "20": [1, 6], "other": [1, 3, 4, 5], "option": [1, 5, 6], "If": [1, 4, 5, 6], "sever": [1, 2, 4, 5, 6], "share": [1, 4, 6], "construct": [1, 4, 6], "specifi": [1, 4, 6], "reus": [1, 6], "concret": [1, 4, 6], "uint_t": [1, 4, 6], "ni": 1, "nj": 1, "nk": 1, "auto": [1, 5, 6], "const": [1, 6], "id": [1, 4, 6], "name": [1, 2, 6], "float": [1, 6], "initi": [1, 4, 6], "int": [1, 6], "lap": [1, 6], "It": [1, 4, 5, 6], "recommend": [1, 5, 6], "time": [1, 2, 4, 5, 6], "should": [1, 4, 5, 6], "identifi": [1, 4, 6], "uniqu": [1, 4, 6], "becaus": [1, 4, 6], "engin": 1, "assum": [1, 4, 6], "same": [1, 2, 4, 5, 6], "skip": [1, 6], "retriev": 1, "view": [1, 2], "write": [1, 4, 6], "parenthesi": 1, "queri": [1, 4, 6], "length": [1, 6], "cout": 1, "phi_view": 1, "host_view": [1, 6], "1415": 1, "endl": 1, "A": [1, 2, 6], "kernel": [1, 6], "accord": [1, 4, 6], "fix": [1, 4, 6], "simplest": [1, 6], "five": [1, 6], "itself": [1, 6], "four": 1, "direct": [1, 4, 6], "neighbor": [1, 2, 4, 6], "along": [1, 2, 6], "cartesian": [1, 6], "axi": [1, 2, 4, 6], "c": [1, 4, 5, 6], "implement": [1, 4, 5, 6], "boundary_s": 1, "apart": [1, 4, 6], "consist": 1, "compon": [1, 6], "loop": [1, 6], "applic": [1, 4, 5], "formula": [1, 4], "special": [1, 2, 4, 6], "care": [1, 6], "ha": [1, 2, 4, 6], "taken": [1, 6], "cannot": [1, 4, 6], "layer": [1, 5, 6], "exclud": [1, 6], "optim": [1, 5, 6], "gridpoint": 1, "combin": [1, 4, 6], "compil": [1, 2, 4, 5, 6], "meta": [1, 6], "program": [1, 3, 4, 5], "state": [1, 6], "less": [1, 6], "struct": [1, 2, 4, 5, 6], "static": [1, 5, 6], "As": [1, 4, 6], "member": [1, 6], "variabl": [1, 5], "thei": [1, 4, 6], "pass": 1, "allow": [1, 2, 4, 5, 6], "lap_funct": [1, 6], "in_accessor": [1, 5, 6], "extent": [1, 2, 4, 6], "inout_accessor": [1, 5, 6], "param_list": [1, 4, 5, 6], "make_param_list": [1, 5, 6], "typenam": [1, 4, 5, 6], "evalu": [1, 5, 6], "gt_function": [1, 5, 6], "void": [1, 5, 6], "eval": [1, 5, 6], "addit": [1, 2, 4, 6], "contain": [1, 4, 5, 6], "accessor": [1, 2, 4], "s": [1, 4, 6], "These": [1, 4, 6], "paramet": [1, 2, 4], "map": [1, 2], "inform": [1, 2, 3, 4, 6], "want": [1, 4, 5, 6], "associ": [1, 2, 4, 6], "inout": [1, 6], "addition": [1, 4, 5, 6], "rel": [1, 2, 4, 6], "current": [1, 2, 4, 6], "format": 1, "i_minu": [1, 6], "i_plu": [1, 6], "j_minu": [1, 6], "j_plu": [1, 6], "k_minu": [1, 6], "k_plu": [1, 6], "interv": [1, 2], "posit": [1, 4, 6], "neg": [1, 4, 6], "offset": [1, 2, 3, 6], "zero": [1, 4, 6], "analog": [1, 6], "analysi": [1, 3, 6], "complex": 1, "extend": [1, 4], "when": [1, 2, 4, 6], "done": [1, 4, 6], "automat": [1, 6], "argument": [1, 2, 4], "keyword": [1, 6], "list": [1, 4, 5], "context": [1, 5, 6], "usual": [1, 2, 4, 6], "invoc": 1, "among": [1, 4, 6], "thing": [1, 6], "activ": [1, 6], "data": [1, 2, 3, 5], "pointer": [1, 3, 6], "default": [1, 5], "bodi": 1, "quit": [1, 6], "similar": [1, 2, 4, 6], "except": [1, 6], "wrap": [1, 5, 6], "run": [1, 2, 4, 5], "data_stor": [1, 4, 6], "alreadi": [1, 4, 6], "about": [1, 4, 6], "platform": 1, "independ": [1, 4, 6], "specif": [1, 5], "embed": 1, "languag": [1, 3, 5], "dsel": 1, "backend": [1, 2, 4, 5], "halo": [1, 2, 3], "storage_traits_t": 1, "halo_descriptor": [1, 6], "boundary_i": 1, "boundary_j": 1, "make_grid": [1, 6], "run_single_stag": 1, "stencil_backend_t": 1, "line": [1, 5, 6], "14": [1, 4, 6], "16": [1, 4], "setup": [1, 6], "physic": [1, 2, 4], "problem": [1, 4, 6], "belong": 1, "pad": [1, 4, 6], "enough": [1, 4], "know": [1, 4], "next": [1, 4, 6], "discuss": [1, 4, 6], "18": [1, 4], "particip": [1, 2, 6], "henc": [1, 6], "api": [1, 4], "bound": [1, 4, 6], "match": [1, 4, 6], "work": [1, 4, 6], "copyright": [1, 5], "2014": 1, "2021": 1, "eth": [1, 5], "zurich": [1, 5], "reserv": 1, "pleas": [1, 3, 6], "licens": 1, "file": [1, 4, 5, 6], "root": 1, "spdx": 1, "bsd": 1, "claus": [1, 6], "common": [1, 6], "def": 1, "sid": 1, "namespac": [1, 6], "express": [1, 4, 5], "ifdef": 1, "gt_cudacc": 1, "els": 1, "endif": [1, 5], "did": 1, "so": [1, 4, 6], "far": 1, "consid": [1, 4, 6], "won": 1, "them": [1, 4, 6], "preprocessor": 1, "flag": [1, 5, 6], "__cudacc__": 1, "distinguish": [1, 6], "code": [1, 2, 4, 5, 6], "intern": [1, 3, 6], "gt_cuda": 1, "macro": [1, 6], "do": [1, 3, 6], "correct": [1, 2, 4, 6], "respect": [1, 4, 6], "cmake": 1, "script": [1, 6], "see": [1, 2, 4, 5, 6], "valid": [1, 6], "cmake_minimum_requir": 1, "version": [1, 5, 6], "project": [1, 5, 6], "cxx": 1, "cmake_cxx_extens": 1, "off": [1, 5], "hip": [1, 5], "find_packag": [1, 5], "quiet": 1, "stencil_cpu_ifirst": [1, 5], "add_execut": 1, "gt_laplacian": 1, "test_gt_laplacian": 1, "cpp": [1, 4, 5, 6], "target_link_librari": [1, 5], "preced": 1, "saw": 1, "could": [1, 4, 6], "naive_smooth": 1, "out": [1, 5, 6], "kmax": 1, "lap_boundari": 1, "full_boundari": 1, "make_storag": 1, "storage_build": 1, "lap_storag": 1, "target_view": [1, 6], "laplap_storag": 1, "laplap": 1, "learn": 1, "veri": [1, 6], "close": [1, 4, 6], "previou": [1, 4, 6], "store": [1, 2, 4], "result": [1, 4, 6], "extra": 1, "Then": 1, "third": [1, 6], "show": [1, 4, 6], "smoothing_function_1": 1, "constexpr": [1, 6], "5": [1, 4, 5, 6], "lower_domain": 1, "upper_domain": 1, "axis_t": [1, 6], "get_interv": [1, 6], "give": [1, 4, 6], "phi_new": 1, "spec": [1, 6], "execute_parallel": [1, 6], "stage": [1, 2, 4, 5], "compos": [1, 2, 5, 6], "achiev": [1, 4, 5, 6], "featur": [1, 6], "composit": [1, 2, 3], "That": [1, 6], "form": [1, 5, 6], "gener": [1, 2, 6], "Its": 1, "repres": [1, 2, 4, 6], "dsl": [1, 5, 6], "mean": [1, 4, 6], "level": [1, 4, 5, 6], "explicitli": [1, 6], "alloc": [1, 4, 6], "lifetim": 1, "exactli": [1, 4], "what": [1, 3, 6], "note": [1, 4], "outsid": [1, 6], "sometim": 1, "replac": [1, 4, 6], "normal": [1, 6], "debug": [1, 6], "correspond": [1, 4, 6], "declar": [1, 6], "gt_declare_tmp": [1, 6], "explicit": 1, "new": [1, 4, 6], "besid": 1, "simplif": 1, "concept": [1, 4], "block": [1, 4, 5], "privat": [1, 4], "redund": [1, 4, 6], "semant": 1, "incorrect": 1, "thread": [1, 4], "openmp": [1, 5], "locat": [1, 4, 6], "multipl": [1, 2, 5, 6], "long": [1, 4, 6], "hardwar": [1, 2, 5], "chang": [1, 5, 6], "futur": [1, 6], "side": [1, 4, 6], "effect": [1, 6], "perform": [1, 4, 5, 6], "intermedi": [1, 4], "fly": [1, 4, 5, 6], "rid": 1, "necessarili": 1, "well": [1, 4, 6], "actual": [1, 4, 6], "faster": 1, "remov": [1, 6], "twice": [1, 6], "move": [1, 4, 6], "smoothing_function_3": 1, "forward": [1, 2, 6], "still": [1, 6], "infer": [1, 6], "One": [1, 6], "wa": [1, 4, 5, 6], "attent": 1, "reader": 1, "notic": 1, "than": [1, 4, 5, 6], "k_": 1, "max": 1, "bit": 1, "better": [1, 6], "interfac": [2, 3, 5], "stencil": [2, 3, 4, 5], "appli": [2, 4, 5], "method": 2, "overload": [2, 6], "exist": [2, 4, 6], "space": 2, "select": [2, 5], "condit": [2, 3, 5], "edg": [2, 4, 6], "corner": [2, 6], "3d": [2, 6], "cube": [2, 6], "global": 2, "cach": [2, 5], "softwar": 2, "multi": 2, "logic": [2, 4, 6], "multidimension": [2, 6], "synopsi": 2, "modifi": [2, 4, 6], "tupl": [2, 4, 6], "indic": [2, 4, 5, 6], "model": [2, 3, 5], "definit": [2, 4, 6], "maximum": [2, 4, 6], "coordin": [2, 3, 4, 6], "ax": 2, "around": [2, 4, 6], "temperatur": 2, "often": [2, 6], "particular": [2, 4, 6], "gcl": [2, 5], "commun": [2, 5], "modul": [2, 3, 5], "exchang": [2, 3], "distribut": [2, 3], "subprocess": 2, "align": [2, 4, 6], "descriptor": 2, "process": [2, 6], "tripl": 2, "denot": 2, "written": [2, 4, 6], "sequenc": [2, 4, 6], "integ": [2, 4, 6], "storag": [2, 3, 4], "mask": [2, 6], "stride": [2, 4, 6], "collect": [2, 4, 6], "placehold": [2, 4, 6], "notion": 2, "dure": [2, 5, 6], "polici": [2, 5], "trait": 2, "suitabl": 2, "backward": [2, 6], "subset": [2, 6], "possibl": [2, 4, 5, 6], "cover": [2, 6], "part": [2, 4, 5, 6], "rang": [2, 4, 5, 6], "welcom": [3, 5], "framework": [3, 5], "visit": [3, 4], "github": [3, 5, 6], "repositori": 3, "introduct": 3, "Is": 3, "contribut": 3, "get": [3, 4, 6], "start": [3, 4, 6], "system": [3, 5, 6], "first": [3, 4, 6], "assembl": 3, "smooth": [3, 4], "filter": 3, "advanc": 3, "glossari": 3, "algorithm": [3, 6], "topolog": [3, 6], "irregular": 3, "splitter": 3, "frequent": 3, "ask": 3, "question": 3, "build": [3, 5, 6], "doc": 3, "search": [3, 4], "page": [3, 6], "On": [4, 6], "frontend": [4, 5], "storage_info": [4, 6], "data_view": 4, "deal": [4, 6], "onc": [4, 6], "aggregator_typ": 4, "extract": 4, "raw": [4, 6], "iterate_domain": 4, "save": 4, "regist": [4, 6], "wast": 4, "resourc": [4, 6], "instanc": [4, 6], "singl": [4, 6], "equal": [4, 6], "7": [4, 6], "flow": [4, 6], "feed": 4, "transform": [4, 6], "seen": 4, "befor": [4, 5, 6], "unfortun": 4, "call": [4, 5], "reason": [4, 5, 6], "split": [4, 6], "stream": 4, "multiprocessor": 4, "core": [4, 5, 6], "per": 4, "8": [4, 6], "content": 4, "visibl": 4, "_id": 4, "_x": 4, "_size": 4, "_i": 4, "_y": 4, "_j": 4, "shift": [4, 6], "avail": [4, 5, 6], "certain": [4, 6], "known": [4, 6], "beforehand": 4, "With": [4, 6], "non": [4, 6], "add": [4, 5, 6], "9": [4, 6], "compar": 4, "versu": 4, "green": 4, "mark": [4, 6], "own": [4, 6], "blue": 4, "yellow": 4, "draw": 4, "ad": [4, 6], "improv": [4, 6], "introduc": [4, 6], "slightli": 4, "shown": [4, 6], "simpli": 4, "multipli": 4, "abov": [4, 6], "consumpt": 4, "mainli": [4, 6], "conveni": [4, 6], "smoothli": 4, "integr": [4, 5, 6], "formerli": 4, "consum": [4, 6], "solut": [4, 6], "occur": 4, "mention": [4, 6], "correctli": 4, "unalign": 4, "max_halo": 4, "used_halo": 4, "diffus": [4, 6], "flx": [4, 6], "properli": 4, "mistak": 4, "miss": [4, 6], "aling": 4, "lot": 4, "exhaust": 4, "suffer": 4, "lead": [4, 6], "especi": 4, "try": 4, "mani": [4, 6], "high": 4, "tri": 4, "avoid": [4, 6], "strategi": 4, "11": 4, "copi": [4, 5, 6], "wiki": 4, "multistag": [4, 6], "basic": [4, 6], "made": [4, 5, 6], "position": 4, "would": [4, 6], "were": [4, 6], "intent": [4, 6], "either": [4, 5, 6], "scan": 4, "last": [4, 6], "let": [4, 6], "those": [4, 6], "1d": [4, 6], "simplic": 4, "suppos": [4, 6], "concaten": 4, "f0": 4, "b": [4, 6], "d": [4, 6], "f1": [4, 6], "f2": [4, 6], "closer": 4, "examin": 4, "u": 4, "v": [4, 6], "smaller": [4, 6], "mee": 4, "minimum": 4, "enclos": [4, 6], "elig": 4, "appropri": 4, "violat": [4, 6], "produc": [4, 6], "after": [4, 5, 6], "becom": [4, 6], "been": [4, 6], "abund": 4, "anoth": [4, 5, 6], "variat": [4, 6], "analyz": 4, "And": 4, "But": [4, 6], "strateg": 4, "probabl": 4, "wrong": 4, "check": [4, 6], "yet": 4, "gridtopolog": 4, "connect": 4, "neighbour": 4, "locationtyp": 4, "maker": 4, "icosahedr": 4, "runtim": [4, 5, 6], "whether": [4, 6], "icosahedral_topolog": 4, "octahedr": 4, "deriv": [4, 6], "parallelogram": 4, "structur": [4, 5, 6], "rule": [4, 6], "color": 4, "downward": 4, "upward": 4, "triangl": 4, "being": [4, 5, 6], "cell": [4, 6], "scheme": [4, 6], "develop": [4, 5], "vertex": 4, "srclocat": 4, "destloc": 4, "tabl": 4, "13": 4, "unstructured_mesh": 4, "without": [4, 5, 6], "clear": [4, 5, 6], "accept": [4, 5, 6], "ctr": 4, "atla": 4, "multiblockconnect": 4, "irregularconnect": 4, "uniform": [4, 6], "entri": 4, "unstructured_mesh_t": 4, "boost": [4, 5], "mpl": 4, "if_c": 4, "is_unstructured_mesh": 4, "empti": [4, 6], "arbitrari": [4, 6], "shall": 4, "sub": [4, 6], "divid": 4, "absolut": 4, "At": [4, 6], "place": [4, 6], "due": [4, 6], "stagger": [4, 6], "placement": 4, "easier": 4, "small": [4, 5], "limit": [4, 6], "predefin": [4, 6], "undefin": [4, 6], "figur": 4, "span": [4, 6], "15": 4, "total": [4, 6], "simplifi": 4, "plu": [4, 6], "continu": 4, "remaind": [4, 6], "back": [4, 6], "functordomethod": 4, "test": [4, 5], "purpos": [4, 6], "convert": [4, 6], "6": [4, 6], "17": 4, "19": 4, "functor": [4, 5, 6], "larger": [4, 6], "inconsist": 4, "overlap": [4, 6], "gap": 4, "essenti": [4, 6], "prepar": [4, 6], "illustr": [4, 6], "over": [4, 6], "nest": 4, "thank": 4, "full": [4, 6], "black": 4, "red": 4, "vector": [4, 6], "pair": [4, 6], "everi": [4, 6], "ones": [4, 6], "pseudo": 4, "o": 4, "n2": [4, 6], "had": 4, "abandon": 4, "idea": [4, 6], "hack": 4, "speed": 4, "fact": [4, 6], "has_do": 4, "find": 4, "callabl": [4, 6], "take": [4, 6], "resolut": 4, "account": 4, "convers": 4, "implicit": [4, 6], "drawback": 4, "nasti": 4, "error": [4, 6], "messag": 4, "awar": [4, 5, 6], "wai": [4, 5, 6], "present": [4, 6], "unoccupi": 4, "sure": [4, 6], "compli": 4, "functor1": 4, "functor2": 4, "overlai": 4, "domethod": 4, "sort": 4, "relev": 4, "complet": [4, 6], "via": [4, 6], "represent": [4, 6], "easili": 4, "subtract": 4, "ok": [4, 6], "import": [4, 6], "sentinel": 4, "help": [4, 5, 6], "loopinterv": 4, "h": [4, 6], "functordomethodlookupmap": 4, "separ": [4, 5, 6], "for_each": 4, "functor0": 4, "ident": [4, 6], "gt": 5, "util": [5, 6], "portabl": [5, 6], "central": 5, "focu": [5, 6], "regular": [5, 6], "commonli": 5, "found": [5, 6], "weather": 5, "climat": 5, "abstract": [5, 6], "enhanc": 5, "product": 5, "obtain": 5, "excel": 5, "wide": 5, "address": [5, 6], "challeng": 5, "aris": 5, "numer": 5, "variou": [5, 6], "complement": 5, "facil": [5, 6], "interoper": [5, 6], "fortran": 5, "aid": 5, "manycor": 5, "built": 5, "unit": [5, 6], "Such": 5, "copy_functor": 5, "descript": [5, 6], "header": [5, 6], "recent": 5, "modern": [5, 6], "exact": 5, "addtion": 5, "mpi": [5, 6], "offer": [5, 6], "pull": 5, "both": [5, 6], "usr": 5, "local": [5, 6], "command": 5, "git": [5, 6], "clone": 5, "http": [5, 6], "com": [5, 6], "cd": 5, "mkdir": 5, "dcmake_install_prefix": 5, "ctest": 5, "detect": 5, "enabl": [5, 6], "accordingli": 5, "configur": [5, 6], "custom": 5, "gt_install_exampl": 5, "ON": 5, "gt_install_examples_path": 5, "exampl": 5, "come": [5, 6], "standalon": 5, "build_test": 5, "disabl": [5, 6], "fast": [5, 6], "gt_gcl_gpu": 5, "gcl_gpu": 5, "you": [5, 6], "environ": [5, 6], "gt_cuda_arch": 5, "clang": 5, "switch": 5, "gt_clang_cuda_mod": 5, "prefer": 5, "nvcc": 5, "host": [5, 6], "standard": [5, 6], "practic": [5, 6], "prefix": 5, "dcmake_prefix_path": 5, "dgridtools_root": 5, "cmakelist": 5, "enable_languag": 5, "mode": 5, "altern": [5, 6], "fetchcontent_declar": [5, 6], "url": 5, "archiv": 5, "release_tag": 5, "tar": 5, "gz": 5, "fetchcontent_getproperti": 5, "NOT": 5, "gridtools_popul": 5, "fetchcontent_popul": 5, "add_subdirectori": 5, "gridtools_source_dir": 5, "gridtools_binary_dir": 5, "tag": [5, 6], "releas": 5, "v2": 5, "By": [5, 6], "gt_build_test": 5, "behavior": [5, 6], "stencil_na": 5, "stencil_cpu_kfirst": 5, "storage_cpu_ifirst": 5, "storage_cpu_kfirst": 5, "layout_transformation_cpu": 5, "boundaries_cpu": 5, "gcl_cpu": 5, "storage_gpu": 5, "stencil_gpu": 5, "layout_transformation_gpu": 5, "boundaries_gpu": 5, "link": 5, "gridtools_setup_target": 5, "cuda_arch": 5, "compute_cap": 5, "cu": 5, "add_librari": 5, "my_librari": 5, "sourc": [5, 6], "public": [5, 6], "stencil_cuda": 5, "sm_60": 5, "further": [5, 6], "rocm": 5, "offici": 5, "maintain": 5, "believ": 5, "guarante": [5, 6], "interact": 5, "extern": 5, "author": 5, "sign": [5, 6], "contigu": 6, "entiti": 6, "kei": 6, "indirect": 6, "request": 6, "target_const_view": 6, "host_const_view": 6, "hold": 6, "constant": 6, "fill": 6, "dump": 6, "verifi": 6, "size_t": 6, "ndim": 6, "layout_t": 6, "layout_map": 6, "data_t": 6, "invari": 6, "held": 6, "kind_t": 6, "label": 6, "string": 6, "unsign": 6, "intergral_const": 6, "otherwis": 6, "native_length": 6, "native_strid": 6, "minu": 6, "supplementari": 6, "info": 6, "counterpart": 6, "dirti": 6, "doesn": 6, "const_target_view": 6, "ptr": 6, "behaviour": 6, "get_target_ptr": 6, "get_const_target_ptr": 6, "is_const_v": 6, "get_host_ptr": 6, "get_const_host_ptr": 6, "supplement": 6, "distinct": 6, "pod": 6, "some_view": 6, "mutabl": 6, "keep": 6, "clean": 6, "transfer": 6, "potenti": 6, "invalid": 6, "previous": 6, "best": 6, "scope": 6, "much": 6, "stale": 6, "__global__": 6, "oxdeadbeef": 6, "ds": 6, "dirty_target": 6, "42": 6, "dirty_host": 6, "host_view_2": 6, "const_host_view": 6, "assert": 6, "refactor": 6, "symbol": 6, "parametr": 6, "below": 6, "my": 6, "132": 6, "80": 6, "selector": 6, "my_build": 6, "foo": 6, "bar": 6, "baz": 6, "unlik": 6, "classic": 6, "improp": 6, "caught": 6, "failur": 6, "bad0": 6, "mutual": 6, "exclus": 6, "bad1": 6, "buider_typ": 6, "unknown_id": 6, "bool": 6, "fun": 6, "builder_typ": 6, "most": 6, "ariti": 6, "ensur": 6, "builder_a": 6, "builder_b": 6, "a_0": 6, "a_1": 6, "a_2": 6, "b_0": 6, "alias": 6, "even": 6, "though": 6, "moment": 6, "matter": 6, "unknown_kind": 6, "opt": 6, "sens": 6, "integral_const": 6, "liter": 6, "dynamic_d": 6, "static_d": 6, "2_c": 6, "3_c": 6, "mixed_d": 6, "act": 6, "almost": 6, "encod": 6, "aggress": 6, "control": 6, "innermost": 6, "togeth": 6, "chosen": 6, "overrid": 6, "ds0": 6, "tune": 6, "permut": 6, "decreas": 6, "equival": 6, "highest": 6, "style": 6, "thu": 6, "appear": 6, "ignor": 6, "behav": 6, "kind": 6, "orient": 6, "cpu_kfirst": 6, "benefit": 6, "malloc": 6, "No": 6, "huge": 6, "byte": 6, "tailor": 6, "resid": 6, "tree": 6, "adl": 6, "easiest": 6, "storage_is_host_referenc": 6, "storage_align": 6, "storage_alloc": 6, "sai": 6, "storage_layout": 6, "storage_update_target": 6, "storage_update_host": 6, "storage_make_target_view": 6, "directli": 6, "statu": 6, "why": 6, "caller": 6, "annot": 6, "inlin": 6, "fail": 6, "abbrevi": 6, "read_only_accessor": 6, "read_write_accessor": 6, "increas": 6, "ommit": 6, "my_accessor": 6, "never": 6, "box": 6, "under": 6, "erron": 6, "bigger": 6, "loss": 6, "comma": 6, "in_": 6, "out_": 6, "mandatori": 6, "whole": 6, "whenev": 6, "accessor_nam": 6, "parenthes": 6, "think": 6, "triplet": 6, "averag": 6, "assign": 6, "flx_function": 6, "full_interv": 6, "merg": 6, "readabl": 6, "greatli": 6, "impact": 6, "pow": 6, "lazili": 6, "cond": 6, "prescript": 6, "prescrib": 6, "concurr": 6, "strictli": 6, "impos": 6, "assumpt": 6, "column": 6, "similarli": 6, "short": 6, "statement": 6, "uncondition": 6, "temporari": 6, "higher": 6, "tool": 6, "choos": 6, "stage_with_ext": 6, "some_valu": 6, "everywher": 6, "4a": 6, "4b": 6, "tmp": 6, "tmp_a": 6, "tmp_b": 6, "some_other_valu": 6, "eas": 6, "size_i": 6, "size_j": 6, "size_k": 6, "halo_i": 6, "halo_j": 6, "size_z": 6, "finer": 6, "3rd": 6, "4th": 6, "endpoint": 6, "30": 6, "23": 6, "explan": 6, "terrain": 6, "earth": 6, "surfac": 6, "flat": 6, "upper": 6, "atmospher": 6, "my_axis_t": 6, "my_axi": 6, "n0": 6, "n1": 6, "nx": 6, "signatur": 6, "first_interv": 6, "second_interv": 6, "first_level": 6, "last_level": 6, "shrunk": 6, "shortcut": 6, "first_level_only_interv": 6, "last_level_only_interv": 6, "a_middle_level_interv": 6, "a_middle_interv": 6, "a_middle_interval2": 6, "ninterv": 6, "axis_config": 6, "offset_limit": 6, "implic": 6, "none": 6, "thought": 6, "technic": 6, "micro": 6, "mind": 6, "terminolog": 6, "serv": 6, "holder": 6, "demonstr": 6, "coeff": 6, "ij_cach": 6, "fly_funct": 6, "out_funct": 6, "backend_t": 6, "abil": 6, "fuse": 6, "advantag": 6, "relat": 6, "plc0": 6, "plc1": 6, "constraint": 6, "profit": 6, "determin": 6, "sweep": 6, "ascend": 6, "descend": 6, "vertical_advect": 6, "utens_stag": 6, "wcon": 6, "u_po": 6, "multi_pass": 6, "execute_forward": 6, "forward_op": 6, "execute_backward": 6, "backward_op": 6, "particularli": 6, "machin": 6, "substanti": 6, "nvidia": 6, "legaci": 6, "variant": 6, "stencil_oper": 6, "vertical_interv": 6, "return_value_typ": 6, "deduc": 6, "artifici": 6, "ret": 6, "param": 6, "laplacian": 6, "offset_i": 6, "offset_j": 6, "offset_k": 6, "drop": 6, "deliv": 6, "chip": 6, "exploit": 6, "textur": 6, "underli": 6, "expos": 6, "agnost": 6, "decis": 6, "deleg": 6, "rare": 6, "too": 6, "observ": 6, "satur": 6, "worst": 6, "adher": 6, "k_cach": 6, "cache_io_polici": 6, "flush": 6, "p_arg": 6, "advect": 6, "cache_typ": 6, "understand": 6, "amount": 6, "involv": 6, "whose": 6, "li": 6, "cache_polici": 6, "persist": 6, "across": 6, "buffer": 6, "graphic": 6, "fill_and_flush": 6, "ring": 6, "trigger": 6, "transit": 6, "shape": 6, "situat": 6, "differenti": 6, "ineffici": 6, "storage_t": 6, "storage1": 6, "storage2": 6, "storage3": 6, "storage4": 6, "storage5": 6, "storage6": 6, "storage7": 6, "storage8": 6, "expand_factor": 6, "expandable_run": 6, "partit": 6, "chunk": 6, "unrol": 6, "sum": 6, "rest": 6, "he": 6, "factor": 6, "resiz": 6, "dynam": 6, "trivial": 6, "copyabl": 6, "global_paramet": 6, "my_global_paramet": 6, "my_object": 6, "arbitrarili": 6, "abl": 6, "natur": 6, "lie": 6, "distanc": 6, "unitari": 6, "euclidean": 6, "sqrt3": 6, "center": 6, "26": 6, "setminu": 6, "minus_": 6, "plus_": 6, "zero_": 6, "enum": 6, "decor": 6, "acceler": 6, "example_bc": 6, "datafield0": 6, "datafield1": 6, "data_field0": 6, "data_field1": 6, "got": 6, "fifth": 6, "kept": 6, "reduc": 6, "d1": 6, "d2": 6, "d3": 6, "proper": 6, "direction_bc_input": 6, "predicate_t": 6, "obei": 6, "decompos": 6, "updat": 6, "few": 6, "copy_boundari": 6, "value_boundari": 6, "zero_boundari": 6, "dub": 6, "low": 6, "scalabl": 6, "easi": 6, "loos": 6, "inspir": 6, "bla": 6, "matric": 6, "lattic": 6, "task": 6, "decomposit": 6, "biggest": 6, "largest": 6, "clarifi": 6, "pixpjx1": 6, "2x1": 6, "row": 6, "hand": 6, "impli": 6, "fist": 6, "again": 6, "inner": 6, "inclus": 6, "total_length": 6, "fairli": 6, "self": 6, "explanatori": 6, "readi": 6, "halo_exchange_dynamic_ut": 6, "ut": 6, "suffix": 6, "stand": 6, "goe": 6, "lower": 6, "handl": 6, "Being": 6, "numref": 6, "pattern_typ": 6, "value_typ": 6, "leav": 6, "doubt": 6, "live": 6, "grid_typ": 6, "period_typ": 6, "true": 6, "fals": 6, "cartcomm": 6, "period": 6, "add_halo": 6, "minus0": 6, "plus0": 6, "begin0": 6, "end0": 6, "len0": 6, "minus1": 6, "plus1": 6, "begin1": 6, "end1": 6, "len1": 6, "minus2": 6, "plus2": 6, "begin2": 6, "end2": 6, "len2": 6, "registr": 6, "Be": 6, "pack": 6, "unpack": 6, "destin": 6, "array0": 6, "array1": 6, "array2": 6, "start_exchang": 6, "wait": 6, "put": 6, "vector_of_point": 6, "halo_exchange_gener": 6, "arch_typ": 6, "somewhat": 6, "halo_dsc": 6, "h1": 6, "dim1": 6, "h2": 6, "dim2": 6, "h3": 6, "dim3": 6, "field_on_the_fli": 6, "layoutmap": 6, "null_ptr": 6, "sizeof": 6, "biggest_type_to_be_us": 6, "estim": 6, "neither": 6, "value_type1": 6, "layoutmap1": 6, "field1": 6, "ptr1": 6, "halo_dsc1": 6, "value_type2": 6, "layoutmap2": 6, "field2": 6, "ptr2": 6, "halo_dsc2": 6, "value_type3": 6, "layoutmap3": 6, "field3": 6, "ptr3": 6, "halo_dsc3": 6, "bc": 6, "heavi": 6, "plug": 6, "minut": 6, "prevent": 6, "leak": 6, "movement": 6, "distributed_boundari": 6, "comm_trait": 6, "storagetyp": 6, "arch": 6, "proc_layout": 6, "proc_grid_typ": 6, "mpi_3d_process_grid_t": 6, "comm_arch_typ": 6, "compute_arch": 6, "packing_vers": 6, "data_layout": 6, "storage_info_t": 6, "underneath": 6, "latter": 6, "dealt": 6, "bind_bc": 6, "unspecified_typ": 6, "boundary_class": 6, "dictat": 6, "unnecessari": 6, "mechan": 6, "_1": 6, "communication_arch": 6, "dbs_t": 6, "storage_typ": 6, "boollist": 6, "di": 6, "halo_sx0": 6, "halo_dx0": 6, "dj": 6, "halo_sx1": 6, "halo_dx1": 6, "dk": 6, "halo_sx2": 6, "halo_dx2": 6, "b0": 6, "b1": 6, "b2": 6, "boolean": 6, "max_d": 6, "halo_upd": 6, "db": 6, "mpi_commun": 6, "tile": 6, "pi": 6, "pj": 6, "pk": 6, "dist_boundari": 6, "proc_grid": 6, "coord": 6, "dim": 6, "invok": 6, "altogeth": 6, "boundary_onli": 6, "cpp_bindgen": 6, "fetchcont": 6, "git_repositori": 6, "git_tag": 6, "master": 6, "fetchcontent_makeavail": 6, "add_impl": 6, "bindgen_export_": 6, "flavour": 6, "wrapper": 6, "bindgen_export_binding_2": 6, "bindgen_add_librari": 6, "hi": 6, "add_lib": 6, "add_lib_declar": 6, "f90": 6, "boilerpl": 6, "c_int": 6, "arg0": 6, "arg1": 6, "iso_c_bind": 6, "fulli": 6, "bindgen_export_bind": 6, "bindgen_export_binding_x": 6, "bindgen_export_binding_with_signature_x": 6, "bindgen_export_binding_with_signature_2": 6, "bindgen_export_generic_binding_x": 6, "bindgen_export_generic_bind": 6, "add_f0": 6, "real": 6, "c_doubl": 6, "add_f1": 6, "fortran_array_bind": 6, "bindgen_fortran_array_descriptor": 6, "bindgen_handl": 6, "make_vector_impl": 6, "use_vector_impl": 6, "bindgen_export_binding_0": 6, "make_vector": 6, "bindgen_export_binding_1": 6, "use_vector": 6, "behind": 6, "thrown": 6, "themselv": 6, "dummy_impl": 6, "bindgen_export_binding_wrapped_1": 6, "dummi": 6, "bindgen_export_binding_wrapped_x": 6, "subroutin": 6, "array_descriptor": 6, "descriptor0": 6, "rank": 6, "reshap": 6, "c_loc": 6, "lbound": 6, "some_arrai": 6, "bindgen_export_binding_with_signature_wrap": 6, "bindgen_export_binding_generic_wrap": 6, "fortran_array_wrapp": 6, "compat": 6, "nativ": 6, "fortran_array_adapt": 6, "storage_trait": 6, "data_store_t": 6, "modify_array_impl": 6, "modify_arrai": 6, "choic": 6, "cross": 6, "reli": 6, "binari": 6, "folder": 6, "overwritten": 6, "fortran_output_dir": 6, "c_output_dir": 6, "fortran_module_nam": 6}, "objects": {"": [[6, 0, 1, "_CPPv49make_grid15halo_descriptor15halo_descriptor4Axis", "make_grid"], [6, 0, 1, "_CPPv49make_grid15halo_descriptor15halo_descriptori", "make_grid"], [6, 0, 1, "_CPPv49make_gridii4Axis", "make_grid"], [6, 0, 1, "_CPPv49make_gridiii", "make_grid"], [6, 1, 1, "_CPPv49make_grid15halo_descriptor15halo_descriptor4Axis", "make_grid::axis"], [6, 1, 1, "_CPPv49make_gridii4Axis", "make_grid::axis"], [6, 1, 1, "_CPPv49make_grid15halo_descriptor15halo_descriptor4Axis", "make_grid::halo_i"], [6, 1, 1, "_CPPv49make_grid15halo_descriptor15halo_descriptori", "make_grid::halo_i"], [6, 1, 1, "_CPPv49make_grid15halo_descriptor15halo_descriptor4Axis", "make_grid::halo_j"], [6, 1, 1, "_CPPv49make_grid15halo_descriptor15halo_descriptori", "make_grid::halo_j"], [6, 1, 1, "_CPPv49make_gridii4Axis", "make_grid::size_i"], [6, 1, 1, "_CPPv49make_gridiii", "make_grid::size_i"], [6, 1, 1, "_CPPv49make_gridii4Axis", "make_grid::size_j"], [6, 1, 1, "_CPPv49make_gridiii", "make_grid::size_j"], [6, 1, 1, "_CPPv49make_gridiii", "make_grid::size_k"], [6, 1, 1, "_CPPv49make_grid15halo_descriptor15halo_descriptori", "make_grid::size_z"], [6, 0, 1, "_CPPv43run13specification7backend4gridDp6fields", "run"]]}, "objtypes": {"0": "cpp:function", "1": "cpp:functionParam"}, "objnames": {"0": ["cpp", "function", "C++ function"], "1": ["cpp", "functionParam", "C++ function parameter"]}, "titleterms": {"frequent": 0, "ask": 0, "question": 0, "how": 0, "do": [0, 4], "i": 0, "build": [0, 1], "doc": 0, "get": 1, "start": 1, "coordin": 1, "system": 1, "storag": [1, 6], "trait": [1, 6], "stencil": [1, 6], "exampl": [1, 4, 6], "naiv": 1, "2d": 1, "laplacian": 1, "first": 1, "gridtool": [1, 3, 4, 5], "updat": [1, 4], "logic": 1, "call": [1, 6], "full": 1, "assembl": 1, "smooth": 1, "filter": 1, "appli": [1, 6], "method": [1, 4, 6], "overload": [1, 4], "temporari": [1, 4], "functor": 1, "glossari": 2, "indic": 3, "tabl": 3, "intern": 4, "document": 4, "index": 4, "algorithm": 4, "pointer": 4, "offset": 4, "comput": [4, 6], "old": 4, "approach": 4, "issu": 4, "regard": 4, "base": 4, "chang": 4, "multipl": 4, "differ": 4, "halo": [4, 6], "pass": [4, 6], "huge": 4, "type": [4, 6], "down": 4, "data": [4, 6], "depend": [4, 5], "analysi": 4, "A": 4, "veri": 4, "simpl": 4, "more": 4, "complex": [4, 6], "catch": 4, "bad": 4, "design": [4, 6], "grid": [4, 6], "topolog": 4, "irregular": 4, "unstructur": 4, "mesh": 4, "splitter": 4, "introduct": [4, 5, 6], "interv": [4, 6], "specif": [4, 6], "loop": 4, "lookup": 4, "map": [4, 6], "prototyp": 4, "what": 5, "Is": 5, "us": 5, "instal": 5, "valid": 5, "cmake": [5, 6], "s": 5, "fetchcont": 5, "amd": 5, "gpu": 5, "support": 5, "contribut": 5, "user": 6, "manual": 6, "librari": 6, "store": 6, "synopsi": 6, "view": 6, "builder": 6, "api": 6, "constrain": 6, "setter": 6, "note": 6, "semant": 6, "defin": 6, "custom": 6, "sid": 6, "concept": 6, "adapt": 6, "oper": 6, "accessor": 6, "paramet": 6, "list": 6, "express": 6, "execut": 6, "model": 6, "extend": 6, "domain": 6, "stage": 6, "access": 6, "restrict": 6, "composit": 6, "iter": 6, "space": 6, "vertic": 6, "region": 6, "boundari": 6, "condit": 6, "default": 6, "advanc": 6, "function": 6, "run": 6, "driver": 6, "The": 6, "notion": 6, "multi": 6, "select": 6, "backend": 6, "procedur": 6, "call_proc": 6, "softwar": 6, "manag": 6, "cach": 6, "polici": 6, "expand": 6, "global": 6, "preliminari": 6, "class": 6, "applic": 6, "predic": 6, "provid": 6, "exchang": 6, "processor": 6, "layout": 6, "descriptor": 6, "todo": 6, "gcl": 6, "commun": 6, "modul": 6, "distribut": 6, "principl": 6, "bind": 6, "interfac": 6, "other": 6, "program": 6, "languag": 6, "export": 6, "arrai": 6, "argument": 6, "fortran": 6, "usag": 6}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}})
|