v0.13.1
Loading...
Searching...
No Matches
DeprecatedCoreInterface.hpp
Go to the documentation of this file.
1/** \file DeprecatedCoreInterface.hpp
2 * \brief Deprecated interface functions
3 */
4
5#ifndef __INTERFACE_DEPRECATED_HPP__
6#define __INTERFACE_DEPRECATED_HPP__
7
8/** \brief name space of MoFEM library functions and classes
9 */
10namespace MoFEM {
11
12/**
13 * \brief Deprecated interface functions
14 * \nosubgrouping
15 */
17
18// /** \name Interfaces */
19
20// /**@}*/
21
22 /** \name Seed entities */
23
24 /**@{*/
25
26 /** \deprecated use BitRefManager
27 * \brief seed 2D entities (Triangles entities only) in the meshset and their
28 * adjacencies (only TRIs adjacencies) in a particular BitRefLevel \todo
29 * Should be outsourced to separate interface, i.e. BitLevelManager
30 *
31 * \param EntityHandle MeshSet
32 * \param BitRefLevel bitLevel
33 *
34 */
36 seed_ref_level_2D(const EntityHandle meshset, const BitRefLevel &bit,
37 int verb = -1);
38
39 /** \deprecated use BitRefManager
40 * \brief seed 2D entities in the meshset and their adjacencies (only TETs
41 adjacencies) in a particular BitRefLevel
42 * \todo Should be outsourced to separate interface, i.e. BitLevelManager
43 *
44 * \param EntityHandle MeshSet
45 * \param BitRefLevel bitLevel
46 *
47 * \brief Example:\code
48 EntityHandle meshset1; //contains ent1,ent2,ent3
49 BitRefLevel myLevel0;
50 myLevel0.set(0);
51 seed_ref_level_3D(meshset1,myLevel0);
52 //refine meshset1 into meshset2 and get new ents which are ent4, ent5
53 EntityHandle meshset2; //contains ent1,ent2,ent3,ent4,ent5
54 BitRefLevel myLevel1;
55 myLevel1.set(1);
56 seed_ref_level_3D(meshset2,myLevel1); \endcode
57
58 * So entities 1,2,3 would be assigned to bit level 0 and 1 <br>
59 * ent1[1,1,0,0,0,0,0], ent2[1,1,0,0,0,0,0], ent3[1,1,0,0,0,0,0], <br>
60 * and entities 4 and 5 are assigned to bit level 1 only <br>
61 * ent4[0,1,0,0,0,0,0], ent5[0,1,0,0,0,0,0] <br>
62 *
63 */
65 const BitRefLevel &bit,
66 int verb = -1);
67
68 /** \deprecated use BitRefManager
69 * \brief seed entities in the range and their adjacencies in a particular
70 * BitRefLevel \todo Should be outsourced to separate interface, i.e.
71 * BitLevelManager
72 */
74 const BitRefLevel &bit,
75 const bool only_tets = true,
76 int verb = -1);
77
78// /** \deprecated use BitRefManager
79// * brief seed ref level by MESHSET that contains entities other than volumes
80// *
81// * \param EntityHandle MeshSet
82// * \param BitRefLevel bitLevel
83// */
84// DEPRECATED MoFEMErrorCode seed_ref_level_MESHSET(const EntityHandle meshset,
85// const BitRefLevel &bit,
86// int verb = -1);
87
88// /** \deprecated use BitRefManager and setElementsBitRefLevel
89// * Create finite elements based from entities in meshsets. Throw error if
90// * entity is not in database \todo Should be outsourced to separate
91// * interface, i.e. BitLevelManager
92// *
93// * \param EntityHandle meshset
94// *
95// */
96// DEPRECATED MoFEMErrorCode seed_finite_elements(const EntityHandle meshset,
97// int verb = -1);
98
99// /** \deprecated use BitRefManager and setElementsBitRefLevel
100// * Create finite elements based from entities in meshsets. Throw error if
101// * entity is not in database \todo Should be outsourced to separate
102// * interface, i.e. BitLevelManager
103// *
104// * \param Range entities
105// *
106// */
107// DEPRECATED MoFEMErrorCode seed_finite_elements(const Range &entities,
108// int verb = -1);
109
110 /**@}*/
111
112// /** \name Getting entities by BitRefLevel */
113
114// /**@{*/
115
116// /**\brief add all ents from ref level given by bit to meshset
117// * \deprecated Use MoFEM::BitRefManager interface instead
118// * \ingroup mofem_ref_ents
119// *
120// * \param BitRefLevel bitLevel
121// * \param BitRefLevel mask
122// * \param EntityType type of entities
123// * \retval EntityHandle meshset
124// *
125// */
126// DEPRECATED MoFEMErrorCode get_entities_by_type_and_ref_level(
127// const BitRefLevel &bit, const BitRefLevel &mask, const EntityType type,
128// const EntityHandle meshset, int verb = -1);
129
130// /**\brief add all ents from ref level given by bit to meshset
131// * \deprecated Use MoFEM::BitRefManager interface instead
132// * \ingroup mofem_ref_ents
133// *
134// * \param BitRefLevel bitLevel
135// * \param BitRefLevel mask
136// * \param EntityType type of entities
137// * \retval ents
138// *
139// */
140// DEPRECATED MoFEMErrorCode get_entities_by_type_and_ref_level(
141// const BitRefLevel &bit, const BitRefLevel &mask, const EntityType type,
142// Range &ents, int verb = -1);
143
144// /**\brief add all ents from ref level given by bit to meshset
145// * \deprecated Use MoFEM::BitRefManager interface instead
146// * \ingroup mofem_ref_ents
147// *
148// * \param BitRefLevel bitLevel
149// * \param BitRefLevel mask
150// * \param EntityHandle meshset
151// *
152// */
153// DEPRECATED MoFEMErrorCode
154// get_entities_by_ref_level(const BitRefLevel &bit, const BitRefLevel &mask,
155// const EntityHandle meshset);
156
157// /**\brief add all ents from ref level given by bit to meshset
158// * \ingroup mofem_ref_ents
159// * \deprecated Use MoFEM::BitRefManager interface instead
160// *
161// * \param BitRefLevel bitLevel
162// * \param BitRefLevel mask
163// * \retval ents
164// */
165// DEPRECATED MoFEMErrorCode get_entities_by_ref_level(const BitRefLevel &bit,
166// const BitRefLevel &mask,
167// Range &ents);
168
169// /**@}*/
170
171// /**@}*/
172
173// /** \name Mange meshest */
174
175// /**@{*/
176
177// /**
178// * \brief check for CUBIT Id and CUBIT type
179
180// \deprecated use MeshsetsManager
181// \todo All cubit interface functions should be outsourced to dedicated
182// interface
183
184// * \param msId id of the BLOCKSET/SIDESET/BLOCKSET: from CUBIT
185// * \param see CubitBC (NODESET, SIDESET or BLOCKSET and more)
186// */
187// DEPRECATED bool check_msId_meshset(const int msId,
188// const CubitBCType cubit_bc_type);
189
190// /**
191// * \brief add cubit meshset
192
193// \deprecated use MeshsetsManager
194
195// * \param see CubitBC (NODESET, SIDESET or BLOCKSET and more)
196// * \param ms_id id of the BLOCKSET/SIDESET/BLOCKSET
197// * \param name of set
198
199// */
200// DEPRECATED MoFEMErrorCode add_cubit_msId(const CubitBCType cubit_bc_tyep,
201// const int msId,
202// const std::string name = "");
203
204// /**
205// * \brief set attributes to cubit meshset
206
207// \deprecated use MeshsetsManager
208
209// * @param cubit_bc_type type of meshset, see CubitBC, i.e. BLOCKSET, NODESET,
210// SIDESET
211// * @param ms_id id of meshset
212// * @param attributes attributes
213// * @return error code
214// */
215// DEPRECATED MoFEMErrorCode set_cubit_msId_attribites(
216// const CubitBCType cubit_bc_type, const int ms_id,
217// const std::vector<double> &attributes, const std::string name = "");
218
219// /**
220// * \brief set (material) data structure to cubit meshset
221
222// \deprecated use MeshsetsManager
223// \todo All cubit interface functions should be outsourced to dedicated
224// interface
225
226// * @param cubit_bc_type type of meshset, see CubitBC, i.e. BLOCKSET, NODESET,
227// SIDESET
228// * @param ms_id id of meshset
229// * @param attributes attributes
230// * @return error code
231// */
232// DEPRECATED MoFEMErrorCode set_cubit_msId_attribites_data_structure(
233// const CubitBCType cubit_bc_type, const int ms_id,
234// const GenericAttributeData &data, const std::string name = "");
235
236// /**
237// * \brief set boundary data structure to meshset
238
239// \deprecated use MeshsetsManager
240// \todo All cubit interface functions should be outsourced to dedicated
241// interface
242
243// * @param cubit_bc_type type of meshset, see CubitBC, i.e. BLOCKSET, NODESET,
244// SIDESET
245// * @param ms_id id of meshset
246// * @param data data structure
247// * @return error code
248// */
249// DEPRECATED MoFEMErrorCode set_cubit_msId_bc_data_structure(
250// const CubitBCType cubit_bc_type, const int ms_id,
251// const GenericCubitBcData &data);
252
253// /**
254// * \brief delete cubit meshset
255// * \ingroup mopfem_bc
256
257// \deprecated use MeshsetsManager
258// \todo All cubit interface functions should be outsourced to dedicated
259// interface
260
261// * \param see CubitBC (NODESET, SIDESET or BLOCKSET and more)
262// * \param msId id of the BLOCKSET/SIDESET/BLOCKSET: from CUBIT
263// *
264// */
265// DEPRECATED MoFEMErrorCode delete_cubit_msId(const CubitBCType cubit_bc_type,
266// const int msId);
267
268// DEPRECATED MoFEMErrorCode get_cubit_msId_entities_by_dimension(
269// const int ms_id, const CubitBCType cubit_bc_type, const int dimension,
270// Range &entities, const bool recursive = false);
271// DEPRECATED MoFEMErrorCode get_cubit_msId_entities_by_dimension(
272// const int ms_id, const CubitBCType cubit_bc_type, Range &entities,
273// const bool recursive = false);
274// // DEPRECATED MoFEMErrorCode get_cubit_msId_entities_by_dimension(
275// // const int ms_id,const unsigned int cubit_bc_type, const int
276// // dimension,Range &entities,const bool recursive = false
277// // );
278// // DEPRECATED MoFEMErrorCode get_cubit_msId_entities_by_dimension(
279// // const int ms_id,const unsigned int cubit_bc_type, Range &entities,const
280// // bool recursive = false
281// // );
282
283// /**
284// * \brief get entities from CUBIT/meshset of a particular entity dimension
285
286// * Nodeset can contain nodes, edges, triangles and tets. This applies to other
287// meshsets too.
288// * The nodeset's meshset contain the nodes in the MIDDLE of the surface or
289// volume which is done by default in Cubit,
290// * Hence if all nodes on a particular nodeset are required,
291// * one should get all triangles or tetrahedron for which the nodeset was create
292// in Cubit,
293// * and get all the connectivities of tris/tets.
294
295// \deprecated use MeshsetsManager
296// \todo All cubit interface functions should be outsourced to dedicated
297// interface
298
299// \code
300// MeshsetsManager *meshset_manager_ptr;
301// ierr = m_field.getInterface(meshset_manager_ptr); CHKERRG(ierr);
302// ierr =
303// meshset_manager_ptr->getEntitiesByDimension(ms_id,cubit_bc_type,dimension,entities,true);
304// CHKERRG(ierr); \endcode
305
306// * \param msId id of the BLOCKSET/SIDESET/BLOCKSET: from CUBIT
307// * \param see CubitBC (NODESET, SIDESET or BLOCKSET and more)
308// * \param dimensions (0 - Nodes, 1 - Edges, 2 - Faces, 3 - Volume(tetrahedral))
309// * \param Range containing the retreived entities
310// * \param recursive If true, meshsets containing meshsets are queried
311// recursively. Returns the contents of meshsets, but not the meshsets themselves
312// if true.
313// */
314// DEPRECATED MoFEMErrorCode get_cubit_msId_entities_by_dimension(
315// const int msId, const unsigned int cubit_bc_type, const int dimension,
316// Range &entities, const bool recursive = false);
317
318// /**
319// * \brief get entities related to CUBIT/meshset,
320
321// * NODESET will get Vertices only, even if the NODESET contains edges, tris and
322// tets
323// * SIDESET will get Tris, BLOCKSET will get Tets, DISPLACEMENTSET and FORCESET
324// are stored in NODESET, PRESSURESET is stored in Sideset.
325
326// \deprecated use MeshsetsManager
327// \todo All cubit interface functions should be outsourced to dedicated
328// interface
329
330// * \param msId id of the BLOCKSET/SIDESET/BLOCKSET: from CUBIT
331// * \param see CubitBC (NODESET, SIDESET or BLOCKSET and more)
332// * \param Range containing the retreived entities related to the
333// * \param recursive If true, meshsets containing meshsets are queried
334// recursively. Returns the contents of meshsets, but not the meshsets
335// themselves if true.
336// */
337// DEPRECATED MoFEMErrorCode get_cubit_msId_entities_by_dimension(
338// const int msId, const unsigned int cubit_bc_type, Range &entities,
339// const bool recursive = false);
340
341// /**
342// * \brief get meshset from CUBIT Id and CUBIT type
343
344// \deprecated use MeshsetsManager
345// \todo All cubit interface functions should be outsourced to dedicated
346// interface
347
348// * \param msId id of the BLOCKSET/SIDESET/BLOCKSET: from CUBIT
349// * \param see CubitBC (NODESET, SIDESET or BLOCKSET and more)
350// * \param meshset where to store the retrieved entities
351// */
352// DEPRECATED MoFEMErrorCode get_cubit_msId_meshset(
353// const int msId, const unsigned int cubit_bc_type, EntityHandle &meshset);
354
355// /**
356// * \brief get all CUBIT meshsets by CUBIT type
357
358// \deprecated use MeshsetsManager
359// \todo All cubit interface functions should be outsourced to dedicated
360// interface
361
362// * \param see CubitBC (NODESET, SIDESET or BLOCKSET and more).
363// * \param meshsets is range of meshsets
364// */
365// DEPRECATED MoFEMErrorCode get_cubit_meshsets(const unsigned int cubit_bc_type,
366// Range &meshsets);
367
368// /** \deprecated use MeshsetsManager interface instead
369// */
370// DEPRECATED MoFEMErrorCode print_cubit_displacement_set() const;
371
372// /** \deprecated use MeshsetsManager interface instead
373// */
374// DEPRECATED MoFEMErrorCode print_cubit_pressure_set() const;
375
376// /** \deprecated use MeshsetsManager interface instead
377// */
378// DEPRECATED MoFEMErrorCode print_cubit_force_set() const;
379
380// /** \deprecated use MeshsetsManager interface instead
381// */
382// DEPRECATED MoFEMErrorCode print_cubit_materials_set() const;
383
384// /**@}*/
385
386// /** \name Updating entities (DO NOT USE THIS USE BitRefManager interface)*/
387
388// /**@{*/
389
390// /** \brief Get child entities form meshset containing parent entities
391// * \deprecated do not us this use BitRefManager interface
392// *
393// * Search for refined entities of given type whose parent are entities in the
394// * parent meshset. It can be used for example to transfer information about
395// * boundary conditions to refined mesh or split mesh by interface
396// * elements. It is used by function refineMeshset, to update MESHSET finite
397// *elements.
398// *
399// * \param parent meshset
400// * \param child_bit refinement level
401// * \param type of refined entity
402// * \param child_type meshset where child entities are stored (if the child
403// *meshset is set to be the parent meshset, the parent would be updated with
404// *the refined entities) \param recursive if true parent meshset is searched
405// *recursively
406// *
407// **/
408// DEPRECATED MoFEMErrorCode update_meshset_by_entities_children(
409// const EntityHandle parent, const BitRefLevel &child_bit,
410// const EntityHandle child, EntityType child_type,
411// const bool recursive = false, int verb = -1);
412
413// /** \brief update fields meshesets by child entities
414// * \deprecated do not us this use BitRefManager interface
415// * \ingroup mofem_field
416// */
417// DEPRECATED MoFEMErrorCode update_field_meshset_by_entities_children(
418// const BitRefLevel &child_bit, int verb = -1);
419
420// /** \brief update field mesheset by child entities
421// * \deprecated do not us this use BitRefManager interface
422// * \ingroup mofem_field
423// */
424// DEPRECATED MoFEMErrorCode update_field_meshset_by_entities_children(
425// const std::string name, const BitRefLevel &child_bit, int verb = -1);
426
427// /** \brief update finite element mesheset by child entities
428// * \deprecated do not us this use BitRefManager interface
429// */
430// DEPRECATED MoFEMErrorCode update_finite_element_meshset_by_entities_children(
431// const std::string name, const BitRefLevel &child_bit,
432// const EntityType fe_ent_type, int verb = -1);
433
434// /**@}*/
435
436// /**@}*/
437
438// /** \name Shift BitRefLevl */
439
440// /**@{*/
441
442// /** \deprecated use BitRefManager to do this operation
443// * \brief right shift bit ref level
444// * \todo Should be outsourced to separate interface, i.e. BitLevelManage
445// */
446// DEPRECATED MoFEMErrorCode shift_right_bit_ref(const int shift, int verb = -1);
447
448// /**@}*/
449
450
451// /** \brief add TET elements from given refinement level to finite element
452// * database given by name \ingroup mofem_fe
453// *
454// * \deprecated use add_ents_to_finite_element_by_bit_ref with mask explicitly
455// * given
456// *
457// * \param BitRefLevel bit
458// * \param finite element name
459// * \param finite elenent type
460// * \param verrbose level
461// */
462// DEPRECATED virtual MoFEMErrorCode
463// add_ents_to_finite_element_EntType_by_bit_ref(const BitRefLevel &bit,
464// const std::string &name,
465// EntityType type,
466// int verb = -1) = 0;
467
468// /** \brief add TET entities from given refinement level to finite element
469// * database given by name \ingroup mofem_fe
470// *
471// * \deprecated use add_ents_to_finite_element_by_bit_ref with mask explicitly
472// * given
473// *
474// * \param BitRefLevel bit
475// * \param BitRefLevel mask
476// * \param finite element name
477// * \param finite element type
478// * \param verrbose level
479// */
480// DEPRECATED virtual MoFEMErrorCode
481// add_ents_to_finite_element_EntType_by_bit_ref(const BitRefLevel &bit,
482// const BitRefLevel &mask,
483// const std::string &name,
484// EntityType type,
485// int verb = -1) = 0;
486
487// /** \name Build problems (DEPRECATED SHOULD NOT USE THIS)*/
488
489 /**@{*/
490
491// /** \brief build problem data structures
492// *
493// * \note If square_matrix is set to true, that indicate that problem is
494// structurally
495// * symmetric, i.e. rows and columns have the same dofs and are indexed in the
496// same
497// * way.
498
499// \deprecated Use ProblemsManager to build and partition problems
500
501// *
502// * @param problem pointer
503// * @param square_matrix structurally symmetric problem
504// * @param verb verbosity level
505// * @return error code
506// *
507// */
508// DEPRECATED MoFEMErrorCode build_problem(const std::string &name,
509// const bool square_matrix,
510// int verb = -1);
511
512// /** \brief build problem data structures
513// *
514// * \note If square_matrix is set to true, that indicate that problem is
515// structurally
516// * symmetric, i.e. rows and columns have the same dofs and are indexed in the
517// same
518// * way.
519
520// \deprecated Use ProblemsManager to build and partition problems
521
522// * @param name problem name
523// * @param square_matrix structurally symmetric problem
524// * @param verb verbosity level
525// * @return error code
526// *
527// */
528// DEPRECATED MoFEMErrorCode build_problem(Problem *problem_ptr,
529// const bool square_matrix,
530// int verb = -1);
531
532// /** \brief build problem data structures
533
534// \deprecated Use MoFEM::Interface::build_problem(const std::string &name,const
535// bool square_matrix,int verb = -1) instead. This function not allows to Control
536// if problem is structurally symmetric.
537
538// */
539// DEPRECATED virtual MoFEMErrorCode build_problems(int verb = -1) = 0;
540
541// /** \brief build problem data structures, assuming that mesh is distributed
542// (collective)
543
544// \deprecated Use ProblemsManager to build and partition problems
545
546// Mesh is distributed, that means that each processor keeps only own part of
547// the mesh and shared entities.
548
549// Collective - need to be run on all processors in communicator, i.e. each
550// function has to call this function.
551
552// */
553// DEPRECATED MoFEMErrorCode build_problem_on_distributed_mesh(
554// const std::string &name, const bool square_matrix = true, int verb = -1);
555
556// /** \brief build problem data structures, assuming that mesh is distributed
557// (collective)
558
559// \deprecated Use ProblemsManager to build and partition problems
560
561// Mesh is distributed, that means that each processor keeps only own part of
562// the mesh and shared entities.
563
564// Collective - need to be run on all processors in communicator, i.e. each
565// function has to call this function.
566
567// */
568// DEPRECATED MoFEMErrorCode build_problem_on_distributed_mesh(
569// Problem *problem_ptr, const bool square_matrix = true, int verb = -1);
570
571// /** \brief build problem data structures, assuming that mesh is distributed
572// (collective)
573
574// \deprecated Use ProblemsManager to build and partition problems
575
576// Mesh is distributed, that means that each processor keeps only own part of
577// the mesh and shared entities.
578
579// Collective - need to be run on all processors in communicator, i.e. each
580// function has to call this function.
581
582// */
583// DEPRECATED virtual MoFEMErrorCode
584// build_problem_on_distributed_mesh(int verb = -1) = 0;
585
586 /**
587 * \brief Set partition tag to each finite element in the problem
588 *
589 * This will use one of the mesh partitioning programs available from PETSc
590 * See
591 * <http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatPartitioningType.html>
592 *
593 * @param ents Entities to partition
594 * @param dim Dimension of entities to partition
595 * @param adj_dim Adjacency dimension
596 * @param n_parts Number of partitions
597 * @param verb Verbosity level
598 * @return Error code
599 */
600 DEPRECATED MoFEMErrorCode partition_mesh(const Range &ents, const int dim,
601 const int adj_dim, const int n_parts,
602 int verb = -1);
603
604// /** \brief partition problem dofs
605
606// \deprecated Use ProblemsManager to build and partition problems
607
608// *
609// * \param name problem name
610// */
611// DEPRECATED MoFEMErrorCode partition_simple_problem(const std::string &name,
612// int verb = -1);
613
614// /** \brief partition problem dofs (collective)
615
616// \deprecated Use ProblemsManager to build and partition problems
617
618// *
619// * \param name problem name
620// */
621// DEPRECATED MoFEMErrorCode partition_problem(const std::string &name,
622// int verb = -1);
623
624// /**
625// * \brief build indexing and partition problem inheriting indexing and
626// partitioning from two other problems
627// *
628// \deprecated Use ProblemsManager to build and partition problems
629// * \param name problem name
630// * \param problem_for_rows problem used to index rows
631// * \param copy_rows just copy rows dofs
632// * \param problem_for_cols problem used to index cols
633// * \param copy_cols just copy cols dofs
634// *
635// * If copy_rows/copy_cols is set to false only partition is copied between
636// problems.
637// *
638// */
639// DEPRECATED MoFEMErrorCode partition_compose_problem(
640// const std::string &name, const std::string &problem_for_rows,
641// const bool copy_rows, const std::string &problem_for_cols,
642// const bool copy_cols, int verb = -1);
643
644// /**
645// * \brief build sub problem
646
647// \deprecated Use ProblemsManager to build and partition problems
648
649// * @param out_name problem
650// * @param fields_row vector of fields composing problem
651// * @param fields_col vector of fields composing problem
652// * @param main_problem main problem
653// * @return error code
654// */
655// DEPRECATED MoFEMErrorCode build_sub_problem(
656// const std::string &out_name, const std::vector<std::string> &fields_row,
657// const std::vector<std::string> &fields_col,
658// const std::string &main_problem, const bool square_matrix = true,
659// int verb = -1);
660
661// /** \brief determine ghost nodes
662// * \ingroup mofem_field
663// * \deprecated Use ProblemsManager to build and partition problems
664// *
665// * \param name problem name
666// */
667// DEPRECATED MoFEMErrorCode partition_ghost_dofs(const std::string &name,
668// int verb = -1);
669
670// /** \brief partition finite elements
671// *
672// * Function which partition finite elements based on dofs partitioning.<br>
673// * In addition it sets information about local row and cols dofs at given
674// * element on partition.
675// *
676// * \deprecated Use ProblemsManager to build and partition problems
677// *
678// * \param name problem name
679// */
680// DEPRECATED MoFEMErrorCode partition_finite_elements(
681// const std::string &name, bool part_from_moab = false, int low_proc = -1,
682// int hi_proc = -1, int verb = -1);
683
684// /** \deprecated use ProblemsManager
685// * \brief Get layout of elements in the problem
686// * \ingroup mofem_problems
687// *
688// * In layout is stored information how many elements is on each processor, for
689// * more information look int petsc documentation
690// * <http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/IS/PetscLayoutCreate.html#PetscLayoutCreate>
691// *
692// * @param name problem name
693// * @param fe_name finite elements
694// * @param layout layout
695// * @param verb verbosity level
696// * @return error code
697// */
698// DEPRECATED MoFEMErrorCode get_problem_elements_layout(
699// const std::string &name, const std::string &fe_name, PetscLayout *layout,
700// int verb = -1);
701
702 /**@}*/
703
704// /** \name Create vectors */
705
706// /**@{*/
707
708// /** \deprecated use VecManager
709// * \brief create local vector for problem
710// * \ingroup mofem_vectors
711// *
712// * \param name problem name
713// * \param RowColData specify what data is taken from Row, Col or Data
714// * \param Vec the vector where data is stored
715// */
716// DEPRECATED MoFEMErrorCode VecCreateSeq(const std::string &name, RowColData rc,
717// Vec *V) const;
718
719// /** \deprecated use VecManager
720// * \brief create ghost vector for problem (collective)
721// * \ingroup mofem_vectors
722
723// collective - need to be run on all processors in communicator
724
725// * \param name problem name
726// * \param RowColData specify what data is taken from Row, Col or Data
727// * \param Vec the vector where data is stored
728// */
729// DEPRECATED MoFEMErrorCode VecCreateGhost(const std::string &name,
730// RowColData rc, Vec *V) const;
731
732// /**@}*/
733
734// /** \name Create IS */
735
736// /**@{*/
737
738// /** \deprecated Use ISManager
739// * \brief create IS for give two problems and field
740
741// Note that indices are ordered in ascending order of local indices in problem_y
742
743// \param x_problem name of problem
744// \param x_field_name name of field in problem_x
745// \param x_rc that is ROW or COL
746// \param y_problem name of problem
747// \param y_field_name name of field in problem_y
748// \param y_rc that is ROW or COL
749
750// \retval idx indexes in problem_x
751// \retval idy indexes in problem_y
752
753// */
754// DEPRECATED MoFEMErrorCode ISCreateFromProblemFieldToOtherProblemField(
755// const std::string &x_problem, const std::string &x_field_name,
756// RowColData x_rc, const std::string &y_problem,
757// const std::string &y_field_name, RowColData y_rc, std::vector<int> &idx,
758// std::vector<int> &idy, int verb = -1) const;
759
760// /** \deprecated Use ISManager
761// * \brief create IS for give two problems and field
762
763// Indices are sorted by global PETSc index in problem_x.
764
765// \param x_problem name of problem
766// \param x_field_name name of field in problem_x
767// \param x_rc that is ROW or COL
768// \param y_problem name of problem
769// \param y_field_name name of field in problem_y
770// \param y_rc that is ROW or COL
771
772// \retval ix IS indexes in problem_x (can be PETSC_NULL)
773// \retval iy IS indexes in problem_y
774
775// */
776// DEPRECATED MoFEMErrorCode ISCreateFromProblemFieldToOtherProblemField(
777// const std::string &x_problem, const std::string &x_field_name,
778// RowColData x_rc, const std::string &y_problem,
779// const std::string &y_field_name, RowColData y_rc, IS *ix, IS *iy,
780// int verb = -1) const;
781
782// /** \deprecated Use ISManager
783// * \brief create IS for given order range (collective)
784
785// * \param problem name
786// * \param rc ROW or COL
787// * \param min_order
788// * \param max_order
789// * \retval is out value
790
791// */
792// DEPRECATED MoFEMErrorCode ISCreateProblemOrder(const std::string &problem,
793// RowColData rc, int min_order,
794// int max_order, IS *is,
795// int verb = -1) const;
796
797// /** \deprecated Use ISManager
798// * \brief create IS for given problem, field and rank range (collective)
799// * \ingroup mofem_vectors
800
801// * \param problem name
802// * \param rc ROW or COL
803// * \param field name
804// * \param min_coeff_idx
805// * \param max_coeff_idx
806// * \retval is out value
807
808// */
809// DEPRECATED MoFEMErrorCode ISCreateProblemFieldAndRank(
810// const std::string &problem, RowColData rc, const std::string &field,
811// int min_coeff_idx, int max_coeff_idx, IS *is, int verb = -1) const;
812
813// /**@}*/
814
815// /** \name Scatter vectors */
816
817// /**@{*/
818
819// /** \deprecated use VecManager
820// * \brief create scatter for vectors form one to another problem (collective)
821// * \ingroup mofem_vectors
822// *
823// * User specify what name of field on one problem is scattered to another.
824// *
825// * \ingroup mofem_vectors
826// *
827// * \param xin vector
828// * \param x_proble problem name
829// * \param x_field name
830// * \param yin vector
831// * \param y_problem problem name
832// * \param y_field_name
833// * \retval newctx scatter
834
835// */
836// DEPRECATED MoFEMErrorCode VecScatterCreate(
837// Vec xin, const std::string &x_problem, const std::string &x_field_name,
838// RowColData x_rc, Vec yin, const std::string &y_problem,
839// const std::string &y_field_name, RowColData y_rc, VecScatter *newctx,
840// int verb = -1) const;
841
842// /** \deprecated use VecManager
843// * \brief create scatter for vectors form one to another problem (collective)
844// * \ingroup mofem_vectors
845// *
846// * \param xin vector
847// * \param x_proble problem name
848// * \param yin vector
849// * \param y_problem problem name
850// * \retval newctx scatter
851
852// */
853// DEPRECATED MoFEMErrorCode
854// VecScatterCreate(Vec xin, const std::string &x_problem, RowColData x_rc,
855// Vec yin, const std::string &y_problem, RowColData y_rc,
856// VecScatter *newctx, int verb = -1) const;
857
858// /**@}*/
859
860// /** \name Set vector and mesh values */
861
862// /**@{*/
863
864// /** \deprecated use VecManager
865// * \brief set values of vector from/to meshdatabase
866// * \ingroup mofem_vectors
867// *
868// * \param pointer to problem struture
869// * \param RowColData for row or column:e (i.e. Row,Col)
870// * \param V vector
871// * \param mode see petsc manual for VecSetValue (ADD_VALUES or INSERT_VALUES)
872// * \param scatter_mode see petsc manual for ScatterMode (The available modes
873// * are: SCATTER_FORWARD or SCATTER_REVERSE)
874// *
875// * SCATTER_REVERSE set data to field entities from V vector.
876// *
877// * SCATTER_FORWARD set vector V from data field entities
878// *
879// */
880// DEPRECATED MoFEMErrorCode
881// set_local_ghost_vector(const Problem *problem_ptr, RowColData rc, Vec V,
882// InsertMode mode, ScatterMode scatter_mode) const;
883
884// /** \deprecated use VecManager
885// * \brief set values of vector from/to meshdatabase
886// * \ingroup mofem_vectors
887// *
888// * \param name of the problem
889// * \param RowColData for row or column:e (i.e. Row,Col)
890// * \param V vector
891// * \param mode see petsc manual for VecSetValue (ADD_VALUES or INSERT_VALUES)
892// * \param scatter_mode see petsc manual for ScatterMode (The available modes
893// * are: SCATTER_FORWARD or SCATTER_REVERSE)
894// *
895// * SCATTER_REVERSE set data to field entities from V vector.
896// *
897// * SCATTER_FORWARD set vector V from data field entities
898// *
899// */
900// DEPRECATED MoFEMErrorCode
901// set_local_ghost_vector(const std::string &name, RowColData rc, Vec V,
902// InsertMode mode, ScatterMode scatter_mode) const;
903
904// /** \deprecated use VecManager
905// * \brief set values of vector from/to mesh database (collective)
906// * \ingroup mofem_vectors
907
908// collective - need tu be run on all processors in communicator
909
910// * \param pointer to porblem struture
911// * \param RowColData for row or column (i.e. Row,Col)
912// * \param V vector
913// * \param mode see petsc manual for VecSetValue (ADD_VALUES or INSERT_VALUES)
914// * \param scatter_mode see petsc manual for ScatterMode (The available modes
915// are: SCATTER_FORWARD or SCATTER_REVERSE)
916// *
917// * SCATTER_REVERSE set data to field entities form V vector.
918// *
919// */
920// DEPRECATED MoFEMErrorCode
921// set_global_ghost_vector(const Problem *problem_ptr, RowColData rc, Vec V,
922// InsertMode mode, ScatterMode scatter_mode) const;
923
924// /** \deprecated use VecManager
925// * \brief set values of vector from/to mesh database (collective)
926// * \ingroup mofem_vectors
927
928// collective - need tu be run on all processors in communicator
929
930// * \param name of the problem
931// * \param RowColData for row or column (i.e. Row,Col)
932// * \param V vector
933// * \param mode see petsc manual for VecSetValue (ADD_VALUES or INSERT_VALUES)
934// * \param scatter_mode see petsc manual for ScatterMode (The available modes
935// are: SCATTER_FORWARD or SCATTER_REVERSE)
936// *
937// * SCATTER_REVERSE set data to field entities form V vector.
938// *
939// */
940// DEPRECATED MoFEMErrorCode
941// set_global_ghost_vector(const std::string &name, RowColData rc, Vec V,
942// InsertMode mode, ScatterMode scatter_mode) const;
943
944// /** \deprecated use VecManager
945// * \brief Copy vector to field which is not part of the problem
946// * \ingroup mofem_vectors
947// *
948// * \param pointer to poroblem multi_index
949// * \param field_name field name used for indexing petsc vectors used in the
950// * problem \param cpy_field field name where data from vector are stored
951// * \param RowColData for row or column
952// * \param V vector
953// * \param mode see petsc manual for VecSetValue (ADD_VALUES or INSERT_VALUES)
954// * \param scatter_mode see petsc manual for ScatterMode (The available modes
955// * are: SCATTER_FORWARD or SCATTER_REVERSE)
956// *
957// * SCATTER_REVERSE set data to field entities form V vector.
958// *
959// */
960// DEPRECATED MoFEMErrorCode set_other_local_ghost_vector(
961// const Problem *problem_ptr, const std::string &fiel_name,
962// const std::string &cpy_field_name, RowColData rc, Vec V, InsertMode mode,
963// ScatterMode scatter_mode, int verb = -1);
964
965// /** \deprecated use VecManager
966// * \brief Copy vector to field which is not part of the problem
967// * \ingroup mofem_vectors
968// *
969// * \param name problem name
970// * \param field_name field name used for indexing petsc vectors used in the
971// * problem \param cpy_field field name where data from vector are stored
972// * \param RowColData for row or column
973// * \param V vector
974// * \param mode see petsc manual for VecSetValue (ADD_VALUES or INSERT_VALUES)
975// * \param scatter_mode see petsc manual for ScatterMode (The available modes
976// * are: SCATTER_FORWARD or SCATTER_REVERSE)
977// *
978// * SCATTER_REVERSE set data to field entities form V vector.
979// *
980// */
981// DEPRECATED MoFEMErrorCode set_other_local_ghost_vector(
982// const std::string &name, const std::string &field_name,
983// const std::string &cpy_field_name, RowColData rc, Vec V, InsertMode mode,
984// ScatterMode scatter_mode, int verb = -1);
985
986// /** \deprecated use VecManager
987// * \brief Copy vector to field which is not part of the problem (collective)
988// * \ingroup mofem_vectors
989
990// collective - need tu be run on all processors in communicator
991
992// * \param problem_ptr pointer to problem
993// * \param field_name field name used for indexing petsc vectors used in the
994// problem
995// * \param cpy_field field name where data from vector are stored
996// * \param RowColData for row or column
997// * \param V vector
998// * \param mode see petsc manual for VecSetValue (ADD_VALUES or INSERT_VALUES)
999// * \param scatter_mode see petsc manual for ScatterMode (The available modes
1000// are: SCATTER_FORWARD or SCATTER_REVERSE)
1001// *
1002// * SCATTER_REVERSE set data to field entities form V vector.
1003// *
1004// */
1005// DEPRECATED MoFEMErrorCode set_other_global_ghost_vector(
1006// const Problem *problem_ptr, const std::string &field_name,
1007// const std::string &cpy_field_name, RowColData rc, Vec V, InsertMode mode,
1008// ScatterMode scatter_mode, int verb = -1);
1009
1010// /** \deprecated use VecManager
1011// * \brief Copy vector to field which is not part of the problem (collective)
1012// * \ingroup mofem_vectors
1013
1014// collective - need tu be run on all processors in communicator
1015
1016// * \param name problem name
1017// * \param field_name field name used for indexing petsc vectors used in the
1018// problem
1019// * \param cpy_field field name where data from vector are stored
1020// * \param RowColData for row or column
1021// * \param V vector
1022// * \param mode see petsc manual for VecSetValue (ADD_VALUES or INSERT_VALUES)
1023// * \param scatter_mode see petsc manual for ScatterMode (The available modes
1024// are: SCATTER_FORWARD or SCATTER_REVERSE)
1025// *
1026// * SCATTER_REVERSE set data to field entities form V vector.
1027// *
1028// */
1029// DEPRECATED MoFEMErrorCode set_other_global_ghost_vector(
1030// const std::string &name, const std::string &field_name,
1031// const std::string &cpy_field_name, RowColData rc, Vec V, InsertMode mode,
1032// ScatterMode scatter_mode, int verb = -1);
1033
1034// /**@}*/
1035
1036// /** \name Field algebra */
1037
1038// /**@{*/
1039
1040// /** \deprecated use FieldBlas
1041// * \brief axpy fields
1042// * \ingroup mofem_field_algebra
1043// * \todo should be moved to independent interface, i.e. FieldAlgebra
1044// *
1045// * field_y = field_y + alpha*field_x
1046// *
1047// * \param alpha
1048// * \param field_name_x name of field_x
1049// * \param field_name_y name of field_y
1050// * \param error_if_missing throw error if entity/dof exist in field_x but not
1051// * on field_y \param create_if_missing creat dof in field_y from fiedl_x if it
1052// * is not database
1053// *
1054// */
1055// DEPRECATED MoFEMErrorCode field_axpy(const double alpha,
1056// const std::string &fiel_name_x,
1057// const std::string &field_name_y,
1058// bool error_if_missing = false,
1059// bool creat_if_missing = false);
1060
1061// /** \deprecated use FieldBlas
1062// * \brief scale field
1063// * \ingroup mofem_field_algebra
1064// * \todo should be moved to independent interface, i.e. FieldAlgebra
1065// *
1066// * \param alpha is a scaling factor
1067// * \field_name is a field name
1068// *
1069// */
1070// DEPRECATED MoFEMErrorCode field_scale(const double alpha,
1071// const std::string &field_name);
1072
1073// /** \brief use FieldBlas
1074// * \brief set field
1075// * \ingroup mofem_field_algebra
1076// * \todo should be moved to independent interface, i.e. FieldAlgebra
1077// *
1078// * field_y = val
1079// *
1080// * \param val
1081// * \param entity type
1082// * \param field_name
1083// *
1084// */
1085// DEPRECATED MoFEMErrorCode set_field(const double val, const EntityType type,
1086// const std::string &field_name);
1087
1088// /** \deprecated use FieldBlas
1089// * \brief set field
1090// * \ingroup mofem_field_algebra
1091// * \todo should be moved to independent interface, i.e. FieldAlgebra
1092// *
1093// * field_y = val
1094// *
1095// * \param val
1096// * \param entity type
1097// * \param on enties
1098// * \param field_name
1099// *
1100// */
1101// DEPRECATED MoFEMErrorCode set_field(const double val, const EntityType type,
1102// const Range &ents,
1103// const std::string &field_name);
1104
1105// /**@}*/
1106
1107// /** \name Get adjacencies */
1108
1109// /**@{*/
1110
1111// /** \brief Get the adjacencies associated with a entity to entities of a
1112// * specified dimension. \ingroup mofem_ref_ents \todo Should be outsourced to
1113// * separate interface, i.e. BitLevelManager
1114// *
1115// * bit ref level of adjacent entities is equal to bit ref level of adjacent
1116// * entities
1117// */
1118// DEPRECATED MoFEMErrorCode
1119// get_adjacencies_equality(const EntityHandle from_entiti,
1120// const int to_dimension, Range &adj_entities) const;
1121
1122// /** \brief Get the adjacencies associated with a entity to entities of a
1123// * specified dimension. \ingroup mofem_ref_ents
1124// *
1125// * bit ref level of adjacent entities is any of bit ref level of adjacent
1126// * entities
1127// */
1128// DEPRECATED MoFEMErrorCode get_adjacencies_any(const EntityHandle from_entiti,
1129// const int to_dimension,
1130// Range &adj_entities) const;
1131
1132// /** \brief Get the adjacencies associated with a entity to entities of a
1133// * specified dimension. \ingroup mofem_ref_ents \todo Should be outsourced to
1134// * separate interface, i.e. BitLevelManage
1135// *
1136// * bit ref level of adjacent entities is equal to bit ref level of adjacent
1137// * entities
1138// */
1139// DEPRECATED MoFEMErrorCode get_adjacencies(
1140// const Problem *problem_ptr, const EntityHandle *from_entities,
1141// const int num_netities, const int to_dimension, Range &adj_entities,
1142// const int operation_type = moab::Interface::INTERSECT,
1143// const int verb = 0) const;
1144
1145// /** \brief Get the adjacencies associated with a entity to entities of a
1146// * specified dimension. \ingroup mofem_ref_ents \todo Should be outsourced to
1147// * separate interface, i.e. BitLevelManage
1148// *
1149// * bit ref level of adjacent entities is equal to bit ref level of adjacent
1150// * entities
1151// */
1152// DEPRECATED MoFEMErrorCode get_adjacencies(
1153// const BitRefLevel &bit, const EntityHandle *from_entities,
1154// const int num_netities, const int to_dimension, Range &adj_entities,
1155// const int operation_type = moab::Interface::INTERSECT,
1156// const int verb = 0) const;
1157
1158// /**@}*/
1159
1160// /**@}*/
1161
1162// /** \name Clear and remove */
1163
1164// /**@{*/
1165
1166// /** \deprecated Clear dofs by bit level
1167// */
1168// DEPRECATED MoFEMErrorCode clear_dofs_fields(const BitRefLevel &bit,
1169// const BitRefLevel &mask,
1170// int verb = -1);
1171
1172// /** \deprecated use clear_ents_fields_by_bit_ref
1173// */
1174// DEPRECATED MoFEMErrorCode clear_ents_fields(const BitRefLevel &bit,
1175// const BitRefLevel &mask,
1176// int verb = -1);
1177
1178// /** \deprecated use clear_finite_elements_by_bit_ref
1179// */
1180// DEPRECATED MoFEMErrorCode clear_finite_elements(const BitRefLevel &bit,
1181// const BitRefLevel &mask,
1182// int verb = -1);
1183
1184// /**@}*/
1185
1186// /**@}*/
1187
1188// /** \name Clear and remove */
1189
1190// /**@{*/
1191
1192// /**
1193// * \brief set field entities on vertices
1194// * \ingroup mofem_field
1195// *
1196// * The lower dimension entities are added depending on the space type
1197// * \param nodes contains set vertices
1198// * \param name of the field
1199// */
1200// DEPRECATED MoFEMErrorCode add_ents_to_field_by_VERTICEs(
1201// const Range &nodes, const std::string &name, int verb = -1);
1202
1203// /**
1204// * \brief set field entities on vertices
1205// * \ingroup mofem_field
1206// *
1207// * The lower dimension entities are added depending on the space type
1208// * \param meshset contains set vertices
1209// * \param name of the field
1210// */
1211// DEPRECATED MoFEMErrorCode add_ents_to_field_by_VERTICEs(
1212// const EntityHandle meshset, const std::string &name, int verb = -1);
1213
1214// /**
1215// * \brief set field entities form adjacencies of edges
1216// * \ingroup mofem_field
1217// *
1218// * The lower dimension entities are added depending on the space type
1219// * \param range contains set edges
1220// * \param name of the field
1221// */
1222// DEPRECATED MoFEMErrorCode add_ents_to_field_by_EDGEs(const Range &edges,
1223// const std::string &name,
1224// int verb = -1);
1225
1226// /**
1227// * \brief set field entities form adjacencies of edges
1228// * \ingroup mofem_field
1229// *
1230// * The lower dimension entities are added depending on the space type
1231// * \param meshset contains set edges
1232// * \param name of the field
1233// */
1234// DEPRECATED MoFEMErrorCode add_ents_to_field_by_EDGEs(
1235// const EntityHandle meshset, const std::string &name, int verb = -1);
1236
1237// /**
1238// * \brief set field entities form adjacencies of triangles
1239// * \ingroup mofem_field
1240// *
1241// * The lower dimension entities are added depending on the space type
1242// * \param meshset contains set triangles
1243// * \param name of the field
1244// */
1245// DEPRECATED MoFEMErrorCode add_ents_to_field_by_TRIs(
1246// const EntityHandle meshset, const std::string &name, int verb = -1);
1247
1248// /**
1249// * \brief set field entities form adjacencies of triangles
1250// * \ingroup mofem_field
1251// *
1252// * The lower dimension entities are added depending on the space type
1253// * \param range triangles
1254// * \param name of the field
1255// */
1256// DEPRECATED MoFEMErrorCode add_ents_to_field_by_TRIs(const Range &tris,
1257// const std::string &name,
1258// int verb = -1);
1259
1260// /**
1261// * \brief set field entities from adjacencies of tetrahedron
1262// * \ingroup mofem_field
1263// *
1264// * The lower dimension entities are added depending on the space type
1265// * \param meshset contains set tetrahedron
1266// * \param name of the field
1267// */
1268// DEPRECATED MoFEMErrorCode add_ents_to_field_by_TETs(
1269// const EntityHandle meshset, const std::string &name, int verb = -1);
1270
1271// /**
1272// * \brief set field entities from adjacencies of tetrahedron
1273// * \ingroup mofem_field
1274// *
1275// * The lower dimension entities are added depending on the space type
1276// * \param range contains set tetrahedron
1277// * \param name of the field
1278// */
1279// DEPRECATED MoFEMErrorCode add_ents_to_field_by_TETs(const Range &tets,
1280// const std::string &name,
1281// int verb = -1);
1282
1283// /**
1284// * \deprecated use add_ents_to_field_by_type
1285// * \brief set field entities from adjacencies of quads
1286// * \ingroup mofem_field
1287// *
1288// * The lower dimension entities are added depending on the space type
1289// * \param quads range contains set quads
1290// * \param name of the field
1291// */
1292// DEPRECATED MoFEMErrorCode add_ents_to_field_by_QUADs(const Range &quads,
1293// const std::string &name,
1294// int verb = -1);
1295
1296// /**
1297// * \deprecated use add_ents_to_field_by_type
1298// * \brief set field entities from adjacencies of quads
1299// * \ingroup mofem_field
1300// *
1301// * The lower dimension entities are added depending on the space type
1302// * \param meshset contains set quads
1303// * \param name of the field
1304// */
1305// DEPRECATED MoFEMErrorCode add_ents_to_field_by_QUADs(EntityHandle meshset,
1306// const std::string &name,
1307// int verb = -1);
1308
1309// /**
1310// * \deprecated use add_ents_to_field_by_type
1311// * \brief set field entities from adjacencies of prisms
1312// * \ingroup mofem_field
1313// *
1314// * The lower dimension entities are added depending on the space type
1315// * \param prisms range contains set prisms
1316// * \param name of the field
1317// */
1318// DEPRECATED MoFEMErrorCode add_ents_to_field_by_PRISMs(const Range &prisms,
1319// const std::string &name,
1320// int verb = -1);
1321
1322// /**
1323// * \deprecated use add_ents_to_field_by_type
1324// * \brief set field entities from adjacencies of prisms
1325// * \ingroup mofem_field
1326// *
1327// * The lower dimension entities are added depending on the space type
1328// * \param meshset contains set prisms
1329// * \param name of the field
1330// */
1331// DEPRECATED MoFEMErrorCode add_ents_to_field_by_PRISMs(EntityHandle meshset,
1332// const std::string &name,
1333// int verb = -1);
1334
1335// /**@}*/
1336
1337// /** \name Create matrices (will be moved to independent interface) */
1338
1339// /**@{*/
1340
1341// /**
1342// * @deprecated Use MatrixInterface
1343// *
1344// * \code
1345// * CHKERR m_field.getInterface<MatrixManager>()
1346// * ->createMPIAIJWithArrays<PetscGlobalIdx_mi_tag>(name, Aij, verb);
1347// * \endcode
1348// */
1349// DEPRECATED MoFEMErrorCode MatCreateMPIAIJWithArrays(
1350// const std::string &name, Mat *Aij, int verb = DEFAULT_VERBOSITY);
1351
1352// /**
1353// * @deprecated Use MatrixInterface
1354// *
1355// * \code
1356// * CHKERR m_field.getInterface<MatrixManager>()
1357// * ->createMPIAIJWithArrays<PetscGlobalIdx_mi_tag>(name, Aij, verb);
1358// * \endcode
1359// */
1360// DEPRECATED MoFEMErrorCode MatCreateMPIAdj_with_Idx_mi_tag(
1361// const std::string &name, Mat *Adj, int verb = DEFAULT_VERBOSITY);
1362
1363// /**
1364// * @deprecated Use MatrixInterface
1365// *
1366// * \code
1367// * CHKERR m_field.getInterface<MatrixManager>()
1368// * ->createSeqAIJWithArrays<PetscLocalIdx_mi_tag>(name, Adj, verb);
1369// * \endcode
1370// *
1371// */
1372// DEPRECATED MoFEMErrorCode MatCreateSeqAIJWithArrays(
1373// const std::string &name, Mat *Aij, PetscInt **i, PetscInt **j,
1374// PetscScalar **v, int verb = DEFAULT_VERBOSITY);
1375
1376// /**@}*/
1377
1378// /** \name Making loops on elements and entities */
1379
1380// /**@{*/
1381
1382// using CoreInterface::loop_finite_elements;
1383
1384// /**
1385// * @deprecated Use version from core interface
1386// */
1387// DEPRECATED MoFEMErrorCode loop_finite_elements(const Problem *problem_ptr,
1388// const std::string &fe_name,
1389// FEMethod &method,
1390// int lower_rank, int upper_rank,
1391// MoFEMTypes bh,
1392// int verb = DEFAULT_VERBOSITY);
1393
1394// /**
1395// * @deprecated Use version from core interface
1396// */
1397// DEPRECATED MoFEMErrorCode loop_finite_elements(
1398// const std::string &problem_name, const std::string &fe_name,
1399// FEMethod &method, int lower_rank, int upper_rank, MoFEMTypes bh,
1400// int verb = DEFAULT_VERBOSITY);
1401
1402// /**
1403// * @deprecated Use version from core interface
1404// */
1405// DEPRECATED MoFEMErrorCode loop_finite_elements(
1406// const std::string &problem_name, const std::string &fe_name,
1407// FEMethod &method, MoFEMTypes bh, int verb = DEFAULT_VERBOSITY);
1408
1409// /**@}*/
1410
1411// /** \name Comm */
1412
1413// /**@{*/
1414
1415// /**
1416// * @brief make entities from proc 0 shared on all proc
1417// * @deprecated Use CommInterface
1418// *
1419// * \note collective - need tu be run on all processors in communicator
1420// *
1421// * @param entities
1422// * @param num_entities
1423// * @param my_proc default proc id to share from
1424// * @param verb
1425// * @return MoFEMErrorCode
1426// */
1427// DEPRECATED MoFEMErrorCode make_entities_multishared(
1428// const EntityHandle *entities, const int num_entities,
1429// const int my_proc = 0, int verb = DEFAULT_VERBOSITY);
1430// /**
1431// * @brief make entities from proc 0 shared on all proc
1432// * @deprecated Use CommInterface
1433// *
1434// * \note collective - need tu be run on all processors in communicator
1435// *
1436// * @param entities
1437// * @param my_proc default proc id to share from
1438// * @param verb
1439// * @return MoFEMErrorCode
1440// */
1441// DEPRECATED MoFEMErrorCode make_entities_multishared(
1442// Range &entities, const int my_proc = 0, int verb = DEFAULT_VERBOSITY);
1443
1444// /**
1445// * @brief make field entities multi shared
1446// * @deprecated Use CommInterface
1447// *
1448// * \note collective - need tu be run on all processors in communicator
1449// *
1450// * @param field_name
1451// * @param owner_proc
1452// * @param verb
1453// * @return MoFEMErrorCode
1454// */
1455// DEPRECATED MoFEMErrorCode make_field_entities_multishared(
1456// const std::string field_name, const int owner_proc = 0,
1457// int verb = DEFAULT_VERBOSITY);
1458
1459// /**
1460// * @brief Exchange field data
1461// * @deprecated Use CommInterface
1462// *
1463// * Exchange field for all shared and ghosted entities. This function should be
1464// * called collectively over the communicator for this ParallelComm. If the
1465// * entities vector is empty, all shared entities participate in the exchange.
1466// * If a proc has no owned entities this function must still be called since it
1467// * is collective.
1468// *
1469// * \note collective - need tu be run on all processors in communicator
1470// *
1471// * \todo It is not working if field has entities diffrent than vertices.
1472// *
1473// * @param verb
1474// * @param field_name @return MoFEMErrorCode
1475// */
1476// DEPRECATED MoFEMErrorCode exchange_field_data(const std::string field_name,
1477// int verb = DEFAULT_VERBOSITY);
1478
1479 /**@}*/
1480
1481 /** \name Synchronize */
1482
1483 /**@{*/
1484
1485 /** synchronize entity range on processors (collective)
1486
1487 collective - need tu be run on all processors in communicator
1488
1489 @deprecated Use Comm Interface
1490 */
1492 int verb = DEFAULT_VERBOSITY);
1493
1494 /** synchronize entity range on processors (collective)
1495 * \ingroup mofem_field
1496
1497 collective - need tu be run on all processors in communicator
1498
1499 \param name field
1500 \param verbose level
1501
1502 \deprecated Use CommInterface
1503 */
1505 const std::string &name, int verb = DEFAULT_VERBOSITY);
1506
1507 /**@}*/
1508
1509// /** \name Delete and remove */
1510
1511// /**@{*/
1512
1513// /**
1514// * \deprecated use remove_parents_by_bit_ref
1515// */
1516// DEPRECATED MoFEMErrorCode
1517// remove_parents_by_by_bit_ref(const BitRefLevel bit, const BitRefLevel mask,
1518// int verb = DEFAULT_VERBOSITY);
1519
1520// /**@}*/
1521
1522};
1523
1524} // namespace MoFEM
1525
1526#endif // __INTERFACE_DEPRECATED_HPP__
@ DEFAULT_VERBOSITY
Definition: definitions.h:207
#define DEPRECATED
Definition: definitions.h:17
const int dim
DEPRECATED MoFEMErrorCode synchronise_field_entities(const std::string &name, int verb=DEFAULT_VERBOSITY)
auto bit
set bit
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:56
std::bitset< BITREFLEVEL_SIZE > BitRefLevel
Bit structure attached to each entity identifying to what mesh entity is attached.
Definition: Types.hpp:40
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:10
Deprecated interface functions.
DEPRECATED MoFEMErrorCode partition_mesh(const Range &ents, const int dim, const int adj_dim, const int n_parts, int verb=-1)
Set partition tag to each finite element in the problem.
DEPRECATED MoFEMErrorCode synchronise_entities(Range &ent, int verb=DEFAULT_VERBOSITY)
DEPRECATED MoFEMErrorCode seed_ref_level(const Range &ents, const BitRefLevel &bit, const bool only_tets=true, int verb=-1)
seed entities in the range and their adjacencies in a particular BitRefLevel
DEPRECATED MoFEMErrorCode seed_ref_level_3D(const EntityHandle meshset, const BitRefLevel &bit, int verb=-1)
seed 2D entities in the meshset and their adjacencies (only TETs adjacencies) in a particular BitRefL...
virtual DEPRECATED MoFEMErrorCode seed_ref_level_2D(const EntityHandle meshset, const BitRefLevel &bit, int verb=-1)
seed 2D entities (Triangles entities only) in the meshset and their adjacencies (only TRIs adjacencie...