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");
219 if constexpr (FunctionSpace::nspaces() == 1)
225 space.space().greville(
false),
226 space.boundary().greville()};
229 return type{space.space().greville(
true),
230 space.boundary().greville()};
234 space.space().clone().uniform_refine().greville(
244 space.space().clone().uniform_refine().greville(
256 .uniform_refine(2, -1)
262 .uniform_refine(2, -1)
269 .uniform_refine(2, -1)
275 .uniform_refine(2, -1)
282 .uniform_refine(3, -1)
288 .uniform_refine(3, -1)
295 .uniform_refine(3, -1)
301 .uniform_refine(3, -1)
305 throw std::runtime_error(
"Invalid collocation point specifier");
309 return collPts(
collPts, space, std::make_index_sequence<type::nspaces()>{});