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