61 ((std::get<Is>(collPts_.first) =
62 space.template space<Is>().greville(
67 ((std::get<Is>(collPts_.second) =
68 space.template boundary<Is>().greville()),
74 ((std::get<Is>(collPts_.first) =
75 space.template space<Is>().greville(
80 ((std::get<Is>(collPts_.second) =
81 space.template boundary<Is>().greville()),
87 ((std::get<Is>(collPts_.first) = space
96 ((std::get<Is>(collPts_.second) = space
97 .template boundary<Is>()
106 ((std::get<Is>(collPts_.first) = space
107 .template space<Is>()
115 ((std::get<Is>(collPts_.second) = space
116 .template boundary<Is>()
125 ((std::get<Is>(collPts_.first) = space
126 .template space<Is>()
128 .uniform_refine(2, -1)
134 ((std::get<Is>(collPts_.second) = space
135 .template boundary<Is>()
137 .uniform_refine(2, -1)
144 ((std::get<Is>(collPts_.first) = space
145 .template space<Is>()
147 .uniform_refine(2, -1)
153 ((std::get<Is>(collPts_.second) = space
154 .template boundary<Is>()
156 .uniform_refine(2, -1)
163 ((std::get<Is>(collPts_.first) = space
164 .template space<Is>()
166 .uniform_refine(3, -1)
172 ((std::get<Is>(collPts_.second) = space
173 .template boundary<Is>()
175 .uniform_refine(3, -1)
182 ((std::get<Is>(collPts_.first) = space
183 .template space<Is>()
185 .uniform_refine(3, -1)
191 ((std::get<Is>(collPts_.second) = space
192 .template boundary<Is>()
194 .uniform_refine(3, -1)
200 throw std::runtime_error(
"Invalid collocation point specifier");
215 if constexpr (FunctionSpace::nspaces() == 1)
221 space.space().greville(
false),
222 space.boundary().greville()};
225 return type{space.space().greville(
true),
226 space.boundary().greville()};
230 space.space().clone().uniform_refine().greville(
240 space.space().clone().uniform_refine().greville(
252 .uniform_refine(2, -1)
258 .uniform_refine(2, -1)
265 .uniform_refine(2, -1)
271 .uniform_refine(2, -1)
278 .uniform_refine(3, -1)
284 .uniform_refine(3, -1)
291 .uniform_refine(3, -1)
297 .uniform_refine(3, -1)
301 throw std::runtime_error(
"Invalid collocation point specifier");
305 return collPts(
collPts, space, std::make_index_sequence<type::nspaces()>{});