Skip to content

Commit 2beb3e8

Browse files
committed
Convenience constructor for CompactQuadratureTable
1 parent 65eb7b8 commit 2beb3e8

1 file changed

Lines changed: 25 additions & 4 deletions

File tree

src/assembly/local/quadrature_table.rs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,17 +67,22 @@ where
6767
data: NestedVec<Data>,
6868
}
6969

70+
fn unit_data_table_for_weights<T>(points: &NestedVec<T>) -> NestedVec<()> {
71+
let mut data = NestedVec::new();
72+
for i in 0..points.len() {
73+
data.push(&vec![(); points.get(i).unwrap().len()]);
74+
}
75+
data
76+
}
77+
7078
impl<T, GeometryDim> GeneralQuadratureTable<T, GeometryDim>
7179
where
7280
T: Scalar,
7381
GeometryDim: DimName,
7482
DefaultAllocator: Allocator<T, GeometryDim>,
7583
{
7684
pub fn from_points_and_weights(points: NestedVec<OPoint<T, GeometryDim>>, weights: NestedVec<T>) -> Self {
77-
let mut data = NestedVec::new();
78-
for i in 0..points.len() {
79-
data.push(&vec![(); points.get(i).unwrap().len()]);
80-
}
85+
let data = unit_data_table_for_weights(&weights);
8186
Self::from_points_weights_and_data(points, weights, data)
8287
}
8388
}
@@ -316,6 +321,22 @@ where
316321
element_to_rule_map: Vec<usize>,
317322
}
318323

324+
impl<T, D> CompactQuadratureTable<T, D>
325+
where
326+
T: Scalar,
327+
D: DimName,
328+
DefaultAllocator: Allocator<T, D>,
329+
{
330+
pub fn from_points_weights_and_map(
331+
points: NestedVec<OPoint<T, D>>,
332+
weights: NestedVec<T>,
333+
element_to_rule_map: Vec<usize>
334+
) -> Self {
335+
let data = unit_data_table_for_weights(&weights);
336+
Self::from_quadrature_rules_and_map(points, weights, data, element_to_rule_map)
337+
}
338+
}
339+
319340
impl<T, D, Data> CompactQuadratureTable<T, D, Data>
320341
where
321342
T: Scalar,

0 commit comments

Comments
 (0)