@@ -147,6 +147,15 @@ where
147147 data : self . data ,
148148 }
149149 }
150+
151+ /// Replaces the data of the quadrature table with the given data.
152+ pub fn with_data < NewData > ( self , data : NestedVec < NewData > ) -> GeneralQuadratureTable < T , GeometryDim , NewData > {
153+ GeneralQuadratureTable {
154+ points : self . points ,
155+ weights : self . weights ,
156+ data : data,
157+ }
158+ }
150159}
151160
152161pub struct GeneralQuadratureParts < T , GeometryDim , Data >
@@ -266,6 +275,28 @@ where
266275 }
267276}
268277
278+ impl < T , GeometryDim , Data > UniformQuadratureTable < T , GeometryDim , Data >
279+ where
280+ T : Scalar ,
281+ GeometryDim : DimName ,
282+ DefaultAllocator : Allocator < T , GeometryDim > ,
283+ Data : Clone ,
284+ {
285+ pub fn to_general ( & self , num_elements : usize ) -> GeneralQuadratureTable < T , GeometryDim , Data > {
286+ let mut points = NestedVec :: new ( ) ;
287+ let mut weights = NestedVec :: new ( ) ;
288+ let mut data = NestedVec :: new ( ) ;
289+
290+ for _ in 0 ..num_elements {
291+ points. push ( & self . points ) ;
292+ weights. push ( & self . weights ) ;
293+ data. push ( & self . data ) ;
294+ }
295+
296+ GeneralQuadratureTable :: from_points_weights_and_data ( points, weights, data)
297+ }
298+ }
299+
269300impl < T , GeometryDim , Data > QuadratureTable < T , GeometryDim > for UniformQuadratureTable < T , GeometryDim , Data >
270301where
271302 T : Scalar ,
0 commit comments