@@ -13,18 +13,12 @@ $(TYPEDFIELDS)
1313"""
1414struct FunctionSpace{
1515 Coords,
16- ElemConns, ElemIdMaps,
17- RefFEs,
18- SSetIVs, SSetIMs
16+ ElemConns,
17+ RefFEs
1918} <: AbstractFunctionSpace
2019 coords:: Coords
2120 elem_conns:: ElemConns
22- elem_id_maps:: ElemIdMaps
2321 ref_fes:: RefFEs
24- sideset_elems:: SSetIVs
25- sideset_nodes:: SSetIVs
26- sideset_sides:: SSetIVs
27- sideset_side_nodes:: SSetIMs
2822end
2923
3024function _setup_ref_fes (mesh:: AbstractMesh , interp_type, q_degree)
@@ -69,11 +63,8 @@ function FunctionSpace(mesh::AbstractMesh, ::Type{H1Field}, interp_type, q_degre
6963
7064 return FunctionSpace (
7165 coords,
72- mesh. element_conns, mesh. element_id_maps,
73- ref_fes,
74- mesh. sideset_elems,
75- mesh. sideset_nodes,
76- mesh. sideset_sides, mesh. sideset_side_nodes
66+ mesh. element_conns,
67+ ref_fes
7768 )
7869end
7970
@@ -100,11 +91,8 @@ function FunctionSpace(mesh::AbstractMesh, ::Type{L2ElementField}, interp_type,
10091
10192 return FunctionSpace (
10293 coords,
103- nothing , nothing , # TODO what makes sense here?
104- ref_fes,
105- mesh. sideset_elems,
106- mesh. sideset_nodes,
107- mesh. sideset_sides, mesh. sideset_side_nodes
94+ nothing , # TODO what makes sense here?
95+ ref_fes
10896 )
10997end
11098
@@ -123,24 +111,13 @@ function FunctionSpace(mesh::AbstractMesh, ::Type{L2QuadratureField}, interp_typ
123111 push! (coords_vals, coords_temp)
124112 end
125113
126- if num_fields (mesh. nodal_coords) == 1
127- temp_syms = (:coords_x ,)
128- elseif num_fields (mesh. nodal_coords) == 2
129- temp_syms = (:coords_x , :coords_y )
130- else
131- temp_syms = (:coords_x , :coords_y , :coords_z )
132- end
133-
134114 coords_vals = L2QuadratureField .(coords_vals)
135115 coords = NamedTuple {tuple(coords_syms...)} (tuple (coords_vals... ))
136116
137117 return FunctionSpace (
138118 coords,
139- nothing , nothing , # TODO what makes sense here?
140- ref_fes,
141- mesh. sideset_elems,
142- mesh. sideset_nodes,
143- mesh. sideset_sides, mesh. sideset_side_nodes
119+ nothing , # TODO what makes sense here?
120+ ref_fes
144121 )
145122end
146123
@@ -153,68 +130,12 @@ function Base.show(io::IO, fspace::FunctionSpace)
153130 println (io, " Type: $(typeof (fspace. coords). name. name) " )
154131 for (key, ref_fe) in enumerate (fspace. ref_fes)
155132 println (io, " Block: $key " )
156- # println(io, " Number of elements: $(fspace)")
157- # println(io, " $ref_fe")
158133 end
159134end
160135
161- function connectivity (fspace, block)
162- return Base. getproperty (fspace. elem_conns, block)
163- end
164-
165- function connectivity (fspace, e:: Int , block:: Symbol )
166- temp = @views Base. getproperty (fspace. elem_conns, block)[:, e]
167- # NN = num_vertices(fspace.ref_fes[block])
168- # return SVector{NN, eltype(temp)}(temp)
169- return temp
170- end
171-
172- function connectivity (fspace, e:: Int , block_num:: Int )
173- block_sym = keys (fspace. elem_conns)[block_num]
174- return @views Base. getproperty (fspace. elem_conns, block_sym)[:, e]
175- end
176-
177- # connectivity(fspace, e, block::Symbol) = _connectivity(fspace, e, Val(block))
178-
179- function connectivity (fspace, n:: Int , e:: Int , block)
180- return @views Base. getproperty (fspace. elem_conns, block)[n, e]
181- end
182-
183- coordinates (fspace:: FunctionSpace ) = fspace. coords
184-
185- # function coordinates(fspace::FunctionSpace, e, block)
186- # conn = _connectivity(fspace, e, block)
187- # return @views fspace.coords[:, conn]
188- # end
189-
190- function dof_connectivity (fspace, e, block, n_dofs)
191- ids = reshape (1 : length (fspace. coords), size (fspace. coords)... )
192- block_name = keys (fspace. elem_conns)[block]
193- conns = getproperty (fspace. elem_conns, block_name)
194- # dof_conn = @views reshape(ids[:, conns[:, e]], n_dofs * size(conns, 1))
195- dof_conn = reshape (ids[:, conns[:, e]], n_dofs * size (conns, 1 ))
196- return dof_conn
197- end
198-
199136function map_shape_function_gradients (X, ∇N_ξ)
200137 J = (X * ∇N_ξ)'
201138 J_inv = inv (J)
202139 ∇N_X = (J_inv * ∇N_ξ' )'
203140 return ∇N_X
204141end
205-
206- function num_dimensions (fspace:: FunctionSpace , block_sym)
207- return ReferenceFiniteElements. dimension (getproperty (fspace. ref_fes, block_sym))
208- end
209-
210- function num_elements (fspace:: FunctionSpace , block_sym)
211- return num_elements (getproperty (fspace. elem_conns, block_sym))
212- end
213-
214- function num_nodes_per_element (fspace:: FunctionSpace , block_sym)
215- return ReferenceFiniteElements. num_vertices (getproperty (fspace. ref_fes, block_sym))
216- end
217-
218- function num_q_points (fspace:: FunctionSpace , block_sym)
219- return ReferenceFiniteElements. num_quadrature_points (getproperty (fspace. ref_fes, block_sym))
220- end
0 commit comments