| 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% |
codecodecode+
114 115 116 117 + 118 119 + 120 121 122 |
inline unsigned int libMesh::default_grainsize() { return libMeshPrivateData::_default_grainsize; } |
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. |
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; } |
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; |
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; |
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 |
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); |
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 && |
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); |
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; |
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); |