1 /**@file
2 *
3 * General support routines for the basis-functions library.
4 *
5 * author: Claus-Justus Heine
6 * Abteilung fuer Angewandte Mathematik
7 * Albert-Ludwigs-Universitaet Freiburg
8 * Hermann-Herder-Str. 10
9 * 79104 Freiburg i.Br.
10 * Germany
11 * claus@mathematik.uni-freiburg.de
12 *
13 * Copyright (C) by Claus-Justus Heine (2008).
14 *
15 */
16 #ifndef _ALBAS_H_
17 #define _ALBAS_H_
18
19 #include <alberta/alberta.h>
20
21 #ifdef __cplusplus
22 extern "C" {
23 #elif 0
24 } /* some editors try to indent because of the brace above */
25 #endif
26
27 typedef struct stokes_triple STOKES_TRIPLE;
28 typedef struct stokes_triple STOKES_PAIR;
29 struct stokes_triple
30 {
31 const BAS_FCTS *velocity;
32 const BAS_FCTS *pressure;
33 const BAS_FCTS *slip_stress;
34 };
35 extern STOKES_TRIPLE stokes_triple(const char *name,
36 unsigned dim, unsigned degree);
stokes_pair(const char * name,unsigned dim,unsigned degree)37 static inline STOKES_PAIR stokes_pair(const char *name,
38 unsigned dim, unsigned degree)
39 {
40 return stokes_triple(name, dim, degree);
41 }
42
43 extern const BAS_FCTS *get_null_bfcts(unsigned dim);
44 extern const BAS_FCTS *get_bubble(unsigned dim, unsigned inter_deg);
45 extern const BAS_FCTS *get_wall_bubbles(unsigned dim, unsigned inter_deg);
46 extern const BAS_FCTS *get_trace_bubble(unsigned dim, unsigned inter_deg);
47 extern const BAS_FCTS *get_bulk_trace_bubble(unsigned int dim,
48 unsigned int inter_deg,
49 int trace_id);
50 extern const BAS_FCTS *get_tensor_wall_bubbles(unsigned int dim,
51 unsigned int tensor_deg,
52 unsigned int inter_deg);
53 extern const BAS_FCTS *get_trace_tensor_bubbles(unsigned int dim,
54 unsigned int tensor_deg,
55 unsigned int inter_deg);
56 extern const BAS_FCTS *get_bulk_trace_tensor_bubbles(unsigned int dim,
57 unsigned int tensor_deg,
58 unsigned int inter_deg,
59 int trace_id);
60 extern const BAS_FCTS *get_raviart_thomas(unsigned dim, unsigned inter_deg);
61 extern const BAS_FCTS *get_old_mini_element(unsigned dim);
62
63 extern const BAS_FCTS *bas_fcts_init(int dim, int dow, const char *name);
64
65 #ifdef __cplusplus
66 } /* extern "C" */
67 #endif
68
69 #endif
70