-
Notifications
You must be signed in to change notification settings - Fork 82
/
__init__.py
154 lines (147 loc) · 4.66 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
"""The module :mod:`skfem.element` defines finite elements in a very generic
sense.
In order to use an element, you simply initialize the respective object and
pass it to the constructor of :class:`~skfem.assembly.CellBasis` or
:class:`~skfem.assembly.FacetBasis`. See below for a list of supported
elements.
"""
from typing import Type, Dict
from .discrete_field import DiscreteField
from .element import Element
from .element_h1 import ElementH1
from .element_hdiv import ElementHdiv
from .element_hcurl import ElementHcurl
from .element_global import ElementGlobal
from .element_vector import ElementVector
from .element_tri import (ElementTriP1, ElementTriP2, ElementTriP0,
ElementTriRT1, ElementTriMorley, ElementTriArgyris,
ElementTriP1B, ElementTriCR, ElementTriHermite,
ElementTriP1DG, ElementTriSkeletonP0,
ElementTriSkeletonP1, ElementTriP3, ElementTriP4,
ElementTri15ParamPlate, ElementTriBDM1,
ElementTriP1G, ElementTriP2G, ElementTriP2B,
ElementTriRT2, ElementTriN1, ElementTriN2,
ElementTriHHJ0, ElementTriHHJ1) # noqa
from .element_quad import (ElementQuad0, ElementQuad1, ElementQuad2, # noqa
ElementQuadS2, ElementQuadP,
ElementQuadBFS, ElementQuadRT1, ElementQuad1DG,
ElementQuadN1)
from .element_tet import (ElementTetP0, ElementTetP1, ElementTetP2, # noqa
ElementTetRT1, ElementTetN1, ElementTetMini,
ElementTetCR, ElementTetCCR, ElementTetSkeletonP0)
from .element_hex import (ElementHex0, ElementHex1, ElementHex2, # noqa
ElementHexS2, ElementHex1DG, ElementHexRT1,
ElementHexSkeleton0, ElementHexC1)
from .element_line import (ElementLineP0, ElementLineP1, ElementLineP2, # noqa
ElementLinePp, ElementLineHermite,
ElementLineMini, ElementLineP1DG)
from .element_wedge_1 import ElementWedge1
from .element_composite import ElementComposite # noqa
from .element_dg import ElementDG
BOUNDARY_ELEMENT_MAP: Dict[Type[Element], Type[Element]] = {
ElementTriP0: ElementLineP0,
ElementTriP1: ElementLineP1,
ElementTriP2: ElementLineP2,
ElementQuad0: ElementLineP0,
ElementQuad1: ElementLineP1,
ElementQuad2: ElementLineP2,
ElementTetP0: ElementTriP0,
ElementTetP1: ElementTriP1,
ElementTetP2: ElementTriP2,
ElementHex0: ElementQuad0,
ElementHex1: ElementQuad1,
ElementHex2: ElementQuad2,
ElementHex1DG: ElementQuad1,
}
# for backwards compatibility
ElementVectorH1 = ElementVector
ElementTriDG = ElementDG
ElementQuadDG = ElementDG
ElementHexDG = ElementDG
ElementTetDG = ElementDG
ElementTriMini = ElementTriP1B
ElementTriCCR = ElementTriP2B
ElementTriRT0 = ElementTriRT1
ElementTetRT0 = ElementTetRT1
ElementQuadRT0 = ElementQuadRT1
ElementTetN0 = ElementTetN1
__all__ = [
"DiscreteField",
"Element",
"ElementH1",
"ElementVector",
"ElementVectorH1",
"ElementHdiv",
"ElementHcurl",
"ElementGlobal",
"ElementDG",
"ElementComposite",
"ElementTriP1",
"ElementTriP2",
"ElementTriP3",
"ElementTriP4",
"ElementTriDG",
"ElementTriP0",
"ElementTriCR",
"ElementTriCCR",
"ElementTriRT0",
"ElementTriRT1",
"ElementTriRT2",
"ElementTriMorley",
"ElementTri15ParamPlate",
"ElementTriArgyris",
"ElementTriMini",
"ElementTriHermite",
"ElementTriP1DG",
"ElementTriSkeletonP0",
"ElementTriSkeletonP1",
"ElementTriBDM1",
"ElementTriP1G",
"ElementTriP2G",
"ElementTriP1B",
"ElementTriP2B",
"ElementTriN1",
"ElementTriN2",
"ElementTriHHJ0",
"ElementTriHHJ1",
"ElementQuad0",
"ElementQuad1",
"ElementQuad2",
"ElementQuadS2",
"ElementQuadDG",
"ElementQuadP",
"ElementQuadBFS",
"ElementQuadRT0",
"ElementQuadRT1",
"ElementQuad1DG",
"ElementQuadN1",
"ElementTetP0",
"ElementTetP1",
"ElementTetP2",
"ElementTetRT0",
"ElementTetRT1",
"ElementTetN0",
"ElementTetN1",
"ElementTetMini",
"ElementTetCR",
"ElementTetCCR",
"ElementTetDG",
"ElementTetSkeletonP0",
"ElementHex0",
"ElementHex1",
"ElementHex2",
"ElementHexS2",
"ElementHex1DG",
"ElementHexDG",
"ElementHexRT1",
"ElementHexSkeleton0",
"ElementLineP0",
"ElementLineP1",
"ElementLineP1DG",
"ElementLineP2",
"ElementLinePp",
"ElementLineHermite",
"ElementLineMini",
"ElementWedge1",
"ElementHexC1",
]