diff --git a/amrex/docs_html/EB.html b/amrex/docs_html/EB.html index 011e5ca84a..a3e184f03e 100644 --- a/amrex/docs_html/EB.html +++ b/amrex/docs_html/EB.html @@ -331,6 +331,12 @@

Embedded Boundary Data// embedded boundary centroid const MultiCutFab& getBndryCent () const; +// embedded boundary normal direction +const MultiCutFab& getBndryNormal () const; + +// embedded boundary surface area +const MultiCutFab& getBndryArea () const; + // area fractions Array<const MultiCutFab*,AMREX_SPACEDIM> getAreaFrac () const; @@ -350,6 +356,15 @@

Embedded Boundary DataAMREX_SPACEDIM components. Each component of the data is in the range of \([-0.5,0.5]\), based on each cell’s local coordinates with respect to the regular cell’s center.

+
  • Boundary normal is in a MultiCutFab with AMREX_SPACEDIM +components representing the unit vector pointing toward the covered part.

  • +
  • Boundary area is in a MultiCutFab with a single component +representing the dimensionless boundary area. When the cell is isotropic +(i.e., \(\Delta x = \Delta y = \Delta z\)), it’s trivial to convert it +to physical units. If the cell size is anisotropic, the conversion +requires multiplying by a factor of \(\sqrt{(n_x \Delta y \Delta +z)^2 + (n_y \Delta x \Delta z)^2 + (n_z \Delta x \Delta y)^2}\), where +\(n\) is the boundary normal vector.

  • Face centroid is in a MultiCutFab with AMREX_SPACEDIM components. Each component of the data is in the range of \([-0.5,0.5]\), based on each cell’s local coordinates with respect to the embedded boundary.

  • diff --git a/amrex/docs_html/_downloads/008eb6dbfab802633dff40122ece848c/amrex.pdf b/amrex/docs_html/_downloads/008eb6dbfab802633dff40122ece848c/amrex.pdf index 285901cf29..b002393dbe 100644 Binary files a/amrex/docs_html/_downloads/008eb6dbfab802633dff40122ece848c/amrex.pdf and b/amrex/docs_html/_downloads/008eb6dbfab802633dff40122ece848c/amrex.pdf differ diff --git a/amrex/docs_html/_sources/EB.rst.txt b/amrex/docs_html/_sources/EB.rst.txt index 9b847a3259..2c78856f93 100644 --- a/amrex/docs_html/_sources/EB.rst.txt +++ b/amrex/docs_html/_sources/EB.rst.txt @@ -271,6 +271,12 @@ following data: // embedded boundary centroid const MultiCutFab& getBndryCent () const; + // embedded boundary normal direction + const MultiCutFab& getBndryNormal () const; + + // embedded boundary surface area + const MultiCutFab& getBndryArea () const; + // area fractions Array getAreaFrac () const; @@ -291,6 +297,17 @@ following data: of the data is in the range of :math:`[-0.5,0.5]`, based on each cell's local coordinates with respect to the regular cell's center. +- **Boundary normal** is in a :cpp:`MultiCutFab` with ``AMREX_SPACEDIM`` + components representing the unit vector pointing toward the covered part. + +- **Boundary area** is in a :cpp:`MultiCutFab` with a single component + representing the dimensionless boundary area. When the cell is isotropic + (i.e., :math:`\Delta x = \Delta y = \Delta z`), it's trivial to convert it + to physical units. If the cell size is anisotropic, the conversion + requires multiplying by a factor of :math:`\sqrt{(n_x \Delta y \Delta + z)^2 + (n_y \Delta x \Delta z)^2 + (n_z \Delta x \Delta y)^2}`, where + :math:`n` is the boundary normal vector. + - **Face centroid** is in a :cpp:`MultiCutFab` with ``AMREX_SPACEDIM`` components. Each component of the data is in the range of :math:`[-0.5,0.5]`, based on each cell's local coordinates with respect to the embedded boundary. diff --git a/amrex/docs_html/doxygen/AMReX__EB2__C_8H_source.html b/amrex/docs_html/doxygen/AMReX__EB2__C_8H_source.html index 8b5ba79c8c..fcc48ac234 100644 --- a/amrex/docs_html/doxygen/AMReX__EB2__C_8H_source.html +++ b/amrex/docs_html/doxygen/AMReX__EB2__C_8H_source.html @@ -201,10 +201,10 @@
    #define AMREX_D_DECL(a, b, c)
    Definition: AMReX_SPACE.H:104
    Definition: AMReX_FabArrayBase.H:32
    -
    void set_connection_flags(Box const &bxg1, Array4< EBCellFlag > const &cell, Array4< Type_t > const &fx, Array4< Type_t > const &fy) noexcept
    Definition: AMReX_EB2_2D_C.cpp:456
    -
    int build_faces(Box const &bx, Array4< EBCellFlag > const &cell, Array4< Type_t > const &fx, Array4< Type_t > const &fy, Array4< Real > const &levset, Array4< Real const > const &interx, Array4< Real const > const &intery, Array4< Real > const &apx, Array4< Real > const &apy, Array4< Real > const &fcx, Array4< Real > const &fcy, GpuArray< Real, AMREX_SPACEDIM > const &dx, GpuArray< Real, AMREX_SPACEDIM > const &problo, bool cover_multiple_cuts, int &nsmallfaces) noexcept
    Definition: AMReX_EB2_2D_C.cpp:199
    +
    void set_connection_flags(Box const &bxg1, Array4< EBCellFlag > const &cell, Array4< Type_t > const &fx, Array4< Type_t > const &fy) noexcept
    Definition: AMReX_EB2_2D_C.cpp:455
    +
    int build_faces(Box const &bx, Array4< EBCellFlag > const &cell, Array4< Type_t > const &fx, Array4< Type_t > const &fy, Array4< Real > const &levset, Array4< Real const > const &interx, Array4< Real const > const &intery, Array4< Real > const &apx, Array4< Real > const &apy, Array4< Real > const &fcx, Array4< Real > const &fcy, GpuArray< Real, AMREX_SPACEDIM > const &dx, GpuArray< Real, AMREX_SPACEDIM > const &problo, bool cover_multiple_cuts, int &nsmallfaces) noexcept
    Definition: AMReX_EB2_2D_C.cpp:198
    AMREX_EXPORT bool extend_domain_face
    Definition: AMReX_EB2.cpp:24
    -
    void build_cells(Box const &bx, Array4< EBCellFlag > const &cell, Array4< Type_t > const &fx, Array4< Type_t > const &fy, Array4< Real > const &apx, Array4< Real > const &apy, GpuArray< Real, AMREX_SPACEDIM > const &dx, Array4< Real > const &vfrac, Array4< Real > const &vcent, Array4< Real > const &barea, Array4< Real > const &bcent, Array4< Real > const &bnorm, Array4< Real > const &levset, Real small_volfrac, Geometry const &geom, bool extend_domain_face, int &nsmallcells, int const nmulticuts) noexcept
    Definition: AMReX_EB2_2D_C.cpp:352
    +
    void build_cells(Box const &bx, Array4< EBCellFlag > const &cell, Array4< Type_t > const &fx, Array4< Type_t > const &fy, Array4< Real > const &apx, Array4< Real > const &apy, GpuArray< Real, AMREX_SPACEDIM > const &dx, Array4< Real > const &vfrac, Array4< Real > const &vcent, Array4< Real > const &barea, Array4< Real > const &bcent, Array4< Real > const &bnorm, Array4< Real > const &levset, Real small_volfrac, Geometry const &geom, bool extend_domain_face, int &nsmallcells, int const nmulticuts) noexcept
    Definition: AMReX_EB2_2D_C.cpp:351
    void intercept_to_edge_centroid(AMREX_D_DECL(Array4< Real > const &excent, Array4< Real > const &eycent, Array4< Real > const &ezcent), AMREX_D_DECL(Array4< Type_t const > const &fx, Array4< Type_t const > const &fy, Array4< Type_t const > const &fz), Array4< Real const > const &levset, GpuArray< Real, AMREX_SPACEDIM > const &dx, GpuArray< Real, AMREX_SPACEDIM > const &problo) noexcept
    Definition: AMReX_EB2_ND_C.cpp:5
    BoxND< AMREX_SPACEDIM > Box
    Definition: AMReX_BaseFwd.H:27
    diff --git a/amrex/docs_html/doxygen/AMReX__EB2__Level_8H_source.html b/amrex/docs_html/doxygen/AMReX__EB2__Level_8H_source.html index 3ebf317cb5..8514da5766 100644 --- a/amrex/docs_html/doxygen/AMReX__EB2__Level_8H_source.html +++ b/amrex/docs_html/doxygen/AMReX__EB2__Level_8H_source.html @@ -798,9 +798,9 @@
    Definition: AMReX_iMultiFab.H:32
    Definition: AMReX_FabArrayBase.H:32
    AMREX_EXPORT int max_grid_size
    Definition: AMReX_EB2.cpp:23
    -
    int build_faces(Box const &bx, Array4< EBCellFlag > const &cell, Array4< Type_t > const &fx, Array4< Type_t > const &fy, Array4< Real > const &levset, Array4< Real const > const &interx, Array4< Real const > const &intery, Array4< Real > const &apx, Array4< Real > const &apy, Array4< Real > const &fcx, Array4< Real > const &fcy, GpuArray< Real, AMREX_SPACEDIM > const &dx, GpuArray< Real, AMREX_SPACEDIM > const &problo, bool cover_multiple_cuts, int &nsmallfaces) noexcept
    Definition: AMReX_EB2_2D_C.cpp:199
    +
    int build_faces(Box const &bx, Array4< EBCellFlag > const &cell, Array4< Type_t > const &fx, Array4< Type_t > const &fy, Array4< Real > const &levset, Array4< Real const > const &interx, Array4< Real const > const &intery, Array4< Real > const &apx, Array4< Real > const &apy, Array4< Real > const &fcx, Array4< Real > const &fcy, GpuArray< Real, AMREX_SPACEDIM > const &dx, GpuArray< Real, AMREX_SPACEDIM > const &problo, bool cover_multiple_cuts, int &nsmallfaces) noexcept
    Definition: AMReX_EB2_2D_C.cpp:198
    AMREX_EXPORT bool extend_domain_face
    Definition: AMReX_EB2.cpp:24
    -
    void build_cells(Box const &bx, Array4< EBCellFlag > const &cell, Array4< Type_t > const &fx, Array4< Type_t > const &fy, Array4< Real > const &apx, Array4< Real > const &apy, GpuArray< Real, AMREX_SPACEDIM > const &dx, Array4< Real > const &vfrac, Array4< Real > const &vcent, Array4< Real > const &barea, Array4< Real > const &bcent, Array4< Real > const &bnorm, Array4< Real > const &levset, Real small_volfrac, Geometry const &geom, bool extend_domain_face, int &nsmallcells, int const nmulticuts) noexcept
    Definition: AMReX_EB2_2D_C.cpp:352
    +
    void build_cells(Box const &bx, Array4< EBCellFlag > const &cell, Array4< Type_t > const &fx, Array4< Type_t > const &fy, Array4< Real > const &apx, Array4< Real > const &apy, GpuArray< Real, AMREX_SPACEDIM > const &dx, Array4< Real > const &vfrac, Array4< Real > const &vcent, Array4< Real > const &barea, Array4< Real > const &bcent, Array4< Real > const &bnorm, Array4< Real > const &levset, Real small_volfrac, Geometry const &geom, bool extend_domain_face, int &nsmallcells, int const nmulticuts) noexcept
    Definition: AMReX_EB2_2D_C.cpp:351
    void intercept_to_edge_centroid(AMREX_D_DECL(Array4< Real > const &excent, Array4< Real > const &eycent, Array4< Real > const &ezcent), AMREX_D_DECL(Array4< Type_t const > const &fx, Array4< Type_t const > const &fy, Array4< Type_t const > const &fz), Array4< Real const > const &levset, GpuArray< Real, AMREX_SPACEDIM > const &dx, GpuArray< Real, AMREX_SPACEDIM > const &problo) noexcept
    Definition: AMReX_EB2_ND_C.cpp:5
    void streamSynchronize() noexcept
    Definition: AMReX_GpuDevice.H:237
    bool inLaunchRegion() noexcept
    Definition: AMReX_GpuControl.H:86
    diff --git a/amrex/docs_html/searchindex.js b/amrex/docs_html/searchindex.js index 632116b481..88ab007c67 100644 --- a/amrex/docs_html/searchindex.js +++ b/amrex/docs_html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["AMReX_Profiling_Tools", "AMReX_Profiling_Tools_Chapter", "AmrCore", "AmrCore_Chapter", "AmrLevel", "AmrLevel_Chapter", "Basics", "Basics_Chapter", "BuildingAMReX", "BuildingAMReX_Chapter", "Debugging", "DualGrid", "EB", "EB_Chapter", "External_Frameworks_Chapter", "External_Profiling_Tools", "External_Profiling_Tools_Chapter", "Faq", "ForkJoin", "Fortran", "Fortran_Chapter", "GPU", "GPU_Chapter", "GettingStarted", "GettingStarted_Chapter", "Governance", "GridCreation", "IO", "IO_Chapter", "Introduction", "LinearSolvers", "LinearSolvers_Chapter", "LoadBalancing", "ManagingGridHierarchy_Chapter", "Particle", "Particle_Chapter", "Post_Processing", "Post_Processing_Chapter", "Python_Chapter", "Regression_Testing_Chapter", "RuntimeParameters", "SUNDIALS_top", "SWFFT", "Testing", "TimeIntegration_Chapter", "Visualization", "Visualization_Chapter", "index"], "filenames": ["AMReX_Profiling_Tools.rst", "AMReX_Profiling_Tools_Chapter.rst", "AmrCore.rst", "AmrCore_Chapter.rst", "AmrLevel.rst", "AmrLevel_Chapter.rst", "Basics.rst", "Basics_Chapter.rst", "BuildingAMReX.rst", "BuildingAMReX_Chapter.rst", "Debugging.rst", "DualGrid.rst", "EB.rst", "EB_Chapter.rst", "External_Frameworks_Chapter.rst", "External_Profiling_Tools.rst", "External_Profiling_Tools_Chapter.rst", "Faq.rst", "ForkJoin.rst", "Fortran.rst", "Fortran_Chapter.rst", "GPU.rst", "GPU_Chapter.rst", "GettingStarted.rst", "GettingStarted_Chapter.rst", "Governance.rst", "GridCreation.rst", "IO.rst", "IO_Chapter.rst", "Introduction.rst", "LinearSolvers.rst", "LinearSolvers_Chapter.rst", "LoadBalancing.rst", "ManagingGridHierarchy_Chapter.rst", "Particle.rst", "Particle_Chapter.rst", "Post_Processing.rst", "Post_Processing_Chapter.rst", "Python_Chapter.rst", "Regression_Testing_Chapter.rst", "RuntimeParameters.rst", "SUNDIALS_top.rst", "SWFFT.rst", "Testing.rst", "TimeIntegration_Chapter.rst", "Visualization.rst", "Visualization_Chapter.rst", "index.rst"], "titles": ["Types of Profiling", "AMReX-based Profiling Tools", "AmrCore Source Code: Details", "AmrCore Source Code", "Amr Class", "Amr Source Code", "Dimensionality", "Basics", "Building with GNU Make", "Building AMReX", "Debugging", "Dual Grid Approach", "Initializing the Geometric Database", "Embedded Boundaries", "External Frameworks", "CrayPat", "External Profiling Tools", "Frequently Asked Questions", "Fork-Join", "Getting Started", "Fortran Interface", "Overview of AMReX GPU Strategy", "GPU", "Downloading the Code", "Getting Started", "AMReX Governance", "Grid Creation", "Plotfile", "I/O (Plotfile, Checkpoint)", "AMReX Introduction", "MLMG and Linear Operator Classes", "Linear Solvers", "Load Balancing", "Gridding and Load Balancing", "The Particle", "Particles", "Post-Processing", "Post-Processing", "Python Interface", "Regression Testing", "Runtime Parameters", "SUNDIALS", "SWFFT", "Continuous Compilation Testing", "Time Integration", "Amrvis", "Visualization", "Welcome to AMReX\u2019s documentation"], "terms": {"amrex": [0, 2, 3, 4, 5, 7, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46], "s": [0, 4, 6, 8, 9, 10, 12, 13, 15, 17, 18, 19, 21, 23, 27, 30, 31, 34, 35, 40, 41, 42, 45], "built": [0, 2, 6, 8, 9, 12, 15, 17, 19, 21, 23, 24, 27, 30, 33, 40, 42, 45], "work": [0, 2, 4, 6, 8, 11, 15, 17, 19, 23, 27, 30, 32, 33, 34, 35, 36, 42, 44], "through": [0, 2, 8, 12, 13, 15, 21, 24, 25, 27, 30, 34, 43, 45, 47], "object": [0, 2, 4, 6, 12, 17, 19, 21, 27, 30, 34, 40, 42, 45], "stop": [0, 15, 21, 40], "base": [0, 2, 4, 6, 7, 8, 11, 12, 13, 15, 17, 19, 21, 23, 26, 30, 34, 40, 45, 47], "user": [0, 2, 6, 8, 9, 10, 15, 18, 19, 20, 21, 22, 23, 25, 26, 30, 34, 35, 36, 38, 40, 41, 42, 44, 45, 47], "place": [0, 6, 10, 21, 30, 34, 40, 45], "macro": [0, 6, 8, 19, 22], "an": [0, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 15, 17, 18, 19, 22, 23, 25, 26, 27, 30, 31, 32, 34, 35, 36, 40, 41, 43, 44, 47], "constructor": [0, 6, 12, 21, 30, 34, 40], "destructor": [0, 6, 21], "The": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 18, 20, 21, 23, 25, 26, 27, 28, 30, 31, 32, 35, 36, 38, 40, 42, 43, 44, 45, 46, 47], "result": [0, 2, 3, 6, 8, 13, 15, 17, 21, 23, 27, 30, 32, 40, 42, 43, 45], "from": [0, 2, 4, 5, 6, 8, 10, 12, 15, 17, 19, 21, 23, 26, 27, 30, 34, 36, 40, 43, 44, 45, 47], "ar": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 18, 19, 21, 22, 23, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 42, 43, 44, 45, 46, 47], "store": [0, 2, 3, 4, 6, 8, 12, 15, 17, 21, 27, 30, 34, 43, 45], "global": [0, 2, 4, 6, 10, 15, 21, 42, 45], "list": [0, 6, 8, 15, 17, 21, 30, 34, 36, 40, 43, 45], "consolid": 0, "print": [0, 7, 8, 10, 15, 17, 19, 21, 23, 27, 30, 40, 45], "dure": [0, 2, 4, 6, 18, 19, 21, 26, 27, 30, 34, 40, 45], "final": [0, 3, 4, 7, 9, 13, 15, 17, 19, 21, 23, 26, 34, 40], "defin": [0, 2, 4, 5, 6, 8, 11, 12, 19, 21, 26, 27, 30, 31, 33, 34, 35, 40, 43, 45], "flush": 0, "point": [0, 2, 4, 8, 10, 12, 15, 17, 19, 21, 23, 27, 30, 34, 40, 43, 45], "current": [0, 2, 6, 8, 12, 13, 15, 21, 22, 23, 27, 30, 34, 36, 40, 45], "ha": [0, 2, 5, 6, 8, 10, 12, 15, 17, 19, 21, 24, 25, 27, 30, 31, 32, 34, 40, 42, 45], "two": [0, 2, 3, 4, 6, 8, 17, 18, 19, 21, 23, 24, 27, 30, 34, 36, 40, 42, 44, 45], "To": [0, 2, 4, 6, 8, 10, 12, 15, 17, 19, 21, 23, 26, 27, 30, 34, 36, 43, 44, 45, 47], "enabl": [0, 6, 8, 10, 11, 13, 17, 18, 23, 27, 30, 34, 40, 45], "gnu": [0, 6, 9, 10, 17, 19, 23, 24, 36, 40], "make": [0, 2, 4, 6, 9, 10, 12, 15, 17, 19, 23, 24, 25, 27, 30, 34, 36, 40, 43], "edit": [0, 2, 4, 36, 45], "file": [0, 2, 4, 9, 10, 12, 15, 17, 19, 21, 23, 26, 28, 30, 34, 36, 40, 42, 43, 45], "gnumakefil": [0, 2, 4, 8, 21, 23, 27, 36, 45], "show": [0, 2, 3, 6, 8, 19, 21, 23, 27, 31, 34, 45], "tiny_profil": [0, 15, 17, 40], "true": [0, 2, 4, 6, 8, 10, 12, 15, 17, 19, 21, 23, 26, 27, 30, 34, 40, 44, 45], "fals": [0, 2, 6, 8, 12, 21, 30, 34, 36, 40, 43, 45], "If": [0, 2, 6, 8, 10, 12, 17, 19, 21, 23, 25, 26, 27, 30, 34, 40, 43, 44, 45], "build": [0, 2, 3, 4, 6, 12, 13, 17, 19, 22, 27, 29, 30, 31, 32, 34, 36, 37, 40, 43, 47], "cmake": [0, 9, 10, 24, 40], "set": [0, 2, 4, 5, 8, 10, 12, 15, 17, 18, 19, 21, 23, 25, 26, 27, 30, 32, 33, 40, 42, 43, 44, 45], "follow": [0, 2, 3, 6, 8, 10, 12, 15, 19, 21, 23, 26, 27, 30, 32, 34, 35, 36, 40, 41, 42, 44, 45], "flag": [0, 1, 8, 10, 12, 15, 19, 23, 27, 30, 34, 36, 40, 45], "amrex_tiny_profil": [0, 8], "ON": [0, 8, 45], "amrex_base_profil": [0, 8], "off": [0, 6, 8, 15, 21, 23, 30, 34, 40, 45], "you": [0, 2, 4, 6, 7, 8, 10, 12, 15, 17, 21, 23, 24, 26, 27, 30, 34, 36, 37, 40, 42, 43, 44, 45], "thi": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 36, 40, 42, 43, 44, 45, 47], "overrid": [0, 2, 8, 17, 25, 30, 40], "disabl": [0, 6, 8, 10, 30, 40], "At": [0, 2, 8, 19, 21, 30], "end": [0, 2, 4, 6, 10, 12, 15, 17, 19, 21, 30, 34], "run": [0, 2, 3, 4, 6, 8, 10, 16, 17, 21, 26, 27, 30, 33, 34, 36, 39, 40, 45], "summari": [0, 8], "exclus": [0, 27], "inclus": [0, 40], "function": [0, 2, 3, 4, 7, 8, 10, 15, 17, 18, 19, 20, 22, 23, 27, 30, 31, 34, 36, 38, 40, 42, 43, 44, 45, 47], "time": [0, 3, 4, 5, 6, 8, 10, 12, 15, 17, 19, 21, 23, 25, 26, 27, 29, 30, 34, 36, 40, 41, 45, 47], "written": [0, 6, 12, 20, 21, 27, 30, 38, 40, 42, 43], "stdout": [0, 15], "includ": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 17, 19, 21, 23, 24, 25, 27, 29, 30, 31, 32, 34, 35, 40, 41, 43, 44, 45, 47], "minimum": [0, 6, 15, 36, 40], "maximum": [0, 2, 6, 15, 21, 34, 36, 40], "over": [0, 2, 4, 6, 19, 21, 25, 26, 30, 35, 36, 37, 43, 45], "process": [0, 2, 6, 8, 10, 13, 15, 17, 18, 19, 21, 23, 26, 27, 30, 32, 33, 34, 40, 42, 45, 47], "spent": [0, 15, 27], "each": [0, 2, 3, 4, 6, 12, 13, 15, 17, 18, 19, 23, 26, 27, 30, 31, 32, 33, 34, 36, 40, 42, 43, 45, 47], "routin": [0, 2, 4, 6, 17, 27, 35, 36, 45], "well": [0, 2, 5, 6, 8, 10, 15, 21, 26, 31, 34, 40, 43, 44, 45], "averag": [0, 2, 6, 15, 27, 30, 36], "percentag": [0, 21], "total": [0, 6, 12, 15, 17, 21, 27, 32, 40, 42], "see": [0, 2, 3, 4, 6, 8, 9, 10, 12, 13, 17, 19, 20, 21, 22, 23, 25, 27, 30, 31, 33, 34, 36, 38, 40, 41, 43, 44, 45, 47], "sampl": [0, 2, 8, 15, 43, 44], "below": [0, 1, 4, 6, 8, 15, 19, 21, 23, 30, 34, 36, 40, 42, 45], "tinyprofil": [0, 1, 15, 21, 40], "across": [0, 5, 6, 8, 15, 32, 42], "min": [0, 6, 15, 21, 36], "avg": [0, 15], "max": [0, 2, 6, 15, 21, 30, 34, 36], "765": 0, "ncall": 0, "excl": 0, "mfix_level": 0, "evolvefluid": 0, "602": 0, "668": 0, "691": 0, "95": 0, "83": 0, "fabarrai": [0, 7, 10, 12, 17, 21, 40], "fillboundari": [0, 2, 6, 19, 21, 30, 34], "11081": 0, "0": [0, 4, 6, 8, 10, 12, 15, 19, 21, 23, 26, 27, 30, 32, 33, 34, 36, 40, 42, 43, 44, 45], "02195": 0, "03336": 0, "06617": 0, "75": 0, "fabarraybas": [0, 6], "getfb": 0, "22162": 0, "02031": 0, "02147": 0, "02275": 0, "29": [0, 15], "pc": [0, 8, 34], "writeasciifil": [0, 34], "00292": 0, "004072": 0, "004551": 0, "26": 0, "incl": 0, "evolv": [0, 2, 30, 44], "69": 0, "723": 0, "734": 0, "98": [0, 15], "23": [0, 6, 15, 45], "04236": 0, "05485": 0, "08826": 0, "5": [0, 6, 12, 15, 22, 23, 27, 30, 34, 36, 40, 42, 45], "00": [0, 15, 36, 45], "02149": 0, "automat": [0, 4, 6, 15, 21, 34, 43, 45], "write": [0, 2, 4, 5, 6, 8, 10, 15, 17, 19, 20, 21, 23, 25, 27, 30, 34, 36, 38, 40, 45, 47], "your": [0, 6, 9, 10, 12, 15, 17, 21, 23, 24, 34, 40, 43, 45, 47], "when": [0, 2, 4, 6, 8, 10, 11, 12, 15, 17, 18, 21, 23, 27, 30, 33, 34, 40, 42, 45], "reach": [0, 6, 12, 21], "howev": [0, 3, 6, 8, 12, 13, 15, 19, 21, 26, 27, 30, 34, 36, 40, 42, 43, 45], "mai": [0, 2, 6, 8, 10, 15, 17, 19, 21, 23, 27, 30, 34, 36, 40, 44, 45], "want": [0, 4, 6, 8, 15, 17, 20, 21, 23, 26, 30, 34, 38, 43, 44, 45], "partial": [0, 2, 12, 23, 30], "ensur": [0, 2, 6, 10, 17, 21, 26, 40], "inform": [0, 2, 3, 6, 8, 9, 10, 12, 15, 17, 19, 21, 23, 27, 34, 36, 40, 41, 43, 45], "save": [0, 2, 8, 12, 40, 45], "fail": [0, 6, 8, 21, 23, 30], "converg": 0, "expect": [0, 6, 21, 25, 27, 30], "out": [0, 6, 10, 21, 23, 27, 30, 34, 35, 36, 40, 45], "alloc": [0, 2, 7, 10, 11, 17, 22, 27, 32, 34, 40], "can": [0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 30, 33, 34, 36, 37, 40, 41, 42, 43, 44, 45, 46, 47], "insert": [0, 6, 15, 21], "line": [0, 2, 4, 8, 10, 15, 21, 23, 27, 30, 34, 36, 40, 43, 45], "bl_profile_tiny_flush": 0, "ani": [0, 2, 4, 6, 8, 9, 12, 15, 17, 21, 25, 27, 30, 34, 40, 43, 44, 47], "have": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 19, 21, 23, 26, 27, 30, 33, 34, 40, 42, 44, 45, 47], "bl_profile_var_stop": 0, "call": [0, 2, 4, 5, 6, 8, 10, 12, 15, 19, 20, 21, 23, 25, 27, 30, 34, 40, 42, 43, 45], "exit": 0, "deconstruct": 0, "e": [0, 2, 4, 6, 8, 9, 10, 12, 15, 18, 19, 21, 23, 25, 26, 27, 30, 31, 33, 34, 40, 43, 44, 45], "g": [0, 2, 4, 6, 8, 9, 10, 12, 15, 18, 19, 21, 23, 25, 26, 27, 30, 40, 44, 45], "properli": [0, 6, 7, 17, 19, 21, 27, 45], "main": [0, 2, 4, 6, 8, 19, 23, 36, 40, 43, 45], "should": [0, 6, 7, 8, 12, 15, 19, 20, 21, 23, 25, 27, 30, 32, 34, 36, 40, 42, 45], "zero": [0, 6, 10, 12, 21, 30, 31, 40], "all": [0, 2, 4, 6, 8, 10, 12, 15, 17, 18, 19, 20, 21, 23, 25, 26, 27, 30, 31, 34, 36, 38, 40, 42, 44, 45, 47], "therefor": [0, 6, 8, 19, 21, 22, 27, 32, 34], "recommend": [0, 6, 7, 8, 21, 27, 32, 34, 45], "easili": [0, 2, 4, 6, 30, 45], "identifi": [0, 10, 15], "outsid": [0, 6, 12, 21, 30, 34, 40], "mani": [0, 2, 4, 5, 6, 8, 9, 15, 17, 19, 21, 23, 25, 26, 27, 30, 34, 36, 38, 40, 42, 45], "possibl": [0, 2, 3, 6, 8, 9, 13, 15, 21, 30, 34, 35, 36, 40, 42], "immedi": [0, 2, 21, 27, 40, 45], "befor": [0, 2, 6, 8, 10, 15, 18, 19, 21, 26, 27, 30, 34, 42, 43, 45], "after": [0, 4, 6, 7, 8, 10, 12, 17, 18, 19, 21, 25, 27, 30, 34, 36, 40, 42, 43, 45], "checkpoint": [0, 4, 34, 40, 47], "also": [0, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 17, 18, 19, 21, 22, 23, 25, 27, 30, 31, 33, 34, 35, 38, 40, 42, 44, 45, 46], "sinc": [0, 2, 4, 12, 21, 25, 27, 34, 37, 40], "multipl": [0, 2, 8, 12, 13, 17, 21, 23, 26, 27, 30, 31, 34, 42, 45], "similar": [0, 6, 8, 10, 12, 19, 21, 27, 34, 45], "look": [0, 6, 8, 19, 21, 23, 34, 45], "wrap": [0, 19, 21], "accur": [0, 2, 40], "identif": [0, 15], "help": [0, 2, 6, 8, 10, 15, 17, 21, 43, 47], "us": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 19, 20, 22, 23, 26, 27, 30, 31, 32, 33, 34, 35, 36, 40, 41, 42, 43, 46, 47], "For": [0, 2, 6, 7, 8, 9, 10, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 27, 30, 31, 33, 34, 36, 38, 40, 41, 43, 44, 45, 47], "exampl": [0, 3, 5, 7, 8, 10, 12, 13, 17, 18, 19, 22, 24, 25, 26, 27, 30, 31, 34, 35, 36, 40, 41, 42, 43, 44, 45, 47], "top": [0, 8, 12, 27, 45], "three": [0, 6, 8, 9, 19, 21, 23, 26, 30, 34, 42, 45], "linear": [0, 8, 13, 27, 47], "solver": [0, 8, 13, 17, 24, 41, 45, 47], "test": [0, 6, 8, 12, 15, 21, 25, 27, 34, 40, 42, 45, 47], "mpi": [0, 6, 8, 10, 17, 18, 19, 21, 23, 24, 27, 29, 30, 32, 33, 34, 40, 42, 45], "mlpoisson": [0, 30], "fsmooth": [0, 30], "560": 0, "4775": 0, "4793": 0, "4815": 0, "34": [0, 15, 45], "97": [0, 34], "fappli": [0, 30], "114": 0, "1103": 0, "113": 0, "1167": 0, "8": [0, 2, 6, 8, 15, 19, 21, 26, 34, 36, 40, 42, 45], "48": [0, 6, 15, 26], "xpai": 0, "109": 0, "1013": 0, "1038": 0, "7": [0, 2, 6, 9, 15, 21, 23, 26, 30, 36, 40, 43, 45], "54": [0, 15], "In": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 27, 28, 30, 31, 34, 35, 36, 40, 41, 42, 45], "16": [0, 6, 15, 21, 26, 30, 36, 45], "box": [0, 4, 7, 10, 12, 19, 26, 27, 30, 34, 36, 45], "evenli": 0, "distribut": [0, 3, 6, 10, 12, 18, 27, 32, 33, 34, 42, 43, 45], "among": [0, 6, 45], "abov": [0, 2, 4, 6, 8, 10, 21, 25, 27, 30, 34, 42, 43, 44, 45], "perfectli": [0, 30, 45], "veri": [0, 6, 8, 11, 12, 19, 27, 30, 34, 40], "differ": [0, 2, 3, 4, 6, 8, 10, 11, 12, 13, 15, 17, 18, 19, 21, 26, 27, 30, 33, 34, 42, 44, 45, 47], "sometim": [0, 6, 8, 21, 30, 45], "mislead": [0, 40], "we": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 33, 34, 35, 40, 43, 44, 45, 47], "put": [0, 6, 21], "6": [0, 6, 15, 21, 22, 30, 34, 36, 45], "respect": [0, 4, 6, 8, 10, 12, 15, 21, 22, 23, 30, 34, 40], "now": [0, 2, 5, 6, 12, 19, 21, 23, 30, 34, 38, 45], "parallelcopi": [0, 6, 17, 19], "fillboundary_finish": [0, 6], "607": [0, 45], "01568": 0, "3367": 0, "6574": 0, "41": [0, 15], "2133": 0, "4047": 0, "5973": 0, "38": 0, "13": [0, 6, 21, 36, 45], "parallelcopy_finish": [0, 6], "231": 0, "002977": 0, "09748": 0, "1895": 0, "12": [0, 6, 12, 21, 36, 45], "10": [0, 6, 15, 21, 23, 27, 30, 34, 36, 40, 45], "reason": [0, 4, 6, 15, 21, 25, 40], "appear": [0, 6, 21, 31, 45], "slow": [0, 6, 40, 44, 45], "lightli": 0, "wait": [0, 21], "messag": [0, 6, 10, 15, 17, 21, 40, 45], "sent": [0, 30], "heavili": 0, "diagnost": 0, "provid": [0, 2, 4, 5, 6, 8, 12, 13, 15, 16, 17, 19, 20, 23, 25, 27, 30, 33, 34, 35, 40, 41, 42, 44, 45], "more": [0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 15, 18, 19, 21, 23, 26, 27, 30, 31, 33, 34, 40, 41, 42, 43, 44, 45], "insight": 0, "imbal": 0, "bl_prof": 0, "directori": [0, 2, 3, 4, 5, 6, 8, 15, 17, 19, 21, 23, 27, 30, 34, 36, 42, 43, 45, 47], "contain": [0, 2, 3, 4, 5, 6, 8, 12, 15, 17, 19, 21, 23, 26, 27, 30, 34, 36, 38, 40, 42, 44, 45, 47], "detail": [0, 1, 3, 4, 6, 8, 9, 15, 16, 17, 22, 23, 30, 31, 36, 38, 40, 44, 45, 47], "per": [0, 6, 21, 32, 33, 34, 40], "task": [0, 10, 18, 21, 34, 36, 45], "processor": [0, 3, 6, 26, 27], "nfile": 0, "where": [0, 2, 4, 6, 8, 12, 15, 18, 21, 23, 25, 27, 30, 31, 32, 33, 36, 40, 42, 43, 44, 45], "specifi": [0, 2, 3, 4, 6, 9, 12, 15, 17, 19, 21, 25, 26, 27, 30, 33, 34, 35, 40, 42, 43, 44, 45], "analyz": [0, 15, 45], "tool": [0, 4, 5, 6, 8, 9, 13, 15, 17, 21, 23, 27, 34, 35, 36, 43, 45, 46, 47], "within": [0, 2, 4, 6, 8, 12, 15, 18, 19, 21, 23, 30, 34, 42, 45, 46], "amrvi": [0, 10, 17, 23, 29, 46], "addit": [0, 2, 3, 5, 6, 8, 15, 16, 17, 21, 23, 25, 26, 27, 30, 31, 33, 34, 35, 41, 43, 44, 45], "onli": [0, 2, 6, 8, 10, 12, 15, 17, 18, 19, 21, 22, 25, 27, 30, 31, 34, 40, 43, 44], "trace_profil": 0, "keep": [0, 2, 15, 21, 34], "track": [0, 2, 6, 10, 15, 21, 25, 34], "stack": [0, 6, 10, 12], "especi": [0, 6, 21, 40], "core": [0, 20, 25, 38, 40, 45], "allow": [0, 2, 6, 8, 13, 15, 18, 21, 27, 30, 34, 35, 40, 44, 45], "one": [0, 2, 4, 6, 7, 8, 10, 12, 15, 17, 19, 21, 26, 27, 30, 32, 33, 34, 36, 40, 42, 43, 44, 45], "independ": [0, 2, 6, 8, 17, 18, 21, 23, 32, 34], "other": [0, 2, 6, 8, 12, 17, 18, 19, 21, 24, 25, 27, 30, 34, 40, 43, 45], "comm_profil": 0, "about": [0, 2, 3, 4, 6, 8, 12, 15, 21, 33, 36, 40, 45], "data": [0, 2, 3, 4, 5, 6, 8, 10, 11, 13, 15, 17, 18, 19, 21, 23, 27, 28, 29, 30, 33, 35, 36, 37, 38, 40, 42, 44, 46], "volum": [0, 2, 6, 13, 15, 36, 45], "barrier": [0, 6, 21, 27], "reduct": 0, "etc": [0, 2, 4, 5, 6, 8, 15, 21, 23, 25, 26, 27, 30, 34, 36, 40, 43, 45, 47], "togeth": [0, 4, 6, 18, 34, 45], "specif": [0, 1, 2, 4, 6, 8, 12, 15, 19, 20, 23, 26, 27, 30, 32, 34, 40, 44, 45, 46], "under": [0, 10, 15, 25, 47], "develop": [0, 5, 7, 8, 9, 17, 21, 22, 23, 25, 29, 38, 42, 43, 46, 47], "document": [0, 1, 4, 5, 10, 13, 15, 16, 17, 20, 21, 22, 25, 27, 40, 42, 44, 45], "reflect": [0, 6, 8, 25, 30, 45], "latest": [0, 8, 21, 22, 23, 27, 43, 47], "statu": [0, 6, 45], "branch": [0, 15, 23, 25, 43, 47], "creat": [0, 2, 3, 4, 5, 6, 8, 11, 12, 18, 21, 26, 27, 30, 33, 34, 36, 40, 44, 45], "manag": [0, 2, 3, 4, 5, 6, 8, 17, 21, 40, 43, 45], "must": [0, 2, 6, 8, 12, 15, 19, 21, 25, 26, 27, 30, 34, 40, 42, 43, 45], "least": [0, 8, 25, 30, 32, 34, 40], "i": [0, 2, 4, 6, 8, 12, 13, 17, 18, 19, 21, 23, 25, 26, 27, 29, 30, 31, 32, 33, 34, 42, 43, 45, 47], "int": [0, 2, 4, 6, 10, 12, 17, 21, 23, 27, 30, 32, 34, 40, 44], "initi": [0, 2, 3, 4, 7, 8, 10, 13, 15, 17, 19, 21, 23, 26, 27, 30, 35, 40, 41, 42, 43, 45], "argc": [0, 6, 23], "argv": [0, 6, 23], "pmain": 0, "block": [0, 2, 6, 12, 13, 15, 23, 25, 29, 35, 40, 42, 46, 47], "Or": [0, 34, 45], "void": [0, 2, 4, 6, 10, 12, 17, 21, 27, 30, 34], "main_main": 0, "There": [0, 2, 3, 4, 6, 8, 9, 12, 15, 19, 21, 23, 26, 30, 34, 37, 40, 42, 46], "four": [0, 6], "gener": [0, 2, 4, 6, 8, 9, 12, 13, 17, 19, 23, 27, 30, 32, 33, 34, 36, 40, 42, 43, 44, 47], "avail": [0, 3, 5, 6, 9, 12, 15, 19, 21, 23, 27, 29, 30, 31, 34, 36, 38, 40, 43, 44, 45, 47], "These": [0, 1, 2, 5, 6, 8, 10, 19, 21, 27, 30, 34, 40, 44, 45], "own": [0, 6, 9, 10, 12, 17, 19, 25, 27, 32, 34, 45], "so": [0, 2, 6, 8, 12, 15, 18, 21, 26, 27, 30, 34, 40, 43, 44, 45], "thei": [0, 2, 6, 8, 12, 15, 17, 18, 19, 21, 23, 27, 30, 34, 40, 44], "control": [0, 6, 8, 10, 21, 23, 27, 30, 33, 34, 43, 45], "being": [0, 6, 10, 12, 13, 19, 21, 30, 40], "cleanest": 0, "easiest": [0, 43, 45], "situat": [0, 21, 25], "until": [0, 6, 10, 15, 21, 26], "enclos": [0, 6, 21], "ideal": 0, "entir": [0, 5, 6, 15, 21, 30, 34, 36, 40], "yourclass": 0, "yourfunct": 0, "here": [0, 1, 2, 4, 6, 7, 8, 10, 12, 15, 17, 18, 19, 20, 21, 24, 26, 30, 33, 34, 36, 43, 44, 45, 47], "goe": [0, 6, 12], "return": [0, 2, 3, 4, 6, 12, 15, 19, 21, 23, 30, 34, 36], "note": [0, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 17, 19, 21, 23, 25, 26, 27, 30, 31, 32, 33, 34, 40, 45], "correspond": [0, 19, 21, 27, 34, 44, 45], "destroi": [0, 19, 21], "uniqu": [0, 27, 34, 42], "becaus": [0, 2, 6, 8, 12, 15, 17, 19, 21, 26, 27, 30, 32, 34, 40, 45], "some": [0, 2, 6, 8, 12, 15, 16, 19, 20, 21, 27, 30, 34, 40, 43, 44, 45], "case": [0, 2, 4, 6, 8, 10, 15, 21, 23, 30, 31, 34, 45], "_var_": 0, "_start_": 0, "_stop_": 0, "signifi": 0, "take": [0, 1, 2, 6, 10, 12, 13, 19, 21, 23, 30, 32, 34, 36, 40, 42, 44, 45], "variabl": [0, 2, 4, 5, 6, 10, 12, 15, 17, 23, 27, 30, 34, 36, 40, 45], "without": [0, 3, 4, 8, 12, 17, 19, 21, 27, 30, 36, 40, 43, 44, 45], "flaten": 0, "fort_flatenx": 0, "anynam": 0, "arg1": 0, "arg2": 0, "select": [0, 15, 16, 21, 36, 44], "same": [0, 2, 5, 6, 8, 11, 12, 15, 17, 18, 19, 21, 27, 30, 33, 34, 36, 42, 44, 45], "func_0": 0, "func_2": 0, "func_1": 0, "myfunc": 0, "first": [0, 2, 4, 6, 8, 12, 15, 19, 21, 23, 26, 27, 30, 34, 40, 43, 45], "myfunc_0": 0, "arg": [0, 6], "myfunc_1": 0, "bl_profile_var_start": 0, "myfunc_2": 0, "rememb": [0, 15, 27], "still": [0, 6, 19, 30, 45], "reproduc": [0, 21], "exactli": [0, 6, 30, 34], "just": [0, 2, 6, 12, 19, 23, 26, 27, 34, 36, 43, 45], "_var": 0, "correctli": [0, 45], "complic": [0, 6, 23], "mean": [0, 6, 8, 21, 23, 26, 30, 34, 40, 45], "need": [0, 2, 4, 6, 8, 10, 11, 12, 15, 17, 19, 21, 25, 27, 30, 34, 43, 44, 45], "_ns_": 0, "ns": 0, "stand": [0, 23, 41, 47], "implement": [0, 2, 4, 6, 7, 10, 12, 13, 15, 16, 21, 23, 30, 40, 44, 45], "myfunc0": 0, "myfunc1": 0, "dont": 0, "b": [0, 6, 21, 30, 31, 36, 42], "necess": 0, "otherwis": [0, 6, 8, 17, 19, 21, 25, 26, 27, 30, 40], "would": [0, 6, 8, 12, 13, 15, 21, 26, 30, 34, 40, 45], "never": [0, 15, 34], "abl": [0, 7, 10, 21, 45], "turn": [0, 4, 6, 8, 10, 15, 19, 21, 23, 27, 30, 34, 40, 45], "often": [0, 2, 6, 15, 21, 23, 26, 27, 34, 40, 45], "subset": [0, 15, 43, 45], "separ": [0, 4, 6, 8, 11, 15, 17, 21, 25, 26, 30, 31, 33, 34, 36, 45], "complet": [0, 6, 8, 12, 13, 15, 18, 21, 22, 30, 34, 43, 45], "view": [0, 6, 8, 15, 17, 23, 36, 45, 46], "step": [0, 2, 3, 4, 6, 8, 9, 12, 15, 21, 23, 27, 30, 40, 44, 45], "isol": [0, 10, 21], "everyth": 0, "insid": [0, 12, 15, 20, 21, 30], "chemistri": 0, "part": [0, 4, 6, 8, 18, 19, 21, 23, 47], "accomplish": [0, 6, 18, 30], "both": [0, 6, 11, 15, 19, 21, 23, 26, 30, 31, 34, 40, 42, 43, 44, 45], "analysi": [0, 34, 41, 45], "meant": 0, "larg": [0, 2, 6, 18, 21, 26, 30, 34, 36, 40, 42, 45], "contigu": [0, 6, 15, 19, 21, 40], "sparingli": 0, "purposefulli": 0, "produc": [0, 6, 13, 15, 21, 36, 45], "report": [0, 6, 8, 10, 15, 17, 21, 36, 40], "As": [0, 6, 8, 15, 21, 27, 34, 42, 43, 45], "limit": [0, 2, 6, 8, 15, 21, 43, 45], "add": [0, 2, 4, 6, 8, 10, 15, 17, 19, 21, 25, 27, 31, 34, 38, 40, 44, 45], "wai": [0, 6, 9, 12, 13, 15, 21, 23, 26, 27, 30, 32, 33, 34, 42, 45], "tabl": [0, 3, 6, 8, 12, 15, 21, 44, 45], "mimic": 0, "indic": [0, 6, 8, 19, 21, 34, 40, 42, 45], "reg": 0, "begin": [0, 2, 4, 6, 8, 15, 17, 21, 26, 27, 47], "1000": [0, 6], "402": 0, "14": [0, 15, 40, 45], "19": [0, 6, 15, 21, 45], "39": 0, "15": [0, 6, 15, 21, 45], "0168": 0, "05": [0, 23, 45], "809": 0, "28": [0, 15], "reli": [0, 17, 30, 43], "slightli": [0, 6, 30], "modifi": [0, 2, 6, 8, 10, 12, 13, 21, 23, 30, 34, 36, 43], "format": [0, 6, 8, 12, 21, 27, 29, 30, 34, 36, 44], "argument": [0, 8, 12, 15, 19, 21, 23, 27, 30, 40], "section": [0, 2, 6, 9, 10, 12, 13, 15, 17, 19, 20, 21, 23, 27, 28, 30, 34, 35, 40, 41, 44, 45], "group": [0, 6, 15, 21, 34, 45], "consid": [0, 2, 6, 8, 12, 21, 30, 34, 40], "bl_profile_region_var": 0, "regionac": 0, "reg_ac": 0, "bl_profile_region_var_stop": 0, "regionb": 0, "reg_b": 0, "bl_profile_region_var_start": 0, "secondregionac": 0, "label": [0, 12, 13, 21, 25, 34, 45], "its": [0, 2, 3, 4, 6, 8, 9, 12, 17, 19, 21, 27, 30, 34, 40, 45], "bl_proffortfuncstart": 0, "my_funct": 0, "bl_proffortfuncstop": 0, "match": [0, 2, 6, 15, 21, 30, 34, 40], "leav": [0, 19, 21, 34, 40, 45], "moreov": 0, "necessari": [0, 2, 8, 15, 21, 27, 45], "account": [0, 1, 2, 32], "path": [0, 8, 12, 21, 27, 43, 45], "locat": [0, 6, 8, 10, 12, 17, 30, 34, 45], "warn": [0, 8, 21], "were": [0, 15, 21, 36, 43, 45], "debug": [0, 6, 8, 15, 17, 21, 23, 34, 40, 45, 47], "mode": [0, 8, 21, 23, 40, 45], "high": [0, 2, 6, 30, 40, 45], "number": [0, 2, 4, 5, 6, 8, 10, 12, 15, 17, 19, 21, 22, 23, 26, 27, 30, 32, 34, 36, 40, 42, 44, 45], "lighter": 0, "weight": [0, 2, 12, 32, 36, 44, 45], "interfac": [0, 2, 3, 6, 8, 19, 21, 29, 30, 31, 34, 41, 44, 45, 47], "bl_proffortfuncstart_int": 0, "n": [0, 2, 6, 8, 10, 12, 21, 23, 27, 30, 32, 34, 41, 45], "bl_proffortfuncstop_int": 0, "integ": [0, 2, 4, 6, 12, 19, 21, 26, 30, 34, 40, 45], "rang": [0, 6, 12, 23, 27, 35], "mfortprofsintmaxfunc": 0, "32": [0, 2, 6, 12, 15, 19, 21, 26, 34, 40], "fortfunc_n": 0, "unless": [0, 6, 8, 10, 21, 26, 34, 40], "renam": [0, 15, 25, 27], "bl_profile_change_fort_int_nam": 0, "fname": 0, "std": [0, 6, 10, 12, 17, 21, 27, 30, 34, 40], "string": [0, 6, 10, 15, 23, 27, 34, 40, 44, 45], "fortran": [0, 2, 4, 7, 9, 12, 15, 19, 21, 29, 35, 47], "cannot": [0, 2, 6, 15, 19, 21], "receiv": [0, 40], "algorithm": [0, 2, 6, 12, 13, 21, 25, 26, 27, 32, 42], "increas": [0, 21, 26, 27], "wall": [0, 6, 15, 27, 40], "clock": [0, 15, 40], "applic": [0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 17, 19, 20, 21, 22, 26, 27, 29, 30, 34, 35, 38, 40, 43, 45, 47], "imbalanc": 0, "due": [0, 6, 15, 17, 19, 21, 25], "mpi_wait": 0, "better": [0, 15, 20, 34], "understand": [0, 4, 20, 21], "occur": [0, 6, 12, 21], "how": [0, 1, 2, 4, 5, 6, 8, 13, 15, 17, 21, 23, 26, 27, 30, 31, 32, 33, 34, 35, 36, 40, 42, 45, 47], "much": [0, 6, 12, 21, 27, 30, 32, 34], "synchron": [0, 2, 4, 6, 10, 17, 18, 22, 40], "runtim": [0, 6, 8, 10, 12, 15, 21, 23, 27, 35, 43, 44, 45, 47], "use_profiler_sync": 0, "syncbeforecomm": 0, "prior": [0, 34, 45], "particl": [0, 2, 3, 5, 8, 11, 20, 22, 23, 27, 28, 29, 33, 46, 47], "redistribut": [0, 4, 13, 18, 21], "comm": [0, 6, 8, 15], "oper": [0, 2, 3, 6, 8, 12, 13, 17, 18, 19, 21, 25, 27, 31, 34, 40, 43, 44, 45], "down": [0, 2, 10, 15, 21], "product": [0, 6, 8, 45], "equal": [0, 2, 6, 21, 27, 30, 40], "It": [0, 6, 7, 8, 12, 15, 19, 21, 23, 24, 27, 30, 34, 36, 40, 41, 45], "captur": [0, 6, 21, 34], "between": [0, 2, 3, 4, 6, 12, 17, 19, 21, 30, 34, 40, 42, 44, 45], "previou": [0, 2, 6, 21, 27, 30, 35], "sync": [0, 6], "elsewher": [0, 6], "term": [0, 2, 6, 21, 30, 31], "rank": [0, 6, 15, 18, 21, 27, 30, 32, 33, 42], "most": [0, 1, 2, 4, 5, 6, 8, 9, 15, 16, 19, 20, 21, 25, 33, 34, 43, 45], "chang": [0, 2, 6, 8, 15, 19, 21, 23, 25, 27, 30, 34, 43, 44, 45, 47], "throughout": [0, 21, 27], "simul": [0, 2, 3, 4, 8, 23, 27, 34, 35, 36, 40, 45], "underestim": 0, "effect": [0, 6, 8, 10, 21, 40], "wa": [0, 6, 8, 15, 17, 21, 34, 36, 45], "metric": [0, 10, 30], "databas": [0, 6, 13, 15, 40], "command": [0, 2, 8, 10, 12, 15, 17, 21, 23, 30, 36, 40, 45], "perform": [0, 1, 2, 3, 4, 6, 8, 12, 16, 17, 19, 22, 23, 26, 27, 30, 34, 35, 37, 40, 42, 43, 45], "plotfil": [0, 4, 8, 17, 19, 23, 29, 36, 37, 40, 45, 46, 47], "timelin": [0, 15, 21], "html": [0, 10, 34, 43, 45], "tree": [0, 2, 19, 23, 26, 32, 45], "statist": [0, 21], "graph": 0, "parser": [0, 7, 8, 40], "servic": [0, 8], "interact": [0, 6, 21, 35], "environ": [0, 6, 8, 9, 10, 15, 17, 21, 23, 27, 30, 40, 45], "sidecar": 0, "dynam": [0, 6, 8, 21, 30], "optim": [0, 6, 8, 21, 23, 27, 32, 34, 40], "util": [0, 6, 21, 37, 42], "version": [0, 4, 6, 8, 9, 10, 15, 19, 21, 22, 23, 27, 40, 43, 45, 47], "itself": [0, 6, 15, 21, 30, 34, 40, 43, 45], "been": [0, 2, 6, 7, 8, 12, 19, 21, 30, 32, 34, 42, 45], "integr": [0, 2, 6, 8, 16, 23, 41, 47], "visual": [0, 4, 15, 21, 24, 25, 27, 34, 47], "interpret": [0, 12, 21, 30, 45], "open": [0, 4, 25, 27, 45], "like": [0, 4, 6, 8, 9, 12, 15, 17, 19, 21, 23, 26, 27, 30, 33, 34, 38, 40, 43, 45], "appropri": [0, 2, 6, 8, 15, 21, 25, 34, 40, 43, 45], "parallel": [0, 2, 6, 7, 17, 18, 19, 21, 27, 28, 29, 34, 35, 42, 47], "batch": [0, 1, 40, 45], "code": [1, 4, 6, 7, 8, 9, 10, 12, 15, 17, 19, 20, 21, 24, 25, 27, 30, 32, 34, 36, 38, 40, 41, 42, 43, 44, 45, 47], "instrument": [1, 8, 10, 15], "hierarch": [1, 23, 29, 45, 46], "natur": [1, 10, 17, 21], "mesh": [1, 11, 12, 13, 17, 21, 28, 29, 33, 35, 40, 45, 47], "vari": [1, 2, 34], "level": [1, 3, 4, 5, 6, 7, 10, 12, 17, 19, 23, 26, 27, 30, 31, 32, 33, 34, 36, 40, 44, 45, 47], "link": [1, 6, 8, 9, 15, 21, 27, 40, 45], "short": [1, 23, 35], "cours": [1, 11, 27, 34], "slide": 1, "found": [1, 6, 8, 10, 15, 17, 19, 21, 22, 23, 36, 40, 41, 43], "lectur": 1, "1": [1, 4, 6, 8, 10, 12, 15, 17, 19, 21, 23, 25, 26, 27, 29, 30, 34, 36, 40, 42, 43, 44, 45], "introduct": [1, 23, 47], "2": [1, 3, 4, 6, 8, 9, 12, 15, 19, 21, 23, 25, 26, 27, 29, 30, 31, 34, 36, 40, 43, 44, 45], "full": [1, 6, 12, 15, 21, 30, 36, 43, 44, 45], "3": [1, 2, 4, 6, 8, 9, 12, 15, 19, 21, 26, 29, 30, 34, 36, 40, 42, 43, 44, 45, 47], "profvi": 1, "gui": [1, 45], "featur": [1, 8, 15, 19, 21, 23, 29, 34, 44, 45], "4": [1, 2, 6, 8, 10, 12, 15, 17, 19, 21, 23, 27, 30, 34, 36, 40, 44, 45], "option": [1, 4, 6, 9, 10, 11, 12, 15, 19, 23, 27, 29, 30, 32, 34, 36, 40, 43, 44, 45], "advanc": [1, 2, 4, 6, 8, 10, 12, 13, 44], "type": [1, 2, 4, 5, 8, 10, 12, 15, 17, 19, 21, 23, 30, 31, 33, 34, 36, 40, 44, 45], "c": [1, 2, 4, 7, 8, 9, 10, 12, 15, 19, 20, 23, 29, 34, 38, 40, 42, 44, 45], "fortran90": 1, "amrprofpars": 1, "src": [2, 3, 4, 5, 6, 7, 8, 12, 17, 19, 30, 34, 42], "singl": [2, 4, 5, 6, 7, 8, 10, 12, 13, 15, 17, 19, 21, 26, 27, 30, 31, 32, 33, 34, 36, 40, 45], "examplecod": [2, 3, 5, 7, 8, 19, 21, 23, 30, 31, 34, 45], "basic": [2, 6, 8, 12, 17, 20, 21, 23, 27, 30, 31, 34, 36, 44, 45, 47], "heatequation_ex1_c": [2, 7, 23, 45], "cpp": [2, 4, 6, 8, 36], "geometri": [2, 7, 12, 13, 17, 19, 27, 29, 30, 31, 34], "distributionmap": [2, 7, 11, 12, 17, 19, 27, 30, 32, 33, 34, 40, 44], "boxarrai": [2, 7, 11, 12, 17, 19, 27, 30, 33, 34, 44], "associ": [2, 4, 6, 13, 27, 34, 45], "refin": [2, 3, 4, 5, 6, 19, 27, 29, 30, 33, 34, 40, 45, 47], "thought": [2, 6], "arrai": [2, 4, 7, 10, 12, 19, 20, 21, 27, 30, 32, 40, 45], "amrex_amrmesh": [2, 27], "h": [2, 4, 6, 8, 10, 12, 21, 23, 27, 30, 34, 44, 45], "protect": [2, 21, 25], "member": [2, 4, 6, 12, 19, 21, 30, 34, 40, 45], "verbos": [2, 21, 23, 30, 40], "max_level": [2, 30, 40], "vector": [2, 7, 12, 17, 27, 30, 34, 44], "intvect": [2, 7, 10, 27], "ref_ratio": [2, 27, 40], "ratio": [2, 3, 27, 30, 40], "finest_level": [2, 27], "finest": [2, 6, 12, 27, 34, 40], "n_error_buf": [2, 26, 40], "buffer": [2, 15, 21, 27, 34, 40], "cell": [2, 4, 7, 10, 13, 17, 19, 21, 23, 26, 27, 29, 31, 32, 33, 34, 35, 40, 44, 45], "around": [2, 12, 15, 19, 20, 21, 27, 34, 40, 45], "tag": [2, 3, 4, 19, 23, 26, 33, 40, 47], "blocking_factor": [2, 26, 40], "factor": [2, 6, 12, 40, 42], "max_grid_s": [2, 19, 26, 40], "size": [2, 4, 6, 12, 15, 19, 26, 27, 33, 34, 40, 42, 45], "real": [2, 7, 8, 10, 12, 19, 21, 27, 30, 34, 40, 44], "grid_eff": [2, 26, 40], "effici": [2, 13, 21, 23, 26, 30, 40, 46], "n_proper": [2, 40], "requir": [2, 6, 8, 9, 11, 12, 13, 15, 19, 21, 22, 25, 27, 30, 34, 40, 43, 44, 45], "proper": [2, 6, 21, 34, 40], "nest": [2, 6, 18, 40, 45], "bool": [2, 6, 12, 21, 27, 30, 34, 40], "use_fixed_coarse_grid": 2, "use_fixed_upto_level": 2, "refine_grid_layout": [2, 26, 40], "chop": [2, 6, 40], "up": [2, 4, 6, 17, 19, 21, 27, 30, 34, 36, 40, 43, 44, 45], "less": [2, 6, 18, 21, 23, 26, 27, 30, 40], "proc": 2, "geom": [2, 6, 12, 19, 27, 30, 34], "dmap": [2, 27, 30, 34], "frequent": [2, 6, 47], "via": [2, 4, 6, 8, 12, 19, 21, 25, 27, 29, 30, 34, 40, 45], "input": [2, 4, 15, 22, 26, 27, 30, 32, 35, 36, 40, 42, 43, 44, 45], "Their": [2, 19, 27], "usag": [2, 4, 6, 8, 10, 12, 17, 19, 21, 27, 30, 33, 34, 36], "describ": [2, 4, 6, 8, 10, 12, 15, 17, 18, 21, 25, 27, 30, 34, 35, 40, 45], "creation": [2, 15, 32, 33, 34, 40], "valu": [2, 8, 10, 12, 13, 19, 21, 26, 27, 30, 34, 36, 40, 41, 44, 45], "default": [2, 6, 8, 10, 12, 15, 19, 21, 23, 26, 27, 30, 31, 32, 34, 36, 40, 43, 45], "none": [2, 6, 8, 19, 21, 27, 30, 34, 40, 45], "3d": [2, 6, 8, 15, 21, 23, 26, 30, 40, 42], "128": [2, 6, 15, 21, 26, 40, 45], "2d": [2, 6, 8, 12, 23, 26, 30, 40, 42], "amrex_amrcor": 2, "pure": [2, 4, 5], "virtual": [2, 4, 5, 19, 30, 34, 40], "which": [2, 3, 4, 6, 8, 12, 15, 17, 19, 21, 26, 27, 30, 31, 32, 33, 34, 36, 40, 42, 43, 44, 45], "deriv": [2, 4, 5, 6, 12, 15, 17, 19, 21, 34, 40], "doe": [2, 5, 6, 8, 9, 12, 13, 17, 18, 21, 23, 27, 30, 33, 34, 40], "actual": [2, 6, 8, 21, 27, 34, 45], "tagboxarrai": [2, 19], "lev": [2, 12, 19, 27, 30, 32, 34], "errorest": [2, 4], "ngrow": [2, 6, 12], "new": [2, 4, 6, 12, 19, 21, 23, 25, 27, 30, 34, 36, 39, 40, 44, 45, 47], "scratch": [2, 19, 21, 45], "makenewlevelfromscratch": 2, "const": [2, 6, 10, 12, 17, 21, 27, 30, 34, 40, 44], "ba": [2, 6, 19, 27, 34], "dm": [2, 6, 19, 27, 45], "fill": [2, 6, 17, 19, 32, 34, 44], "interpol": [2, 3, 4, 5, 6, 19, 21, 30, 34, 45], "coars": [2, 3, 4, 6, 12, 17, 19, 26, 30, 34, 36, 40], "makenewlevelfromcoars": 2, "remak": [2, 19], "exist": [2, 4, 6, 19, 21, 27, 30, 34, 40, 43], "fine": [2, 3, 8, 12, 15, 17, 19, 26, 30, 34, 40], "remakelevel": 2, "delet": [2, 19, 21], "clearlevel": 2, "refer": [2, 4, 6, 7, 10, 12, 15, 16, 19, 21, 23, 25, 27, 30, 31, 33, 34, 40, 41], "amrcore_advect": 2, "essenti": [2, 4, 5, 6, 12, 30], "mark": [2, 6, 15, 21, 34, 44], "clusterlist": 2, "sort": [2, 32, 34, 40, 45], "hidden": [2, 6], "simpl": [2, 5, 6, 9, 12, 13, 19, 21, 23, 24, 42, 45], "multifab": [2, 4, 7, 8, 10, 11, 12, 17, 18, 19, 27, 30, 31, 32, 33, 34, 36, 37, 40, 42, 44, 45], "temporari": [2, 6, 8, 11, 21], "ghost": [2, 4, 7, 10, 12, 17, 19, 21, 27, 30, 34], "valid": [2, 6, 8, 12, 19, 21, 34, 40, 44], "space": [2, 3, 6, 12, 17, 21, 30, 32, 34, 42], "next": [2, 4, 6, 8, 12, 19, 21, 26, 30, 34, 40, 45], "coarser": [2, 12, 26, 30], "neighbor": [2, 12, 21, 34], "domain": [2, 6, 12, 13, 19, 20, 23, 26, 27, 30, 33, 34, 36, 40, 42], "boundari": [2, 3, 4, 7, 8, 17, 19, 26, 29, 31, 34, 42, 47], "condit": [2, 3, 4, 7, 8, 10, 12, 15, 17, 21, 31, 34, 42], "non": [2, 6, 8, 12, 21, 23, 25, 32, 34, 40], "period": [2, 3, 4, 6, 23, 25, 30, 34, 40, 42, 45], "coarsest": [2, 6, 30], "interior": [2, 6, 12, 30], "prescrib": [2, 30, 34], "physic": [2, 4, 6, 19, 21, 27, 30, 40], "consider": [2, 6, 15], "awai": [2, 6], "amrex_fillpatchutil": 2, "primari": [2, 21], "interest": [2, 23, 45], "fillpatchsinglelevel": [2, 19], "region": [2, 6, 12, 15, 21, 34, 40, 45], "flexibl": [2, 17, 21, 33, 34, 35, 44], "enough": [2, 21, 34], "fillpatchtwolevel": [2, 19], "assum": [2, 6, 7, 8, 12, 21, 23, 24, 30, 31, 34, 45], "underli": [2, 6, 8, 13, 19, 21], "filldomainboundari": 2, "principl": [2, 6, 33, 34], "instead": [2, 6, 8, 10, 12, 15, 17, 19, 21, 25, 30, 32, 34, 40], "A": [2, 6, 8, 12, 15, 17, 19, 21, 22, 27, 30, 31, 34, 36, 40, 42, 43, 45, 47], "amrex_interpolat": 2, "spatial": [2, 6, 19, 21, 23, 44, 45], "nodebilinear": 2, "cellbilinear": 2, "cellconservativelinear": 2, "cellconservativeprotect": 2, "cellconservativequart": 2, "cellquadrat": 2, "pcinterp": 2, "facelinear": 2, "facedivfre": 2, "diverg": [2, 12, 13, 23, 30], "preserv": 2, "face": [2, 12, 17, 23, 29, 30, 31, 40, 44], "center": [2, 12, 17, 27, 29, 31, 34, 36, 40, 44, 45], "overli": 2, "given": [2, 4, 6, 8, 12, 15, 19, 21, 26, 30, 32, 34, 40, 44], "even": [2, 6, 10, 12, 21, 33], "sub": [2, 6, 18, 19, 27], "cycl": [2, 15, 30, 45], "guarante": [2, 6, 21, 27], "execut": [2, 6, 8, 10, 17, 18, 21, 23, 34, 36, 45], "cpu": [2, 6, 15, 17, 21, 30, 32, 34, 40, 45], "gpu": [2, 4, 6, 15, 17, 30, 34, 40, 47], "certain": [2, 8, 36], "amrex_fluxregist": 2, "bndryregist": 2, "amrex_bndryregist": 2, "special": [2, 6, 15, 21, 30, 31, 34, 40], "manipul": [2, 3], "flux": [2, 3, 6, 13, 23, 30], "scenario": 2, "come": [2, 13, 21, 27, 30, 33, 34, 45], "conserv": [2, 12, 13], "discret": [2, 6, 13, 23], "hyperbol": [2, 12, 29], "system": [2, 6, 9, 10, 12, 13, 16, 17, 19, 21, 23, 27, 30, 31, 34, 40, 41], "frac": [2, 12, 23, 30], "phi": [2, 4, 6, 12, 19, 23, 27, 30, 31, 45], "nabla": [2, 12, 23, 30, 31], "cdot": [2, 12, 30, 31], "bf": [2, 6], "f": [2, 6, 12, 21, 30, 31, 36, 45], "rightarrow": [2, 45], "phi_": [2, 23], "j": [2, 6, 12, 13, 21, 23, 26, 36, 40], "delta": [2, 12, 23], "f_": [2, 12, 23], "_2": [2, 23], "x": [2, 6, 8, 12, 15, 21, 23, 30, 34, 36, 40, 42, 45], "y": [2, 6, 8, 12, 21, 23, 34, 36, 40, 42, 45], "dimension": [2, 7, 8, 19, 20, 21, 23, 36, 42, 45], "standard": [2, 6, 8, 9, 10, 15, 21, 23, 27, 30, 36, 37, 40, 46], "methodolog": [2, 21], "solut": [2, 4, 12, 21, 30, 31], "ignor": [2, 6, 8, 15, 40], "suppli": [2, 30, 44], "area": [2, 12], "do": [2, 4, 6, 8, 9, 10, 12, 15, 17, 19, 21, 25, 26, 27, 30, 32, 34, 40, 43, 45], "lack": 2, "subcycl": [2, 3, 5, 29], "r": [2, 3, 4, 6, 25, 30, 34], "reduc": [2, 6, 18, 21, 27, 43], "compar": [2, 17, 36], "accumul": 2, "ultim": [2, 6], "net": [2, 15], "simplest": [2, 15], "adjac": [2, 12], "updat": [2, 4, 6, 12, 21, 23, 25, 30, 34, 47], "mismatch": [2, 6], "done": [2, 6, 12, 15, 21, 30, 34, 36, 42, 45, 47], "simpli": [2, 6, 8, 21, 23, 30, 40, 42, 44, 45, 47], "reflux": [2, 30], "float": [2, 6, 8, 10, 15, 17, 21, 27, 34, 40], "increment": [2, 21, 23], "amrex_fluxreg_f": 2, "amrex_fluxreg_xd": 2, "deal": [2, 13, 33], "multi": [2, 6, 12, 13, 20, 21, 27, 31, 33, 35, 40], "framework": [2, 6, 29, 42, 43, 45, 47], "descript": [2, 8, 15, 21, 30, 34, 36], "chapter": [2, 3, 4, 5, 6, 7, 9, 12, 13, 16, 19, 20, 21, 22, 23, 24, 27, 28, 30, 31, 34, 35, 40], "amrex_amrparticl": 2, "amrparticlecontain": [2, 34], "amrtracerparticlecontain": [2, 34], "particlecontain": [2, 11, 15, 21, 27, 35], "amrex_particl": [2, 8, 34], "tracerparticlecontain": 2, "amrex_tracerparticl": 2, "amrex_amrpargdb": 2, "pargdbbas": 2, "amrex_pargdb": 2, "seek": [2, 25], "solv": [2, 5, 12, 21, 23, 29, 31, 41, 42], "adapt": [2, 3, 29, 35, 47], "u": [2, 6, 12, 30, 45], "free": [2, 6, 8, 12, 21, 30, 40], "flow": [2, 12, 35], "incompress": [2, 5], "scalar": [2, 3, 4, 6, 30, 31, 45], "_": 2, "v": [2, 6, 12, 23, 30, 36], "comput": [2, 4, 5, 6, 8, 10, 12, 13, 16, 18, 21, 22, 30, 32, 33, 34, 36, 40, 44, 45], "godunov": 2, "scheme": [2, 21, 44, 45], "approach": [2, 6, 8, 9, 12, 13, 17, 18, 19, 21, 26, 32, 33, 34, 35, 45], "finer": [2, 4, 6, 34], "smaller": [2, 40], "than": [2, 4, 5, 6, 10, 11, 12, 19, 21, 25, 26, 27, 30, 33, 34, 40, 45], "later": [2, 6, 12, 21, 30, 31, 34, 36, 43, 44, 45], "procedur": [2, 6, 12, 19, 45], "recurs": 2, "le": 2, "ell_": 2, "rm": 2, "taken": [2, 6, 15, 34, 36, 40, 42], "obtain": [2, 6, 15, 21, 23, 43, 47], "schemat": 2, "depict": [2, 3, 45], "graphic": 2, "figur": [2, 15, 30, 34, 42, 45], "fabset": [2, 27], "sign": [2, 6, 30], "depend": [2, 6, 8, 19, 21, 27, 29, 34, 40, 45], "whether": [2, 4, 6, 8, 12, 19, 21, 27, 30, 34, 36, 40, 42, 45], "regist": [2, 3, 6, 15, 18, 21], "extent": 2, "maintain": [2, 6, 21, 25], "happen": [2, 6, 8, 25, 34], "sum": [2, 6, 12, 21], "idea": [2, 6, 25, 27], "behind": [2, 6], "correct": [2, 6, 8, 17, 30, 34, 40, 42], "composit": [2, 30, 31], "overwrit": [2, 27], "cover": [2, 6, 12, 13, 15, 19, 30, 33, 34, 40], "agre": 2, "loss": [2, 12], "remedi": 2, "amradvection_amrcor": 2, "librari": [2, 5, 8, 9, 10, 15, 19, 21, 27, 31, 40, 42, 43, 45], "assort": 2, "handl": [2, 6, 8, 10, 21, 23, 30, 35], "notabl": [2, 4, 5], "subdirectori": [2, 4, 8, 27, 34], "src_2d": 2, "src_3d": 2, "dimens": [2, 3, 6, 8, 19, 23, 40, 42], "src_nd": 2, "exec": [2, 3, 4, 23, 36, 45], "makefil": [2, 8, 21], "besid": [2, 6, 8, 27, 40, 45, 47], "problem": [2, 4, 6, 8, 10, 13, 17, 27, 30, 34, 41, 45, 47], "pseudo": 2, "program": [2, 4, 6, 15, 18, 19, 20, 21, 23, 36, 38], "pseudocod": [2, 4], "amr_core_adv": 2, "initdata": [2, 4], "initfromscratch": 2, "makenewgrid": 2, "makebasegrid": 2, "phi_old": [2, 27], "phi_new": [2, 19, 27], "t_new": [2, 27], "construct": [2, 6, 12, 13, 21, 23, 30, 40, 45], "criteria": [2, 26, 34], "while": [2, 6, 7, 8, 9, 15, 17, 19, 21, 22, 27, 30, 34, 40, 45], "loop": [2, 4, 6, 19, 20, 34, 37, 45], "computedt": 2, "timestep": [2, 4, 44, 45], "check": [2, 6, 8, 10, 22, 23, 27, 40, 42], "copi": [2, 4, 6, 11, 17, 19, 21, 27, 30, 34, 36, 43, 45], "averagedown": 2, "definit": [2, 6, 8, 21, 30], "subroutin": [2, 4, 6, 19, 21, 34], "src_xd": 2, "adv_xd": 2, "f90": [2, 4, 6, 8, 17, 19, 42], "state": [2, 4, 6, 10, 23, 34, 40, 44], "decrement": 2, "alreadi": [2, 6, 8, 17, 21, 27, 32, 34], "scale": [2, 12, 18, 30, 40, 44, 45], "dt": [2, 4, 6, 21, 27, 40, 44], "phi_t": 2, "div": [2, 30], "mind": [2, 21], "convent": [2, 6, 19, 27, 34], "perspect": [2, 45], "flux_reg": [2, 27], "do_reflux": [2, 27], "bl_spacedim": [2, 4, 34], "crseinit": 2, "ncomp": [2, 6, 17, 19, 21, 27], "fineadd": 2, "averagedownto": 2, "belong": [2, 4, 6, 42], "instanc": [2, 15, 17, 23, 45], "regrid_int": [2, 40], "particular": [2, 8, 9, 34, 44, 45], "iter": [2, 6, 19, 21, 30, 35, 37, 40, 45], "don": [2, 6, 21, 26, 34, 45], "istep": [2, 27], "could": [2, 6, 8, 10, 12, 17, 21, 23, 27, 34, 40, 45], "newli": [2, 4, 12], "index": [2, 4, 12, 19, 21, 34], "old_finest": 2, "k": [2, 6, 12, 13, 21, 26, 36, 40, 42], "maxrefratio": 2, "central": [2, 23], "concept": [2, 6, 23], "state_error": 2, "tagging_nd": 2, "tile": [2, 7, 19, 21, 33, 34], "static": [2, 6, 12, 21, 34], "phierr": 2, "read": [2, 6, 7, 8, 15, 20, 21, 27, 34, 36, 37, 40, 44, 45], "threshold": [2, 21, 26, 40], "greater": [2, 6, 26, 30, 40, 43, 45], "elabor": [2, 8, 45], "logic": [2, 6, 17, 19, 33, 34], "express": [2, 40], "gradient": [2, 12, 30, 36], "parmpars": [2, 7, 12, 17, 19, 21, 23, 27, 30, 40], "pp": [2, 6, 19], "adv": [2, 4], "countval": 2, "getarr": [2, 6], "clearval": [2, 19], "clear": [2, 15, 27, 34], "tagval": [2, 19], "dx": [2, 6, 30, 34], "cellsiz": 2, "prob_lo": [2, 6, 40], "problo": [2, 6], "ifdef": [2, 6, 21], "amrex_use_omp": [2, 6, 21], "pragma": [2, 6], "omp": [2, 6, 8, 15, 21, 23], "endif": [2, 6, 8, 21], "itag": 2, "mfiter": [2, 7, 12, 19, 20, 21, 33, 34, 37], "mfi": [2, 6, 12, 19, 21, 34], "isvalid": [2, 6, 21, 34], "tilebox": [2, 6, 12, 19, 21], "tagfab": 2, "pass": [2, 6, 8, 12, 17, 19, 21, 23, 27, 30, 32, 35, 40, 45], "basefab": [2, 7, 12, 40], "char": [2, 6, 23, 27], "go": [2, 6, 8, 21, 23, 27], "get": [2, 4, 6, 10, 12, 17, 20, 21, 27, 34, 45, 47], "untag": 2, "everywher": 2, "get_itag": 2, "pointer": [2, 6, 12, 17, 19, 21, 34], "tptr": 2, "dataptr": [2, 6, 19, 21, 27, 34], "tlo": 2, "lovect": [2, 6, 34], "hivect": [2, 6, 34], "amrex_arlim_3d": 2, "bl_to_fortran_3d": 2, "amrex_zfil": 2, "tags_and_untag": 2, "tag_lo": 2, "tag_hi": 2, "state_lo": 2, "state_hi": 2, "lo": [2, 6, 12, 19, 21], "hi": [2, 6, 12, 19, 21], "bind": [2, 6, 19, 34], "name": [2, 6, 8, 10, 15, 21, 23, 27, 34, 36, 40, 44, 45], "implicit": [2, 6, 10, 17, 19, 21, 30, 40, 44], "doubl": [2, 6, 8, 19, 27, 34, 40, 45], "precis": [2, 6, 8, 19, 27, 34, 36], "ge": 2, "enddo": 2, "coarsefillpatch": 2, "sborder": 2, "s_new": 2, "num_grow": 2, "sever": [2, 6, 8, 10, 15, 17, 19, 21, 23, 27, 34, 45, 46], "give": [3, 5, 6, 8, 10, 12, 13, 15, 21, 30, 31, 35, 45], "overview": [3, 8, 13, 15, 22, 31, 35], "grid": [3, 4, 5, 7, 13, 19, 21, 27, 29, 30, 32, 34, 36, 40, 42, 45, 47], "layout": [3, 6], "map": [3, 6, 15, 27, 32, 33], "restrict": [3, 13, 21, 30, 42], "support": [3, 6, 9, 10, 12, 13, 15, 17, 19, 22, 23, 25, 27, 29, 30, 31, 32, 33, 34, 40, 44, 45, 46], "amr": [3, 7, 8, 12, 17, 20, 23, 26, 27, 29, 30, 31, 32, 34, 36, 44, 45, 46, 47], "anoth": [3, 6, 15, 19, 21, 25, 26, 27, 45], "class": [3, 5, 7, 8, 12, 13, 17, 19, 20, 22, 27, 31, 34, 35, 38], "fulli": [3, 9, 42], "our": [3, 4, 5, 6, 8, 9, 10, 17, 23, 34, 35, 44, 45], "present": [3, 6, 7, 8, 12, 13, 21, 22, 36, 42, 45], "tutori": [3, 4, 5, 7, 8, 13, 15, 19, 21, 22, 24, 25, 27, 30, 31, 34, 41, 47], "advect": [3, 4, 5, 17, 27], "equat": [3, 5, 12, 24, 30, 31, 41, 42, 45], "passiv": [3, 4], "accompani": 3, "advection_amrcor": [3, 5], "singlevortex": [3, 4, 45], "veloc": [3, 4, 12, 30, 31, 34], "field": [3, 4, 6, 12, 30, 31, 34], "gaussian": [3, 45], "profil": [3, 8, 10, 17, 22, 23, 36, 47], "displac": 3, "origin": [3, 6, 10, 12, 19, 30, 40, 43], "configur": [3, 8, 23, 27, 30, 42, 43, 44], "design": [4, 6, 21, 23, 29, 34, 44, 46], "establish": [4, 21], "hierarchi": [4, 5, 6, 17, 18, 27, 30, 34, 35, 45], "matur": [4, 5], "One": [4, 6, 8, 10, 12, 15, 21, 23, 30, 34, 40, 44, 45], "import": [4, 6, 9, 15, 19, 21, 30, 34, 40, 45], "thing": [4, 12, 34, 43, 45], "computeinitialdt": 4, "computenewdt": 4, "post_timestep": 4, "post_regrid": 4, "regrid": [4, 33], "post_init": 4, "init": 4, "did": 4, "previous": [4, 6, 10, 45], "hold": [4, 6, 12, 17, 21, 27, 30, 45], "pair": [4, 6], "old": [4, 21, 27, 34, 44], "know": [4, 6, 10, 17, 44], "intermedi": [4, 6, 21], "care": [4, 6, 21], "fluid": [4, 12, 35, 45], "made": [4, 8, 21, 25], "kei": [4, 6, 23, 29], "enum": [4, 34], "amrleveladv": 4, "statetyp": 4, "phi_typ": 4, "num_state_typ": 4, "variablesetup": 4, "tell": [4, 8, 10, 12, 30, 36], "nodal": [4, 5, 12, 19, 27, 29, 30, 31], "carri": [4, 12, 34], "compon": [4, 6, 10, 12, 19, 21, 27, 31, 35, 36, 44, 45], "collect": [4, 6, 10, 15, 18, 19, 34, 36, 43], "attribut": [4, 5, 34, 45], "levelbldadv": [4, 5], "variablecleanup": 4, "bl_assert": 4, "desc_lst": 4, "phys_bc": 4, "read_param": 4, "adddescriptor": 4, "indextyp": [4, 7], "thecelltyp": 4, "statedescriptor": 4, "num_stat": 4, "cell_cons_interp": 4, "lo_bc": 4, "hi_bc": 4, "bctype": [4, 6], "int_dir": [4, 6], "bcrec": [4, 6], "bc": [4, 6, 30, 44], "bndryfunc": 4, "nullfil": 4, "setrunongpu": 4, "promis": 4, "launch": [4, 6, 10, 15, 19, 22, 27], "kernel": [4, 7, 10, 19, 20, 22, 40, 45], "setcompon": 4, "repres": [4, 6, 12, 19, 21, 31, 34, 45], "interv": [4, 40, 44], "interlevel": [4, 5], "amrex_interpol": 4, "variou": [4, 6, 8, 10, 12, 19, 27, 30, 40, 45], "bc_nullfil": 4, "sourc": [4, 6, 7, 8, 10, 15, 17, 19, 20, 21, 23, 27, 34, 42, 43, 45, 47], "src_k": 4, "uniformveloc": 4, "prob": 4, "face_velocity_2d_k": 4, "face_velocity_3d_k": 4, "d": [4, 6, 8, 12, 21, 25, 29, 30, 36, 42, 45], "coarsetimestep": 4, "amr_level": 4, "postcoarsetimestep": 4, "use_particl": 4, "realclean": [4, 8], "do_trac": 4, "tracer": [4, 35], "py_util": [4, 34], "amrex_particles_to_vtp": [4, 34], "python": [4, 6, 9, 24, 34, 43, 45, 47], "amrex_binary_particles_to_vtp": 4, "py": [4, 43, 45], "plt00000": [4, 23, 34, 40, 45], "vtp": 4, "paraview": [4, 23, 27, 29, 34, 46], "amrlevel": [5, 8, 17, 20, 27], "levelbld": 5, "amrcor": [5, 6, 17, 19, 27, 34, 47], "public": [5, 8, 12, 21, 25], "inherit": [5, 6, 30], "directli": [5, 6, 12, 15, 21, 34, 40], "castro": [5, 43], "compress": [5, 8, 12, 31, 45], "astrophys": 5, "astro": 5, "github": [5, 17, 23, 25, 30, 34, 43, 45, 47], "repositori": [5, 25, 43, 45, 47], "nyx": [5, 34, 45], "cosmolog": [5, 45], "navier": [5, 12, 30, 31], "stoke": [5, 12, 30, 31], "iamr": [5, 45], "navierstokesbas": 5, "navierstok": 5, "low": [5, 6, 30, 45], "mach": 5, "combust": 5, "pelelm": 5, "advection_amrlevel": [5, 45], "except": [5, 6, 8, 10, 15, 20, 21, 25, 27, 30, 32, 40], "stencil": [5, 6, 23, 31], "mention": [6, 17, 21, 27, 30], "compil": [6, 9, 10, 15, 17, 19, 21, 22, 23, 24, 27, 30, 34, 39, 40, 44], "amrex_spacedim": [6, 8, 12, 19, 21, 30, 31, 40], "spacedim": 6, "either": [6, 8, 19, 21, 25, 26, 30, 31, 34, 40, 45], "preprocess": [6, 8, 19, 21], "amrex_fort_modul": [6, 21, 34], "coordin": [6, 12, 19, 21, 26, 31, 36, 40], "direct": [6, 12, 19, 26, 30, 31, 34, 36, 40, 42], "amrex_vector": 6, "bound": [6, 8, 19, 21, 26, 45], "amrex_arrai": 6, "alia": [6, 8, 19, 21, 45], "trivial": [6, 21, 23], "host": [6, 8, 15, 17, 21, 40, 45], "devic": [6, 8, 17, 21, 30, 40], "ad": [6, 8, 15, 21, 27, 35, 39, 40], "minim": [6, 9, 21, 34], "11": [6, 12, 13, 15, 17, 21, 22, 36, 40, 45], "safe": [6, 12, 17, 22, 27], "fix": [6, 21, 23, 30, 40, 47], "templat": [6, 8, 12, 17, 21, 34, 40], "typedef": 6, "amrex_r": [6, 19, 21], "access": [6, 8, 10, 12, 13, 15, 19, 21, 23, 34, 45], "liter": 6, "_rt": 6, "constant": [6, 21, 30, 31], "7_rt": 6, "64": [6, 21, 27, 34, 36, 40], "bit": [6, 10, 12], "unix": [6, 9, 10], "window": [6, 9, 36, 40, 45], "amrex_long": 6, "commun": [6, 11, 15, 17, 18, 19, 21, 23, 34, 35, 46], "abstract": [6, 17, 30], "namespac": [6, 7, 19, 22, 23], "amrex_paralleldescriptor": 6, "myproc": [6, 34], "nproc": [6, 26, 27], "ioprocessor": [6, 27], "o": [6, 8, 10, 15, 21, 27, 29, 47], "ioproc": 6, "ioprocessornumb": 6, "broadcast": [6, 27], "100": [6, 15, 34, 36, 45], "bcast": 6, "reducerealsum": 6, "addition": [6, 9, 12, 34, 40, 45], "amrex_paralleldescriptor_modul": 6, "amrex_paralleldescriptor_f": 6, "subcommun": 6, "simultan": [6, 15, 21, 27, 31], "calcul": [6, 12, 21, 23, 27, 31, 33, 34, 35, 37, 44, 45], "amrex_parallelcontext": 6, "mpi_comm": 6, "handler": [6, 40], "push": [6, 10, 12, 45], "remov": [6, 8, 21, 25, 34], "pop": [6, 10, 45], "split": [6, 18, 21, 34], "fit": [6, 34], "local": [6, 8, 12, 15, 17, 21, 27, 34, 39], "recent": [6, 21, 43], "common": [6, 8, 15, 17, 21, 33, 34, 43, 45], "subcomma": 6, "subcommb": 6, "becom": [6, 12, 13, 19, 26], "globalcomm": 6, "communicatoral": 6, "localcomm": 6, "communicatorsub": 6, "io": [6, 8, 9, 15, 23, 28, 35, 43], "localrank": 6, "nprocssub": 6, "globalio": 6, "ioprocessornumberal": 6, "ioprocessorsub": 6, "translat": [6, 12, 15, 45], "mpi_undefin": 6, "global_to_local_rank": 6, "globalrank": 6, "id": [6, 10, 34], "local_arrai": 6, "global_arrai": 6, "local_to_global_rank": 6, "last": [6, 8, 10, 21, 23, 27, 40, 45], "amrex_print": [6, 23], "output": [6, 10, 15, 17, 21, 28, 30, 34, 36, 40, 43, 45], "ostream": 6, "them": [6, 8, 13, 19, 21, 23, 27, 30, 32, 33, 34, 35, 40, 45], "cout": 6, "thread": [6, 8, 17, 21, 23, 27, 33, 34, 40], "mix": [6, 8, 17], "pi": [6, 42, 45], "atan": 6, "17": [6, 8, 9, 15, 23, 27, 34, 36, 45], "digit": [6, 27, 40], "setprecis": 6, "decim": 6, "oldprec": 6, "allprint": [6, 17], "everi": [6, 10, 12, 15, 18, 23, 26, 30, 34, 40, 43], "ofstream": [6, 27], "ofs": 6, "my": [6, 8, 17], "txt": [6, 8, 21, 47], "endl": [6, 30], "close": [6, 25, 26], "allprinttofil": 6, "append": [6, 8], "emphas": [6, 19, 27, 30], "mistak": 6, "forget": 6, "amrex_parmpars": [6, 19], "storag": 6, "retriev": [6, 21], "charact": [6, 19], "start": [6, 8, 12, 15, 18, 20, 21, 23, 27, 30, 34, 43, 45, 47], "content": [6, 15, 36, 40], "rest": [6, 12, 20, 21, 30], "those": [6, 8, 19, 21, 27, 30, 33, 34, 45], "signal": [6, 8, 10, 27, 40], "seri": [6, 45], "form": [6, 12, 25, 30, 31, 34, 36, 45], "prefix": [6, 8, 30, 40], "text": [6, 27, 30, 34, 45], "comment": [6, 25], "nstep": 6, "second": [6, 9, 12, 21, 23, 25, 26, 30, 34], "03": [6, 36, 45], "ncell": 6, "xrang": 6, "titl": [6, 27], "kingdom": 6, "hydro": [6, 13, 15, 17, 30], "cfl": 6, "queri": [6, 15, 19, 30, 45], "error": [6, 8, 10, 12, 15, 17, 22, 23, 27, 30, 36], "numcel": 6, "xr": 6, "queryarr": 6, "find": [6, 8, 10, 15, 21, 34, 36, 42, 44], "pph": 6, "wherea": [6, 8, 17, 20, 27, 30, 40], "24": [6, 15, 40], "08": [6, 40, 45], "whitespac": [6, 36], "okai": 6, "99": [6, 15], "continu": [6, 8, 18, 21, 27, 30, 34, 39, 40], "withpars": 6, "w": [6, 30], "my_const": 6, "alpha": [6, 12, 30, 31], "foo": [6, 8, 10, 34], "sin": 6, "bar": [6, 34], "sqrt": [6, 34], "co": [6, 30], "prob_hi": [6, 40], "setparserprefix": 6, "physical_const": 6, "299792458": 6, "14159265358979323846": 6, "f0": 6, "querywithpars": 6, "querypars": 6, "getwithpars": 6, "empti": [6, 21, 27, 34, 40], "signific": [6, 13], "explicitli": [6, 8, 17, 19, 21, 30], "accept": 6, "parser_prefix": 6, "try": [6, 8, 12, 21, 27, 30, 32, 34], "exact": [6, 27, 30], "attempt": [6, 21, 26, 40], "again": [6, 12, 15, 21, 30], "parserprefix": 6, "evalu": [6, 8, 30], "referenc": [6, 21], "occurr": 6, "ones": [6, 27, 30, 34], "behavior": [6, 8, 10, 15, 21, 25, 26, 30, 34, 40], "demonstr": [6, 19, 21, 23, 34, 41, 47], "09": [6, 40], "amrex_enum": 6, "mycolor": 6, "red": [6, 21], "green": [6, 21, 34, 45], "blue": [6, 21, 30, 34], "color": [6, 42, 45], "getenum": 6, "getenumnamestr": 6, "class_nam": 6, "getenumclassnam": 6, "color1": 6, "color2": 6, "enumer": [6, 32, 43], "c1": [6, 36], "c2": [6, 36], "query_enum_case_insensit": 6, "default_color": 6, "color3": 6, "conveni": [6, 15, 21, 30, 34, 45], "myexecut": 6, "myinputsfil": 6, "9": [6, 15, 21, 30, 34, 36, 45], "highlight": [6, 45], "subtl": [6, 21, 45], "add_par": 6, "eb2": [6, 17, 40], "variable_on": 6, "overridden": [6, 40], "variable_two": 6, "declar": [6, 19, 30], "prevent": [6, 8, 10, 17, 21, 27], "statement": [6, 10, 21, 23], "mpi_comm_world": 6, "desir": [6, 8, 15, 34, 45], "cooper": [6, 18], "packag": [6, 8, 19, 23, 44, 45, 46], "main2d": [6, 23, 45], "ex": [6, 8, 10, 15, 21, 23, 34, 36, 44, 45], "fpe_trap_invalid": [6, 10, 15, 40], "tao_monitor": 6, "dash": 6, "briefli": [6, 17, 30], "introduc": [6, 21, 23, 27], "purpos": [6, 23, 26], "get_command": 6, "get_argument_count": 6, "get_command_argu": 6, "th": [6, 12], "amrex_pars": 6, "mathemat": 6, "power": [6, 26], "exp": 6, "log": [6, 10, 40], "log10": [6, 40], "tan": 6, "asin": 6, "aco": 6, "atan2": 6, "sinh": 6, "cosh": 6, "tanh": 6, "asinh": 6, "acosh": 6, "atanh": 6, "ab": [6, 17, 21], "floor": 6, "ceil": 6, "fmod": 6, "erf": 6, "heavisid": 6, "x1": 6, "x2": 6, "bessel": 6, "kind": [6, 19, 27, 34], "order": [6, 8, 10, 12, 15, 20, 21, 27, 30, 32, 34, 40, 42, 45], "jn": 6, "ellipt": [6, 29], "comp_ellint_1": 6, "comp_ellint_2": 6, "gcc": [6, 9, 15, 21, 24, 30, 45], "boolean": [6, 8, 21, 26, 40], "combin": [6, 8, 11, 21, 33, 34, 45], "preced": [6, 23, 34, 40, 45], "languag": [6, 8, 20, 21, 22], "z": [6, 12, 21, 30, 32, 34, 36, 40, 42, 45], "setconst": 6, "registervari": 6, "auto": [6, 12, 17, 21, 34, 40, 44], "aliv": 6, "dy": [6, 34], "dz": [6, 34], "r2": [6, 34], "assign": [6, 8, 18, 19, 21, 27, 32, 33, 34], "termin": [6, 30, 40, 45], "avoid": [6, 8, 17, 21, 30, 34, 40, 45], "conflict": 6, "ipars": 6, "lot": [6, 17, 40], "whose": 6, "truncat": 6, "toward": 6, "neg": [6, 8, 12, 23, 25, 40], "infin": 6, "quot": 6, "posit": [6, 8, 12, 21, 34, 40, 45], "expon": 6, "234e3": 6, "234e2": 6, "releas": [6, 8, 13, 17, 21, 22, 23, 40, 47], "resourc": [6, 9, 15, 17, 21, 27, 45], "a_osout": 6, "a_oserr": 6, "cerr": 6, "errorhandl": 6, "a_errhandl": 6, "nullptr": [6, 30], "build_parm_pars": 6, "func_parm_pars": 6, "duplic": 6, "outstream": 6, "errorstream": 6, "best": [6, 21, 30, 44, 45], "scope": [6, 10, 15, 21], "curli": [6, 17], "brace": [6, 17], "sure": [6, 15, 23, 34, 43], "freed": [6, 21], "structur": [6, 13, 21, 23, 25, 27, 29, 34, 35, 42, 45, 46, 47], "rectangular": [6, 12, 13, 33], "decompos": [6, 33, 42], "union": [6, 12, 19, 33], "fig": [6, 12, 13, 21, 30, 34, 45], "black": 6, "bold": 6, "resolut": [6, 30, 45], "parent": [6, 18, 19, 21, 34, 45], "child": [6, 18, 19], "connect": [6, 12, 19], "focu": [6, 13, 15, 45], "amrex_box": [6, 19], "lower": [6, 19, 26, 27, 30, 40, 44], "upper": [6, 19, 26, 40], "corner": [6, 19, 26, 40], "intvec": 6, "iv": 6, "amrex_d_decl": 6, "expand": [6, 8, 21, 43, 45], "intern": [6, 21, 30, 34, 40, 43], "getvect": 6, "idim": 6, "p": [6, 10, 12, 15, 21, 34, 36, 45], "thezerovector": [6, 10], "theunitvector": 6, "unit": [6, 12, 21], "thedimensionvector": 6, "dir": [6, 15, 21, 27, 30, 43, 45], "relat": [6, 21, 42], "lexicograph": 6, "shift_hash": 6, "hash": [6, 23, 27], "unordered_map": 6, "arithmet": 6, "iv2": 6, "46": 6, "coarsen": [6, 12, 26, 30, 40], "round": [6, 21, 32], "divis": [6, 10, 26], "what": [6, 8, 10, 15, 17, 21, 30, 45], "usual": [6, 7, 12, 19, 21, 23, 25, 30, 45], "thu": [6, 8, 12, 13, 15, 21, 34], "127": 6, "coarsening_ratio": 6, "wise": 6, "iv3": 6, "overload": [6, 34], "node": [6, 8, 15, 30, 31, 44, 45], "numer": [6, 13, 30, 45], "xface": 6, "cellcent": 6, "nodecent": 6, "notion": 6, "typic": [6, 12, 15, 17, 18, 21, 26, 27, 32, 45], "typ": 6, "cc": [6, 8, 15, 17, 45], "By": [6, 19, 21, 27, 30, 34, 36, 40, 45], "nd": 6, "simplic": [6, 12, 21], "tupl": 6, "denot": 6, "side": [6, 12, 26, 30, 31, 34, 42, 44, 45], "That": 6, "convert": [6, 19, 27, 34, 40, 45], "b0": 6, "b1": 6, "surroundingnod": [6, 30], "b2": 6, "enclosedcel": 6, "ye": [6, 8, 10, 15, 17, 21], "ident": [6, 12, 15, 21, 26, 30], "b3": 6, "exercis": 6, "smallend": 6, "small": [6, 8, 10, 13, 30, 34, 40, 42, 45, 47], "bigend": 6, "big": [6, 12, 40], "shown": [6, 8, 15, 19, 21, 23, 34, 42, 44, 45], "ccbx": 6, "31": [6, 15], "63": 6, "ndbx": 6, "facebx": 6, "uncoarsen": 6, "30": [6, 15, 23, 45], "context": [6, 12], "strictly_contain": 6, "intersect": [6, 12], "unchang": [6, 21], "plain": [6, 21, 34], "struct": [6, 21, 40], "d3": 6, "alwai": [6, 10, 12, 21, 30, 34, 43, 47], "1d": [6, 8, 21, 27, 30, 40, 42], "extra": [6, 8, 15, 30, 34, 40], "agnost": [6, 10], "bx": [6, 12, 19, 21], "lbound": [6, 19, 21], "ubound": [6, 19, 21], "length": [6, 12, 26, 40], "amrex_geometri": [6, 19], "explicit": [6, 12, 17, 44], "dom": 6, "rb": 6, "coord": 6, "is_per": 6, "noexcept": [6, 21, 30], "prob_ext": [6, 40], "cartesian": [6, 12, 30, 40], "cylindr": [6, 30, 40], "spheric": [6, 30, 40], "invalid": [6, 34], "coord_si": [6, 40], "is_period": [6, 40], "n_cell": [6, 19, 26, 40], "real_box": 6, "sai": [6, 8, 12, 27, 34, 45], "doubli": 6, "tripli": 6, "probloarrai": [6, 21], "yhi": 6, "probhi": 6, "cellsizearrai": [6, 21], "isperiod": 6, "Is": [6, 12, 17], "isallperiod": 6, "isanyperiod": 6, "amrex_boxarrai": [6, 19], "maxsiz": [6, 19], "maxbox": 6, "m_ref": 6, "m_hash_sig": 6, "though": 6, "decomposit": [6, 45], "divid": [6, 10, 18, 26], "cellba": 6, "faceba": 6, "nodeba": 6, "subscript": [6, 12], "might": [6, 8, 10, 17, 19, 21, 30, 40], "meaningless": 6, "NOT": [6, 21], "doesn": [6, 21, 34], "t": [6, 12, 21, 23, 26, 27, 30, 34, 45], "refinement_ratio": 6, "deep": 6, "undesir": [6, 21, 27], "expens": [6, 21, 45], "wast": [6, 40], "shared_ptr": 6, "quit": [6, 34, 45], "cheap": 6, "convers": [6, 8, 21, 34, 42], "variant": [6, 30], "discuss": [6, 9, 12, 13, 17, 19, 21, 23, 25, 28, 30, 40, 45, 47], "awar": [6, 8, 15, 21, 22, 26, 27, 34, 40], "cost": [6, 11, 27, 30, 34], "conceptu": [6, 13], "think": 6, "ba2": 6, "unmodifi": 6, "faster": [6, 21], "naiv": [6, 12, 34], "amrex_distributionmap": 6, "live": [6, 12, 21, 30, 34], "element": [6, 21, 27, 40, 45], "another_dm": 6, "rel": [6, 10, 13, 15, 17, 30, 36, 40], "curv": [6, 32], "determin": [6, 12, 21, 30, 34, 42, 45], "strategi": [6, 10, 11, 17, 22, 30, 33, 40], "knapsack": [6, 32, 40], "choic": [6, 30, 43], "load": [6, 11, 15, 17, 26, 27, 34, 45, 47], "balanc": [6, 11, 26, 34, 47], "pmap": 6, "although": [6, 8, 23, 24, 34, 45], "irregular": [6, 13], "regular": [6, 12, 13, 25, 30, 34, 40, 45], "plu": [6, 12], "column": [6, 36, 45], "major": [6, 25, 43, 44, 45], "mathrm": [6, 12], "occupi": 6, "numcomp": [6, 21], "fab": [6, 8, 10, 12, 17, 21, 30, 32, 34, 40, 45], "amrex_farraybox": 6, "amrex_iarraybox": 6, "nth": 6, "setval": [6, 19, 21, 34], "nstart": 6, "srcbox": 6, "srccomp": 6, "destbox": 6, "destcomp": 6, "destin": 6, "invok": [6, 8, 18, 30, 43, 45], "shape": [6, 12, 13, 17], "comp": [6, 8, 21, 34, 45], "subbox": 6, "fab1": 6, "fab2": 6, "mult": 6, "multipli": 6, "saxpi": 6, "runon": 6, "backward": [6, 34], "compat": [6, 16, 27, 34], "manner": [6, 21, 25, 30, 34], "afab": 6, "bfab": 6, "ifab": 6, "const_arrai": [6, 21], "m": [6, 17, 21, 26, 34, 45], "nc": [6, 12], "els": [6, 8, 12, 21, 30, 45], "fourth": [6, 19, 21], "neither": [6, 8], "nor": [6, 8], "ifab2": 6, "sens": [6, 20, 21, 34], "recal": [6, 30], "far": [6, 8], "ccfab": 6, "ndfab": 6, "degrad": [6, 17, 27, 34, 40], "move": [6, 19, 21, 25, 34, 40, 45], "orig_fab": 6, "alias_fab": 6, "make_alia": 6, "slice": [6, 36, 45], "dangl": 6, "life": [6, 21], "amrex_fabarrai": 6, "intend": [6, 21], "embed": [6, 8, 29, 31, 47], "uniform": [6, 12, 13, 45], "remot": [6, 45], "involv": [6, 27, 34], "suppos": [6, 8], "Then": [6, 8, 12, 15, 19, 21, 27, 45], "amrex_imultifab": 6, "commonli": [6, 15, 16, 30, 43], "amrex_multifab": [6, 19], "mf": [6, 10, 12, 19, 21, 27, 40, 45], "es": [6, 21], "grown": [6, 34], "orig_mf": 6, "start_comp": 6, "num_comp": 6, "alias_mf": 6, "achiev": [6, 15, 19, 21, 26, 34], "mf0": 6, "mf1": [6, 19], "mf2": [6, 19], "mf3": 6, "repeatedli": 6, "let": [6, 23, 30, 43, 44], "finit": [6, 13], "xflux": 6, "yflux": 6, "zflux": 6, "dmin": 6, "dmax": 6, "mfdst": 6, "mfsrc": [6, 19], "sc": [6, 25, 45], "dc": 6, "ng": [6, 10, 34, 42], "reader": [6, 27, 30, 34, 45], "larger": [6, 19, 21, 27, 30], "omit": [6, 8, 10], "notic": [6, 45, 47], "unspecifi": [6, 40], "ought": 6, "roundoff": 6, "compsrc": 6, "compdst": 6, "ngsrc": 6, "ngdst": 6, "op": [6, 21], "potenti": [6, 40], "improv": [6, 15, 21, 34], "overal": [6, 15, 21, 34, 35, 40], "_nowait": 6, "_finish": 6, "mfa": 6, "parallelcopy_nowait": 6, "calc": 6, "mfb": 6, "fillboundary_nowait": 6, "signatur": 6, "nowait": 6, "finish": [6, 10, 21, 23, 43], "choos": [6, 8, 15, 17, 21, 30, 34, 40, 44, 45], "race": [6, 10, 21], "ungrown": 6, "validbox": [6, 21, 34], "f1": [6, 21], "whole": [6, 20], "someth": [6, 30, 45], "necessarili": [6, 30], "But": [6, 8, 10, 19], "f2": [6, 21], "nf": 6, "known": [6, 30, 43], "cach": [6, 15, 34], "transform": [6, 12, 17, 21, 42, 45], "techniqu": [6, 13, 21, 31], "kmin": 6, "kmax": 6, "jmin": 6, "jmax": 6, "imin": 6, "imax": 6, "0d0": 6, "And": [6, 19, 27], "manual": [6, 7, 15, 21, 30, 38, 44], "jblocksiz": 6, "kblocksiz": 6, "jblock": 6, "kblock": 6, "kb": 6, "jb": 6, "individu": [6, 21, 25, 27, 33, 40, 45], "labor": 6, "intens": 6, "prone": 6, "incorpor": [6, 13], "benefit": [6, 21, 45], "almost": [6, 15, 21], "minor": [6, 21], "littl": [6, 21], "broken": [6, 13, 34], "matter": [6, 23, 42], "calcoverbox": 6, "redo": 6, "No": [6, 12, 15, 27], "1024000": [6, 34, 40], "mfiter_tile_s": [6, 40], "symbol": [6, 21], "openmp": [6, 8, 17, 22, 23, 27, 29, 33, 34, 40, 45], "mfitinfo": 6, "further": [6, 15, 17, 18, 21, 23, 26, 38], "setdynam": 6, "enabletil": 6, "illustr": [6, 13, 21, 30, 34, 42], "fabbox": 6, "growntilebox": 6, "1000000": 6, "nodal_flag": 6, "normal": [6, 8, 12, 15, 25, 30, 40, 45], "extend": [6, 21, 40], "legal": 6, "bx2": 6, "bx3": 6, "overhead": [6, 18, 21, 27], "bug": [6, 10, 23, 47], "activ": [6, 21, 25, 45], "mfi1": 6, "mfi2": 6, "amrex_mfiter_build": [6, 19], "failur": [6, 10, 30], "old_flag": 6, "allowmultiplemfit": 6, "amrex_mfiter_allow_multipl": 6, "pattern": [6, 15, 21, 27, 34], "nativ": [6, 20, 21, 22, 27, 31, 40, 44], "header": [6, 7, 8, 15, 23, 27, 34, 45], "_f": [6, 12], "amrex_blfort": 6, "__cplusplu": 6, "extern": [6, 8, 9, 21, 27, 31, 42, 47], "keyword": [6, 8], "thank": 6, "2003": [6, 9, 19], "mangl": [6, 15], "bl_to_fortran_box": [6, 21], "bl_to_fortran_anyd": [6, 21], "preprocessor": [6, 8, 21], "ulo": 6, "uhi": 6, "intent": [6, 12, 19, 21], "inout": [6, 19, 21], "maxim": [6, 15, 21, 30], "degener": 6, "accord": [6, 25, 30, 40], "third": [6, 8, 21], "With": [6, 9, 11, 13, 19, 21, 34, 44], "bl_fortran_anyd": 6, "f2d": 6, "treat": [6, 21, 30], "bl_to_fortran": 6, "half": [6, 12, 25, 40], "ulo1": 6, "ulo2": 6, "uhi1": 6, "uhi2": 6, "f3d": 6, "ulo3": 6, "uhi3": 6, "bl_to_fortran_fab": 6, "nu": 6, "safeti": [6, 21], "issu": [6, 8, 15, 17, 21, 25, 27, 40, 47], "catch": [6, 10, 30], "detect": [6, 8, 43, 45], "typecheck": 6, "use_mpi": [6, 8, 23], "dim": [6, 8, 23, 43, 45], "my_f": 6, "main_f": 6, "vs": [6, 12, 30], "22": [6, 15, 45], "tmp_build_dir": [6, 8], "amrex_typecheck": 6, "ou": 6, "cexe_head": [6, 8], "pycpars": 6, "http": [6, 8, 9, 10, 15, 17, 21, 23, 30, 34, 42, 43, 45], "pypi": 6, "org": [6, 17, 42, 45], "instal": [6, 8, 9, 21, 23, 27, 30, 40, 45], "doc": [6, 10, 45, 47], "readm": [6, 8, 17, 42, 47], "despit": 6, "portabl": [6, 15, 21, 36, 45], "syntax": [6, 8, 21], "readabl": [6, 21, 34], "easi": [6, 45], "summar": [6, 8, 21, 34], "sfab": 6, "dfab": 6, "dst": [6, 17], "dfab2": 6, "amrex_pragma_simd": [6, 21], "accessor": [6, 21], "miss": [6, 15], "innermost": 6, "notifi": 6, "whenev": [6, 8, 21], "Be": [6, 21, 22, 27], "lead": [6, 21, 25, 27], "unsur": 6, "verifi": [6, 15, 17, 42, 43], "highest": 6, "concis": 6, "notinlaunchregion": [6, 21], "tilingifnotgpu": [6, 21], "mfc": 6, "amrex_gpu_devic": [6, 21], "lambda": [6, 15, 21, 44], "whatsoev": 6, "expos": 6, "4d": [6, 21], "border": 6, "themselv": 6, "subject": [6, 45], "fillpatchutil": 6, "interpolat": 6, "touch": [6, 34], "character": 6, "inflow": [6, 12, 30], "outflow": 6, "slip": 6, "dirichlet": [6, 12, 17, 30], "neumann": [6, 12, 30], "multidimension": 6, "amrex_bc_typ": 6, "setlo": 6, "sethi": 6, "foextrap": 6, "extrapol": [6, 30], "ext_dir": 6, "respons": [6, 19, 21, 25], "ext_dir_cc": 6, "hoextrap": 6, "hoextrapcc": 6, "reflect_even": 6, "q": [6, 10, 17, 21, 45], "reflect_odd": [6, 30], "user_1": 6, "user_2": 6, "user_3": 6, "callabl": 6, "myextbcfil": 6, "dest": 6, "dcomp": [6, 17], "geometrydata": [6, 21], "bcr": 6, "bcomp": 6, "orig_comp": 6, "consist": [6, 15, 18, 21, 27, 34, 41], "li": [6, 27], "oppos": [6, 25, 40, 45], "complex": [6, 10, 13, 17, 21, 23, 29, 31, 33, 45], "exclud": [6, 8, 12, 15], "gpubndryfuncfab": 6, "physbcfunct": 6, "physbcf": 6, "ngrowvector": 6, "relationship": [6, 42], "edg": [6, 29, 34], "lowest": [6, 30], "overridesync": 6, "ownermask": 6, "dot": [6, 30], "count": [6, 15], "mayb": [6, 44], "averagesync": 6, "overlapmask": 6, "invert": 6, "weightedsync": 6, "buildmask": 6, "nghost": [6, 19, 27, 30], "makefinemask": 6, "norm": [6, 21, 30], "coarse_valu": 6, "fine_valu": 6, "coarse_mf": 6, "fine_boxarrai": 6, "refine_ratio": 6, "norminf": 6, "arena": [6, 40], "mfinfo": [6, 30], "chunk": [6, 19, 21, 27, 40], "alloc_single_chunk": [6, 40], "setallocsinglechunk": 6, "singlechunkptr": 6, "null": [6, 40], "singlechunks": 6, "byte": [6, 17, 21, 40], "modul": [6, 12, 15, 17, 19, 21, 27, 45], "amrex_mempool_modul": 6, "altern": [6, 8, 10, 12, 21, 23, 32, 34], "pool": [6, 21], "amrex_alloc": 6, "amrex_dealloc": 6, "lo1": 6, "hi1": 6, "lo2": 6, "hi2": 6, "lo3": 6, "hi3": 6, "downsid": 6, "allocat": 6, "rid": 6, "wrong": 6, "stderr": 6, "amrex_abort": 6, "amrex_error_modul": 6, "len": [6, 45], "throw_handl": 6, "throw": [6, 27, 30, 40], "amrex_assert": [6, 8, 10], "amrex_always_assert": [6, 21], "_with_messag": 6, "amrex_assert_with_messag": 6, "segfault": [6, 10, 40], "signal_handl": [6, 10, 40], "clariti": [7, 36], "drop": [7, 15], "studi": 7, "comprehens": 7, "gpuarrai": 7, "array1d": 7, "array2d": 7, "array3d": 7, "long": [7, 15, 21, 30, 34, 40], "paralleldescriptor": [7, 19, 27, 34], "parallelcontext": 7, "dim3": [7, 21], "xdim3": 7, "realbox": [7, 12], "farraybox": [7, 10, 12, 19, 30, 34, 40, 45], "iarraybox": [7, 12], "array4": [7, 8, 12, 21], "imultifab": [7, 21, 30], "parallelfor": [7, 8, 10, 21], "mask": [7, 21, 30, 45], "memori": [7, 8, 10, 12, 15, 17, 19, 22, 27, 32, 34, 35, 42], "abort": [7, 21, 30, 40, 43], "assert": [7, 8, 10, 22], "backtrac": [7, 8, 10, 40], "rule": [8, 25, 42], "upon": [8, 15, 27], "success": [8, 21], "helloworld_c": [8, 21, 23], "amrex_hom": 8, "crai": [8, 15, 21, 27, 45], "ibm": [8, 15, 21], "intel": [8, 15, 21, 22], "llvm": 8, "classic": 8, "pgi": [8, 21], "cxxstd": 8, "20": [8, 12, 15, 21, 30, 42, 45], "use_assert": [8, 10, 21], "use_omp": [8, 23], "use_cuda": [8, 21], "use_hip": [8, 21], "use_sycl": [8, 21], "use_rpath": 8, "warn_al": 8, "amrex_cuda_arch": [8, 21], "cuda_arch": 8, "cuda": [8, 15, 17, 22, 29, 30, 40], "arch": [8, 21, 30], "70": [8, 15, 26, 30], "amrex_amd_arch": [8, 21], "amd_arch": 8, "amd": [8, 21, 22], "gfx908": [8, 21], "machin": [8, 15, 24, 33, 36, 43], "unknown": [8, 30, 31], "use_gpu_rdc": 8, "bash": [8, 45], "export": [8, 15, 21, 36, 45], "tcsh": 8, "setenv": 8, "yield": [8, 21], "equival": [8, 21, 34], "use_single_precision_particl": [8, 34], "obviou": 8, "aggress": 8, "ci": [8, 43], "slight": 8, "mpi_thread_multipl": [8, 27], "concurr": [8, 21, 27, 44], "nvidia": [8, 10, 15, 21, 22, 30], "hip": [8, 22, 29, 40], "sycl": [8, 22, 29], "against": [8, 21, 47], "moment": 8, "mechan": [8, 45], "rpath": 8, "hint": [8, 21], "binari": [8, 15, 27, 34, 40], "ld_library_path": 8, "clang": [8, 21], "warn_error": 8, "cuda_hom": 8, "demo_suit": 8, "devicequeri": 8, "80": [8, 30], "def": 8, "cexe_sourc": 8, "extens": [8, 12, 43, 47], "hpp": 8, "f90exe_sourc": 8, "search": [8, 17, 40], "mysrcdir": 8, "vpath_loc": 8, "include_loc": 8, "gnumak": [8, 17], "md": [8, 17], "brief": 8, "cleanconfig": 8, "temporarili": 8, "colon": 8, "clean": [8, 17, 36], "xxx": [8, 10], "cxx": [8, 17, 21], "cxxflag": 8, "reset": 8, "disregard": 8, "mpicxx": 8, "site": 8, "setup": [8, 19, 21], "host_nam": 8, "dmyname1": 8, "dmyname2": 8, "mydefinit": 8, "foopath": 8, "lib": [8, 45], "library_loc": 8, "lfoo": 8, "fc": [8, 17], "mpixxx": 8, "ifeq": 8, "mpicc": [8, 30], "mpif90": 8, "gfortran": [8, 24], "On": [8, 21, 45], "good": [8, 26, 27, 30, 43, 45], "forc": [8, 21, 35], "xcode": 8, "ship": 8, "woefulli": 8, "outdat": 8, "homebrew": [8, 45], "brew": [8, 45], "usr": [8, 45], "mpich": 8, "experienc": [8, 34], "suggest": [8, 15, 25, 34], "bl_no_fort": 8, "use_ccach": 8, "distclean": 8, "uninstal": 8, "script": [8, 34, 38, 43, 45], "tune": [8, 21, 34], "assist": [8, 23], "pkgconfig": 8, "entri": [8, 34, 43, 44], "amrex_library_hom": 8, "libdir": 8, "incdir": 8, "compile_cpp_flag": 8, "shell": 8, "awk": 8, "cflag": [8, 27], "compile_lib_flag": 8, "lflag": 8, "l": [8, 30, 34], "chosen": [8, 21, 45], "builddir": [8, 43], "roughli": 8, "installdir": 8, "mkdir": 8, "cd": [8, 30, 45], "dcmake_build_typ": [8, 10], "relwithdebinfo": 8, "minsizerel": 8, "dcmake_install_prefix": 8, "test_instal": 8, "snippet": [8, 21, 34], "subsect": 8, "cmake_build_typ": 8, "advis": 8, "suitabl": 8, "var": 8, "damrex_omp": 8, "amrex_omp": 8, "NO": [8, 21], "insensit": 8, "cmake_fortran_compil": 8, "cmake_cxx_compil": [8, 21], "cmake_fortran_flag": 8, "cmake_cxx_flag": [8, 21], "cmake_cxx_standard": 8, "use_xsdk_default": 8, "xsdk": 8, "amrex_build_shared_lib": 8, "share": [8, 45], "amrex_fortran": [8, 21], "amrex_precis": 8, "amrex_p": 8, "amrex_ipo": 8, "interprocedur": 8, "ipo": 8, "lto": 8, "amrex_mpi": 8, "amrex_gpu_backend": [8, 21], "acceler": [8, 21], "backend": [8, 40, 44], "amrex_gpu_rdc": 8, "relocat": 8, "amrex_fortran_interfac": 8, "api": [8, 15, 43, 45, 47], "amrex_linear_solv": 8, "amrex_amrdata": 8, "amrex_amrlevel": 8, "amrex_eb": 8, "amrex_particles_precis": 8, "tini": [8, 15], "amrex_trace_profil": 8, "trace": [8, 10], "amrex_comm_profil": 8, "amrex_mem_profil": 8, "amrex_tp_profil": 8, "parti": 8, "craypat": [8, 16], "forg": 8, "vtune": 8, "amrex_test": [8, 40], "nan": [8, 10, 36, 40], "amrex_mpi_thread_multipl": 8, "amrex_profpars": 8, "amrex_roctx": 8, "roctx": [8, 10], "markup": 8, "amrex_fp": 8, "amrex_bound_check": 8, "amrex_export_dynam": 8, "darwin": 8, "amrex_sensei": 8, "sensei": [8, 46], "situ": [8, 45], "infrastructur": [8, 20], "amrex_no_sensei_amr_inst": 8, "amrex_conduit": 8, "conduit": 8, "amrex_catalyst": 8, "catalyst": 8, "amrex_asc": 8, "ascent": [8, 45], "amrex_hypr": 8, "hypr": [8, 30, 31], "amrex_petsc": 8, "petsc": [8, 30], "amrex_sundi": 8, "sundial": [8, 14, 21], "amrex_hdf5": 8, "hdf5": [8, 28], "amrex_hdf5_zfp": 8, "zfp": [8, 27], "amrex_plotfile_tool": 8, "postprocess": [8, 36], "amrex_enable_test": 8, "ctest": 8, "suit": [8, 15, 35, 39, 41, 45], "amrex_test_typ": 8, "affect": [8, 34], "amrex_different_compil": 8, "app": 8, "amrex_instal": 8, "amrex_probinit": 8, "probin": 8, "platform": [8, 16, 21, 27, 34, 45], "amrex_flatten_for": 8, "flatten": [8, 44], "amrex_compiler_default_inlin": 8, "inlin": [8, 21, 45], "relev": [8, 26, 33, 40], "amrex_inline_limit": 8, "43210": 8, "impli": 8, "cmake_c_compil": 8, "environment": 8, "fflag": 8, "explan": 8, "strictli": [8, 34], "highli": [8, 23, 46], "dcmake_c_compil": 8, "dcmake_cxx_compil": [8, 21], "plai": [8, 25, 45], "cmakelist": [8, 21], "find_packag": [8, 21], "target_link_librari": [8, 21], "amrex_1d": 8, "amrex_2d": 8, "amrex_3d": 8, "flags_cxx": 8, "preset": 8, "flags_fortran": 8, "flags_fp": 8, "damrex_linear_solv": 8, "caus": [8, 10, 12, 15, 21], "fatal": 8, "pic": [8, 21, 34, 35], "finterfac": 8, "lsolver": 8, "amrdata": 8, "eb": [8, 12, 13, 17, 30, 40], "pdoubl": 8, "psingl": 8, "basep": 8, "tinyp": 8, "tracep": 8, "commp": 8, "memp": 8, "profpars": 8, "fpe": 8, "pftool": 8, "amrex_root": 8, "damrex_root": 8, "invoc": [8, 21], "team": [8, 25], "linux": [8, 9, 10, 45], "laptop": 8, "supercomput": [8, 9, 21], "peopl": 8, "mac": [8, 9, 10, 12], "offici": [8, 15, 16, 22, 45], "believ": [8, 42], "fundament": 8, "mostli": [8, 43], "msvc": 8, "posix": 8, "segment": [8, 10, 17], "fault": [8, 10, 17], "capabl": [8, 10, 15, 17, 19, 21, 22, 27, 28, 30, 34, 44, 45], "os": [8, 45], "scientif": [8, 15], "softwar": [8, 15, 29, 43, 45, 47], "wide": [8, 21, 27], "varieti": [8, 15, 21, 34], "learn": [8, 47], "visit": [8, 23, 27, 29, 46], "www": [8, 15, 42, 45], "instruct": [8, 15, 21, 27, 40, 45], "pleas": [8, 9, 16, 17, 21, 23, 27, 34, 38, 41, 44, 45], "readthedoc": [8, 41], "onc": [8, 34, 43, 45], "download": [8, 24, 27, 45], "info": [8, 30, 45], "architectur": [8, 10, 15, 21, 30], "sm_60": 8, "60": [8, 15], "spack": [9, 23], "adopt": 9, "libamrex": [9, 19], "c99": 9, "prerequisit": 9, "perl": 9, "sed": 9, "18": [9, 15, 45], "cori": [9, 21], "summit": [9, 15, 21, 34], "dissect": 9, "tweak": [9, 34], "maco": 9, "ccach": 9, "custom": [9, 10, 17, 21, 44, 45], "project": [9, 12, 15, 21, 30, 45], "art": 10, "everyon": 10, "favorit": [10, 21, 45], "method": [10, 12, 13, 15, 30, 34, 40, 41, 42], "offer": 10, "few": [10, 15, 16, 17, 21, 43, 45], "tip": [10, 22, 45], "rais": [10, 40], "chanc": 10, "interrupt": 10, "overflow": [10, 17], "damrex_assert": 10, "trap": [10, 15, 40], "damrex_fp": 10, "paramet": [10, 12, 17, 19, 22, 23, 26, 27, 31, 35, 43, 44, 45, 47], "fpe_trap_zero": [10, 40], "fpe_trap_overflow": [10, 40], "uniniti": [10, 21], "bl_alloc": 10, "init_snan": [10, 40], "m1": 10, "m2": 10, "chip": 10, "arm64": 10, "rho": [10, 12, 21, 34, 36], "thousand": 10, "million": 10, "hit": [10, 15], "amrex_blbacktrac": 10, "ostringstream": 10, "ss": 10, "bl_backtrace_push": 10, "str": 10, "bl_backtrace_pop": 10, "disk": [10, 17, 27, 34, 40, 45], "vismf": [10, 15, 17, 27, 40], "amrex_vismf": 10, "examin": [10, 34, 43], "amrex_multifabutil": 10, "print_stat": [10, 17], "valgrind": 10, "mpiexec": [10, 23], "leak": [10, 19], "vallog": 10, "modern": 10, "attach": [10, 44], "crash": 10, "throw_except": [10, 40], "asynchron": [10, 17, 21, 25, 40], "improperli": 10, "variat": [10, 21], "linearli": 10, "streamsynchron": [10, 17, 21], "halt": 10, "stream": [10, 22, 27, 40], "request": [10, 21, 25, 43, 47], "therebi": 10, "easier": [10, 15, 17, 34, 36], "gdb": 10, "hpctoolkit": 10, "rocgdb": 10, "topic": [10, 17], "olcf": [10, 21], "ornl": [10, 21], "gov": [10, 15, 21, 42, 43, 45], "summit_user_guid": 10, "nvprof": [10, 21], "main3d": [10, 15, 21, 23], "nsight": [10, 16], "nsy": [10, 15], "nvvp": 10, "xxxx": 10, "nsys_out": 10, "slurm_procid": 10, "slurm_jobid": 10, "page": [10, 17, 21, 25, 41, 43, 45], "sy": 10, "pwd": 10, "qdrep": [10, 15], "memcheck": [10, 21], "newer": 10, "sanit": 10, "cuda_launch_block": 10, "rocprof": 10, "hsa": 10, "stat": 10, "timestamp": 10, "chrome": 10, "hip_launch_block": 10, "chicken": 10, "ze_trac": 10, "advisor": 10, "survei": 10, "back": [10, 21, 34, 42], "ze_debug": 10, "rather": [11, 13, 45], "estim": 11, "pursu": 11, "onto": [11, 21, 30, 32, 34, 35], "surfac": [12, 13, 30, 40], "bodi": [12, 23, 25], "sphere": 12, "radiu": [12, 34, 45], "sphereif": 12, "shop": 12, "makeshop": [12, 17], "stl": [12, 40], "stl_file": [12, 40], "geom_typ": [12, 40], "required_coarsening_level": 12, "max_coarsening_level": 12, "build_coarse_level_by_coarsen": 12, "stl_scale": [12, 40], "stl_center": [12, 40], "stl_reverse_norm": [12, 40], "revers": [12, 27, 40, 42], "predefin": [12, 40, 44], "allregularif": 12, "boxif": 12, "cylinderif": 12, "cylind": 12, "ellipsoidif": 12, "ellipsoid": 12, "planeif": 12, "plane": [12, 45], "appli": [12, 19, 21, 26, 27, 30, 32, 33, 40, 45], "makecompl": 12, "complement": [12, 34], "makeintersect": 12, "makeunion": 12, "rotat": [12, 45], "lath": 12, "revolut": [12, 45], "axi": [12, 36], "sphere1": 12, "sphere2": 12, "twospher": 12, "box_plan": 12, "scylind": 12, "typenam": 12, "gshop": [12, 17], "multigrid": [12, 26, 30, 31], "a_geom": [12, 30], "a_ba": 12, "a_dm": 12, "a_ngrow": 12, "ebsupport": 12, "a_support": 12, "unique_ptr": [12, 27, 30], "makeebfabfactori": 12, "fraction": [12, 26], "centroid": [12, 30], "fabfactori": [12, 30], "factori": 12, "dynamic_cast": 12, "getmultiebcellflagfab": 12, "getvolfrac": 12, "multicutfab": 12, "getcentroid": 12, "getbndryc": 12, "getareafrac": 12, "getfacec": 12, "un": [12, 26], "frame": [12, 45], "Its": [12, 19], "cutfab": 12, "fabtyp": 12, "gettyp": 12, "singlevalu": 12, "centroid_fab": 12, "amrex_ebcellflag_modul": 12, "is_regular_cel": 12, "is_single_valued_cel": 12, "is_covered_cel": 12, "review": [12, 25], "pde": [12, 13, 23, 29], "quantiti": 12, "theorm": 12, "int_v": 12, "dv": 12, "int_": 12, "da": 12, "kappa": [12, 30], "left": [12, 15, 23, 34, 40], "d_": [12, 21], "alpha_": [12, 30], "right": [12, 17, 23, 25, 30, 31, 34, 44], "apertur": 12, "multivalu": 12, "infer": 12, "align": 12, "grei": 12, "portion": [12, 15, 21], "uncov": 12, "law": [12, 13], "constraint": [12, 26, 40], "sim": 12, "v_m": 12, "smallest": 12, "arbitrarili": [12, 13, 34, 45], "unaccept": 12, "address": [12, 17, 21], "_t": 12, "rh": [12, 30, 44], "convect": 12, "c_i": 12, "dfrac": 12, "mathcal": 12, "_i": [12, 30], "sum_": [12, 30], "n_f": 12, "a_f": 12, "vec": 12, "limits_": 12, "_j": 12, "c_j": 12, "mass": [12, 21, 34], "m_i": 12, "w_": 12, "ij": [12, 30], "qquad": 12, "foral": 12, "setminu": 12, "phi_i": 12, "neighborhood": 12, "monoton": 12, "excess": [12, 21], "guiliani": 12, "et": [12, 42], "al": [12, 41, 42], "2021": 12, "arxiv": [12, 17], "berger": [12, 26], "2020": [12, 15], "canon": [12, 30, 31], "homogen": [12, 30], "inhomogen": [12, 30], "mlebabeclap": [12, 30], "mlabeclaplacian": [12, 30], "a_grid": [12, 30], "a_dmap": [12, 30], "lpinfo": [12, 30], "a_info": [12, 30], "a_factori": [12, 30], "ml_ebabeclap": [12, 30], "setebhomogdirichlet": [12, 30], "coeff": [12, 30], "coeffici": [12, 31], "setebdirichlet": [12, 30], "phi_on_eb": [12, 30], "setphioncentroid": [12, 30], "setbcoeff": [12, 30], "beta": [12, 30, 31], "mlmg": [12, 15, 17, 31], "facecentroid": [12, 30], "cn": 12, "poisson": [12, 30, 31, 42, 43], "proxi": 12, "electrostat": [12, 34], "ground": 12, "charg": [12, 34], "macproj": 12, "emploi": 13, "cut": [13, 15, 29, 30, 34, 40], "tradition": 13, "fragment": [13, 21], "practic": [13, 21, 23, 34], "quickli": [13, 21, 43], "robustli": 13, "impact": [13, 40], "robust": 13, "stabil": [13, 30], "tradit": 13, "geometr": [13, 21, 30, 31], "ebfarrayboxfactori": [13, 30], "swfft": 14, "xc": 15, "measur": [15, 17, 21, 32, 40], "prgenv": 15, "chiefli": 15, "reveal": 15, "cce": 15, "grain": [15, 17], "hardwar": [15, 21, 27], "consum": [15, 45], "perftool": 15, "lite": 15, "opposit": 15, "wrapper": [15, 19, 45], "ftn": [15, 45], "nersc": 15, "ap2": 15, "suffix": 15, "pat_report": 15, "login": 15, "pipe": 15, "pager": 15, "samp": 15, "imb": 15, "pe": 15, "hide": [15, 21], "235": 15, "50": 15, "628": 15, "383": 15, "eos_module_mp_iterate_ne_": 15, "300": 15, "138": 15, "42": 15, "amrex_deposit_c": 15, "265": 15, "79": 15, "update_dm_particl": 15, "147": 15, "fort_fab_setv": 15, "137": 15, "ppm_module_mp_ppm_type1_": 15, "133": 15, "eos_module_mp_nyx_eos_t_given_re_": 15, "107": 15, "33": [15, 45], "incrementwithtot": 15, "89": 15, "f_rhs_": 15, "74": 15, "riemannus_": 15, "56": [15, 45], "calculateminmax": 15, "471": [15, 45], "388": 15, "__intel_mic_avx512f_memcpi": 15, "362": 15, "45": 15, "cvode": [15, 41], "164": 15, "__libm_log10_l9": 15, "149": 15, "21": [15, 45], "_internal_25_______src_kmp_barrier_cpp_5de9139b": 15, "__kmp_hyper_barrier_gath": 15, "879": 15, "266": 15, "123": 15, "mpi_allreduc": [15, 18], "218": 15, "104": 15, "43": 15, "mpi_waital": 15, "151": 15, "78": 15, "mpi_bcast": 15, "135": 15, "mpi_barri": 15, "105": 15, "mpi_recv": 15, "93": 15, "hpc": [15, 27, 45], "todo": 15, "re": [15, 33, 40, 43, 45], "past": 15, "ipm_report": 15, "ipm_log": 15, "ipm_logdir": 15, "xml": [15, 45], "post": [15, 45, 47], "ipm_pars": 15, "xmlfile": 15, "ipmv2": 15, "cscratch1": [15, 45], "sd": [15, 45], "cchan2": 15, "lbl": [15, 43, 45], "boxlib": [15, 45, 47], "linearsolv": [15, 30, 43], "c_cellmg": 15, "25600": 15, "tue": 15, "aug": 15, "2017": [15, 34, 45], "nid11311": 15, "35": 15, "wallclock": 15, "mpi_task": 15, "51": [15, 45], "mem": 15, "gb": 15, "126": 15, "47": 15, "gflop": 15, "sec": 15, "1188": 15, "73": 15, "386": 15, "02": 15, "52": 15, "36": 15, "44": 15, "5031172": 15, "39306": 15, "23067": 15, "57189": 15, "225": 15, "72": 15, "567552": 15, "92": 15, "84": 15, "397056": 15, "81": 15, "193": 15, "mpi_isend": 15, "25": [15, 30, 45], "04": [15, 23], "2031810": 15, "mpi_irecv": 15, "37": 15, "mpi_allgath": 15, "512": [15, 45], "mpi_gatherv": 15, "mpi_comm_dup": 15, "256": [15, 21, 23, 40], "mpi_send": 15, "06": [15, 21], "319": 15, "01": 15, "mpi_reduc": 15, "mpi_comm_fre": 15, "mpi_comm_group": 15, "mpi_comm_s": 15, "mpi_comm_rank": 15, "mpi_init": 15, "mpi_fin": 15, "footprint": 15, "ipm_hpm": 15, "comma": [15, 21], "papi_l2_tca": 15, "papi_l2_tcm": 15, "papi_avail": 15, "papi_l1_dcm": 15, "0x80000000": 15, "papi_l1_icm": 15, "0x80000001": 15, "papi_l1_tcm": 15, "0x80000006": 15, "0x80000007": 15, "papi_tlb_dm": 15, "0x80000014": 15, "lookasid": 15, "papi_l1_ldm": 15, "0x80000017": 15, "papi_l2_ldm": 15, "0x80000019": 15, "papi_stl_ici": 15, "0x80000025": 15, "papi_br_ucn": 15, "0x8000002a": 15, "uncondit": 15, "papi_br_cn": 15, "0x8000002b": 15, "papi_br_tkn": 15, "0x8000002c": 15, "papi_br_ntk": 15, "0x8000002d": 15, "papi_br_msp": 15, "0x8000002e": 15, "mispredict": 15, "papi_tot_in": 15, "0x80000032": 15, "papi_ld_in": 15, "0x80000035": 15, "papi_sr_in": 15, "0x80000036": 15, "papi_br_in": 15, "0x80000037": 15, "papi_res_stl": 15, "0x80000039": 15, "stall": 15, "papi_tot_cyc": 15, "0x8000003b": 15, "papi_lst_in": 15, "0x8000003c": 15, "papi_l1_dca": 15, "0x80000040": 15, "papi_l1_ich": 15, "0x80000049": 15, "papi_l1_ica": 15, "0x8000004c": 15, "papi_l2_tch": 15, "0x80000056": 15, "0x80000059": 15, "papi_ref_cyc": 15, "0x8000006b": 15, "pub": [15, 43, 45], "com": [15, 23, 30, 43, 45], "2376": 15, "guid": [15, 21, 24, 47], "646": 15, "2179": 15, "85": 15, "3901": 15, "sourceforg": 15, "userguid": 15, "displai": [15, 36, 45], "nvtx": 15, "pictur": [15, 45], "workstat": 15, "file_nam": 15, "difficult": [15, 21], "pars": 15, "deciph": 15, "marker": 15, "region_nam": 15, "nsys_nvtx_profiler_register_onli": 15, "timer": [15, 21], "do_hydro": 15, "skip": [15, 34], "remaind": 15, "plan": 15, "analys": 15, "accordingli": 15, "alter": [15, 30, 45], "cudaprofilerstart": 15, "TO": 15, "cudaprofilerstop": 15, "cudaprofilerapi": 15, "inner": [15, 21], "menu": [15, 45], "occup": [15, 21], "primarili": 15, "transfer": [15, 19, 21, 30, 45], "told": [15, 21], "ncu": 15, "extrem": [15, 34], "lengthi": 15, "unnecessari": [15, 21, 40], "narrow": 15, "stencila": 15, "stencilc": 15, "gravitysolv": 15, "ten": 15, "filter": [15, 21, 45], "speedoflight_rooflinechart": 15, "critic": 15, "model": [15, 21, 25, 45], "literatur": 15, "wikipedia": 15, "ipm": 16, "cross": [16, 21, 27, 30], "monitor": 16, "why": [17, 34], "am": 17, "troubl": 17, "resolv": 17, "prompt": 17, "inconsist": 17, "device_synchronize_around_region": [17, 40], "answer": [17, 43], "fcompar": 17, "absolut": [17, 30, 36], "decid": [17, 25, 45], "meta": 17, "the_pinned_arena": [17, 21], "htod_memcpi": 17, "p_d": 17, "p_h": 17, "size_t": [17, 21, 34], "sz": [17, 21, 27], "dtoh_memcpi": 17, "scomp": 17, "random": 17, "seed": 17, "dedic": 17, "explain": [17, 42], "paper": 17, "1604": 17, "03570": 17, "formal": 17, "csg": 17, "assembl": 17, "eventu": 17, "4096": 17, "circumv": [17, 30], "deviceptrif": 17, "if_t": 17, "decltyp": 17, "mycomplexif": 17, "dp": 17, "the_arena": [17, 21], "sizeof": 17, "htod_memcpy_async": 17, "dp_mycomplexif": 17, "encourag": [17, 21, 45], "job": [18, 21, 40], "bulk": [18, 30], "fashion": [18, 32, 34], "sequenc": [18, 21, 27, 45], "subgroup": [18, 21], "resum": 18, "subdivid": [18, 26], "heterogen": 18, "strong": [18, 45], "penalti": [18, 40], "inher": 18, "subtask": 18, "visibl": [18, 21], "root": [18, 40], "f_interfac": 19, "helloworld_f": 19, "advection_f": 19, "entireti": 19, "amrex_base_modul": 19, "amrex_init": 19, "amrex_parallel_ioprocessor": 19, "hello": [19, 21, 24], "world": [19, 21, 24], "amrex_fin": 19, "amrex_amrcore_modul": 19, "amrex_octree_modul": 19, "style": [19, 34], "unlik": [19, 45], "amrex_parallel_modul": 19, "amrex_parallel_mod": 19, "amrex_parmparse_modul": 19, "amrex_parmparse_mod": 19, "amrex_parmparse_build": 19, "amrex_parmpase_destroi": 19, "amrex_box_modul": 19, "amrex_box_mod": 19, "amrex_geometry_build": 19, "amrex_geometry_destroi": 19, "amrex_boxarray_mod": 19, "amrex_distromap": 19, "amrex_distromap_mod": 19, "amrex_boxarray_build": 19, "break": [19, 21, 43], "amrex_distromap_build": 19, "amrex_distromap_distromap": 19, "amrex_boxarray_destroi": 19, "ndmf": 19, "amrex_multifab_build": 19, "amrex_multifab_destroi": 19, "fill_boundari": 19, "parallel_copi": 19, "amrex_mfit": 19, "plo": [19, 34], "po": [19, 21, 34], "pn": 19, "old_phi": 19, "new_phi": 19, "distromap": 19, "update_phi": 19, "amrex_mfiter_destroi": 19, "pold": 19, "pnew": 19, "c_ptr": 19, "semant": 19, "prefer": [19, 21], "five": [19, 21, 34], "shallow": 19, "owner": 19, "longer": [19, 21, 26, 34, 45], "ownership": [19, 21], "swap": 19, "exchang": [19, 21], "amrex_plotfile_modul": 19, "amrex_amr_modul": 19, "amrex_amrcore_init": 19, "my_amr_init": 19, "my_amr_fin": 19, "amrex_amrcore_fin": 19, "hook": [19, 21], "amrex_init_virtual_funct": 19, "mk_lev_scrtch": 19, "mk_lev_crs": 19, "mk_lev_r": 19, "clr_lev": 19, "err_est": 19, "amrex_make_level_proc": 19, "amrex_clear_level_proc": 19, "amrex_error_est_proc": 19, "c_char": 19, "fortraninterfac": 19, "my_amr_mod": 19, "amrex_tagboxarrai": 19, "amrex_fillpatch_modul": 19, "fillpatch_mod": 19, "amrex_fluxregister_modul": 19, "fluxregist": [19, 27], "nevertheless": 19, "amrex_octree_mod": 19, "advection_octree_f": 19, "amrex_octree_init": 19, "amrex_octree_fin": 19, "amrex_octree_int": 19, "amrex_octree_it": 19, "oti": 19, "ilev": 19, "igrd": 19, "pout": 19, "amrex_octree_iter_build": 19, "grid_index": 19, "amrex_octree_iter_destroi": 19, "who": [20, 38], "confus": 20, "latter": [20, 21, 40, 45], "drive": 20, "octre": 20, "focus": [21, 22, 23], "ineffect": 21, "concern": [21, 34], "decreas": 21, "orang": 21, "scienc": 21, "movement": 21, "reliabl": 21, "strive": 21, "lend": 21, "readili": 21, "stai": [21, 43], "parit": [21, 34], "sequenti": [21, 32, 36], "similarli": [21, 44], "fifth": 21, "purpl": 21, "remain": [21, 26, 30, 42], "meanwhil": 21, "port": 21, "ran": [21, 45], "use_acc": 21, "use_omp_offload": 21, "driver": 21, "nvcc": [21, 30], "nvcc_host_comp": 21, "alon": [21, 23, 47], "404": 21, "g0455b168b69c": 21, "dirti": [21, 23], "mb": [21, 40], "6069": 21, "5896": 21, "4552": 21, "pin": [21, 40], "sycl_aot": 21, "ahead": 21, "sycl_aot_grf_mod": 21, "aot": 21, "autolarg": 21, "amrex_intel_arch": 21, "target": [21, 22, 30], "pvc": 21, "sycl_split_kernel": 21, "use_onedpl": 21, "onedpl": 21, "sycl_sub_group_s": 21, "sycl_parallel_link_job": 21, "damrex_gpu_backend": 21, "damrex_gpu_max_thread": 21, "amrex_cuda_fastmath": 21, "fastmath": 21, "amrex_cuda_backtrac": 21, "amrex_cuda_compilation_tim": 21, "csv": [21, 30, 36], "phase": [21, 34, 35], "amrex_cuda_debug": 21, "amrex_cuda_error_capture_thi": 21, "amrex_cuda_error_cross": 21, "_execution_space_cal": 21, "amrex_cuda_keep_fil": 21, "folder": [21, 36], "nvcc_tmp": 21, "amrex_cuda_lto": 21, "amrex_cuda_maxregcount": 21, "255": 21, "amrex_cuda_ptx_verbos": 21, "ptxa": 21, "amrex_cuda_show_codelin": 21, "ptx": 21, "amrex_cuda_show_linenumb": 21, "amrex_cuda_warn_capture_thi": 21, "damrex_cuda_arch": 21, "ture": 21, "volta": 21, "amper": 21, "cap": 21, "autodetect": 21, "semicolon": 21, "higher": [21, 30, 40], "toolkit": 21, "subproject": 21, "strongli": 21, "amrex_setupcuda": 21, "enable_languag": 21, "obsolet": 21, "cmake_vers": 21, "version_less": 21, "add_subdirectori": 21, "helper": [21, 27], "setup_target_for_cuda_compil": 21, "my_target": 21, "target_sourc": 21, "source1": 21, "source2": 21, "source3": 21, "damrex_amd_arch": 21, "rocm": [21, 22], "yet": [21, 27, 44, 45], "hipcc": 21, "tulip": 21, "gfx906": 21, "icpx": 21, "amrex_sycl_aot": 21, "amrex_sycl_aot_grf_mod": 21, "amrex_sycl_split_kernel": 21, "amrex_sycl_onedpl": 21, "amrex_sycl_sub_group_s": 21, "amrex_parallel_link_job": 21, "qualifi": 21, "amrex_gpu_host": 21, "__host__": 21, "__device__": 21, "amrex_gpu_glob": 21, "__global__": 21, "amrex_gpu_host_devic": 21, "amrex_use_cuda": 21, "amrex_use_hip": 21, "amrex_use_sycl": 21, "amrex_use_acc": 21, "amrex_use_gpu": 21, "amrex_use_omp_offload": 21, "amrex_if_on_devic": 21, "code_for_devic": 21, "amrex_if_on_host": 21, "code_for_host": 21, "the_device_arena": 21, "the_managed_arena": 21, "the_arena_is_manag": [21, 40], "gradual": 21, "likewis": [21, 34], "alias": 21, "amount": [21, 40], "kept": [21, 25], "the_arena_init_s": [21, 40], "8388608": [21, 40], "the_managed_arena_init_s": [21, 40], "the_device_arena_init_s": [21, 40], "the_pinned_arena_init_s": [21, 40], "reus": [21, 34], "huge": 21, "the_arena_release_threshold": [21, 40], "the_pinned_arena_release_threshold": [21, 40], "the_device_area": 21, "the_device_arena_release_threshold": [21, 40], "the_managed_arena_release_threshold": [21, 40], "freeunus": 21, "unus": [21, 40, 43], "printusag": 21, "the_sunmemory_help": 21, "n_vector": 21, "n_vnewwithmemhelp_cuda": 21, "use_managed_memori": 21, "destruct": 21, "rewritten": 21, "invcellsizearrai": 21, "length3d": 21, "callback": 21, "h_": 21, "aa_": 21, "h_v": 21, "a_cpu_funct": 21, "aa_v1": 21, "d_v1": 21, "aa_v2": 21, "d_v2": 21, "atom": 21, "copytohost": 21, "host_point": 21, "number_of_el": 21, "aa_v": 21, "d_v": 21, "dealloc": 21, "resiz": [21, 30, 40], "devicevector": [21, 40], "hostvector": 21, "managedvector": [21, 40], "behav": [21, 34], "unsupport": 21, "great": [21, 33], "parreduc": 21, "kinet": 21, "energi": 21, "momentum": 21, "densiti": [21, 36, 45], "compute_ek": 21, "ma": 21, "typelist": 21, "reduceopsum": 21, "box_no": 21, "gputupl": 21, "rhovx": 21, "rhovi": 21, "rhovz": 21, "ek": 21, "compute_norm": 21, "data_ma": 21, "mask_ma": 21, "reduceopmax": 21, "freeli": [21, 47], "probhiarrai": 21, "isperiodicarrai": 21, "ixtyp": 21, "tmp_fab": 21, "tmp_eli": 21, "tmp_arr": 21, "the_async_arena": 21, "older": 21, "unlimit": 21, "adjust": [21, 23, 45], "the_async_arena_release_threshold": [21, 40], "prepar": [21, 22], "queue": [21, 45], "conjunct": 21, "earlier": 21, "schema": 21, "categori": 21, "arbitrari": 21, "simd": [21, 40], "wherev": 21, "compact": 21, "amrex_parallel_for_4d": 21, "lightweight": 21, "quadrupli": 21, "simplifi": 21, "consecut": 21, "n_start": 21, "amrex_parallel_for_3d": 21, "amrex_restrict": 21, "nitem": 21, "numpt": 21, "idx": 21, "amrex_parallel_for_1d": 21, "amrex_gpu_max_thread": 21, "my_block_s": 21, "warp": 21, "arr": 21, "tbx": 21, "pluseone_array4": 21, "plusone_fab": 21, "amrex_launch_device_lambda": 21, "plusone_array4": 21, "substanti": 21, "plusone_acc": 21, "dat": 21, "acc": [21, 34], "deviceptr": 21, "0_amrex_r": 21, "consult": [21, 40], "collaps": 21, "schedul": [21, 25, 27], "is_device_ptr": 21, "readi": [21, 27, 30], "privat": 21, "pitfal": 21, "myclass": 21, "printf": 21, "unifi": 21, "local_m": 21, "parenthes": 21, "ok": [21, 27, 45], "quicker": 21, "wors": 21, "workflow": [21, 38, 45], "copyasync": 21, "facilit": [21, 34], "streamsynchronizeal": 21, "devicetohost": 21, "too": [21, 26, 34, 40], "interfer": 21, "pose": 21, "difficulti": 21, "uin": 21, "uout": 21, "gbx": 21, "grow": 21, "rewrit": 21, "eli": 21, "qarr": 21, "uinarr": 21, "uoutarr": 21, "amrex_gpu_error_check": 21, "health": 21, "successfulli": [21, 30], "nearbi": [21, 34], "push_position_bori": 21, "np": [21, 34, 45], "uxp": 21, "uyp": 21, "uzp": 21, "gaminv": 21, "em_particle_modul": 21, "particle_t": [21, 34], "ip": 21, "gang": 21, "claus": [21, 47], "bypass": 21, "electromagnet": 21, "travers": 21, "deposit": [21, 34], "fillneighbor": [21, 34], "updateneighbor": 21, "halo": 21, "traffic": 21, "advantag": [21, 45], "web": [21, 43, 45], "facil": [21, 45], "explor": [21, 45], "meantim": 21, "categor": 21, "bl_profile_var": 21, "a_nam": 21, "blp": 21, "bl_profile_stop": 21, "fewer": [21, 25, 30], "greatli": 21, "amrex_force_inlin": 21, "plusone_cudacpp": 21, "pai": 21, "attent": 21, "ll": [21, 45], "satur": 21, "capac": 21, "probabl": 21, "jsrun": 21, "viewer": 21, "jobstepview": 21, "robin": [21, 30, 32], "suboptim": 21, "socket": 21, "prefac": 21, "use_gpu_aware_mpi": [21, 34, 40], "worth": [21, 34], "abort_on_out_of_gpu_memori": [21, 40], "vendor": [22, 40], "openacc": 22, "aurora": 22, "publicli": [22, 29], "oneapi": 22, "forthcom": 22, "migrat": [22, 47], "repo": [23, 45], "monthli": [23, 47], "basi": [23, 27, 34], "yy": 23, "mm": 23, "month": [23, 47], "year": 23, "patch": 23, "amrex_": 23, "g5775aed933c4": 23, "commit": [23, 43], "5775aed933c4": 23, "letter": [23, 27], "g577": 23, "uncommit": 23, "omp_num_thread": [23, 27, 40], "forward": [23, 42, 44], "euler": [23, 44], "tempor": 23, "inputs_2d": 23, "000": [23, 40], "plt01000": [23, 45], "ccse": [23, 43, 45, 46], "yt": [23, 29, 34, 46], "progress": 23, "helloworld": 23, "walk": [23, 24, 47], "thru": 23, "heat": [24, 31, 45], "led": 25, "ann": 25, "almgren": 25, "john": 25, "bell": 25, "chair": 25, "andrew": 25, "myer": 25, "weiqun": 25, "zhang": 25, "organiz": 25, "administr": 25, "archiv": 25, "vote": 25, "veto": 25, "tc": 25, "3rd": 25, "meet": 25, "unanim": 25, "mail": 25, "chat": 25, "confidenti": 25, "cast": 25, "week": 25, "tie": 25, "act": [25, 30], "breaker": 25, "attend": 25, "contribut": [25, 47], "resign": 25, "inact": 25, "inappropri": 25, "marc": 25, "dai": 25, "candac": 25, "gilet": 25, "kevin": 25, "gott": 25, "axel": 25, "huebl": 25, "andi": 25, "nonaka": 25, "jean": 25, "sexton": 25, "michael": [25, 43], "zingal": [25, 43], "approv": 25, "merg": 25, "exig": 25, "circumst": 25, "weigh": 25, "pr": 25, "moder": 25, "mute": 25, "bad": 25, "actor": 25, "propos": [25, 42], "particip": 25, "guidelin": 25, "confirm": 25, "valuabl": 25, "vet": 25, "pull": [25, 43, 47], "benchmark": [25, 43], "triag": 25, "classif": 25, "nomin": 25, "lost": [25, 27], "acknowledg": 25, "span": [26, 45], "popular": [26, 45], "constrain": 26, "fact": 26, "suffici": [26, 45], "ridden": 26, "ngrid": 26, "caveat": 26, "violat": [26, 40], "criterion": 26, "max_grid_size_x": [26, 40], "max_grid_size_i": [26, 40], "max_grid_size_z": [26, 40], "blocking_factor_x": [26, 40], "blocking_factor_i": [26, 40], "blocking_factor_z": [26, 40], "proce": [26, 45], "kd": [26, 32], "ie": 26, "satisfi": 26, "rigoutso": 26, "cluster": 26, "7x7x7": 26, "git": [27, 30, 42, 45], "writesinglelevelplotfil": 27, "plotfilenam": [27, 36], "varnam": [27, 34], "level_step": [27, 34], "writemultilevelplotfil": [27, 34], "nlevel": [27, 32], "plt00258": 27, "concaten": 27, "258": 27, "pfname": 27, "plt": [27, 34, 40, 45], "pfname2": 27, "plt0258": 27, "1234567": 27, "pfname3": 27, "plt1234567": 27, "significantli": 27, "getvecofconstptr": [27, 30, 34], "plt00350": 27, "46576787980": 27, "abil": [27, 45], "persist": 27, "drastic": 27, "walltim": 27, "thread_multipl": 27, "ping": 27, "serial": 27, "async_out": [27, 40], "async_out_nfil": [27, 40], "writemlmf": 27, "asyncwrit": 27, "writeplotfil": [27, 34], "writesmallplotfil": 27, "statedata": 27, "spawn": [27, 40, 45], "oversubscrib": 27, "oversubscript": 27, "self": 27, "use_hdf5": 27, "hdf5_home": 27, "webpag": [27, 47], "writesinglelevelplotfilehdf5": 27, "writemultilevelplotfilehdf5": 27, "chombo": [27, 45], "plugin": 27, "dataset": [27, 34, 36, 45], "h5z": 27, "use_hdf5_sz": 27, "sz_home": 27, "use_hdf5_zfp": 27, "zfp_home": 27, "h5z_home": 27, "zlib": 27, "gzip": 27, "compression_level": 27, "config": [27, 45], "zfp_rate": 27, "rate": 27, "zfp_precis": 27, "zfp_accuraci": 27, "accuraci": 27, "zfp_revers": 27, "hdf5_chunk_siz": 27, "1024": [27, 34], "vol": 27, "connector": 27, "denable_write_memcpi": 27, "use_hdf5_async": 27, "abt_hom": 27, "async_hom": 27, "hdf5benchmark": 27, "interleav": 27, "characterist": 27, "overcom": 27, "writesinglelevelplotfilehdf5multidset": 27, "writemultilevelplotfilehdf5multidset": 27, "restart": [27, 34, 40], "readcheckpointfil": 27, "writecheckpointfil": 27, "chk00010": 27, "along": [27, 30, 36, 42, 45], "level_0": 27, "level_1": 27, "printout": 27, "fist": 27, "subsequ": 27, "checkpointnam": 27, "chk": [27, 40], "callbarri": 27, "prebuild": 27, "dirnam": 27, "subdirprefix_0": 27, "subdirprefix_nlevel": 27, "prebuilddirectorhierarchi": 27, "level_": 27, "io_buff": 27, "io_buffer_s": 27, "headerfil": 27, "rdbuf": 27, "pubsetbuf": 27, "headerfilenam": 27, "c_str": 27, "trunc": 27, "fileopenfail": 27, "amrcoreadv": 27, "writeon": 27, "setnoutfil": 27, "multifabfilefullprefix": 27, "istringstream": 27, "restart_chkfil": 27, "getiobuffers": 27, "filecharptr": 27, "readandbcastfil": 27, "filecharptrstr": 27, "word": [27, 30, 42], "getlin": 27, "gotonextlin": 27, "stoi": 27, "stod": 27, "readfrom": 27, "setboxarrai": 27, "setdistributionmap": 27, "make_uniqu": [27, 30], "refratio": 27, "async": 28, "massiv": [29, 47], "parabol": 29, "represent": [29, 31, 40, 45], "flat": 29, "hybrid": [29, 45], "lbnl": [29, 47], "mllinop": 30, "mlnodelaplacian": 30, "sigma": [30, 31], "a_ncomp": 30, "noth": 30, "setscalar": 30, "setacoeff": 30, "amrlev": 30, "regardless": 30, "sole": 30, "appreci": 30, "gain": 30, "setsigma": 30, "a_sigma": 30, "a_const_sigma": 30, "a_sol": 30, "a_rh": 30, "a_tol_rel": 30, "a_tol_ab": 30, "guess": 30, "hand": [30, 31, 44], "toler": 30, "hard": [30, 34], "ax": [30, 34], "residu": 30, "max_norm": 30, "always_use_bnorm": 30, "compresidu": 30, "a_r": 30, "getgradsolut": 30, "a_grad_sol": 30, "getflux": 30, "a_flux": 30, "setdomainbc": 30, "linopbctyp": 30, "lobc": 30, "hibc": 30, "inhomogneumann": 30, "setcoarsefinebc": 30, "crse": 30, "crse_ratio": 30, "setlevelbc": 30, "levelbcdata": 30, "robinbc_a": 30, "robinbc_b": 30, "robinbc_f": 30, "dphi": 30, "overset": 30, "omask": 30, "setoversetmask": 30, "a_dmask": 30, "setverbos": [30, 40], "setbottomverbos": 30, "bottom": 30, "setmaxit": 30, "setfixedit": 30, "setmaxfmgit": 30, "switch": [30, 34, 43], "setmaxcoarseninglevel": 30, "mlabeclap": 30, "relax": 30, "biconjug": 30, "setbottomsolv": 30, "bottomsolv": 30, "bicgstab": [30, 31], "cg": 30, "conjug": 30, "matrix": [30, 44], "symmetr": 30, "smoother": 30, "gauss": 30, "seidel": 30, "bicgcg": 30, "cgbicg": 30, "setagglomer": 30, "setconsolid": 30, "setconsolidationgrids": 30, "setconsolidationratio": 30, "setconsolidationstrategi": 30, "setthrowexcept": 30, "wherebi": 30, "caught": [30, 40], "chain": 30, "nodalprojector": 30, "nodal_projector": 30, "setmaxord": 30, "maxord": 30, "setter": 30, "setmetricterm": 30, "setrzcorrect": 30, "radial": 30, "precondition": 30, "boomeramg": 30, "gmre": 30, "pcg": 30, "euclid": 30, "init_hypr": [30, 40], "tri": 30, "clone": [30, 43, 45], "bigint": 30, "hypre_dir": 30, "hypre_path": 30, "90": 30, "smi": 30, "compute_cap": 30, "abeclaplacian": 30, "nodetensorlap": 30, "singular": 30, "replac": 30, "row": [30, 36, 44], "adjust_singular_matrix": 30, "hypre_solv": 30, "hypre_precondition": 30, "recompute_precondition": 30, "recomput": 30, "write_matrix_fil": 30, "overwrite_existing_matrix_fil": 30, "bamg_verbos": 30, "hypre_boomeramgsetprintlevel": 30, "bamg_log": 30, "hypre_boomeramgsetlog": 30, "bamg_coarsen_typ": 30, "hypre_boomeramgsetcoarsentyp": 30, "bamg_cycle_typ": 30, "hypre_boomeramgsetcycletyp": 30, "bamg_relax_typ": 30, "hypre_boomeramgsetrelaxtyp": 30, "bamg_relax_ord": 30, "hypre_boomeramgsetrelaxord": 30, "bamg_num_sweep": 30, "hypre_boomeramgsetnumsweep": 30, "bamg_max_level": 30, "hypre_boomeramgsetmaxlevel": 30, "bamg_strong_threshold": 30, "57": 30, "hypre_boomeramgsetstrongthreshold": 30, "bamg_interp_typ": 30, "hypre_boomeramgsetinterptyp": 30, "build_dir": 30, "petsc_dir": 30, "petsc_path": 30, "viscou": [30, 31], "implicitli": [30, 31], "motif": [30, 45], "eta": 30, "u_x": 30, "_x": 30, "u_i": 30, "_y": 30, "u_z": 30, "_z": 30, "v_x": [30, 45], "w_x": 30, "v_y": [30, 45], "w_z": 30, "v_z": [30, 45], "w_y": 30, "viscos": 30, "mlebabeclaplacian": 30, "mltensorop": 30, "mlebtensorop": 30, "divtau": 30, "bc_lo": 30, "bc_hi": 30, "ebtensorop": 30, "del": 30, "grad": [30, 36], "sol": 30, "ebfactori": 30, "approxim": 30, "amrex_lo_bctyp": 30, "nlev": 30, "edge_ba": 30, "average_cellcenter_to_fac": 30, "getarrofptr": 30, "etan": 30, "setshearviscos": 30, "getarrofconstptr": 30, "setebshearviscos": 30, "vel": [30, 34], "getvecofptr": 30, "mathbf": 30, "multicompon": 30, "phi_j": 30, "mathbb": 30, "mlcelllinop": 30, "getncomp": 30, "fflux": 30, "mc": 30, "setcfstrategi": 30, "cfstrategi": 30, "ghostnod": 30, "layer": [30, 43], "outermost": 30, "dark": 30, "underneath": 30, "mcnodelinop": 30, "straightforward": 30, "tensor": 31, "heatequation_ex3_c": 31, "curvilinear": 31, "govern": [32, 47], "heaviest": 32, "tend": [32, 34, 40, 45], "sfc": [32, 40], "morton": 32, "partit": 32, "phrase": 33, "dual": 33, "multicor": 33, "fabarray_mfit": 33, "tile_s": [33, 34, 40], "pad": 34, "vx": 34, "vy": 34, "vz": 34, "flag1": 34, "flag2": 34, "rdata": 34, "idata": 34, "myparticlecontain": 34, "mypc": 34, "ao": 34, "soa": 34, "laid": [34, 35], "arrang": 34, "nstructreal": 34, "nstructint": 34, "narrayr": 34, "narrayint": 34, "distinct": 34, "clearli": 34, "ineffici": 34, "stuff": 34, "infrequ": 34, "Of": 34, "won": 34, "rr": 34, "amr_cor": 34, "mixtur": 34, "do_til": [34, 40], "bin": 34, "offset": 34, "reassign": 34, "tutorials_html": 34, "particles_tutori": 34, "makemfit": 34, "getparticl": 34, "make_pair": 34, "localtileindex": 34, "particletyp": 34, "nextid": 34, "real_attrib": 34, "int_attrib": 34, "push_back": 34, "push_back_r": 34, "push_back_int": 34, "perturb": 34, "addrealcomp": 34, "addintcomp": 34, "communicate_this_comp": 34, "num_runtime_r": 34, "num_runtime_int": 34, "crucial": [34, 45], "defineandreturnparticletil": 34, "particle_til": 34, "flavor": 34, "myparconstit": 34, "parconstitertyp": 34, "pti": 34, "getarrayofstruct": 34, "outer": 34, "myparit": 34, "paritertyp": 34, "particle_attribut": 34, "getstructofarrai": 34, "realvector": 34, "real_comp0": 34, "getrealdata": 34, "intvector": 34, "int_comp1": 34, "getintdata": 34, "numparticl": 34, "interoper": 34, "amrex_particle_r": 34, "iso_c_bind": 34, "c_int": 34, "incompat": 34, "vice": 34, "versa": 34, "electr": 34, "gm": 34, "ey": 34, "ez": 34, "nstride": 34, "datashap": 34, "exfab": 34, "eyfab": 34, "ezfab": 34, "interpolate_c": 34, "date": [34, 43], "uneven": 34, "invers": 34, "rhofab": 34, "deposit_c": 34, "sumboundari": 34, "surround": 34, "exert": [34, 35], "beyond": 34, "distanc": 34, "n_g": 34, "influenc": 34, "shade": 34, "pack": 34, "lie": 34, "neighborparticlecontain": 34, "amrex_neighborparticlecontain": 34, "clearneighbor": 34, "neighborlist": [34, 45], "mdparticlecontain": 34, "computeforc": 34, "summat": 34, "bl_profil": 34, "plev": 34, "gid": 34, "tid": 34, "ptile": 34, "nbor_data": 34, "m_neighbor_list": 34, "pstruct": 34, "amrex_for_1d": 34, "p1": 34, "pidx": 34, "ay": 34, "az": 34, "p2": 34, "getneighbor": 34, "param": 34, "min_r": 34, "cutoff": 34, "coef": 34, "collis": 34, "partner": 34, "scan": 34, "subclass": 34, "check_pair": 34, "amrex_plotfileutil": 34, "output_lev": 34, "outputrr": 34, "particle0": 34, "plot": [34, 36, 40, 42, 43], "human": 34, "mainli": 34, "ascii": [34, 36], "deck": 34, "poor": 34, "particles_nfil": [34, 40], "nreader": 34, "nparts_per_read": 34, "said": 34, "100000": 34, "datadigits_read": 34, "pre": [34, 36, 45], "mid": 34, "use_prepost": 34, "speed": [34, 40], "aggregation_typ": 34, "aggreg": 34, "aggregation_buff": 34, "essenc": 34, "straight": 34, "electrostaticp": 34, "electrosticparticlecontain": 34, "particularli": [35, 43, 45], "lagrangian": 35, "drag": [35, 45], "goal": 35, "c_src": [36, 43], "ebas": 36, "needs_f90_src": 36, "infil": 36, "extract": 36, "raw": 36, "postproc_doc": 36, "fhdex": 36, "multispec": 36, "reg_equil_2d_bench": 36, "plt0000003": 36, "home": [36, 45, 47], "cat": 36, "30000000000000004": 36, "rho1": 36, "rho2": 36, "9993686498953114": 36, "60059557892152249": 36, "0502705977511799": 36, "0003554204928884": 36, "59935306004478783": 36, "0508550827449006": 36, "0008794559257246": 36, "5990345897671786": 36, "0500559828760208": 36, "9997442287698322": 36, "60001913923213179": 36, "0508294996618532": 36, "0001395958111967": 36, "60021852440041579": 36, "0487977074444519": 36, "0000989976613459": 36, "60022830117083248": 36, "0489080268816791": 36, "zone": 36, "bring": 36, "reg_detbubble_2d_bench": 36, "plt0000000": 36, "020039805": 36, "00845645443": 36, "01703166127": 36, "01450634203": 36, "01737072831": 36, "01479513491": 36, "rho3": 36, "01436258458": 36, "003022939351": 36, "00610148453": 36, "003167240107": 36, "006392740399": 36, "c3": 36, "006190179458": 36, "averaged_velx": 36, "0001120979347": 36, "02141254606": 36, "averaged_v": 36, "shifted_velx": 36, "0001151524563": 36, "02145887678": 36, "shifted_v": 36, "05687549245": 36, "797693135e": 36, "308": 36, "spinodal_charges_2d_bench": 36, "plt0000002": 36, "plt0000004": 36, "plt0000006": 36, "0000000000000001e": 36, "0000000000000002e": 36, "1999999999999999e": 36, "imag": 36, "silentm": 36, "palett": [36, 45], "349724636": 36, "ls": [36, 45], "ppm": 36, "pixmap": 36, "imagemagick": 36, "seen": 36, "enlarg": 36, "extrema": 36, "369764441": 36, "277319027e": 36, "174083806": 36, "02159682815": 36, "4954432542": 36, "009113491527": 36, "005235152063": 36, "005366192156": 36, "157052145": 36, "156713078": 36, "03595941273": 36, "4924203149": 36, "4922760141": 36, "01530367099": 36, "005172583789": 36, "005287367803": 36, "004924487345": 36, "height": [36, 45], "rapid": [38, 45], "prototyp": 38, "coupl": [38, 45], "ai": 38, "ml": 38, "pyamrex": 38, "nightli": 39, "reserv": 40, "blprofil": 40, "amrmesh": [40, 45], "level_0_geom": 40, "amrinfo": 40, "amr_info": 40, "ref_ratio_vect": 40, "setmaxgrids": 40, "setblockingfactor": 40, "setnprop": 40, "enhanc": 40, "setgrideff": 40, "n_error_buf_x": 40, "n_error_buf_i": 40, "n_error_buf_z": 40, "refine_grid_layout_x": 40, "refine_grid_layout_i": 40, "refine_grid_layout_z": 40, "check_input": 40, "subcycling_mod": 40, "regrid_on_restart": 40, "force_regrid_level_zero": 40, "compute_new_dt_on_regrid": 40, "initial_grid_fil": 40, "regrid_fil": 40, "plotfile_on_restart": 40, "file_name_digit": 40, "checkpoint_files_output": 40, "check_fil": 40, "chk00000": 40, "chk001000": 40, "check_int": 40, "check_per": 40, "elaps": 40, "checkpoint_nfil": 40, "plot_files_output": 40, "plot_fil": [40, 45], "plt001000": 40, "plot_int": 40, "plot_per": 40, "plot_log_p": 40, "plot_max_level": 40, "plot_nfil": 40, "plot_var": 40, "derive_plot_var": 40, "small_plot_fil": 40, "smallplt": 40, "smallplt00000": 40, "smallplt001000": 40, "small_plot_int": 40, "small_plot_p": 40, "small_plot_log_p": 40, "small_plot_var": 40, "derive_small_plot_var": 40, "message_int": 40, "action": 40, "dump_and_continu": 40, "stop_run": 40, "dump_and_stop": 40, "plot_and_continu": 40, "small_plot_and_continu": 40, "write_plotfile_with_checkpoint": 40, "ask": [40, 44, 45, 47], "run_log": 40, "run_log_ters": 40, "ters": 40, "grid_log": 40, "data_log": 40, "podvector": 40, "abort_on_unused_input": [40, 43], "queryunusedinput": 40, "properti": [40, 45], "max_gpu_stream": 40, "omp_thread": 40, "nosmt": 40, "aka": 40, "hyperthread": 40, "smt": 40, "memory_log": 40, "memlog": 40, "roundrobin": 40, "rrsfc": 40, "extend_domain_fac": 40, "perpendicularli": 40, "num_coarsen_opt": 40, "erron": 40, "geometryshop": 40, "all_regular": 40, "parser_funct": 40, "math": 40, "triangl": 40, "shift": [40, 45], "small_volfrac": 40, "cover_multiple_cut": 40, "unfix": 40, "maxit": 40, "handle_sigsegv": 40, "sigsegv": 40, "handle_sigterm": 40, "sigterm": 40, "handle_sigint": 40, "sigint": 40, "handle_sigabrt": 40, "sigabgt": 40, "handle_sigfp": 40, "sigfp": 40, "fe_invalid": 40, "fe_divbyzero": 40, "fe_overflow": 40, "handle_sigil": 40, "sigil": 40, "runtime_error": 40, "thrown": 40, "hypre_init": 40, "hypre_spgemm_use_vendor": 40, "spgemm": 40, "hypre_spmv_use_vendor": 40, "spmv": 40, "hypre_sptrans_use_vendor": 40, "sptran": 40, "background": 40, "v24": 40, "10000000000": 40, "1e10": 40, "the_comms_arena_init_s": 40, "long_max": 40, "the_comms_arena_release_threshold": 40, "vector_growth_factor": 40, "growth": 40, "do_mem_efficient_sort": 40, "comm_tile_s": 40, "enter": [40, 45], "print_threshold": 40, "percent": 40, "carena": 40, "memprof_en": 40, "output_fil": 40, "dump": 40, "dev": [40, 45], "su": 41, "ite": 41, "onlinear": 41, "di": 41, "fferenti": 41, "gebraic": 41, "olver": 41, "six": 41, "od": 41, "sensit": 41, "arkod": [41, 44], "rung": [41, 44], "kutta": [41, 44], "ida": 41, "differenti": 41, "algebra": 41, "kinsol": 41, "nonlinear": 41, "hacc": 42, "adrian": 42, "pope": 42, "argonn": 42, "nation": 42, "lab": 42, "fast": [42, 44], "fourier": 42, "fft": 42, "fftw": 42, "thumb": 42, "vertic": 42, "prime": 42, "eg": 42, "checkdecomposit": 42, "submit": 42, "testdfft": 42, "testfdfft": 42, "versu": 42, "n_x": 42, "n_y": 42, "n_z": 42, "n_": 42, "regularli": 42, "m_": 42, "bi": 42, "bj": 42, "bk": 42, "analog": 42, "evid": 42, "sophist": [42, 45], "reorder": 42, "dft": 42, "cel": 42, "anl": 42, "travi": 43, "deliber": 43, "night": 43, "hous": 43, "runner": 43, "regressiontest": 43, "likelihood": 43, "regression_test": 43, "ini": 43, "testtopdir": 43, "webtopdir": 43, "regtest": 43, "make_benchmark": 43, "browser": [43, 45], "single_test": 43, "testnam": 43, "testname1": 43, "testname2": 43, "testname3": 43, "mlmg_fi_poiscom": 43, "abeclaplacian_f": 43, "inputfil": 43, "rt": 43, "restarttest": 43, "usempi": 43, "numproc": 43, "useomp": 43, "numthread": 43, "compiletest": 43, "dovi": 43, "outputfil": 43, "testsrctre": 43, "blob": 43, "whatev": 44, "timeintegr": 44, "set_rh": 44, "amrex_timeintegr": 44, "sold": 44, "snew": 44, "state_data": 44, "rhs_fun": 44, "source_fun": 44, "wish": [44, 45], "butcher": 44, "quotat": 44, "forwardeul": 44, "rungekutta": 44, "rk": 44, "tableau": 44, "trapezoid": 44, "ssprk3": 44, "rk4": 44, "triangular": 44, "diagon": 44, "imex": 44, "multir": 44, "mri": 44, "use_sundi": 44, "v6": 44, "permit": 44, "modif": 44, "erk": 44, "dirk": 44, "infinitesim": 44, "im": 44, "set_imex_rh": 44, "set_fast_rh": 44, "fast_typ": 44, "method_i": 44, "method_": 44, "fast_method": 44, "WITH": 44, "infatesim": 44, "arkode_bogacki_shampine_4_2_3": 44, "arkode_ark2_dirk_3_1_2": 44, "arkode_ark2_erk_3_1_2": 44, "arkode_mis_kw3": 44, "arkode_knoth_wolke_3_3": 44, "heartili": 45, "amrvis1d": 45, "amrvis2d": 45, "amrvis3d": 45, "spreadsheet": 45, "handi": 45, "tex": 45, "pdf": [45, 47], "pdflatex": 45, "ver": 45, "volpack": 45, "libvolpack1": 45, "debian": 45, "sudo": 45, "apt": 45, "osf": 45, "lesstif": 45, "exhibit": 45, "anomali": 45, "openmotif": 45, "xm": 45, "devel": 45, "volpackdir": 45, "tmp": 45, "cp": 45, "pltxxxxx": 45, "xxxxx": 45, "filenam": 45, "anim": 45, "mymultifab_h": 45, "click": [45, 47], "matlab": 45, "idiosyncrasi": 45, "outlin": 45, "furthermor": 45, "x11": 45, "cask": 45, "xquartz": 45, "opt": 45, "wci": 45, "llnl": 45, "pseudocolor": 45, "draw": 45, "wirefram": 45, "dismiss": 45, "threeslic": 45, "movi": 45, "1v": 45, "tee": 45, "plt02000": 45, "plt03000": 45, "plt04000": 45, "plt05000": 45, "plt06000": 45, "plt07000": 45, "plt08000": 45, "plt09000": 45, "plt10000": 45, "press": 45, "button": 45, "vcr": 45, "panel": 45, "preview": 45, "screen": 45, "plt00100": 45, "myplt00100": 45, "this_is_my_plt00100": 45, "recogn": 45, "plt00100_old": 45, "pltx00100": 45, "h5": 45, "dropdown": 45, "v5": 45, "navig": 45, "ensembl": 45, "chose": 45, "cube": 45, "icon": 45, "hover": 45, "mous": 45, "json": 45, "plt00200": 45, "plt00300": 45, "plt00400": 45, "plt00500": 45, "plt00600": 45, "plt00700": 45, "plt00800": 45, "plt00900": 45, "write_series_fil": 45, "sh": 45, "reload": 45, "dialog": 45, "alphabet": 45, "contour": 45, "plofil": 45, "inspect": 45, "scroll": 45, "avi": 45, "framer": 45, "pipelin": 45, "popul": 45, "head": 45, "ihat": 45, "jhat": 45, "khat": 45, "arrow": 45, "glyph": 45, "orient": 45, "magnitud": 45, "visitchomboread": 45, "throughput": 45, "consequ": 45, "exploratori": 45, "experi": 45, "camera": 45, "angl": 45, "light": 45, "ipython": 45, "__version__": 45, "ds": 45, "plt00401": 45, "182": 45, "current_tim": 45, "00605694344696544": 45, "domain_dimens": 45, "domain_left_edg": 45, "183": 45, "domain_right_edg": 45, "24501": 45, "field_list": 45, "particle_mass": 45, "particle_position_x": 45, "particle_position_i": 45, "particle_position_z": 45, "particle_velocity_x": 45, "particle_velocity_i": 45, "particle_velocity_z": 45, "particle_mass_dens": 45, "render": 45, "slc": 45, "sliceplot": 45, "358": 45, "xlim": 45, "000000": 45, "245010": 45, "ylim": 45, "359": 45, "021": 45, "plt00401_slice_z_dens": 45, "png": 45, "create_scen": 45, "lens_typ": 45, "tfh": 45, "set_bound": 45, "1e8": 45, "1e15": 45, "set_log": 45, "grey_opac": 45, "scene": 45, "source_00": 45, "ytregion": 45, "09888770e": 45, "cm": 45, "left_edg": 45, "right_edg": 45, "19777540e": 45, "transfer_funct": 45, "code_length": 45, "122505": 45, "north_vector": 45, "81649658": 45, "40824829": 45, "width": 45, "367515": 45, "viewpoint": 45, "95423473": 45, "07": 45, "825": 45, "996": 45, "997": 45, "transferfunctionhelp": 45, "plt00401_render_dens": 45, "client": 45, "server": 45, "Such": 45, "prohibit": 45, "fortun": 45, "emul": 45, "anaconda": 45, "customiz": 45, "cori10": 45, "conda": 45, "numpi": 45, "pip": 45, "analyt": 45, "stabl": 45, "url": 45, "forth": 45, "parallel_comput": 45, "mpi4pi": 45, "toc": 45, "anchor": 45, "datasetseri": 45, "time_series_analysi": 45, "computation": 45, "volume_rend": 45, "parallel_object": 45, "revolv": 45, "glob": 45, "enable_parallel": 45, "base_dir1": 45, "nyx_run_p1": 45, "base_dir2": 45, "nyx_run_p2": 45, "base_dir3": 45, "nyx_run_p3": 45, "glob1": 45, "glob2": 45, "glob3": 45, "ts": 45, "num_fram": 45, "num_revol": 45, "arang": 45, "z_veloc": 45, "1e": 45, "9e": 45, "cam": 45, "rot_cent": 45, "sigma_clip": 45, "haswel": 45, "nid00009": 45, "yt_vi": 45, "srun": 45, "cpu_bind": 45, "make_yt_movi": 45, "565": 45, "566": 45, "p003": 45, "957": 45, "103169376949795": 45, "958": 45, "28318531": 45, "p000": 45, "969": 45, "p002": 45, "0687808060674485": 45, "970": 45, "p001": 45, "973": 45, "0343922351851018": 45, "974": 45, "589": 45, "590": 45, "592": 45, "593": 45, "606": 45, "nearli": 45, "magic": 45, "matplotlib": 45, "divers": 45, "vtk": 45, "adio": 45, "adaptor": 45, "bridg": 45, "equip": 45, "amrmeshinsitubridg": 45, "use_sensei_insitu": 45, "linker": 45, "sensei_config": 45, "j4": 45, "damrex_sensei": 45, "dsensei_dir": 45, "lib64": 45, "gnuinstalldir": 45, "render_iso_catalyst_2d": 45, "frequenc": 45, "visitdir": 45, "session": 45, "rt_sensei_config": 45, "visit_rt_contour_alpha_10": 45, "rt_contour_": 45, "1555": 45, "815": 45, "raleigh": 45, "taylor": 45, "instabl": 45, "2048": 45, "repeat": 45, "pythonscript": 45, "rt_contour": 45, "insitu": 45, "eas": 45, "burden": 45, "wrangl": 45, "virtualbox": 45, "deploy": 45, "deploi": 45, "ssh": 45, "modulefil": 45, "vim": 45, "salloc": 45, "render_iso_libsim_2d": 45, "anyon": 47, "happi": 47, "doxygen": 47, "fork": 47, "join": 47, "regress": 47, "question": 47, "copyright": 47, "bsd": 47, "licens": 47, "agreement": 47}, "objects": {"DistributionMapping": [[40, 0, 1, "", "strategy"], [40, 0, 1, "", "verbose"]], "amr": [[40, 0, 1, "", "blocking_factor"], [40, 0, 1, "", "blocking_factor_x"], [40, 0, 1, "", "blocking_factor_y"], [40, 0, 1, "", "blocking_factor_z"], [40, 0, 1, "", "check_file"], [40, 0, 1, "", "check_input"], [40, 0, 1, "", "check_int"], [40, 0, 1, "", "check_per"], [40, 0, 1, "", "checkpoint_files_output"], [40, 0, 1, "", "checkpoint_nfiles"], [40, 0, 1, "", "compute_new_dt_on_regrid"], [40, 0, 1, "", "data_log"], [40, 0, 1, "", "derive_plot_vars"], [40, 0, 1, "", "derive_small_plot_vars"], [40, 0, 1, "", "file_name_digits"], [40, 0, 1, "", "force_regrid_level_zero"], [40, 0, 1, "", "grid_eff"], [40, 0, 1, "", "grid_log"], [40, 0, 1, "", "initial_grid_file"], [40, 0, 1, "", "max_grid_size"], [40, 0, 1, "", "max_grid_size_x"], [40, 0, 1, "", "max_grid_size_y"], [40, 0, 1, "", "max_grid_size_z"], [40, 0, 1, "", "max_level"], [40, 0, 1, "", "message_int"], [40, 0, 1, "", "n_cell"], [40, 0, 1, "", "n_error_buf"], [40, 0, 1, "", "n_error_buf_x"], [40, 0, 1, "", "n_error_buf_y"], [40, 0, 1, "", "n_error_buf_z"], [40, 0, 1, "", "n_proper"], [40, 0, 1, "", "plot_file"], [40, 0, 1, "", "plot_files_output"], [40, 0, 1, "", "plot_int"], [40, 0, 1, "", "plot_log_per"], [40, 0, 1, "", "plot_max_level"], [40, 0, 1, "", "plot_nfiles"], [40, 0, 1, "", "plot_per"], [40, 0, 1, "", "plot_vars"], [40, 0, 1, "", "plotfile_on_restart"], [40, 0, 1, "", "ref_ratio"], [40, 0, 1, "", "ref_ratio_vect"], [40, 0, 1, "", "refine_grid_layout"], [40, 0, 1, "", "refine_grid_layout_x"], [40, 0, 1, "", "refine_grid_layout_y"], [40, 0, 1, "", "refine_grid_layout_z"], [40, 0, 1, "", "regrid_file"], [40, 0, 1, "", "regrid_int"], [40, 0, 1, "", "regrid_on_restart"], [40, 0, 1, "", "restart"], [40, 0, 1, "", "run_log"], [40, 0, 1, "", "run_log_terse"], [40, 0, 1, "", "small_plot_file"], [40, 0, 1, "", "small_plot_int"], [40, 0, 1, "", "small_plot_log_per"], [40, 0, 1, "", "small_plot_per"], [40, 0, 1, "", "small_plot_vars"], [40, 0, 1, "", "subcycling_mode"], [40, 0, 1, "", "verbose"], [40, 0, 1, "", "write_plotfile_with_checkpoint"]], "amrex": [[40, 0, 1, "", "abort_on_out_of_gpu_memory"], [40, 0, 1, "", "abort_on_unused_inputs"], [40, 0, 1, "", "async_out"], [40, 0, 1, "", "async_out_nfiles"], [40, 0, 1, "", "fpe_trap_invalid"], [40, 0, 1, "", "fpe_trap_overflow"], [40, 0, 1, "", "fpe_trap_zero"], [40, 0, 1, "", "handle_sigabrt"], [40, 0, 1, "", "handle_sigfpe"], [40, 0, 1, "", "handle_sigill"], [40, 0, 1, "", "handle_sigint"], [40, 0, 1, "", "handle_sigsegv"], [40, 0, 1, "", "handle_sigterm"], [40, 0, 1, "", "hypre_spgemm_use_vendor"], [40, 0, 1, "", "hypre_spmv_use_vendor"], [40, 0, 1, "", "hypre_sptrans_use_vendor"], [40, 0, 1, "", "init_hypre"], [40, 0, 1, "", "init_snan"], [40, 0, 1, "", "max_gpu_streams"], [40, 0, 1, "", "memory_log"], [40, 0, 1, "", "omp_threads"], [40, 0, 1, "", "signal_handling"], [40, 0, 1, "", "the_arena_init_size"], [40, 0, 1, "", "the_arena_is_managed"], [40, 0, 1, "", "the_arena_release_threshold"], [40, 0, 1, "", "the_async_arena_release_threshold"], [40, 0, 1, "", "the_comms_arena_init_size"], [40, 0, 1, "", "the_comms_arena_release_threshold"], [40, 0, 1, "", "the_device_arena_init_size"], [40, 0, 1, "", "the_device_arena_release_threshold"], [40, 0, 1, "", "the_managed_arena_init_size"], [40, 0, 1, "", "the_managed_arena_release_threshold"], [40, 0, 1, "", "the_pinned_arena_init_size"], [40, 0, 1, "", "the_pinned_arena_release_threshold"], [40, 0, 1, "", "throw_exception"], [40, 0, 1, "", "use_gpu_aware_mpi"], [40, 0, 1, "", "vector_growth_factor"], [40, 0, 1, "", "verbose"]], "amrex.device": [[40, 0, 1, "", "verbose"]], "amrex.mf": [[40, 0, 1, "", "alloc_single_chunk"]], "amrex.parmparse": [[40, 0, 1, "", "verbose"]], "eb2": [[40, 0, 1, "", "cover_multiple_cuts"], [40, 0, 1, "", "extend_domain_face"], [40, 0, 1, "", "geom_type"], [40, 0, 1, "", "max_grid_size"], [40, 0, 1, "", "maxiter"], [40, 0, 1, "", "num_coarsen_opt"], [40, 0, 1, "", "parser_function"], [40, 0, 1, "", "small_volfrac"], [40, 0, 1, "", "stl_center"], [40, 0, 1, "", "stl_file"], [40, 0, 1, "", "stl_reverse_normal"], [40, 0, 1, "", "stl_scale"]], "fabarray": [[40, 0, 1, "", "comm_tile_size"], [40, 0, 1, "", "mfiter_tile_size"]], "geometry": [[40, 0, 1, "", "coord_sys"], [40, 0, 1, "", "is_periodic"], [40, 0, 1, "", "prob_extent"], [40, 0, 1, "", "prob_hi"], [40, 0, 1, "", "prob_lo"]], "particles": [[40, 0, 1, "", "do_mem_efficient_sort"], [40, 0, 1, "", "do_tiling"], [40, 0, 1, "", "particles_nfiles"], [40, 0, 1, "", "tile_size"]], "tiny_profiler": [[40, 0, 1, "", "device_synchronize_around_region"], [40, 0, 1, "", "enabled"], [40, 0, 1, "", "memprof_enabled"], [40, 0, 1, "", "output_file"], [40, 0, 1, "", "print_threshold"], [40, 0, 1, "", "verbose"]], "vismf": [[40, 0, 1, "", "verbose"]]}, "objtypes": {"0": "py:data"}, "objnames": {"0": ["py", "data", "Python data"]}, "titleterms": {"type": [0, 6], "profil": [0, 1, 2, 15, 16, 21, 40], "tini": [0, 40], "output": [0, 27], "hot": 0, "spot": 0, "load": [0, 32, 33], "balanc": [0, 32, 33], "full": 0, "trace": 0, "commun": [0, 40], "instrument": 0, "c": [0, 6, 21], "code": [0, 2, 3, 5, 23], "1": [0, 2], "A": [0, 44], "scope": 0, "timer": 0, "bl_profil": 0, "2": [0, 2, 42], "name": 0, "bl_profile_var": 0, "3": 0, "doesn": 0, "t": [0, 2], "auto": 0, "start": [0, 19, 24], "bl_profile_var_n": 0, "4": [0, 42], "design": 0, "sub": 0, "region": 0, "bl_profile_region": 0, "fortran90": 0, "option": [0, 8, 21], "amrprofpars": 0, "amrex": [1, 6, 8, 9, 21, 25, 29, 45, 47], "base": 1, "tool": [1, 10, 16], "time": [2, 42, 44], "sequenc": 2, "0": 2, "5": 2, "s": [2, 47], "advect": 2, "gaussian": 2, "us": [2, 21, 44, 45], "singlevortex": 2, "tutori": [2, 12, 23, 42, 45], "The": [2, 19, 34], "analyt": 2, "veloc": 2, "field": [2, 45], "distort": 2, "restor": 2, "origin": 2, "configur": [2, 21, 45], "red": 2, "green": 2, "blue": 2, "box": [2, 6, 21, 42], "indic": 2, "grid": [2, 6, 11, 26, 33], "amr": [2, 4, 5, 6, 19, 40], "level": [2, 15], "ell": 2, "amrcor": [2, 3, 40], "sourc": [2, 3, 5], "detail": [2, 21], "amrmesh": 2, "paramet": [2, 6, 21, 30, 34, 40], "tagbox": 2, "cluster": 2, "fillpatchutil": 2, "interpolat": 2, "fluxregist": 2, "amrparticl": 2, "amrpargdb": 2, "exampl": [2, 4, 6, 15, 21, 23], "advection_amrcor": 2, "equat": [2, 23], "structur": [2, 12], "amrcoreadv": 2, "class": [2, 4, 6, 21, 30, 40], "regrid": [2, 40], "fillpatch": 2, "amrlevel": [4, 45], "statedata": 4, "levelbld": 4, "advection_amrlevel": 4, "particl": [4, 21, 34, 35, 40, 45], "dimension": [6, 12], "vector": [6, 21, 45], "arrai": [6, 34, 42], "gpuarrai": [6, 21], "array1d": [6, 21], "array2d": [6, 21], "array3d": [6, 21], "real": 6, "long": 6, "paralleldescriptor": 6, "parallelcontext": 6, "print": 6, "parmpars": [6, 45], "input": [6, 21, 34], "file": [6, 8, 27], "math": 6, "express": 6, "enum": 6, "overrid": 6, "command": 6, "line": 6, "argument": 6, "set": [6, 34], "valu": 6, "insid": 6, "function": [6, 12, 21], "share": 6, "flag": 6, "pars": 6, "parser": 6, "initi": [6, 12, 34], "final": 6, "intvect": [6, 21], "indextyp": [6, 21], "dim3": 6, "xdim3": 6, "realbox": 6, "geometri": [6, 21, 40], "boxarrai": 6, "distributionmap": 6, "basefab": [6, 21], "farraybox": [6, 21], "iarraybox": [6, 21], "array4": 6, "fabarrai": 6, "multifab": [6, 21], "imultifab": 6, "mfiter": 6, "tile": [6, 40], "without": 6, "comparison": [6, 21], "right": [6, 45], "left": [6, 45], "face": 6, "center": [6, 30], "nodal": 6, "index": 6, "compar": 6, "grow": 6, "cell": [6, 12, 30], "multipl": 6, "fortran": [6, 8, 20, 34], "kernel": [6, 15, 21], "parallelfor": 6, "ghost": 6, "boundari": [6, 12, 13, 30, 40], "condit": [6, 30], "mask": 6, "owner": 6, "overlap": 6, "point": 6, "fine": 6, "memori": [6, 21, 40], "alloc": [6, 21], "abort": 6, "assert": [6, 21], "backtrac": 6, "basic": [7, 10, 19, 40], "build": [8, 9, 15, 21, 23, 45], "gnu": [8, 21, 45], "make": [8, 21, 45], "dissect": 8, "simpl": [8, 44], "import": 8, "variabl": [8, 21], "tweak": 8, "system": [8, 15, 45], "specifi": 8, "your": 8, "own": 8, "compil": [8, 43, 45], "gcc": 8, "maco": [8, 45], "ccach": 8, "libamrex": 8, "cmake": [8, 21, 45], "custom": 8, "refer": 8, "section": 8, "gpu": [8, 10, 21, 22], "support": [8, 21], "relat": [8, 10], "project": 8, "target": 8, "avail": 8, "compon": [8, 30, 34], "window": 8, "spack": 8, "debug": 10, "break": 10, "debugg": 10, "cuda": [10, 21], "specif": [10, 21], "test": [10, 39, 43], "amd": 10, "rocm": 10, "intel": 10, "dual": 11, "approach": 11, "geometr": 12, "databas": 12, "implicit": 12, "eb2": 12, "geometryshop": 12, "indexspac": 12, "ebfarrayboxfactori": 12, "embed": [12, 13, 30, 40], "data": [12, 34, 45], "ebcellflagfab": 12, "small": 12, "problem": 12, "redistribut": [12, 34, 42], "finit": 12, "volum": 12, "discret": 12, "illustr": 12, "cut": 12, "two": 12, "And": 12, "stabil": 12, "flux": 12, "state": 12, "linear": [12, 30, 31], "solver": [12, 23, 30, 31], "extern": [14, 16, 30, 40], "framework": 14, "craypat": 15, "high": 15, "applic": 15, "ipm": 15, "cross": 15, "platform": 15, "integr": [15, 44, 45], "perform": [15, 21], "monitor": 15, "cori": [15, 45], "run": [15, 23, 43], "summari": 15, "mpi": 15, "papi": 15, "counter": 15, "html": 15, "graph": 15, "gener": [15, 21, 45], "nsight": 15, "analysi": 15, "gui": 15, "tip": [15, 21], "comput": 15, "rooflin": 15, "frequent": 17, "ask": 17, "question": 17, "more": 17, "fork": 18, "join": 18, "get": [19, 24], "core": 19, "infrastructur": 19, "octre": 19, "interfac": [20, 38], "overview": 21, "strategi": 21, "openmp": 21, "work": 21, "distribut": [21, 40], "pictur": 21, "provid": 21, "mike": 21, "zingal": 21, "castro": 21, "team": 21, "sycl": 21, "enabl": 21, "hip": 21, "namespac": 21, "macro": 21, "arena": 21, "safe": 21, "asyncarrai": 21, "associ": 21, "each": 21, "reduct": 21, "elixir": 21, "async": [21, 27], "launch": 21, "nest": 21, "loop": 21, "block": 21, "size": 21, "offload": 21, "openacc": 21, "pragma": 21, "stream": 21, "synchron": 21, "an": [21, 45], "migrat": 21, "error": [21, 40], "check": 21, "content": [22, 24, 47], "download": 23, "hello": 23, "world": 23, "parallel": [23, 45], "heat": 23, "visual": [23, 45, 46], "guid": 23, "govern": 25, "steer": 25, "committe": 25, "current": 25, "roster": 25, "role": 25, "decis": 25, "process": [25, 36, 37], "appoint": 25, "technic": 25, "contributor": 25, "former": 25, "member": 25, "creation": 26, "plotfil": [27, 28], "hdf5": [27, 45], "compress": 27, "asynchron": 27, "altern": 27, "schema": 27, "checkpoint": [27, 28], "i": [28, 40], "o": [28, 40], "introduct": 29, "mlmg": 30, "oper": 30, "coeffici": 30, "stencil": 30, "curvilinear": 30, "coordin": 30, "tensor": 30, "solv": 30, "multi": 30, "particlecontain": 34, "struct": 34, "construct": 34, "particletil": 34, "ad": [34, 43], "runtim": [34, 40], "iter": 34, "over": 34, "pass": 34, "routin": 34, "interact": [34, 45], "mesh": 34, "short": 34, "rang": 34, "forc": 34, "io": 34, "post": [36, 37], "writeplotfiletoascii": 36, "fextract": 36, "fcompar": 36, "fboxinfo": 36, "fvarnam": 36, "ftime": 36, "fsnapshot": 36, "fnan": 36, "fextrema": 36, "faverag": 36, "fgradient": 36, "python": 38, "regress": [39, 43], "subcycl": 40, "control": 40, "map": 40, "handl": 40, "hypr": 40, "sundial": [41, 44], "swfft": 42, "pencil": 42, "from": 42, "continu": 43, "nightli": 43, "suit": 43, "local": [43, 45], "new": 43, "setup": 44, "pick": 44, "method": 44, "amrvi": 45, "2d": 45, "3d": 45, "imag": 45, "visit": 45, "format": 45, "paraview": 45, "iso": 45, "surfac": 45, "plot": 45, "yt": 45, "workstat": 45, "nersc": 45, "under": 45, "develop": 45, "jupyt": 45, "notebook": 45, "sensei": 45, "architectur": 45, "back": 45, "end": 45, "select": 45, "obtain": 45, "vm": 45, "catalyst": 45, "libsim": 45, "welcom": 47, "document": 47}, "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.viewcode": 1, "sphinx.ext.intersphinx": 1, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["AMReX_Profiling_Tools", "AMReX_Profiling_Tools_Chapter", "AmrCore", "AmrCore_Chapter", "AmrLevel", "AmrLevel_Chapter", "Basics", "Basics_Chapter", "BuildingAMReX", "BuildingAMReX_Chapter", "Debugging", "DualGrid", "EB", "EB_Chapter", "External_Frameworks_Chapter", "External_Profiling_Tools", "External_Profiling_Tools_Chapter", "Faq", "ForkJoin", "Fortran", "Fortran_Chapter", "GPU", "GPU_Chapter", "GettingStarted", "GettingStarted_Chapter", "Governance", "GridCreation", "IO", "IO_Chapter", "Introduction", "LinearSolvers", "LinearSolvers_Chapter", "LoadBalancing", "ManagingGridHierarchy_Chapter", "Particle", "Particle_Chapter", "Post_Processing", "Post_Processing_Chapter", "Python_Chapter", "Regression_Testing_Chapter", "RuntimeParameters", "SUNDIALS_top", "SWFFT", "Testing", "TimeIntegration_Chapter", "Visualization", "Visualization_Chapter", "index"], "filenames": ["AMReX_Profiling_Tools.rst", "AMReX_Profiling_Tools_Chapter.rst", "AmrCore.rst", "AmrCore_Chapter.rst", "AmrLevel.rst", "AmrLevel_Chapter.rst", "Basics.rst", "Basics_Chapter.rst", "BuildingAMReX.rst", "BuildingAMReX_Chapter.rst", "Debugging.rst", "DualGrid.rst", "EB.rst", "EB_Chapter.rst", "External_Frameworks_Chapter.rst", "External_Profiling_Tools.rst", "External_Profiling_Tools_Chapter.rst", "Faq.rst", "ForkJoin.rst", "Fortran.rst", "Fortran_Chapter.rst", "GPU.rst", "GPU_Chapter.rst", "GettingStarted.rst", "GettingStarted_Chapter.rst", "Governance.rst", "GridCreation.rst", "IO.rst", "IO_Chapter.rst", "Introduction.rst", "LinearSolvers.rst", "LinearSolvers_Chapter.rst", "LoadBalancing.rst", "ManagingGridHierarchy_Chapter.rst", "Particle.rst", "Particle_Chapter.rst", "Post_Processing.rst", "Post_Processing_Chapter.rst", "Python_Chapter.rst", "Regression_Testing_Chapter.rst", "RuntimeParameters.rst", "SUNDIALS_top.rst", "SWFFT.rst", "Testing.rst", "TimeIntegration_Chapter.rst", "Visualization.rst", "Visualization_Chapter.rst", "index.rst"], "titles": ["Types of Profiling", "AMReX-based Profiling Tools", "AmrCore Source Code: Details", "AmrCore Source Code", "Amr Class", "Amr Source Code", "Dimensionality", "Basics", "Building with GNU Make", "Building AMReX", "Debugging", "Dual Grid Approach", "Initializing the Geometric Database", "Embedded Boundaries", "External Frameworks", "CrayPat", "External Profiling Tools", "Frequently Asked Questions", "Fork-Join", "Getting Started", "Fortran Interface", "Overview of AMReX GPU Strategy", "GPU", "Downloading the Code", "Getting Started", "AMReX Governance", "Grid Creation", "Plotfile", "I/O (Plotfile, Checkpoint)", "AMReX Introduction", "MLMG and Linear Operator Classes", "Linear Solvers", "Load Balancing", "Gridding and Load Balancing", "The Particle", "Particles", "Post-Processing", "Post-Processing", "Python Interface", "Regression Testing", "Runtime Parameters", "SUNDIALS", "SWFFT", "Continuous Compilation Testing", "Time Integration", "Amrvis", "Visualization", "Welcome to AMReX\u2019s documentation"], "terms": {"amrex": [0, 2, 3, 4, 5, 7, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46], "s": [0, 4, 6, 8, 9, 10, 12, 13, 15, 17, 18, 19, 21, 23, 27, 30, 31, 34, 35, 40, 41, 42, 45], "built": [0, 2, 6, 8, 9, 12, 15, 17, 19, 21, 23, 24, 27, 30, 33, 40, 42, 45], "work": [0, 2, 4, 6, 8, 11, 15, 17, 19, 23, 27, 30, 32, 33, 34, 35, 36, 42, 44], "through": [0, 2, 8, 12, 13, 15, 21, 24, 25, 27, 30, 34, 43, 45, 47], "object": [0, 2, 4, 6, 12, 17, 19, 21, 27, 30, 34, 40, 42, 45], "stop": [0, 15, 21, 40], "base": [0, 2, 4, 6, 7, 8, 11, 12, 13, 15, 17, 19, 21, 23, 26, 30, 34, 40, 45, 47], "user": [0, 2, 6, 8, 9, 10, 15, 18, 19, 20, 21, 22, 23, 25, 26, 30, 34, 35, 36, 38, 40, 41, 42, 44, 45, 47], "place": [0, 6, 10, 21, 30, 34, 40, 45], "macro": [0, 6, 8, 19, 22], "an": [0, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 15, 17, 18, 19, 22, 23, 25, 26, 27, 30, 31, 32, 34, 35, 36, 40, 41, 43, 44, 47], "constructor": [0, 6, 12, 21, 30, 34, 40], "destructor": [0, 6, 21], "The": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 18, 20, 21, 23, 25, 26, 27, 28, 30, 31, 32, 35, 36, 38, 40, 42, 43, 44, 45, 46, 47], "result": [0, 2, 3, 6, 8, 13, 15, 17, 21, 23, 27, 30, 32, 40, 42, 43, 45], "from": [0, 2, 4, 5, 6, 8, 10, 12, 15, 17, 19, 21, 23, 26, 27, 30, 34, 36, 40, 43, 44, 45, 47], "ar": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 18, 19, 21, 22, 23, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 42, 43, 44, 45, 46, 47], "store": [0, 2, 3, 4, 6, 8, 12, 15, 17, 21, 27, 30, 34, 43, 45], "global": [0, 2, 4, 6, 10, 15, 21, 42, 45], "list": [0, 6, 8, 15, 17, 21, 30, 34, 36, 40, 43, 45], "consolid": 0, "print": [0, 7, 8, 10, 15, 17, 19, 21, 23, 27, 30, 40, 45], "dure": [0, 2, 4, 6, 18, 19, 21, 26, 27, 30, 34, 40, 45], "final": [0, 3, 4, 7, 9, 13, 15, 17, 19, 21, 23, 26, 34, 40], "defin": [0, 2, 4, 5, 6, 8, 11, 12, 19, 21, 26, 27, 30, 31, 33, 34, 35, 40, 43, 45], "flush": 0, "point": [0, 2, 4, 8, 10, 12, 15, 17, 19, 21, 23, 27, 30, 34, 40, 43, 45], "current": [0, 2, 6, 8, 12, 13, 15, 21, 22, 23, 27, 30, 34, 36, 40, 45], "ha": [0, 2, 5, 6, 8, 10, 12, 15, 17, 19, 21, 24, 25, 27, 30, 31, 32, 34, 40, 42, 45], "two": [0, 2, 3, 4, 6, 8, 17, 18, 19, 21, 23, 24, 27, 30, 34, 36, 40, 42, 44, 45], "To": [0, 2, 4, 6, 8, 10, 12, 15, 17, 19, 21, 23, 26, 27, 30, 34, 36, 43, 44, 45, 47], "enabl": [0, 6, 8, 10, 11, 13, 17, 18, 23, 27, 30, 34, 40, 45], "gnu": [0, 6, 9, 10, 17, 19, 23, 24, 36, 40], "make": [0, 2, 4, 6, 9, 10, 12, 15, 17, 19, 23, 24, 25, 27, 30, 34, 36, 40, 43], "edit": [0, 2, 4, 36, 45], "file": [0, 2, 4, 9, 10, 12, 15, 17, 19, 21, 23, 26, 28, 30, 34, 36, 40, 42, 43, 45], "gnumakefil": [0, 2, 4, 8, 21, 23, 27, 36, 45], "show": [0, 2, 3, 6, 8, 19, 21, 23, 27, 31, 34, 45], "tiny_profil": [0, 15, 17, 40], "true": [0, 2, 4, 6, 8, 10, 12, 15, 17, 19, 21, 23, 26, 27, 30, 34, 40, 44, 45], "fals": [0, 2, 6, 8, 12, 21, 30, 34, 36, 40, 43, 45], "If": [0, 2, 6, 8, 10, 12, 17, 19, 21, 23, 25, 26, 27, 30, 34, 40, 43, 44, 45], "build": [0, 2, 3, 4, 6, 12, 13, 17, 19, 22, 27, 29, 30, 31, 32, 34, 36, 37, 40, 43, 47], "cmake": [0, 9, 10, 24, 40], "set": [0, 2, 4, 5, 8, 10, 12, 15, 17, 18, 19, 21, 23, 25, 26, 27, 30, 32, 33, 40, 42, 43, 44, 45], "follow": [0, 2, 3, 6, 8, 10, 12, 15, 19, 21, 23, 26, 27, 30, 32, 34, 35, 36, 40, 41, 42, 44, 45], "flag": [0, 1, 8, 10, 12, 15, 19, 23, 27, 30, 34, 36, 40, 45], "amrex_tiny_profil": [0, 8], "ON": [0, 8, 45], "amrex_base_profil": [0, 8], "off": [0, 6, 8, 15, 21, 23, 30, 34, 40, 45], "you": [0, 2, 4, 6, 7, 8, 10, 12, 15, 17, 21, 23, 24, 26, 27, 30, 34, 36, 37, 40, 42, 43, 44, 45], "thi": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 36, 40, 42, 43, 44, 45, 47], "overrid": [0, 2, 8, 17, 25, 30, 40], "disabl": [0, 6, 8, 10, 30, 40], "At": [0, 2, 8, 19, 21, 30], "end": [0, 2, 4, 6, 10, 12, 15, 17, 19, 21, 30, 34], "run": [0, 2, 3, 4, 6, 8, 10, 16, 17, 21, 26, 27, 30, 33, 34, 36, 39, 40, 45], "summari": [0, 8], "exclus": [0, 27], "inclus": [0, 40], "function": [0, 2, 3, 4, 7, 8, 10, 15, 17, 18, 19, 20, 22, 23, 27, 30, 31, 34, 36, 38, 40, 42, 43, 44, 45, 47], "time": [0, 3, 4, 5, 6, 8, 10, 12, 15, 17, 19, 21, 23, 25, 26, 27, 29, 30, 34, 36, 40, 41, 45, 47], "written": [0, 6, 12, 20, 21, 27, 30, 38, 40, 42, 43], "stdout": [0, 15], "includ": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 17, 19, 21, 23, 24, 25, 27, 29, 30, 31, 32, 34, 35, 40, 41, 43, 44, 45, 47], "minimum": [0, 6, 15, 36, 40], "maximum": [0, 2, 6, 15, 21, 34, 36, 40], "over": [0, 2, 4, 6, 19, 21, 25, 26, 30, 35, 36, 37, 43, 45], "process": [0, 2, 6, 8, 10, 13, 15, 17, 18, 19, 21, 23, 26, 27, 30, 32, 33, 34, 40, 42, 45, 47], "spent": [0, 15, 27], "each": [0, 2, 3, 4, 6, 12, 13, 15, 17, 18, 19, 23, 26, 27, 30, 31, 32, 33, 34, 36, 40, 42, 43, 45, 47], "routin": [0, 2, 4, 6, 17, 27, 35, 36, 45], "well": [0, 2, 5, 6, 8, 10, 15, 21, 26, 31, 34, 40, 43, 44, 45], "averag": [0, 2, 6, 15, 27, 30, 36], "percentag": [0, 21], "total": [0, 6, 12, 15, 17, 21, 27, 32, 40, 42], "see": [0, 2, 3, 4, 6, 8, 9, 10, 12, 13, 17, 19, 20, 21, 22, 23, 25, 27, 30, 31, 33, 34, 36, 38, 40, 41, 43, 44, 45, 47], "sampl": [0, 2, 8, 15, 43, 44], "below": [0, 1, 4, 6, 8, 15, 19, 21, 23, 30, 34, 36, 40, 42, 45], "tinyprofil": [0, 1, 15, 21, 40], "across": [0, 5, 6, 8, 15, 32, 42], "min": [0, 6, 15, 21, 36], "avg": [0, 15], "max": [0, 2, 6, 15, 21, 30, 34, 36], "765": 0, "ncall": 0, "excl": 0, "mfix_level": 0, "evolvefluid": 0, "602": 0, "668": 0, "691": 0, "95": 0, "83": 0, "fabarrai": [0, 7, 10, 12, 17, 21, 40], "fillboundari": [0, 2, 6, 19, 21, 30, 34], "11081": 0, "0": [0, 4, 6, 8, 10, 12, 15, 19, 21, 23, 26, 27, 30, 32, 33, 34, 36, 40, 42, 43, 44, 45], "02195": 0, "03336": 0, "06617": 0, "75": 0, "fabarraybas": [0, 6], "getfb": 0, "22162": 0, "02031": 0, "02147": 0, "02275": 0, "29": [0, 15], "pc": [0, 8, 34], "writeasciifil": [0, 34], "00292": 0, "004072": 0, "004551": 0, "26": 0, "incl": 0, "evolv": [0, 2, 30, 44], "69": 0, "723": 0, "734": 0, "98": [0, 15], "23": [0, 6, 15, 45], "04236": 0, "05485": 0, "08826": 0, "5": [0, 6, 12, 15, 22, 23, 27, 30, 34, 36, 40, 42, 45], "00": [0, 15, 36, 45], "02149": 0, "automat": [0, 4, 6, 15, 21, 34, 43, 45], "write": [0, 2, 4, 5, 6, 8, 10, 15, 17, 19, 20, 21, 23, 25, 27, 30, 34, 36, 38, 40, 45, 47], "your": [0, 6, 9, 10, 12, 15, 17, 21, 23, 24, 34, 40, 43, 45, 47], "when": [0, 2, 4, 6, 8, 10, 11, 12, 15, 17, 18, 21, 23, 27, 30, 33, 34, 40, 42, 45], "reach": [0, 6, 12, 21], "howev": [0, 3, 6, 8, 12, 13, 15, 19, 21, 26, 27, 30, 34, 36, 40, 42, 43, 45], "mai": [0, 2, 6, 8, 10, 15, 17, 19, 21, 23, 27, 30, 34, 36, 40, 44, 45], "want": [0, 4, 6, 8, 15, 17, 20, 21, 23, 26, 30, 34, 38, 43, 44, 45], "partial": [0, 2, 12, 23, 30], "ensur": [0, 2, 6, 10, 17, 21, 26, 40], "inform": [0, 2, 3, 6, 8, 9, 10, 12, 15, 17, 19, 21, 23, 27, 34, 36, 40, 41, 43, 45], "save": [0, 2, 8, 12, 40, 45], "fail": [0, 6, 8, 21, 23, 30], "converg": 0, "expect": [0, 6, 21, 25, 27, 30], "out": [0, 6, 10, 21, 23, 27, 30, 34, 35, 36, 40, 45], "alloc": [0, 2, 7, 10, 11, 17, 22, 27, 32, 34, 40], "can": [0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 30, 33, 34, 36, 37, 40, 41, 42, 43, 44, 45, 46, 47], "insert": [0, 6, 15, 21], "line": [0, 2, 4, 8, 10, 15, 21, 23, 27, 30, 34, 36, 40, 43, 45], "bl_profile_tiny_flush": 0, "ani": [0, 2, 4, 6, 8, 9, 12, 15, 17, 21, 25, 27, 30, 34, 40, 43, 44, 47], "have": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 19, 21, 23, 26, 27, 30, 33, 34, 40, 42, 44, 45, 47], "bl_profile_var_stop": 0, "call": [0, 2, 4, 5, 6, 8, 10, 12, 15, 19, 20, 21, 23, 25, 27, 30, 34, 40, 42, 43, 45], "exit": 0, "deconstruct": 0, "e": [0, 2, 4, 6, 8, 9, 10, 12, 15, 18, 19, 21, 23, 25, 26, 27, 30, 31, 33, 34, 40, 43, 44, 45], "g": [0, 2, 4, 6, 8, 9, 10, 12, 15, 18, 19, 21, 23, 25, 26, 27, 30, 40, 44, 45], "properli": [0, 6, 7, 17, 19, 21, 27, 45], "main": [0, 2, 4, 6, 8, 19, 23, 36, 40, 43, 45], "should": [0, 6, 7, 8, 12, 15, 19, 20, 21, 23, 25, 27, 30, 32, 34, 36, 40, 42, 45], "zero": [0, 6, 10, 12, 21, 30, 31, 40], "all": [0, 2, 4, 6, 8, 10, 12, 15, 17, 18, 19, 20, 21, 23, 25, 26, 27, 30, 31, 34, 36, 38, 40, 42, 44, 45, 47], "therefor": [0, 6, 8, 19, 21, 22, 27, 32, 34], "recommend": [0, 6, 7, 8, 21, 27, 32, 34, 45], "easili": [0, 2, 4, 6, 30, 45], "identifi": [0, 10, 15], "outsid": [0, 6, 12, 21, 30, 34, 40], "mani": [0, 2, 4, 5, 6, 8, 9, 15, 17, 19, 21, 23, 25, 26, 27, 30, 34, 36, 38, 40, 42, 45], "possibl": [0, 2, 3, 6, 8, 9, 13, 15, 21, 30, 34, 35, 36, 40, 42], "immedi": [0, 2, 21, 27, 40, 45], "befor": [0, 2, 6, 8, 10, 15, 18, 19, 21, 26, 27, 30, 34, 42, 43, 45], "after": [0, 4, 6, 7, 8, 10, 12, 17, 18, 19, 21, 25, 27, 30, 34, 36, 40, 42, 43, 45], "checkpoint": [0, 4, 34, 40, 47], "also": [0, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 17, 18, 19, 21, 22, 23, 25, 27, 30, 31, 33, 34, 35, 38, 40, 42, 44, 45, 46], "sinc": [0, 2, 4, 12, 21, 25, 27, 34, 37, 40], "multipl": [0, 2, 8, 12, 13, 17, 21, 23, 26, 27, 30, 31, 34, 42, 45], "similar": [0, 6, 8, 10, 12, 19, 21, 27, 34, 45], "look": [0, 6, 8, 19, 21, 23, 34, 45], "wrap": [0, 19, 21], "accur": [0, 2, 40], "identif": [0, 15], "help": [0, 2, 6, 8, 10, 15, 17, 21, 43, 47], "us": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 19, 20, 22, 23, 26, 27, 30, 31, 32, 33, 34, 35, 36, 40, 41, 42, 43, 46, 47], "For": [0, 2, 6, 7, 8, 9, 10, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 27, 30, 31, 33, 34, 36, 38, 40, 41, 43, 44, 45, 47], "exampl": [0, 3, 5, 7, 8, 10, 12, 13, 17, 18, 19, 22, 24, 25, 26, 27, 30, 31, 34, 35, 36, 40, 41, 42, 43, 44, 45, 47], "top": [0, 8, 12, 27, 45], "three": [0, 6, 8, 9, 19, 21, 23, 26, 30, 34, 42, 45], "linear": [0, 8, 13, 27, 47], "solver": [0, 8, 13, 17, 24, 41, 45, 47], "test": [0, 6, 8, 12, 15, 21, 25, 27, 34, 40, 42, 45, 47], "mpi": [0, 6, 8, 10, 17, 18, 19, 21, 23, 24, 27, 29, 30, 32, 33, 34, 40, 42, 45], "mlpoisson": [0, 30], "fsmooth": [0, 30], "560": 0, "4775": 0, "4793": 0, "4815": 0, "34": [0, 15, 45], "97": [0, 34], "fappli": [0, 30], "114": 0, "1103": 0, "113": 0, "1167": 0, "8": [0, 2, 6, 8, 15, 19, 21, 26, 34, 36, 40, 42, 45], "48": [0, 6, 15, 26], "xpai": 0, "109": 0, "1013": 0, "1038": 0, "7": [0, 2, 6, 9, 15, 21, 23, 26, 30, 36, 40, 43, 45], "54": [0, 15], "In": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 27, 28, 30, 31, 34, 35, 36, 40, 41, 42, 45], "16": [0, 6, 15, 21, 26, 30, 36, 45], "box": [0, 4, 7, 10, 12, 19, 26, 27, 30, 34, 36, 45], "evenli": 0, "distribut": [0, 3, 6, 10, 12, 18, 27, 32, 33, 34, 42, 43, 45], "among": [0, 6, 45], "abov": [0, 2, 4, 6, 8, 10, 21, 25, 27, 30, 34, 42, 43, 44, 45], "perfectli": [0, 30, 45], "veri": [0, 6, 8, 11, 12, 19, 27, 30, 34, 40], "differ": [0, 2, 3, 4, 6, 8, 10, 11, 12, 13, 15, 17, 18, 19, 21, 26, 27, 30, 33, 34, 42, 44, 45, 47], "sometim": [0, 6, 8, 21, 30, 45], "mislead": [0, 40], "we": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 33, 34, 35, 40, 43, 44, 45, 47], "put": [0, 6, 21], "6": [0, 6, 15, 21, 22, 30, 34, 36, 45], "respect": [0, 4, 6, 8, 10, 12, 15, 21, 22, 23, 30, 34, 40], "now": [0, 2, 5, 6, 12, 19, 21, 23, 30, 34, 38, 45], "parallelcopi": [0, 6, 17, 19], "fillboundary_finish": [0, 6], "607": [0, 45], "01568": 0, "3367": 0, "6574": 0, "41": [0, 15], "2133": 0, "4047": 0, "5973": 0, "38": 0, "13": [0, 6, 21, 36, 45], "parallelcopy_finish": [0, 6], "231": 0, "002977": 0, "09748": 0, "1895": 0, "12": [0, 6, 12, 21, 36, 45], "10": [0, 6, 15, 21, 23, 27, 30, 34, 36, 40, 45], "reason": [0, 4, 6, 15, 21, 25, 40], "appear": [0, 6, 21, 31, 45], "slow": [0, 6, 40, 44, 45], "lightli": 0, "wait": [0, 21], "messag": [0, 6, 10, 15, 17, 21, 40, 45], "sent": [0, 30], "heavili": 0, "diagnost": 0, "provid": [0, 2, 4, 5, 6, 8, 12, 13, 15, 16, 17, 19, 20, 23, 25, 27, 30, 33, 34, 35, 40, 41, 42, 44, 45], "more": [0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 15, 18, 19, 21, 23, 26, 27, 30, 31, 33, 34, 40, 41, 42, 43, 44, 45], "insight": 0, "imbal": 0, "bl_prof": 0, "directori": [0, 2, 3, 4, 5, 6, 8, 15, 17, 19, 21, 23, 27, 30, 34, 36, 42, 43, 45, 47], "contain": [0, 2, 3, 4, 5, 6, 8, 12, 15, 17, 19, 21, 23, 26, 27, 30, 34, 36, 38, 40, 42, 44, 45, 47], "detail": [0, 1, 3, 4, 6, 8, 9, 15, 16, 17, 22, 23, 30, 31, 36, 38, 40, 44, 45, 47], "per": [0, 6, 21, 32, 33, 34, 40], "task": [0, 10, 18, 21, 34, 36, 45], "processor": [0, 3, 6, 26, 27], "nfile": 0, "where": [0, 2, 4, 6, 8, 12, 15, 18, 21, 23, 25, 27, 30, 31, 32, 33, 36, 40, 42, 43, 44, 45], "specifi": [0, 2, 3, 4, 6, 9, 12, 15, 17, 19, 21, 25, 26, 27, 30, 33, 34, 35, 40, 42, 43, 44, 45], "analyz": [0, 15, 45], "tool": [0, 4, 5, 6, 8, 9, 13, 15, 17, 21, 23, 27, 34, 35, 36, 43, 45, 46, 47], "within": [0, 2, 4, 6, 8, 12, 15, 18, 19, 21, 23, 30, 34, 42, 45, 46], "amrvi": [0, 10, 17, 23, 29, 46], "addit": [0, 2, 3, 5, 6, 8, 15, 16, 17, 21, 23, 25, 26, 27, 30, 31, 33, 34, 35, 41, 43, 44, 45], "onli": [0, 2, 6, 8, 10, 12, 15, 17, 18, 19, 21, 22, 25, 27, 30, 31, 34, 40, 43, 44], "trace_profil": 0, "keep": [0, 2, 15, 21, 34], "track": [0, 2, 6, 10, 15, 21, 25, 34], "stack": [0, 6, 10, 12], "especi": [0, 6, 21, 40], "core": [0, 20, 25, 38, 40, 45], "allow": [0, 2, 6, 8, 13, 15, 18, 21, 27, 30, 34, 35, 40, 44, 45], "one": [0, 2, 4, 6, 7, 8, 10, 12, 15, 17, 19, 21, 26, 27, 30, 32, 33, 34, 36, 40, 42, 43, 44, 45], "independ": [0, 2, 6, 8, 17, 18, 21, 23, 32, 34], "other": [0, 2, 6, 8, 12, 17, 18, 19, 21, 24, 25, 27, 30, 34, 40, 43, 45], "comm_profil": 0, "about": [0, 2, 3, 4, 6, 8, 12, 15, 21, 33, 36, 40, 45], "data": [0, 2, 3, 4, 5, 6, 8, 10, 11, 13, 15, 17, 18, 19, 21, 23, 27, 28, 29, 30, 33, 35, 36, 37, 38, 40, 42, 44, 46], "volum": [0, 2, 6, 13, 15, 36, 45], "barrier": [0, 6, 21, 27], "reduct": 0, "etc": [0, 2, 4, 5, 6, 8, 15, 21, 23, 25, 26, 27, 30, 34, 36, 40, 43, 45, 47], "togeth": [0, 4, 6, 18, 34, 45], "specif": [0, 1, 2, 4, 6, 8, 12, 15, 19, 20, 23, 26, 27, 30, 32, 34, 40, 44, 45, 46], "under": [0, 10, 15, 25, 47], "develop": [0, 5, 7, 8, 9, 17, 21, 22, 23, 25, 29, 38, 42, 43, 46, 47], "document": [0, 1, 4, 5, 10, 13, 15, 16, 17, 20, 21, 22, 25, 27, 40, 42, 44, 45], "reflect": [0, 6, 8, 25, 30, 45], "latest": [0, 8, 21, 22, 23, 27, 43, 47], "statu": [0, 6, 45], "branch": [0, 15, 23, 25, 43, 47], "creat": [0, 2, 3, 4, 5, 6, 8, 11, 12, 18, 21, 26, 27, 30, 33, 34, 36, 40, 44, 45], "manag": [0, 2, 3, 4, 5, 6, 8, 17, 21, 40, 43, 45], "must": [0, 2, 6, 8, 12, 15, 19, 21, 25, 26, 27, 30, 34, 40, 42, 43, 45], "least": [0, 8, 25, 30, 32, 34, 40], "i": [0, 2, 4, 6, 8, 12, 13, 17, 18, 19, 21, 23, 25, 26, 27, 29, 30, 31, 32, 33, 34, 42, 43, 45, 47], "int": [0, 2, 4, 6, 10, 12, 17, 21, 23, 27, 30, 32, 34, 40, 44], "initi": [0, 2, 3, 4, 7, 8, 10, 13, 15, 17, 19, 21, 23, 26, 27, 30, 35, 40, 41, 42, 43, 45], "argc": [0, 6, 23], "argv": [0, 6, 23], "pmain": 0, "block": [0, 2, 6, 12, 13, 15, 23, 25, 29, 35, 40, 42, 46, 47], "Or": [0, 34, 45], "void": [0, 2, 4, 6, 10, 12, 17, 21, 27, 30, 34], "main_main": 0, "There": [0, 2, 3, 4, 6, 8, 9, 12, 15, 19, 21, 23, 26, 30, 34, 37, 40, 42, 46], "four": [0, 6], "gener": [0, 2, 4, 6, 8, 9, 12, 13, 17, 19, 23, 27, 30, 32, 33, 34, 36, 40, 42, 43, 44, 47], "avail": [0, 3, 5, 6, 9, 12, 15, 19, 21, 23, 27, 29, 30, 31, 34, 36, 38, 40, 43, 44, 45, 47], "These": [0, 1, 2, 5, 6, 8, 10, 19, 21, 27, 30, 34, 40, 44, 45], "own": [0, 6, 9, 10, 12, 17, 19, 25, 27, 32, 34, 45], "so": [0, 2, 6, 8, 12, 15, 18, 21, 26, 27, 30, 34, 40, 43, 44, 45], "thei": [0, 2, 6, 8, 12, 15, 17, 18, 19, 21, 23, 27, 30, 34, 40, 44], "control": [0, 6, 8, 10, 21, 23, 27, 30, 33, 34, 43, 45], "being": [0, 6, 10, 12, 13, 19, 21, 30, 40], "cleanest": 0, "easiest": [0, 43, 45], "situat": [0, 21, 25], "until": [0, 6, 10, 15, 21, 26], "enclos": [0, 6, 21], "ideal": 0, "entir": [0, 5, 6, 15, 21, 30, 34, 36, 40], "yourclass": 0, "yourfunct": 0, "here": [0, 1, 2, 4, 6, 7, 8, 10, 12, 15, 17, 18, 19, 20, 21, 24, 26, 30, 33, 34, 36, 43, 44, 45, 47], "goe": [0, 6, 12], "return": [0, 2, 3, 4, 6, 12, 15, 19, 21, 23, 30, 34, 36], "note": [0, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 17, 19, 21, 23, 25, 26, 27, 30, 31, 32, 33, 34, 40, 45], "correspond": [0, 19, 21, 27, 34, 44, 45], "destroi": [0, 19, 21], "uniqu": [0, 27, 34, 42], "becaus": [0, 2, 6, 8, 12, 15, 17, 19, 21, 26, 27, 30, 32, 34, 40, 45], "some": [0, 2, 6, 8, 12, 15, 16, 19, 20, 21, 27, 30, 34, 40, 43, 44, 45], "case": [0, 2, 4, 6, 8, 10, 15, 21, 23, 30, 31, 34, 45], "_var_": 0, "_start_": 0, "_stop_": 0, "signifi": 0, "take": [0, 1, 2, 6, 10, 12, 13, 19, 21, 23, 30, 32, 34, 36, 40, 42, 44, 45], "variabl": [0, 2, 4, 5, 6, 10, 12, 15, 17, 23, 27, 30, 34, 36, 40, 45], "without": [0, 3, 4, 8, 12, 17, 19, 21, 27, 30, 36, 40, 43, 44, 45], "flaten": 0, "fort_flatenx": 0, "anynam": 0, "arg1": 0, "arg2": 0, "select": [0, 15, 16, 21, 36, 44], "same": [0, 2, 5, 6, 8, 11, 12, 15, 17, 18, 19, 21, 27, 30, 33, 34, 36, 42, 44, 45], "func_0": 0, "func_2": 0, "func_1": 0, "myfunc": 0, "first": [0, 2, 4, 6, 8, 12, 15, 19, 21, 23, 26, 27, 30, 34, 40, 43, 45], "myfunc_0": 0, "arg": [0, 6], "myfunc_1": 0, "bl_profile_var_start": 0, "myfunc_2": 0, "rememb": [0, 15, 27], "still": [0, 6, 19, 30, 45], "reproduc": [0, 21], "exactli": [0, 6, 30, 34], "just": [0, 2, 6, 12, 19, 23, 26, 27, 34, 36, 43, 45], "_var": 0, "correctli": [0, 45], "complic": [0, 6, 23], "mean": [0, 6, 8, 21, 23, 26, 30, 34, 40, 45], "need": [0, 2, 4, 6, 8, 10, 11, 12, 15, 17, 19, 21, 25, 27, 30, 34, 43, 44, 45], "_ns_": 0, "ns": 0, "stand": [0, 23, 41, 47], "implement": [0, 2, 4, 6, 7, 10, 12, 13, 15, 16, 21, 23, 30, 40, 44, 45], "myfunc0": 0, "myfunc1": 0, "dont": 0, "b": [0, 6, 21, 30, 31, 36, 42], "necess": 0, "otherwis": [0, 6, 8, 17, 19, 21, 25, 26, 27, 30, 40], "would": [0, 6, 8, 12, 13, 15, 21, 26, 30, 34, 40, 45], "never": [0, 15, 34], "abl": [0, 7, 10, 21, 45], "turn": [0, 4, 6, 8, 10, 15, 19, 21, 23, 27, 30, 34, 40, 45], "often": [0, 2, 6, 15, 21, 23, 26, 27, 34, 40, 45], "subset": [0, 15, 43, 45], "separ": [0, 4, 6, 8, 11, 15, 17, 21, 25, 26, 30, 31, 33, 34, 36, 45], "complet": [0, 6, 8, 12, 13, 15, 18, 21, 22, 30, 34, 43, 45], "view": [0, 6, 8, 15, 17, 23, 36, 45, 46], "step": [0, 2, 3, 4, 6, 8, 9, 12, 15, 21, 23, 27, 30, 40, 44, 45], "isol": [0, 10, 21], "everyth": 0, "insid": [0, 12, 15, 20, 21, 30], "chemistri": 0, "part": [0, 4, 6, 8, 12, 18, 19, 21, 23, 47], "accomplish": [0, 6, 18, 30], "both": [0, 6, 11, 15, 19, 21, 23, 26, 30, 31, 34, 40, 42, 43, 44, 45], "analysi": [0, 34, 41, 45], "meant": 0, "larg": [0, 2, 6, 18, 21, 26, 30, 34, 36, 40, 42, 45], "contigu": [0, 6, 15, 19, 21, 40], "sparingli": 0, "purposefulli": 0, "produc": [0, 6, 13, 15, 21, 36, 45], "report": [0, 6, 8, 10, 15, 17, 21, 36, 40], "As": [0, 6, 8, 15, 21, 27, 34, 42, 43, 45], "limit": [0, 2, 6, 8, 15, 21, 43, 45], "add": [0, 2, 4, 6, 8, 10, 15, 17, 19, 21, 25, 27, 31, 34, 38, 40, 44, 45], "wai": [0, 6, 9, 12, 13, 15, 21, 23, 26, 27, 30, 32, 33, 34, 42, 45], "tabl": [0, 3, 6, 8, 12, 15, 21, 44, 45], "mimic": 0, "indic": [0, 6, 8, 19, 21, 34, 40, 42, 45], "reg": 0, "begin": [0, 2, 4, 6, 8, 15, 17, 21, 26, 27, 47], "1000": [0, 6], "402": 0, "14": [0, 15, 40, 45], "19": [0, 6, 15, 21, 45], "39": 0, "15": [0, 6, 15, 21, 45], "0168": 0, "05": [0, 23, 45], "809": 0, "28": [0, 15], "reli": [0, 17, 30, 43], "slightli": [0, 6, 30], "modifi": [0, 2, 6, 8, 10, 12, 13, 21, 23, 30, 34, 36, 43], "format": [0, 6, 8, 12, 21, 27, 29, 30, 34, 36, 44], "argument": [0, 8, 12, 15, 19, 21, 23, 27, 30, 40], "section": [0, 2, 6, 9, 10, 12, 13, 15, 17, 19, 20, 21, 23, 27, 28, 30, 34, 35, 40, 41, 44, 45], "group": [0, 6, 15, 21, 34, 45], "consid": [0, 2, 6, 8, 12, 21, 30, 34, 40], "bl_profile_region_var": 0, "regionac": 0, "reg_ac": 0, "bl_profile_region_var_stop": 0, "regionb": 0, "reg_b": 0, "bl_profile_region_var_start": 0, "secondregionac": 0, "label": [0, 12, 13, 21, 25, 34, 45], "its": [0, 2, 3, 4, 6, 8, 9, 12, 17, 19, 21, 27, 30, 34, 40, 45], "bl_proffortfuncstart": 0, "my_funct": 0, "bl_proffortfuncstop": 0, "match": [0, 2, 6, 15, 21, 30, 34, 40], "leav": [0, 19, 21, 34, 40, 45], "moreov": 0, "necessari": [0, 2, 8, 15, 21, 27, 45], "account": [0, 1, 2, 32], "path": [0, 8, 12, 21, 27, 43, 45], "locat": [0, 6, 8, 10, 12, 17, 30, 34, 45], "warn": [0, 8, 21], "were": [0, 15, 21, 36, 43, 45], "debug": [0, 6, 8, 15, 17, 21, 23, 34, 40, 45, 47], "mode": [0, 8, 21, 23, 40, 45], "high": [0, 2, 6, 30, 40, 45], "number": [0, 2, 4, 5, 6, 8, 10, 12, 15, 17, 19, 21, 22, 23, 26, 27, 30, 32, 34, 36, 40, 42, 44, 45], "lighter": 0, "weight": [0, 2, 12, 32, 36, 44, 45], "interfac": [0, 2, 3, 6, 8, 19, 21, 29, 30, 31, 34, 41, 44, 45, 47], "bl_proffortfuncstart_int": 0, "n": [0, 2, 6, 8, 10, 12, 21, 23, 27, 30, 32, 34, 41, 45], "bl_proffortfuncstop_int": 0, "integ": [0, 2, 4, 6, 12, 19, 21, 26, 30, 34, 40, 45], "rang": [0, 6, 12, 23, 27, 35], "mfortprofsintmaxfunc": 0, "32": [0, 2, 6, 12, 15, 19, 21, 26, 34, 40], "fortfunc_n": 0, "unless": [0, 6, 8, 10, 21, 26, 34, 40], "renam": [0, 15, 25, 27], "bl_profile_change_fort_int_nam": 0, "fname": 0, "std": [0, 6, 10, 12, 17, 21, 27, 30, 34, 40], "string": [0, 6, 10, 15, 23, 27, 34, 40, 44, 45], "fortran": [0, 2, 4, 7, 9, 12, 15, 19, 21, 29, 35, 47], "cannot": [0, 2, 6, 15, 19, 21], "receiv": [0, 40], "algorithm": [0, 2, 6, 12, 13, 21, 25, 26, 27, 32, 42], "increas": [0, 21, 26, 27], "wall": [0, 6, 15, 27, 40], "clock": [0, 15, 40], "applic": [0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 17, 19, 20, 21, 22, 26, 27, 29, 30, 34, 35, 38, 40, 43, 45, 47], "imbalanc": 0, "due": [0, 6, 15, 17, 19, 21, 25], "mpi_wait": 0, "better": [0, 15, 20, 34], "understand": [0, 4, 20, 21], "occur": [0, 6, 12, 21], "how": [0, 1, 2, 4, 5, 6, 8, 13, 15, 17, 21, 23, 26, 27, 30, 31, 32, 33, 34, 35, 36, 40, 42, 45, 47], "much": [0, 6, 12, 21, 27, 30, 32, 34], "synchron": [0, 2, 4, 6, 10, 17, 18, 22, 40], "runtim": [0, 6, 8, 10, 12, 15, 21, 23, 27, 35, 43, 44, 45, 47], "use_profiler_sync": 0, "syncbeforecomm": 0, "prior": [0, 34, 45], "particl": [0, 2, 3, 5, 8, 11, 20, 22, 23, 27, 28, 29, 33, 46, 47], "redistribut": [0, 4, 13, 18, 21], "comm": [0, 6, 8, 15], "oper": [0, 2, 3, 6, 8, 12, 13, 17, 18, 19, 21, 25, 27, 31, 34, 40, 43, 44, 45], "down": [0, 2, 10, 15, 21], "product": [0, 6, 8, 45], "equal": [0, 2, 6, 21, 27, 30, 40], "It": [0, 6, 7, 8, 12, 15, 19, 21, 23, 24, 27, 30, 34, 36, 40, 41, 45], "captur": [0, 6, 21, 34], "between": [0, 2, 3, 4, 6, 12, 17, 19, 21, 30, 34, 40, 42, 44, 45], "previou": [0, 2, 6, 21, 27, 30, 35], "sync": [0, 6], "elsewher": [0, 6], "term": [0, 2, 6, 21, 30, 31], "rank": [0, 6, 15, 18, 21, 27, 30, 32, 33, 42], "most": [0, 1, 2, 4, 5, 6, 8, 9, 15, 16, 19, 20, 21, 25, 33, 34, 43, 45], "chang": [0, 2, 6, 8, 15, 19, 21, 23, 25, 27, 30, 34, 43, 44, 45, 47], "throughout": [0, 21, 27], "simul": [0, 2, 3, 4, 8, 23, 27, 34, 35, 36, 40, 45], "underestim": 0, "effect": [0, 6, 8, 10, 21, 40], "wa": [0, 6, 8, 15, 17, 21, 34, 36, 45], "metric": [0, 10, 30], "databas": [0, 6, 13, 15, 40], "command": [0, 2, 8, 10, 12, 15, 17, 21, 23, 30, 36, 40, 45], "perform": [0, 1, 2, 3, 4, 6, 8, 12, 16, 17, 19, 22, 23, 26, 27, 30, 34, 35, 37, 40, 42, 43, 45], "plotfil": [0, 4, 8, 17, 19, 23, 29, 36, 37, 40, 45, 46, 47], "timelin": [0, 15, 21], "html": [0, 10, 34, 43, 45], "tree": [0, 2, 19, 23, 26, 32, 45], "statist": [0, 21], "graph": 0, "parser": [0, 7, 8, 40], "servic": [0, 8], "interact": [0, 6, 21, 35], "environ": [0, 6, 8, 9, 10, 15, 17, 21, 23, 27, 30, 40, 45], "sidecar": 0, "dynam": [0, 6, 8, 21, 30], "optim": [0, 6, 8, 21, 23, 27, 32, 34, 40], "util": [0, 6, 21, 37, 42], "version": [0, 4, 6, 8, 9, 10, 15, 19, 21, 22, 23, 27, 40, 43, 45, 47], "itself": [0, 6, 15, 21, 30, 34, 40, 43, 45], "been": [0, 2, 6, 7, 8, 12, 19, 21, 30, 32, 34, 42, 45], "integr": [0, 2, 6, 8, 16, 23, 41, 47], "visual": [0, 4, 15, 21, 24, 25, 27, 34, 47], "interpret": [0, 12, 21, 30, 45], "open": [0, 4, 25, 27, 45], "like": [0, 4, 6, 8, 9, 12, 15, 17, 19, 21, 23, 26, 27, 30, 33, 34, 38, 40, 43, 45], "appropri": [0, 2, 6, 8, 15, 21, 25, 34, 40, 43, 45], "parallel": [0, 2, 6, 7, 17, 18, 19, 21, 27, 28, 29, 34, 35, 42, 47], "batch": [0, 1, 40, 45], "code": [1, 4, 6, 7, 8, 9, 10, 12, 15, 17, 19, 20, 21, 24, 25, 27, 30, 32, 34, 36, 38, 40, 41, 42, 43, 44, 45, 47], "instrument": [1, 8, 10, 15], "hierarch": [1, 23, 29, 45, 46], "natur": [1, 10, 17, 21], "mesh": [1, 11, 12, 13, 17, 21, 28, 29, 33, 35, 40, 45, 47], "vari": [1, 2, 34], "level": [1, 3, 4, 5, 6, 7, 10, 12, 17, 19, 23, 26, 27, 30, 31, 32, 33, 34, 36, 40, 44, 45, 47], "link": [1, 6, 8, 9, 15, 21, 27, 40, 45], "short": [1, 23, 35], "cours": [1, 11, 27, 34], "slide": 1, "found": [1, 6, 8, 10, 15, 17, 19, 21, 22, 23, 36, 40, 41, 43], "lectur": 1, "1": [1, 4, 6, 8, 10, 12, 15, 17, 19, 21, 23, 25, 26, 27, 29, 30, 34, 36, 40, 42, 43, 44, 45], "introduct": [1, 23, 47], "2": [1, 3, 4, 6, 8, 9, 12, 15, 19, 21, 23, 25, 26, 27, 29, 30, 31, 34, 36, 40, 43, 44, 45], "full": [1, 6, 12, 15, 21, 30, 36, 43, 44, 45], "3": [1, 2, 4, 6, 8, 9, 12, 15, 19, 21, 26, 29, 30, 34, 36, 40, 42, 43, 44, 45, 47], "profvi": 1, "gui": [1, 45], "featur": [1, 8, 15, 19, 21, 23, 29, 34, 44, 45], "4": [1, 2, 6, 8, 10, 12, 15, 17, 19, 21, 23, 27, 30, 34, 36, 40, 44, 45], "option": [1, 4, 6, 9, 10, 11, 12, 15, 19, 23, 27, 29, 30, 32, 34, 36, 40, 43, 44, 45], "advanc": [1, 2, 4, 6, 8, 10, 12, 13, 44], "type": [1, 2, 4, 5, 8, 10, 12, 15, 17, 19, 21, 23, 30, 31, 33, 34, 36, 40, 44, 45], "c": [1, 2, 4, 7, 8, 9, 10, 12, 15, 19, 20, 23, 29, 34, 38, 40, 42, 44, 45], "fortran90": 1, "amrprofpars": 1, "src": [2, 3, 4, 5, 6, 7, 8, 12, 17, 19, 30, 34, 42], "singl": [2, 4, 5, 6, 7, 8, 10, 12, 13, 15, 17, 19, 21, 26, 27, 30, 31, 32, 33, 34, 36, 40, 45], "examplecod": [2, 3, 5, 7, 8, 19, 21, 23, 30, 31, 34, 45], "basic": [2, 6, 8, 12, 17, 20, 21, 23, 27, 30, 31, 34, 36, 44, 45, 47], "heatequation_ex1_c": [2, 7, 23, 45], "cpp": [2, 4, 6, 8, 36], "geometri": [2, 7, 12, 13, 17, 19, 27, 29, 30, 31, 34], "distributionmap": [2, 7, 11, 12, 17, 19, 27, 30, 32, 33, 34, 40, 44], "boxarrai": [2, 7, 11, 12, 17, 19, 27, 30, 33, 34, 44], "associ": [2, 4, 6, 13, 27, 34, 45], "refin": [2, 3, 4, 5, 6, 19, 27, 29, 30, 33, 34, 40, 45, 47], "thought": [2, 6], "arrai": [2, 4, 7, 10, 12, 19, 20, 21, 27, 30, 32, 40, 45], "amrex_amrmesh": [2, 27], "h": [2, 4, 6, 8, 10, 12, 21, 23, 27, 30, 34, 44, 45], "protect": [2, 21, 25], "member": [2, 4, 6, 12, 19, 21, 30, 34, 40, 45], "verbos": [2, 21, 23, 30, 40], "max_level": [2, 30, 40], "vector": [2, 7, 12, 17, 27, 30, 34, 44], "intvect": [2, 7, 10, 27], "ref_ratio": [2, 27, 40], "ratio": [2, 3, 27, 30, 40], "finest_level": [2, 27], "finest": [2, 6, 12, 27, 34, 40], "n_error_buf": [2, 26, 40], "buffer": [2, 15, 21, 27, 34, 40], "cell": [2, 4, 7, 10, 13, 17, 19, 21, 23, 26, 27, 29, 31, 32, 33, 34, 35, 40, 44, 45], "around": [2, 12, 15, 19, 20, 21, 27, 34, 40, 45], "tag": [2, 3, 4, 19, 23, 26, 33, 40, 47], "blocking_factor": [2, 26, 40], "factor": [2, 6, 12, 40, 42], "max_grid_s": [2, 19, 26, 40], "size": [2, 4, 6, 12, 15, 19, 26, 27, 33, 34, 40, 42, 45], "real": [2, 7, 8, 10, 12, 19, 21, 27, 30, 34, 40, 44], "grid_eff": [2, 26, 40], "effici": [2, 13, 21, 23, 26, 30, 40, 46], "n_proper": [2, 40], "requir": [2, 6, 8, 9, 11, 12, 13, 15, 19, 21, 22, 25, 27, 30, 34, 40, 43, 44, 45], "proper": [2, 6, 21, 34, 40], "nest": [2, 6, 18, 40, 45], "bool": [2, 6, 12, 21, 27, 30, 34, 40], "use_fixed_coarse_grid": 2, "use_fixed_upto_level": 2, "refine_grid_layout": [2, 26, 40], "chop": [2, 6, 40], "up": [2, 4, 6, 17, 19, 21, 27, 30, 34, 36, 40, 43, 44, 45], "less": [2, 6, 18, 21, 23, 26, 27, 30, 40], "proc": 2, "geom": [2, 6, 12, 19, 27, 30, 34], "dmap": [2, 27, 30, 34], "frequent": [2, 6, 47], "via": [2, 4, 6, 8, 12, 19, 21, 25, 27, 29, 30, 34, 40, 45], "input": [2, 4, 15, 22, 26, 27, 30, 32, 35, 36, 40, 42, 43, 44, 45], "Their": [2, 19, 27], "usag": [2, 4, 6, 8, 10, 12, 17, 19, 21, 27, 30, 33, 34, 36], "describ": [2, 4, 6, 8, 10, 12, 15, 17, 18, 21, 25, 27, 30, 34, 35, 40, 45], "creation": [2, 15, 32, 33, 34, 40], "valu": [2, 8, 10, 12, 13, 19, 21, 26, 27, 30, 34, 36, 40, 41, 44, 45], "default": [2, 6, 8, 10, 12, 15, 19, 21, 23, 26, 27, 30, 31, 32, 34, 36, 40, 43, 45], "none": [2, 6, 8, 19, 21, 27, 30, 34, 40, 45], "3d": [2, 6, 8, 15, 21, 23, 26, 30, 40, 42], "128": [2, 6, 15, 21, 26, 40, 45], "2d": [2, 6, 8, 12, 23, 26, 30, 40, 42], "amrex_amrcor": 2, "pure": [2, 4, 5], "virtual": [2, 4, 5, 19, 30, 34, 40], "which": [2, 3, 4, 6, 8, 12, 15, 17, 19, 21, 26, 27, 30, 31, 32, 33, 34, 36, 40, 42, 43, 44, 45], "deriv": [2, 4, 5, 6, 12, 15, 17, 19, 21, 34, 40], "doe": [2, 5, 6, 8, 9, 12, 13, 17, 18, 21, 23, 27, 30, 33, 34, 40], "actual": [2, 6, 8, 21, 27, 34, 45], "tagboxarrai": [2, 19], "lev": [2, 12, 19, 27, 30, 32, 34], "errorest": [2, 4], "ngrow": [2, 6, 12], "new": [2, 4, 6, 12, 19, 21, 23, 25, 27, 30, 34, 36, 39, 40, 44, 45, 47], "scratch": [2, 19, 21, 45], "makenewlevelfromscratch": 2, "const": [2, 6, 10, 12, 17, 21, 27, 30, 34, 40, 44], "ba": [2, 6, 19, 27, 34], "dm": [2, 6, 19, 27, 45], "fill": [2, 6, 17, 19, 32, 34, 44], "interpol": [2, 3, 4, 5, 6, 19, 21, 30, 34, 45], "coars": [2, 3, 4, 6, 12, 17, 19, 26, 30, 34, 36, 40], "makenewlevelfromcoars": 2, "remak": [2, 19], "exist": [2, 4, 6, 19, 21, 27, 30, 34, 40, 43], "fine": [2, 3, 8, 12, 15, 17, 19, 26, 30, 34, 40], "remakelevel": 2, "delet": [2, 19, 21], "clearlevel": 2, "refer": [2, 4, 6, 7, 10, 12, 15, 16, 19, 21, 23, 25, 27, 30, 31, 33, 34, 40, 41], "amrcore_advect": 2, "essenti": [2, 4, 5, 6, 12, 30], "mark": [2, 6, 15, 21, 34, 44], "clusterlist": 2, "sort": [2, 32, 34, 40, 45], "hidden": [2, 6], "simpl": [2, 5, 6, 9, 12, 13, 19, 21, 23, 24, 42, 45], "multifab": [2, 4, 7, 8, 10, 11, 12, 17, 18, 19, 27, 30, 31, 32, 33, 34, 36, 37, 40, 42, 44, 45], "temporari": [2, 6, 8, 11, 21], "ghost": [2, 4, 7, 10, 12, 17, 19, 21, 27, 30, 34], "valid": [2, 6, 8, 12, 19, 21, 34, 40, 44], "space": [2, 3, 6, 12, 17, 21, 30, 32, 34, 42], "next": [2, 4, 6, 8, 12, 19, 21, 26, 30, 34, 40, 45], "coarser": [2, 12, 26, 30], "neighbor": [2, 12, 21, 34], "domain": [2, 6, 12, 13, 19, 20, 23, 26, 27, 30, 33, 34, 36, 40, 42], "boundari": [2, 3, 4, 7, 8, 17, 19, 26, 29, 31, 34, 42, 47], "condit": [2, 3, 4, 7, 8, 10, 12, 15, 17, 21, 31, 34, 42], "non": [2, 6, 8, 12, 21, 23, 25, 32, 34, 40], "period": [2, 3, 4, 6, 23, 25, 30, 34, 40, 42, 45], "coarsest": [2, 6, 30], "interior": [2, 6, 12, 30], "prescrib": [2, 30, 34], "physic": [2, 4, 6, 12, 19, 21, 27, 30, 40], "consider": [2, 6, 15], "awai": [2, 6], "amrex_fillpatchutil": 2, "primari": [2, 21], "interest": [2, 23, 45], "fillpatchsinglelevel": [2, 19], "region": [2, 6, 12, 15, 21, 34, 40, 45], "flexibl": [2, 17, 21, 33, 34, 35, 44], "enough": [2, 21, 34], "fillpatchtwolevel": [2, 19], "assum": [2, 6, 7, 8, 12, 21, 23, 24, 30, 31, 34, 45], "underli": [2, 6, 8, 13, 19, 21], "filldomainboundari": 2, "principl": [2, 6, 33, 34], "instead": [2, 6, 8, 10, 12, 15, 17, 19, 21, 25, 30, 32, 34, 40], "A": [2, 6, 8, 12, 15, 17, 19, 21, 22, 27, 30, 31, 34, 36, 40, 42, 43, 45, 47], "amrex_interpolat": 2, "spatial": [2, 6, 19, 21, 23, 44, 45], "nodebilinear": 2, "cellbilinear": 2, "cellconservativelinear": 2, "cellconservativeprotect": 2, "cellconservativequart": 2, "cellquadrat": 2, "pcinterp": 2, "facelinear": 2, "facedivfre": 2, "diverg": [2, 12, 13, 23, 30], "preserv": 2, "face": [2, 12, 17, 23, 29, 30, 31, 40, 44], "center": [2, 12, 17, 27, 29, 31, 34, 36, 40, 44, 45], "overli": 2, "given": [2, 4, 6, 8, 12, 15, 19, 21, 26, 30, 32, 34, 40, 44], "even": [2, 6, 10, 12, 21, 33], "sub": [2, 6, 18, 19, 27], "cycl": [2, 15, 30, 45], "guarante": [2, 6, 21, 27], "execut": [2, 6, 8, 10, 17, 18, 21, 23, 34, 36, 45], "cpu": [2, 6, 15, 17, 21, 30, 32, 34, 40, 45], "gpu": [2, 4, 6, 15, 17, 30, 34, 40, 47], "certain": [2, 8, 36], "amrex_fluxregist": 2, "bndryregist": 2, "amrex_bndryregist": 2, "special": [2, 6, 15, 21, 30, 31, 34, 40], "manipul": [2, 3], "flux": [2, 3, 6, 13, 23, 30], "scenario": 2, "come": [2, 13, 21, 27, 30, 33, 34, 45], "conserv": [2, 12, 13], "discret": [2, 6, 13, 23], "hyperbol": [2, 12, 29], "system": [2, 6, 9, 10, 12, 13, 16, 17, 19, 21, 23, 27, 30, 31, 34, 40, 41], "frac": [2, 12, 23, 30], "phi": [2, 4, 6, 12, 19, 23, 27, 30, 31, 45], "nabla": [2, 12, 23, 30, 31], "cdot": [2, 12, 30, 31], "bf": [2, 6], "f": [2, 6, 12, 21, 30, 31, 36, 45], "rightarrow": [2, 45], "phi_": [2, 23], "j": [2, 6, 12, 13, 21, 23, 26, 36, 40], "delta": [2, 12, 23], "f_": [2, 12, 23], "_2": [2, 23], "x": [2, 6, 8, 12, 15, 21, 23, 30, 34, 36, 40, 42, 45], "y": [2, 6, 8, 12, 21, 23, 34, 36, 40, 42, 45], "dimension": [2, 7, 8, 19, 20, 21, 23, 36, 42, 45], "standard": [2, 6, 8, 9, 10, 15, 21, 23, 27, 30, 36, 37, 40, 46], "methodolog": [2, 21], "solut": [2, 4, 12, 21, 30, 31], "ignor": [2, 6, 8, 15, 40], "suppli": [2, 30, 44], "area": [2, 12], "do": [2, 4, 6, 8, 9, 10, 12, 15, 17, 19, 21, 25, 26, 27, 30, 32, 34, 40, 43, 45], "lack": 2, "subcycl": [2, 3, 5, 29], "r": [2, 3, 4, 6, 25, 30, 34], "reduc": [2, 6, 18, 21, 27, 43], "compar": [2, 17, 36], "accumul": 2, "ultim": [2, 6], "net": [2, 15], "simplest": [2, 15], "adjac": [2, 12], "updat": [2, 4, 6, 12, 21, 23, 25, 30, 34, 47], "mismatch": [2, 6], "done": [2, 6, 12, 15, 21, 30, 34, 36, 42, 45, 47], "simpli": [2, 6, 8, 21, 23, 30, 40, 42, 44, 45, 47], "reflux": [2, 30], "float": [2, 6, 8, 10, 15, 17, 21, 27, 34, 40], "increment": [2, 21, 23], "amrex_fluxreg_f": 2, "amrex_fluxreg_xd": 2, "deal": [2, 13, 33], "multi": [2, 6, 12, 13, 20, 21, 27, 31, 33, 35, 40], "framework": [2, 6, 29, 42, 43, 45, 47], "descript": [2, 8, 15, 21, 30, 34, 36], "chapter": [2, 3, 4, 5, 6, 7, 9, 12, 13, 16, 19, 20, 21, 22, 23, 24, 27, 28, 30, 31, 34, 35, 40], "amrex_amrparticl": 2, "amrparticlecontain": [2, 34], "amrtracerparticlecontain": [2, 34], "particlecontain": [2, 11, 15, 21, 27, 35], "amrex_particl": [2, 8, 34], "tracerparticlecontain": 2, "amrex_tracerparticl": 2, "amrex_amrpargdb": 2, "pargdbbas": 2, "amrex_pargdb": 2, "seek": [2, 25], "solv": [2, 5, 12, 21, 23, 29, 31, 41, 42], "adapt": [2, 3, 29, 35, 47], "u": [2, 6, 12, 30, 45], "free": [2, 6, 8, 12, 21, 30, 40], "flow": [2, 12, 35], "incompress": [2, 5], "scalar": [2, 3, 4, 6, 30, 31, 45], "_": 2, "v": [2, 6, 12, 23, 30, 36], "comput": [2, 4, 5, 6, 8, 10, 12, 13, 16, 18, 21, 22, 30, 32, 33, 34, 36, 40, 44, 45], "godunov": 2, "scheme": [2, 21, 44, 45], "approach": [2, 6, 8, 9, 12, 13, 17, 18, 19, 21, 26, 32, 33, 34, 35, 45], "finer": [2, 4, 6, 34], "smaller": [2, 40], "than": [2, 4, 5, 6, 10, 11, 12, 19, 21, 25, 26, 27, 30, 33, 34, 40, 45], "later": [2, 6, 12, 21, 30, 31, 34, 36, 43, 44, 45], "procedur": [2, 6, 12, 19, 45], "recurs": 2, "le": 2, "ell_": 2, "rm": 2, "taken": [2, 6, 15, 34, 36, 40, 42], "obtain": [2, 6, 15, 21, 23, 43, 47], "schemat": 2, "depict": [2, 3, 45], "graphic": 2, "figur": [2, 15, 30, 34, 42, 45], "fabset": [2, 27], "sign": [2, 6, 30], "depend": [2, 6, 8, 19, 21, 27, 29, 34, 40, 45], "whether": [2, 4, 6, 8, 12, 19, 21, 27, 30, 34, 36, 40, 42, 45], "regist": [2, 3, 6, 15, 18, 21], "extent": 2, "maintain": [2, 6, 21, 25], "happen": [2, 6, 8, 25, 34], "sum": [2, 6, 12, 21], "idea": [2, 6, 25, 27], "behind": [2, 6], "correct": [2, 6, 8, 17, 30, 34, 40, 42], "composit": [2, 30, 31], "overwrit": [2, 27], "cover": [2, 6, 12, 13, 15, 19, 30, 33, 34, 40], "agre": 2, "loss": [2, 12], "remedi": 2, "amradvection_amrcor": 2, "librari": [2, 5, 8, 9, 10, 15, 19, 21, 27, 31, 40, 42, 43, 45], "assort": 2, "handl": [2, 6, 8, 10, 21, 23, 30, 35], "notabl": [2, 4, 5], "subdirectori": [2, 4, 8, 27, 34], "src_2d": 2, "src_3d": 2, "dimens": [2, 3, 6, 8, 19, 23, 40, 42], "src_nd": 2, "exec": [2, 3, 4, 23, 36, 45], "makefil": [2, 8, 21], "besid": [2, 6, 8, 27, 40, 45, 47], "problem": [2, 4, 6, 8, 10, 13, 17, 27, 30, 34, 41, 45, 47], "pseudo": 2, "program": [2, 4, 6, 15, 18, 19, 20, 21, 23, 36, 38], "pseudocod": [2, 4], "amr_core_adv": 2, "initdata": [2, 4], "initfromscratch": 2, "makenewgrid": 2, "makebasegrid": 2, "phi_old": [2, 27], "phi_new": [2, 19, 27], "t_new": [2, 27], "construct": [2, 6, 12, 13, 21, 23, 30, 40, 45], "criteria": [2, 26, 34], "while": [2, 6, 7, 8, 9, 15, 17, 19, 21, 22, 27, 30, 34, 40, 45], "loop": [2, 4, 6, 19, 20, 34, 37, 45], "computedt": 2, "timestep": [2, 4, 44, 45], "check": [2, 6, 8, 10, 22, 23, 27, 40, 42], "copi": [2, 4, 6, 11, 17, 19, 21, 27, 30, 34, 36, 43, 45], "averagedown": 2, "definit": [2, 6, 8, 21, 30], "subroutin": [2, 4, 6, 19, 21, 34], "src_xd": 2, "adv_xd": 2, "f90": [2, 4, 6, 8, 17, 19, 42], "state": [2, 4, 6, 10, 23, 34, 40, 44], "decrement": 2, "alreadi": [2, 6, 8, 17, 21, 27, 32, 34], "scale": [2, 12, 18, 30, 40, 44, 45], "dt": [2, 4, 6, 21, 27, 40, 44], "phi_t": 2, "div": [2, 30], "mind": [2, 21], "convent": [2, 6, 19, 27, 34], "perspect": [2, 45], "flux_reg": [2, 27], "do_reflux": [2, 27], "bl_spacedim": [2, 4, 34], "crseinit": 2, "ncomp": [2, 6, 17, 19, 21, 27], "fineadd": 2, "averagedownto": 2, "belong": [2, 4, 6, 42], "instanc": [2, 15, 17, 23, 45], "regrid_int": [2, 40], "particular": [2, 8, 9, 34, 44, 45], "iter": [2, 6, 19, 21, 30, 35, 37, 40, 45], "don": [2, 6, 21, 26, 34, 45], "istep": [2, 27], "could": [2, 6, 8, 10, 12, 17, 21, 23, 27, 34, 40, 45], "newli": [2, 4, 12], "index": [2, 4, 12, 19, 21, 34], "old_finest": 2, "k": [2, 6, 12, 13, 21, 26, 36, 40, 42], "maxrefratio": 2, "central": [2, 23], "concept": [2, 6, 23], "state_error": 2, "tagging_nd": 2, "tile": [2, 7, 19, 21, 33, 34], "static": [2, 6, 12, 21, 34], "phierr": 2, "read": [2, 6, 7, 8, 15, 20, 21, 27, 34, 36, 37, 40, 44, 45], "threshold": [2, 21, 26, 40], "greater": [2, 6, 26, 30, 40, 43, 45], "elabor": [2, 8, 45], "logic": [2, 6, 17, 19, 33, 34], "express": [2, 40], "gradient": [2, 12, 30, 36], "parmpars": [2, 7, 12, 17, 19, 21, 23, 27, 30, 40], "pp": [2, 6, 19], "adv": [2, 4], "countval": 2, "getarr": [2, 6], "clearval": [2, 19], "clear": [2, 15, 27, 34], "tagval": [2, 19], "dx": [2, 6, 30, 34], "cellsiz": 2, "prob_lo": [2, 6, 40], "problo": [2, 6], "ifdef": [2, 6, 21], "amrex_use_omp": [2, 6, 21], "pragma": [2, 6], "omp": [2, 6, 8, 15, 21, 23], "endif": [2, 6, 8, 21], "itag": 2, "mfiter": [2, 7, 12, 19, 20, 21, 33, 34, 37], "mfi": [2, 6, 12, 19, 21, 34], "isvalid": [2, 6, 21, 34], "tilebox": [2, 6, 12, 19, 21], "tagfab": 2, "pass": [2, 6, 8, 12, 17, 19, 21, 23, 27, 30, 32, 35, 40, 45], "basefab": [2, 7, 12, 40], "char": [2, 6, 23, 27], "go": [2, 6, 8, 21, 23, 27], "get": [2, 4, 6, 10, 12, 17, 20, 21, 27, 34, 45, 47], "untag": 2, "everywher": 2, "get_itag": 2, "pointer": [2, 6, 12, 17, 19, 21, 34], "tptr": 2, "dataptr": [2, 6, 19, 21, 27, 34], "tlo": 2, "lovect": [2, 6, 34], "hivect": [2, 6, 34], "amrex_arlim_3d": 2, "bl_to_fortran_3d": 2, "amrex_zfil": 2, "tags_and_untag": 2, "tag_lo": 2, "tag_hi": 2, "state_lo": 2, "state_hi": 2, "lo": [2, 6, 12, 19, 21], "hi": [2, 6, 12, 19, 21], "bind": [2, 6, 19, 34], "name": [2, 6, 8, 10, 15, 21, 23, 27, 34, 36, 40, 44, 45], "implicit": [2, 6, 10, 17, 19, 21, 30, 40, 44], "doubl": [2, 6, 8, 19, 27, 34, 40, 45], "precis": [2, 6, 8, 19, 27, 34, 36], "ge": 2, "enddo": 2, "coarsefillpatch": 2, "sborder": 2, "s_new": 2, "num_grow": 2, "sever": [2, 6, 8, 10, 15, 17, 19, 21, 23, 27, 34, 45, 46], "give": [3, 5, 6, 8, 10, 12, 13, 15, 21, 30, 31, 35, 45], "overview": [3, 8, 13, 15, 22, 31, 35], "grid": [3, 4, 5, 7, 13, 19, 21, 27, 29, 30, 32, 34, 36, 40, 42, 45, 47], "layout": [3, 6], "map": [3, 6, 15, 27, 32, 33], "restrict": [3, 13, 21, 30, 42], "support": [3, 6, 9, 10, 12, 13, 15, 17, 19, 22, 23, 25, 27, 29, 30, 31, 32, 33, 34, 40, 44, 45, 46], "amr": [3, 7, 8, 12, 17, 20, 23, 26, 27, 29, 30, 31, 32, 34, 36, 44, 45, 46, 47], "anoth": [3, 6, 15, 19, 21, 25, 26, 27, 45], "class": [3, 5, 7, 8, 12, 13, 17, 19, 20, 22, 27, 31, 34, 35, 38], "fulli": [3, 9, 42], "our": [3, 4, 5, 6, 8, 9, 10, 17, 23, 34, 35, 44, 45], "present": [3, 6, 7, 8, 12, 13, 21, 22, 36, 42, 45], "tutori": [3, 4, 5, 7, 8, 13, 15, 19, 21, 22, 24, 25, 27, 30, 31, 34, 41, 47], "advect": [3, 4, 5, 17, 27], "equat": [3, 5, 12, 24, 30, 31, 41, 42, 45], "passiv": [3, 4], "accompani": 3, "advection_amrcor": [3, 5], "singlevortex": [3, 4, 45], "veloc": [3, 4, 12, 30, 31, 34], "field": [3, 4, 6, 12, 30, 31, 34], "gaussian": [3, 45], "profil": [3, 8, 10, 17, 22, 23, 36, 47], "displac": 3, "origin": [3, 6, 10, 12, 19, 30, 40, 43], "configur": [3, 8, 23, 27, 30, 42, 43, 44], "design": [4, 6, 21, 23, 29, 34, 44, 46], "establish": [4, 21], "hierarchi": [4, 5, 6, 17, 18, 27, 30, 34, 35, 45], "matur": [4, 5], "One": [4, 6, 8, 10, 12, 15, 21, 23, 30, 34, 40, 44, 45], "import": [4, 6, 9, 15, 19, 21, 30, 34, 40, 45], "thing": [4, 12, 34, 43, 45], "computeinitialdt": 4, "computenewdt": 4, "post_timestep": 4, "post_regrid": 4, "regrid": [4, 33], "post_init": 4, "init": 4, "did": 4, "previous": [4, 6, 10, 45], "hold": [4, 6, 12, 17, 21, 27, 30, 45], "pair": [4, 6], "old": [4, 21, 27, 34, 44], "know": [4, 6, 10, 17, 44], "intermedi": [4, 6, 21], "care": [4, 6, 21], "fluid": [4, 12, 35, 45], "made": [4, 8, 21, 25], "kei": [4, 6, 23, 29], "enum": [4, 34], "amrleveladv": 4, "statetyp": 4, "phi_typ": 4, "num_state_typ": 4, "variablesetup": 4, "tell": [4, 8, 10, 12, 30, 36], "nodal": [4, 5, 12, 19, 27, 29, 30, 31], "carri": [4, 12, 34], "compon": [4, 6, 10, 12, 19, 21, 27, 31, 35, 36, 44, 45], "collect": [4, 6, 10, 15, 18, 19, 34, 36, 43], "attribut": [4, 5, 34, 45], "levelbldadv": [4, 5], "variablecleanup": 4, "bl_assert": 4, "desc_lst": 4, "phys_bc": 4, "read_param": 4, "adddescriptor": 4, "indextyp": [4, 7], "thecelltyp": 4, "statedescriptor": 4, "num_stat": 4, "cell_cons_interp": 4, "lo_bc": 4, "hi_bc": 4, "bctype": [4, 6], "int_dir": [4, 6], "bcrec": [4, 6], "bc": [4, 6, 30, 44], "bndryfunc": 4, "nullfil": 4, "setrunongpu": 4, "promis": 4, "launch": [4, 6, 10, 15, 19, 22, 27], "kernel": [4, 7, 10, 19, 20, 22, 40, 45], "setcompon": 4, "repres": [4, 6, 12, 19, 21, 31, 34, 45], "interv": [4, 40, 44], "interlevel": [4, 5], "amrex_interpol": 4, "variou": [4, 6, 8, 10, 12, 19, 27, 30, 40, 45], "bc_nullfil": 4, "sourc": [4, 6, 7, 8, 10, 15, 17, 19, 20, 21, 23, 27, 34, 42, 43, 45, 47], "src_k": 4, "uniformveloc": 4, "prob": 4, "face_velocity_2d_k": 4, "face_velocity_3d_k": 4, "d": [4, 6, 8, 12, 21, 25, 29, 30, 36, 42, 45], "coarsetimestep": 4, "amr_level": 4, "postcoarsetimestep": 4, "use_particl": 4, "realclean": [4, 8], "do_trac": 4, "tracer": [4, 35], "py_util": [4, 34], "amrex_particles_to_vtp": [4, 34], "python": [4, 6, 9, 24, 34, 43, 45, 47], "amrex_binary_particles_to_vtp": 4, "py": [4, 43, 45], "plt00000": [4, 23, 34, 40, 45], "vtp": 4, "paraview": [4, 23, 27, 29, 34, 46], "amrlevel": [5, 8, 17, 20, 27], "levelbld": 5, "amrcor": [5, 6, 17, 19, 27, 34, 47], "public": [5, 8, 12, 21, 25], "inherit": [5, 6, 30], "directli": [5, 6, 12, 15, 21, 34, 40], "castro": [5, 43], "compress": [5, 8, 12, 31, 45], "astrophys": 5, "astro": 5, "github": [5, 17, 23, 25, 30, 34, 43, 45, 47], "repositori": [5, 25, 43, 45, 47], "nyx": [5, 34, 45], "cosmolog": [5, 45], "navier": [5, 12, 30, 31], "stoke": [5, 12, 30, 31], "iamr": [5, 45], "navierstokesbas": 5, "navierstok": 5, "low": [5, 6, 30, 45], "mach": 5, "combust": 5, "pelelm": 5, "advection_amrlevel": [5, 45], "except": [5, 6, 8, 10, 15, 20, 21, 25, 27, 30, 32, 40], "stencil": [5, 6, 23, 31], "mention": [6, 17, 21, 27, 30], "compil": [6, 9, 10, 15, 17, 19, 21, 22, 23, 24, 27, 30, 34, 39, 40, 44], "amrex_spacedim": [6, 8, 12, 19, 21, 30, 31, 40], "spacedim": 6, "either": [6, 8, 19, 21, 25, 26, 30, 31, 34, 40, 45], "preprocess": [6, 8, 19, 21], "amrex_fort_modul": [6, 21, 34], "coordin": [6, 12, 19, 21, 26, 31, 36, 40], "direct": [6, 12, 19, 26, 30, 31, 34, 36, 40, 42], "amrex_vector": 6, "bound": [6, 8, 19, 21, 26, 45], "amrex_arrai": 6, "alia": [6, 8, 19, 21, 45], "trivial": [6, 12, 21, 23], "host": [6, 8, 15, 17, 21, 40, 45], "devic": [6, 8, 17, 21, 30, 40], "ad": [6, 8, 15, 21, 27, 35, 39, 40], "minim": [6, 9, 21, 34], "11": [6, 12, 13, 15, 17, 21, 22, 36, 40, 45], "safe": [6, 12, 17, 22, 27], "fix": [6, 21, 23, 30, 40, 47], "templat": [6, 8, 12, 17, 21, 34, 40], "typedef": 6, "amrex_r": [6, 19, 21], "access": [6, 8, 10, 12, 13, 15, 19, 21, 23, 34, 45], "liter": 6, "_rt": 6, "constant": [6, 21, 30, 31], "7_rt": 6, "64": [6, 21, 27, 34, 36, 40], "bit": [6, 10, 12], "unix": [6, 9, 10], "window": [6, 9, 36, 40, 45], "amrex_long": 6, "commun": [6, 11, 15, 17, 18, 19, 21, 23, 34, 35, 46], "abstract": [6, 17, 30], "namespac": [6, 7, 19, 22, 23], "amrex_paralleldescriptor": 6, "myproc": [6, 34], "nproc": [6, 26, 27], "ioprocessor": [6, 27], "o": [6, 8, 10, 15, 21, 27, 29, 47], "ioproc": 6, "ioprocessornumb": 6, "broadcast": [6, 27], "100": [6, 15, 34, 36, 45], "bcast": 6, "reducerealsum": 6, "addition": [6, 9, 12, 34, 40, 45], "amrex_paralleldescriptor_modul": 6, "amrex_paralleldescriptor_f": 6, "subcommun": 6, "simultan": [6, 15, 21, 27, 31], "calcul": [6, 12, 21, 23, 27, 31, 33, 34, 35, 37, 44, 45], "amrex_parallelcontext": 6, "mpi_comm": 6, "handler": [6, 40], "push": [6, 10, 12, 45], "remov": [6, 8, 21, 25, 34], "pop": [6, 10, 45], "split": [6, 18, 21, 34], "fit": [6, 34], "local": [6, 8, 12, 15, 17, 21, 27, 34, 39], "recent": [6, 21, 43], "common": [6, 8, 15, 17, 21, 33, 34, 43, 45], "subcomma": 6, "subcommb": 6, "becom": [6, 12, 13, 19, 26], "globalcomm": 6, "communicatoral": 6, "localcomm": 6, "communicatorsub": 6, "io": [6, 8, 9, 15, 23, 28, 35, 43], "localrank": 6, "nprocssub": 6, "globalio": 6, "ioprocessornumberal": 6, "ioprocessorsub": 6, "translat": [6, 12, 15, 45], "mpi_undefin": 6, "global_to_local_rank": 6, "globalrank": 6, "id": [6, 10, 34], "local_arrai": 6, "global_arrai": 6, "local_to_global_rank": 6, "last": [6, 8, 10, 21, 23, 27, 40, 45], "amrex_print": [6, 23], "output": [6, 10, 15, 17, 21, 28, 30, 34, 36, 40, 43, 45], "ostream": 6, "them": [6, 8, 13, 19, 21, 23, 27, 30, 32, 33, 34, 35, 40, 45], "cout": 6, "thread": [6, 8, 17, 21, 23, 27, 33, 34, 40], "mix": [6, 8, 17], "pi": [6, 42, 45], "atan": 6, "17": [6, 8, 9, 15, 23, 27, 34, 36, 45], "digit": [6, 27, 40], "setprecis": 6, "decim": 6, "oldprec": 6, "allprint": [6, 17], "everi": [6, 10, 12, 15, 18, 23, 26, 30, 34, 40, 43], "ofstream": [6, 27], "ofs": 6, "my": [6, 8, 17], "txt": [6, 8, 21, 47], "endl": [6, 30], "close": [6, 25, 26], "allprinttofil": 6, "append": [6, 8], "emphas": [6, 19, 27, 30], "mistak": 6, "forget": 6, "amrex_parmpars": [6, 19], "storag": 6, "retriev": [6, 21], "charact": [6, 19], "start": [6, 8, 12, 15, 18, 20, 21, 23, 27, 30, 34, 43, 45, 47], "content": [6, 15, 36, 40], "rest": [6, 12, 20, 21, 30], "those": [6, 8, 19, 21, 27, 30, 33, 34, 45], "signal": [6, 8, 10, 27, 40], "seri": [6, 45], "form": [6, 12, 25, 30, 31, 34, 36, 45], "prefix": [6, 8, 30, 40], "text": [6, 27, 30, 34, 45], "comment": [6, 25], "nstep": 6, "second": [6, 9, 12, 21, 23, 25, 26, 30, 34], "03": [6, 36, 45], "ncell": 6, "xrang": 6, "titl": [6, 27], "kingdom": 6, "hydro": [6, 13, 15, 17, 30], "cfl": 6, "queri": [6, 15, 19, 30, 45], "error": [6, 8, 10, 12, 15, 17, 22, 23, 27, 30, 36], "numcel": 6, "xr": 6, "queryarr": 6, "find": [6, 8, 10, 15, 21, 34, 36, 42, 44], "pph": 6, "wherea": [6, 8, 17, 20, 27, 30, 40], "24": [6, 15, 40], "08": [6, 40, 45], "whitespac": [6, 36], "okai": 6, "99": [6, 15], "continu": [6, 8, 18, 21, 27, 30, 34, 39, 40], "withpars": 6, "w": [6, 30], "my_const": 6, "alpha": [6, 12, 30, 31], "foo": [6, 8, 10, 34], "sin": 6, "bar": [6, 34], "sqrt": [6, 12, 34], "co": [6, 30], "prob_hi": [6, 40], "setparserprefix": 6, "physical_const": 6, "299792458": 6, "14159265358979323846": 6, "f0": 6, "querywithpars": 6, "querypars": 6, "getwithpars": 6, "empti": [6, 21, 27, 34, 40], "signific": [6, 13], "explicitli": [6, 8, 17, 19, 21, 30], "accept": 6, "parser_prefix": 6, "try": [6, 8, 12, 21, 27, 30, 32, 34], "exact": [6, 27, 30], "attempt": [6, 21, 26, 40], "again": [6, 12, 15, 21, 30], "parserprefix": 6, "evalu": [6, 8, 30], "referenc": [6, 21], "occurr": 6, "ones": [6, 27, 30, 34], "behavior": [6, 8, 10, 15, 21, 25, 26, 30, 34, 40], "demonstr": [6, 19, 21, 23, 34, 41, 47], "09": [6, 40], "amrex_enum": 6, "mycolor": 6, "red": [6, 21], "green": [6, 21, 34, 45], "blue": [6, 21, 30, 34], "color": [6, 42, 45], "getenum": 6, "getenumnamestr": 6, "class_nam": 6, "getenumclassnam": 6, "color1": 6, "color2": 6, "enumer": [6, 32, 43], "c1": [6, 36], "c2": [6, 36], "query_enum_case_insensit": 6, "default_color": 6, "color3": 6, "conveni": [6, 15, 21, 30, 34, 45], "myexecut": 6, "myinputsfil": 6, "9": [6, 15, 21, 30, 34, 36, 45], "highlight": [6, 45], "subtl": [6, 21, 45], "add_par": 6, "eb2": [6, 17, 40], "variable_on": 6, "overridden": [6, 40], "variable_two": 6, "declar": [6, 19, 30], "prevent": [6, 8, 10, 17, 21, 27], "statement": [6, 10, 21, 23], "mpi_comm_world": 6, "desir": [6, 8, 15, 34, 45], "cooper": [6, 18], "packag": [6, 8, 19, 23, 44, 45, 46], "main2d": [6, 23, 45], "ex": [6, 8, 10, 15, 21, 23, 34, 36, 44, 45], "fpe_trap_invalid": [6, 10, 15, 40], "tao_monitor": 6, "dash": 6, "briefli": [6, 17, 30], "introduc": [6, 21, 23, 27], "purpos": [6, 23, 26], "get_command": 6, "get_argument_count": 6, "get_command_argu": 6, "th": [6, 12], "amrex_pars": 6, "mathemat": 6, "power": [6, 26], "exp": 6, "log": [6, 10, 40], "log10": [6, 40], "tan": 6, "asin": 6, "aco": 6, "atan2": 6, "sinh": 6, "cosh": 6, "tanh": 6, "asinh": 6, "acosh": 6, "atanh": 6, "ab": [6, 17, 21], "floor": 6, "ceil": 6, "fmod": 6, "erf": 6, "heavisid": 6, "x1": 6, "x2": 6, "bessel": 6, "kind": [6, 19, 27, 34], "order": [6, 8, 10, 12, 15, 20, 21, 27, 30, 32, 34, 40, 42, 45], "jn": 6, "ellipt": [6, 29], "comp_ellint_1": 6, "comp_ellint_2": 6, "gcc": [6, 9, 15, 21, 24, 30, 45], "boolean": [6, 8, 21, 26, 40], "combin": [6, 8, 11, 21, 33, 34, 45], "preced": [6, 23, 34, 40, 45], "languag": [6, 8, 20, 21, 22], "z": [6, 12, 21, 30, 32, 34, 36, 40, 42, 45], "setconst": 6, "registervari": 6, "auto": [6, 12, 17, 21, 34, 40, 44], "aliv": 6, "dy": [6, 34], "dz": [6, 34], "r2": [6, 34], "assign": [6, 8, 18, 19, 21, 27, 32, 33, 34], "termin": [6, 30, 40, 45], "avoid": [6, 8, 17, 21, 30, 34, 40, 45], "conflict": 6, "ipars": 6, "lot": [6, 17, 40], "whose": 6, "truncat": 6, "toward": [6, 12], "neg": [6, 8, 12, 23, 25, 40], "infin": 6, "quot": 6, "posit": [6, 8, 12, 21, 34, 40, 45], "expon": 6, "234e3": 6, "234e2": 6, "releas": [6, 8, 13, 17, 21, 22, 23, 40, 47], "resourc": [6, 9, 15, 17, 21, 27, 45], "a_osout": 6, "a_oserr": 6, "cerr": 6, "errorhandl": 6, "a_errhandl": 6, "nullptr": [6, 30], "build_parm_pars": 6, "func_parm_pars": 6, "duplic": 6, "outstream": 6, "errorstream": 6, "best": [6, 21, 30, 44, 45], "scope": [6, 10, 15, 21], "curli": [6, 17], "brace": [6, 17], "sure": [6, 15, 23, 34, 43], "freed": [6, 21], "structur": [6, 13, 21, 23, 25, 27, 29, 34, 35, 42, 45, 46, 47], "rectangular": [6, 12, 13, 33], "decompos": [6, 33, 42], "union": [6, 12, 19, 33], "fig": [6, 12, 13, 21, 30, 34, 45], "black": 6, "bold": 6, "resolut": [6, 30, 45], "parent": [6, 18, 19, 21, 34, 45], "child": [6, 18, 19], "connect": [6, 12, 19], "focu": [6, 13, 15, 45], "amrex_box": [6, 19], "lower": [6, 19, 26, 27, 30, 40, 44], "upper": [6, 19, 26, 40], "corner": [6, 19, 26, 40], "intvec": 6, "iv": 6, "amrex_d_decl": 6, "expand": [6, 8, 21, 43, 45], "intern": [6, 21, 30, 34, 40, 43], "getvect": 6, "idim": 6, "p": [6, 10, 12, 15, 21, 34, 36, 45], "thezerovector": [6, 10], "theunitvector": 6, "unit": [6, 12, 21], "thedimensionvector": 6, "dir": [6, 15, 21, 27, 30, 43, 45], "relat": [6, 21, 42], "lexicograph": 6, "shift_hash": 6, "hash": [6, 23, 27], "unordered_map": 6, "arithmet": 6, "iv2": 6, "46": 6, "coarsen": [6, 12, 26, 30, 40], "round": [6, 21, 32], "divis": [6, 10, 26], "what": [6, 8, 10, 15, 17, 21, 30, 45], "usual": [6, 7, 12, 19, 21, 23, 25, 30, 45], "thu": [6, 8, 12, 13, 15, 21, 34], "127": 6, "coarsening_ratio": 6, "wise": 6, "iv3": 6, "overload": [6, 34], "node": [6, 8, 15, 30, 31, 44, 45], "numer": [6, 13, 30, 45], "xface": 6, "cellcent": 6, "nodecent": 6, "notion": 6, "typic": [6, 12, 15, 17, 18, 21, 26, 27, 32, 45], "typ": 6, "cc": [6, 8, 15, 17, 45], "By": [6, 19, 21, 27, 30, 34, 36, 40, 45], "nd": 6, "simplic": [6, 12, 21], "tupl": 6, "denot": 6, "side": [6, 12, 26, 30, 31, 34, 42, 44, 45], "That": 6, "convert": [6, 12, 19, 27, 34, 40, 45], "b0": 6, "b1": 6, "surroundingnod": [6, 30], "b2": 6, "enclosedcel": 6, "ye": [6, 8, 10, 15, 17, 21], "ident": [6, 12, 15, 21, 26, 30], "b3": 6, "exercis": 6, "smallend": 6, "small": [6, 8, 10, 13, 30, 34, 40, 42, 45, 47], "bigend": 6, "big": [6, 12, 40], "shown": [6, 8, 15, 19, 21, 23, 34, 42, 44, 45], "ccbx": 6, "31": [6, 15], "63": 6, "ndbx": 6, "facebx": 6, "uncoarsen": 6, "30": [6, 15, 23, 45], "context": [6, 12], "strictly_contain": 6, "intersect": [6, 12], "unchang": [6, 21], "plain": [6, 21, 34], "struct": [6, 21, 40], "d3": 6, "alwai": [6, 10, 12, 21, 30, 34, 43, 47], "1d": [6, 8, 21, 27, 30, 40, 42], "extra": [6, 8, 15, 30, 34, 40], "agnost": [6, 10], "bx": [6, 12, 19, 21], "lbound": [6, 19, 21], "ubound": [6, 19, 21], "length": [6, 12, 26, 40], "amrex_geometri": [6, 19], "explicit": [6, 12, 17, 44], "dom": 6, "rb": 6, "coord": 6, "is_per": 6, "noexcept": [6, 21, 30], "prob_ext": [6, 40], "cartesian": [6, 12, 30, 40], "cylindr": [6, 30, 40], "spheric": [6, 30, 40], "invalid": [6, 34], "coord_si": [6, 40], "is_period": [6, 40], "n_cell": [6, 19, 26, 40], "real_box": 6, "sai": [6, 8, 12, 27, 34, 45], "doubli": 6, "tripli": 6, "probloarrai": [6, 21], "yhi": 6, "probhi": 6, "cellsizearrai": [6, 21], "isperiod": 6, "Is": [6, 12, 17], "isallperiod": 6, "isanyperiod": 6, "amrex_boxarrai": [6, 19], "maxsiz": [6, 19], "maxbox": 6, "m_ref": 6, "m_hash_sig": 6, "though": 6, "decomposit": [6, 45], "divid": [6, 10, 18, 26], "cellba": 6, "faceba": 6, "nodeba": 6, "subscript": [6, 12], "might": [6, 8, 10, 17, 19, 21, 30, 40], "meaningless": 6, "NOT": [6, 21], "doesn": [6, 21, 34], "t": [6, 12, 21, 23, 26, 27, 30, 34, 45], "refinement_ratio": 6, "deep": 6, "undesir": [6, 21, 27], "expens": [6, 21, 45], "wast": [6, 40], "shared_ptr": 6, "quit": [6, 34, 45], "cheap": 6, "convers": [6, 8, 12, 21, 34, 42], "variant": [6, 30], "discuss": [6, 9, 12, 13, 17, 19, 21, 23, 25, 28, 30, 40, 45, 47], "awar": [6, 8, 15, 21, 22, 26, 27, 34, 40], "cost": [6, 11, 27, 30, 34], "conceptu": [6, 13], "think": 6, "ba2": 6, "unmodifi": 6, "faster": [6, 21], "naiv": [6, 12, 34], "amrex_distributionmap": 6, "live": [6, 12, 21, 30, 34], "element": [6, 21, 27, 40, 45], "another_dm": 6, "rel": [6, 10, 13, 15, 17, 30, 36, 40], "curv": [6, 32], "determin": [6, 12, 21, 30, 34, 42, 45], "strategi": [6, 10, 11, 17, 22, 30, 33, 40], "knapsack": [6, 32, 40], "choic": [6, 30, 43], "load": [6, 11, 15, 17, 26, 27, 34, 45, 47], "balanc": [6, 11, 26, 34, 47], "pmap": 6, "although": [6, 8, 23, 24, 34, 45], "irregular": [6, 13], "regular": [6, 12, 13, 25, 30, 34, 40, 45], "plu": [6, 12], "column": [6, 36, 45], "major": [6, 25, 43, 44, 45], "mathrm": [6, 12], "occupi": 6, "numcomp": [6, 21], "fab": [6, 8, 10, 12, 17, 21, 30, 32, 34, 40, 45], "amrex_farraybox": 6, "amrex_iarraybox": 6, "nth": 6, "setval": [6, 19, 21, 34], "nstart": 6, "srcbox": 6, "srccomp": 6, "destbox": 6, "destcomp": 6, "destin": 6, "invok": [6, 8, 18, 30, 43, 45], "shape": [6, 12, 13, 17], "comp": [6, 8, 21, 34, 45], "subbox": 6, "fab1": 6, "fab2": 6, "mult": 6, "multipli": [6, 12], "saxpi": 6, "runon": 6, "backward": [6, 34], "compat": [6, 16, 27, 34], "manner": [6, 21, 25, 30, 34], "afab": 6, "bfab": 6, "ifab": 6, "const_arrai": [6, 21], "m": [6, 17, 21, 26, 34, 45], "nc": [6, 12], "els": [6, 8, 12, 21, 30, 45], "fourth": [6, 19, 21], "neither": [6, 8], "nor": [6, 8], "ifab2": 6, "sens": [6, 20, 21, 34], "recal": [6, 30], "far": [6, 8], "ccfab": 6, "ndfab": 6, "degrad": [6, 17, 27, 34, 40], "move": [6, 19, 21, 25, 34, 40, 45], "orig_fab": 6, "alias_fab": 6, "make_alia": 6, "slice": [6, 36, 45], "dangl": 6, "life": [6, 21], "amrex_fabarrai": 6, "intend": [6, 21], "embed": [6, 8, 29, 31, 47], "uniform": [6, 12, 13, 45], "remot": [6, 45], "involv": [6, 27, 34], "suppos": [6, 8], "Then": [6, 8, 12, 15, 19, 21, 27, 45], "amrex_imultifab": 6, "commonli": [6, 15, 16, 30, 43], "amrex_multifab": [6, 19], "mf": [6, 10, 12, 19, 21, 27, 40, 45], "es": [6, 21], "grown": [6, 34], "orig_mf": 6, "start_comp": 6, "num_comp": 6, "alias_mf": 6, "achiev": [6, 15, 19, 21, 26, 34], "mf0": 6, "mf1": [6, 19], "mf2": [6, 19], "mf3": 6, "repeatedli": 6, "let": [6, 23, 30, 43, 44], "finit": [6, 13], "xflux": 6, "yflux": 6, "zflux": 6, "dmin": 6, "dmax": 6, "mfdst": 6, "mfsrc": [6, 19], "sc": [6, 25, 45], "dc": 6, "ng": [6, 10, 34, 42], "reader": [6, 27, 30, 34, 45], "larger": [6, 19, 21, 27, 30], "omit": [6, 8, 10], "notic": [6, 45, 47], "unspecifi": [6, 40], "ought": 6, "roundoff": 6, "compsrc": 6, "compdst": 6, "ngsrc": 6, "ngdst": 6, "op": [6, 21], "potenti": [6, 40], "improv": [6, 15, 21, 34], "overal": [6, 15, 21, 34, 35, 40], "_nowait": 6, "_finish": 6, "mfa": 6, "parallelcopy_nowait": 6, "calc": 6, "mfb": 6, "fillboundary_nowait": 6, "signatur": 6, "nowait": 6, "finish": [6, 10, 21, 23, 43], "choos": [6, 8, 15, 17, 21, 30, 34, 40, 44, 45], "race": [6, 10, 21], "ungrown": 6, "validbox": [6, 21, 34], "f1": [6, 21], "whole": [6, 20], "someth": [6, 30, 45], "necessarili": [6, 30], "But": [6, 8, 10, 19], "f2": [6, 21], "nf": 6, "known": [6, 30, 43], "cach": [6, 15, 34], "transform": [6, 12, 17, 21, 42, 45], "techniqu": [6, 13, 21, 31], "kmin": 6, "kmax": 6, "jmin": 6, "jmax": 6, "imin": 6, "imax": 6, "0d0": 6, "And": [6, 19, 27], "manual": [6, 7, 15, 21, 30, 38, 44], "jblocksiz": 6, "kblocksiz": 6, "jblock": 6, "kblock": 6, "kb": 6, "jb": 6, "individu": [6, 21, 25, 27, 33, 40, 45], "labor": 6, "intens": 6, "prone": 6, "incorpor": [6, 13], "benefit": [6, 21, 45], "almost": [6, 15, 21], "minor": [6, 21], "littl": [6, 21], "broken": [6, 13, 34], "matter": [6, 23, 42], "calcoverbox": 6, "redo": 6, "No": [6, 12, 15, 27], "1024000": [6, 34, 40], "mfiter_tile_s": [6, 40], "symbol": [6, 21], "openmp": [6, 8, 17, 22, 23, 27, 29, 33, 34, 40, 45], "mfitinfo": 6, "further": [6, 15, 17, 18, 21, 23, 26, 38], "setdynam": 6, "enabletil": 6, "illustr": [6, 13, 21, 30, 34, 42], "fabbox": 6, "growntilebox": 6, "1000000": 6, "nodal_flag": 6, "normal": [6, 8, 12, 15, 25, 30, 40, 45], "extend": [6, 21, 40], "legal": 6, "bx2": 6, "bx3": 6, "overhead": [6, 18, 21, 27], "bug": [6, 10, 23, 47], "activ": [6, 21, 25, 45], "mfi1": 6, "mfi2": 6, "amrex_mfiter_build": [6, 19], "failur": [6, 10, 30], "old_flag": 6, "allowmultiplemfit": 6, "amrex_mfiter_allow_multipl": 6, "pattern": [6, 15, 21, 27, 34], "nativ": [6, 20, 21, 22, 27, 31, 40, 44], "header": [6, 7, 8, 15, 23, 27, 34, 45], "_f": [6, 12], "amrex_blfort": 6, "__cplusplu": 6, "extern": [6, 8, 9, 21, 27, 31, 42, 47], "keyword": [6, 8], "thank": 6, "2003": [6, 9, 19], "mangl": [6, 15], "bl_to_fortran_box": [6, 21], "bl_to_fortran_anyd": [6, 21], "preprocessor": [6, 8, 21], "ulo": 6, "uhi": 6, "intent": [6, 12, 19, 21], "inout": [6, 19, 21], "maxim": [6, 15, 21, 30], "degener": 6, "accord": [6, 25, 30, 40], "third": [6, 8, 21], "With": [6, 9, 11, 13, 19, 21, 34, 44], "bl_fortran_anyd": 6, "f2d": 6, "treat": [6, 21, 30], "bl_to_fortran": 6, "half": [6, 12, 25, 40], "ulo1": 6, "ulo2": 6, "uhi1": 6, "uhi2": 6, "f3d": 6, "ulo3": 6, "uhi3": 6, "bl_to_fortran_fab": 6, "nu": 6, "safeti": [6, 21], "issu": [6, 8, 15, 17, 21, 25, 27, 40, 47], "catch": [6, 10, 30], "detect": [6, 8, 43, 45], "typecheck": 6, "use_mpi": [6, 8, 23], "dim": [6, 8, 23, 43, 45], "my_f": 6, "main_f": 6, "vs": [6, 12, 30], "22": [6, 15, 45], "tmp_build_dir": [6, 8], "amrex_typecheck": 6, "ou": 6, "cexe_head": [6, 8], "pycpars": 6, "http": [6, 8, 9, 10, 15, 17, 21, 23, 30, 34, 42, 43, 45], "pypi": 6, "org": [6, 17, 42, 45], "instal": [6, 8, 9, 21, 23, 27, 30, 40, 45], "doc": [6, 10, 45, 47], "readm": [6, 8, 17, 42, 47], "despit": 6, "portabl": [6, 15, 21, 36, 45], "syntax": [6, 8, 21], "readabl": [6, 21, 34], "easi": [6, 45], "summar": [6, 8, 21, 34], "sfab": 6, "dfab": 6, "dst": [6, 17], "dfab2": 6, "amrex_pragma_simd": [6, 21], "accessor": [6, 21], "miss": [6, 15], "innermost": 6, "notifi": 6, "whenev": [6, 8, 21], "Be": [6, 21, 22, 27], "lead": [6, 21, 25, 27], "unsur": 6, "verifi": [6, 15, 17, 42, 43], "highest": 6, "concis": 6, "notinlaunchregion": [6, 21], "tilingifnotgpu": [6, 21], "mfc": 6, "amrex_gpu_devic": [6, 21], "lambda": [6, 15, 21, 44], "whatsoev": 6, "expos": 6, "4d": [6, 21], "border": 6, "themselv": 6, "subject": [6, 45], "fillpatchutil": 6, "interpolat": 6, "touch": [6, 34], "character": 6, "inflow": [6, 12, 30], "outflow": 6, "slip": 6, "dirichlet": [6, 12, 17, 30], "neumann": [6, 12, 30], "multidimension": 6, "amrex_bc_typ": 6, "setlo": 6, "sethi": 6, "foextrap": 6, "extrapol": [6, 30], "ext_dir": 6, "respons": [6, 19, 21, 25], "ext_dir_cc": 6, "hoextrap": 6, "hoextrapcc": 6, "reflect_even": 6, "q": [6, 10, 17, 21, 45], "reflect_odd": [6, 30], "user_1": 6, "user_2": 6, "user_3": 6, "callabl": 6, "myextbcfil": 6, "dest": 6, "dcomp": [6, 17], "geometrydata": [6, 21], "bcr": 6, "bcomp": 6, "orig_comp": 6, "consist": [6, 15, 18, 21, 27, 34, 41], "li": [6, 27], "oppos": [6, 25, 40, 45], "complex": [6, 10, 13, 17, 21, 23, 29, 31, 33, 45], "exclud": [6, 8, 12, 15], "gpubndryfuncfab": 6, "physbcfunct": 6, "physbcf": 6, "ngrowvector": 6, "relationship": [6, 42], "edg": [6, 29, 34], "lowest": [6, 30], "overridesync": 6, "ownermask": 6, "dot": [6, 30], "count": [6, 15], "mayb": [6, 44], "averagesync": 6, "overlapmask": 6, "invert": 6, "weightedsync": 6, "buildmask": 6, "nghost": [6, 19, 27, 30], "makefinemask": 6, "norm": [6, 21, 30], "coarse_valu": 6, "fine_valu": 6, "coarse_mf": 6, "fine_boxarrai": 6, "refine_ratio": 6, "norminf": 6, "arena": [6, 40], "mfinfo": [6, 30], "chunk": [6, 19, 21, 27, 40], "alloc_single_chunk": [6, 40], "setallocsinglechunk": 6, "singlechunkptr": 6, "null": [6, 40], "singlechunks": 6, "byte": [6, 17, 21, 40], "modul": [6, 12, 15, 17, 19, 21, 27, 45], "amrex_mempool_modul": 6, "altern": [6, 8, 10, 12, 21, 23, 32, 34], "pool": [6, 21], "amrex_alloc": 6, "amrex_dealloc": 6, "lo1": 6, "hi1": 6, "lo2": 6, "hi2": 6, "lo3": 6, "hi3": 6, "downsid": 6, "allocat": 6, "rid": 6, "wrong": 6, "stderr": 6, "amrex_abort": 6, "amrex_error_modul": 6, "len": [6, 45], "throw_handl": 6, "throw": [6, 27, 30, 40], "amrex_assert": [6, 8, 10], "amrex_always_assert": [6, 21], "_with_messag": 6, "amrex_assert_with_messag": 6, "segfault": [6, 10, 40], "signal_handl": [6, 10, 40], "clariti": [7, 36], "drop": [7, 15], "studi": 7, "comprehens": 7, "gpuarrai": 7, "array1d": 7, "array2d": 7, "array3d": 7, "long": [7, 15, 21, 30, 34, 40], "paralleldescriptor": [7, 19, 27, 34], "parallelcontext": 7, "dim3": [7, 21], "xdim3": 7, "realbox": [7, 12], "farraybox": [7, 10, 12, 19, 30, 34, 40, 45], "iarraybox": [7, 12], "array4": [7, 8, 12, 21], "imultifab": [7, 21, 30], "parallelfor": [7, 8, 10, 21], "mask": [7, 21, 30, 45], "memori": [7, 8, 10, 12, 15, 17, 19, 22, 27, 32, 34, 35, 42], "abort": [7, 21, 30, 40, 43], "assert": [7, 8, 10, 22], "backtrac": [7, 8, 10, 40], "rule": [8, 25, 42], "upon": [8, 15, 27], "success": [8, 21], "helloworld_c": [8, 21, 23], "amrex_hom": 8, "crai": [8, 15, 21, 27, 45], "ibm": [8, 15, 21], "intel": [8, 15, 21, 22], "llvm": 8, "classic": 8, "pgi": [8, 21], "cxxstd": 8, "20": [8, 12, 15, 21, 30, 42, 45], "use_assert": [8, 10, 21], "use_omp": [8, 23], "use_cuda": [8, 21], "use_hip": [8, 21], "use_sycl": [8, 21], "use_rpath": 8, "warn_al": 8, "amrex_cuda_arch": [8, 21], "cuda_arch": 8, "cuda": [8, 15, 17, 22, 29, 30, 40], "arch": [8, 21, 30], "70": [8, 15, 26, 30], "amrex_amd_arch": [8, 21], "amd_arch": 8, "amd": [8, 21, 22], "gfx908": [8, 21], "machin": [8, 15, 24, 33, 36, 43], "unknown": [8, 30, 31], "use_gpu_rdc": 8, "bash": [8, 45], "export": [8, 15, 21, 36, 45], "tcsh": 8, "setenv": 8, "yield": [8, 21], "equival": [8, 21, 34], "use_single_precision_particl": [8, 34], "obviou": 8, "aggress": 8, "ci": [8, 43], "slight": 8, "mpi_thread_multipl": [8, 27], "concurr": [8, 21, 27, 44], "nvidia": [8, 10, 15, 21, 22, 30], "hip": [8, 22, 29, 40], "sycl": [8, 22, 29], "against": [8, 21, 47], "moment": 8, "mechan": [8, 45], "rpath": 8, "hint": [8, 21], "binari": [8, 15, 27, 34, 40], "ld_library_path": 8, "clang": [8, 21], "warn_error": 8, "cuda_hom": 8, "demo_suit": 8, "devicequeri": 8, "80": [8, 30], "def": 8, "cexe_sourc": 8, "extens": [8, 12, 43, 47], "hpp": 8, "f90exe_sourc": 8, "search": [8, 17, 40], "mysrcdir": 8, "vpath_loc": 8, "include_loc": 8, "gnumak": [8, 17], "md": [8, 17], "brief": 8, "cleanconfig": 8, "temporarili": 8, "colon": 8, "clean": [8, 17, 36], "xxx": [8, 10], "cxx": [8, 17, 21], "cxxflag": 8, "reset": 8, "disregard": 8, "mpicxx": 8, "site": 8, "setup": [8, 19, 21], "host_nam": 8, "dmyname1": 8, "dmyname2": 8, "mydefinit": 8, "foopath": 8, "lib": [8, 45], "library_loc": 8, "lfoo": 8, "fc": [8, 17], "mpixxx": 8, "ifeq": 8, "mpicc": [8, 30], "mpif90": 8, "gfortran": [8, 24], "On": [8, 21, 45], "good": [8, 26, 27, 30, 43, 45], "forc": [8, 21, 35], "xcode": 8, "ship": 8, "woefulli": 8, "outdat": 8, "homebrew": [8, 45], "brew": [8, 45], "usr": [8, 45], "mpich": 8, "experienc": [8, 34], "suggest": [8, 15, 25, 34], "bl_no_fort": 8, "use_ccach": 8, "distclean": 8, "uninstal": 8, "script": [8, 34, 38, 43, 45], "tune": [8, 21, 34], "assist": [8, 23], "pkgconfig": 8, "entri": [8, 34, 43, 44], "amrex_library_hom": 8, "libdir": 8, "incdir": 8, "compile_cpp_flag": 8, "shell": 8, "awk": 8, "cflag": [8, 27], "compile_lib_flag": 8, "lflag": 8, "l": [8, 30, 34], "chosen": [8, 21, 45], "builddir": [8, 43], "roughli": 8, "installdir": 8, "mkdir": 8, "cd": [8, 30, 45], "dcmake_build_typ": [8, 10], "relwithdebinfo": 8, "minsizerel": 8, "dcmake_install_prefix": 8, "test_instal": 8, "snippet": [8, 21, 34], "subsect": 8, "cmake_build_typ": 8, "advis": 8, "suitabl": 8, "var": 8, "damrex_omp": 8, "amrex_omp": 8, "NO": [8, 21], "insensit": 8, "cmake_fortran_compil": 8, "cmake_cxx_compil": [8, 21], "cmake_fortran_flag": 8, "cmake_cxx_flag": [8, 21], "cmake_cxx_standard": 8, "use_xsdk_default": 8, "xsdk": 8, "amrex_build_shared_lib": 8, "share": [8, 45], "amrex_fortran": [8, 21], "amrex_precis": 8, "amrex_p": 8, "amrex_ipo": 8, "interprocedur": 8, "ipo": 8, "lto": 8, "amrex_mpi": 8, "amrex_gpu_backend": [8, 21], "acceler": [8, 21], "backend": [8, 40, 44], "amrex_gpu_rdc": 8, "relocat": 8, "amrex_fortran_interfac": 8, "api": [8, 15, 43, 45, 47], "amrex_linear_solv": 8, "amrex_amrdata": 8, "amrex_amrlevel": 8, "amrex_eb": 8, "amrex_particles_precis": 8, "tini": [8, 15], "amrex_trace_profil": 8, "trace": [8, 10], "amrex_comm_profil": 8, "amrex_mem_profil": 8, "amrex_tp_profil": 8, "parti": 8, "craypat": [8, 16], "forg": 8, "vtune": 8, "amrex_test": [8, 40], "nan": [8, 10, 36, 40], "amrex_mpi_thread_multipl": 8, "amrex_profpars": 8, "amrex_roctx": 8, "roctx": [8, 10], "markup": 8, "amrex_fp": 8, "amrex_bound_check": 8, "amrex_export_dynam": 8, "darwin": 8, "amrex_sensei": 8, "sensei": [8, 46], "situ": [8, 45], "infrastructur": [8, 20], "amrex_no_sensei_amr_inst": 8, "amrex_conduit": 8, "conduit": 8, "amrex_catalyst": 8, "catalyst": 8, "amrex_asc": 8, "ascent": [8, 45], "amrex_hypr": 8, "hypr": [8, 30, 31], "amrex_petsc": 8, "petsc": [8, 30], "amrex_sundi": 8, "sundial": [8, 14, 21], "amrex_hdf5": 8, "hdf5": [8, 28], "amrex_hdf5_zfp": 8, "zfp": [8, 27], "amrex_plotfile_tool": 8, "postprocess": [8, 36], "amrex_enable_test": 8, "ctest": 8, "suit": [8, 15, 35, 39, 41, 45], "amrex_test_typ": 8, "affect": [8, 34], "amrex_different_compil": 8, "app": 8, "amrex_instal": 8, "amrex_probinit": 8, "probin": 8, "platform": [8, 16, 21, 27, 34, 45], "amrex_flatten_for": 8, "flatten": [8, 44], "amrex_compiler_default_inlin": 8, "inlin": [8, 21, 45], "relev": [8, 26, 33, 40], "amrex_inline_limit": 8, "43210": 8, "impli": 8, "cmake_c_compil": 8, "environment": 8, "fflag": 8, "explan": 8, "strictli": [8, 34], "highli": [8, 23, 46], "dcmake_c_compil": 8, "dcmake_cxx_compil": [8, 21], "plai": [8, 25, 45], "cmakelist": [8, 21], "find_packag": [8, 21], "target_link_librari": [8, 21], "amrex_1d": 8, "amrex_2d": 8, "amrex_3d": 8, "flags_cxx": 8, "preset": 8, "flags_fortran": 8, "flags_fp": 8, "damrex_linear_solv": 8, "caus": [8, 10, 12, 15, 21], "fatal": 8, "pic": [8, 21, 34, 35], "finterfac": 8, "lsolver": 8, "amrdata": 8, "eb": [8, 12, 13, 17, 30, 40], "pdoubl": 8, "psingl": 8, "basep": 8, "tinyp": 8, "tracep": 8, "commp": 8, "memp": 8, "profpars": 8, "fpe": 8, "pftool": 8, "amrex_root": 8, "damrex_root": 8, "invoc": [8, 21], "team": [8, 25], "linux": [8, 9, 10, 45], "laptop": 8, "supercomput": [8, 9, 21], "peopl": 8, "mac": [8, 9, 10, 12], "offici": [8, 15, 16, 22, 45], "believ": [8, 42], "fundament": 8, "mostli": [8, 43], "msvc": 8, "posix": 8, "segment": [8, 10, 17], "fault": [8, 10, 17], "capabl": [8, 10, 15, 17, 19, 21, 22, 27, 28, 30, 34, 44, 45], "os": [8, 45], "scientif": [8, 15], "softwar": [8, 15, 29, 43, 45, 47], "wide": [8, 21, 27], "varieti": [8, 15, 21, 34], "learn": [8, 47], "visit": [8, 23, 27, 29, 46], "www": [8, 15, 42, 45], "instruct": [8, 15, 21, 27, 40, 45], "pleas": [8, 9, 16, 17, 21, 23, 27, 34, 38, 41, 44, 45], "readthedoc": [8, 41], "onc": [8, 34, 43, 45], "download": [8, 24, 27, 45], "info": [8, 30, 45], "architectur": [8, 10, 15, 21, 30], "sm_60": 8, "60": [8, 15], "spack": [9, 23], "adopt": 9, "libamrex": [9, 19], "c99": 9, "prerequisit": 9, "perl": 9, "sed": 9, "18": [9, 15, 45], "cori": [9, 21], "summit": [9, 15, 21, 34], "dissect": 9, "tweak": [9, 34], "maco": 9, "ccach": 9, "custom": [9, 10, 17, 21, 44, 45], "project": [9, 12, 15, 21, 30, 45], "art": 10, "everyon": 10, "favorit": [10, 21, 45], "method": [10, 12, 13, 15, 30, 34, 40, 41, 42], "offer": 10, "few": [10, 15, 16, 17, 21, 43, 45], "tip": [10, 22, 45], "rais": [10, 40], "chanc": 10, "interrupt": 10, "overflow": [10, 17], "damrex_assert": 10, "trap": [10, 15, 40], "damrex_fp": 10, "paramet": [10, 12, 17, 19, 22, 23, 26, 27, 31, 35, 43, 44, 45, 47], "fpe_trap_zero": [10, 40], "fpe_trap_overflow": [10, 40], "uniniti": [10, 21], "bl_alloc": 10, "init_snan": [10, 40], "m1": 10, "m2": 10, "chip": 10, "arm64": 10, "rho": [10, 12, 21, 34, 36], "thousand": 10, "million": 10, "hit": [10, 15], "amrex_blbacktrac": 10, "ostringstream": 10, "ss": 10, "bl_backtrace_push": 10, "str": 10, "bl_backtrace_pop": 10, "disk": [10, 17, 27, 34, 40, 45], "vismf": [10, 15, 17, 27, 40], "amrex_vismf": 10, "examin": [10, 34, 43], "amrex_multifabutil": 10, "print_stat": [10, 17], "valgrind": 10, "mpiexec": [10, 23], "leak": [10, 19], "vallog": 10, "modern": 10, "attach": [10, 44], "crash": 10, "throw_except": [10, 40], "asynchron": [10, 17, 21, 25, 40], "improperli": 10, "variat": [10, 21], "linearli": 10, "streamsynchron": [10, 17, 21], "halt": 10, "stream": [10, 22, 27, 40], "request": [10, 21, 25, 43, 47], "therebi": 10, "easier": [10, 15, 17, 34, 36], "gdb": 10, "hpctoolkit": 10, "rocgdb": 10, "topic": [10, 17], "olcf": [10, 21], "ornl": [10, 21], "gov": [10, 15, 21, 42, 43, 45], "summit_user_guid": 10, "nvprof": [10, 21], "main3d": [10, 15, 21, 23], "nsight": [10, 16], "nsy": [10, 15], "nvvp": 10, "xxxx": 10, "nsys_out": 10, "slurm_procid": 10, "slurm_jobid": 10, "page": [10, 17, 21, 25, 41, 43, 45], "sy": 10, "pwd": 10, "qdrep": [10, 15], "memcheck": [10, 21], "newer": 10, "sanit": 10, "cuda_launch_block": 10, "rocprof": 10, "hsa": 10, "stat": 10, "timestamp": 10, "chrome": 10, "hip_launch_block": 10, "chicken": 10, "ze_trac": 10, "advisor": 10, "survei": 10, "back": [10, 21, 34, 42], "ze_debug": 10, "rather": [11, 13, 45], "estim": 11, "pursu": 11, "onto": [11, 21, 30, 32, 34, 35], "surfac": [12, 13, 30, 40], "bodi": [12, 23, 25], "sphere": 12, "radiu": [12, 34, 45], "sphereif": 12, "shop": 12, "makeshop": [12, 17], "stl": [12, 40], "stl_file": [12, 40], "geom_typ": [12, 40], "required_coarsening_level": 12, "max_coarsening_level": 12, "build_coarse_level_by_coarsen": 12, "stl_scale": [12, 40], "stl_center": [12, 40], "stl_reverse_norm": [12, 40], "revers": [12, 27, 40, 42], "predefin": [12, 40, 44], "allregularif": 12, "boxif": 12, "cylinderif": 12, "cylind": 12, "ellipsoidif": 12, "ellipsoid": 12, "planeif": 12, "plane": [12, 45], "appli": [12, 19, 21, 26, 27, 30, 32, 33, 40, 45], "makecompl": 12, "complement": [12, 34], "makeintersect": 12, "makeunion": 12, "rotat": [12, 45], "lath": 12, "revolut": [12, 45], "axi": [12, 36], "sphere1": 12, "sphere2": 12, "twospher": 12, "box_plan": 12, "scylind": 12, "typenam": 12, "gshop": [12, 17], "multigrid": [12, 26, 30, 31], "a_geom": [12, 30], "a_ba": 12, "a_dm": 12, "a_ngrow": 12, "ebsupport": 12, "a_support": 12, "unique_ptr": [12, 27, 30], "makeebfabfactori": 12, "fraction": [12, 26], "centroid": [12, 30], "fabfactori": [12, 30], "factori": 12, "dynamic_cast": 12, "getmultiebcellflagfab": 12, "getvolfrac": 12, "multicutfab": 12, "getcentroid": 12, "getbndryc": 12, "getbndrynorm": 12, "getbndryarea": 12, "getareafrac": 12, "getfacec": 12, "dimensionless": 12, "isotrop": 12, "anisotrop": 12, "n_x": [12, 42], "n_y": [12, 42], "n_z": [12, 42], "un": [12, 26], "frame": [12, 45], "Its": [12, 19], "cutfab": 12, "fabtyp": 12, "gettyp": 12, "singlevalu": 12, "centroid_fab": 12, "amrex_ebcellflag_modul": 12, "is_regular_cel": 12, "is_single_valued_cel": 12, "is_covered_cel": 12, "review": [12, 25], "pde": [12, 13, 23, 29], "quantiti": 12, "theorm": 12, "int_v": 12, "dv": 12, "int_": 12, "da": 12, "kappa": [12, 30], "left": [12, 15, 23, 34, 40], "d_": [12, 21], "alpha_": [12, 30], "right": [12, 17, 23, 25, 30, 31, 34, 44], "apertur": 12, "multivalu": 12, "infer": 12, "align": 12, "grei": 12, "portion": [12, 15, 21], "uncov": 12, "law": [12, 13], "constraint": [12, 26, 40], "sim": 12, "v_m": 12, "smallest": 12, "arbitrarili": [12, 13, 34, 45], "unaccept": 12, "address": [12, 17, 21], "_t": 12, "rh": [12, 30, 44], "convect": 12, "c_i": 12, "dfrac": 12, "mathcal": 12, "_i": [12, 30], "sum_": [12, 30], "n_f": 12, "a_f": 12, "vec": 12, "limits_": 12, "_j": 12, "c_j": 12, "mass": [12, 21, 34], "m_i": 12, "w_": 12, "ij": [12, 30], "qquad": 12, "foral": 12, "setminu": 12, "phi_i": 12, "neighborhood": 12, "monoton": 12, "excess": [12, 21], "guiliani": 12, "et": [12, 42], "al": [12, 41, 42], "2021": 12, "arxiv": [12, 17], "berger": [12, 26], "2020": [12, 15], "canon": [12, 30, 31], "homogen": [12, 30], "inhomogen": [12, 30], "mlebabeclap": [12, 30], "mlabeclaplacian": [12, 30], "a_grid": [12, 30], "a_dmap": [12, 30], "lpinfo": [12, 30], "a_info": [12, 30], "a_factori": [12, 30], "ml_ebabeclap": [12, 30], "setebhomogdirichlet": [12, 30], "coeff": [12, 30], "coeffici": [12, 31], "setebdirichlet": [12, 30], "phi_on_eb": [12, 30], "setphioncentroid": [12, 30], "setbcoeff": [12, 30], "beta": [12, 30, 31], "mlmg": [12, 15, 17, 31], "facecentroid": [12, 30], "cn": 12, "poisson": [12, 30, 31, 42, 43], "proxi": 12, "electrostat": [12, 34], "ground": 12, "charg": [12, 34], "macproj": 12, "emploi": 13, "cut": [13, 15, 29, 30, 34, 40], "tradition": 13, "fragment": [13, 21], "practic": [13, 21, 23, 34], "quickli": [13, 21, 43], "robustli": 13, "impact": [13, 40], "robust": 13, "stabil": [13, 30], "tradit": 13, "geometr": [13, 21, 30, 31], "ebfarrayboxfactori": [13, 30], "swfft": 14, "xc": 15, "measur": [15, 17, 21, 32, 40], "prgenv": 15, "chiefli": 15, "reveal": 15, "cce": 15, "grain": [15, 17], "hardwar": [15, 21, 27], "consum": [15, 45], "perftool": 15, "lite": 15, "opposit": 15, "wrapper": [15, 19, 45], "ftn": [15, 45], "nersc": 15, "ap2": 15, "suffix": 15, "pat_report": 15, "login": 15, "pipe": 15, "pager": 15, "samp": 15, "imb": 15, "pe": 15, "hide": [15, 21], "235": 15, "50": 15, "628": 15, "383": 15, "eos_module_mp_iterate_ne_": 15, "300": 15, "138": 15, "42": 15, "amrex_deposit_c": 15, "265": 15, "79": 15, "update_dm_particl": 15, "147": 15, "fort_fab_setv": 15, "137": 15, "ppm_module_mp_ppm_type1_": 15, "133": 15, "eos_module_mp_nyx_eos_t_given_re_": 15, "107": 15, "33": [15, 45], "incrementwithtot": 15, "89": 15, "f_rhs_": 15, "74": 15, "riemannus_": 15, "56": [15, 45], "calculateminmax": 15, "471": [15, 45], "388": 15, "__intel_mic_avx512f_memcpi": 15, "362": 15, "45": 15, "cvode": [15, 41], "164": 15, "__libm_log10_l9": 15, "149": 15, "21": [15, 45], "_internal_25_______src_kmp_barrier_cpp_5de9139b": 15, "__kmp_hyper_barrier_gath": 15, "879": 15, "266": 15, "123": 15, "mpi_allreduc": [15, 18], "218": 15, "104": 15, "43": 15, "mpi_waital": 15, "151": 15, "78": 15, "mpi_bcast": 15, "135": 15, "mpi_barri": 15, "105": 15, "mpi_recv": 15, "93": 15, "hpc": [15, 27, 45], "todo": 15, "re": [15, 33, 40, 43, 45], "past": 15, "ipm_report": 15, "ipm_log": 15, "ipm_logdir": 15, "xml": [15, 45], "post": [15, 45, 47], "ipm_pars": 15, "xmlfile": 15, "ipmv2": 15, "cscratch1": [15, 45], "sd": [15, 45], "cchan2": 15, "lbl": [15, 43, 45], "boxlib": [15, 45, 47], "linearsolv": [15, 30, 43], "c_cellmg": 15, "25600": 15, "tue": 15, "aug": 15, "2017": [15, 34, 45], "nid11311": 15, "35": 15, "wallclock": 15, "mpi_task": 15, "51": [15, 45], "mem": 15, "gb": 15, "126": 15, "47": 15, "gflop": 15, "sec": 15, "1188": 15, "73": 15, "386": 15, "02": 15, "52": 15, "36": 15, "44": 15, "5031172": 15, "39306": 15, "23067": 15, "57189": 15, "225": 15, "72": 15, "567552": 15, "92": 15, "84": 15, "397056": 15, "81": 15, "193": 15, "mpi_isend": 15, "25": [15, 30, 45], "04": [15, 23], "2031810": 15, "mpi_irecv": 15, "37": 15, "mpi_allgath": 15, "512": [15, 45], "mpi_gatherv": 15, "mpi_comm_dup": 15, "256": [15, 21, 23, 40], "mpi_send": 15, "06": [15, 21], "319": 15, "01": 15, "mpi_reduc": 15, "mpi_comm_fre": 15, "mpi_comm_group": 15, "mpi_comm_s": 15, "mpi_comm_rank": 15, "mpi_init": 15, "mpi_fin": 15, "footprint": 15, "ipm_hpm": 15, "comma": [15, 21], "papi_l2_tca": 15, "papi_l2_tcm": 15, "papi_avail": 15, "papi_l1_dcm": 15, "0x80000000": 15, "papi_l1_icm": 15, "0x80000001": 15, "papi_l1_tcm": 15, "0x80000006": 15, "0x80000007": 15, "papi_tlb_dm": 15, "0x80000014": 15, "lookasid": 15, "papi_l1_ldm": 15, "0x80000017": 15, "papi_l2_ldm": 15, "0x80000019": 15, "papi_stl_ici": 15, "0x80000025": 15, "papi_br_ucn": 15, "0x8000002a": 15, "uncondit": 15, "papi_br_cn": 15, "0x8000002b": 15, "papi_br_tkn": 15, "0x8000002c": 15, "papi_br_ntk": 15, "0x8000002d": 15, "papi_br_msp": 15, "0x8000002e": 15, "mispredict": 15, "papi_tot_in": 15, "0x80000032": 15, "papi_ld_in": 15, "0x80000035": 15, "papi_sr_in": 15, "0x80000036": 15, "papi_br_in": 15, "0x80000037": 15, "papi_res_stl": 15, "0x80000039": 15, "stall": 15, "papi_tot_cyc": 15, "0x8000003b": 15, "papi_lst_in": 15, "0x8000003c": 15, "papi_l1_dca": 15, "0x80000040": 15, "papi_l1_ich": 15, "0x80000049": 15, "papi_l1_ica": 15, "0x8000004c": 15, "papi_l2_tch": 15, "0x80000056": 15, "0x80000059": 15, "papi_ref_cyc": 15, "0x8000006b": 15, "pub": [15, 43, 45], "com": [15, 23, 30, 43, 45], "2376": 15, "guid": [15, 21, 24, 47], "646": 15, "2179": 15, "85": 15, "3901": 15, "sourceforg": 15, "userguid": 15, "displai": [15, 36, 45], "nvtx": 15, "pictur": [15, 45], "workstat": 15, "file_nam": 15, "difficult": [15, 21], "pars": 15, "deciph": 15, "marker": 15, "region_nam": 15, "nsys_nvtx_profiler_register_onli": 15, "timer": [15, 21], "do_hydro": 15, "skip": [15, 34], "remaind": 15, "plan": 15, "analys": 15, "accordingli": 15, "alter": [15, 30, 45], "cudaprofilerstart": 15, "TO": 15, "cudaprofilerstop": 15, "cudaprofilerapi": 15, "inner": [15, 21], "menu": [15, 45], "occup": [15, 21], "primarili": 15, "transfer": [15, 19, 21, 30, 45], "told": [15, 21], "ncu": 15, "extrem": [15, 34], "lengthi": 15, "unnecessari": [15, 21, 40], "narrow": 15, "stencila": 15, "stencilc": 15, "gravitysolv": 15, "ten": 15, "filter": [15, 21, 45], "speedoflight_rooflinechart": 15, "critic": 15, "model": [15, 21, 25, 45], "literatur": 15, "wikipedia": 15, "ipm": 16, "cross": [16, 21, 27, 30], "monitor": 16, "why": [17, 34], "am": 17, "troubl": 17, "resolv": 17, "prompt": 17, "inconsist": 17, "device_synchronize_around_region": [17, 40], "answer": [17, 43], "fcompar": 17, "absolut": [17, 30, 36], "decid": [17, 25, 45], "meta": 17, "the_pinned_arena": [17, 21], "htod_memcpi": 17, "p_d": 17, "p_h": 17, "size_t": [17, 21, 34], "sz": [17, 21, 27], "dtoh_memcpi": 17, "scomp": 17, "random": 17, "seed": 17, "dedic": 17, "explain": [17, 42], "paper": 17, "1604": 17, "03570": 17, "formal": 17, "csg": 17, "assembl": 17, "eventu": 17, "4096": 17, "circumv": [17, 30], "deviceptrif": 17, "if_t": 17, "decltyp": 17, "mycomplexif": 17, "dp": 17, "the_arena": [17, 21], "sizeof": 17, "htod_memcpy_async": 17, "dp_mycomplexif": 17, "encourag": [17, 21, 45], "job": [18, 21, 40], "bulk": [18, 30], "fashion": [18, 32, 34], "sequenc": [18, 21, 27, 45], "subgroup": [18, 21], "resum": 18, "subdivid": [18, 26], "heterogen": 18, "strong": [18, 45], "penalti": [18, 40], "inher": 18, "subtask": 18, "visibl": [18, 21], "root": [18, 40], "f_interfac": 19, "helloworld_f": 19, "advection_f": 19, "entireti": 19, "amrex_base_modul": 19, "amrex_init": 19, "amrex_parallel_ioprocessor": 19, "hello": [19, 21, 24], "world": [19, 21, 24], "amrex_fin": 19, "amrex_amrcore_modul": 19, "amrex_octree_modul": 19, "style": [19, 34], "unlik": [19, 45], "amrex_parallel_modul": 19, "amrex_parallel_mod": 19, "amrex_parmparse_modul": 19, "amrex_parmparse_mod": 19, "amrex_parmparse_build": 19, "amrex_parmpase_destroi": 19, "amrex_box_modul": 19, "amrex_box_mod": 19, "amrex_geometry_build": 19, "amrex_geometry_destroi": 19, "amrex_boxarray_mod": 19, "amrex_distromap": 19, "amrex_distromap_mod": 19, "amrex_boxarray_build": 19, "break": [19, 21, 43], "amrex_distromap_build": 19, "amrex_distromap_distromap": 19, "amrex_boxarray_destroi": 19, "ndmf": 19, "amrex_multifab_build": 19, "amrex_multifab_destroi": 19, "fill_boundari": 19, "parallel_copi": 19, "amrex_mfit": 19, "plo": [19, 34], "po": [19, 21, 34], "pn": 19, "old_phi": 19, "new_phi": 19, "distromap": 19, "update_phi": 19, "amrex_mfiter_destroi": 19, "pold": 19, "pnew": 19, "c_ptr": 19, "semant": 19, "prefer": [19, 21], "five": [19, 21, 34], "shallow": 19, "owner": 19, "longer": [19, 21, 26, 34, 45], "ownership": [19, 21], "swap": 19, "exchang": [19, 21], "amrex_plotfile_modul": 19, "amrex_amr_modul": 19, "amrex_amrcore_init": 19, "my_amr_init": 19, "my_amr_fin": 19, "amrex_amrcore_fin": 19, "hook": [19, 21], "amrex_init_virtual_funct": 19, "mk_lev_scrtch": 19, "mk_lev_crs": 19, "mk_lev_r": 19, "clr_lev": 19, "err_est": 19, "amrex_make_level_proc": 19, "amrex_clear_level_proc": 19, "amrex_error_est_proc": 19, "c_char": 19, "fortraninterfac": 19, "my_amr_mod": 19, "amrex_tagboxarrai": 19, "amrex_fillpatch_modul": 19, "fillpatch_mod": 19, "amrex_fluxregister_modul": 19, "fluxregist": [19, 27], "nevertheless": 19, "amrex_octree_mod": 19, "advection_octree_f": 19, "amrex_octree_init": 19, "amrex_octree_fin": 19, "amrex_octree_int": 19, "amrex_octree_it": 19, "oti": 19, "ilev": 19, "igrd": 19, "pout": 19, "amrex_octree_iter_build": 19, "grid_index": 19, "amrex_octree_iter_destroi": 19, "who": [20, 38], "confus": 20, "latter": [20, 21, 40, 45], "drive": 20, "octre": 20, "focus": [21, 22, 23], "ineffect": 21, "concern": [21, 34], "decreas": 21, "orang": 21, "scienc": 21, "movement": 21, "reliabl": 21, "strive": 21, "lend": 21, "readili": 21, "stai": [21, 43], "parit": [21, 34], "sequenti": [21, 32, 36], "similarli": [21, 44], "fifth": 21, "purpl": 21, "remain": [21, 26, 30, 42], "meanwhil": 21, "port": 21, "ran": [21, 45], "use_acc": 21, "use_omp_offload": 21, "driver": 21, "nvcc": [21, 30], "nvcc_host_comp": 21, "alon": [21, 23, 47], "404": 21, "g0455b168b69c": 21, "dirti": [21, 23], "mb": [21, 40], "6069": 21, "5896": 21, "4552": 21, "pin": [21, 40], "sycl_aot": 21, "ahead": 21, "sycl_aot_grf_mod": 21, "aot": 21, "autolarg": 21, "amrex_intel_arch": 21, "target": [21, 22, 30], "pvc": 21, "sycl_split_kernel": 21, "use_onedpl": 21, "onedpl": 21, "sycl_sub_group_s": 21, "sycl_parallel_link_job": 21, "damrex_gpu_backend": 21, "damrex_gpu_max_thread": 21, "amrex_cuda_fastmath": 21, "fastmath": 21, "amrex_cuda_backtrac": 21, "amrex_cuda_compilation_tim": 21, "csv": [21, 30, 36], "phase": [21, 34, 35], "amrex_cuda_debug": 21, "amrex_cuda_error_capture_thi": 21, "amrex_cuda_error_cross": 21, "_execution_space_cal": 21, "amrex_cuda_keep_fil": 21, "folder": [21, 36], "nvcc_tmp": 21, "amrex_cuda_lto": 21, "amrex_cuda_maxregcount": 21, "255": 21, "amrex_cuda_ptx_verbos": 21, "ptxa": 21, "amrex_cuda_show_codelin": 21, "ptx": 21, "amrex_cuda_show_linenumb": 21, "amrex_cuda_warn_capture_thi": 21, "damrex_cuda_arch": 21, "ture": 21, "volta": 21, "amper": 21, "cap": 21, "autodetect": 21, "semicolon": 21, "higher": [21, 30, 40], "toolkit": 21, "subproject": 21, "strongli": 21, "amrex_setupcuda": 21, "enable_languag": 21, "obsolet": 21, "cmake_vers": 21, "version_less": 21, "add_subdirectori": 21, "helper": [21, 27], "setup_target_for_cuda_compil": 21, "my_target": 21, "target_sourc": 21, "source1": 21, "source2": 21, "source3": 21, "damrex_amd_arch": 21, "rocm": [21, 22], "yet": [21, 27, 44, 45], "hipcc": 21, "tulip": 21, "gfx906": 21, "icpx": 21, "amrex_sycl_aot": 21, "amrex_sycl_aot_grf_mod": 21, "amrex_sycl_split_kernel": 21, "amrex_sycl_onedpl": 21, "amrex_sycl_sub_group_s": 21, "amrex_parallel_link_job": 21, "qualifi": 21, "amrex_gpu_host": 21, "__host__": 21, "__device__": 21, "amrex_gpu_glob": 21, "__global__": 21, "amrex_gpu_host_devic": 21, "amrex_use_cuda": 21, "amrex_use_hip": 21, "amrex_use_sycl": 21, "amrex_use_acc": 21, "amrex_use_gpu": 21, "amrex_use_omp_offload": 21, "amrex_if_on_devic": 21, "code_for_devic": 21, "amrex_if_on_host": 21, "code_for_host": 21, "the_device_arena": 21, "the_managed_arena": 21, "the_arena_is_manag": [21, 40], "gradual": 21, "likewis": [21, 34], "alias": 21, "amount": [21, 40], "kept": [21, 25], "the_arena_init_s": [21, 40], "8388608": [21, 40], "the_managed_arena_init_s": [21, 40], "the_device_arena_init_s": [21, 40], "the_pinned_arena_init_s": [21, 40], "reus": [21, 34], "huge": 21, "the_arena_release_threshold": [21, 40], "the_pinned_arena_release_threshold": [21, 40], "the_device_area": 21, "the_device_arena_release_threshold": [21, 40], "the_managed_arena_release_threshold": [21, 40], "freeunus": 21, "unus": [21, 40, 43], "printusag": 21, "the_sunmemory_help": 21, "n_vector": 21, "n_vnewwithmemhelp_cuda": 21, "use_managed_memori": 21, "destruct": 21, "rewritten": 21, "invcellsizearrai": 21, "length3d": 21, "callback": 21, "h_": 21, "aa_": 21, "h_v": 21, "a_cpu_funct": 21, "aa_v1": 21, "d_v1": 21, "aa_v2": 21, "d_v2": 21, "atom": 21, "copytohost": 21, "host_point": 21, "number_of_el": 21, "aa_v": 21, "d_v": 21, "dealloc": 21, "resiz": [21, 30, 40], "devicevector": [21, 40], "hostvector": 21, "managedvector": [21, 40], "behav": [21, 34], "unsupport": 21, "great": [21, 33], "parreduc": 21, "kinet": 21, "energi": 21, "momentum": 21, "densiti": [21, 36, 45], "compute_ek": 21, "ma": 21, "typelist": 21, "reduceopsum": 21, "box_no": 21, "gputupl": 21, "rhovx": 21, "rhovi": 21, "rhovz": 21, "ek": 21, "compute_norm": 21, "data_ma": 21, "mask_ma": 21, "reduceopmax": 21, "freeli": [21, 47], "probhiarrai": 21, "isperiodicarrai": 21, "ixtyp": 21, "tmp_fab": 21, "tmp_eli": 21, "tmp_arr": 21, "the_async_arena": 21, "older": 21, "unlimit": 21, "adjust": [21, 23, 45], "the_async_arena_release_threshold": [21, 40], "prepar": [21, 22], "queue": [21, 45], "conjunct": 21, "earlier": 21, "schema": 21, "categori": 21, "arbitrari": 21, "simd": [21, 40], "wherev": 21, "compact": 21, "amrex_parallel_for_4d": 21, "lightweight": 21, "quadrupli": 21, "simplifi": 21, "consecut": 21, "n_start": 21, "amrex_parallel_for_3d": 21, "amrex_restrict": 21, "nitem": 21, "numpt": 21, "idx": 21, "amrex_parallel_for_1d": 21, "amrex_gpu_max_thread": 21, "my_block_s": 21, "warp": 21, "arr": 21, "tbx": 21, "pluseone_array4": 21, "plusone_fab": 21, "amrex_launch_device_lambda": 21, "plusone_array4": 21, "substanti": 21, "plusone_acc": 21, "dat": 21, "acc": [21, 34], "deviceptr": 21, "0_amrex_r": 21, "consult": [21, 40], "collaps": 21, "schedul": [21, 25, 27], "is_device_ptr": 21, "readi": [21, 27, 30], "privat": 21, "pitfal": 21, "myclass": 21, "printf": 21, "unifi": 21, "local_m": 21, "parenthes": 21, "ok": [21, 27, 45], "quicker": 21, "wors": 21, "workflow": [21, 38, 45], "copyasync": 21, "facilit": [21, 34], "streamsynchronizeal": 21, "devicetohost": 21, "too": [21, 26, 34, 40], "interfer": 21, "pose": 21, "difficulti": 21, "uin": 21, "uout": 21, "gbx": 21, "grow": 21, "rewrit": 21, "eli": 21, "qarr": 21, "uinarr": 21, "uoutarr": 21, "amrex_gpu_error_check": 21, "health": 21, "successfulli": [21, 30], "nearbi": [21, 34], "push_position_bori": 21, "np": [21, 34, 45], "uxp": 21, "uyp": 21, "uzp": 21, "gaminv": 21, "em_particle_modul": 21, "particle_t": [21, 34], "ip": 21, "gang": 21, "claus": [21, 47], "bypass": 21, "electromagnet": 21, "travers": 21, "deposit": [21, 34], "fillneighbor": [21, 34], "updateneighbor": 21, "halo": 21, "traffic": 21, "advantag": [21, 45], "web": [21, 43, 45], "facil": [21, 45], "explor": [21, 45], "meantim": 21, "categor": 21, "bl_profile_var": 21, "a_nam": 21, "blp": 21, "bl_profile_stop": 21, "fewer": [21, 25, 30], "greatli": 21, "amrex_force_inlin": 21, "plusone_cudacpp": 21, "pai": 21, "attent": 21, "ll": [21, 45], "satur": 21, "capac": 21, "probabl": 21, "jsrun": 21, "viewer": 21, "jobstepview": 21, "robin": [21, 30, 32], "suboptim": 21, "socket": 21, "prefac": 21, "use_gpu_aware_mpi": [21, 34, 40], "worth": [21, 34], "abort_on_out_of_gpu_memori": [21, 40], "vendor": [22, 40], "openacc": 22, "aurora": 22, "publicli": [22, 29], "oneapi": 22, "forthcom": 22, "migrat": [22, 47], "repo": [23, 45], "monthli": [23, 47], "basi": [23, 27, 34], "yy": 23, "mm": 23, "month": [23, 47], "year": 23, "patch": 23, "amrex_": 23, "g5775aed933c4": 23, "commit": [23, 43], "5775aed933c4": 23, "letter": [23, 27], "g577": 23, "uncommit": 23, "omp_num_thread": [23, 27, 40], "forward": [23, 42, 44], "euler": [23, 44], "tempor": 23, "inputs_2d": 23, "000": [23, 40], "plt01000": [23, 45], "ccse": [23, 43, 45, 46], "yt": [23, 29, 34, 46], "progress": 23, "helloworld": 23, "walk": [23, 24, 47], "thru": 23, "heat": [24, 31, 45], "led": 25, "ann": 25, "almgren": 25, "john": 25, "bell": 25, "chair": 25, "andrew": 25, "myer": 25, "weiqun": 25, "zhang": 25, "organiz": 25, "administr": 25, "archiv": 25, "vote": 25, "veto": 25, "tc": 25, "3rd": 25, "meet": 25, "unanim": 25, "mail": 25, "chat": 25, "confidenti": 25, "cast": 25, "week": 25, "tie": 25, "act": [25, 30], "breaker": 25, "attend": 25, "contribut": [25, 47], "resign": 25, "inact": 25, "inappropri": 25, "marc": 25, "dai": 25, "candac": 25, "gilet": 25, "kevin": 25, "gott": 25, "axel": 25, "huebl": 25, "andi": 25, "nonaka": 25, "jean": 25, "sexton": 25, "michael": [25, 43], "zingal": [25, 43], "approv": 25, "merg": 25, "exig": 25, "circumst": 25, "weigh": 25, "pr": 25, "moder": 25, "mute": 25, "bad": 25, "actor": 25, "propos": [25, 42], "particip": 25, "guidelin": 25, "confirm": 25, "valuabl": 25, "vet": 25, "pull": [25, 43, 47], "benchmark": [25, 43], "triag": 25, "classif": 25, "nomin": 25, "lost": [25, 27], "acknowledg": 25, "span": [26, 45], "popular": [26, 45], "constrain": 26, "fact": 26, "suffici": [26, 45], "ridden": 26, "ngrid": 26, "caveat": 26, "violat": [26, 40], "criterion": 26, "max_grid_size_x": [26, 40], "max_grid_size_i": [26, 40], "max_grid_size_z": [26, 40], "blocking_factor_x": [26, 40], "blocking_factor_i": [26, 40], "blocking_factor_z": [26, 40], "proce": [26, 45], "kd": [26, 32], "ie": 26, "satisfi": 26, "rigoutso": 26, "cluster": 26, "7x7x7": 26, "git": [27, 30, 42, 45], "writesinglelevelplotfil": 27, "plotfilenam": [27, 36], "varnam": [27, 34], "level_step": [27, 34], "writemultilevelplotfil": [27, 34], "nlevel": [27, 32], "plt00258": 27, "concaten": 27, "258": 27, "pfname": 27, "plt": [27, 34, 40, 45], "pfname2": 27, "plt0258": 27, "1234567": 27, "pfname3": 27, "plt1234567": 27, "significantli": 27, "getvecofconstptr": [27, 30, 34], "plt00350": 27, "46576787980": 27, "abil": [27, 45], "persist": 27, "drastic": 27, "walltim": 27, "thread_multipl": 27, "ping": 27, "serial": 27, "async_out": [27, 40], "async_out_nfil": [27, 40], "writemlmf": 27, "asyncwrit": 27, "writeplotfil": [27, 34], "writesmallplotfil": 27, "statedata": 27, "spawn": [27, 40, 45], "oversubscrib": 27, "oversubscript": 27, "self": 27, "use_hdf5": 27, "hdf5_home": 27, "webpag": [27, 47], "writesinglelevelplotfilehdf5": 27, "writemultilevelplotfilehdf5": 27, "chombo": [27, 45], "plugin": 27, "dataset": [27, 34, 36, 45], "h5z": 27, "use_hdf5_sz": 27, "sz_home": 27, "use_hdf5_zfp": 27, "zfp_home": 27, "h5z_home": 27, "zlib": 27, "gzip": 27, "compression_level": 27, "config": [27, 45], "zfp_rate": 27, "rate": 27, "zfp_precis": 27, "zfp_accuraci": 27, "accuraci": 27, "zfp_revers": 27, "hdf5_chunk_siz": 27, "1024": [27, 34], "vol": 27, "connector": 27, "denable_write_memcpi": 27, "use_hdf5_async": 27, "abt_hom": 27, "async_hom": 27, "hdf5benchmark": 27, "interleav": 27, "characterist": 27, "overcom": 27, "writesinglelevelplotfilehdf5multidset": 27, "writemultilevelplotfilehdf5multidset": 27, "restart": [27, 34, 40], "readcheckpointfil": 27, "writecheckpointfil": 27, "chk00010": 27, "along": [27, 30, 36, 42, 45], "level_0": 27, "level_1": 27, "printout": 27, "fist": 27, "subsequ": 27, "checkpointnam": 27, "chk": [27, 40], "callbarri": 27, "prebuild": 27, "dirnam": 27, "subdirprefix_0": 27, "subdirprefix_nlevel": 27, "prebuilddirectorhierarchi": 27, "level_": 27, "io_buff": 27, "io_buffer_s": 27, "headerfil": 27, "rdbuf": 27, "pubsetbuf": 27, "headerfilenam": 27, "c_str": 27, "trunc": 27, "fileopenfail": 27, "amrcoreadv": 27, "writeon": 27, "setnoutfil": 27, "multifabfilefullprefix": 27, "istringstream": 27, "restart_chkfil": 27, "getiobuffers": 27, "filecharptr": 27, "readandbcastfil": 27, "filecharptrstr": 27, "word": [27, 30, 42], "getlin": 27, "gotonextlin": 27, "stoi": 27, "stod": 27, "readfrom": 27, "setboxarrai": 27, "setdistributionmap": 27, "make_uniqu": [27, 30], "refratio": 27, "async": 28, "massiv": [29, 47], "parabol": 29, "represent": [29, 31, 40, 45], "flat": 29, "hybrid": [29, 45], "lbnl": [29, 47], "mllinop": 30, "mlnodelaplacian": 30, "sigma": [30, 31], "a_ncomp": 30, "noth": 30, "setscalar": 30, "setacoeff": 30, "amrlev": 30, "regardless": 30, "sole": 30, "appreci": 30, "gain": 30, "setsigma": 30, "a_sigma": 30, "a_const_sigma": 30, "a_sol": 30, "a_rh": 30, "a_tol_rel": 30, "a_tol_ab": 30, "guess": 30, "hand": [30, 31, 44], "toler": 30, "hard": [30, 34], "ax": [30, 34], "residu": 30, "max_norm": 30, "always_use_bnorm": 30, "compresidu": 30, "a_r": 30, "getgradsolut": 30, "a_grad_sol": 30, "getflux": 30, "a_flux": 30, "setdomainbc": 30, "linopbctyp": 30, "lobc": 30, "hibc": 30, "inhomogneumann": 30, "setcoarsefinebc": 30, "crse": 30, "crse_ratio": 30, "setlevelbc": 30, "levelbcdata": 30, "robinbc_a": 30, "robinbc_b": 30, "robinbc_f": 30, "dphi": 30, "overset": 30, "omask": 30, "setoversetmask": 30, "a_dmask": 30, "setverbos": [30, 40], "setbottomverbos": 30, "bottom": 30, "setmaxit": 30, "setfixedit": 30, "setmaxfmgit": 30, "switch": [30, 34, 43], "setmaxcoarseninglevel": 30, "mlabeclap": 30, "relax": 30, "biconjug": 30, "setbottomsolv": 30, "bottomsolv": 30, "bicgstab": [30, 31], "cg": 30, "conjug": 30, "matrix": [30, 44], "symmetr": 30, "smoother": 30, "gauss": 30, "seidel": 30, "bicgcg": 30, "cgbicg": 30, "setagglomer": 30, "setconsolid": 30, "setconsolidationgrids": 30, "setconsolidationratio": 30, "setconsolidationstrategi": 30, "setthrowexcept": 30, "wherebi": 30, "caught": [30, 40], "chain": 30, "nodalprojector": 30, "nodal_projector": 30, "setmaxord": 30, "maxord": 30, "setter": 30, "setmetricterm": 30, "setrzcorrect": 30, "radial": 30, "precondition": 30, "boomeramg": 30, "gmre": 30, "pcg": 30, "euclid": 30, "init_hypr": [30, 40], "tri": 30, "clone": [30, 43, 45], "bigint": 30, "hypre_dir": 30, "hypre_path": 30, "90": 30, "smi": 30, "compute_cap": 30, "abeclaplacian": 30, "nodetensorlap": 30, "singular": 30, "replac": 30, "row": [30, 36, 44], "adjust_singular_matrix": 30, "hypre_solv": 30, "hypre_precondition": 30, "recompute_precondition": 30, "recomput": 30, "write_matrix_fil": 30, "overwrite_existing_matrix_fil": 30, "bamg_verbos": 30, "hypre_boomeramgsetprintlevel": 30, "bamg_log": 30, "hypre_boomeramgsetlog": 30, "bamg_coarsen_typ": 30, "hypre_boomeramgsetcoarsentyp": 30, "bamg_cycle_typ": 30, "hypre_boomeramgsetcycletyp": 30, "bamg_relax_typ": 30, "hypre_boomeramgsetrelaxtyp": 30, "bamg_relax_ord": 30, "hypre_boomeramgsetrelaxord": 30, "bamg_num_sweep": 30, "hypre_boomeramgsetnumsweep": 30, "bamg_max_level": 30, "hypre_boomeramgsetmaxlevel": 30, "bamg_strong_threshold": 30, "57": 30, "hypre_boomeramgsetstrongthreshold": 30, "bamg_interp_typ": 30, "hypre_boomeramgsetinterptyp": 30, "build_dir": 30, "petsc_dir": 30, "petsc_path": 30, "viscou": [30, 31], "implicitli": [30, 31], "motif": [30, 45], "eta": 30, "u_x": 30, "_x": 30, "u_i": 30, "_y": 30, "u_z": 30, "_z": 30, "v_x": [30, 45], "w_x": 30, "v_y": [30, 45], "w_z": 30, "v_z": [30, 45], "w_y": 30, "viscos": 30, "mlebabeclaplacian": 30, "mltensorop": 30, "mlebtensorop": 30, "divtau": 30, "bc_lo": 30, "bc_hi": 30, "ebtensorop": 30, "del": 30, "grad": [30, 36], "sol": 30, "ebfactori": 30, "approxim": 30, "amrex_lo_bctyp": 30, "nlev": 30, "edge_ba": 30, "average_cellcenter_to_fac": 30, "getarrofptr": 30, "etan": 30, "setshearviscos": 30, "getarrofconstptr": 30, "setebshearviscos": 30, "vel": [30, 34], "getvecofptr": 30, "mathbf": 30, "multicompon": 30, "phi_j": 30, "mathbb": 30, "mlcelllinop": 30, "getncomp": 30, "fflux": 30, "mc": 30, "setcfstrategi": 30, "cfstrategi": 30, "ghostnod": 30, "layer": [30, 43], "outermost": 30, "dark": 30, "underneath": 30, "mcnodelinop": 30, "straightforward": 30, "tensor": 31, "heatequation_ex3_c": 31, "curvilinear": 31, "govern": [32, 47], "heaviest": 32, "tend": [32, 34, 40, 45], "sfc": [32, 40], "morton": 32, "partit": 32, "phrase": 33, "dual": 33, "multicor": 33, "fabarray_mfit": 33, "tile_s": [33, 34, 40], "pad": 34, "vx": 34, "vy": 34, "vz": 34, "flag1": 34, "flag2": 34, "rdata": 34, "idata": 34, "myparticlecontain": 34, "mypc": 34, "ao": 34, "soa": 34, "laid": [34, 35], "arrang": 34, "nstructreal": 34, "nstructint": 34, "narrayr": 34, "narrayint": 34, "distinct": 34, "clearli": 34, "ineffici": 34, "stuff": 34, "infrequ": 34, "Of": 34, "won": 34, "rr": 34, "amr_cor": 34, "mixtur": 34, "do_til": [34, 40], "bin": 34, "offset": 34, "reassign": 34, "tutorials_html": 34, "particles_tutori": 34, "makemfit": 34, "getparticl": 34, "make_pair": 34, "localtileindex": 34, "particletyp": 34, "nextid": 34, "real_attrib": 34, "int_attrib": 34, "push_back": 34, "push_back_r": 34, "push_back_int": 34, "perturb": 34, "addrealcomp": 34, "addintcomp": 34, "communicate_this_comp": 34, "num_runtime_r": 34, "num_runtime_int": 34, "crucial": [34, 45], "defineandreturnparticletil": 34, "particle_til": 34, "flavor": 34, "myparconstit": 34, "parconstitertyp": 34, "pti": 34, "getarrayofstruct": 34, "outer": 34, "myparit": 34, "paritertyp": 34, "particle_attribut": 34, "getstructofarrai": 34, "realvector": 34, "real_comp0": 34, "getrealdata": 34, "intvector": 34, "int_comp1": 34, "getintdata": 34, "numparticl": 34, "interoper": 34, "amrex_particle_r": 34, "iso_c_bind": 34, "c_int": 34, "incompat": 34, "vice": 34, "versa": 34, "electr": 34, "gm": 34, "ey": 34, "ez": 34, "nstride": 34, "datashap": 34, "exfab": 34, "eyfab": 34, "ezfab": 34, "interpolate_c": 34, "date": [34, 43], "uneven": 34, "invers": 34, "rhofab": 34, "deposit_c": 34, "sumboundari": 34, "surround": 34, "exert": [34, 35], "beyond": 34, "distanc": 34, "n_g": 34, "influenc": 34, "shade": 34, "pack": 34, "lie": 34, "neighborparticlecontain": 34, "amrex_neighborparticlecontain": 34, "clearneighbor": 34, "neighborlist": [34, 45], "mdparticlecontain": 34, "computeforc": 34, "summat": 34, "bl_profil": 34, "plev": 34, "gid": 34, "tid": 34, "ptile": 34, "nbor_data": 34, "m_neighbor_list": 34, "pstruct": 34, "amrex_for_1d": 34, "p1": 34, "pidx": 34, "ay": 34, "az": 34, "p2": 34, "getneighbor": 34, "param": 34, "min_r": 34, "cutoff": 34, "coef": 34, "collis": 34, "partner": 34, "scan": 34, "subclass": 34, "check_pair": 34, "amrex_plotfileutil": 34, "output_lev": 34, "outputrr": 34, "particle0": 34, "plot": [34, 36, 40, 42, 43], "human": 34, "mainli": 34, "ascii": [34, 36], "deck": 34, "poor": 34, "particles_nfil": [34, 40], "nreader": 34, "nparts_per_read": 34, "said": 34, "100000": 34, "datadigits_read": 34, "pre": [34, 36, 45], "mid": 34, "use_prepost": 34, "speed": [34, 40], "aggregation_typ": 34, "aggreg": 34, "aggregation_buff": 34, "essenc": 34, "straight": 34, "electrostaticp": 34, "electrosticparticlecontain": 34, "particularli": [35, 43, 45], "lagrangian": 35, "drag": [35, 45], "goal": 35, "c_src": [36, 43], "ebas": 36, "needs_f90_src": 36, "infil": 36, "extract": 36, "raw": 36, "postproc_doc": 36, "fhdex": 36, "multispec": 36, "reg_equil_2d_bench": 36, "plt0000003": 36, "home": [36, 45, 47], "cat": 36, "30000000000000004": 36, "rho1": 36, "rho2": 36, "9993686498953114": 36, "60059557892152249": 36, "0502705977511799": 36, "0003554204928884": 36, "59935306004478783": 36, "0508550827449006": 36, "0008794559257246": 36, "5990345897671786": 36, "0500559828760208": 36, "9997442287698322": 36, "60001913923213179": 36, "0508294996618532": 36, "0001395958111967": 36, "60021852440041579": 36, "0487977074444519": 36, "0000989976613459": 36, "60022830117083248": 36, "0489080268816791": 36, "zone": 36, "bring": 36, "reg_detbubble_2d_bench": 36, "plt0000000": 36, "020039805": 36, "00845645443": 36, "01703166127": 36, "01450634203": 36, "01737072831": 36, "01479513491": 36, "rho3": 36, "01436258458": 36, "003022939351": 36, "00610148453": 36, "003167240107": 36, "006392740399": 36, "c3": 36, "006190179458": 36, "averaged_velx": 36, "0001120979347": 36, "02141254606": 36, "averaged_v": 36, "shifted_velx": 36, "0001151524563": 36, "02145887678": 36, "shifted_v": 36, "05687549245": 36, "797693135e": 36, "308": 36, "spinodal_charges_2d_bench": 36, "plt0000002": 36, "plt0000004": 36, "plt0000006": 36, "0000000000000001e": 36, "0000000000000002e": 36, "1999999999999999e": 36, "imag": 36, "silentm": 36, "palett": [36, 45], "349724636": 36, "ls": [36, 45], "ppm": 36, "pixmap": 36, "imagemagick": 36, "seen": 36, "enlarg": 36, "extrema": 36, "369764441": 36, "277319027e": 36, "174083806": 36, "02159682815": 36, "4954432542": 36, "009113491527": 36, "005235152063": 36, "005366192156": 36, "157052145": 36, "156713078": 36, "03595941273": 36, "4924203149": 36, "4922760141": 36, "01530367099": 36, "005172583789": 36, "005287367803": 36, "004924487345": 36, "height": [36, 45], "rapid": [38, 45], "prototyp": 38, "coupl": [38, 45], "ai": 38, "ml": 38, "pyamrex": 38, "nightli": 39, "reserv": 40, "blprofil": 40, "amrmesh": [40, 45], "level_0_geom": 40, "amrinfo": 40, "amr_info": 40, "ref_ratio_vect": 40, "setmaxgrids": 40, "setblockingfactor": 40, "setnprop": 40, "enhanc": 40, "setgrideff": 40, "n_error_buf_x": 40, "n_error_buf_i": 40, "n_error_buf_z": 40, "refine_grid_layout_x": 40, "refine_grid_layout_i": 40, "refine_grid_layout_z": 40, "check_input": 40, "subcycling_mod": 40, "regrid_on_restart": 40, "force_regrid_level_zero": 40, "compute_new_dt_on_regrid": 40, "initial_grid_fil": 40, "regrid_fil": 40, "plotfile_on_restart": 40, "file_name_digit": 40, "checkpoint_files_output": 40, "check_fil": 40, "chk00000": 40, "chk001000": 40, "check_int": 40, "check_per": 40, "elaps": 40, "checkpoint_nfil": 40, "plot_files_output": 40, "plot_fil": [40, 45], "plt001000": 40, "plot_int": 40, "plot_per": 40, "plot_log_p": 40, "plot_max_level": 40, "plot_nfil": 40, "plot_var": 40, "derive_plot_var": 40, "small_plot_fil": 40, "smallplt": 40, "smallplt00000": 40, "smallplt001000": 40, "small_plot_int": 40, "small_plot_p": 40, "small_plot_log_p": 40, "small_plot_var": 40, "derive_small_plot_var": 40, "message_int": 40, "action": 40, "dump_and_continu": 40, "stop_run": 40, "dump_and_stop": 40, "plot_and_continu": 40, "small_plot_and_continu": 40, "write_plotfile_with_checkpoint": 40, "ask": [40, 44, 45, 47], "run_log": 40, "run_log_ters": 40, "ters": 40, "grid_log": 40, "data_log": 40, "podvector": 40, "abort_on_unused_input": [40, 43], "queryunusedinput": 40, "properti": [40, 45], "max_gpu_stream": 40, "omp_thread": 40, "nosmt": 40, "aka": 40, "hyperthread": 40, "smt": 40, "memory_log": 40, "memlog": 40, "roundrobin": 40, "rrsfc": 40, "extend_domain_fac": 40, "perpendicularli": 40, "num_coarsen_opt": 40, "erron": 40, "geometryshop": 40, "all_regular": 40, "parser_funct": 40, "math": 40, "triangl": 40, "shift": [40, 45], "small_volfrac": 40, "cover_multiple_cut": 40, "unfix": 40, "maxit": 40, "handle_sigsegv": 40, "sigsegv": 40, "handle_sigterm": 40, "sigterm": 40, "handle_sigint": 40, "sigint": 40, "handle_sigabrt": 40, "sigabgt": 40, "handle_sigfp": 40, "sigfp": 40, "fe_invalid": 40, "fe_divbyzero": 40, "fe_overflow": 40, "handle_sigil": 40, "sigil": 40, "runtime_error": 40, "thrown": 40, "hypre_init": 40, "hypre_spgemm_use_vendor": 40, "spgemm": 40, "hypre_spmv_use_vendor": 40, "spmv": 40, "hypre_sptrans_use_vendor": 40, "sptran": 40, "background": 40, "v24": 40, "10000000000": 40, "1e10": 40, "the_comms_arena_init_s": 40, "long_max": 40, "the_comms_arena_release_threshold": 40, "vector_growth_factor": 40, "growth": 40, "do_mem_efficient_sort": 40, "comm_tile_s": 40, "enter": [40, 45], "print_threshold": 40, "percent": 40, "carena": 40, "memprof_en": 40, "output_fil": 40, "dump": 40, "dev": [40, 45], "su": 41, "ite": 41, "onlinear": 41, "di": 41, "fferenti": 41, "gebraic": 41, "olver": 41, "six": 41, "od": 41, "sensit": 41, "arkod": [41, 44], "rung": [41, 44], "kutta": [41, 44], "ida": 41, "differenti": 41, "algebra": 41, "kinsol": 41, "nonlinear": 41, "hacc": 42, "adrian": 42, "pope": 42, "argonn": 42, "nation": 42, "lab": 42, "fast": [42, 44], "fourier": 42, "fft": 42, "fftw": 42, "thumb": 42, "vertic": 42, "prime": 42, "eg": 42, "checkdecomposit": 42, "submit": 42, "testdfft": 42, "testfdfft": 42, "versu": 42, "n_": 42, "regularli": 42, "m_": 42, "bi": 42, "bj": 42, "bk": 42, "analog": 42, "evid": 42, "sophist": [42, 45], "reorder": 42, "dft": 42, "cel": 42, "anl": 42, "travi": 43, "deliber": 43, "night": 43, "hous": 43, "runner": 43, "regressiontest": 43, "likelihood": 43, "regression_test": 43, "ini": 43, "testtopdir": 43, "webtopdir": 43, "regtest": 43, "make_benchmark": 43, "browser": [43, 45], "single_test": 43, "testnam": 43, "testname1": 43, "testname2": 43, "testname3": 43, "mlmg_fi_poiscom": 43, "abeclaplacian_f": 43, "inputfil": 43, "rt": 43, "restarttest": 43, "usempi": 43, "numproc": 43, "useomp": 43, "numthread": 43, "compiletest": 43, "dovi": 43, "outputfil": 43, "testsrctre": 43, "blob": 43, "whatev": 44, "timeintegr": 44, "set_rh": 44, "amrex_timeintegr": 44, "sold": 44, "snew": 44, "state_data": 44, "rhs_fun": 44, "source_fun": 44, "wish": [44, 45], "butcher": 44, "quotat": 44, "forwardeul": 44, "rungekutta": 44, "rk": 44, "tableau": 44, "trapezoid": 44, "ssprk3": 44, "rk4": 44, "triangular": 44, "diagon": 44, "imex": 44, "multir": 44, "mri": 44, "use_sundi": 44, "v6": 44, "permit": 44, "modif": 44, "erk": 44, "dirk": 44, "infinitesim": 44, "im": 44, "set_imex_rh": 44, "set_fast_rh": 44, "fast_typ": 44, "method_i": 44, "method_": 44, "fast_method": 44, "WITH": 44, "infatesim": 44, "arkode_bogacki_shampine_4_2_3": 44, "arkode_ark2_dirk_3_1_2": 44, "arkode_ark2_erk_3_1_2": 44, "arkode_mis_kw3": 44, "arkode_knoth_wolke_3_3": 44, "heartili": 45, "amrvis1d": 45, "amrvis2d": 45, "amrvis3d": 45, "spreadsheet": 45, "handi": 45, "tex": 45, "pdf": [45, 47], "pdflatex": 45, "ver": 45, "volpack": 45, "libvolpack1": 45, "debian": 45, "sudo": 45, "apt": 45, "osf": 45, "lesstif": 45, "exhibit": 45, "anomali": 45, "openmotif": 45, "xm": 45, "devel": 45, "volpackdir": 45, "tmp": 45, "cp": 45, "pltxxxxx": 45, "xxxxx": 45, "filenam": 45, "anim": 45, "mymultifab_h": 45, "click": [45, 47], "matlab": 45, "idiosyncrasi": 45, "outlin": 45, "furthermor": 45, "x11": 45, "cask": 45, "xquartz": 45, "opt": 45, "wci": 45, "llnl": 45, "pseudocolor": 45, "draw": 45, "wirefram": 45, "dismiss": 45, "threeslic": 45, "movi": 45, "1v": 45, "tee": 45, "plt02000": 45, "plt03000": 45, "plt04000": 45, "plt05000": 45, "plt06000": 45, "plt07000": 45, "plt08000": 45, "plt09000": 45, "plt10000": 45, "press": 45, "button": 45, "vcr": 45, "panel": 45, "preview": 45, "screen": 45, "plt00100": 45, "myplt00100": 45, "this_is_my_plt00100": 45, "recogn": 45, "plt00100_old": 45, "pltx00100": 45, "h5": 45, "dropdown": 45, "v5": 45, "navig": 45, "ensembl": 45, "chose": 45, "cube": 45, "icon": 45, "hover": 45, "mous": 45, "json": 45, "plt00200": 45, "plt00300": 45, "plt00400": 45, "plt00500": 45, "plt00600": 45, "plt00700": 45, "plt00800": 45, "plt00900": 45, "write_series_fil": 45, "sh": 45, "reload": 45, "dialog": 45, "alphabet": 45, "contour": 45, "plofil": 45, "inspect": 45, "scroll": 45, "avi": 45, "framer": 45, "pipelin": 45, "popul": 45, "head": 45, "ihat": 45, "jhat": 45, "khat": 45, "arrow": 45, "glyph": 45, "orient": 45, "magnitud": 45, "visitchomboread": 45, "throughput": 45, "consequ": 45, "exploratori": 45, "experi": 45, "camera": 45, "angl": 45, "light": 45, "ipython": 45, "__version__": 45, "ds": 45, "plt00401": 45, "182": 45, "current_tim": 45, "00605694344696544": 45, "domain_dimens": 45, "domain_left_edg": 45, "183": 45, "domain_right_edg": 45, "24501": 45, "field_list": 45, "particle_mass": 45, "particle_position_x": 45, "particle_position_i": 45, "particle_position_z": 45, "particle_velocity_x": 45, "particle_velocity_i": 45, "particle_velocity_z": 45, "particle_mass_dens": 45, "render": 45, "slc": 45, "sliceplot": 45, "358": 45, "xlim": 45, "000000": 45, "245010": 45, "ylim": 45, "359": 45, "021": 45, "plt00401_slice_z_dens": 45, "png": 45, "create_scen": 45, "lens_typ": 45, "tfh": 45, "set_bound": 45, "1e8": 45, "1e15": 45, "set_log": 45, "grey_opac": 45, "scene": 45, "source_00": 45, "ytregion": 45, "09888770e": 45, "cm": 45, "left_edg": 45, "right_edg": 45, "19777540e": 45, "transfer_funct": 45, "code_length": 45, "122505": 45, "north_vector": 45, "81649658": 45, "40824829": 45, "width": 45, "367515": 45, "viewpoint": 45, "95423473": 45, "07": 45, "825": 45, "996": 45, "997": 45, "transferfunctionhelp": 45, "plt00401_render_dens": 45, "client": 45, "server": 45, "Such": 45, "prohibit": 45, "fortun": 45, "emul": 45, "anaconda": 45, "customiz": 45, "cori10": 45, "conda": 45, "numpi": 45, "pip": 45, "analyt": 45, "stabl": 45, "url": 45, "forth": 45, "parallel_comput": 45, "mpi4pi": 45, "toc": 45, "anchor": 45, "datasetseri": 45, "time_series_analysi": 45, "computation": 45, "volume_rend": 45, "parallel_object": 45, "revolv": 45, "glob": 45, "enable_parallel": 45, "base_dir1": 45, "nyx_run_p1": 45, "base_dir2": 45, "nyx_run_p2": 45, "base_dir3": 45, "nyx_run_p3": 45, "glob1": 45, "glob2": 45, "glob3": 45, "ts": 45, "num_fram": 45, "num_revol": 45, "arang": 45, "z_veloc": 45, "1e": 45, "9e": 45, "cam": 45, "rot_cent": 45, "sigma_clip": 45, "haswel": 45, "nid00009": 45, "yt_vi": 45, "srun": 45, "cpu_bind": 45, "make_yt_movi": 45, "565": 45, "566": 45, "p003": 45, "957": 45, "103169376949795": 45, "958": 45, "28318531": 45, "p000": 45, "969": 45, "p002": 45, "0687808060674485": 45, "970": 45, "p001": 45, "973": 45, "0343922351851018": 45, "974": 45, "589": 45, "590": 45, "592": 45, "593": 45, "606": 45, "nearli": 45, "magic": 45, "matplotlib": 45, "divers": 45, "vtk": 45, "adio": 45, "adaptor": 45, "bridg": 45, "equip": 45, "amrmeshinsitubridg": 45, "use_sensei_insitu": 45, "linker": 45, "sensei_config": 45, "j4": 45, "damrex_sensei": 45, "dsensei_dir": 45, "lib64": 45, "gnuinstalldir": 45, "render_iso_catalyst_2d": 45, "frequenc": 45, "visitdir": 45, "session": 45, "rt_sensei_config": 45, "visit_rt_contour_alpha_10": 45, "rt_contour_": 45, "1555": 45, "815": 45, "raleigh": 45, "taylor": 45, "instabl": 45, "2048": 45, "repeat": 45, "pythonscript": 45, "rt_contour": 45, "insitu": 45, "eas": 45, "burden": 45, "wrangl": 45, "virtualbox": 45, "deploy": 45, "deploi": 45, "ssh": 45, "modulefil": 45, "vim": 45, "salloc": 45, "render_iso_libsim_2d": 45, "anyon": 47, "happi": 47, "doxygen": 47, "fork": 47, "join": 47, "regress": 47, "question": 47, "copyright": 47, "bsd": 47, "licens": 47, "agreement": 47}, "objects": {"DistributionMapping": [[40, 0, 1, "", "strategy"], [40, 0, 1, "", "verbose"]], "amr": [[40, 0, 1, "", "blocking_factor"], [40, 0, 1, "", "blocking_factor_x"], [40, 0, 1, "", "blocking_factor_y"], [40, 0, 1, "", "blocking_factor_z"], [40, 0, 1, "", "check_file"], [40, 0, 1, "", "check_input"], [40, 0, 1, "", "check_int"], [40, 0, 1, "", "check_per"], [40, 0, 1, "", "checkpoint_files_output"], [40, 0, 1, "", "checkpoint_nfiles"], [40, 0, 1, "", "compute_new_dt_on_regrid"], [40, 0, 1, "", "data_log"], [40, 0, 1, "", "derive_plot_vars"], [40, 0, 1, "", "derive_small_plot_vars"], [40, 0, 1, "", "file_name_digits"], [40, 0, 1, "", "force_regrid_level_zero"], [40, 0, 1, "", "grid_eff"], [40, 0, 1, "", "grid_log"], [40, 0, 1, "", "initial_grid_file"], [40, 0, 1, "", "max_grid_size"], [40, 0, 1, "", "max_grid_size_x"], [40, 0, 1, "", "max_grid_size_y"], [40, 0, 1, "", "max_grid_size_z"], [40, 0, 1, "", "max_level"], [40, 0, 1, "", "message_int"], [40, 0, 1, "", "n_cell"], [40, 0, 1, "", "n_error_buf"], [40, 0, 1, "", "n_error_buf_x"], [40, 0, 1, "", "n_error_buf_y"], [40, 0, 1, "", "n_error_buf_z"], [40, 0, 1, "", "n_proper"], [40, 0, 1, "", "plot_file"], [40, 0, 1, "", "plot_files_output"], [40, 0, 1, "", "plot_int"], [40, 0, 1, "", "plot_log_per"], [40, 0, 1, "", "plot_max_level"], [40, 0, 1, "", "plot_nfiles"], [40, 0, 1, "", "plot_per"], [40, 0, 1, "", "plot_vars"], [40, 0, 1, "", "plotfile_on_restart"], [40, 0, 1, "", "ref_ratio"], [40, 0, 1, "", "ref_ratio_vect"], [40, 0, 1, "", "refine_grid_layout"], [40, 0, 1, "", "refine_grid_layout_x"], [40, 0, 1, "", "refine_grid_layout_y"], [40, 0, 1, "", "refine_grid_layout_z"], [40, 0, 1, "", "regrid_file"], [40, 0, 1, "", "regrid_int"], [40, 0, 1, "", "regrid_on_restart"], [40, 0, 1, "", "restart"], [40, 0, 1, "", "run_log"], [40, 0, 1, "", "run_log_terse"], [40, 0, 1, "", "small_plot_file"], [40, 0, 1, "", "small_plot_int"], [40, 0, 1, "", "small_plot_log_per"], [40, 0, 1, "", "small_plot_per"], [40, 0, 1, "", "small_plot_vars"], [40, 0, 1, "", "subcycling_mode"], [40, 0, 1, "", "verbose"], [40, 0, 1, "", "write_plotfile_with_checkpoint"]], "amrex": [[40, 0, 1, "", "abort_on_out_of_gpu_memory"], [40, 0, 1, "", "abort_on_unused_inputs"], [40, 0, 1, "", "async_out"], [40, 0, 1, "", "async_out_nfiles"], [40, 0, 1, "", "fpe_trap_invalid"], [40, 0, 1, "", "fpe_trap_overflow"], [40, 0, 1, "", "fpe_trap_zero"], [40, 0, 1, "", "handle_sigabrt"], [40, 0, 1, "", "handle_sigfpe"], [40, 0, 1, "", "handle_sigill"], [40, 0, 1, "", "handle_sigint"], [40, 0, 1, "", "handle_sigsegv"], [40, 0, 1, "", "handle_sigterm"], [40, 0, 1, "", "hypre_spgemm_use_vendor"], [40, 0, 1, "", "hypre_spmv_use_vendor"], [40, 0, 1, "", "hypre_sptrans_use_vendor"], [40, 0, 1, "", "init_hypre"], [40, 0, 1, "", "init_snan"], [40, 0, 1, "", "max_gpu_streams"], [40, 0, 1, "", "memory_log"], [40, 0, 1, "", "omp_threads"], [40, 0, 1, "", "signal_handling"], [40, 0, 1, "", "the_arena_init_size"], [40, 0, 1, "", "the_arena_is_managed"], [40, 0, 1, "", "the_arena_release_threshold"], [40, 0, 1, "", "the_async_arena_release_threshold"], [40, 0, 1, "", "the_comms_arena_init_size"], [40, 0, 1, "", "the_comms_arena_release_threshold"], [40, 0, 1, "", "the_device_arena_init_size"], [40, 0, 1, "", "the_device_arena_release_threshold"], [40, 0, 1, "", "the_managed_arena_init_size"], [40, 0, 1, "", "the_managed_arena_release_threshold"], [40, 0, 1, "", "the_pinned_arena_init_size"], [40, 0, 1, "", "the_pinned_arena_release_threshold"], [40, 0, 1, "", "throw_exception"], [40, 0, 1, "", "use_gpu_aware_mpi"], [40, 0, 1, "", "vector_growth_factor"], [40, 0, 1, "", "verbose"]], "amrex.device": [[40, 0, 1, "", "verbose"]], "amrex.mf": [[40, 0, 1, "", "alloc_single_chunk"]], "amrex.parmparse": [[40, 0, 1, "", "verbose"]], "eb2": [[40, 0, 1, "", "cover_multiple_cuts"], [40, 0, 1, "", "extend_domain_face"], [40, 0, 1, "", "geom_type"], [40, 0, 1, "", "max_grid_size"], [40, 0, 1, "", "maxiter"], [40, 0, 1, "", "num_coarsen_opt"], [40, 0, 1, "", "parser_function"], [40, 0, 1, "", "small_volfrac"], [40, 0, 1, "", "stl_center"], [40, 0, 1, "", "stl_file"], [40, 0, 1, "", "stl_reverse_normal"], [40, 0, 1, "", "stl_scale"]], "fabarray": [[40, 0, 1, "", "comm_tile_size"], [40, 0, 1, "", "mfiter_tile_size"]], "geometry": [[40, 0, 1, "", "coord_sys"], [40, 0, 1, "", "is_periodic"], [40, 0, 1, "", "prob_extent"], [40, 0, 1, "", "prob_hi"], [40, 0, 1, "", "prob_lo"]], "particles": [[40, 0, 1, "", "do_mem_efficient_sort"], [40, 0, 1, "", "do_tiling"], [40, 0, 1, "", "particles_nfiles"], [40, 0, 1, "", "tile_size"]], "tiny_profiler": [[40, 0, 1, "", "device_synchronize_around_region"], [40, 0, 1, "", "enabled"], [40, 0, 1, "", "memprof_enabled"], [40, 0, 1, "", "output_file"], [40, 0, 1, "", "print_threshold"], [40, 0, 1, "", "verbose"]], "vismf": [[40, 0, 1, "", "verbose"]]}, "objtypes": {"0": "py:data"}, "objnames": {"0": ["py", "data", "Python data"]}, "titleterms": {"type": [0, 6], "profil": [0, 1, 2, 15, 16, 21, 40], "tini": [0, 40], "output": [0, 27], "hot": 0, "spot": 0, "load": [0, 32, 33], "balanc": [0, 32, 33], "full": 0, "trace": 0, "commun": [0, 40], "instrument": 0, "c": [0, 6, 21], "code": [0, 2, 3, 5, 23], "1": [0, 2], "A": [0, 44], "scope": 0, "timer": 0, "bl_profil": 0, "2": [0, 2, 42], "name": 0, "bl_profile_var": 0, "3": 0, "doesn": 0, "t": [0, 2], "auto": 0, "start": [0, 19, 24], "bl_profile_var_n": 0, "4": [0, 42], "design": 0, "sub": 0, "region": 0, "bl_profile_region": 0, "fortran90": 0, "option": [0, 8, 21], "amrprofpars": 0, "amrex": [1, 6, 8, 9, 21, 25, 29, 45, 47], "base": 1, "tool": [1, 10, 16], "time": [2, 42, 44], "sequenc": 2, "0": 2, "5": 2, "s": [2, 47], "advect": 2, "gaussian": 2, "us": [2, 21, 44, 45], "singlevortex": 2, "tutori": [2, 12, 23, 42, 45], "The": [2, 19, 34], "analyt": 2, "veloc": 2, "field": [2, 45], "distort": 2, "restor": 2, "origin": 2, "configur": [2, 21, 45], "red": 2, "green": 2, "blue": 2, "box": [2, 6, 21, 42], "indic": 2, "grid": [2, 6, 11, 26, 33], "amr": [2, 4, 5, 6, 19, 40], "level": [2, 15], "ell": 2, "amrcor": [2, 3, 40], "sourc": [2, 3, 5], "detail": [2, 21], "amrmesh": 2, "paramet": [2, 6, 21, 30, 34, 40], "tagbox": 2, "cluster": 2, "fillpatchutil": 2, "interpolat": 2, "fluxregist": 2, "amrparticl": 2, "amrpargdb": 2, "exampl": [2, 4, 6, 15, 21, 23], "advection_amrcor": 2, "equat": [2, 23], "structur": [2, 12], "amrcoreadv": 2, "class": [2, 4, 6, 21, 30, 40], "regrid": [2, 40], "fillpatch": 2, "amrlevel": [4, 45], "statedata": 4, "levelbld": 4, "advection_amrlevel": 4, "particl": [4, 21, 34, 35, 40, 45], "dimension": [6, 12], "vector": [6, 21, 45], "arrai": [6, 34, 42], "gpuarrai": [6, 21], "array1d": [6, 21], "array2d": [6, 21], "array3d": [6, 21], "real": 6, "long": 6, "paralleldescriptor": 6, "parallelcontext": 6, "print": 6, "parmpars": [6, 45], "input": [6, 21, 34], "file": [6, 8, 27], "math": 6, "express": 6, "enum": 6, "overrid": 6, "command": 6, "line": 6, "argument": 6, "set": [6, 34], "valu": 6, "insid": 6, "function": [6, 12, 21], "share": 6, "flag": 6, "pars": 6, "parser": 6, "initi": [6, 12, 34], "final": 6, "intvect": [6, 21], "indextyp": [6, 21], "dim3": 6, "xdim3": 6, "realbox": 6, "geometri": [6, 21, 40], "boxarrai": 6, "distributionmap": 6, "basefab": [6, 21], "farraybox": [6, 21], "iarraybox": [6, 21], "array4": 6, "fabarrai": 6, "multifab": [6, 21], "imultifab": 6, "mfiter": 6, "tile": [6, 40], "without": 6, "comparison": [6, 21], "right": [6, 45], "left": [6, 45], "face": 6, "center": [6, 30], "nodal": 6, "index": 6, "compar": 6, "grow": 6, "cell": [6, 12, 30], "multipl": 6, "fortran": [6, 8, 20, 34], "kernel": [6, 15, 21], "parallelfor": 6, "ghost": 6, "boundari": [6, 12, 13, 30, 40], "condit": [6, 30], "mask": 6, "owner": 6, "overlap": 6, "point": 6, "fine": 6, "memori": [6, 21, 40], "alloc": [6, 21], "abort": 6, "assert": [6, 21], "backtrac": 6, "basic": [7, 10, 19, 40], "build": [8, 9, 15, 21, 23, 45], "gnu": [8, 21, 45], "make": [8, 21, 45], "dissect": 8, "simpl": [8, 44], "import": 8, "variabl": [8, 21], "tweak": 8, "system": [8, 15, 45], "specifi": 8, "your": 8, "own": 8, "compil": [8, 43, 45], "gcc": 8, "maco": [8, 45], "ccach": 8, "libamrex": 8, "cmake": [8, 21, 45], "custom": 8, "refer": 8, "section": 8, "gpu": [8, 10, 21, 22], "support": [8, 21], "relat": [8, 10], "project": 8, "target": 8, "avail": 8, "compon": [8, 30, 34], "window": 8, "spack": 8, "debug": 10, "break": 10, "debugg": 10, "cuda": [10, 21], "specif": [10, 21], "test": [10, 39, 43], "amd": 10, "rocm": 10, "intel": 10, "dual": 11, "approach": 11, "geometr": 12, "databas": 12, "implicit": 12, "eb2": 12, "geometryshop": 12, "indexspac": 12, "ebfarrayboxfactori": 12, "embed": [12, 13, 30, 40], "data": [12, 34, 45], "ebcellflagfab": 12, "small": 12, "problem": 12, "redistribut": [12, 34, 42], "finit": 12, "volum": 12, "discret": 12, "illustr": 12, "cut": 12, "two": 12, "And": 12, "stabil": 12, "flux": 12, "state": 12, "linear": [12, 30, 31], "solver": [12, 23, 30, 31], "extern": [14, 16, 30, 40], "framework": 14, "craypat": 15, "high": 15, "applic": 15, "ipm": 15, "cross": 15, "platform": 15, "integr": [15, 44, 45], "perform": [15, 21], "monitor": 15, "cori": [15, 45], "run": [15, 23, 43], "summari": 15, "mpi": 15, "papi": 15, "counter": 15, "html": 15, "graph": 15, "gener": [15, 21, 45], "nsight": 15, "analysi": 15, "gui": 15, "tip": [15, 21], "comput": 15, "rooflin": 15, "frequent": 17, "ask": 17, "question": 17, "more": 17, "fork": 18, "join": 18, "get": [19, 24], "core": 19, "infrastructur": 19, "octre": 19, "interfac": [20, 38], "overview": 21, "strategi": 21, "openmp": 21, "work": 21, "distribut": [21, 40], "pictur": 21, "provid": 21, "mike": 21, "zingal": 21, "castro": 21, "team": 21, "sycl": 21, "enabl": 21, "hip": 21, "namespac": 21, "macro": 21, "arena": 21, "safe": 21, "asyncarrai": 21, "associ": 21, "each": 21, "reduct": 21, "elixir": 21, "async": [21, 27], "launch": 21, "nest": 21, "loop": 21, "block": 21, "size": 21, "offload": 21, "openacc": 21, "pragma": 21, "stream": 21, "synchron": 21, "an": [21, 45], "migrat": 21, "error": [21, 40], "check": 21, "content": [22, 24, 47], "download": 23, "hello": 23, "world": 23, "parallel": [23, 45], "heat": 23, "visual": [23, 45, 46], "guid": 23, "govern": 25, "steer": 25, "committe": 25, "current": 25, "roster": 25, "role": 25, "decis": 25, "process": [25, 36, 37], "appoint": 25, "technic": 25, "contributor": 25, "former": 25, "member": 25, "creation": 26, "plotfil": [27, 28], "hdf5": [27, 45], "compress": 27, "asynchron": 27, "altern": 27, "schema": 27, "checkpoint": [27, 28], "i": [28, 40], "o": [28, 40], "introduct": 29, "mlmg": 30, "oper": 30, "coeffici": 30, "stencil": 30, "curvilinear": 30, "coordin": 30, "tensor": 30, "solv": 30, "multi": 30, "particlecontain": 34, "struct": 34, "construct": 34, "particletil": 34, "ad": [34, 43], "runtim": [34, 40], "iter": 34, "over": 34, "pass": 34, "routin": 34, "interact": [34, 45], "mesh": 34, "short": 34, "rang": 34, "forc": 34, "io": 34, "post": [36, 37], "writeplotfiletoascii": 36, "fextract": 36, "fcompar": 36, "fboxinfo": 36, "fvarnam": 36, "ftime": 36, "fsnapshot": 36, "fnan": 36, "fextrema": 36, "faverag": 36, "fgradient": 36, "python": 38, "regress": [39, 43], "subcycl": 40, "control": 40, "map": 40, "handl": 40, "hypr": 40, "sundial": [41, 44], "swfft": 42, "pencil": 42, "from": 42, "continu": 43, "nightli": 43, "suit": 43, "local": [43, 45], "new": 43, "setup": 44, "pick": 44, "method": 44, "amrvi": 45, "2d": 45, "3d": 45, "imag": 45, "visit": 45, "format": 45, "paraview": 45, "iso": 45, "surfac": 45, "plot": 45, "yt": 45, "workstat": 45, "nersc": 45, "under": 45, "develop": 45, "jupyt": 45, "notebook": 45, "sensei": 45, "architectur": 45, "back": 45, "end": 45, "select": 45, "obtain": 45, "vm": 45, "catalyst": 45, "libsim": 45, "welcom": 47, "document": 47}, "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.viewcode": 1, "sphinx.ext.intersphinx": 1, "sphinx": 56}}) \ No newline at end of file diff --git a/amrex/docs_xml/doxygen/AMReX__EB2__2D__C_8cpp.xml b/amrex/docs_xml/doxygen/AMReX__EB2__2D__C_8cpp.xml index 37835739fc..f0db45f958 100644 --- a/amrex/docs_xml/doxygen/AMReX__EB2__2D__C_8cpp.xml +++ b/amrex/docs_xml/doxygen/AMReX__EB2__2D__C_8cpp.xml @@ -1861,474 +1861,473 @@ constRealapnorm=std::hypot(daxp,dayp)+1.e-30_rt*std::sqrt(dx[0]*dx[1]); constRealnx=daxp*(1.0_rt/apnorm); constRealny=dayp*(1.0_rt/apnorm); -constRealbareascaling=std::sqrt((nx*dx[0])*(nx*dx[0])+ -(ny*dx[1])*(ny*dx[1])); - -constRealnxabs=std::abs(nx); -constRealnyabs=std::abs(ny); - -Realx_ym,x_yp,y_xm,y_xp; -if(nx==0.0_rt){ -if(apx(i,j,0)==1.0_rt&&apx(i+1,j,0)==1.0_rt){ -if(levset(i,j,0)>0.0_rt||levset(i,j+1,0)>0.0_rt){ -x_ym=0.5_rt*dx[0]-aym; -x_yp=0.5_rt*dx[0]-ayp; -}else{ -x_ym=-0.5_rt*dx[0]+aym; -x_yp=-0.5_rt*dx[0]+ayp; -} -}else{ -x_ym=0.0_rt; -x_yp=0.0_rt; -} -}elseif(nx>0.0_rt){ -x_ym=-0.5_rt*dx[0]+aym; -x_yp=-0.5_rt*dx[0]+ayp; -}else{ -x_ym=0.5_rt*dx[0]-aym; -x_yp=0.5_rt*dx[0]-ayp; -} - -if(ny==0.0_rt){ -if(apy(i,j,0)==1.0_rt&&apy(i,j+1,0)==1.0_rt){ -if(levset(i,j,0)>0.0_rt||levset(i+1,j,0)>0.0_rt){ -y_xm=0.5_rt*dx[1]-axm; -y_xp=0.5_rt*dx[1]-axp; -}else{ -y_xm=-0.5_rt*dx[1]+axm; -y_xp=-0.5_rt*dx[1]+axp; -} -}else{ -y_xm=0.0_rt; -y_xp=0.0_rt; -} -}elseif(ny>0.0_rt){ -y_xm=-0.5_rt*dx[1]+axm; -y_xp=-0.5_rt*dx[1]+axp; -}else{ -y_xm=0.5_rt*dx[1]-axm; -y_xp=0.5_rt*dx[1]-axp; -} - -barea(i,j,0)=(nx*daxp+ny*dayp)/bareascaling; -bcent(i,j,0,0)=0.5_rt*(x_ym+x_yp); -bcent(i,j,0,1)=0.5_rt*(y_xm+y_xp); -bnorm(i,j,0,0)=nx; -bnorm(i,j,0,1)=ny; - -if(nxabs<tiny||nyabs>almostone){ -vfrac(i,j,0)=0.5_rt*(axm+axp)/dx[1]; -vcent(i,j,0,0)=0.0_rt; -if(vfrac(i,j,0)>almostone){ -vcent(i,j,0,1)=0.0_rt; -}else{ -vcent(i,j,0,1)=(-0.125_rt*dayp*dx[1]*dx[1]+ny*dx[0]*0.5_rt*bcent(i,j,0,1)*bcent(i,j,0,1))/((vfrac(i,j,0)+1.e-30_rt)*(dx[0]*dx[1]*dx[1])); -} -}elseif(nyabs<tiny||nxabs>almostone){ -vfrac(i,j,0)=0.5_rt*(aym+ayp)/dx[0]; -if(vfrac(i,j,0)>almostone){ -vcent(i,j,0,0)=0.0_rt; -}else{ -vcent(i,j,0,0)=(-0.125_rt*daxp*dx[0]*dx[0]+nx*dx[1]*0.5_rt*bcent(i,j,0,0)*bcent(i,j,0,0))/((vfrac(i,j,0)+1.e-30_rt)*(dx[0]*dx[0]*dx[1])); -} -vcent(i,j,0,1)=0.0_rt; -}else{ -Realaa=nxabs/ny*dx[0]/dx[1]; -constRealdxx=x_ym-x_yp; -constRealdx2=dxx*(x_ym+x_yp); -constRealdx3=dxx*(x_ym*x_ym+x_ym*x_yp+x_yp*x_yp); -constRealaf1=0.5_rt*(axm+axp)*dx[0]+aa*0.5_rt*dx2; -vcent(i,j,0,0)=-0.125_rt*daxp*dx[0]*dx[0]+aa*(1._rt/6._rt)*dx3; - -aa=nyabs/nx*dx[1]/dx[0]; -constRealdy=y_xm-y_xp; -constRealdy2=dy*(y_xm+y_xp); -constRealdy3=dy*(y_xm*y_xm+y_xm*y_xp+y_xp*y_xp); -constRealaf2=0.5_rt*(aym+ayp)*dx[1]+aa*0.5_rt*dy2; -vcent(i,j,0,1)=-0.125_rt*dayp*dx[1]*dx[1]+aa*(1._rt/6._rt)*dy3; - -vfrac(i,j,0)=0.5_rt*(af1+af2)/(dx[0]*dx[1]); - -if(vfrac(i,j,0)>1.0_rt-small){ -vfrac(i,j,0)=1.0_rt; -vcent(i,j,0,0)=0.0_rt; -vcent(i,j,0,1)=0.0_rt; -}elseif(vfrac(i,j,0)<small){ -vfrac(i,j,0)=0.0_rt; -vcent(i,j,0,0)=0.0_rt; -vcent(i,j,0,1)=0.0_rt; -}else{ -vcent(i,j,0,0)*=(1.0_rt/(vfrac(i,j,0)*dx[0]*dx[0]*dx[1])); -vcent(i,j,0,1)*=(1.0_rt/(vfrac(i,j,0)*dx[0]*dx[1]*dx[1])); -vcent(i,j,0,0)=amrex::min(amrex::max(vcent(i,j,0,0),Real(-0.5)),Real(0.5)); -vcent(i,j,0,1)=amrex::min(amrex::max(vcent(i,j,0,1),Real(-0.5)),Real(0.5)); -} -} -bcent(i,j,0,0)/=dx[0]; -bcent(i,j,0,1)/=dx[1]; -} - -AMREX_GPU_HOST_DEVICEAMREX_FORCE_INLINE -voidset_covered(constinti,constintj, -Array4<EBCellFlag>const&cell, -Array4<Real>const&vfrac,Array4<Real>const&vcent, -Array4<Real>const&barea,Array4<Real>const&bcent, -Array4<Real>const&bnorm)noexcept -{ -vfrac(i,j,0)=0.0_rt; -vcent(i,j,0,0)=0.0_rt; -vcent(i,j,0,1)=0.0_rt; -barea(i,j,0)=0.0_rt; -bcent(i,j,0,0)=-1.0_rt; -bcent(i,j,0,1)=-1.0_rt; -bnorm(i,j,0,0)=0.0_rt; -bnorm(i,j,0,1)=0.0_rt; -cell(i,j,0).setCovered(); -} - -AMREX_GPU_HOST_DEVICEAMREX_FORCE_INLINE -boolset_eb_cell(inti,intj,Array4<EBCellFlag>const&cell, -Array4<Real>const&apx,Array4<Real>const&apy, -GpuArray<Real,AMREX_SPACEDIM>const&dx, -Array4<Real>const&vfrac,Array4<Real>const&vcent, -Array4<Real>const&barea,Array4<Real>const&bcent, -Array4<Real>const&bnorm,Array4<Real>const&levset, -Realsmall_volfrac)noexcept -{ -boolis_small_cell=false; -if(cell(i,j,0).isRegular()){ -vfrac(i,j,0)=1.0_rt; -vcent(i,j,0,0)=0.0_rt; -vcent(i,j,0,1)=0.0_rt; -barea(i,j,0)=0.0_rt; -bcent(i,j,0,0)=-1.0_rt; -bcent(i,j,0,1)=-1.0_rt; -bnorm(i,j,0,0)=0.0_rt; -bnorm(i,j,0,1)=0.0_rt; -}elseif(cell(i,j,0).isCovered()){ -vfrac(i,j,0)=0.0_rt; -vcent(i,j,0,0)=0.0_rt; -vcent(i,j,0,1)=0.0_rt; -barea(i,j,0)=0.0_rt; -bcent(i,j,0,0)=-1.0_rt; -bcent(i,j,0,1)=-1.0_rt; -bnorm(i,j,0,0)=0.0_rt; -bnorm(i,j,0,1)=0.0_rt; -}else{ -set_eb_data(i,j,apx,apy,dx,vfrac,vcent,barea,bcent,bnorm,levset); -//removesmallcells -if(vfrac(i,j,0)<small_volfrac){ -set_covered(i,j,cell,vfrac,vcent,barea,bcent,bnorm); -is_small_cell=true; -} -} -returnis_small_cell; -} - -} - -intbuild_faces(Boxconst&bx,Array4<EBCellFlag>const&cell, -Array4<Type_t>const&fx,Array4<Type_t>const&fy, -Array4<Real>const&levset, -Array4<Realconst>const&interx,Array4<Realconst>const&intery, -Array4<Real>const&apx,Array4<Real>const&apy, -Array4<Real>const&fcx,Array4<Real>const&fcy, -GpuArray<Real,AMREX_SPACEDIM>const&dx, -GpuArray<Real,AMREX_SPACEDIM>const&problo, -boolcover_multiple_cuts,int&nsmallfaces)noexcept -{ -#ifdefAMREX_USE_FLOAT -constexprRealsmall=1.e-5_rt; -#else -constexprRealsmall=1.e-14; -#endif -constRealdxinv=1.0_rt/dx[0]; -constRealdyinv=1.0_rt/dx[1]; -constBox&ndbxg1=amrex::grow(amrex::surroundingNodes(bx),1); -AMREX_LAUNCH_HOST_DEVICE_LAMBDA(ndbxg1,tbx, -{ -Boxlbx=amrex::grow(amrex::surroundingNodes(bx,0),1); -autolo=amrex::max_lbound(tbx,lbx); -autohi=amrex::min_ubound(tbx,lbx); -for(intj=lo.y;j<=hi.y;++j){ -for(inti=lo.x;i<=hi.x;++i) -{ -if(fx(i,j,0)==Type::regular){ -apx(i,j,0)=1.0_rt; -fcx(i,j,0)=0.0_rt; -}elseif(fx(i,j,0)==Type::covered){ -apx(i,j,0)=0.0_rt; -fcx(i,j,0)=0.0_rt; -}else{ -if(levset(i,j,0)<0.0_rt){ -apx(i,j,0)=(intery(i,j,0)-(problo[1]+j*dx[1]))*dyinv; -fcx(i,j,0)=0.5_rt*apx(i,j,0)-0.5_rt; -}else{ -apx(i,j,0)=1.0_rt-(intery(i,j,0)-(problo[1]+j*dx[1]))*dyinv; -fcx(i,j,0)=0.5_rt-0.5_rt*apx(i,j,0); -} - -if(apx(i,j,0)>1.0_rt-small){ -apx(i,j,0)=1.0_rt; -fcx(i,j,0)=0.0_rt; -fx(i,j,0)=Type::regular; -}elseif(apx(i,j,0)<small){ -apx(i,j,0)=0.0_rt; -fcx(i,j,0)=0.0_rt; -fx(i,j,0)=Type::covered; -} -} -}} - -lbx=amrex::grow(amrex::surroundingNodes(bx,1),1); -lo=amrex::max_lbound(tbx,lbx); -hi=amrex::min_ubound(tbx,lbx); -for(intj=lo.y;j<=hi.y;++j){ -for(inti=lo.x;i<=hi.x;++i) -{ -if(fy(i,j,0)==Type::regular){ -apy(i,j,0)=1.0_rt; -fcy(i,j,0)=0.0_rt; -}elseif(fy(i,j,0)==Type::covered){ -apy(i,j,0)=0.0_rt; -fcy(i,j,0)=0.0_rt; -}else{ -if(levset(i,j,0)<0.0_rt){ -apy(i,j,0)=(interx(i,j,0)-(problo[0]+i*dx[0]))*dxinv; -fcy(i,j,0)=0.5_rt*apy(i,j,0)-0.5_rt; -}else{ -apy(i,j,0)=1.0_rt-(interx(i,j,0)-(problo[0]+i*dx[0]))*dxinv; -fcy(i,j,0)=0.5_rt-0.5_rt*apy(i,j,0); -} - -if(apy(i,j,0)>1.0_rt-small){ -apy(i,j,0)=1.0_rt; -fcy(i,j,0)=0.0_rt; -fy(i,j,0)=Type::regular; -}elseif(apy(i,j,0)<small){ -apy(i,j,0)=0.0_rt; -fcy(i,j,0)=0.0_rt; -fy(i,j,0)=Type::covered; -} -} -}} -}); - -Gpu::Buffer<int>nmulticuts={0,0}; -int*hp=nmulticuts.hostData(); -int*dp=nmulticuts.data(); - -constBox&bxg1=amrex::grow(bx,1); -AMREX_HOST_DEVICE_FOR_3D(bxg1,i,j,k, -{ -amrex::ignore_unused(k); -if(cell(i,j,0).isSingleValued()){ -if(fx(i,j,0)==Type::regular&&fx(i+1,j,0)==Type::regular&& -fy(i,j,0)==Type::regular&&fy(i,j+1,0)==Type::regular) -{ -cell(i,j,0).setRegular(); -} -elseif(fx(i,j,0)==Type::covered&&fx(i+1,j,0)==Type::covered&& -fy(i,j,0)==Type::covered&&fy(i,j+1,0)==Type::covered) -{ -cell(i,j,0).setCovered(); -} -else -{ -intncuts=0; -if(fx(i,j,0)==Type::irregular){++ncuts;} -if(fx(i+1,j,0)==Type::irregular){++ncuts;} -if(fy(i,j,0)==Type::irregular){++ncuts;} -if(fy(i,j+1,0)==Type::irregular){++ncuts;} -if(ncuts>2){ -Gpu::Atomic::Add(dp,1); -} -} -} -}); - -constBox&nbxg1=amrex::surroundingNodes(bxg1); -constBox&bxg1x=amrex::surroundingNodes(bxg1,0); -constBox&bxg1y=amrex::surroundingNodes(bxg1,1); -AMREX_HOST_DEVICE_FOR_3D(nbxg1,i,j,k, -{ -amrex::ignore_unused(k); -if(levset(i,j,0)<Real(0.0)){ -if((bxg1x.contains(i,j-1,0) -&&fx(i,j-1,0)==Type::covered)|| -(bxg1x.contains(i,j,0) -&&fx(i,j,0)==Type::covered)|| -(bxg1y.contains(i-1,j,0) -&&fy(i-1,j,0)==Type::covered)|| -(bxg1y.contains(i,j,0) -&&fy(i,j,0)==Type::covered)) -{ -levset(i,j,k)=Real(0.0); -Gpu::Atomic::Add(dp+1,1); -} -} -}); - -nmulticuts.copyToHost(); - -nsmallfaces+=*(hp+1); - -if(*hp>0&&!cover_multiple_cuts){ -amrex::Abort("amrex::EB2::build_faces:morethan2cutsnotsupported"); -} - -return*hp; -} - -voidbuild_cells(Boxconst&bx,Array4<EBCellFlag>const&cell, -Array4<Type_t>const&fx,Array4<Type_t>const&fy, -Array4<Real>const&apx,Array4<Real>const&apy, -GpuArray<Real,AMREX_SPACEDIM>const&dx, -Array4<Real>const&vfrac,Array4<Real>const&vcent, -Array4<Real>const&barea,Array4<Real>const&bcent, -Array4<Real>const&bnorm,Array4<Real>const&levset, -Realsmall_volfrac,Geometryconst&geom,boolextend_domain_face, -int&nsmallcells,intconstnmulticuts)noexcept -{ -Gpu::Buffer<int>smc={0}; -int*hp=smc.hostData(); -int*dp=smc.data(); - -constBox&bxg1=amrex::grow(bx,1); -AMREX_HOST_DEVICE_PARALLEL_FOR_3D(bxg1,i,j,k, -{ -amrex::ignore_unused(k); -boolis_small=set_eb_cell(i,j,cell,apx,apy,dx,vfrac,vcent,barea,bcent, -bnorm,levset,small_volfrac); -if(is_small){ -Gpu::Atomic::Add(dp,1); -} -}); - -//setcellsintheextendedregiontocoveredifthe -//correspondingcellonthedomainfaceiscovered -if(extend_domain_face){ - -Boxgdomain=geom.Domain(); -for(intidim=0;idim<AMREX_SPACEDIM;++idim){ -if(geom.isPeriodic(idim)){ -gdomain.setSmall(idim,std::min(gdomain.smallEnd(idim),bxg1.smallEnd(idim))); -gdomain.setBig(idim,std::max(gdomain.bigEnd(idim),bxg1.bigEnd(idim))); -} -} - -if(!gdomain.contains(bxg1)){ -AMREX_HOST_DEVICE_FOR_3D(bxg1,i,j,k, -{ -constauto&dlo=gdomain.loVect(); -constauto&dhi=gdomain.hiVect(); - -//findthecell(ii,jj,kk)onthecorr.domainface -//thiswouldhavealreadybeensettocorrectvalue -boolin_extended_domain=false; -intii=i; -intjj=j; -intkk=k; -if(i<dlo[0]){ -in_extended_domain=true; -ii=dlo[0]; -} -elseif(i>dhi[0]){ -in_extended_domain=true; -ii=dhi[0]; -} - -if(j<dlo[1]){ -in_extended_domain=true; -jj=dlo[1]; -} -elseif(j>dhi[1]){ -in_extended_domain=true; -jj=dhi[1]; -} - -//setcellinextendableregiontocoveredifnecessary -if(in_extended_domain&&(!cell(i,j,k).isCovered()) -&&cell(ii,jj,kk).isCovered()) -{ -Gpu::Atomic::Add(dp,1); -set_covered(i,j,cell,vfrac,vcent,barea,bcent,bnorm); -} -}); -} -} - -smc.copyToHost(); -nsmallcells+=*hp; - -if(nsmallcells>0||nmulticuts>0){ -Boxconst&nbxg1=amrex::surroundingNodes(bxg1); -AMREX_HOST_DEVICE_FOR_3D(nbxg1,i,j,k, -{ -if(levset(i,j,k)<Real(0.0)){ -if((bxg1.contains(i-1,j-1,k) -&&cell(i-1,j-1,k).isCovered())|| -(bxg1.contains(i,j-1,k) -&&cell(i,j-1,k).isCovered())|| -(bxg1.contains(i-1,j,k) -&&cell(i-1,j,k).isCovered())|| -(bxg1.contains(i,j,k) -&&cell(i,j,k).isCovered())) -{ -levset(i,j,k)=Real(0.0); -} -} -}); -} - -set_connection_flags(bxg1,cell,fx,fy); -} - -voidset_connection_flags(Boxconst&bxg1, -Array4<EBCellFlag>const&cell, -Array4<Type_t>const&fx,Array4<Type_t>const&fy)noexcept -{ -//Buildneighbors.Bydefault,allneighborsarealreadyset. -AMREX_HOST_DEVICE_FOR_3D(bxg1,i,j,k, -{ -amrex::ignore_unused(k); - -autoflg=cell(i,j,0); - -if(fx(i,j,0)==Type::covered){flg.setDisconnected(IntVect(-1,0));} -if(fx(i+1,j,0)==Type::covered){flg.setDisconnected(IntVect(1,0));} -if(fy(i,j,0)==Type::covered){flg.setDisconnected(IntVect(0,-1));} -if(fy(i,j+1,0)==Type::covered){flg.setDisconnected(IntVect(0,1));} - -if(((fx(i,j,0)==Type::covered)||fy(i-1,j,0)==Type::covered)&& -((fx(i,j-1,0)==Type::covered)||fy(i,j,0)==Type::covered)) -{ -flg.setDisconnected(IntVect(-1,-1)); -} - -if(((fx(i+1,j,0)==Type::covered)||fy(i+1,j,0)==Type::covered)&& -((fx(i+1,j-1,0)==Type::covered)||fy(i,j,0)==Type::covered)) -{ -flg.setDisconnected(IntVect(1,-1)); -} - -if(((fx(i,j,0)==Type::covered)||fy(i-1,j+1,0)==Type::covered)&& -((fx(i,j+1,0)==Type::covered)||fy(i,j+1,0)==Type::covered)) -{ -flg.setDisconnected(IntVect(-1,1)); -} - -if(((fx(i+1,j,0)==Type::covered)||fy(i+1,j+1,0)==Type::covered)&& -((fx(i+1,j+1,0)==Type::covered)||fy(i,j+1,0)==Type::covered)) -{ -flg.setDisconnected(IntVect(1,1)); -} - -cell(i,j,0)=flg; -}); -} - -} +constRealbareascaling=std::sqrt(Math::powi<2>(nx*dx[1])+Math::powi<2>(ny*dx[0])); + +constRealnxabs=std::abs(nx); +constRealnyabs=std::abs(ny); + +Realx_ym,x_yp,y_xm,y_xp; +if(nx==0.0_rt){ +if(apx(i,j,0)==1.0_rt&&apx(i+1,j,0)==1.0_rt){ +if(levset(i,j,0)>0.0_rt||levset(i,j+1,0)>0.0_rt){ +x_ym=0.5_rt*dx[0]-aym; +x_yp=0.5_rt*dx[0]-ayp; +}else{ +x_ym=-0.5_rt*dx[0]+aym; +x_yp=-0.5_rt*dx[0]+ayp; +} +}else{ +x_ym=0.0_rt; +x_yp=0.0_rt; +} +}elseif(nx>0.0_rt){ +x_ym=-0.5_rt*dx[0]+aym; +x_yp=-0.5_rt*dx[0]+ayp; +}else{ +x_ym=0.5_rt*dx[0]-aym; +x_yp=0.5_rt*dx[0]-ayp; +} + +if(ny==0.0_rt){ +if(apy(i,j,0)==1.0_rt&&apy(i,j+1,0)==1.0_rt){ +if(levset(i,j,0)>0.0_rt||levset(i+1,j,0)>0.0_rt){ +y_xm=0.5_rt*dx[1]-axm; +y_xp=0.5_rt*dx[1]-axp; +}else{ +y_xm=-0.5_rt*dx[1]+axm; +y_xp=-0.5_rt*dx[1]+axp; +} +}else{ +y_xm=0.0_rt; +y_xp=0.0_rt; +} +}elseif(ny>0.0_rt){ +y_xm=-0.5_rt*dx[1]+axm; +y_xp=-0.5_rt*dx[1]+axp; +}else{ +y_xm=0.5_rt*dx[1]-axm; +y_xp=0.5_rt*dx[1]-axp; +} + +barea(i,j,0)=(nx*daxp+ny*dayp)/bareascaling; +bcent(i,j,0,0)=0.5_rt*(x_ym+x_yp); +bcent(i,j,0,1)=0.5_rt*(y_xm+y_xp); +bnorm(i,j,0,0)=nx; +bnorm(i,j,0,1)=ny; + +if(nxabs<tiny||nyabs>almostone){ +vfrac(i,j,0)=0.5_rt*(axm+axp)/dx[1]; +vcent(i,j,0,0)=0.0_rt; +if(vfrac(i,j,0)>almostone){ +vcent(i,j,0,1)=0.0_rt; +}else{ +vcent(i,j,0,1)=(-0.125_rt*dayp*dx[1]*dx[1]+ny*dx[0]*0.5_rt*bcent(i,j,0,1)*bcent(i,j,0,1))/((vfrac(i,j,0)+1.e-30_rt)*(dx[0]*dx[1]*dx[1])); +} +}elseif(nyabs<tiny||nxabs>almostone){ +vfrac(i,j,0)=0.5_rt*(aym+ayp)/dx[0]; +if(vfrac(i,j,0)>almostone){ +vcent(i,j,0,0)=0.0_rt; +}else{ +vcent(i,j,0,0)=(-0.125_rt*daxp*dx[0]*dx[0]+nx*dx[1]*0.5_rt*bcent(i,j,0,0)*bcent(i,j,0,0))/((vfrac(i,j,0)+1.e-30_rt)*(dx[0]*dx[0]*dx[1])); +} +vcent(i,j,0,1)=0.0_rt; +}else{ +Realaa=nxabs/ny*dx[0]/dx[1]; +constRealdxx=x_ym-x_yp; +constRealdx2=dxx*(x_ym+x_yp); +constRealdx3=dxx*(x_ym*x_ym+x_ym*x_yp+x_yp*x_yp); +constRealaf1=0.5_rt*(axm+axp)*dx[0]+aa*0.5_rt*dx2; +vcent(i,j,0,0)=-0.125_rt*daxp*dx[0]*dx[0]+aa*(1._rt/6._rt)*dx3; + +aa=nyabs/nx*dx[1]/dx[0]; +constRealdy=y_xm-y_xp; +constRealdy2=dy*(y_xm+y_xp); +constRealdy3=dy*(y_xm*y_xm+y_xm*y_xp+y_xp*y_xp); +constRealaf2=0.5_rt*(aym+ayp)*dx[1]+aa*0.5_rt*dy2; +vcent(i,j,0,1)=-0.125_rt*dayp*dx[1]*dx[1]+aa*(1._rt/6._rt)*dy3; + +vfrac(i,j,0)=0.5_rt*(af1+af2)/(dx[0]*dx[1]); + +if(vfrac(i,j,0)>1.0_rt-small){ +vfrac(i,j,0)=1.0_rt; +vcent(i,j,0,0)=0.0_rt; +vcent(i,j,0,1)=0.0_rt; +}elseif(vfrac(i,j,0)<small){ +vfrac(i,j,0)=0.0_rt; +vcent(i,j,0,0)=0.0_rt; +vcent(i,j,0,1)=0.0_rt; +}else{ +vcent(i,j,0,0)*=(1.0_rt/(vfrac(i,j,0)*dx[0]*dx[0]*dx[1])); +vcent(i,j,0,1)*=(1.0_rt/(vfrac(i,j,0)*dx[0]*dx[1]*dx[1])); +vcent(i,j,0,0)=amrex::min(amrex::max(vcent(i,j,0,0),Real(-0.5)),Real(0.5)); +vcent(i,j,0,1)=amrex::min(amrex::max(vcent(i,j,0,1),Real(-0.5)),Real(0.5)); +} +} +bcent(i,j,0,0)/=dx[0]; +bcent(i,j,0,1)/=dx[1]; +} + +AMREX_GPU_HOST_DEVICEAMREX_FORCE_INLINE +voidset_covered(constinti,constintj, +Array4<EBCellFlag>const&cell, +Array4<Real>const&vfrac,Array4<Real>const&vcent, +Array4<Real>const&barea,Array4<Real>const&bcent, +Array4<Real>const&bnorm)noexcept +{ +vfrac(i,j,0)=0.0_rt; +vcent(i,j,0,0)=0.0_rt; +vcent(i,j,0,1)=0.0_rt; +barea(i,j,0)=0.0_rt; +bcent(i,j,0,0)=-1.0_rt; +bcent(i,j,0,1)=-1.0_rt; +bnorm(i,j,0,0)=0.0_rt; +bnorm(i,j,0,1)=0.0_rt; +cell(i,j,0).setCovered(); +} + +AMREX_GPU_HOST_DEVICEAMREX_FORCE_INLINE +boolset_eb_cell(inti,intj,Array4<EBCellFlag>const&cell, +Array4<Real>const&apx,Array4<Real>const&apy, +GpuArray<Real,AMREX_SPACEDIM>const&dx, +Array4<Real>const&vfrac,Array4<Real>const&vcent, +Array4<Real>const&barea,Array4<Real>const&bcent, +Array4<Real>const&bnorm,Array4<Real>const&levset, +Realsmall_volfrac)noexcept +{ +boolis_small_cell=false; +if(cell(i,j,0).isRegular()){ +vfrac(i,j,0)=1.0_rt; +vcent(i,j,0,0)=0.0_rt; +vcent(i,j,0,1)=0.0_rt; +barea(i,j,0)=0.0_rt; +bcent(i,j,0,0)=-1.0_rt; +bcent(i,j,0,1)=-1.0_rt; +bnorm(i,j,0,0)=0.0_rt; +bnorm(i,j,0,1)=0.0_rt; +}elseif(cell(i,j,0).isCovered()){ +vfrac(i,j,0)=0.0_rt; +vcent(i,j,0,0)=0.0_rt; +vcent(i,j,0,1)=0.0_rt; +barea(i,j,0)=0.0_rt; +bcent(i,j,0,0)=-1.0_rt; +bcent(i,j,0,1)=-1.0_rt; +bnorm(i,j,0,0)=0.0_rt; +bnorm(i,j,0,1)=0.0_rt; +}else{ +set_eb_data(i,j,apx,apy,dx,vfrac,vcent,barea,bcent,bnorm,levset); +//removesmallcells +if(vfrac(i,j,0)<small_volfrac){ +set_covered(i,j,cell,vfrac,vcent,barea,bcent,bnorm); +is_small_cell=true; +} +} +returnis_small_cell; +} + +} + +intbuild_faces(Boxconst&bx,Array4<EBCellFlag>const&cell, +Array4<Type_t>const&fx,Array4<Type_t>const&fy, +Array4<Real>const&levset, +Array4<Realconst>const&interx,Array4<Realconst>const&intery, +Array4<Real>const&apx,Array4<Real>const&apy, +Array4<Real>const&fcx,Array4<Real>const&fcy, +GpuArray<Real,AMREX_SPACEDIM>const&dx, +GpuArray<Real,AMREX_SPACEDIM>const&problo, +boolcover_multiple_cuts,int&nsmallfaces)noexcept +{ +#ifdefAMREX_USE_FLOAT +constexprRealsmall=1.e-5_rt; +#else +constexprRealsmall=1.e-14; +#endif +constRealdxinv=1.0_rt/dx[0]; +constRealdyinv=1.0_rt/dx[1]; +constBox&ndbxg1=amrex::grow(amrex::surroundingNodes(bx),1); +AMREX_LAUNCH_HOST_DEVICE_LAMBDA(ndbxg1,tbx, +{ +Boxlbx=amrex::grow(amrex::surroundingNodes(bx,0),1); +autolo=amrex::max_lbound(tbx,lbx); +autohi=amrex::min_ubound(tbx,lbx); +for(intj=lo.y;j<=hi.y;++j){ +for(inti=lo.x;i<=hi.x;++i) +{ +if(fx(i,j,0)==Type::regular){ +apx(i,j,0)=1.0_rt; +fcx(i,j,0)=0.0_rt; +}elseif(fx(i,j,0)==Type::covered){ +apx(i,j,0)=0.0_rt; +fcx(i,j,0)=0.0_rt; +}else{ +if(levset(i,j,0)<0.0_rt){ +apx(i,j,0)=(intery(i,j,0)-(problo[1]+j*dx[1]))*dyinv; +fcx(i,j,0)=0.5_rt*apx(i,j,0)-0.5_rt; +}else{ +apx(i,j,0)=1.0_rt-(intery(i,j,0)-(problo[1]+j*dx[1]))*dyinv; +fcx(i,j,0)=0.5_rt-0.5_rt*apx(i,j,0); +} + +if(apx(i,j,0)>1.0_rt-small){ +apx(i,j,0)=1.0_rt; +fcx(i,j,0)=0.0_rt; +fx(i,j,0)=Type::regular; +}elseif(apx(i,j,0)<small){ +apx(i,j,0)=0.0_rt; +fcx(i,j,0)=0.0_rt; +fx(i,j,0)=Type::covered; +} +} +}} + +lbx=amrex::grow(amrex::surroundingNodes(bx,1),1); +lo=amrex::max_lbound(tbx,lbx); +hi=amrex::min_ubound(tbx,lbx); +for(intj=lo.y;j<=hi.y;++j){ +for(inti=lo.x;i<=hi.x;++i) +{ +if(fy(i,j,0)==Type::regular){ +apy(i,j,0)=1.0_rt; +fcy(i,j,0)=0.0_rt; +}elseif(fy(i,j,0)==Type::covered){ +apy(i,j,0)=0.0_rt; +fcy(i,j,0)=0.0_rt; +}else{ +if(levset(i,j,0)<0.0_rt){ +apy(i,j,0)=(interx(i,j,0)-(problo[0]+i*dx[0]))*dxinv; +fcy(i,j,0)=0.5_rt*apy(i,j,0)-0.5_rt; +}else{ +apy(i,j,0)=1.0_rt-(interx(i,j,0)-(problo[0]+i*dx[0]))*dxinv; +fcy(i,j,0)=0.5_rt-0.5_rt*apy(i,j,0); +} + +if(apy(i,j,0)>1.0_rt-small){ +apy(i,j,0)=1.0_rt; +fcy(i,j,0)=0.0_rt; +fy(i,j,0)=Type::regular; +}elseif(apy(i,j,0)<small){ +apy(i,j,0)=0.0_rt; +fcy(i,j,0)=0.0_rt; +fy(i,j,0)=Type::covered; +} +} +}} +}); + +Gpu::Buffer<int>nmulticuts={0,0}; +int*hp=nmulticuts.hostData(); +int*dp=nmulticuts.data(); + +constBox&bxg1=amrex::grow(bx,1); +AMREX_HOST_DEVICE_FOR_3D(bxg1,i,j,k, +{ +amrex::ignore_unused(k); +if(cell(i,j,0).isSingleValued()){ +if(fx(i,j,0)==Type::regular&&fx(i+1,j,0)==Type::regular&& +fy(i,j,0)==Type::regular&&fy(i,j+1,0)==Type::regular) +{ +cell(i,j,0).setRegular(); +} +elseif(fx(i,j,0)==Type::covered&&fx(i+1,j,0)==Type::covered&& +fy(i,j,0)==Type::covered&&fy(i,j+1,0)==Type::covered) +{ +cell(i,j,0).setCovered(); +} +else +{ +intncuts=0; +if(fx(i,j,0)==Type::irregular){++ncuts;} +if(fx(i+1,j,0)==Type::irregular){++ncuts;} +if(fy(i,j,0)==Type::irregular){++ncuts;} +if(fy(i,j+1,0)==Type::irregular){++ncuts;} +if(ncuts>2){ +Gpu::Atomic::Add(dp,1); +} +} +} +}); + +constBox&nbxg1=amrex::surroundingNodes(bxg1); +constBox&bxg1x=amrex::surroundingNodes(bxg1,0); +constBox&bxg1y=amrex::surroundingNodes(bxg1,1); +AMREX_HOST_DEVICE_FOR_3D(nbxg1,i,j,k, +{ +amrex::ignore_unused(k); +if(levset(i,j,0)<Real(0.0)){ +if((bxg1x.contains(i,j-1,0) +&&fx(i,j-1,0)==Type::covered)|| +(bxg1x.contains(i,j,0) +&&fx(i,j,0)==Type::covered)|| +(bxg1y.contains(i-1,j,0) +&&fy(i-1,j,0)==Type::covered)|| +(bxg1y.contains(i,j,0) +&&fy(i,j,0)==Type::covered)) +{ +levset(i,j,k)=Real(0.0); +Gpu::Atomic::Add(dp+1,1); +} +} +}); + +nmulticuts.copyToHost(); + +nsmallfaces+=*(hp+1); + +if(*hp>0&&!cover_multiple_cuts){ +amrex::Abort("amrex::EB2::build_faces:morethan2cutsnotsupported"); +} + +return*hp; +} + +voidbuild_cells(Boxconst&bx,Array4<EBCellFlag>const&cell, +Array4<Type_t>const&fx,Array4<Type_t>const&fy, +Array4<Real>const&apx,Array4<Real>const&apy, +GpuArray<Real,AMREX_SPACEDIM>const&dx, +Array4<Real>const&vfrac,Array4<Real>const&vcent, +Array4<Real>const&barea,Array4<Real>const&bcent, +Array4<Real>const&bnorm,Array4<Real>const&levset, +Realsmall_volfrac,Geometryconst&geom,boolextend_domain_face, +int&nsmallcells,intconstnmulticuts)noexcept +{ +Gpu::Buffer<int>smc={0}; +int*hp=smc.hostData(); +int*dp=smc.data(); + +constBox&bxg1=amrex::grow(bx,1); +AMREX_HOST_DEVICE_PARALLEL_FOR_3D(bxg1,i,j,k, +{ +amrex::ignore_unused(k); +boolis_small=set_eb_cell(i,j,cell,apx,apy,dx,vfrac,vcent,barea,bcent, +bnorm,levset,small_volfrac); +if(is_small){ +Gpu::Atomic::Add(dp,1); +} +}); + +//setcellsintheextendedregiontocoveredifthe +//correspondingcellonthedomainfaceiscovered +if(extend_domain_face){ + +Boxgdomain=geom.Domain(); +for(intidim=0;idim<AMREX_SPACEDIM;++idim){ +if(geom.isPeriodic(idim)){ +gdomain.setSmall(idim,std::min(gdomain.smallEnd(idim),bxg1.smallEnd(idim))); +gdomain.setBig(idim,std::max(gdomain.bigEnd(idim),bxg1.bigEnd(idim))); +} +} + +if(!gdomain.contains(bxg1)){ +AMREX_HOST_DEVICE_FOR_3D(bxg1,i,j,k, +{ +constauto&dlo=gdomain.loVect(); +constauto&dhi=gdomain.hiVect(); + +//findthecell(ii,jj,kk)onthecorr.domainface +//thiswouldhavealreadybeensettocorrectvalue +boolin_extended_domain=false; +intii=i; +intjj=j; +intkk=k; +if(i<dlo[0]){ +in_extended_domain=true; +ii=dlo[0]; +} +elseif(i>dhi[0]){ +in_extended_domain=true; +ii=dhi[0]; +} + +if(j<dlo[1]){ +in_extended_domain=true; +jj=dlo[1]; +} +elseif(j>dhi[1]){ +in_extended_domain=true; +jj=dhi[1]; +} + +//setcellinextendableregiontocoveredifnecessary +if(in_extended_domain&&(!cell(i,j,k).isCovered()) +&&cell(ii,jj,kk).isCovered()) +{ +Gpu::Atomic::Add(dp,1); +set_covered(i,j,cell,vfrac,vcent,barea,bcent,bnorm); +} +}); +} +} + +smc.copyToHost(); +nsmallcells+=*hp; + +if(nsmallcells>0||nmulticuts>0){ +Boxconst&nbxg1=amrex::surroundingNodes(bxg1); +AMREX_HOST_DEVICE_FOR_3D(nbxg1,i,j,k, +{ +if(levset(i,j,k)<Real(0.0)){ +if((bxg1.contains(i-1,j-1,k) +&&cell(i-1,j-1,k).isCovered())|| +(bxg1.contains(i,j-1,k) +&&cell(i,j-1,k).isCovered())|| +(bxg1.contains(i-1,j,k) +&&cell(i-1,j,k).isCovered())|| +(bxg1.contains(i,j,k) +&&cell(i,j,k).isCovered())) +{ +levset(i,j,k)=Real(0.0); +} +} +}); +} + +set_connection_flags(bxg1,cell,fx,fy); +} + +voidset_connection_flags(Boxconst&bxg1, +Array4<EBCellFlag>const&cell, +Array4<Type_t>const&fx,Array4<Type_t>const&fy)noexcept +{ +//Buildneighbors.Bydefault,allneighborsarealreadyset. +AMREX_HOST_DEVICE_FOR_3D(bxg1,i,j,k, +{ +amrex::ignore_unused(k); + +autoflg=cell(i,j,0); + +if(fx(i,j,0)==Type::covered){flg.setDisconnected(IntVect(-1,0));} +if(fx(i+1,j,0)==Type::covered){flg.setDisconnected(IntVect(1,0));} +if(fy(i,j,0)==Type::covered){flg.setDisconnected(IntVect(0,-1));} +if(fy(i,j+1,0)==Type::covered){flg.setDisconnected(IntVect(0,1));} + +if(((fx(i,j,0)==Type::covered)||fy(i-1,j,0)==Type::covered)&& +((fx(i,j-1,0)==Type::covered)||fy(i,j,0)==Type::covered)) +{ +flg.setDisconnected(IntVect(-1,-1)); +} + +if(((fx(i+1,j,0)==Type::covered)||fy(i+1,j,0)==Type::covered)&& +((fx(i+1,j-1,0)==Type::covered)||fy(i,j,0)==Type::covered)) +{ +flg.setDisconnected(IntVect(1,-1)); +} + +if(((fx(i,j,0)==Type::covered)||fy(i-1,j+1,0)==Type::covered)&& +((fx(i,j+1,0)==Type::covered)||fy(i,j+1,0)==Type::covered)) +{ +flg.setDisconnected(IntVect(-1,1)); +} + +if(((fx(i+1,j,0)==Type::covered)||fy(i+1,j+1,0)==Type::covered)&& +((fx(i+1,j+1,0)==Type::covered)||fy(i,j+1,0)==Type::covered)) +{ +flg.setDisconnected(IntVect(1,1)); +} + +cell(i,j,0)=flg; +}); +} + +} diff --git a/amrex/docs_xml/doxygen/AMReX__EB2__3D__C_8cpp.xml b/amrex/docs_xml/doxygen/AMReX__EB2__3D__C_8cpp.xml index 8abcdfd280..ed87c1e7ee 100644 --- a/amrex/docs_xml/doxygen/AMReX__EB2__3D__C_8cpp.xml +++ b/amrex/docs_xml/doxygen/AMReX__EB2__3D__C_8cpp.xml @@ -1932,1032 +1932,1034 @@ bnorm(i,j,k,0)=nx; bnorm(i,j,k,1)=ny; bnorm(i,j,k,2)=nz; -barea(i,j,k)=(nx*dapx/(dx[1]*dx[2])+ny*dapy/(dx[0]*dx[2])+nz*dapz/(dx[0]*dx[1])); - -Realaax=0.5_rt*(axm+axp); -Realaay=0.5_rt*(aym+ayp); -Realaaz=0.5_rt*(azm+azp); -RealB0=aax+aay+aaz; -RealBx=-nx*aax+ny*(aym*fcy(i,j,k,0)-ayp*fcy(i,j+1,k,0)) -+nz*(azm*fcz(i,j,k,0)-azp*fcz(i,j,k+1,0)); -RealBy=-ny*aay+nx*(axm*fcx(i,j,k,0)-axp*fcx(i+1,j,k,0)) -+nz*(azm*fcz(i,j,k,1)-azp*fcz(i,j,k+1,1)); -RealBz=-nz*aaz+nx*(axm*fcx(i,j,k,1)-axp*fcx(i+1,j,k,1)) -+ny*(aym*fcy(i,j,k,1)-ayp*fcy(i,j+1,k,1)); - -vfrac(i,j,k)=0.5_rt*(B0+nx*Bx+ny*By+nz*Bz); +barea(i,j,k)=(nx*dapx+ny*dapy+nz*dapz)/(Math::powi<2>(nx*dx[1]*dx[2])+ +Math::powi<2>(ny*dx[0]*dx[2])+ +Math::powi<2>(nz*dx[0]*dx[1])); + +Realaax=0.5_rt*(axm+axp); +Realaay=0.5_rt*(aym+ayp); +Realaaz=0.5_rt*(azm+azp); +RealB0=aax+aay+aaz; +RealBx=-nx*aax+ny*(aym*fcy(i,j,k,0)-ayp*fcy(i,j+1,k,0)) ++nz*(azm*fcz(i,j,k,0)-azp*fcz(i,j,k+1,0)); +RealBy=-ny*aay+nx*(axm*fcx(i,j,k,0)-axp*fcx(i+1,j,k,0)) ++nz*(azm*fcz(i,j,k,1)-azp*fcz(i,j,k+1,1)); +RealBz=-nz*aaz+nx*(axm*fcx(i,j,k,1)-axp*fcx(i+1,j,k,1)) ++ny*(aym*fcy(i,j,k,1)-ayp*fcy(i,j+1,k,1)); -//removesmallcell -if(vfrac(i,j,k)<small_volfrac){ -set_covered(i,j,k,cell,vfrac,vcent,barea,bcent,bnorm); -is_small_cell=true; -return; -} - -Realbainv=((nx*dx[0])*(nx*dx[0])+(ny*dx[1])*(ny*dx[1])+(nz*dx[2])*(nz*dx[2]))*apnorminv; -bcent(i,j,k,0)=bainv*(Bx+nx*vfrac(i,j,k)); -bcent(i,j,k,1)=bainv*(By+ny*vfrac(i,j,k)); -bcent(i,j,k,2)=bainv*(Bz+nz*vfrac(i,j,k)); - -Realb1=0.5_rt*(axp-axm)+0.5_rt*(ayp*fcy(i,j+1,k,0)+aym*fcy(i,j,k,0))+0.5_rt*(azp*fcz(i,j,k+1,0)+azm*fcz(i,j,k,0)); -Realb2=0.5_rt*(axp*fcx(i+1,j,k,0)+axm*fcx(i,j,k,0))+0.5_rt*(ayp-aym)+0.5_rt*(azp*fcz(i,j,k+1,1)+azm*fcz(i,j,k,1)); -Realb3=0.5_rt*(axp*fcx(i+1,j,k,1)+axm*fcx(i,j,k,1))+0.5_rt*(ayp*fcy(i,j+1,k,1)+aym*fcy(i,j,k,1))+0.5_rt*(azp-azm); -Realb4=-nx*0.25_rt*(axp-axm)-ny*(m2y(i,j+1,k,0)-m2y(i,j,k,0))-nz*(m2z(i,j,k+1,0)-m2z(i,j,k,0)); -Realb5=-nx*(m2x(i+1,j,k,0)-m2x(i,j,k,0))-ny*0.25_rt*(ayp-aym)-nz*(m2z(i,j,k+1,1)-m2z(i,j,k,1)); -Realb6=-nx*(m2x(i+1,j,k,1)-m2x(i,j,k,1))-ny*(m2y(i,j+1,k,1)-m2y(i,j,k,1))-nz*0.25_rt*(azp-azm); -Realb7=-nx*0.5_rt*(axp*fcx(i+1,j,k,0)+axm*fcx(i,j,k,0)) --ny*0.5_rt*(ayp*fcy(i,j+1,k,0)+aym*fcy(i,j,k,0)) --nz*(m2z(i,j,k+1,2)-m2z(i,j,k,2)); -Realb8=-nx*0.5_rt*(axp*fcx(i+1,j,k,1)+axm*fcx(i,j,k,1)) --ny*(m2y(i,j+1,k,2)-m2y(i,j,k,2)) --nz*0.5_rt*(azp*fcz(i,j,k+1,0)+azm*fcz(i,j,k,0)); -Realb9=-nx*(m2x(i+1,j,k,2)-m2x(i,j,k,2)) --ny*0.5_rt*(ayp*fcy(i,j+1,k,1)+aym*fcy(i,j,k,1)) --nz*0.5_rt*(azp*fcz(i,j,k+1,1)+azm*fcz(i,j,k,1)); - -Realny2=ny*ny; -Realny3=ny2*ny; -Realny4=ny3*ny; -Realnz2=nz*nz; -Realnz3=nz2*nz; -Realnz4=nz3*nz; -Realnz5=nz4*nz; - -RealSx=(5._rt*(b1*(5._rt-3._rt*ny2)+2._rt*b4*nx*(5._rt-3._rt*ny2)+ -ny*(nx*(b2+2._rt*b5*ny)+b7*(6._rt-4._rt*ny2)))+ -(2._rt*b8*(15._rt-11._rt*ny2+ny4)+ -nx*(b3*(5._rt-2._rt*ny2)-2._rt*b9*ny*(-5._rt+ny2)))*nz+ -(-22._rt*b7*ny-2._rt*nx*(15._rt*b4-5._rt*b6+b2*ny)+ -ny2*((16._rt*b4-4._rt*(b5+b6))*nx+10._rt*b7*ny)+ -b1*(-15._rt+8._rt*ny2))*nz2+ -2._rt*(-(b9*nx*ny)+5._rt*b8*(-2._rt+ny2))*nz3+ -2._rt*b7*ny*nz4); - -RealSy=(5._rt*(2._rt*b7*nx*(1._rt+2._rt*ny2)+b2*(2._rt+3._rt*ny2)+ -ny*(b1*nx-2._rt*b4*(-1._rt+ny2)+b5*(4._rt+6._rt*ny2)))+ -(2._rt*b9*(5._rt+9._rt*ny2+ny4)+ -ny*(2._rt*b8*nx*(4._rt+ny2)+b3*(3._rt+2._rt*ny2)))*nz+ -(2._rt*b7*nx*(4._rt-5._rt*ny2)-8._rt*b2*(-1._rt+ny2)+ -2._rt*ny*(-7._rt*b4+8._rt*b5+3._rt*b6-b1*nx+ -2._rt*(b4-4._rt*b5+b6)*ny2))*nz2+ -2._rt*(b3*ny+b9*(4._rt-3._rt*ny2))*nz3+ -(-8._rt*(b2+b7*nx)+4._rt*(b4-4._rt*b5+b6)*ny)*nz4- -8._rt*b9*nz5); - -RealSz=(-2._rt*(b3+b8*nx+b9*ny)*(-5._rt-4._rt*ny2+4._rt*ny4)+ -(5._rt*(2._rt*b4+4._rt*b6+b1*nx)+(3._rt*b2+8._rt*b7*nx)*ny- -2._rt*(7._rt*b4-3._rt*b5-8._rt*b6+b1*nx)*ny2+ -2._rt*b2*ny3+4._rt*(b4+b5-4._rt*b6)*ny4)*nz+ -(b3*(15._rt-8._rt*ny2)-6._rt*b9*ny*(-3._rt+ny2)- -10._rt*b8*nx*(-2._rt+ny2))*nz2+ -2._rt*(-5._rt*b4+15._rt*b6+(b2+b7*nx)*ny+ -2._rt*(b4+b5-4._rt*b6)*ny2)*nz3+2._rt*b9*ny*nz4); - -Realden=1._rt/(10._rt*(5._rt+4._rt*nz2-4._rt*nz4+2._rt*ny4*(-2._rt+nz2)+ -2._rt*ny2*(2._rt-3._rt*nz2+nz4))*(vfrac(i,j,k)+1.e-30_rt)); - -vcent(i,j,k,0)=Sx*den; -vcent(i,j,k,1)=Sy*den; -vcent(i,j,k,2)=Sz*den; -} - -AMREX_GPU_HOST_DEVICEAMREX_FORCE_INLINE -voidcut_face_2d(Real&areafrac,Real&centx,Real&centy, -Real&Sx2,Real&Sy2,Real&Sxy, -Realaxm,Realaxp,Realaym,Realayp, -Realbcx,Realbcy)noexcept -{ -#ifdefAMREX_USE_FLOAT -constexprRealsmall=1.e-5_rt; -constexprRealtiny=1.e-6_rt; -#else -constexprRealsmall=1.e-14; -constexprRealtiny=1.e-15; -#endif -Realapnorm=std::hypot(axm-axp,aym-ayp); -Realnx=(axm-axp)*(1.0_rt/apnorm);//pointingtothewall -Realny=(aym-ayp)*(1.0_rt/apnorm); - -Realnxabs=std::abs(nx); -Realnyabs=std::abs(ny); - -if(nxabs<tiny||nyabs>1.0_rt-tiny){ -areafrac=0.5_rt*(axm+axp); -if(areafrac>1.0_rt-small){ -areafrac=1.0_rt; -centx=0.0_rt; -centy=0.0_rt; -Sx2=Sy2=1.0_rt/12._rt; -Sxy=0.0_rt; -}elseif(areafrac<small){ -areafrac=0.0_rt; -centx=0.0_rt; -centy=0.0_rt; -Sx2=0.0_rt; -Sy2=0.0_rt; -Sxy=0.0_rt; -}else{ -centx=0.0_rt; -centy=(0.125_rt*(ayp-aym)+ny*0.5_rt*bcy*bcy)/areafrac; -Sx2=(1.0_rt/24._rt)*(axm+axp); -Sy2=(1.0_rt/24._rt)*(ayp+aym)+ny*(1.0_rt/3._rt)*(bcy*bcy*bcy); -Sxy=0.0_rt; -} -}elseif(nyabs<tiny||nxabs>1.0_rt-tiny){ -areafrac=0.5_rt*(aym+ayp); -if(areafrac>1.0_rt-small){ -areafrac=1.0_rt; -centx=0.0_rt; -centy=0.0_rt; -Sx2=Sy2=1.0_rt/12._rt; -Sxy=0.0_rt; -}elseif(areafrac<small){ -areafrac=0.0_rt; -centx=0.0_rt; -centy=0.0_rt; -Sx2=0.0_rt; -Sy2=0.0_rt; -Sxy=0.0_rt; -}else{ -centx=(0.125_rt*(axp-axm)+nx*0.5_rt*bcx*bcx)/areafrac; -centy=0.0_rt; -Sx2=(1.0_rt/24._rt)*(axp+axm)+nx*(1.0_rt/3._rt)*(bcx*bcx*bcx); -Sy2=(1.0_rt/24._rt)*(ayp+aym); -Sxy=0.0_rt; -} -}else{ -Realsignx=(nx>0.0_rt)?1.0_rt:-1.0_rt; -Realx_ym=(-0.5_rt+aym)*signx; -Realx_yp=(-0.5_rt+ayp)*signx; -Realaa=nxabs/ny; -Realdx=x_ym-x_yp; -Realdx2=dx*(x_ym+x_yp); -Realdx3=dx*(x_ym*x_ym+x_ym*x_yp+x_yp*x_yp); -Realdx4=dx*(x_ym+x_yp)*(x_ym*x_ym+x_yp*x_yp); -Realaf1=0.5_rt*(axm+axp)+aa*0.5_rt*dx2; -centx=0.125_rt*(axp-axm)+aa*(1.0_rt/6._rt)*dx3; -Sx2=(1.0_rt/24._rt)*(axm+axp)+aa*(1.0_rt/12._rt)*dx4; - -Realsigny=(ny>0.0_rt)?1.0_rt:-1.0_rt; -Realy_xm=(-0.5_rt+axm)*signy; -Realy_xp=(-0.5_rt+axp)*signy; -aa=nyabs/nx; -Realdy=y_xm-y_xp; -Realdy2=dy*(y_xm+y_xp); -Realdy3=dy*(y_xm*y_xm+y_xm*y_xp+y_xp*y_xp); -Realdy4=dy*(y_xm+y_xp)*(y_xm*y_xm+y_xp*y_xp); -Realaf2=0.5_rt*(aym+ayp)+aa*0.5_rt*dy2; -centy=(1.0_rt/8._rt)*(ayp-aym)+aa*(1.0_rt/6._rt)*dy3; -Sy2=(1.0_rt/24._rt)*(aym+ayp)+aa*(1.0_rt/12._rt)*dy4; - -RealS_b=(nxabs<nyabs) -?(Sx2-(1.0_rt/24._rt)-signx*(1.0_rt/6._rt)*(x_ym*x_ym*x_ym+x_yp*x_yp*x_yp))/ny -:(Sy2-(1.0_rt/24._rt)-signy*(1.0_rt/6._rt)*(y_xm*y_xm*y_xm+y_xp*y_xp*y_xp))/nx; -Sxy=(nxabs<nyabs) -?-signy*(1.0_rt/16._rt)*dy2+0.5_rt*nx*S_b -:-signx*(1.0_rt/16._rt)*dx2+0.5_rt*ny*S_b; - -areafrac=0.5_rt*(af1+af2); -if(areafrac>1.0_rt-small){ -areafrac=1.0_rt; -centx=0.0_rt; -centy=0.0_rt; -Sx2=Sy2=1.0_rt/12._rt; -Sxy=0.0_rt; -}elseif(areafrac<small){ -areafrac=0.0_rt; -centx=0.0_rt; -centy=0.0_rt; -Sx2=0.0_rt; -Sy2=0.0_rt; -Sxy=0.0_rt; -}else{ -centx*=1.0_rt/areafrac; -centy*=1.0_rt/areafrac; -centx=amrex::min(amrex::max(centx,Real(-0.5)),Real(0.5)); -centy=amrex::min(amrex::max(centy,Real(-0.5)),Real(0.5)); -} -} -} - -AMREX_GPU_HOST_DEVICEAMREX_FORCE_INLINE -voidset_eb_cell(inti,intj,intk, -Array4<EBCellFlag>const&cell,Array4<Real>const&apx, -Array4<Real>const&apy,Array4<Real>const&apz, -Array4<Realconst>const&fcx,Array4<Realconst>const&fcy, -Array4<Realconst>const&fcz,Array4<Realconst>const&m2x, -Array4<Realconst>const&m2y,Array4<Realconst>const&m2z, -GpuArray<Real,AMREX_SPACEDIM>const&dx, -Array4<Real>const&vfrac,Array4<Real>const&vcent, -Array4<Real>const&barea,Array4<Real>const&bcent, -Array4<Real>const&bnorm,Realsmall_volfrac, -bool&is_small_cell,bool&is_multicut)noexcept -{ -if(cell(i,j,k).isRegular()){ -vfrac(i,j,k)=1.0_rt; -vcent(i,j,k,0)=0.0_rt; -vcent(i,j,k,1)=0.0_rt; -vcent(i,j,k,2)=0.0_rt; -bcent(i,j,k,0)=-1.0_rt; -bcent(i,j,k,1)=-1.0_rt; -bcent(i,j,k,2)=-1.0_rt; -bnorm(i,j,k,0)=0.0_rt; -bnorm(i,j,k,1)=0.0_rt; -bnorm(i,j,k,2)=0.0_rt; -barea(i,j,k)=0.0_rt; -}elseif(cell(i,j,k).isCovered()){ -vfrac(i,j,k)=0.0_rt; -vcent(i,j,k,0)=0.0_rt; -vcent(i,j,k,1)=0.0_rt; -vcent(i,j,k,2)=0.0_rt; -bcent(i,j,k,0)=-1.0_rt; -bcent(i,j,k,1)=-1.0_rt; -bcent(i,j,k,2)=-1.0_rt; -bnorm(i,j,k,0)=0.0_rt; -bnorm(i,j,k,1)=0.0_rt; -bnorm(i,j,k,2)=0.0_rt; -barea(i,j,k)=0.0_rt; -}else{ -set_eb_data(i,j,k,cell,apx,apy,apz,fcx,fcy,fcz,m2x,m2y,m2z, -dx,vfrac,vcent,barea,bcent,bnorm,small_volfrac, -is_small_cell,is_multicut); -} -} - +vfrac(i,j,k)=0.5_rt*(B0+nx*Bx+ny*By+nz*Bz); + +//removesmallcell +if(vfrac(i,j,k)<small_volfrac){ +set_covered(i,j,k,cell,vfrac,vcent,barea,bcent,bnorm); +is_small_cell=true; +return; +} + +Realbainv=((nx*dx[0])*(nx*dx[0])+(ny*dx[1])*(ny*dx[1])+(nz*dx[2])*(nz*dx[2]))*apnorminv; +bcent(i,j,k,0)=bainv*(Bx+nx*vfrac(i,j,k)); +bcent(i,j,k,1)=bainv*(By+ny*vfrac(i,j,k)); +bcent(i,j,k,2)=bainv*(Bz+nz*vfrac(i,j,k)); + +Realb1=0.5_rt*(axp-axm)+0.5_rt*(ayp*fcy(i,j+1,k,0)+aym*fcy(i,j,k,0))+0.5_rt*(azp*fcz(i,j,k+1,0)+azm*fcz(i,j,k,0)); +Realb2=0.5_rt*(axp*fcx(i+1,j,k,0)+axm*fcx(i,j,k,0))+0.5_rt*(ayp-aym)+0.5_rt*(azp*fcz(i,j,k+1,1)+azm*fcz(i,j,k,1)); +Realb3=0.5_rt*(axp*fcx(i+1,j,k,1)+axm*fcx(i,j,k,1))+0.5_rt*(ayp*fcy(i,j+1,k,1)+aym*fcy(i,j,k,1))+0.5_rt*(azp-azm); +Realb4=-nx*0.25_rt*(axp-axm)-ny*(m2y(i,j+1,k,0)-m2y(i,j,k,0))-nz*(m2z(i,j,k+1,0)-m2z(i,j,k,0)); +Realb5=-nx*(m2x(i+1,j,k,0)-m2x(i,j,k,0))-ny*0.25_rt*(ayp-aym)-nz*(m2z(i,j,k+1,1)-m2z(i,j,k,1)); +Realb6=-nx*(m2x(i+1,j,k,1)-m2x(i,j,k,1))-ny*(m2y(i,j+1,k,1)-m2y(i,j,k,1))-nz*0.25_rt*(azp-azm); +Realb7=-nx*0.5_rt*(axp*fcx(i+1,j,k,0)+axm*fcx(i,j,k,0)) +-ny*0.5_rt*(ayp*fcy(i,j+1,k,0)+aym*fcy(i,j,k,0)) +-nz*(m2z(i,j,k+1,2)-m2z(i,j,k,2)); +Realb8=-nx*0.5_rt*(axp*fcx(i+1,j,k,1)+axm*fcx(i,j,k,1)) +-ny*(m2y(i,j+1,k,2)-m2y(i,j,k,2)) +-nz*0.5_rt*(azp*fcz(i,j,k+1,0)+azm*fcz(i,j,k,0)); +Realb9=-nx*(m2x(i+1,j,k,2)-m2x(i,j,k,2)) +-ny*0.5_rt*(ayp*fcy(i,j+1,k,1)+aym*fcy(i,j,k,1)) +-nz*0.5_rt*(azp*fcz(i,j,k+1,1)+azm*fcz(i,j,k,1)); + +Realny2=ny*ny; +Realny3=ny2*ny; +Realny4=ny3*ny; +Realnz2=nz*nz; +Realnz3=nz2*nz; +Realnz4=nz3*nz; +Realnz5=nz4*nz; + +RealSx=(5._rt*(b1*(5._rt-3._rt*ny2)+2._rt*b4*nx*(5._rt-3._rt*ny2)+ +ny*(nx*(b2+2._rt*b5*ny)+b7*(6._rt-4._rt*ny2)))+ +(2._rt*b8*(15._rt-11._rt*ny2+ny4)+ +nx*(b3*(5._rt-2._rt*ny2)-2._rt*b9*ny*(-5._rt+ny2)))*nz+ +(-22._rt*b7*ny-2._rt*nx*(15._rt*b4-5._rt*b6+b2*ny)+ +ny2*((16._rt*b4-4._rt*(b5+b6))*nx+10._rt*b7*ny)+ +b1*(-15._rt+8._rt*ny2))*nz2+ +2._rt*(-(b9*nx*ny)+5._rt*b8*(-2._rt+ny2))*nz3+ +2._rt*b7*ny*nz4); + +RealSy=(5._rt*(2._rt*b7*nx*(1._rt+2._rt*ny2)+b2*(2._rt+3._rt*ny2)+ +ny*(b1*nx-2._rt*b4*(-1._rt+ny2)+b5*(4._rt+6._rt*ny2)))+ +(2._rt*b9*(5._rt+9._rt*ny2+ny4)+ +ny*(2._rt*b8*nx*(4._rt+ny2)+b3*(3._rt+2._rt*ny2)))*nz+ +(2._rt*b7*nx*(4._rt-5._rt*ny2)-8._rt*b2*(-1._rt+ny2)+ +2._rt*ny*(-7._rt*b4+8._rt*b5+3._rt*b6-b1*nx+ +2._rt*(b4-4._rt*b5+b6)*ny2))*nz2+ +2._rt*(b3*ny+b9*(4._rt-3._rt*ny2))*nz3+ +(-8._rt*(b2+b7*nx)+4._rt*(b4-4._rt*b5+b6)*ny)*nz4- +8._rt*b9*nz5); + +RealSz=(-2._rt*(b3+b8*nx+b9*ny)*(-5._rt-4._rt*ny2+4._rt*ny4)+ +(5._rt*(2._rt*b4+4._rt*b6+b1*nx)+(3._rt*b2+8._rt*b7*nx)*ny- +2._rt*(7._rt*b4-3._rt*b5-8._rt*b6+b1*nx)*ny2+ +2._rt*b2*ny3+4._rt*(b4+b5-4._rt*b6)*ny4)*nz+ +(b3*(15._rt-8._rt*ny2)-6._rt*b9*ny*(-3._rt+ny2)- +10._rt*b8*nx*(-2._rt+ny2))*nz2+ +2._rt*(-5._rt*b4+15._rt*b6+(b2+b7*nx)*ny+ +2._rt*(b4+b5-4._rt*b6)*ny2)*nz3+2._rt*b9*ny*nz4); + +Realden=1._rt/(10._rt*(5._rt+4._rt*nz2-4._rt*nz4+2._rt*ny4*(-2._rt+nz2)+ +2._rt*ny2*(2._rt-3._rt*nz2+nz4))*(vfrac(i,j,k)+1.e-30_rt)); + +vcent(i,j,k,0)=Sx*den; +vcent(i,j,k,1)=Sy*den; +vcent(i,j,k,2)=Sz*den; +} + +AMREX_GPU_HOST_DEVICEAMREX_FORCE_INLINE +voidcut_face_2d(Real&areafrac,Real&centx,Real&centy, +Real&Sx2,Real&Sy2,Real&Sxy, +Realaxm,Realaxp,Realaym,Realayp, +Realbcx,Realbcy)noexcept +{ +#ifdefAMREX_USE_FLOAT +constexprRealsmall=1.e-5_rt; +constexprRealtiny=1.e-6_rt; +#else +constexprRealsmall=1.e-14; +constexprRealtiny=1.e-15; +#endif +Realapnorm=std::hypot(axm-axp,aym-ayp); +Realnx=(axm-axp)*(1.0_rt/apnorm);//pointingtothewall +Realny=(aym-ayp)*(1.0_rt/apnorm); + +Realnxabs=std::abs(nx); +Realnyabs=std::abs(ny); + +if(nxabs<tiny||nyabs>1.0_rt-tiny){ +areafrac=0.5_rt*(axm+axp); +if(areafrac>1.0_rt-small){ +areafrac=1.0_rt; +centx=0.0_rt; +centy=0.0_rt; +Sx2=Sy2=1.0_rt/12._rt; +Sxy=0.0_rt; +}elseif(areafrac<small){ +areafrac=0.0_rt; +centx=0.0_rt; +centy=0.0_rt; +Sx2=0.0_rt; +Sy2=0.0_rt; +Sxy=0.0_rt; +}else{ +centx=0.0_rt; +centy=(0.125_rt*(ayp-aym)+ny*0.5_rt*bcy*bcy)/areafrac; +Sx2=(1.0_rt/24._rt)*(axm+axp); +Sy2=(1.0_rt/24._rt)*(ayp+aym)+ny*(1.0_rt/3._rt)*(bcy*bcy*bcy); +Sxy=0.0_rt; +} +}elseif(nyabs<tiny||nxabs>1.0_rt-tiny){ +areafrac=0.5_rt*(aym+ayp); +if(areafrac>1.0_rt-small){ +areafrac=1.0_rt; +centx=0.0_rt; +centy=0.0_rt; +Sx2=Sy2=1.0_rt/12._rt; +Sxy=0.0_rt; +}elseif(areafrac<small){ +areafrac=0.0_rt; +centx=0.0_rt; +centy=0.0_rt; +Sx2=0.0_rt; +Sy2=0.0_rt; +Sxy=0.0_rt; +}else{ +centx=(0.125_rt*(axp-axm)+nx*0.5_rt*bcx*bcx)/areafrac; +centy=0.0_rt; +Sx2=(1.0_rt/24._rt)*(axp+axm)+nx*(1.0_rt/3._rt)*(bcx*bcx*bcx); +Sy2=(1.0_rt/24._rt)*(ayp+aym); +Sxy=0.0_rt; +} +}else{ +Realsignx=(nx>0.0_rt)?1.0_rt:-1.0_rt; +Realx_ym=(-0.5_rt+aym)*signx; +Realx_yp=(-0.5_rt+ayp)*signx; +Realaa=nxabs/ny; +Realdx=x_ym-x_yp; +Realdx2=dx*(x_ym+x_yp); +Realdx3=dx*(x_ym*x_ym+x_ym*x_yp+x_yp*x_yp); +Realdx4=dx*(x_ym+x_yp)*(x_ym*x_ym+x_yp*x_yp); +Realaf1=0.5_rt*(axm+axp)+aa*0.5_rt*dx2; +centx=0.125_rt*(axp-axm)+aa*(1.0_rt/6._rt)*dx3; +Sx2=(1.0_rt/24._rt)*(axm+axp)+aa*(1.0_rt/12._rt)*dx4; + +Realsigny=(ny>0.0_rt)?1.0_rt:-1.0_rt; +Realy_xm=(-0.5_rt+axm)*signy; +Realy_xp=(-0.5_rt+axp)*signy; +aa=nyabs/nx; +Realdy=y_xm-y_xp; +Realdy2=dy*(y_xm+y_xp); +Realdy3=dy*(y_xm*y_xm+y_xm*y_xp+y_xp*y_xp); +Realdy4=dy*(y_xm+y_xp)*(y_xm*y_xm+y_xp*y_xp); +Realaf2=0.5_rt*(aym+ayp)+aa*0.5_rt*dy2; +centy=(1.0_rt/8._rt)*(ayp-aym)+aa*(1.0_rt/6._rt)*dy3; +Sy2=(1.0_rt/24._rt)*(aym+ayp)+aa*(1.0_rt/12._rt)*dy4; + +RealS_b=(nxabs<nyabs) +?(Sx2-(1.0_rt/24._rt)-signx*(1.0_rt/6._rt)*(x_ym*x_ym*x_ym+x_yp*x_yp*x_yp))/ny +:(Sy2-(1.0_rt/24._rt)-signy*(1.0_rt/6._rt)*(y_xm*y_xm*y_xm+y_xp*y_xp*y_xp))/nx; +Sxy=(nxabs<nyabs) +?-signy*(1.0_rt/16._rt)*dy2+0.5_rt*nx*S_b +:-signx*(1.0_rt/16._rt)*dx2+0.5_rt*ny*S_b; + +areafrac=0.5_rt*(af1+af2); +if(areafrac>1.0_rt-small){ +areafrac=1.0_rt; +centx=0.0_rt; +centy=0.0_rt; +Sx2=Sy2=1.0_rt/12._rt; +Sxy=0.0_rt; +}elseif(areafrac<small){ +areafrac=0.0_rt; +centx=0.0_rt; +centy=0.0_rt; +Sx2=0.0_rt; +Sy2=0.0_rt; +Sxy=0.0_rt; +}else{ +centx*=1.0_rt/areafrac; +centy*=1.0_rt/areafrac; +centx=amrex::min(amrex::max(centx,Real(-0.5)),Real(0.5)); +centy=amrex::min(amrex::max(centy,Real(-0.5)),Real(0.5)); +} +} +} + +AMREX_GPU_HOST_DEVICEAMREX_FORCE_INLINE +voidset_eb_cell(inti,intj,intk, +Array4<EBCellFlag>const&cell,Array4<Real>const&apx, +Array4<Real>const&apy,Array4<Real>const&apz, +Array4<Realconst>const&fcx,Array4<Realconst>const&fcy, +Array4<Realconst>const&fcz,Array4<Realconst>const&m2x, +Array4<Realconst>const&m2y,Array4<Realconst>const&m2z, +GpuArray<Real,AMREX_SPACEDIM>const&dx, +Array4<Real>const&vfrac,Array4<Real>const&vcent, +Array4<Real>const&barea,Array4<Real>const&bcent, +Array4<Real>const&bnorm,Realsmall_volfrac, +bool&is_small_cell,bool&is_multicut)noexcept +{ +if(cell(i,j,k).isRegular()){ +vfrac(i,j,k)=1.0_rt; +vcent(i,j,k,0)=0.0_rt; +vcent(i,j,k,1)=0.0_rt; +vcent(i,j,k,2)=0.0_rt; +bcent(i,j,k,0)=-1.0_rt; +bcent(i,j,k,1)=-1.0_rt; +bcent(i,j,k,2)=-1.0_rt; +bnorm(i,j,k,0)=0.0_rt; +bnorm(i,j,k,1)=0.0_rt; +bnorm(i,j,k,2)=0.0_rt; +barea(i,j,k)=0.0_rt; +}elseif(cell(i,j,k).isCovered()){ +vfrac(i,j,k)=0.0_rt; +vcent(i,j,k,0)=0.0_rt; +vcent(i,j,k,1)=0.0_rt; +vcent(i,j,k,2)=0.0_rt; +bcent(i,j,k,0)=-1.0_rt; +bcent(i,j,k,1)=-1.0_rt; +bcent(i,j,k,2)=-1.0_rt; +bnorm(i,j,k,0)=0.0_rt; +bnorm(i,j,k,1)=0.0_rt; +bnorm(i,j,k,2)=0.0_rt; +barea(i,j,k)=0.0_rt; +}else{ +set_eb_data(i,j,k,cell,apx,apy,apz,fcx,fcy,fcz,m2x,m2y,m2z, +dx,vfrac,vcent,barea,bcent,bnorm,small_volfrac, +is_small_cell,is_multicut); +} } -intbuild_faces(Boxconst&bx,Array4<EBCellFlag>const&cell, -Array4<Type_t>const&fx,Array4<Type_t>const&fy, -Array4<Type_t>const&fz,Array4<Type_tconst>const&ex, -Array4<Type_tconst>const&ey,Array4<Type_tconst>const&ez, -Array4<Real>const&levset,Array4<Realconst>const&interx, -Array4<Realconst>const&intery,Array4<Realconst>const&interz, -Array4<Real>const&apx,Array4<Real>const&apy, -Array4<Real>const&apz,Array4<Real>const&fcx, -Array4<Real>const&fcy,Array4<Real>const&fcz, -Array4<Real>const&m2x,Array4<Real>const&m2y, -Array4<Real>const&m2z, -GpuArray<Real,AMREX_SPACEDIM>const&dx, -GpuArray<Real,AMREX_SPACEDIM>const&problo, -boolcover_multiple_cuts)noexcept -{ -Gpu::Buffer<int>nmulticuts={0}; -int*hp=nmulticuts.hostData(); -int*dp=nmulticuts.data(); - -#ifdefAMREX_USE_FLOAT -constexprRealsmall=1.e-5_rt; -#else -constexprRealsmall=1.e-14; -#endif -constRealdxinv=1.0_rt/dx[0]; -constRealdyinv=1.0_rt/dx[1]; -constRealdzinv=1.0_rt/dx[2]; - -constBox&xbx=amrex::grow(amrex::surroundingNodes(bx,0),1); -AMREX_HOST_DEVICE_FOR_3D(xbx,i,j,k, -{ -if(fx(i,j,k)==Type::regular){ -apx(i,j,k)=1.0_rt; -fcx(i,j,k,0)=0.0_rt; -fcx(i,j,k,1)=0.0_rt; -m2x(i,j,k,0)=(1.0_rt/12._rt); -m2x(i,j,k,1)=(1.0_rt/12._rt); -m2x(i,j,k,2)=0.0_rt; -}elseif(fx(i,j,k)==Type::covered){ -apx(i,j,k)=0.0_rt; -fcx(i,j,k,0)=0.0_rt; -fcx(i,j,k,1)=0.0_rt; -m2x(i,j,k,0)=0.0_rt; -m2x(i,j,k,1)=0.0_rt; -m2x(i,j,k,2)=0.0_rt; -}else{ -intncuts=0; -Realbcy=0.0_rt; -Realbcz=0.0_rt; - -Reallym; -if(ey(i,j,k)==Type::regular){ -lym=1.0_rt; -}elseif(ey(i,j,k)==Type::covered){ -lym=0.0_rt; -}else{ -++ncuts; -Realcut=(intery(i,j,k)-(problo[1]+j*dx[1]))*dyinv; -bcy+=cut; -lym=(levset(i,j,k)<0.0_rt)?cut:1.0_rt-cut; -lym=amrex::min(amrex::max(Real(0.0),lym),Real(1.0)); -} - -Reallyp; -if(ey(i,j,k+1)==Type::regular){ -lyp=1.0_rt; -}elseif(ey(i,j,k+1)==Type::covered){ -lyp=0.0_rt; -}else{ -++ncuts; -Realcut=(intery(i,j,k+1)-(problo[1]+j*dx[1]))*dyinv; -bcy+=cut; -bcz+=1.0_rt; -lyp=(levset(i,j,k+1)<0.0_rt)?cut:1.0_rt-cut; -lyp=amrex::min(amrex::max(Real(0.0),lyp),Real(1.0)); -} - -Reallzm; -if(ez(i,j,k)==Type::regular){ -lzm=1.0_rt; -}elseif(ez(i,j,k)==Type::covered){ -lzm=0.0_rt; -}else{ -++ncuts; -Realcut=(interz(i,j,k)-(problo[2]+k*dx[2]))*dzinv; -bcz+=cut; -lzm=(levset(i,j,k)<0.0_rt)?cut:1.0_rt-cut; -lzm=amrex::min(amrex::max(Real(0.0),lzm),Real(1.0)); -} - -Reallzp; -if(ez(i,j+1,k)==Type::regular){ -lzp=1.0_rt; -}elseif(ez(i,j+1,k)==Type::covered){ -lzp=0.0_rt; -}else{ -++ncuts; -Realcut=(interz(i,j+1,k)-(problo[2]+k*dx[2]))*dzinv; -bcy+=1.0_rt; -bcz+=cut; -lzp=(levset(i,j+1,k)<0.0_rt)?cut:1.0_rt-cut; -} - -if(ncuts>2){ -Gpu::Atomic::Add(dp,1); -} - -if((ncuts>2)||(lym<=small&&lyp<=small&&lzm<=small&&lzp<=small)){ -apx(i,j,k)=0.0_rt; -fcx(i,j,k,0)=0.0_rt; -fcx(i,j,k,1)=0.0_rt; -m2x(i,j,k,0)=0.0_rt; -m2x(i,j,k,1)=0.0_rt; -m2x(i,j,k,2)=0.0_rt; -}elseif(lym==lyp&&lzm==lzp){ -apx(i,j,k)=1.0_rt; -fcx(i,j,k,0)=0.0_rt; -fcx(i,j,k,1)=0.0_rt; -m2x(i,j,k,0)=(1.0_rt/12._rt); -m2x(i,j,k,1)=(1.0_rt/12._rt); -m2x(i,j,k,2)=0.0_rt; -}else{ -bcy=0.5_rt*bcy-0.5_rt; -bcz=0.5_rt*bcz-0.5_rt; -cut_face_2d(apx(i,j,k),fcx(i,j,k,0),fcx(i,j,k,1),//NOLINT(readability-suspicious-call-argument) -m2x(i,j,k,0),m2x(i,j,k,1),m2x(i,j,k,2), -lzm,lzp,lym,lyp,bcy,bcz); -} - -if(apx(i,j,k)==0.0_rt){ -fx(i,j,k)=Type::covered; -}elseif(apx(i,j,k)==1.0_rt){ -fx(i,j,k)=Type::regular; -} -} -}); - -constBox&ybx=amrex::grow(amrex::surroundingNodes(bx,1),1); -AMREX_HOST_DEVICE_FOR_3D(ybx,i,j,k, -{ -if(fy(i,j,k)==Type::regular){ -apy(i,j,k)=1.0_rt; -fcy(i,j,k,0)=0.0_rt; -fcy(i,j,k,1)=0.0_rt; -m2y(i,j,k,0)=1.0_rt/12._rt; -m2y(i,j,k,1)=1.0_rt/12._rt; -m2y(i,j,k,2)=0.0_rt; -}elseif(fy(i,j,k)==Type::covered){ -apy(i,j,k)=0.0_rt; -fcy(i,j,k,0)=0.0_rt; -fcy(i,j,k,1)=0.0_rt; -m2y(i,j,k,0)=0.0_rt; -m2y(i,j,k,1)=0.0_rt; -m2y(i,j,k,2)=0.0_rt; -}else{ -intncuts=0; -Realbcx=0.0_rt; -Realbcz=0.0_rt; - -Reallxm; -if(ex(i,j,k)==Type::regular){ -lxm=1.0_rt; -}elseif(ex(i,j,k)==Type::covered){ -lxm=0.0_rt; -}else{ -++ncuts; -Realcut=(interx(i,j,k)-(problo[0]+i*dx[0]))*dxinv; -bcx+=cut; -lxm=(levset(i,j,k)<0.0_rt)?cut:1.0_rt-cut; -lxm=amrex::min(amrex::max(Real(0.0),lxm),Real(1.0)); -} - -Reallxp; -if(ex(i,j,k+1)==Type::regular){ -lxp=1.0_rt; -}elseif(ex(i,j,k+1)==Type::covered){ -lxp=0.0_rt; -}else{ -++ncuts; -Realcut=(interx(i,j,k+1)-(problo[0]+i*dx[0]))*dxinv; -bcx+=cut; -bcz+=1.0_rt; -lxp=(levset(i,j,k+1)<0.0_rt)?cut:1.0_rt-cut; -lxp=amrex::min(amrex::max(Real(0.0),lxp),Real(1.0)); -} - -Reallzm; -if(ez(i,j,k)==Type::regular){ -lzm=1.0_rt; -}elseif(ez(i,j,k)==Type::covered){ -lzm=0.0_rt; -}else{ -++ncuts; -Realcut=(interz(i,j,k)-(problo[2]+k*dx[2]))*dzinv; -bcz+=cut; -lzm=(levset(i,j,k)<0.0_rt)?cut:1.0_rt-cut; -} - -Reallzp; -if(ez(i+1,j,k)==Type::regular){ -lzp=1.0_rt; -}elseif(ez(i+1,j,k)==Type::covered){ -lzp=0.0_rt; -}else{ -++ncuts; -Realcut=(interz(i+1,j,k)-(problo[2]+k*dx[2]))*dzinv; -bcx+=1.0_rt; -bcz+=cut; -lzp=(levset(i+1,j,k)<0.0_rt)?cut:1.0_rt-cut; -} - -if(ncuts>2){ -Gpu::Atomic::Add(dp,1); -} - -if((ncuts>2)||(lxm<=small&&lxp<=small&&lzm<=small&&lzp<=small)){ -apy(i,j,k)=0.0_rt; -fcy(i,j,k,0)=0.0_rt; -fcy(i,j,k,1)=0.0_rt; -m2y(i,j,k,0)=0.0_rt; -m2y(i,j,k,1)=0.0_rt; -m2y(i,j,k,2)=0.0_rt; -}elseif(lxm==lxp&&lzm==lzp){ -apy(i,j,k)=1.0_rt; -fcy(i,j,k,0)=0.0_rt; -fcy(i,j,k,1)=0.0_rt; -m2y(i,j,k,0)=1.0_rt/12._rt; -m2y(i,j,k,1)=1.0_rt/12._rt; -m2y(i,j,k,2)=0.0_rt; -}else{ -bcx=0.5_rt*bcx-0.5_rt; -bcz=0.5_rt*bcz-0.5_rt; -cut_face_2d(apy(i,j,k),fcy(i,j,k,0),fcy(i,j,k,1),//NOLINT(readability-suspicious-call-argument) -m2y(i,j,k,0),m2y(i,j,k,1),m2y(i,j,k,2), -lzm,lzp,lxm,lxp,bcx,bcz); -} - -if(apy(i,j,k)==0.0_rt){ -fy(i,j,k)=Type::covered; -}elseif(apy(i,j,k)==1.0_rt){ -fy(i,j,k)=Type::regular; -} -} -}); - -constBox&zbx=amrex::grow(amrex::surroundingNodes(bx,2),1); -AMREX_HOST_DEVICE_FOR_3D(zbx,i,j,k, -{ -if(fz(i,j,k)==Type::regular){ -apz(i,j,k)=1.0_rt; -fcz(i,j,k,0)=0.0_rt; -fcz(i,j,k,1)=0.0_rt; -m2z(i,j,k,0)=1.0_rt/12._rt; -m2z(i,j,k,1)=1.0_rt/12._rt; -m2z(i,j,k,2)=0.0_rt; -}elseif(fz(i,j,k)==Type::covered){ -apz(i,j,k)=0.0_rt; -fcz(i,j,k,0)=0.0_rt; -fcz(i,j,k,1)=0.0_rt; -m2z(i,j,k,0)=0.0_rt; -m2z(i,j,k,1)=0.0_rt; -m2z(i,j,k,2)=0.0_rt; -}else{ -intncuts=0; -Realbcx=0.0_rt; -Realbcy=0.0_rt; - -Reallxm; -if(ex(i,j,k)==Type::regular){ -lxm=1.0_rt; -}elseif(ex(i,j,k)==Type::covered){ -lxm=0.0_rt; -}else{ -++ncuts; -Realcut=(interx(i,j,k)-(problo[0]+i*dx[0]))*dxinv; -bcx+=cut; -lxm=(levset(i,j,k)<0.0_rt)?cut:1.0_rt-cut; -lxm=amrex::min(amrex::max(Real(0.0),lxm),Real(1.0)); -} - -Reallxp; -if(ex(i,j+1,k)==Type::regular){ -lxp=1.0_rt; -}elseif(ex(i,j+1,k)==Type::covered){ -lxp=0.0_rt; -}else{ -++ncuts; -Realcut=(interx(i,j+1,k)-(problo[0]+i*dx[0]))*dxinv; -bcx+=cut; -bcy+=1.0_rt; -lxp=(levset(i,j+1,k)<0.0_rt)?cut:1.0_rt-cut; -lxp=amrex::min(amrex::max(Real(0.0),lxp),Real(1.0)); -} - -Reallym; -if(ey(i,j,k)==Type::regular){ -lym=1.0_rt; -}elseif(ey(i,j,k)==Type::covered){ -lym=0.0_rt; -}else{ -++ncuts; -Realcut=(intery(i,j,k)-(problo[1]+j*dx[1]))*dyinv; -bcy+=cut; -lym=(levset(i,j,k)<0.0_rt)?cut:1.0_rt-cut; -} - -Reallyp; -if(ey(i+1,j,k)==Type::regular){ -lyp=1.0_rt; -}elseif(ey(i+1,j,k)==Type::covered){ -lyp=0.0_rt; -}else{ -++ncuts; -Realcut=(intery(i+1,j,k)-(problo[1]+j*dx[1]))*dyinv; -bcx+=1.0_rt; -bcy+=cut; -lyp=(levset(i+1,j,k)<0.0_rt)?cut:1.0_rt-cut; -} - -if(ncuts>2){ -Gpu::Atomic::Add(dp,1); -} - -if((ncuts>2)||(lxm<=small&&lxp<=small&&lym<=small&&lyp<=small)){ -apz(i,j,k)=0.0_rt; -fcz(i,j,k,0)=0.0_rt; -fcz(i,j,k,1)=0.0_rt; -m2z(i,j,k,0)=0.0_rt; -m2z(i,j,k,1)=0.0_rt; -m2z(i,j,k,2)=0.0_rt; -}elseif(lxm==lxp&&lym==lyp){ -apz(i,j,k)=1.0_rt; -fcz(i,j,k,0)=0.0_rt; -fcz(i,j,k,1)=0.0_rt; -m2z(i,j,k,0)=1.0_rt/12._rt; -m2z(i,j,k,1)=1.0_rt/12._rt; -m2z(i,j,k,2)=0.0_rt; -}else{ -bcx=0.5_rt*bcx-0.5_rt; -bcy=0.5_rt*bcy-0.5_rt; -cut_face_2d(apz(i,j,k),fcz(i,j,k,0),fcz(i,j,k,1),//NOLINT(readability-suspicious-call-argument) -m2z(i,j,k,0),m2z(i,j,k,1),m2z(i,j,k,2), -lym,lyp,lxm,lxp,bcx,bcy); -} - -if(apz(i,j,k)==0.0_rt){ -fz(i,j,k)=Type::covered; -}elseif(apz(i,j,k)==1.0_rt){ -fz(i,j,k)=Type::regular; -} -} -}); - -constBox&bxg1=amrex::grow(bx,1); -AMREX_HOST_DEVICE_FOR_3D(bxg1,i,j,k, -{ -if(cell(i,j,k).isSingleValued()){ -if(fx(i,j,k)==Type::covered&&fx(i+1,j,k)==Type::covered&& -fy(i,j,k)==Type::covered&&fy(i,j+1,k)==Type::covered&& -fz(i,j,k)==Type::covered&&fz(i,j,k+1)==Type::covered) -{ -cell(i,j,k).setCovered(); -} -elseif(fx(i,j,k)==Type::regular&&fx(i+1,j,k)==Type::regular&& -fy(i,j,k)==Type::regular&&fy(i,j+1,k)==Type::regular&& -fz(i,j,k)==Type::regular&&fz(i,j,k+1)==Type::regular) -{ -cell(i,j,k).setRegular(); -} -} -}); - -nmulticuts.copyToHost(); +} + +intbuild_faces(Boxconst&bx,Array4<EBCellFlag>const&cell, +Array4<Type_t>const&fx,Array4<Type_t>const&fy, +Array4<Type_t>const&fz,Array4<Type_tconst>const&ex, +Array4<Type_tconst>const&ey,Array4<Type_tconst>const&ez, +Array4<Real>const&levset,Array4<Realconst>const&interx, +Array4<Realconst>const&intery,Array4<Realconst>const&interz, +Array4<Real>const&apx,Array4<Real>const&apy, +Array4<Real>const&apz,Array4<Real>const&fcx, +Array4<Real>const&fcy,Array4<Real>const&fcz, +Array4<Real>const&m2x,Array4<Real>const&m2y, +Array4<Real>const&m2z, +GpuArray<Real,AMREX_SPACEDIM>const&dx, +GpuArray<Real,AMREX_SPACEDIM>const&problo, +boolcover_multiple_cuts)noexcept +{ +Gpu::Buffer<int>nmulticuts={0}; +int*hp=nmulticuts.hostData(); +int*dp=nmulticuts.data(); + +#ifdefAMREX_USE_FLOAT +constexprRealsmall=1.e-5_rt; +#else +constexprRealsmall=1.e-14; +#endif +constRealdxinv=1.0_rt/dx[0]; +constRealdyinv=1.0_rt/dx[1]; +constRealdzinv=1.0_rt/dx[2]; + +constBox&xbx=amrex::grow(amrex::surroundingNodes(bx,0),1); +AMREX_HOST_DEVICE_FOR_3D(xbx,i,j,k, +{ +if(fx(i,j,k)==Type::regular){ +apx(i,j,k)=1.0_rt; +fcx(i,j,k,0)=0.0_rt; +fcx(i,j,k,1)=0.0_rt; +m2x(i,j,k,0)=(1.0_rt/12._rt); +m2x(i,j,k,1)=(1.0_rt/12._rt); +m2x(i,j,k,2)=0.0_rt; +}elseif(fx(i,j,k)==Type::covered){ +apx(i,j,k)=0.0_rt; +fcx(i,j,k,0)=0.0_rt; +fcx(i,j,k,1)=0.0_rt; +m2x(i,j,k,0)=0.0_rt; +m2x(i,j,k,1)=0.0_rt; +m2x(i,j,k,2)=0.0_rt; +}else{ +intncuts=0; +Realbcy=0.0_rt; +Realbcz=0.0_rt; + +Reallym; +if(ey(i,j,k)==Type::regular){ +lym=1.0_rt; +}elseif(ey(i,j,k)==Type::covered){ +lym=0.0_rt; +}else{ +++ncuts; +Realcut=(intery(i,j,k)-(problo[1]+j*dx[1]))*dyinv; +bcy+=cut; +lym=(levset(i,j,k)<0.0_rt)?cut:1.0_rt-cut; +lym=amrex::min(amrex::max(Real(0.0),lym),Real(1.0)); +} + +Reallyp; +if(ey(i,j,k+1)==Type::regular){ +lyp=1.0_rt; +}elseif(ey(i,j,k+1)==Type::covered){ +lyp=0.0_rt; +}else{ +++ncuts; +Realcut=(intery(i,j,k+1)-(problo[1]+j*dx[1]))*dyinv; +bcy+=cut; +bcz+=1.0_rt; +lyp=(levset(i,j,k+1)<0.0_rt)?cut:1.0_rt-cut; +lyp=amrex::min(amrex::max(Real(0.0),lyp),Real(1.0)); +} + +Reallzm; +if(ez(i,j,k)==Type::regular){ +lzm=1.0_rt; +}elseif(ez(i,j,k)==Type::covered){ +lzm=0.0_rt; +}else{ +++ncuts; +Realcut=(interz(i,j,k)-(problo[2]+k*dx[2]))*dzinv; +bcz+=cut; +lzm=(levset(i,j,k)<0.0_rt)?cut:1.0_rt-cut; +lzm=amrex::min(amrex::max(Real(0.0),lzm),Real(1.0)); +} + +Reallzp; +if(ez(i,j+1,k)==Type::regular){ +lzp=1.0_rt; +}elseif(ez(i,j+1,k)==Type::covered){ +lzp=0.0_rt; +}else{ +++ncuts; +Realcut=(interz(i,j+1,k)-(problo[2]+k*dx[2]))*dzinv; +bcy+=1.0_rt; +bcz+=cut; +lzp=(levset(i,j+1,k)<0.0_rt)?cut:1.0_rt-cut; +} + +if(ncuts>2){ +Gpu::Atomic::Add(dp,1); +} + +if((ncuts>2)||(lym<=small&&lyp<=small&&lzm<=small&&lzp<=small)){ +apx(i,j,k)=0.0_rt; +fcx(i,j,k,0)=0.0_rt; +fcx(i,j,k,1)=0.0_rt; +m2x(i,j,k,0)=0.0_rt; +m2x(i,j,k,1)=0.0_rt; +m2x(i,j,k,2)=0.0_rt; +}elseif(lym==lyp&&lzm==lzp){ +apx(i,j,k)=1.0_rt; +fcx(i,j,k,0)=0.0_rt; +fcx(i,j,k,1)=0.0_rt; +m2x(i,j,k,0)=(1.0_rt/12._rt); +m2x(i,j,k,1)=(1.0_rt/12._rt); +m2x(i,j,k,2)=0.0_rt; +}else{ +bcy=0.5_rt*bcy-0.5_rt; +bcz=0.5_rt*bcz-0.5_rt; +cut_face_2d(apx(i,j,k),fcx(i,j,k,0),fcx(i,j,k,1),//NOLINT(readability-suspicious-call-argument) +m2x(i,j,k,0),m2x(i,j,k,1),m2x(i,j,k,2), +lzm,lzp,lym,lyp,bcy,bcz); +} + +if(apx(i,j,k)==0.0_rt){ +fx(i,j,k)=Type::covered; +}elseif(apx(i,j,k)==1.0_rt){ +fx(i,j,k)=Type::regular; +} +} +}); + +constBox&ybx=amrex::grow(amrex::surroundingNodes(bx,1),1); +AMREX_HOST_DEVICE_FOR_3D(ybx,i,j,k, +{ +if(fy(i,j,k)==Type::regular){ +apy(i,j,k)=1.0_rt; +fcy(i,j,k,0)=0.0_rt; +fcy(i,j,k,1)=0.0_rt; +m2y(i,j,k,0)=1.0_rt/12._rt; +m2y(i,j,k,1)=1.0_rt/12._rt; +m2y(i,j,k,2)=0.0_rt; +}elseif(fy(i,j,k)==Type::covered){ +apy(i,j,k)=0.0_rt; +fcy(i,j,k,0)=0.0_rt; +fcy(i,j,k,1)=0.0_rt; +m2y(i,j,k,0)=0.0_rt; +m2y(i,j,k,1)=0.0_rt; +m2y(i,j,k,2)=0.0_rt; +}else{ +intncuts=0; +Realbcx=0.0_rt; +Realbcz=0.0_rt; + +Reallxm; +if(ex(i,j,k)==Type::regular){ +lxm=1.0_rt; +}elseif(ex(i,j,k)==Type::covered){ +lxm=0.0_rt; +}else{ +++ncuts; +Realcut=(interx(i,j,k)-(problo[0]+i*dx[0]))*dxinv; +bcx+=cut; +lxm=(levset(i,j,k)<0.0_rt)?cut:1.0_rt-cut; +lxm=amrex::min(amrex::max(Real(0.0),lxm),Real(1.0)); +} + +Reallxp; +if(ex(i,j,k+1)==Type::regular){ +lxp=1.0_rt; +}elseif(ex(i,j,k+1)==Type::covered){ +lxp=0.0_rt; +}else{ +++ncuts; +Realcut=(interx(i,j,k+1)-(problo[0]+i*dx[0]))*dxinv; +bcx+=cut; +bcz+=1.0_rt; +lxp=(levset(i,j,k+1)<0.0_rt)?cut:1.0_rt-cut; +lxp=amrex::min(amrex::max(Real(0.0),lxp),Real(1.0)); +} + +Reallzm; +if(ez(i,j,k)==Type::regular){ +lzm=1.0_rt; +}elseif(ez(i,j,k)==Type::covered){ +lzm=0.0_rt; +}else{ +++ncuts; +Realcut=(interz(i,j,k)-(problo[2]+k*dx[2]))*dzinv; +bcz+=cut; +lzm=(levset(i,j,k)<0.0_rt)?cut:1.0_rt-cut; +} + +Reallzp; +if(ez(i+1,j,k)==Type::regular){ +lzp=1.0_rt; +}elseif(ez(i+1,j,k)==Type::covered){ +lzp=0.0_rt; +}else{ +++ncuts; +Realcut=(interz(i+1,j,k)-(problo[2]+k*dx[2]))*dzinv; +bcx+=1.0_rt; +bcz+=cut; +lzp=(levset(i+1,j,k)<0.0_rt)?cut:1.0_rt-cut; +} + +if(ncuts>2){ +Gpu::Atomic::Add(dp,1); +} + +if((ncuts>2)||(lxm<=small&&lxp<=small&&lzm<=small&&lzp<=small)){ +apy(i,j,k)=0.0_rt; +fcy(i,j,k,0)=0.0_rt; +fcy(i,j,k,1)=0.0_rt; +m2y(i,j,k,0)=0.0_rt; +m2y(i,j,k,1)=0.0_rt; +m2y(i,j,k,2)=0.0_rt; +}elseif(lxm==lxp&&lzm==lzp){ +apy(i,j,k)=1.0_rt; +fcy(i,j,k,0)=0.0_rt; +fcy(i,j,k,1)=0.0_rt; +m2y(i,j,k,0)=1.0_rt/12._rt; +m2y(i,j,k,1)=1.0_rt/12._rt; +m2y(i,j,k,2)=0.0_rt; +}else{ +bcx=0.5_rt*bcx-0.5_rt; +bcz=0.5_rt*bcz-0.5_rt; +cut_face_2d(apy(i,j,k),fcy(i,j,k,0),fcy(i,j,k,1),//NOLINT(readability-suspicious-call-argument) +m2y(i,j,k,0),m2y(i,j,k,1),m2y(i,j,k,2), +lzm,lzp,lxm,lxp,bcx,bcz); +} + +if(apy(i,j,k)==0.0_rt){ +fy(i,j,k)=Type::covered; +}elseif(apy(i,j,k)==1.0_rt){ +fy(i,j,k)=Type::regular; +} +} +}); + +constBox&zbx=amrex::grow(amrex::surroundingNodes(bx,2),1); +AMREX_HOST_DEVICE_FOR_3D(zbx,i,j,k, +{ +if(fz(i,j,k)==Type::regular){ +apz(i,j,k)=1.0_rt; +fcz(i,j,k,0)=0.0_rt; +fcz(i,j,k,1)=0.0_rt; +m2z(i,j,k,0)=1.0_rt/12._rt; +m2z(i,j,k,1)=1.0_rt/12._rt; +m2z(i,j,k,2)=0.0_rt; +}elseif(fz(i,j,k)==Type::covered){ +apz(i,j,k)=0.0_rt; +fcz(i,j,k,0)=0.0_rt; +fcz(i,j,k,1)=0.0_rt; +m2z(i,j,k,0)=0.0_rt; +m2z(i,j,k,1)=0.0_rt; +m2z(i,j,k,2)=0.0_rt; +}else{ +intncuts=0; +Realbcx=0.0_rt; +Realbcy=0.0_rt; + +Reallxm; +if(ex(i,j,k)==Type::regular){ +lxm=1.0_rt; +}elseif(ex(i,j,k)==Type::covered){ +lxm=0.0_rt; +}else{ +++ncuts; +Realcut=(interx(i,j,k)-(problo[0]+i*dx[0]))*dxinv; +bcx+=cut; +lxm=(levset(i,j,k)<0.0_rt)?cut:1.0_rt-cut; +lxm=amrex::min(amrex::max(Real(0.0),lxm),Real(1.0)); +} + +Reallxp; +if(ex(i,j+1,k)==Type::regular){ +lxp=1.0_rt; +}elseif(ex(i,j+1,k)==Type::covered){ +lxp=0.0_rt; +}else{ +++ncuts; +Realcut=(interx(i,j+1,k)-(problo[0]+i*dx[0]))*dxinv; +bcx+=cut; +bcy+=1.0_rt; +lxp=(levset(i,j+1,k)<0.0_rt)?cut:1.0_rt-cut; +lxp=amrex::min(amrex::max(Real(0.0),lxp),Real(1.0)); +} + +Reallym; +if(ey(i,j,k)==Type::regular){ +lym=1.0_rt; +}elseif(ey(i,j,k)==Type::covered){ +lym=0.0_rt; +}else{ +++ncuts; +Realcut=(intery(i,j,k)-(problo[1]+j*dx[1]))*dyinv; +bcy+=cut; +lym=(levset(i,j,k)<0.0_rt)?cut:1.0_rt-cut; +} + +Reallyp; +if(ey(i+1,j,k)==Type::regular){ +lyp=1.0_rt; +}elseif(ey(i+1,j,k)==Type::covered){ +lyp=0.0_rt; +}else{ +++ncuts; +Realcut=(intery(i+1,j,k)-(problo[1]+j*dx[1]))*dyinv; +bcx+=1.0_rt; +bcy+=cut; +lyp=(levset(i+1,j,k)<0.0_rt)?cut:1.0_rt-cut; +} + +if(ncuts>2){ +Gpu::Atomic::Add(dp,1); +} + +if((ncuts>2)||(lxm<=small&&lxp<=small&&lym<=small&&lyp<=small)){ +apz(i,j,k)=0.0_rt; +fcz(i,j,k,0)=0.0_rt; +fcz(i,j,k,1)=0.0_rt; +m2z(i,j,k,0)=0.0_rt; +m2z(i,j,k,1)=0.0_rt; +m2z(i,j,k,2)=0.0_rt; +}elseif(lxm==lxp&&lym==lyp){ +apz(i,j,k)=1.0_rt; +fcz(i,j,k,0)=0.0_rt; +fcz(i,j,k,1)=0.0_rt; +m2z(i,j,k,0)=1.0_rt/12._rt; +m2z(i,j,k,1)=1.0_rt/12._rt; +m2z(i,j,k,2)=0.0_rt; +}else{ +bcx=0.5_rt*bcx-0.5_rt; +bcy=0.5_rt*bcy-0.5_rt; +cut_face_2d(apz(i,j,k),fcz(i,j,k,0),fcz(i,j,k,1),//NOLINT(readability-suspicious-call-argument) +m2z(i,j,k,0),m2z(i,j,k,1),m2z(i,j,k,2), +lym,lyp,lxm,lxp,bcx,bcy); +} + +if(apz(i,j,k)==0.0_rt){ +fz(i,j,k)=Type::covered; +}elseif(apz(i,j,k)==1.0_rt){ +fz(i,j,k)=Type::regular; +} +} +}); + +constBox&bxg1=amrex::grow(bx,1); +AMREX_HOST_DEVICE_FOR_3D(bxg1,i,j,k, +{ +if(cell(i,j,k).isSingleValued()){ +if(fx(i,j,k)==Type::covered&&fx(i+1,j,k)==Type::covered&& +fy(i,j,k)==Type::covered&&fy(i,j+1,k)==Type::covered&& +fz(i,j,k)==Type::covered&&fz(i,j,k+1)==Type::covered) +{ +cell(i,j,k).setCovered(); +} +elseif(fx(i,j,k)==Type::regular&&fx(i+1,j,k)==Type::regular&& +fy(i,j,k)==Type::regular&&fy(i,j+1,k)==Type::regular&& +fz(i,j,k)==Type::regular&&fz(i,j,k+1)==Type::regular) +{ +cell(i,j,k).setRegular(); +} +} +}); -if(*hp>0){ -if(cover_multiple_cuts){ -Boxconst&nbxg1=amrex::surroundingNodes(bxg1); -AMREX_HOST_DEVICE_FOR_3D(nbxg1,i,j,k, -{ -if(levset(i,j,k)<Real(0.0)){ -boolzero_levset= -(xbx.contains(i,j-1,k-1) -&&fx(i,j-1,k-1)==Type::covered)|| -(xbx.contains(i,j,k-1) -&&fx(i,j,k-1)==Type::covered)|| -(xbx.contains(i,j-1,k) -&&fx(i,j-1,k)==Type::covered)|| -(xbx.contains(i,j,k) -&&fx(i,j,k)==Type::covered)|| -(ybx.contains(i-1,j,k-1) -&&fy(i-1,j,k-1)==Type::covered)|| -(ybx.contains(i,j,k-1) -&&fy(i,j,k-1)==Type::covered)|| -(ybx.contains(i-1,j,k) -&&fy(i-1,j,k)==Type::covered)|| -(ybx.contains(i,j,k) -&&fy(i,j,k)==Type::covered)|| -(zbx.contains(i-1,j-1,k) -&&fz(i-1,j-1,k)==Type::covered)|| -(zbx.contains(i,j-1,k) -&&fz(i,j-1,k)==Type::covered)|| -(zbx.contains(i-1,j,k) -&&fz(i-1,j,k)==Type::covered)|| -(zbx.contains(i,j,k) -&&fz(i,j,k)==Type::covered); -if(zero_levset){ -levset(i,j,k)=Real(0.0); -} -} -}); -}else{ -amrex::Abort("amrex::EB2::build_faces:morethan2cutsnotsupported"); -} -} - -return*hp; -} - -voidbuild_cells(Boxconst&bx,Array4<EBCellFlag>const&cell, -Array4<Type_t>const&fx,Array4<Type_t>const&fy, -Array4<Type_t>const&fz,Array4<Real>const&apx, -Array4<Real>const&apy,Array4<Real>const&apz, -Array4<Realconst>const&fcx,Array4<Realconst>const&fcy, -Array4<Realconst>const&fcz,Array4<Realconst>const&m2x, -Array4<Realconst>const&m2y,Array4<Realconst>const&m2z, -GpuArray<Real,AMREX_SPACEDIM>const&dx, -Array4<Real>const&vfrac,Array4<Real>const&vcent, -Array4<Real>const&barea,Array4<Real>const&bcent, -Array4<Real>const&bnorm,Array4<EBCellFlag>const&ctmp, -Array4<Real>const&levset,Realsmall_volfrac,Geometryconst&geom, -boolextend_domain_face,boolcover_multiple_cuts, -int&nsmallcells,int&nmulticuts)noexcept -{ -Gpu::Buffer<int>n_smallcell_multicuts={0,0}; -int*hp=n_smallcell_multicuts.hostData(); -int*dp=n_smallcell_multicuts.data(); - -constBox&bxg1=amrex::grow(bx,1); -AMREX_HOST_DEVICE_PARALLEL_FOR_3D(bxg1,i,j,k, -{ -boolis_small_cell=false; -boolis_multicut=false; -set_eb_cell(i,j,k,cell,apx,apy,apz,fcx,fcy,fcz,m2x,m2y,m2z, -dx,vfrac,vcent,barea,bcent,bnorm,small_volfrac, -is_small_cell,is_multicut); -if(is_small_cell){ -Gpu::Atomic::Add(dp,1); -} -if(is_multicut){ -Gpu::Atomic::Add(dp+1,1); -} -}); - -//setcellsintheextendedregiontocoveredifthe -//correspondingcellonthedomainfaceiscovered -if(extend_domain_face){ - -Boxgdomain=geom.Domain(); -for(intidim=0;idim<AMREX_SPACEDIM;++idim){ -if(geom.isPeriodic(idim)){ -gdomain.setSmall(idim,std::min(gdomain.smallEnd(idim),bxg1.smallEnd(idim))); -gdomain.setBig(idim,std::max(gdomain.bigEnd(idim),bxg1.bigEnd(idim))); -} -} - -if(!gdomain.contains(bxg1)){ -AMREX_HOST_DEVICE_FOR_3D(bxg1,i,j,k, -{ -constauto&dlo=gdomain.loVect(); -constauto&dhi=gdomain.hiVect(); - -//findthecell(ii,jj,kk)onthecorr.domainface -//thiswouldhavealreadybeensettocorrectvalue -boolin_extended_domain=false; -intii=i; -intjj=j; -intkk=k; -if(i<dlo[0]){ -in_extended_domain=true; -ii=dlo[0]; -} -elseif(i>dhi[0]){ -in_extended_domain=true; -ii=dhi[0]; -} - -if(j<dlo[1]){ -in_extended_domain=true; -jj=dlo[1]; -} -elseif(j>dhi[1]){ -in_extended_domain=true; -jj=dhi[1]; -} - -if(k<dlo[2]){ -in_extended_domain=true; -kk=dlo[2]; -} -elseif(k>dhi[2]){ -in_extended_domain=true; -kk=dhi[2]; -} - -//setcellinextendableregiontocoveredifnecessary -if(in_extended_domain&&(!cell(i,j,k).isCovered()) -&&cell(ii,jj,kk).isCovered()) -{ -Gpu::Atomic::Add(dp,1); -set_covered(i,j,k,cell,vfrac,vcent,barea,bcent,bnorm); -} -}); -} -} - -n_smallcell_multicuts.copyToHost(); -nsmallcells+=hp[0]; -nmulticuts+=hp[1]; - -Boxconst&nbxg1=amrex::surroundingNodes(bxg1); -Boxconst&bxg1x=amrex::surroundingNodes(bxg1,0); -Boxconst&bxg1y=amrex::surroundingNodes(bxg1,1); -Boxconst&bxg1z=amrex::surroundingNodes(bxg1,2); -AMREX_HOST_DEVICE_FOR_3D(nbxg1,i,j,k, -{ -if(levset(i,j,k)<Real(0.0)){ -boolzero_levset= -(bxg1.contains(i-1,j-1,k-1) -&&cell(i-1,j-1,k-1).isCovered())|| -(bxg1.contains(i,j-1,k-1) -&&cell(i,j-1,k-1).isCovered())|| -(bxg1.contains(i-1,j,k-1) -&&cell(i-1,j,k-1).isCovered())|| -(bxg1.contains(i,j,k-1) -&&cell(i,j,k-1).isCovered())|| -(bxg1.contains(i-1,j-1,k) -&&cell(i-1,j-1,k).isCovered())|| -(bxg1.contains(i,j-1,k) -&&cell(i,j-1,k).isCovered())|| -(bxg1.contains(i-1,j,k) -&&cell(i-1,j,k).isCovered())|| -(bxg1.contains(i,j,k) -&&cell(i,j,k).isCovered())|| -(bxg1x.contains(i,j-1,k-1) -&&fx(i,j-1,k-1)==Type::covered)|| -(bxg1x.contains(i,j,k-1) -&&fx(i,j,k-1)==Type::covered)|| -(bxg1x.contains(i,j-1,k) -&&fx(i,j-1,k)==Type::covered)|| -(bxg1x.contains(i,j,k) -&&fx(i,j,k)==Type::covered)|| -(bxg1y.contains(i-1,j,k-1) -&&fy(i-1,j,k-1)==Type::covered)|| -(bxg1y.contains(i,j,k-1) -&&fy(i,j,k-1)==Type::covered)|| -(bxg1y.contains(i-1,j,k) -&&fy(i-1,j,k)==Type::covered)|| -(bxg1y.contains(i,j,k) -&&fy(i,j,k)==Type::covered)|| -(bxg1z.contains(i-1,j-1,k) -&&fz(i-1,j-1,k)==Type::covered)|| -(bxg1z.contains(i,j-1,k) -&&fz(i,j-1,k)==Type::covered)|| -(bxg1z.contains(i-1,j,k) -&&fz(i-1,j,k)==Type::covered)|| -(bxg1z.contains(i,j,k) -&&fz(i,j,k)==Type::covered); -if(zero_levset){ -levset(i,j,k)=Real(0.0); -} -} -}); - -if(nsmallcells>0||nmulticuts>0){ -if(!cover_multiple_cuts&&nmulticuts>0){ -amrex::Abort("amrex::EB2::build_cells:multi-cutsnotsupported"); -} -return; -}else{ -set_connection_flags(bx,bxg1,cell,ctmp,fx,fy,fz); -} -} - -voidset_connection_flags(Boxconst&bx, -Boxconst&bxg1,Array4<EBCellFlag>const&cell, -Array4<EBCellFlag>const&ctmp,Array4<Type_t>const&fx, -Array4<Type_t>const&fy,Array4<Type_t>const&fz)noexcept -{ -//Buildneighbors.Bydefaultall26neighborsarealreadyset. -AMREX_HOST_DEVICE_FOR_3D(bxg1,i,j,k, -{ -if(cell(i,j,k).isCovered()){ -cell(i,j,k).setDisconnected(); -}else{ -autoflg=cell(i,j,k); - -if(fx(i,j,k)==Type::covered){ -flg.setDisconnected(-1,0,0); -} -if(fx(i+1,j,k)==Type::covered){ -flg.setDisconnected(1,0,0); -} -if(fy(i,j,k)==Type::covered){ -flg.setDisconnected(0,-1,0); -} -if(fy(i,j+1,k)==Type::covered){ -flg.setDisconnected(0,1,0); -} -if(fz(i,j,k)==Type::covered){ -flg.setDisconnected(0,0,-1); -} -if(fz(i,j,k+1)==Type::covered){ -flg.setDisconnected(0,0,1); -} - -//x-y -if((fx(i,j,k)==Type::covered||fy(i-1,j,k)==Type::covered)&& -(fx(i,j-1,k)==Type::covered||fy(i,j,k)==Type::covered)) -{ -flg.setDisconnected(-1,-1,0); -} - -if((fx(i+1,j,k)==Type::covered||fy(i+1,j,k)==Type::covered)&& -(fx(i+1,j-1,k)==Type::covered||fy(i,j,k)==Type::covered)) -{ -flg.setDisconnected(1,-1,0); -} - -if((fx(i,j,k)==Type::covered||fy(i-1,j+1,k)==Type::covered)&& -(fx(i,j+1,k)==Type::covered||fy(i,j+1,k)==Type::covered)) -{ -flg.setDisconnected(-1,1,0); -} - -if((fx(i+1,j,k)==Type::covered||fy(i+1,j+1,k)==Type::covered)&& -(fx(i+1,j+1,k)==Type::covered||fy(i,j+1,k)==Type::covered)) -{ -flg.setDisconnected(1,1,0); -} - -//x-z -if((fx(i,j,k)==Type::covered||fz(i-1,j,k)==Type::covered)&& -(fx(i,j,k-1)==Type::covered||fz(i,j,k)==Type::covered)) -{ -flg.setDisconnected(-1,0,-1); -} - -if((fx(i+1,j,k)==Type::covered||fz(i+1,j,k)==Type::covered)&& -(fx(i+1,j,k-1)==Type::covered||fz(i,j,k)==Type::covered)) -{ -flg.setDisconnected(1,0,-1); -} - -if((fx(i,j,k)==Type::covered||fz(i-1,j,k+1)==Type::covered)&& -(fx(i,j,k+1)==Type::covered||fz(i,j,k+1)==Type::covered)) -{ -flg.setDisconnected(-1,0,1); -} - -if((fx(i+1,j,k)==Type::covered||fz(i+1,j,k+1)==Type::covered)&& -(fx(i+1,j,k+1)==Type::covered||fz(i,j,k+1)==Type::covered)) -{ -flg.setDisconnected(1,0,1); -} - -//y-z -if((fy(i,j,k)==Type::covered||fz(i,j-1,k)==Type::covered)&& -(fy(i,j,k-1)==Type::covered||fz(i,j,k)==Type::covered)) -{ -flg.setDisconnected(0,-1,-1); -} - -if((fy(i,j+1,k)==Type::covered||fz(i,j+1,k)==Type::covered)&& -(fy(i,j+1,k-1)==Type::covered||fz(i,j,k)==Type::covered)) -{ -flg.setDisconnected(0,1,-1); -} - -if((fy(i,j,k)==Type::covered||fz(i,j-1,k+1)==Type::covered)&& -(fy(i,j,k+1)==Type::covered||fz(i,j,k+1)==Type::covered)) -{ -flg.setDisconnected(0,-1,1); -} - -if((fy(i,j+1,k)==Type::covered||fz(i,j+1,k+1)==Type::covered)&& -(fy(i,j+1,k+1)==Type::covered||fz(i,j,k+1)==Type::covered)) -{ -flg.setDisconnected(0,1,1); -} - -cell(i,j,k)=flg; -} - -ctmp(i,j,k)=cell(i,j,k); -}); - -AMREX_HOST_DEVICE_FOR_3D(bx,i,j,k, -{ -if(!cell(i,j,k).isCovered()){ -autotmpflg=ctmp(i,j,k); -autonewflg=tmpflg; - -//-1,-1,-1corner -if((tmpflg.isDisconnected(-1,0,0)||ctmp(i-1,j,k).isDisconnected(0,-1,-1))&& -(tmpflg.isDisconnected(0,-1,0)||ctmp(i,j-1,k).isDisconnected(-1,0,-1))&& -(tmpflg.isDisconnected(0,0,-1)||ctmp(i,j,k-1).isDisconnected(-1,-1,0))) -{ -newflg.setDisconnected(-1,-1,-1); -} - -//1,-1,-1corner -if((tmpflg.isDisconnected(1,0,0)||ctmp(i+1,j,k).isDisconnected(0,-1,-1))&& -(tmpflg.isDisconnected(0,-1,0)||ctmp(i,j-1,k).isDisconnected(1,0,-1))&& -(tmpflg.isDisconnected(0,0,-1)||ctmp(i,j,k-1).isDisconnected(1,-1,0))) -{ -newflg.setDisconnected(1,-1,-1); -} - -//-1,1,-1corner -if((tmpflg.isDisconnected(-1,0,0)||ctmp(i-1,j,k).isDisconnected(0,1,-1))&& -(tmpflg.isDisconnected(0,1,0)||ctmp(i,j+1,k).isDisconnected(-1,0,-1))&& -(tmpflg.isDisconnected(0,0,-1)||ctmp(i,j,k-1).isDisconnected(-1,1,0))) -{ -newflg.setDisconnected(-1,1,-1); -} - -//1,1,-1corner -if((tmpflg.isDisconnected(1,0,0)||ctmp(i+1,j,k).isDisconnected(0,1,-1))&& -(tmpflg.isDisconnected(0,1,0)||ctmp(i,j+1,k).isDisconnected(1,0,-1))&& -(tmpflg.isDisconnected(0,0,-1)||ctmp(i,j,k-1).isDisconnected(1,1,0))) -{ -newflg.setDisconnected(1,1,-1); -} - -//-1,-1,1corner -if((tmpflg.isDisconnected(-1,0,0)||ctmp(i-1,j,k).isDisconnected(0,-1,1))&& -(tmpflg.isDisconnected(0,-1,0)||ctmp(i,j-1,k).isDisconnected(-1,0,1))&& -(tmpflg.isDisconnected(0,0,1)||ctmp(i,j,k+1).isDisconnected(-1,-1,0))) -{ -newflg.setDisconnected(-1,-1,1); -} - -//1,-1,1corner -if((tmpflg.isDisconnected(1,0,0)||ctmp(i+1,j,k).isDisconnected(0,-1,1))&& -(tmpflg.isDisconnected(0,-1,0)||ctmp(i,j-1,k).isDisconnected(1,0,1))&& -(tmpflg.isDisconnected(0,0,1)||ctmp(i,j,k+1).isDisconnected(1,-1,0))) -{ -newflg.setDisconnected(1,-1,1); -} - -//-1,1,1corner -if((tmpflg.isDisconnected(-1,0,0)||ctmp(i-1,j,k).isDisconnected(0,1,1))&& -(tmpflg.isDisconnected(0,1,0)||ctmp(i,j+1,k).isDisconnected(-1,0,1))&& -(tmpflg.isDisconnected(0,0,1)||ctmp(i,j,k+1).isDisconnected(-1,1,0))) -{ -newflg.setDisconnected(-1,1,1); -} - -//1,1,1corner -if((tmpflg.isDisconnected(1,0,0)||ctmp(i+1,j,k).isDisconnected(0,1,1))&& -(tmpflg.isDisconnected(0,1,0)||ctmp(i,j+1,k).isDisconnected(1,0,1))&& -(tmpflg.isDisconnected(0,0,1)||ctmp(i,j,k+1).isDisconnected(1,1,0))) -{ -newflg.setDisconnected(1,1,1); -} - -cell(i,j,k)=newflg; -} -}); -} - +nmulticuts.copyToHost(); + +if(*hp>0){ +if(cover_multiple_cuts){ +Boxconst&nbxg1=amrex::surroundingNodes(bxg1); +AMREX_HOST_DEVICE_FOR_3D(nbxg1,i,j,k, +{ +if(levset(i,j,k)<Real(0.0)){ +boolzero_levset= +(xbx.contains(i,j-1,k-1) +&&fx(i,j-1,k-1)==Type::covered)|| +(xbx.contains(i,j,k-1) +&&fx(i,j,k-1)==Type::covered)|| +(xbx.contains(i,j-1,k) +&&fx(i,j-1,k)==Type::covered)|| +(xbx.contains(i,j,k) +&&fx(i,j,k)==Type::covered)|| +(ybx.contains(i-1,j,k-1) +&&fy(i-1,j,k-1)==Type::covered)|| +(ybx.contains(i,j,k-1) +&&fy(i,j,k-1)==Type::covered)|| +(ybx.contains(i-1,j,k) +&&fy(i-1,j,k)==Type::covered)|| +(ybx.contains(i,j,k) +&&fy(i,j,k)==Type::covered)|| +(zbx.contains(i-1,j-1,k) +&&fz(i-1,j-1,k)==Type::covered)|| +(zbx.contains(i,j-1,k) +&&fz(i,j-1,k)==Type::covered)|| +(zbx.contains(i-1,j,k) +&&fz(i-1,j,k)==Type::covered)|| +(zbx.contains(i,j,k) +&&fz(i,j,k)==Type::covered); +if(zero_levset){ +levset(i,j,k)=Real(0.0); +} +} +}); +}else{ +amrex::Abort("amrex::EB2::build_faces:morethan2cutsnotsupported"); +} +} + +return*hp; +} + +voidbuild_cells(Boxconst&bx,Array4<EBCellFlag>const&cell, +Array4<Type_t>const&fx,Array4<Type_t>const&fy, +Array4<Type_t>const&fz,Array4<Real>const&apx, +Array4<Real>const&apy,Array4<Real>const&apz, +Array4<Realconst>const&fcx,Array4<Realconst>const&fcy, +Array4<Realconst>const&fcz,Array4<Realconst>const&m2x, +Array4<Realconst>const&m2y,Array4<Realconst>const&m2z, +GpuArray<Real,AMREX_SPACEDIM>const&dx, +Array4<Real>const&vfrac,Array4<Real>const&vcent, +Array4<Real>const&barea,Array4<Real>const&bcent, +Array4<Real>const&bnorm,Array4<EBCellFlag>const&ctmp, +Array4<Real>const&levset,Realsmall_volfrac,Geometryconst&geom, +boolextend_domain_face,boolcover_multiple_cuts, +int&nsmallcells,int&nmulticuts)noexcept +{ +Gpu::Buffer<int>n_smallcell_multicuts={0,0}; +int*hp=n_smallcell_multicuts.hostData(); +int*dp=n_smallcell_multicuts.data(); + +constBox&bxg1=amrex::grow(bx,1); +AMREX_HOST_DEVICE_PARALLEL_FOR_3D(bxg1,i,j,k, +{ +boolis_small_cell=false; +boolis_multicut=false; +set_eb_cell(i,j,k,cell,apx,apy,apz,fcx,fcy,fcz,m2x,m2y,m2z, +dx,vfrac,vcent,barea,bcent,bnorm,small_volfrac, +is_small_cell,is_multicut); +if(is_small_cell){ +Gpu::Atomic::Add(dp,1); +} +if(is_multicut){ +Gpu::Atomic::Add(dp+1,1); +} +}); + +//setcellsintheextendedregiontocoveredifthe +//correspondingcellonthedomainfaceiscovered +if(extend_domain_face){ + +Boxgdomain=geom.Domain(); +for(intidim=0;idim<AMREX_SPACEDIM;++idim){ +if(geom.isPeriodic(idim)){ +gdomain.setSmall(idim,std::min(gdomain.smallEnd(idim),bxg1.smallEnd(idim))); +gdomain.setBig(idim,std::max(gdomain.bigEnd(idim),bxg1.bigEnd(idim))); +} +} + +if(!gdomain.contains(bxg1)){ +AMREX_HOST_DEVICE_FOR_3D(bxg1,i,j,k, +{ +constauto&dlo=gdomain.loVect(); +constauto&dhi=gdomain.hiVect(); + +//findthecell(ii,jj,kk)onthecorr.domainface +//thiswouldhavealreadybeensettocorrectvalue +boolin_extended_domain=false; +intii=i; +intjj=j; +intkk=k; +if(i<dlo[0]){ +in_extended_domain=true; +ii=dlo[0]; +} +elseif(i>dhi[0]){ +in_extended_domain=true; +ii=dhi[0]; +} + +if(j<dlo[1]){ +in_extended_domain=true; +jj=dlo[1]; +} +elseif(j>dhi[1]){ +in_extended_domain=true; +jj=dhi[1]; +} + +if(k<dlo[2]){ +in_extended_domain=true; +kk=dlo[2]; +} +elseif(k>dhi[2]){ +in_extended_domain=true; +kk=dhi[2]; +} + +//setcellinextendableregiontocoveredifnecessary +if(in_extended_domain&&(!cell(i,j,k).isCovered()) +&&cell(ii,jj,kk).isCovered()) +{ +Gpu::Atomic::Add(dp,1); +set_covered(i,j,k,cell,vfrac,vcent,barea,bcent,bnorm); +} +}); +} +} + +n_smallcell_multicuts.copyToHost(); +nsmallcells+=hp[0]; +nmulticuts+=hp[1]; + +Boxconst&nbxg1=amrex::surroundingNodes(bxg1); +Boxconst&bxg1x=amrex::surroundingNodes(bxg1,0); +Boxconst&bxg1y=amrex::surroundingNodes(bxg1,1); +Boxconst&bxg1z=amrex::surroundingNodes(bxg1,2); +AMREX_HOST_DEVICE_FOR_3D(nbxg1,i,j,k, +{ +if(levset(i,j,k)<Real(0.0)){ +boolzero_levset= +(bxg1.contains(i-1,j-1,k-1) +&&cell(i-1,j-1,k-1).isCovered())|| +(bxg1.contains(i,j-1,k-1) +&&cell(i,j-1,k-1).isCovered())|| +(bxg1.contains(i-1,j,k-1) +&&cell(i-1,j,k-1).isCovered())|| +(bxg1.contains(i,j,k-1) +&&cell(i,j,k-1).isCovered())|| +(bxg1.contains(i-1,j-1,k) +&&cell(i-1,j-1,k).isCovered())|| +(bxg1.contains(i,j-1,k) +&&cell(i,j-1,k).isCovered())|| +(bxg1.contains(i-1,j,k) +&&cell(i-1,j,k).isCovered())|| +(bxg1.contains(i,j,k) +&&cell(i,j,k).isCovered())|| +(bxg1x.contains(i,j-1,k-1) +&&fx(i,j-1,k-1)==Type::covered)|| +(bxg1x.contains(i,j,k-1) +&&fx(i,j,k-1)==Type::covered)|| +(bxg1x.contains(i,j-1,k) +&&fx(i,j-1,k)==Type::covered)|| +(bxg1x.contains(i,j,k) +&&fx(i,j,k)==Type::covered)|| +(bxg1y.contains(i-1,j,k-1) +&&fy(i-1,j,k-1)==Type::covered)|| +(bxg1y.contains(i,j,k-1) +&&fy(i,j,k-1)==Type::covered)|| +(bxg1y.contains(i-1,j,k) +&&fy(i-1,j,k)==Type::covered)|| +(bxg1y.contains(i,j,k) +&&fy(i,j,k)==Type::covered)|| +(bxg1z.contains(i-1,j-1,k) +&&fz(i-1,j-1,k)==Type::covered)|| +(bxg1z.contains(i,j-1,k) +&&fz(i,j-1,k)==Type::covered)|| +(bxg1z.contains(i-1,j,k) +&&fz(i-1,j,k)==Type::covered)|| +(bxg1z.contains(i,j,k) +&&fz(i,j,k)==Type::covered); +if(zero_levset){ +levset(i,j,k)=Real(0.0); +} +} +}); + +if(nsmallcells>0||nmulticuts>0){ +if(!cover_multiple_cuts&&nmulticuts>0){ +amrex::Abort("amrex::EB2::build_cells:multi-cutsnotsupported"); +} +return; +}else{ +set_connection_flags(bx,bxg1,cell,ctmp,fx,fy,fz); +} +} + +voidset_connection_flags(Boxconst&bx, +Boxconst&bxg1,Array4<EBCellFlag>const&cell, +Array4<EBCellFlag>const&ctmp,Array4<Type_t>const&fx, +Array4<Type_t>const&fy,Array4<Type_t>const&fz)noexcept +{ +//Buildneighbors.Bydefaultall26neighborsarealreadyset. +AMREX_HOST_DEVICE_FOR_3D(bxg1,i,j,k, +{ +if(cell(i,j,k).isCovered()){ +cell(i,j,k).setDisconnected(); +}else{ +autoflg=cell(i,j,k); + +if(fx(i,j,k)==Type::covered){ +flg.setDisconnected(-1,0,0); +} +if(fx(i+1,j,k)==Type::covered){ +flg.setDisconnected(1,0,0); +} +if(fy(i,j,k)==Type::covered){ +flg.setDisconnected(0,-1,0); +} +if(fy(i,j+1,k)==Type::covered){ +flg.setDisconnected(0,1,0); +} +if(fz(i,j,k)==Type::covered){ +flg.setDisconnected(0,0,-1); +} +if(fz(i,j,k+1)==Type::covered){ +flg.setDisconnected(0,0,1); +} + +//x-y +if((fx(i,j,k)==Type::covered||fy(i-1,j,k)==Type::covered)&& +(fx(i,j-1,k)==Type::covered||fy(i,j,k)==Type::covered)) +{ +flg.setDisconnected(-1,-1,0); +} + +if((fx(i+1,j,k)==Type::covered||fy(i+1,j,k)==Type::covered)&& +(fx(i+1,j-1,k)==Type::covered||fy(i,j,k)==Type::covered)) +{ +flg.setDisconnected(1,-1,0); +} + +if((fx(i,j,k)==Type::covered||fy(i-1,j+1,k)==Type::covered)&& +(fx(i,j+1,k)==Type::covered||fy(i,j+1,k)==Type::covered)) +{ +flg.setDisconnected(-1,1,0); +} + +if((fx(i+1,j,k)==Type::covered||fy(i+1,j+1,k)==Type::covered)&& +(fx(i+1,j+1,k)==Type::covered||fy(i,j+1,k)==Type::covered)) +{ +flg.setDisconnected(1,1,0); +} + +//x-z +if((fx(i,j,k)==Type::covered||fz(i-1,j,k)==Type::covered)&& +(fx(i,j,k-1)==Type::covered||fz(i,j,k)==Type::covered)) +{ +flg.setDisconnected(-1,0,-1); +} + +if((fx(i+1,j,k)==Type::covered||fz(i+1,j,k)==Type::covered)&& +(fx(i+1,j,k-1)==Type::covered||fz(i,j,k)==Type::covered)) +{ +flg.setDisconnected(1,0,-1); +} + +if((fx(i,j,k)==Type::covered||fz(i-1,j,k+1)==Type::covered)&& +(fx(i,j,k+1)==Type::covered||fz(i,j,k+1)==Type::covered)) +{ +flg.setDisconnected(-1,0,1); +} + +if((fx(i+1,j,k)==Type::covered||fz(i+1,j,k+1)==Type::covered)&& +(fx(i+1,j,k+1)==Type::covered||fz(i,j,k+1)==Type::covered)) +{ +flg.setDisconnected(1,0,1); +} + +//y-z +if((fy(i,j,k)==Type::covered||fz(i,j-1,k)==Type::covered)&& +(fy(i,j,k-1)==Type::covered||fz(i,j,k)==Type::covered)) +{ +flg.setDisconnected(0,-1,-1); +} + +if((fy(i,j+1,k)==Type::covered||fz(i,j+1,k)==Type::covered)&& +(fy(i,j+1,k-1)==Type::covered||fz(i,j,k)==Type::covered)) +{ +flg.setDisconnected(0,1,-1); +} + +if((fy(i,j,k)==Type::covered||fz(i,j-1,k+1)==Type::covered)&& +(fy(i,j,k+1)==Type::covered||fz(i,j,k+1)==Type::covered)) +{ +flg.setDisconnected(0,-1,1); +} + +if((fy(i,j+1,k)==Type::covered||fz(i,j+1,k+1)==Type::covered)&& +(fy(i,j+1,k+1)==Type::covered||fz(i,j,k+1)==Type::covered)) +{ +flg.setDisconnected(0,1,1); +} + +cell(i,j,k)=flg; +} + +ctmp(i,j,k)=cell(i,j,k); +}); + +AMREX_HOST_DEVICE_FOR_3D(bx,i,j,k, +{ +if(!cell(i,j,k).isCovered()){ +autotmpflg=ctmp(i,j,k); +autonewflg=tmpflg; + +//-1,-1,-1corner +if((tmpflg.isDisconnected(-1,0,0)||ctmp(i-1,j,k).isDisconnected(0,-1,-1))&& +(tmpflg.isDisconnected(0,-1,0)||ctmp(i,j-1,k).isDisconnected(-1,0,-1))&& +(tmpflg.isDisconnected(0,0,-1)||ctmp(i,j,k-1).isDisconnected(-1,-1,0))) +{ +newflg.setDisconnected(-1,-1,-1); +} + +//1,-1,-1corner +if((tmpflg.isDisconnected(1,0,0)||ctmp(i+1,j,k).isDisconnected(0,-1,-1))&& +(tmpflg.isDisconnected(0,-1,0)||ctmp(i,j-1,k).isDisconnected(1,0,-1))&& +(tmpflg.isDisconnected(0,0,-1)||ctmp(i,j,k-1).isDisconnected(1,-1,0))) +{ +newflg.setDisconnected(1,-1,-1); +} + +//-1,1,-1corner +if((tmpflg.isDisconnected(-1,0,0)||ctmp(i-1,j,k).isDisconnected(0,1,-1))&& +(tmpflg.isDisconnected(0,1,0)||ctmp(i,j+1,k).isDisconnected(-1,0,-1))&& +(tmpflg.isDisconnected(0,0,-1)||ctmp(i,j,k-1).isDisconnected(-1,1,0))) +{ +newflg.setDisconnected(-1,1,-1); +} + +//1,1,-1corner +if((tmpflg.isDisconnected(1,0,0)||ctmp(i+1,j,k).isDisconnected(0,1,-1))&& +(tmpflg.isDisconnected(0,1,0)||ctmp(i,j+1,k).isDisconnected(1,0,-1))&& +(tmpflg.isDisconnected(0,0,-1)||ctmp(i,j,k-1).isDisconnected(1,1,0))) +{ +newflg.setDisconnected(1,1,-1); +} + +//-1,-1,1corner +if((tmpflg.isDisconnected(-1,0,0)||ctmp(i-1,j,k).isDisconnected(0,-1,1))&& +(tmpflg.isDisconnected(0,-1,0)||ctmp(i,j-1,k).isDisconnected(-1,0,1))&& +(tmpflg.isDisconnected(0,0,1)||ctmp(i,j,k+1).isDisconnected(-1,-1,0))) +{ +newflg.setDisconnected(-1,-1,1); +} + +//1,-1,1corner +if((tmpflg.isDisconnected(1,0,0)||ctmp(i+1,j,k).isDisconnected(0,-1,1))&& +(tmpflg.isDisconnected(0,-1,0)||ctmp(i,j-1,k).isDisconnected(1,0,1))&& +(tmpflg.isDisconnected(0,0,1)||ctmp(i,j,k+1).isDisconnected(1,-1,0))) +{ +newflg.setDisconnected(1,-1,1); +} + +//-1,1,1corner +if((tmpflg.isDisconnected(-1,0,0)||ctmp(i-1,j,k).isDisconnected(0,1,1))&& +(tmpflg.isDisconnected(0,1,0)||ctmp(i,j+1,k).isDisconnected(-1,0,1))&& +(tmpflg.isDisconnected(0,0,1)||ctmp(i,j,k+1).isDisconnected(-1,1,0))) +{ +newflg.setDisconnected(-1,1,1); +} + +//1,1,1corner +if((tmpflg.isDisconnected(1,0,0)||ctmp(i+1,j,k).isDisconnected(0,1,1))&& +(tmpflg.isDisconnected(0,1,0)||ctmp(i,j+1,k).isDisconnected(1,0,1))&& +(tmpflg.isDisconnected(0,0,1)||ctmp(i,j,k+1).isDisconnected(1,1,0))) +{ +newflg.setDisconnected(1,1,1); +} + +cell(i,j,k)=newflg; +} +}); } + +} diff --git a/amrex/docs_xml/doxygen/namespaceamrex_1_1EB2.xml b/amrex/docs_xml/doxygen/namespaceamrex_1_1EB2.xml index 387413cfe4..7b125eb073 100644 --- a/amrex/docs_xml/doxygen/namespaceamrex_1_1EB2.xml +++ b/amrex/docs_xml/doxygen/namespaceamrex_1_1EB2.xml @@ -517,7 +517,7 @@ - + void @@ -602,7 +602,7 @@ - + void @@ -631,7 +631,7 @@ - + AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void @@ -964,7 +964,7 @@ - + void @@ -1089,7 +1089,7 @@ - + void @@ -1130,7 +1130,7 @@ - + AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void