10 #ifndef __FIELD_EVALUATOR_HPP__
11 #define __FIELD_EVALUATOR_HPP__
42 SetPtsData(boost::shared_ptr<MoFEM::ForcesAndSourcesCore> fe_method_ptr,
43 const double *eval_points,
const int nb_eval_points,
51 inline void setEvalPoints(
const double *ptr,
const int nb_eval_points) {
69 boost::scoped_ptr<AdaptiveKDTree>
treePtr;
80 int order_col,
int order_data);
105 template <
typename VE,
typename SPD = SetPtsData,
typename SP = SetPts>
106 boost::shared_ptr<SPD>
107 getData(
const double *ptr =
nullptr,
const int nb_eval_points = 0,
110 boost::scoped_ptr<VE> elePtr;
111 boost::scoped_ptr<SPD> setPtsDataPtr;
112 boost::scoped_ptr<SP> setPtsPtr;
114 boost::shared_ptr<PackData> pack_data(
new PackData());
116 pack_data->elePtr.reset(
new VE(m_field));
118 pack_data->setPtsDataPtr.reset(
119 new SPD(boost::shared_ptr<VE>(pack_data, pack_data->elePtr.get()), ptr,
120 nb_eval_points,
eps, verb));
121 pack_data->setPtsPtr.reset(
new SP(
122 boost::shared_ptr<SPD>(pack_data, pack_data->setPtsDataPtr.get())));
123 pack_data->elePtr->setRuleHook = boost::ref(*pack_data->setPtsPtr);
124 boost::shared_ptr<SPD> data(pack_data, pack_data->setPtsDataPtr.get());
131 const std::string finite_element);
136 const std::string finite_element);
140 const double *
const point,
const double distance,
141 const std::string problem,
const std::string finite_element,
142 boost::shared_ptr<SetPtsData> data_ptr,
int lower_rank,
int upper_rank,
148 const double *
const point,
const double distance,
149 const std::string problem,
const std::string finite_element,
150 boost::shared_ptr<SetPtsData> data_ptr,
int lower_rank,
int upper_rank,
162 const std::string finite_element);
210 const std::string problem,
const std::string finite_element,
211 boost::shared_ptr<SetPtsData> data_ptr,
int lower_rank,
212 int upper_rank, boost::shared_ptr<CacheTuple> cache_ptr,
218 const std::string finite_element);
222 const double *
const point,
const double distance,
223 const std::string problem,
const std::string finite_element,
224 boost::shared_ptr<SetPtsData> data_ptr,
int lower_rank,
int upper_rank,
231 FieldEvaluatorInterface::buildTree<2>(boost::shared_ptr<SetPtsData> spd_ptr,
232 const std::string finite_element);
236 FieldEvaluatorInterface::buildTree<3>(boost::shared_ptr<SetPtsData> spd_ptr,
237 const std::string finite_element);
241 const double *
const point,
const double distance,
const std::string problem,
242 const std::string finite_element, boost::shared_ptr<SetPtsData> data_ptr,
243 int lower_rank,
int upper_rank, boost::shared_ptr<CacheTuple> cache_ptr,
248 const double *
const point,
const double distance,
const std::string problem,
249 const std::string finite_element, boost::shared_ptr<SetPtsData> data_ptr,
250 int lower_rank,
int upper_rank, boost::shared_ptr<CacheTuple> cache_ptr,
255 #endif // __FIELD_EVALUATOR_HPP__