v0.13.1
Loading...
Searching...
No Matches
definitions.h
Go to the documentation of this file.
1/** \file definitions.h
2 * \brief useful compiler directives and definitions
3 */
4
5
6#ifndef __DEFINITONS_H__
7#define __DEFINITONS_H__
8
9#ifndef DEPRECATED
10// taken from http://stackoverflow.com/questions/295120/c-mark-as-deprecated
11#ifdef __GNUC__
12#define DEPRECATED __attribute__((deprecated))
13#elif defined(_MSC_VER)
14#define DEPRECATED __declspec(deprecated)
15#else
16#pragma message("WARNING: You need to implement DEPRECATED for this compiler")
17#define DEPRECATED
18#endif
19#endif
20
21/** \brief Error handling
22 *
23 * This is complementary to PETSC error codes. The numerical values for
24 * these are defined in include/petscerror.h. The names are defined in err.c
25 *
26 * MoAB error messages are defined in moab/Types.hpp
27 *
28 */
42};
43
44const static char *const MoFEMErrorCodesNames[] = {
45 "MOFEM_SUCCESS",
46 "MOFEM_DATA_INCONSISTENCY",
47 "MOFEM_NOT_IMPLEMENTED",
48 "MOFEM_NOT_FOUND",
49 "MOFEM_OPERATION_UNSUCCESSFUL",
50 "MOFEM_IMPOSIBLE_CASE",
51 "MOFEM_INVALID_DATA",
52 "MOFEM_MOFEMEXCEPTION_THROW",
53 "MOFEM_STD_EXCEPTION_THROW",
54 "MOFEM_ATOM_TEST_INVALID",
55 "MOFEM_MOAB_ERROR"};
56
57/// \brief approximation base
59 NOBASE = 0,
61 1, ///< Ainsworth Cole (Legendre) approx. base \cite NME:NME847
62 AINSWORTH_LOBATTO_BASE, ///< Like AINSWORTH_LEGENDRE_BASE but with Lobatto
63 ///< base instead Legendre \cite beriot2015efficient
64 AINSWORTH_BERNSTEIN_BEZIER_BASE, ///< See \cite ainsworth2011bernstein and
65 ///< \cite ainsworth2018bernstein
66 DEMKOWICZ_JACOBI_BASE, ///< Construction of base is by Demkowicz \cite
67 ///< fuentes2015orientation
68 USER_BASE, ///< user implemented approximation base
70};
71
72const static char *const ApproximationBaseNames[] = {
73 "NOBASE",
74 "AINSWORTH_LEGENDRE_BASE",
75 "AINSWORTH_LOBATTO_BASE",
76 "AINSWORTH_BERNSTEIN_BEZIER_BASE",
77 "DEMKOWICZ_JACOBI_BASE",
78 "USER_BASE",
79 "LASTBASE"};
80
81/// \brief approximation spaces
84 NOFIELD = 1, ///< scalar or vector of scalars describe (no true field)
85 H1, ///< continuous field
86 HCURL, ///< field with continuous tangents
87 HDIV, ///< field with continuous normal traction
88 L2, ///< field with C-1 continuity
89 LASTSPACE ///< FieldSpace in [ 0, LASTSPACE )
90};
91
92const static char *const FieldSpaceNames[] = {
93 "NOSPACE", "NOFIELD", "H1", "HCURL", "HDIV", "L2", "LASTSPACE"};
94
95/// \brief Those types control how functions respond on arguments, f.e. error
96/// handling
99 MF_EXCL = 1 << 0,
100 MF_EXIST = 1 << 1,
101 MF_NOT_THROW = 1 << 2
103
104/**
105 * @brief Coordinate system names
106 *
107 */
108const static char *const CoordinateTypesNames[] = {"Cartesian", "Polar",
109 "Cylindrical", "Spherical"};
110/**
111 * @brief Coodinate system
112 *
113 */
121
122/// \brief RowColData
124
125/**
126 * Controls adjency multi_index container (e.g. BYROW is adjacenciecy by field
127 * on on rows), see \ref MoFEM::FieldEntityEntFiniteElementAdjacencyMap
128 *
129 */
130enum ByWhat {
131 BYROW = 1 << 0,
132 BYCOL = 1 << 1,
133 BYDATA = 1 << 2,
134 BYROWDATA = 1 << 0 | 1 << 2,
135 BYCOLDATA = 1 << 1 | 1 << 2,
136 BYROWCOL = 1 << 0 | 1 << 1,
137 BYALL = 1 << 0 | 1 << 1 | 1 << 2
139
140/**
141 * \brief Types of sets and boundary conditions
142 *
143 */
146 NODESET = 1 << 0,
147 SIDESET = 1 << 1,
148 BLOCKSET = 1 << 2,
149 MATERIALSET = 1 << 3,
151 FORCESET = 1 << 5,
152 PRESSURESET = 1 << 6,
153 VELOCITYSET = 1 << 7,
156 HEATFLUXSET = 1 << 10,
157 INTERFACESET = 1 << 11,
158 UNKNOWNNAME = 1 << 12,
159 MAT_ELASTICSET = 1 << 13, ///< block name is "MAT_ELASTIC"
160 MAT_INTERFSET = 1 << 14,
161 MAT_THERMALSET = 1 << 15, ///< block name is "MAT_THERMAL"
162 BODYFORCESSET = 1 << 16, ///< block name is "BODY_FORCES"
163 MAT_MOISTURESET = 1 << 17, ///< block name is "MAT_MOISTURE"
164 DIRICHLET_BC = 1 << 18,
165 NEUMANN_BC = 1 << 19,
166 LASTSET_BC = 1 << 20
168
169// OFF_DEPRECATED static const unsigned int UNKNOWNCUBITNAME = UNKNOWNNAME;
170// OFF_DEPRECATED static const unsigned int LASTCUBITSET = LASTSET_BC;
171
172/**
173 * \brief Names of types of sets and boundary conditions
174 */
175const static char *const CubitBCNames[] = {
176 "UNKNOWNSET", "NODESET", "SIDESET", "BLOCKSET",
177 "MATERIALSET", "DISPLACEMENTSET", "FORCESET", "PRESSURESET",
178 "VELOCITYSET", "ACCELERATIONSET", "TEMPERATURESET", "HEATFLUXSET",
179 "INTERFACESET", "UNKNOWNNAME", "MAT_ELASTICSET", "MAT_INTERFSET",
180 "MAT_THERMALSET", "BODYFORCESSET", "MAT_MOISTURESET", "DIRICHLET_BC",
181 "NEUMANN_BC", "LASTSET_BC"};
182
183/**
184 * \brief Format in rows of vectorial base functions
185 */
187
188/**
189 * \brief Format in rows of vectorial base gradients of base functions
190 */
200 HVEC2_2
202
203/**
204 * \brief Verbosity levels
205 */
208 QUIET = 0,
214
215#define MYPCOMM_INDEX 0 ///< default communicator number PCOMM
216
217#define MAX_CORE_TMP 1 ///< maximal number of cores
218#define BITREFEDGES_SIZE 32 ///< number refined edges
219#define BITREFLEVEL_SIZE 128 ///< max number of refinements
220#define BITFIELDID_SIZE 32 ///< max number of fields
221#define BITFEID_SIZE 32 ///< max number of finite elements
222#define BITPROBLEMID_SIZE 32 ///< max number of problems
223#define BITINTERFACEUID_SIZE 32
224
225// This Is form MOAB
226#define MB_TYPE_WIDTH 4
227#define MB_ID_WIDTH (8 * sizeof(EntityHandle) - MB_TYPE_WIDTH)
228#define MB_TYPE_MASK ((EntityHandle)0xF << MB_ID_WIDTH)
229// 2^MB_TYPE_WIDTH-1 ------^
230
231#define MB_START_ID ((EntityID)1) ///< All entity id's currently start at 1
232#define MB_END_ID \
233 ((EntityID)MB_ID_MASK) ///< Last id is the complement of the MASK
234#define MB_ID_MASK (~MB_TYPE_MASK)
235
236#define MAX_DOFS_ON_ENTITY 512 ///< Maximal number of DOFs on entity
237#define MAX_PROCESSORS_NUMBER 1024 ///< Maximal number of processors
238#define DOF_UID_MASK \
239 (MAX_DOFS_ON_ENTITY - 1) ///< Mask for DOF number on entity form UId
240#define ENTITY_UID_MASK (~DOF_UID_MASK)
241
242#define NOT_USED(x) ((void)(x))
243
244/** \brief set barrier start
245 * Run code in sequence, starting from process 0, and ends on last process.
246 *
247 * It can be only used for testing. Do not use that function as a part of these
248 * code.
249 *
250 */
251#define BARRIER_PCOMM_RANK_START(PCMB) \
252 { \
253 for (unsigned int i = 0; i < PCMB->proc_config().proc_rank(); i++) \
254 MPI_Barrier(PCMB->proc_config().proc_comm()); \
255 };
256
257/** \deprecated Do use this macro, instead use BARRIER_PCOMM_RANK_START
258 */
259#define BARRIER_RANK_START(PCMB) \
260 { \
261 macro_is_deprecated_using_deprecated_function(); \
262 for (unsigned int i = 0; i < PCMB->proc_config().proc_rank(); i++) \
263 MPI_Barrier(PCMB->proc_config().proc_comm()); \
264 };
265
266/** \brief set barrier start
267 * Run code in sequence, starting from process 0, and ends on last process.
268 *
269 * It can be only used for testing. Do not use that function as a part of these
270 * code.
271 *
272 */
273#define BARRIER_PCOMM_RANK_END(PCMB) \
274 { \
275 for (unsigned int i = PCMB->proc_config().proc_rank(); \
276 i < PCMB->proc_config().proc_size(); i++) \
277 MPI_Barrier(PCMB->proc_config().proc_comm()); \
278 };
279
280/** \deprecated Do use this macro, instead use BARRIER_PCOMM_RANK_START
281 */
282#define BARRIER_RANK_END(PCMB) \
283 { \
284 macro_is_deprecated_using_deprecated_function(); \
285 for (unsigned int i = PCMB->proc_config().proc_rank(); \
286 i < PCMB->proc_config().proc_size(); i++) \
287 MPI_Barrier(PCMB->proc_config().proc_comm()); \
288 };
289
290/** \brief set barrier start
291 * Run code in sequence, starting from process 0, and ends on last process.
292 *
293 * It can be only used for testing. Do not use that function as a part of these
294 * code.
295 *
296 */
297#define BARRIER_MOFEM_RANK_START(MOFEM) \
298 { \
299 for (int i = 0; i < (MOFEM)->get_comm_rank(); i++) \
300 MPI_Barrier((MOFEM)->get_comm()); \
301 };
302
303/** \brief set barrier start
304 * Run code in sequence, starting from process 0, and ends on last process.
305 *
306 * It can be only used for testing. Do not use that function as a part of these
307 * code.
308 *
309 */
310#define BARRIER_MOFEM_RANK_END(MOFEM) \
311 { \
312 for (int i = (MOFEM)->get_comm_rank(); i < (MOFEM)->get_comm_size(); i++) \
313 MPI_Barrier((MOFEM)->get_comm()); \
314 };
315
316#ifdef __cplusplus
317extern "C" {
318#endif
319
320/**
321 * \brief Is used to indicate that macro is deprecated
322 * Do nothing just triggers error at the compilation
323 */
325
326#ifdef __cplusplus
327}
328#endif
329
330/**
331 * \brief First executable line of each MoFEM function, used for error handling.
332 Final line of MoFEM functions should be MoFEMFunctionReturn(0);
333
334 \node Not collective
335
336 Example
337 \code
338 PetscErrorCode fun() {
339 int something;
340 MoFEMFunctionBegin;
341 MoFEMFunctionReturn(0);
342 }
343 \endcode
344
345 */
346#define MoFEMFunctionBegin \
347 PetscFunctionBegin; \
348 try {
349
350/**
351 * @brief \brief Catch errors
352 *
353 * Usage in main functions
354 * \code
355 * int main(int argc, char *argv[]) {
356 *
357 * MoFEM::Core::Initialize(&argc, &argv, (char *)0, help);
358 *
359 * try {
360 *
361 * // More code here
362 *
363 * }
364 * CATCH_ERRORS;
365 *
366 * return MoFEM::Core::Finalize();
367 *
368 * }
369 * \endcode
370 *
371 */
372#define CATCH_ERRORS \
373 catch (MoFEMExceptionInitial const &ex) { \
374 return PetscError(PETSC_COMM_SELF, ex.lINE, PETSC_FUNCTION_NAME, __FILE__, \
375 ex.errorCode, PETSC_ERROR_INITIAL, ex.what()); \
376 } \
377 catch (MoFEMExceptionRepeat const &ex) { \
378 return PetscError(PETSC_COMM_SELF, ex.lINE, PETSC_FUNCTION_NAME, __FILE__, \
379 ex.errorCode, PETSC_ERROR_REPEAT, " "); \
380 } \
381 catch (MoFEMException const &ex) { \
382 SETERRQ(PETSC_COMM_SELF, ex.errorCode, ex.errorMessage); \
383 } \
384 catch (boost::bad_weak_ptr & ex) { \
385 std::string message("Boost bad weak ptr: " + std::string(ex.what()) + \
386 " at " + boost::lexical_cast<std::string>(__LINE__) + \
387 " : " + std::string(__FILE__) + " in " + \
388 std::string(PETSC_FUNCTION_NAME)); \
389 SETERRQ(PETSC_COMM_SELF, MOFEM_STD_EXCEPTION_THROW, message.c_str()); \
390 } \
391 catch (std::out_of_range & ex) { \
392 std::string message("Std out of range error: " + std::string(ex.what()) + \
393 " at " + boost::lexical_cast<std::string>(__LINE__) + \
394 " : " + std::string(__FILE__) + " in " + \
395 std::string(PETSC_FUNCTION_NAME)); \
396 SETERRQ(PETSC_COMM_SELF, MOFEM_STD_EXCEPTION_THROW, message.c_str()); \
397 } \
398 catch (std::exception const &ex) { \
399 std::string message("Std error: " + std::string(ex.what()) + " at " + \
400 boost::lexical_cast<std::string>(__LINE__) + " : " + \
401 std::string(__FILE__) + " in " + \
402 std::string(PETSC_FUNCTION_NAME)); \
403 SETERRQ(PETSC_COMM_SELF, MOFEM_STD_EXCEPTION_THROW, message.c_str()); \
404 }
405
406/**
407 * \brief Last executable line of each PETSc function used for error handling.
408 * Replaces return()
409 * @param a error code
410 *
411 * \note MoFEMFunctionReturn has to be used with MoFEMFunctionBegin and can be
412 * used only at the end of the function. If is need to return function in
413 * earlier use MoFEMFunctionReturnHot
414 *
415 */
416#define MoFEMFunctionReturn(a) \
417 } \
418 CATCH_ERRORS \
419 PetscFunctionReturn(a)
420
421/**
422 * \brief First executable line of each MoFEM function, used for error
423 handling. Final line of MoFEM functions should be MoFEMFunctionReturn(0); Use
424 of this function allows for lighter profiling by default.
425
426 \node Not collective
427
428 Example:
429 \code
430 PetscErrorCode fun() {
431 int something;
432 MoFEMFunctionBeginHot;
433
434 // some work here
435
436 MoFEMFunctionReturnHot(0);
437 }
438 \endcode
439*/
440#define MoFEMFunctionBeginHot PetscFunctionBeginHot
441
442/**
443 * \brief Last executable line of each PETSc function used for error handling.
444 * Replaces return()
445 * @param a error code
446 */
447#define MoFEMFunctionReturnHot(a) PetscFunctionReturn(a)
448
449#define CHKERRQ_PETSC(n) CHKERRQ(n)
450/**
451 * \brief check error code of MoAB function
452 * @param a MoABErrorCode
453 */
454#define CHKERRQ_MOAB(a) \
455 if (PetscUnlikely(MB_SUCCESS != (a))) { \
456 std::string error_str = (unsigned)(a) <= (unsigned)MB_FAILURE \
457 ? moab::ErrorCodeStr[a] \
458 : "INVALID ERROR CODE"; \
459 std::string str("MOAB error (" + boost::lexical_cast<std::string>((a)) + \
460 ") " + error_str + " at line " + \
461 boost::lexical_cast<std::string>(__LINE__) + " : " + \
462 std::string(__FILE__)); \
463 SETERRQ(PETSC_COMM_SELF, MOFEM_MOAB_ERROR, str.c_str()); \
464 }
465
466/**
467 * \brief Check error code of MoFEM/MOAB/PETSc function
468 * @param a MoFEMErrorCode
469 *
470 * \code
471 * MoFEMErrorCode fun() {
472 * MoFEMFunctionBeginHot;
473 * rval = fun_moab(); CHKERRG(rval);
474 * ierr = fun_petsc(); CHKERRG(ierr);
475 * merr = fun_mofem(); CHKERRG(merr);
476 * MoFEMFunctionReturnHot(0);
477 * \endcode
478 *
479 * \note Function detect type of errocode using specialized template function
480 * getErrorType, i.e. condition is evaluated at compilation time.
481 *
482 */
483#define CHKERRG(n) \
484 if ((boost::is_same<BOOST_TYPEOF((n)), \
485 MoFEMErrorCodeGeneric<PetscErrorCode>>::value)) { \
486 CHKERRQ_PETSC((n)); \
487 } else if (boost::is_same<BOOST_TYPEOF((n)), \
488 MoFEMErrorCodeGeneric<moab::ErrorCode>>::value) { \
489 CHKERRQ_MOAB((n)); \
490 }
491
492/**
493 * @brief Inline error check
494 *
495 * \code
496 *
497 * MoFEMErrorCode foo() {
498 * MoFEMFunctionBegin;
499 *
500 * // Call other functions
501 * CHKERR fun_moab();
502 * CHKERR fun_petsc();
503 * CHKERR fun_mofem();
504 *
505 * // Throw error
506 * SETERRQ(PETSC_COMM_WORLD, MOFEM_DATA_INCONSISTENCY, "Some error message");
507 *
508 * MoFEMFunctionReturn(0);
509 * }
510 *
511 * int main(int argc, char *argv[]) {
512 *
513 * // Initailise MoFEM and Petsc
514 * MoFEM::Core::Initialize(&argc, &argv, (char *)0, help);
515 *
516 * try {
517 *
518 * moab::Core mb_instance; // MoAB database
519 * moab::Interface &moab = mb_instance;
520 * MoFEM::Core core(moab); // MOFEM database
521 * MoFEM::CoreInterface &m_field = core;
522 *
523 * CHKERR foo(); // Call function
524 *
525 * }
526 * CATCH_ERRORS;
527 *
528 * return MoFEM::Core::Finalize();
529 *
530 * }
531 *
532 * \endcode
533 *
534 */
535#define CHKERR MoFEM::ErrorChecker<__LINE__>() <<
536
537/**
538 * \brief Check error code of MoAB function and throw MoFEM exception
539 * @param err MoABErrorCode
540 */
541#define MOAB_THROW(err) \
542 { \
543 if (PetscUnlikely(MB_SUCCESS != (err))) { \
544 std::string error_str = (unsigned)(err) <= (unsigned)MB_FAILURE \
545 ? moab::ErrorCodeStr[err] \
546 : "INVALID ERROR CODE"; \
547 throw MoFEMException(MOFEM_MOAB_ERROR, \
548 ("MOAB error (" + \
549 boost::lexical_cast<std::string>((err)) + ") " + \
550 error_str + " at line " + \
551 boost::lexical_cast<std::string>(__LINE__) + \
552 " : " + std::string(__FILE__)) \
553 .c_str()); \
554 } \
555 }
556
557/**
558 * \brief Throw MoFEM exception
559 * @param msg message
560 */
561#define THROW_MESSAGE(msg) \
562 { \
563 throw MoFEM::MoFEMException( \
564 MOFEM_MOFEMEXCEPTION_THROW, \
565 ("MoFEM error " + boost::lexical_cast<std::string>((msg)) + \
566 " at line " + boost::lexical_cast<std::string>(__LINE__) + " : " + \
567 std::string(__FILE__)) \
568 .c_str()); \
569 }
570
571/**
572 * \brief Check error code of MoAB function and throw MoFEM exception
573 * @param err MoABErrorCode
574 * @param msg error message
575 */
576#define CHK_MOAB_THROW(err, msg) \
577 { \
578 if (PetscUnlikely(MB_SUCCESS != (err))) { \
579 std::string str; \
580 throw MoFEMException( \
581 MOFEM_MOAB_ERROR, \
582 ("MOAB error (" + boost::lexical_cast<std::string>((err)) + ") " + \
583 boost::lexical_cast<std::string>((msg)) + " at line " + \
584 boost::lexical_cast<std::string>(__LINE__) + " : " + \
585 std::string(__FILE__)) \
586 .c_str()); \
587 } \
588 }
589
590/**
591 * \brief Check and throw MoFEM exception
592 * @param err error code
593 * @param msg message
594 */
595#define CHK_THROW_MESSAGE(err, msg) \
596 { \
597 if (PetscUnlikely((err) != MOFEM_SUCCESS)) \
598 THROW_MESSAGE(msg); \
599 }
600
601/**
602 * \brief Convert number to string
603 * @param x number
604 */
605#define SSTR(x) toString(x)
606
607#define TENSOR1_VEC_PTR(VEC) &VEC[0], &VEC[1], &VEC[2]
608
609#define SYMMETRIC_TENSOR4_MAT_PTR(MAT) \
610 &MAT(0, 0), &MAT(0, 1), &MAT(0, 2), &MAT(0, 3), &MAT(0, 4), &MAT(0, 5), \
611 &MAT(1, 0), &MAT(1, 1), &MAT(1, 2), &MAT(1, 3), &MAT(1, 4), &MAT(1, 5), \
612 &MAT(2, 0), &MAT(2, 1), &MAT(2, 2), &MAT(2, 3), &MAT(2, 4), &MAT(2, 5), \
613 &MAT(3, 0), &MAT(3, 1), &MAT(3, 2), &MAT(3, 3), &MAT(3, 4), &MAT(3, 5), \
614 &MAT(4, 0), &MAT(4, 1), &MAT(4, 2), &MAT(4, 3), &MAT(4, 4), &MAT(4, 5), \
615 &MAT(5, 0), &MAT(5, 1), &MAT(5, 2), &MAT(5, 3), &MAT(5, 4), &MAT(5, 5)
616
617#define TENSOR4_MAT_PTR(MAT) &MAT(0, 0), MAT.size2()
618
619#define TENSOR2_MAT_PTR(MAT) \
620 &MAT(0, 0), &MAT(1, 0), &MAT(2, 0), &MAT(3, 0), &MAT(4, 0), &MAT(5, 0), \
621 &MAT(6, 0), &MAT(7, 0), &MAT(8, 0)
622
623#define SYMMETRIC_TENSOR2_MAT_PTR(MAT) \
624 &MAT(0, 0), &MAT(0, 1), &MAT(0, 2), &MAT(0, 3), &MAT(0, 4), &MAT(0, 5)
625
626#define SYMMETRIC_TENSOR2_VEC_PTR(VEC) \
627 &VEC[0], &VEC[1], &VEC[2], &VEC[3], &VEC[4], &VEC[5]
628
629#endif //__DEFINITONS_H__
VERBOSITY_LEVELS
Verbosity levels.
Definition: definitions.h:206
@ VERY_VERBOSE
Definition: definitions.h:210
@ QUIET
Definition: definitions.h:208
@ DEFAULT_VERBOSITY
Definition: definitions.h:207
@ NOISY
Definition: definitions.h:211
@ VERBOSE
Definition: definitions.h:209
@ VERY_NOISY
Definition: definitions.h:212
static const char *const MoFEMErrorCodesNames[]
Definition: definitions.h:44
RowColData
RowColData.
Definition: definitions.h:123
@ LASTROWCOLDATA
Definition: definitions.h:123
@ COL
Definition: definitions.h:123
@ DATA
Definition: definitions.h:123
@ ROW
Definition: definitions.h:123
DEPRECATED void macro_is_deprecated_using_deprecated_function()
Is used to indicate that macro is deprecated Do nothing just triggers error at the compilation.
Definition: Core.cpp:11
MoFEMTypes
Those types control how functions respond on arguments, f.e. error handling.
Definition: definitions.h:97
@ MF_NOT_THROW
Definition: definitions.h:101
@ MF_ZERO
Definition: definitions.h:98
@ MF_EXIST
Definition: definitions.h:100
@ MF_EXCL
Definition: definitions.h:99
FieldApproximationBase
approximation base
Definition: definitions.h:58
@ LASTBASE
Definition: definitions.h:69
@ AINSWORTH_LEGENDRE_BASE
Ainsworth Cole (Legendre) approx. base .
Definition: definitions.h:60
@ AINSWORTH_LOBATTO_BASE
Definition: definitions.h:62
@ USER_BASE
user implemented approximation base
Definition: definitions.h:68
@ NOBASE
Definition: definitions.h:59
@ DEMKOWICZ_JACOBI_BASE
Definition: definitions.h:66
@ AINSWORTH_BERNSTEIN_BEZIER_BASE
Definition: definitions.h:64
static const char *const CoordinateTypesNames[]
Coordinate system names.
Definition: definitions.h:108
FieldSpace
approximation spaces
Definition: definitions.h:82
@ L2
field with C-1 continuity
Definition: definitions.h:88
@ LASTSPACE
FieldSpace in [ 0, LASTSPACE )
Definition: definitions.h:89
@ NOFIELD
scalar or vector of scalars describe (no true field)
Definition: definitions.h:84
@ H1
continuous field
Definition: definitions.h:85
@ NOSPACE
Definition: definitions.h:83
@ HCURL
field with continuous tangents
Definition: definitions.h:86
@ HDIV
field with continuous normal traction
Definition: definitions.h:87
static const char *const FieldSpaceNames[]
Definition: definitions.h:92
CubitBC
Types of sets and boundary conditions.
Definition: definitions.h:144
@ TEMPERATURESET
Definition: definitions.h:155
@ MATERIALSET
Definition: definitions.h:149
@ PRESSURESET
Definition: definitions.h:152
@ BODYFORCESSET
block name is "BODY_FORCES"
Definition: definitions.h:162
@ NEUMANN_BC
Definition: definitions.h:165
@ MAT_ELASTICSET
block name is "MAT_ELASTIC"
Definition: definitions.h:159
@ ACCELERATIONSET
Definition: definitions.h:154
@ FORCESET
Definition: definitions.h:151
@ HEATFLUXSET
Definition: definitions.h:156
@ DIRICHLET_BC
Definition: definitions.h:164
@ NODESET
Definition: definitions.h:146
@ SIDESET
Definition: definitions.h:147
@ UNKNOWNNAME
Definition: definitions.h:158
@ VELOCITYSET
Definition: definitions.h:153
@ MAT_INTERFSET
Definition: definitions.h:160
@ DISPLACEMENTSET
Definition: definitions.h:150
@ LASTSET_BC
Definition: definitions.h:166
@ MAT_THERMALSET
block name is "MAT_THERMAL"
Definition: definitions.h:161
@ MAT_MOISTURESET
block name is "MAT_MOISTURE"
Definition: definitions.h:163
@ UNKNOWNSET
Definition: definitions.h:145
@ BLOCKSET
Definition: definitions.h:148
@ INTERFACESET
Definition: definitions.h:157
HVecFormatting
Format in rows of vectorial base functions.
Definition: definitions.h:186
@ HVEC0
Definition: definitions.h:186
@ HVEC1
Definition: definitions.h:186
@ HVEC2
Definition: definitions.h:186
MoFEMErrorCodes
Error handling.
Definition: definitions.h:29
@ MOFEM_NOT_FOUND
Definition: definitions.h:33
@ MOFEM_IMPOSIBLE_CASE
Definition: definitions.h:35
@ MOFEM_NOT_INSTALLED
Definition: definitions.h:37
@ MOFEM_STD_EXCEPTION_THROW
Definition: definitions.h:39
@ MOFEM_MOFEMEXCEPTION_THROW
Definition: definitions.h:38
@ MOFEM_MOAB_ERROR
Definition: definitions.h:41
@ MOFEM_OPERATION_UNSUCCESSFUL
Definition: definitions.h:34
@ MOFEM_ATOM_TEST_INVALID
Definition: definitions.h:40
@ MOFEM_DATA_INCONSISTENCY
Definition: definitions.h:31
@ MOFEM_SUCCESS
Definition: definitions.h:30
@ MOFEM_INVALID_DATA
Definition: definitions.h:36
@ MOFEM_NOT_IMPLEMENTED
Definition: definitions.h:32
static const char *const ApproximationBaseNames[]
Definition: definitions.h:72
CoordinateTypes
Coodinate system.
Definition: definitions.h:114
@ LAST_COORDINATE_SYSTEM
Definition: definitions.h:119
@ CYLINDRICAL
Definition: definitions.h:117
@ POLAR
Definition: definitions.h:116
@ CARTESIAN
Definition: definitions.h:115
@ SPHERICAL
Definition: definitions.h:118
static const char *const CubitBCNames[]
Names of types of sets and boundary conditions.
Definition: definitions.h:175
#define DEPRECATED
Definition: definitions.h:17
ByWhat
Definition: definitions.h:130
@ BYCOL
Definition: definitions.h:132
@ BYALL
Definition: definitions.h:137
@ BYCOLDATA
Definition: definitions.h:135
@ BYROWDATA
Definition: definitions.h:134
@ BYROWCOL
Definition: definitions.h:136
@ BYDATA
Definition: definitions.h:133
@ BYROW
Definition: definitions.h:131
HVecDiffFormatting
Format in rows of vectorial base gradients of base functions.
Definition: definitions.h:191
@ HVEC1_1
Definition: definitions.h:196
@ HVEC0_1
Definition: definitions.h:195
@ HVEC1_0
Definition: definitions.h:193
@ HVEC2_1
Definition: definitions.h:197
@ HVEC1_2
Definition: definitions.h:199
@ HVEC2_2
Definition: definitions.h:200
@ HVEC2_0
Definition: definitions.h:194
@ HVEC0_2
Definition: definitions.h:198
@ HVEC0_0
Definition: definitions.h:192