PolyFEM
Loading...
Searching...
No Matches
PrismQuadrature.cpp
Go to the documentation of this file.
1
#include "
PrismQuadrature.hpp
"
2
#include "
TriQuadrature.hpp
"
3
#include "
LineQuadrature.hpp
"
4
5
#include <vector>
6
#include <cassert>
7
#include <cmath>
8
#include <iostream>
9
10
namespace
polyfem
11
{
12
namespace
quadrature
13
{
14
PrismQuadrature::PrismQuadrature
()
15
{
16
}
17
18
void
PrismQuadrature::get_quadrature
(
const
int
order,
const
int
order_h,
Quadrature
&quad)
19
{
20
Quadrature
tmpt, tmpl;
21
22
TriQuadrature
tc;
23
tc.
get_quadrature
(order, tmpt);
24
25
LineQuadrature
lc;
26
lc.
get_quadrature
(order, tmpl);
27
28
quad.
points
.resize(tmpt.
weights
.size() * tmpl.
weights
.size(), 3);
29
quad.
weights
.resize(tmpt.
weights
.size() * tmpl.
weights
.size());
30
31
int
index = 0;
32
33
for
(
int
i = 0; i < tmpt.
weights
.size(); ++i)
34
{
35
for
(
int
j = 0; j < tmpl.
weights
.size(); ++j)
36
{
37
quad.
points
.row(index) << tmpt.
points
(i, 0), tmpt.
points
(i, 1), tmpl.
points
(j, 0);
38
quad.
weights
(index) = tmpt.
weights
(i) * tmpl.
weights
(j);
39
++index;
40
}
41
}
42
43
assert(fabs(quad.
weights
.sum() - 0.5) < 1e-12);
44
assert(quad.
points
.minCoeff() >= 0 && quad.
points
.maxCoeff() <= 1);
45
46
assert(quad.
points
.rows() == quad.
weights
.size());
47
assert(index == quad.
weights
.size());
48
}
49
}
// namespace quadrature
50
}
// namespace polyfem
LineQuadrature.hpp
quadrature
Quadrature quadrature
Definition
MassMatrixAssembler.cpp:30
PrismQuadrature.hpp
TriQuadrature.hpp
polyfem::quadrature::LineQuadrature
Definition
LineQuadrature.hpp:10
polyfem::quadrature::LineQuadrature::get_quadrature
void get_quadrature(const int order, Quadrature &quad)
Definition
LineQuadrature.cpp:4707
polyfem::quadrature::PrismQuadrature::get_quadrature
void get_quadrature(const int order, const int order_h, Quadrature &quad)
Definition
PrismQuadrature.cpp:18
polyfem::quadrature::PrismQuadrature::PrismQuadrature
PrismQuadrature()
Definition
PrismQuadrature.cpp:14
polyfem::quadrature::Quadrature
Definition
Quadrature.hpp:9
polyfem::quadrature::Quadrature::points
Eigen::MatrixXd points
Definition
Quadrature.hpp:11
polyfem::quadrature::Quadrature::weights
Eigen::VectorXd weights
Definition
Quadrature.hpp:12
polyfem::quadrature::TriQuadrature
Definition
TriQuadrature.hpp:10
polyfem::quadrature::TriQuadrature::get_quadrature
void get_quadrature(const int order, Quadrature &quad)
Definition
TriQuadrature.cpp:43
polyfem
Definition
AMIPSEnergy.cpp:6
src
polyfem
quadrature
PrismQuadrature.cpp
Generated by
1.9.8