LCOV - code coverage report
Current view: top level - include/mesh - NekVolumeCoupling.h (source / functions) Hit Total Coverage
Test: neams-th-coe/cardinal: be601f Lines: 1 1 100.0 %
Date: 2025-07-15 20:50:38 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       1             : /********************************************************************/
       2             : /*                  SOFTWARE COPYRIGHT NOTIFICATION                 */
       3             : /*                             Cardinal                             */
       4             : /*                                                                  */
       5             : /*                  (c) 2021 UChicago Argonne, LLC                  */
       6             : /*                        ALL RIGHTS RESERVED                       */
       7             : /*                                                                  */
       8             : /*                 Prepared by UChicago Argonne, LLC                */
       9             : /*               Under Contract No. DE-AC02-06CH11357               */
      10             : /*                With the U. S. Department of Energy               */
      11             : /*                                                                  */
      12             : /*             Prepared by Battelle Energy Alliance, LLC            */
      13             : /*               Under Contract No. DE-AC07-05ID14517               */
      14             : /*                With the U. S. Department of Energy               */
      15             : /*                                                                  */
      16             : /*                 See LICENSE for full restrictions                */
      17             : /********************************************************************/
      18             : 
      19             : #pragma once
      20             : 
      21             : #include "CardinalUtils.h"
      22             : 
      23             : /**
      24             :  * Store the geometry and parallel information related to the volume mesh coupling.
      25             :  * Unless otherwise noted, all information in here is indexed according to the
      26             :  * NekRS mesh, and *not* the mesh mirror (this is only relevant for 'exact' mesh mirrors,
      27             :  * where we build N^2 or N^3 MOOSE elements for each NekRS element).
      28             :  */
      29             : class NekVolumeCoupling
      30             : {
      31             : public:
      32             :   /**
      33             :    * nekRS process owning the global element in the data transfer mesh
      34             :    * @param[in] elem_id element ID
      35             :    * @return nekRS process ID
      36             :    */
      37     8371139 :   int processor_id(const int elem_id) const { return process[elem_id]; }
      38             : 
      39             :   // process-local element IDS (for all elements)
      40             :   std::vector<int> element;
      41             : 
      42             :   // process owning each element (for all elements)
      43             :   std::vector<int> process;
      44             : 
      45             :   // sideset IDs corresponding to the faces of each element (for all elements)
      46             :   std::vector<int> boundary;
      47             : 
      48             :   // number of elements owned by each process
      49             :   std::vector<int> counts;
      50             : 
      51             :   // number of MOOSE mirror elements owned by each process
      52             :   std::vector<int> mirror_counts;
      53             : 
      54             :   // number of faces on a boundary of interest for each element
      55             :   std::vector<int> n_faces_on_boundary;
      56             : 
      57             :   // number of coupling elements owned by this process
      58             :   int n_elems = 0;
      59             : 
      60             :   // total number of coupling elements
      61             :   int total_n_elems = 0;
      62             : };

Generated by: LCOV version 1.14