diff --git a/src/assembly/local/quadrature_table.rs b/src/assembly/local/quadrature_table.rs index f06455de..e88cc8ab 100644 --- a/src/assembly/local/quadrature_table.rs +++ b/src/assembly/local/quadrature_table.rs @@ -147,6 +147,15 @@ where data: self.data, } } + + /// Replaces the data of the quadrature table with the given data. + pub fn with_data(self, data: NestedVec) -> GeneralQuadratureTable { + GeneralQuadratureTable { + points: self.points, + weights: self.weights, + data: data, + } + } } pub struct GeneralQuadratureParts @@ -266,6 +275,28 @@ where } } +impl UniformQuadratureTable +where + T: Scalar, + GeometryDim: DimName, + DefaultAllocator: Allocator, + Data: Clone, +{ + pub fn to_general(&self, num_elements: usize) -> GeneralQuadratureTable { + let mut points = NestedVec::new(); + let mut weights = NestedVec::new(); + let mut data = NestedVec::new(); + + for _ in 0..num_elements { + points.push(&self.points); + weights.push(&self.weights); + data.push(&self.data); + } + + GeneralQuadratureTable::from_points_weights_and_data(points, weights, data) + } +} + impl QuadratureTable for UniformQuadratureTable where T: Scalar,