-
Notifications
You must be signed in to change notification settings - Fork 98
/
FESpaces.jl
274 lines (224 loc) · 6.55 KB
/
FESpaces.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
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
"""
The exported names are
$(EXPORTS)
"""
module FESpaces
using DocStringExtensions
using Test
using FillArrays
using SparseArrays
using LinearAlgebra
using StaticArrays
using ForwardDiff
using Gridap.Helpers
using Gridap.Algebra
using Gridap.Arrays
using Gridap.Fields
using Gridap.ReferenceFEs
using Gridap.Geometry
using Gridap.CellData
using Gridap.TensorValues
using Gridap.Arrays: Reindex, ConfigMap, DualizeMap, AutoDiffMap, lazy_map
using Gridap.Fields: ArrayBlock, BlockMap
using Gridap.Geometry: SkeletonPair
using Gridap.CellData: SkeletonCellFieldPair
import Gridap.Fields: gradient
import Gridap.Fields: ∇∇
import Gridap.Fields: DIV
import Gridap.Arrays: array_cache
import Gridap.Arrays: getindex!
import Gridap.Arrays: return_cache
import Gridap.Arrays: evaluate!
import Gridap.Arrays: autodiff_array_gradient # overloaded for Skeleton terms
import Gridap.Arrays: autodiff_array_jacobian
import Gridap.Arrays: autodiff_array_hessian
import Gridap.Geometry: get_triangulation
import Gridap.Geometry: get_cell_shapefuns
import Gridap.Geometry: get_cell_type
import Gridap.Geometry: MappedGrid
import Gridap.Geometry: MappedDiscreteModel
import Gridap.Geometry: get_node_coordinates
import Gridap.Geometry: get_reffes
import Gridap.Geometry: get_cell_node_ids
import Gridap.Geometry: OrientationStyle
import Gridap.Geometry: RegularityStyle
import Gridap.Geometry: get_facet_normal
import Gridap.CellData: attach_constraints_rows
import Gridap.CellData: attach_constraints_cols
import Gridap.CellData: CellField
import Gridap.CellData: get_data
import Gridap.CellData: DomainStyle
import Gridap.CellData: change_domain
import Gridap.CellData: change_domain_ref_ref
import Gridap.CellData: change_domain_phys_phys
import Gridap.Algebra: allocate_residual
import Gridap.Algebra: allocate_jacobian
import Gridap.Algebra: residual!
import Gridap.Algebra: jacobian!
import Gridap.Algebra: residual
import Gridap.Algebra: jacobian
import Gridap.Algebra: hessian
import Gridap.Algebra: residual_and_jacobian!
import Gridap.Algebra: residual_and_jacobian
import Gridap.Algebra: zero_initial_guess
import Gridap.Algebra: get_matrix
import Gridap.Algebra: get_vector
import Gridap.Algebra: solve!
import Gridap.Algebra: solve
import Gridap.Algebra: allocate_vector
import Gridap.Algebra: allocate_matrix
import Gridap.Algebra: allocate_matrix_and_vector
import Gridap.ReferenceFEs: get_shapefuns
import Gridap.ReferenceFEs: get_dof_basis
export FEFunction
export get_free_dof_values
export get_cell_dof_values
export get_fe_space
export test_fe_function
export FESpace
export ConstraintStyle
export Constrained
export UnConstrained
export num_free_dofs
export get_free_dof_ids
export zero_free_values
export EvaluationFunction
export get_cell_dof_ids
export get_fe_basis
export get_trial_fe_basis
export has_constraints
export get_cell_constraints
export get_cell_isconstrained
export get_cell_is_dirichlet
export get_dof_value_type
export test_fe_space
export SingleFieldFESpace
export SingleFieldFEFunction
export get_fe_dof_basis
export num_dirichlet_dofs
export get_dirichlet_dof_ids
export zero_dirichlet_values
export num_dirichlet_tags
export get_dirichlet_dof_tag
export scatter_free_and_dirichlet_values
export gather_free_and_dirichlet_values!
export gather_dirichlet_values
export gather_dirichlet_values!
export gather_free_values
export gather_free_values!
export test_single_field_fe_space
export get_dirichlet_dof_values
export interpolate
export interpolate!
export interpolate_everywhere
export interpolate_everywhere!
export interpolate_dirichlet
export interpolate_dirichlet!
export compute_dirichlet_values_for_tags
export compute_dirichlet_values_for_tags!
export UnconstrainedFESpace
export CellConformity
export CellFE
export compute_conforming_cell_dofs
export compute_cell_space
export TestFESpace
export TrialFESpace
export TrialFESpace!
export HomogeneousTrialFESpace
export HomogeneousTrialFESpace!
export FEBasis
export BasisStyle
export Assembler
export AssemblyStrategy
export row_map
export col_map
export row_mask
export col_mask
export DefaultAssemblyStrategy
export GenericAssemblyStrategy
export get_test
export get_trial
export get_rows
export get_cols
export assemble_matrix!
export assemble_matrix_add!
export assemble_matrix
export assemble_vector!
export assemble_vector_add!
export assemble_vector
export assemble_matrix_and_vector!
export assemble_matrix_and_vector_add!
export assemble_matrix_and_vector
export allocate_vector
export allocate_matrix
export allocate_matrix_and_vector
export test_assembler
export collect_cell_matrix
export collect_cell_vector
export collect_cell_matrix_and_vector
export get_matrix_builder
export get_vector_builder
export get_matrix_type
export get_vector_type
export SparseMatrixAssembler
export GenericSparseMatrixAssembler
export symbolic_loop_matrix!
export symbolic_loop_vector!
export symbolic_loop_matrix_and_vector!
export numeric_loop_matrix!
export numeric_loop_vector!
export numeric_loop_matrix_and_vector!
export test_sparse_matrix_assembler
export FEOperator
export AffineFEOperator
export test_fe_operator
export get_algebraic_operator
export FESolver
export test_fe_solver
export LinearFESolver
export NonlinearFESolver
export FESpaceWithConstantFixed
export ZeroMeanFESpace
export CLagrangianFESpace
export DirichletFESpace
export FESpaceWithLinearConstraints
export FiniteElements
export DiscreteModelWithFEMap
export GridWithFEMap
export add_mesh_displacement!
export update_coordinates!
export ConstantFESpace
include("FESpaceInterface.jl")
include("SingleFieldFESpaces.jl")
include("UnconstrainedFESpaces.jl")
include("ConformingFESpaces.jl")
include("DivConformingFESpaces.jl")
include("CurlConformingFESpaces.jl")
include("FESpaceFactories.jl")
include("PhysicalFEs.jl")
include("TrialFESpaces.jl")
include("Assemblers.jl")
include("SparseMatrixAssemblers.jl")
include("FEOperators.jl")
include("AffineFEOperators.jl")
include("FEOperatorsFromWeakForm.jl")
include("FESolvers.jl")
include("FEAutodiff.jl")
include("DiscontinuousFESpaces.jl")
include("FESpacesWithConstantFixed.jl")
include("ZeroMeanFESpaces.jl")
include("CLagrangianFESpaces.jl")
include("DirichletFESpaces.jl")
#include("ExtendedFESpaces.jl")
include("FESpacesWithLinearConstraints.jl")
include("DiscreteModelWithFEMaps.jl")
include("ConstantFESpaces.jl")
export get_free_values
function get_free_values(args...)
@unreachable "get_free_values has been removed. Use get_free_dof_values instead."
end
export get_dirichlet_values
function get_dirichlet_values(args...)
@unreachable "get_dirichlet_values has been removed. Use get_dirichlet_dof_values instead."
end
end # module