Skip to content

Commit d994bdc

Browse files
committed
Implement conversion of Uniform to GeneralQuadratureTable
1 parent e3ee365 commit d994bdc

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/assembly/local/quadrature_table.rs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

152161
pub 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+
269300
impl<T, GeometryDim, Data> QuadratureTable<T, GeometryDim> for UniformQuadratureTable<T, GeometryDim, Data>
270301
where
271302
T: Scalar,

0 commit comments

Comments
 (0)