250 {
252
253 std::vector<EntityHandle> contained;
255 if (contained.size() <= (
unsigned int)
step_number) {
257 }
258
259 EntityHandle *handles_ptr;
260 int handles_size;
262 1, (const void **)&handles_ptr, &handles_size);
263
265 int uids_size;
267 (const void **)&uids_ptr, &uids_size);
269
270 if (handles_size != uids_size) {
272 }
273
275 int data_size;
277 (const void **)&data_ptr, &data_size);
279
280 if (data_size != uids_size) {
282 }
283
284 typedef multi_index_container<
285 boost::shared_ptr<DofEntity>,
286 indexed_by<
287
288 hashed_non_unique<
289 tag<Composite_Ent_and_ShortId_mi_tag>,
290 composite_key<
291 DofEntity,
292 const_mem_fun<DofEntity, EntityHandle, &DofEntity::getEnt>,
293 const_mem_fun<DofEntity,
ShortId,
295
296 >>
297 DofEntity_multiIndex_short_uid_view;
298
299 DofEntity_multiIndex_short_uid_view short_uid_view;
300 short_uid_view.insert(dofsField.begin(), dofsField.end());
301
302 for (int ii = 0; ii < uids_size; ii++) {
303 EntityHandle ent = handles_ptr[ii];
306
307 auto dit = short_uid_view.find(boost::make_tuple(ent, uid));
308 if (dit != short_uid_view.end()) {
309 (*dit)->getFieldData() = val;
310 } else {
312 "data inconsistency, getting data series, dof on ENTITY and "
313 "ShortId can't be found");
314 }
315 }
316
318}
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
@ MOFEM_DATA_INCONSISTENCY
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
double FieldData
Field data type.
int ShortId
Unique Id in the field.
ShortId getNonNonuniqueShortId() const
get short uid it is unique in combination with entity handle