v0.16.0
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MoFEM::PostProcBrokenMeshInMoabBase< E > Struct Template Reference

#include "src/post_proc/PostProcBrokenMeshInMoabBase.hpp"

Inheritance diagram for MoFEM::PostProcBrokenMeshInMoabBase< E >:
[legend]
Collaboration diagram for MoFEM::PostProcBrokenMeshInMoabBase< E >:
[legend]

Public Member Functions

 PostProcBrokenMeshInMoabBase (MoFEM::Interface &m_field, std::string opts_prefix="")
 
 PostProcBrokenMeshInMoabBase (MoFEM::Interface &m_field, boost::shared_ptr< moab::Core > core_mesh_ptr, std::string opts_prefix="")
 
virtual ~PostProcBrokenMeshInMoabBase ()
 
auto & getMapGaussPts ()
 Get vector of vectors associated to integration points.
 
auto & getPostProcMesh ()
 Get postprocessing mesh.
 
auto & getPostProcElements ()
 Get postprocessing elements.
 
MoFEMErrorCode writeFile (const std::string file_name)
 wrote results in (MOAB) format, use "file_name.h5m"
 
MoFEMErrorCode setTagsToTransfer (std::vector< Tag > tags_to_transfer)
 Set tags to be transferred to post-processing mesh.
 

Protected Member Functions

MoFEMErrorCode setGaussPts (int order)
 
MoFEMErrorCode preProcess ()
 Generate vertices and elements.
 
MoFEMErrorCode postProcess ()
 
int getRule (int order)
 
virtual int getMaxLevel () const
 Determine refinement level based on fields approx ordre.
 
virtual MoFEMErrorCode preProcPostProc ()
 
virtual MoFEMErrorCode postProcPostProc ()
 
virtual MoFEMErrorCode transferTags ()
 
auto getPostProcMeshPcommPtr ()
 

Protected Attributes

boost::shared_ptr< moab::Core > coreMeshPtr = boost::make_shared<moab::Core>()
 
std::vector< EntityHandlemapGaussPts
 
Range postProcElements
 
std::map< EntityType, PostProcGenerateRefMeshPtrrefElementsMap
 
std::vector< TagtagsToTransfer
 
std::string optionsPrefix = ""
 Prefix for options.
 

Detailed Description

template<typename E>
struct MoFEM::PostProcBrokenMeshInMoabBase< E >
Examples
mofem/tools/mesh_smoothing.cpp, mofem/tutorials/vec-2_nonlinear_elasticity/nonlinear_elastic.cpp, mofem/tutorials/vec-9_arc_length/arc_length.cpp, mofem/users_modules/adolc-plasticity/adolc_plasticity.cpp, and nonlinear_elastic.cpp.

Definition at line 100 of file PostProcBrokenMeshInMoabBase.hpp.

Constructor & Destructor Documentation

◆ PostProcBrokenMeshInMoabBase() [1/2]

template<typename E >
MoFEM::PostProcBrokenMeshInMoabBase< E >::PostProcBrokenMeshInMoabBase ( MoFEM::Interface m_field,
std::string  opts_prefix = "" 
)

Definition at line 296 of file PostProcBrokenMeshInMoabBase.hpp.

298 : E(m_field), optionsPrefix(opts_prefix) {}

◆ PostProcBrokenMeshInMoabBase() [2/2]

template<typename E >
MoFEM::PostProcBrokenMeshInMoabBase< E >::PostProcBrokenMeshInMoabBase ( MoFEM::Interface m_field,
boost::shared_ptr< moab::Core >  core_mesh_ptr,
std::string  opts_prefix = "" 
)

Definition at line 301 of file PostProcBrokenMeshInMoabBase.hpp.

304 : PostProcBrokenMeshInMoabBase(m_field, opts_prefix) {
305 coreMeshPtr = core_mesh_ptr;
306}
PostProcBrokenMeshInMoabBase(MoFEM::Interface &m_field, std::string opts_prefix="")

◆ ~PostProcBrokenMeshInMoabBase()

Definition at line 309 of file PostProcBrokenMeshInMoabBase.hpp.

309 {
311}

Member Function Documentation

◆ getMapGaussPts()

template<typename E >
auto & MoFEM::PostProcBrokenMeshInMoabBase< E >::getMapGaussPts ( )
inline

Get vector of vectors associated to integration points.

Returns
std::vector<EntityHandle>&

Definition at line 659 of file PostProcBrokenMeshInMoabBase.hpp.

659 {
660 return mapGaussPts;
661}

◆ getMaxLevel()

template<typename E >
int MoFEM::PostProcBrokenMeshInMoabBase< E >::getMaxLevel ( ) const
protectedvirtual

Determine refinement level based on fields approx ordre.

level = (order - 1) / 2

Returns
int

Reimplemented in EshelbianPlasticity::ContactTree.

Definition at line 204 of file PostProcBrokenMeshInMoabBase.hpp.

204 {
205 auto get_element_max_dofs_order = [&]() {
206 int max_order = 0;
207 auto dofs_vec = E::getDataVectorDofsPtr();
208 for (auto &dof : *dofs_vec) {
209 const int dof_order = dof->getDofOrder();
210 max_order = (max_order < dof_order) ? dof_order : max_order;
211 };
212 return max_order;
213 };
214 const auto dof_max_order = get_element_max_dofs_order();
215 return (dof_max_order > 0) ? (dof_max_order - 1) / 2 : 0;
216};

◆ getPostProcElements()

template<typename E >
auto & MoFEM::PostProcBrokenMeshInMoabBase< E >::getPostProcElements ( )
inline

Get postprocessing elements.

Returns
auto&

Definition at line 671 of file PostProcBrokenMeshInMoabBase.hpp.

◆ getPostProcMesh()

template<typename E >
auto & MoFEM::PostProcBrokenMeshInMoabBase< E >::getPostProcMesh ( )
inline

Get postprocessing mesh.

Returns
moab::Interface&

Definition at line 663 of file PostProcBrokenMeshInMoabBase.hpp.

663 {
664 if (!coreMeshPtr)
665 CHK_THROW_MESSAGE(MOFEM_DATA_INCONSISTENCY, "Core mesh not set");
666 moab::Interface &post_proc_mesh_interface = *coreMeshPtr;
667 return post_proc_mesh_interface;
668}
#define CHK_THROW_MESSAGE(err, msg)
Check and throw MoFEM exception.
@ MOFEM_DATA_INCONSISTENCY
Definition definitions.h:31

◆ getPostProcMeshPcommPtr()

template<typename E >
auto MoFEM::PostProcBrokenMeshInMoabBase< E >::getPostProcMeshPcommPtr ( )
inlineprotected

Definition at line 190 of file PostProcBrokenMeshInMoabBase.hpp.

190 {
192 }
static auto getOrCreate(moab::Core *core_mesh_ptr)

◆ getRule()

template<typename E >
int MoFEM::PostProcBrokenMeshInMoabBase< E >::getRule ( int  order)
protected

Definition at line 313 of file PostProcBrokenMeshInMoabBase.hpp.

313 {
314 return -1;
315};

◆ postProcess()

template<typename E >
MoFEMErrorCode MoFEM::PostProcBrokenMeshInMoabBase< E >::postProcess ( )
protected

Definition at line 645 of file PostProcBrokenMeshInMoabBase.hpp.

645 {
647
648 auto pcomm_post_proc_mesh = getPostProcMeshPcommPtr();
649 if (!pcomm_post_proc_mesh)
650 SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
651 "ParallelComm not allocated");
652
654 CHKERR pcomm_post_proc_mesh->resolve_shared_ents(0);
655
657}
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...

◆ postProcPostProc()

template<typename E >
MoFEMErrorCode MoFEM::PostProcBrokenMeshInMoabBase< E >::postProcPostProc ( )
protectedvirtual

Definition at line 563 of file PostProcBrokenMeshInMoabBase.hpp.

563 {
565
566 auto update_elements = [&]() {
567 ReadUtilIface *iface;
568 CHKERR getPostProcMesh().query_interface(iface);
570
571 Range ents;
572 for (auto &m : refElementsMap) {
573 if (m.second->nbEles) {
574 MOFEM_TAG_AND_LOG("SELF", Sev::noisy, "PostProc")
575 << "Update < " << moab::CN::EntityTypeName(m.first)
576 << " number of processed " << m.second->countEle;
577 CHKERR iface->update_adjacencies(
578 m.second->startingEleHandle, m.second->countEle,
579 m.second->levelRef[0].size2(), m.second->eleConn);
580 ents.merge(Range(m.second->startingEleHandle,
581 m.second->startingEleHandle + m.second->countEle - 1));
582 }
583 }
584
586 };
587
588 auto remove_obsolete_entities = [&]() {
590 Range ents, adj;
591 for (auto &m : refElementsMap) {
592 if (m.second->nbEles) {
593 ents.merge(Range(m.second->startingEleHandle,
594 m.second->startingEleHandle + m.second->countEle - 1));
595 const int dim = moab::CN::Dimension(m.first);
596 for (auto d = 1; d != dim; ++d) {
597 CHKERR getPostProcMesh().get_adjacencies(ents, d, false, adj,
598 moab::Interface::UNION);
599 }
600 }
601 }
602 CHKERR getPostProcMesh().delete_entities(adj);
604 };
605
606 auto set_proc_tags = [&]() {
608 auto pcomm_post_proc_mesh = getPostProcMeshPcommPtr();
609 if (pcomm_post_proc_mesh) {
610 Range ents;
611 for (auto &m : refElementsMap) {
612 if (m.second->nbEles) {
613 ents.merge(
614 Range(m.second->startingEleHandle,
615 m.second->startingEleHandle + m.second->countEle - 1));
616 }
617 }
618 int rank = E::mField.get_comm_rank();
619 CHKERR getPostProcMesh().tag_clear_data(pcomm_post_proc_mesh->part_tag(),
620 ents, &rank);
621 }
623 };
624
625 CHKERR update_elements();
626 CHKERR remove_obsolete_entities();
627 CHKERR set_proc_tags();
628
630}
#define MOFEM_TAG_AND_LOG(channel, severity, tag)
Tag and log in channel.
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
FTensor::Index< 'm', 3 > m
auto & getPostProcMesh()
Get postprocessing mesh.
std::map< EntityType, PostProcGenerateRefMeshPtr > refElementsMap

◆ preProcess()

template<typename E >
MoFEMErrorCode MoFEM::PostProcBrokenMeshInMoabBase< E >::preProcess ( )
protected

Generate vertices and elements.

Returns
MoFEMErrorCode

Definition at line 633 of file PostProcBrokenMeshInMoabBase.hpp.

633 {
635
636 CHKERR getPostProcMesh().delete_mesh();
637
638
640
642}

◆ preProcPostProc()

template<typename E >
MoFEMErrorCode MoFEM::PostProcBrokenMeshInMoabBase< E >::preProcPostProc ( )
protectedvirtual

Definition at line 445 of file PostProcBrokenMeshInMoabBase.hpp.

445 {
447
448auto get_ref_ele = [&](const EntityType type) {
449 PostProcGenerateRefMeshPtr ref_ele_ptr;
450
451 auto it = refElementsMap.find(type);
452 if (it != refElementsMap.end()) {
453 ref_ele_ptr = it->second;
454 } else {
455 switch (type) {
456 case MBTET:
457 ref_ele_ptr = boost::make_shared<PostProcGenerateRefMesh<MBTET>>();
458 break;
459 case MBHEX:
460 ref_ele_ptr = boost::make_shared<PostProcGenerateRefMesh<MBHEX>>();
461 break;
462 case MBPRISM:
463 ref_ele_ptr = boost::make_shared<PostProcGenerateRefMesh<MBPRISM>>();
464 break;
465 case MBTRI:
466 ref_ele_ptr = boost::make_shared<PostProcGenerateRefMesh<MBTRI>>();
467 break;
468 case MBQUAD:
469 ref_ele_ptr = boost::make_shared<PostProcGenerateRefMesh<MBQUAD>>();
470 break;
471 case MBEDGE:
472 ref_ele_ptr = boost::make_shared<PostProcGenerateRefMesh<MBEDGE>>();
473 break;
474 default:
475 MOFEM_LOG("SELF", Sev::error)
476 << "Generation of reference elements for type < "
477 << moab::CN::EntityTypeName(type) << " > is not implemented";
478 CHK_THROW_MESSAGE(MOFEM_NOT_IMPLEMENTED, "Element not implemented");
479 }
480
481 CHK_THROW_MESSAGE(ref_ele_ptr->getOptions(optionsPrefix), "getOptions");
482 CHK_THROW_MESSAGE(ref_ele_ptr->generateReferenceElementMesh(),
483 "Error when generating reference element");
484
485 refElementsMap[type] = ref_ele_ptr;
486 }
487
488 return ref_ele_ptr;
489};
490
491 auto fe_ptr = this->problemPtr->numeredFiniteElementsPtr;
492
493 auto miit =
494 fe_ptr->template get<Composite_Name_And_Part_mi_tag>().lower_bound(
495 boost::make_tuple(this->getFEName(), this->getLoFERank()));
496 auto hi_miit =
497 fe_ptr->template get<Composite_Name_And_Part_mi_tag>().upper_bound(
498 boost::make_tuple(this->getFEName(), this->getHiFERank()));
499
500 const int number_of_ents_in_the_loop = this->getLoopSize();
501 if (std::distance(miit, hi_miit) != number_of_ents_in_the_loop) {
502 SETERRQ(E::mField.get_comm(), MOFEM_DATA_INCONSISTENCY,
503 "Wrong size of indicies. Inconsistent size number of iterated "
504 "elements iterated by problem and from range.");
505 }
506
507 for (auto &m : refElementsMap) {
508 m.second->nbVertices = 0;
509 m.second->nbEles = 0;
510 m.second->countEle = 0;
511 m.second->countVertEle = 0;
512 }
513
514 for (; miit != hi_miit; ++miit) {
515 auto type = (*miit)->getEntType();
516 auto ref_ele = get_ref_ele(type);
517
518 // Set pointer to element. So that getDataVectorDofsPtr in getMaxLevel
519 // can work
520 E::numeredEntFiniteElementPtr = *miit;
521 bool add = true;
522 if (E::exeTestHook) {
523 add = E::exeTestHook(this);
524 }
525
526 if (add) {
527 size_t level = getMaxLevel();
528 level = std::min(level, ref_ele->levelGaussPtsOnRefMesh.size() - 1);
529 ref_ele->nbVertices += ref_ele->levelGaussPtsOnRefMesh[level].size2();
530 ref_ele->nbEles += ref_ele->levelRef[level].size1();
531 }
532 }
533
534 auto alloc_vertices_and_elements_on_post_proc_mesh = [&]() {
536
537 ReadUtilIface *iface;
538 CHKERR getPostProcMesh().query_interface(iface);
539
540 for (auto &m : refElementsMap) {
541 if (m.second->nbEles) {
542 CHKERR iface->get_node_coords(3, m.second->nbVertices, 0,
543 m.second->startingVertEleHandle,
544 m.second->verticesOnEleArrays);
545 CHKERR iface->get_element_connect(
546 m.second->nbEles, m.second->levelRef[0].size2(), m.first, 0,
547 m.second->startingEleHandle, m.second->eleConn);
548
549 m.second->countEle = 0;
550 m.second->countVertEle = 0;
551 }
552 }
553
555 };
556
557 CHKERR alloc_vertices_and_elements_on_post_proc_mesh();
558
560}
std::string type
@ MOFEM_NOT_IMPLEMENTED
Definition definitions.h:32
#define MOFEM_LOG(channel, severity)
Log.
boost::shared_ptr< PostProcGenerateRefMeshBase > PostProcGenerateRefMeshPtr
virtual int getMaxLevel() const
Determine refinement level based on fields approx ordre.

◆ setGaussPts()

template<typename E >
MoFEMErrorCode MoFEM::PostProcBrokenMeshInMoabBase< E >::setGaussPts ( int  order)
protected

Definition at line 318 of file PostProcBrokenMeshInMoabBase.hpp.

318 {
320
321 auto type = type_from_handle(this->getFEEntityHandle());
322
324
325 try {
326 ref_ele = refElementsMap.at(type);
327 } catch (const out_of_range &e) {
328 SETERRQ(
329 PETSC_COMM_SELF, MOFEM_NOT_IMPLEMENTED,
330 "Generation of reference elements for type <%s> is not implemented",
331 moab::CN::EntityTypeName(type));
332 }
333
334 auto set_gauss_pts = [&](auto &level_gauss_pts_on_ref_mesh, auto &level_ref,
335 auto &level_shape_functions,
336
337 auto start_vert_handle, auto start_ele_handle,
338 auto &verts_array, auto &conn, auto &ver_count,
339 auto &ele_count
340
341 ) {
343
344 size_t level = getMaxLevel();
345 level = std::min(level, level_gauss_pts_on_ref_mesh.size() - 1);
346
347 auto &level_ref_gauss_pts = level_gauss_pts_on_ref_mesh[level];
348 auto &level_ref_ele = level_ref[level];
349 auto &shape_functions = level_shape_functions[level];
350 E::gaussPts.resize(level_ref_gauss_pts.size1(), level_ref_gauss_pts.size2(),
351 false);
352 noalias(E::gaussPts) = level_ref_gauss_pts;
353
354 const auto fe_ent = E::numeredEntFiniteElementPtr->getEnt();
355 auto get_fe_coords = [&]() {
356 const EntityHandle *conn;
357 int num_nodes;
359 E::mField.get_moab().get_connectivity(fe_ent, conn, num_nodes, true),
360 "error get connectivity");
361 VectorDouble coords(num_nodes * 3);
363 E::mField.get_moab().get_coords(conn, num_nodes, &*coords.begin()),
364 "error get coordinates");
365 return coords;
366 };
367
368 auto coords = get_fe_coords();
369
370 const int num_nodes = level_ref_gauss_pts.size2();
371 mapGaussPts.resize(level_ref_gauss_pts.size2());
372
373 FTensor::Index<'i', 3> i;
375 &*shape_functions.data().begin());
377 &verts_array[0][ver_count], &verts_array[1][ver_count],
378 &verts_array[2][ver_count]);
379 for (int gg = 0; gg != num_nodes; ++gg, ++ver_count) {
380
381 mapGaussPts[gg] = start_vert_handle + ver_count;
382
383 auto set_float_precision = [](const double x) {
384 if (std::abs(x) < std::numeric_limits<float>::epsilon())
385 return 0.;
386 else
387 return x;
388 };
389
390 t_coords(i) = 0;
391 auto t_ele_coords = getFTensor1FromArray<3, 3>(coords);
392 for (int nn = 0; nn != CN::VerticesPerEntity(type); ++nn) {
393 t_coords(i) += t_n * t_ele_coords(i);
394 ++t_ele_coords;
395 ++t_n;
396 }
397
398 for (auto ii : {0, 1, 2})
399 t_coords(ii) = set_float_precision(t_coords(ii));
400
401 ++t_coords;
402 }
403
404 Tag th;
405 int def_in_the_loop = -1;
406 CHKERR getPostProcMesh().tag_get_handle(
407 "NB_IN_THE_LOOP", 1, MB_TYPE_INTEGER, th, MB_TAG_CREAT | MB_TAG_SPARSE,
408 &def_in_the_loop);
409
410 postProcElements.clear();
411 const int num_el = level_ref_ele.size1();
412 const int num_nodes_on_ele = level_ref_ele.size2();
413 auto start_e = start_ele_handle + ele_count;
414 postProcElements = Range(start_e, start_e + num_el - 1);
415 for (auto tt = 0; tt != level_ref_ele.size1(); ++tt, ++ele_count) {
416 for (int nn = 0; nn != num_nodes_on_ele; ++nn) {
417 conn[num_nodes_on_ele * ele_count + nn] =
418 mapGaussPts[level_ref_ele(tt, nn)];
419 }
420 }
421
422 const int n_in_the_loop = E::nInTheLoop;
423 CHKERR getPostProcMesh().tag_clear_data(th, postProcElements,
424 &n_in_the_loop);
426
428 };
429
430 CHKERR set_gauss_pts(
431
432 ref_ele->levelGaussPtsOnRefMesh, ref_ele->levelRef,
433 ref_ele->levelShapeFunctions,
434
435 ref_ele->startingVertEleHandle, ref_ele->startingEleHandle,
436 ref_ele->verticesOnEleArrays, ref_ele->eleConn, ref_ele->countVertEle,
437 ref_ele->countEle
438
439 );
440
442};
#define CHK_MOAB_THROW(err, msg)
Check error code of MoAB function and throw MoFEM exception.
FTensor::Index< 'i', SPACE_DIM > i
UBlasVector< double > VectorDouble
Definition Types.hpp:68
auto type_from_handle(const EntityHandle h)
get type from entity handle

◆ setTagsToTransfer()

template<typename E >
MoFEMErrorCode MoFEM::PostProcBrokenMeshInMoabBase< E >::setTagsToTransfer ( std::vector< Tag tags_to_transfer)

Set tags to be transferred to post-processing mesh.

Parameters
tags_to_transfer
Returns
MoFEMErrorCode

Definition at line 197 of file PostProcBrokenMeshInMoabBase.hpp.

198 {
200 tagsToTransfer.swap(tags_to_transfer);
202}

◆ transferTags()

template<typename E >
MoFEMErrorCode MoFEM::PostProcBrokenMeshInMoabBase< E >::transferTags ( )
protectedvirtual

transfer tags from mesh to post-process mesh

Definition at line 219 of file PostProcBrokenMeshInMoabBase.hpp.

219 {
221
222 auto &calc_mesh = this->mField.get_moab();
223
224 auto name = [&](auto tag) {
225 std::string name;
226 CHK_MOAB_THROW(calc_mesh.tag_get_name(tag, name), "get name");
227 return name;
228 };
229
230 auto data_type = [&](auto tag) {
231 moab::DataType data_type;
232 CHK_MOAB_THROW(calc_mesh.tag_get_data_type(tag, data_type),
233 "get data type");
234 return data_type;
235 };
236
237 auto type = [&](auto tag) {
238 moab::TagType type;
239 CHK_MOAB_THROW(calc_mesh.tag_get_type(tag, type), "get tag type");
240 return type;
241 };
242
243 auto length = [&](auto tag) {
244 int length;
245 CHK_MOAB_THROW(calc_mesh.tag_get_length(tag, length), "get length ");
246 return length;
247 };
248
249 auto default_value = [&](auto tag) {
250 const void *def_val;
251 int size;
252 CHK_MOAB_THROW(calc_mesh.tag_get_default_value(tag, def_val, size),
253 "get default tag value");
254 return def_val;
255 };
256
257 std::vector<double> tag_data_vec;
258 auto data_ptr = [&](auto tag) {
259 const void *tag_data;
260 auto core_ent = this->getFEEntityHandle();
261 CHK_MOAB_THROW(calc_mesh.tag_get_by_ptr(tag, &core_ent, 1, &tag_data),
262 "get tag data");
263 if (data_type(tag) == MB_TYPE_DOUBLE) {
264 tag_data_vec.resize(length(tag));
265 std::copy(static_cast<const double *>(tag_data),
266 static_cast<const double *>(tag_data) + length(tag),
267 tag_data_vec.begin());
268 for (auto &v : tag_data_vec)
269 v = std::abs(v) < std::numeric_limits<float>::min() ? 0. : v;
270 for (auto &v : tag_data_vec)
271 v = v > std::numeric_limits<float>::max()
272 ? std::numeric_limits<float>::max()
273 : v;
274 for (auto &v : tag_data_vec)
275 v = v < std::numeric_limits<float>::lowest()
276 ? std::numeric_limits<float>::lowest()
277 : v;
278 return static_cast<const void *>(tag_data_vec.data());
279 }
280 return tag_data;
281 };
282
283 for (auto tag : tagsToTransfer) {
284 Tag tag_postproc;
285 CHKERR getPostProcMesh().tag_get_handle(
286 name(tag).c_str(), length(tag), data_type(tag), tag_postproc,
287 type(tag) | MB_TAG_CREAT, default_value(tag));
288 CHKERR getPostProcMesh().tag_clear_data(tag_postproc, postProcElements,
289 data_ptr(tag));
290 }
291
293};
const double v
phase velocity of light in medium (cm/ns)

Member Data Documentation

◆ coreMeshPtr

template<typename E >
boost::shared_ptr<moab::Core> MoFEM::PostProcBrokenMeshInMoabBase< E >::coreMeshPtr = boost::make_shared<moab::Core>()
protected

Definition at line 171 of file PostProcBrokenMeshInMoabBase.hpp.

◆ mapGaussPts

template<typename E >
std::vector<EntityHandle> MoFEM::PostProcBrokenMeshInMoabBase< E >::mapGaussPts
protected

Definition at line 173 of file PostProcBrokenMeshInMoabBase.hpp.

◆ optionsPrefix

template<typename E >
std::string MoFEM::PostProcBrokenMeshInMoabBase< E >::optionsPrefix = ""
protected

Prefix for options.

Definition at line 182 of file PostProcBrokenMeshInMoabBase.hpp.

◆ postProcElements

template<typename E >
Range MoFEM::PostProcBrokenMeshInMoabBase< E >::postProcElements
protected

Definition at line 174 of file PostProcBrokenMeshInMoabBase.hpp.

◆ refElementsMap

template<typename E >
std::map<EntityType, PostProcGenerateRefMeshPtr> MoFEM::PostProcBrokenMeshInMoabBase< E >::refElementsMap
protected

Storing data about element types, and data for ReadUtilIface to create element entities on post-process mesh.

Definition at line 177 of file PostProcBrokenMeshInMoabBase.hpp.

◆ tagsToTransfer

template<typename E >
std::vector<Tag> MoFEM::PostProcBrokenMeshInMoabBase< E >::tagsToTransfer
protected

Set of tags on mesh to transfer to postprocessing mesh

Definition at line 180 of file PostProcBrokenMeshInMoabBase.hpp.


The documentation for this struct was generated from the following file: