LCOV - code coverage report
Current view: top level - include/efa - EFAFuncs.h (source / functions) Hit Total Coverage
Test: idaholab/moose xfem: #31405 (292dce) with base fef103 Lines: 22 23 95.7 %
Date: 2025-09-04 07:58:55 Functions: 8 8 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //* This file is part of the MOOSE framework
       2             : //* https://mooseframework.inl.gov
       3             : //*
       4             : //* All rights reserved, see COPYRIGHT for full restrictions
       5             : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
       6             : //*
       7             : //* Licensed under LGPL 2.1, please see LICENSE for details
       8             : //* https://www.gnu.org/licenses/lgpl-2.1.html
       9             : 
      10             : #pragma once
      11             : 
      12             : #include <map>
      13             : #include <set>
      14             : #include <vector>
      15             : #include <algorithm>
      16             : 
      17             : namespace Efa
      18             : {
      19             : 
      20             : template <typename T>
      21             : bool
      22       32956 : deleteFromMap(std::map<unsigned int, T *> & theMap, T * elemToDelete, bool delete_elem = true)
      23             : {
      24             :   bool didIt = false;
      25       32956 :   typename std::map<unsigned int, T *>::iterator i = theMap.find(elemToDelete->id());
      26       32956 :   if (i != theMap.end())
      27             :   {
      28       32956 :     if (delete_elem)
      29       32896 :       delete i->second;
      30       32956 :     theMap.erase(i);
      31             :     didIt = true;
      32             :   }
      33       32956 :   return didIt;
      34             : }
      35             : 
      36             : template <typename T>
      37             : unsigned int
      38       67568 : getNewID(std::map<unsigned int, T *> & theMap)
      39             : {
      40             :   typename std::map<unsigned int, T *>::reverse_iterator last_elem = theMap.rbegin();
      41             :   unsigned int new_elem_id = 0;
      42       67568 :   if (last_elem != theMap.rend())
      43       66113 :     new_elem_id = last_elem->first + 1;
      44       67568 :   return new_elem_id;
      45             : }
      46             : 
      47             : template <class T>
      48             : unsigned int
      49        1722 : numCommonElems(std::set<T> & v1, std::set<T> & v2)
      50             : {
      51             :   std::vector<T> common_elems;
      52        1722 :   std::set_intersection(
      53             :       v1.begin(), v1.end(), v2.begin(), v2.end(), std::inserter(common_elems, common_elems.end()));
      54        1722 :   return common_elems.size();
      55        1722 : }
      56             : 
      57             : template <class T>
      58             : unsigned int
      59     5456888 : numCommonElems(std::set<T> & v1, std::vector<T> & v2)
      60             : {
      61             :   std::vector<T> common_elems;
      62     5456888 :   std::set_intersection(
      63             :       v1.begin(), v1.end(), v2.begin(), v2.end(), std::inserter(common_elems, common_elems.end()));
      64     5456888 :   return common_elems.size();
      65     5456888 : }
      66             : 
      67             : template <class T>
      68             : std::vector<T>
      69     4142424 : getCommonElems(std::set<T> & v1, std::set<T> & v2)
      70             : {
      71             :   std::vector<T> common_elems;
      72     4142424 :   std::set_intersection(
      73             :       v1.begin(), v1.end(), v2.begin(), v2.end(), std::inserter(common_elems, common_elems.end()));
      74     4142424 :   return common_elems;
      75           0 : }
      76             : 
      77             : double linearQuadShape2D(unsigned int node_id, std::vector<double> & xi_2d);
      78             : 
      79             : double linearTriShape2D(unsigned int node_id, std::vector<double> & xi_2d);
      80             : 
      81             : double linearHexShape3D(unsigned int node_id, std::vector<double> & xi_3d);
      82             : 
      83             : double linearTetShape3D(unsigned int node_id, std::vector<double> & xi_3d);
      84             : 
      85             : } // namespace Efa

Generated by: LCOV version 1.14