-
Notifications
You must be signed in to change notification settings - Fork 100
/
Copy pathReferenceFEs.jl
254 lines (208 loc) · 4.72 KB
/
ReferenceFEs.jl
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
"""
The exported names are
$(EXPORTS)
"""
module ReferenceFEs
using Test
using DocStringExtensions
using LinearAlgebra
using Combinatorics
using FillArrays
using Gridap.Helpers
using Gridap.Arrays
using Gridap.TensorValues
using Gridap.Fields
using Gridap.Polynomials
using Gridap.Polynomials: _q_filter, _s_filter_mc0
using Gridap.Polynomials: _compute_filter_mask
using Gridap.Polynomials: _define_terms, _sort_by_nfaces!
using QuadGK: gauss
using FastGaussQuadrature: gaussjacobi
using FastGaussQuadrature: gausslegendre
import Gridap.Arrays: return_cache
import Gridap.Arrays: evaluate!
import Gridap.Arrays: return_type
import Gridap.Fields: evaluate
import Gridap.Fields: lazy_map
import Gridap.Fields: linear_combination
import Gridap.Polynomials: MonomialBasis
import Gridap.Polynomials: get_order
import Gridap.Polynomials: get_orders
import Gridap.Polynomials: _compute_filter_mask
import Gridap.Polynomials: _define_terms, _sort_by_nfaces!
import Gridap.Io: to_dict
import Gridap.Io: from_dict
import Base: ==
export Polytope
export ExtrusionPolytope
export get_extrusion
export get_faces
export get_dimranges
export get_dimrange
export get_vertex_coordinates
export get_facet_normal
export get_facet_orientations
export get_edge_tangent
export get_vertex_permutations
export get_face_dimranges
export get_face_coordinates
export is_simplex
export is_n_cube
export simplexify
export num_dims
export num_cell_dims
export num_point_dims
export num_vertices
export num_faces
export num_facets
export num_edges
export num_dims
export num_point_dims
export get_facedims
export get_offsets
export get_offset
export get_face_vertices
export get_reffaces
export get_face_type
export get_bounding_box
export get_face_vertex_permutations
export get_order
export get_orders
export test_polytope
export VERTEX
export SEGMENT
export TRI
export QUAD
export TET
export HEX
export WEDGE
export PYRAMID
export HEX_AXIS
export TET_AXIS
export INVALID_PERM
export ContraVariantPiolaMap
export Dof
export get_nodes
export get_face_moments
export get_face_nodes_dofs
export get_nodes
export evaluate!
export evaluate_dof
export return_cache
export return_type
export test_dof
export test_dof_array
# export evaluate_dof_array
export ReferenceFE
export ReferenceFEName
export GenericRefFE
export get_polytope
export get_prebasis
export get_dof_basis
export Conformity
export get_face_own_dofs
export get_face_own_dofs_permutations
export get_face_dofs
export get_own_dofs_permutations
export get_shapefuns
export compute_shapefuns
export test_reference_fe
export num_dofs
export expand_cell_data
export compress_cell_data
export LagrangianRefFE
export GenericLagrangianRefFE
export get_face_own_nodes_permutations
export get_own_nodes_permutations
export get_node_coordinates
export get_dof_to_node
export get_dof_to_comp
export get_node_and_comp_to_dof
export get_vertex_node
export num_nodes
export test_lagrangian_reference_fe
export LagrangianDofBasis
export compute_monomial_basis
export compute_own_nodes
export compute_face_orders
export compute_nodes
export compute_own_nodes_permutations
export compute_lagrangian_reffaces
export is_first_order
export is_Q
export is_P
export is_S
export MomentBasedDofBasis
export get_face_own_nodes
export get_face_nodes
export linear_combination
export compute_cell_to_modalC0_reffe
export VERTEX1
export SEG2
export TRI3
export QUAD4
export TET4
export HEX8
export CONT
export DISC
export Conformity
export L2Conformity
export H1Conformity
export GradConformity
export CurlConformity
export DivConformity
export CDConformity
export SerendipityRefFE
export RaviartThomasRefFE
export BDMRefFE
export NedelecRefFE
export BezierRefFE
export ModalC0RefFE
export Lagrangian
export DivConforming
export RaviartThomas
export BDM
export Nedelec
export Bezier
export ModalC0
export lagrangian
export raviart_thomas
export bdm
export nedelec
export bezier
export modalC0
export Quadrature
export QuadratureName
export GenericQuadrature
export num_points
export get_coordinates
export get_weights
export get_name
export num_dims
export num_point_dims
export test_quadrature
export tensor_product
export duffy
export strang
include("Polytopes.jl")
include("ExtrusionPolytopes.jl")
include("Dofs.jl")
include("LagrangianDofBases.jl")
include("ReferenceFEInterfaces.jl")
include("LagrangianRefFEs.jl")
include("CLagrangianRefFEs.jl")
include("SerendipityRefFEs.jl")
include("PDiscRefFEs.jl")
include("CDLagrangianRefFEs.jl")
include("Quadratures.jl")
include("TensorProductQuadratures.jl")
include("DuffyQuadratures.jl")
include("StrangQuadratures.jl")
include("RaviartThomasRefFEs.jl")
include("BDMRefFEs.jl")
include("NedelecRefFEs.jl")
include("MockDofs.jl")
include("BezierRefFEs.jl")
include("ModalC0RefFEs.jl")
include("LinearCombinationDofVectors.jl")
end # module