v0.12.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  */
20 namespace 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  */
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  */
83  DEPRECATED MoFEMErrorCode seed_ref_level(const Range &ents,
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
276  const int msId);
277 
279  const int ms_id, const CubitBCType cubit_bc_type, const int dimension,
280  Range &entities, const bool recursive = false);
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  */
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  */
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  */
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  */
381 
382  /** \deprecated use MeshsetsManager interface instead
383  */
385 
386  /** \deprecated use MeshsetsManager interface instead
387  */
389 
390  /** \deprecated use MeshsetsManager interface instead
391  */
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  **/
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  */
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  */
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  */
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
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
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  */
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  */
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  */
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
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
1179  const BitRefLevel &mask,
1180  int verb = -1);
1181 
1182  /** \deprecated use clear_ents_fields_by_bit_ref
1183  */
1185  const BitRefLevel &mask,
1186  int verb = -1);
1187 
1188  /** \deprecated use clear_finite_elements_by_bit_ref
1189  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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  */
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 
1393 
1394  /**
1395  * @deprecated Use version from core interface
1396  */
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  */
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  */
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  */
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  */
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  */
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  */
1528  int verb = DEFAULT_VERBOSITY);
1529 
1530  /**@}*/
1531 
1532 };
1533 
1534 } // namespace MoFEM
1535 
1536 #endif // __INTERFACE_DEPRECATED_HPP__
constexpr double alpha
@ DEFAULT_VERBOSITY
Definition: definitions.h:220
RowColData
RowColData.
Definition: definitions.h:136
MoFEMTypes
Those types control how functions respond on arguments, f.e. error handling.
Definition: definitions.h:110
#define DEPRECATED
Definition: definitions.h:30
const int dim
virtual DEPRECATED MoFEMErrorCode add_ents_to_finite_element_EntType_by_bit_ref(const BitRefLevel &bit, const std::string &name, EntityType type, int verb=-1)=0
add TET elements from given refinement level to finite element database given by name
virtual DEPRECATED MoFEMErrorCode add_ents_to_finite_element_EntType_by_bit_ref(const BitRefLevel &bit, const BitRefLevel &mask, const std::string &name, EntityType type, int verb=-1)=0
add TET entities from given refinement level to finite element database given by name
DEPRECATED MoFEMErrorCode add_ents_to_field_by_PRISMs(EntityHandle meshset, const std::string &name, int verb=-1)
set field entities from adjacencies of prisms
DEPRECATED MoFEMErrorCode add_ents_to_field_by_TRIs(const EntityHandle meshset, const std::string &name, int verb=-1)
set field entities form adjacencies of triangles
DEPRECATED MoFEMErrorCode add_ents_to_field_by_TETs(const EntityHandle meshset, const std::string &name, int verb=-1)
set field entities from adjacencies of tetrahedron
DEPRECATED MoFEMErrorCode add_ents_to_field_by_TRIs(const Range &tris, const std::string &name, int verb=-1)
set field entities form adjacencies of triangles
DEPRECATED MoFEMErrorCode add_ents_to_field_by_VERTICEs(const EntityHandle meshset, const std::string &name, int verb=-1)
set field entities on vertices
DEPRECATED MoFEMErrorCode synchronise_field_entities(const std::string &name, int verb=DEFAULT_VERBOSITY)
DEPRECATED MoFEMErrorCode add_ents_to_field_by_PRISMs(const Range &prisms, const std::string &name, int verb=-1)
set field entities from adjacencies of prisms
DEPRECATED MoFEMErrorCode add_ents_to_field_by_QUADs(const Range &quads, const std::string &name, int verb=-1)
set field entities from adjacencies of quads
DEPRECATED MoFEMErrorCode update_field_meshset_by_entities_children(const BitRefLevel &child_bit, int verb=-1)
update fields meshesets by child entities
DEPRECATED MoFEMErrorCode add_ents_to_field_by_TETs(const Range &tets, const std::string &name, int verb=-1)
set field entities from adjacencies of tetrahedron
DEPRECATED MoFEMErrorCode add_ents_to_field_by_QUADs(EntityHandle meshset, const std::string &name, int verb=-1)
set field entities from adjacencies of quads
DEPRECATED MoFEMErrorCode partition_ghost_dofs(const std::string &name, int verb=-1)
determine ghost nodes
DEPRECATED MoFEMErrorCode add_ents_to_field_by_EDGEs(const Range &edges, const std::string &name, int verb=-1)
set field entities form adjacencies of edges
DEPRECATED MoFEMErrorCode add_ents_to_field_by_EDGEs(const EntityHandle meshset, const std::string &name, int verb=-1)
set field entities form adjacencies of edges
DEPRECATED MoFEMErrorCode add_ents_to_field_by_VERTICEs(const Range &nodes, const std::string &name, int verb=-1)
set field entities on vertices
virtual MoFEMErrorCode loop_finite_elements(const std::string &problem_name, const std::string &fe_name, FEMethod &method, boost::shared_ptr< NumeredEntFiniteElement_multiIndex > fe_ptr=nullptr, MoFEMTypes bh=MF_EXIST, CacheTupleWeakPtr cache_ptr=CacheTupleSharedPtr(), int verb=DEFAULT_VERBOSITY)=0
Make a loop over finite elements.
DEPRECATED MoFEMErrorCode get_problem_elements_layout(const std::string &name, const std::string &fe_name, PetscLayout *layout, int verb=-1)
Get layout of elements in the problem.
DEPRECATED MoFEMErrorCode get_adjacencies(const Problem *problem_ptr, const EntityHandle *from_entities, const int num_netities, const int to_dimension, Range &adj_entities, const int operation_type=moab::Interface::INTERSECT, const int verb=0) const
Get the adjacencies associated with a entity to entities of a specified dimension....
DEPRECATED MoFEMErrorCode get_adjacencies_equality(const EntityHandle from_entiti, const int to_dimension, Range &adj_entities) const
Get the adjacencies associated with a entity to entities of a specified dimension....
DEPRECATED MoFEMErrorCode get_adjacencies_any(const EntityHandle from_entiti, const int to_dimension, Range &adj_entities) const
Get the adjacencies associated with a entity to entities of a specified dimension.
DEPRECATED MoFEMErrorCode get_entities_by_ref_level(const BitRefLevel &bit, const BitRefLevel &mask, const EntityHandle meshset)
add all ents from ref level given by bit to meshset
DEPRECATED MoFEMErrorCode get_entities_by_type_and_ref_level(const BitRefLevel &bit, const BitRefLevel &mask, const EntityType type, const EntityHandle meshset, int verb=-1)
add all ents from ref level given by bit to meshset
DEPRECATED MoFEMErrorCode set_other_local_ghost_vector(const Problem *problem_ptr, const std::string &fiel_name, const std::string &cpy_field_name, RowColData rc, Vec V, InsertMode mode, ScatterMode scatter_mode, int verb=-1)
Copy vector to field which is not part of the problem.
DEPRECATED MoFEMErrorCode set_other_global_ghost_vector(const Problem *problem_ptr, const std::string &field_name, const std::string &cpy_field_name, RowColData rc, Vec V, InsertMode mode, ScatterMode scatter_mode, int verb=-1)
Copy vector to field which is not part of the problem (collective)
DEPRECATED MoFEMErrorCode VecCreateSeq(const std::string &name, RowColData rc, Vec *V) const
create local vector for problem
DEPRECATED MoFEMErrorCode set_global_ghost_vector(const Problem *problem_ptr, RowColData rc, Vec V, InsertMode mode, ScatterMode scatter_mode) const
set values of vector from/to mesh database (collective)
DEPRECATED MoFEMErrorCode ISCreateProblemFieldAndRank(const std::string &problem, RowColData rc, const std::string &field, int min_coeff_idx, int max_coeff_idx, IS *is, int verb=-1) const
create IS for given problem, field and rank range (collective)
DEPRECATED MoFEMErrorCode VecScatterCreate(Vec xin, const std::string &x_problem, const std::string &x_field_name, RowColData x_rc, Vec yin, const std::string &y_problem, const std::string &y_field_name, RowColData y_rc, VecScatter *newctx, int verb=-1) const
create scatter for vectors form one to another problem (collective)
DEPRECATED MoFEMErrorCode VecCreateGhost(const std::string &name, RowColData rc, Vec *V) const
create ghost vector for problem (collective)
DEPRECATED MoFEMErrorCode set_local_ghost_vector(const Problem *problem_ptr, RowColData rc, Vec V, InsertMode mode, ScatterMode scatter_mode) const
set values of vector from/to meshdatabase
FTensor::Index< 'i', SPACE_DIM > i
double v
phase velocity of light in medium (cm/ns)
FTensor::Index< 'j', 3 > j
const FTensor::Tensor2< T, Dim, Dim > Vec
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:67
std::bitset< 32 > CubitBCType
Definition: Types.hpp:63
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 set_cubit_msId_attribites(const CubitBCType cubit_bc_type, const int ms_id, const std::vector< double > &attributes, const std::string name="")
set attributes to cubit meshset
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 partition_simple_problem(const std::string &name, int verb=-1)
partition problem dofs
DEPRECATED MoFEMErrorCode build_sub_problem(const std::string &out_name, const std::vector< std::string > &fields_row, const std::vector< std::string > &fields_col, const std::string &main_problem, const bool square_matrix=true, int verb=-1)
build sub problem
virtual DEPRECATED MoFEMErrorCode build_problem_on_distributed_mesh(int verb=-1)=0
build problem data structures, assuming that mesh is distributed (collective)
DEPRECATED MoFEMErrorCode build_problem(const std::string &name, const bool square_matrix, int verb=-1)
build problem data structures
DEPRECATED MoFEMErrorCode field_scale(const double alpha, const std::string &field_name)
scale field
DEPRECATED MoFEMErrorCode MatCreateMPIAIJWithArrays(const std::string &name, Mat *Aij, int verb=DEFAULT_VERBOSITY)
DEPRECATED MoFEMErrorCode make_field_entities_multishared(const std::string field_name, const int owner_proc=0, int verb=DEFAULT_VERBOSITY)
make field entities multi shared
DEPRECATED MoFEMErrorCode MatCreateMPIAdj_with_Idx_mi_tag(const std::string &name, Mat *Adj, int verb=DEFAULT_VERBOSITY)
DEPRECATED MoFEMErrorCode print_cubit_pressure_set() const
DEPRECATED MoFEMErrorCode delete_cubit_msId(const CubitBCType cubit_bc_type, const int msId)
delete cubit meshset
DEPRECATED MoFEMErrorCode MatCreateSeqAIJWithArrays(const std::string &name, Mat *Aij, PetscInt **i, PetscInt **j, PetscScalar **v, int verb=DEFAULT_VERBOSITY)
DEPRECATED MoFEMErrorCode get_cubit_msId_entities_by_dimension(const int ms_id, const CubitBCType cubit_bc_type, const int dimension, Range &entities, const bool recursive=false)
DEPRECATED MoFEMErrorCode set_cubit_msId_attribites_data_structure(const CubitBCType cubit_bc_type, const int ms_id, const GenericAttributeData &data, const std::string name="")
set (material) data structure to cubit meshset
DEPRECATED MoFEMErrorCode set_cubit_msId_bc_data_structure(const CubitBCType cubit_bc_type, const int ms_id, const GenericCubitBcData &data)
set boundary data structure to meshset
DEPRECATED MoFEMErrorCode shift_right_bit_ref(const int shift, int verb=-1)
right shift bit ref level
DEPRECATED MoFEMErrorCode set_field(const double val, const EntityType type, const std::string &field_name)
use FieldBlas
DEPRECATED MoFEMErrorCode seed_ref_level_MESHSET(const EntityHandle meshset, const BitRefLevel &bit, int verb=-1)
DEPRECATED MoFEMErrorCode build_problem_on_distributed_mesh(const std::string &name, const bool square_matrix=true, int verb=-1)
build problem data structures, assuming that mesh is distributed (collective)
DEPRECATED MoFEMErrorCode synchronise_entities(Range &ent, int verb=DEFAULT_VERBOSITY)
DEPRECATED MoFEMErrorCode seed_finite_elements(const EntityHandle meshset, int verb=-1)
DEPRECATED MoFEMErrorCode clear_ents_fields(const BitRefLevel &bit, const BitRefLevel &mask, int verb=-1)
DEPRECATED MoFEMErrorCode print_cubit_force_set() const
DEPRECATED MoFEMErrorCode ISCreateFromProblemFieldToOtherProblemField(const std::string &x_problem, const std::string &x_field_name, RowColData x_rc, const std::string &y_problem, const std::string &y_field_name, RowColData y_rc, std::vector< int > &idx, std::vector< int > &idy, int verb=-1) const
create IS for give two problems and field
DEPRECATED MoFEMErrorCode update_meshset_by_entities_children(const EntityHandle parent, const BitRefLevel &child_bit, const EntityHandle child, EntityType child_type, const bool recursive=false, int verb=-1)
Get child entities form meshset containing parent entities.
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 partition_problem(const std::string &name, int verb=-1)
partition problem dofs (collective)
DEPRECATED MoFEMErrorCode partition_compose_problem(const std::string &name, const std::string &problem_for_rows, const bool copy_rows, const std::string &problem_for_cols, const bool copy_cols, int verb=-1)
build indexing and partition problem inheriting indexing and partitioning from two other problems
DEPRECATED MoFEMErrorCode get_cubit_msId_meshset(const int msId, const unsigned int cubit_bc_type, EntityHandle &meshset)
get meshset from CUBIT Id and CUBIT type
DEPRECATED MoFEMErrorCode exchange_field_data(const std::string field_name, int verb=DEFAULT_VERBOSITY)
Exchange field data.
DEPRECATED MoFEMErrorCode remove_parents_by_by_bit_ref(const BitRefLevel bit, const BitRefLevel mask, int verb=DEFAULT_VERBOSITY)
DEPRECATED MoFEMErrorCode partition_finite_elements(const std::string &name, bool part_from_moab=false, int low_proc=-1, int hi_proc=-1, int verb=-1)
partition finite elements
virtual MoFEMErrorCode loop_finite_elements(const std::string &problem_name, const std::string &fe_name, FEMethod &method, boost::shared_ptr< NumeredEntFiniteElement_multiIndex > fe_ptr=nullptr, MoFEMTypes bh=MF_EXIST, CacheTupleWeakPtr cache_ptr=CacheTupleSharedPtr(), int verb=DEFAULT_VERBOSITY)=0
Make a loop over finite elements.
DEPRECATED MoFEMErrorCode field_axpy(const double alpha, const std::string &fiel_name_x, const std::string &field_name_y, bool error_if_missing=false, bool creat_if_missing=false)
axpy fields
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...
DEPRECATED MoFEMErrorCode ISCreateProblemOrder(const std::string &problem, RowColData rc, int min_order, int max_order, IS *is, int verb=-1) const
create IS for given order range (collective)
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...
DEPRECATED bool check_msId_meshset(const int msId, const CubitBCType cubit_bc_type)
check for CUBIT Id and CUBIT type
virtual DEPRECATED MoFEMErrorCode build_problems(int verb=-1)=0
build problem data structures
DEPRECATED MoFEMErrorCode print_cubit_materials_set() const
DEPRECATED MoFEMErrorCode print_cubit_displacement_set() const
DEPRECATED MoFEMErrorCode get_cubit_meshsets(const unsigned int cubit_bc_type, Range &meshsets)
get all CUBIT meshsets by CUBIT type
DEPRECATED MoFEMErrorCode update_finite_element_meshset_by_entities_children(const std::string name, const BitRefLevel &child_bit, const EntityType fe_ent_type, int verb=-1)
update finite element mesheset by child entities
DEPRECATED MoFEMErrorCode add_cubit_msId(const CubitBCType cubit_bc_tyep, const int msId, const std::string name="")
add cubit meshset
DEPRECATED MoFEMErrorCode make_entities_multishared(const EntityHandle *entities, const int num_entities, const int my_proc=0, int verb=DEFAULT_VERBOSITY)
make entities from proc 0 shared on all proc
DEPRECATED MoFEMErrorCode clear_dofs_fields(const BitRefLevel &bit, const BitRefLevel &mask, int verb=-1)
DEPRECATED MoFEMErrorCode clear_finite_elements(const BitRefLevel &bit, const BitRefLevel &mask, int verb=-1)
structure for User Loop Methods on finite elements
Generic attribute data structure.
Generic bc data structure.
Definition: BCData.hpp:31
keeps basic data about problem