libMesh/libmesh: coverage diff

Base a68cc6 Head #4476 4beb67
Total Total +/- New
Rate 65.61% 65.59% -0.02% 100.00%
Hits 78621 78598 -23 6
Misses 41209 41238 +29 0
Filename Stmts Miss Cover
include/base/libmesh_base.h +2 0 +100.00%
include/geom/stored_range.h +1 0 +0.04%
include/systems/generic_projector.h 0 +1 -0.08%
include/utils/int_range.h +1 +11 -29.58%
src/base/libmesh.C +2 0 +0.15%
src/mesh/distributed_mesh.C 0 -2 +0.25%
src/mesh/mesh_refinement.C 0 -2 +0.29%
src/mesh/mesh_tet_interface.C 0 +6 -1.89%
src/mesh/mesh_tools.C 0 +5 -0.43%
src/numerics/numeric_vector.C 0 +10 -3.95%
TOTAL +6 +29 -0.02%
code
coverage unchanged
code
coverage increased
code
coverage decreased
+
line added or modified

include/base/libmesh_base.h

114  
115  
116  
117 +
118  
119 +
120  
121  
122  


inline
unsigned int libMesh::default_grainsize()
{
  return libMeshPrivateData::_default_grainsize;
}


include/geom/stored_range.h

278  
279  
280  
281  
282  
283  
284  
   * The grain size for the range.  The range will be subdivided into
   * subranges not to exceed the grain size.
   */
  std::size_t grainsize () const {return _grainsize;}

  /**
   * Set the grain size.

include/parallel/threads_pthread.h

214  
215  
216  
217 +
218  
219  
220  
unsigned int num_pthreads(const Range & range,
                          unsigned int requested = libMesh::n_threads())
{
  std::size_t mn = std::min((std::size_t)requested, range.size()/range.grainsize());
  return mn > 0 ? cast_int<unsigned int>(mn) : 1;
}

include/systems/generic_projector.h

327  
328  
329  
330  
331  
332  
333  
  struct ProjectEdges : public SubProjector {
    ProjectEdges (GenericProjector & p) : SubProjector(p) {}

    ProjectEdges (ProjectEdges & p_e, Threads::split) : SubProjector(p_e.projector) {}

    using SubProjector::action;
    using SubProjector::f;

include/utils/int_range.h

79  
80  
81  
82  
83  
84  
85  
86  
87  
88  
89  
90  
91  
92  
93  
94  
95  
    }

    template <typename T2>
    void operator+= (T2 n)
    {
      _i += cast_int<T>(n);
    }

    template <typename T2>
    iterator operator+ (T2 n) const
    {
      iterator returnval(_i);
      returnval += n;
      return returnval;
    }

    bool operator== (const iterator & j) const
115  
116  
117  
118  
119  
120  
121  
122  
123  
124  
125  
126  
  {}

  // Signature needed for use in threads_pthread.h
  IntRange(const IntRange &,
           const const_iterator & begin,
           const const_iterator & end) :
    _begin(begin),
    _end(end)
  {}

  iterator begin() const { return _begin; }

130  
131  
132  
133 +
134  
135  
136  
  { return *_end - *_begin; }

  // For thread splitting control
  std::size_t grainsize () const { return libMesh::default_grainsize(); }

private:
  iterator _begin, _end;

src/base/libmesh.C

427  
428  
429  
430 +
431 +
432  
433  
434  

  // The optimal minimum chunk size for threading is probably fairly
  // system-dependent.
  libMesh::libMeshPrivateData::_default_grainsize =
    libMesh::command_line_value("--default-grainsize",
                                libMesh::libMeshPrivateData::_default_grainsize);

  // Construct singletons who may be at risk of the

src/mesh/distributed_mesh.C

1546  
1547  
1548  
1549  
1550  
1551  
1552  
1553  
1554  
1555  
1556  
1557  
1558  
1559  
                      sender_could_become_owner)
                    {
                      if (it != repartitioned_node_pids.end() &&
                          pid < it->second)
                        it->second = pid;
                      else
                        repartitioned_node_pids[n] = pid;
                    }
                  else
                    if (it == repartitioned_node_pids.end())
                      repartitioned_node_pids[n] =
                        DofObject::invalid_processor_id;

                  repartitioned_node_sets_to_push[pid].insert(n);

src/mesh/mesh_refinement.C

1310  
1311  
1312  
1313  
1314  
1315  
1316  
1317  
                              if (neighbor->p_level() < my_p_level &&
                                  neighbor->p_refinement_flag() != Elem::REFINE)
                                {
                                  neighbor->set_p_refinement_flag(Elem::REFINE);
                                  level_one_satisfied = false;
                                  compatible_with_coarsening = false;
                                }
                              if (neighbor->p_level() == my_p_level &&

src/mesh/mesh_tet_interface.C

370  
371  
372  
373  
374  
375  
376  
377  
378  
    TriChecker (Real ref_area, unsigned int verbosity) :
      my_returnval(), my_ref_area(ref_area),
      my_verbosity(verbosity) {}
    TriChecker (TriChecker & other, Threads::split) :
      my_returnval(), my_ref_area(other.my_ref_area),
      my_verbosity(other.my_verbosity) {}

    void operator()(const ConstElemRange & range) {

455  
456  
457  
458  
459  
460  
461  
462  
463  
        }
    }

    void join(TriChecker & other) {
      my_returnval.merge(other.my_returnval);
    }
  };

  TriChecker checker (ref_area, this->_verbosity);

src/mesh/mesh_tools.C

771  
772  
773  
774  
775  
776  
777  
778  
779  
780  
781  
782  
783  
784  
785  
786  
787  

    LevelCounter () : nl(0) {}

    LevelCounter (LevelCounter &, Threads::split) :
      nl(0) {}

    void operator()(const ConstElemRange & range) {
      for (const Elem * elem : range)
        nl = std::max(elem->level() + 1, nl);
    }

    void join(const LevelCounter & other) {
      nl = std::max(nl, other.nl);
    }
  };

  LevelCounter counter;

src/numerics/numeric_vector.C

625  
626  
627  
628  
629  
630  
631  
632  
633  
634  
635  
636  
637  
638  
639  
640  
641  
              const NumericVector<T> & v2in) :
      v1(v1in), v2(v2in), norm_sq(0) {}

    L2Differ (L2Differ & other, Threads::split) :
      v1(other.v1), v2(other.v2), norm_sq(0) {}

    void operator()(const IntRange<numeric_index_type> & index_range) {
      for (const auto i : index_range)
        norm_sq += TensorTools::norm_sq(v1(i) - v2(i));
    }

    void join(const L2Differ & other) {
      norm_sq += other.norm_sq;
    }
  };

  L2Differ differ(*this, v);
662  
663  
664  
665  
666  
667  
668  
669  
670  
671  
672  
673  
674  
675  
676  
677  
678  
              const NumericVector<T> & v2in) :
      v1(v1in), v2(v2in), norm(0) {}

    L1Differ (L1Differ & other, Threads::split) :
      v1(other.v1), v2(other.v2), norm(0) {}

    void operator()(const IntRange<numeric_index_type> & index_range) {
      for (const auto i : index_range)
        norm += libMesh::l1_norm_diff(v1(i), v2(i));
    }

    void join(const L1Differ & other) {
      norm += other.norm;
    }
  };

  L1Differ differ(*this, v);