15 #if NANOFLANN_VERSION < 0x150 20 template <
typename T,
typename U>
44 std::vector<nanoflann::ResultItem<std::size_t, Real>> ret_matches;
52 for (
auto && local_qp : qpdata_range)
56 if (it == end_it || it->first != local_qp._elem_id)
60 mooseAssert(it != end_it,
"Current element id not found in result set.");
61 auto & sum = it->second[local_qp._qp];
65 std::size_t n_result =
66 kd_tree->radiusSearch(&(local_qp._q_point(0)),
radius *
radius, ret_matches, search_params);
69 for (std::size_t j = 0; j < n_result; ++j)
71 const auto & other_qp = qp_data[ret_matches[j].first];
86 sum += other_qp._value * other_qp._volume *
weight;
87 total_vol += other_qp._volume *
weight;
const Real _radius
cut-off radius
enum RadialAverage::WeightsType _weights_type
ThreadedRadialAverageLoop(RadialAverage &)
std::unique_ptr< KDTreeType > _kd_tree
spatial index (nanoflann guarantees this to be threadsafe under read-only operations) ...
void operator()(const QPDataRange &range)
parens operator with the code that is executed in threads
StoredRange< std::vector< RadialAverage::QPData >::const_iterator, RadialAverage::QPData > QPDataRange
RadialAverage & _radavg
rasterizer to manage the sample data
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template cos(_arg) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(cos
std::vector< QPData > _qp_data
gathered data
RadialAverage threaded loop.
std::pair< T, U > ResultItem
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sqrt(_arg)) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tanh
Result _average
average result
Gather and communicate a full list of all quadrature points and the values of a selected material pro...
SearchParams SearchParameters