PolyFEM
Loading...
Searching...
No Matches
AssemblerData.hpp
Go to the documentation of this file.
1#pragma once
2
4
5namespace polyfem::assembler
6{
8 {
9 public:
12 const double t,
13 const double dt,
14 const Eigen::MatrixXd &x,
15 const Eigen::MatrixXd &x_prev,
16 const QuadratureVector &da)
17 : vals(vals), t(t), dt(dt), x(x), x_prev(x_prev), da(da)
18 {
19 }
20
22 const double t;
23 const double dt;
24 const Eigen::MatrixXd &x;
25 const Eigen::MatrixXd &x_prev;
27 };
28
30 {
31 public:
34 const double t,
35 int i, int j,
36 const QuadratureVector &da)
37 : vals(vals), t(t), i(i), j(j), da(da)
38 {
39 }
40
43
44 const double t;
46 const int i;
48 const int j;
51 };
52
54 {
55 public:
59 const double t,
60 int i, int j,
61 const QuadratureVector &da)
63 t(t), i(i), j(j), da(da)
64 {
65 }
66
71
72 const double t;
74 const int i;
76 const int j;
79 };
80
82 {
83 public:
87 const double t,
88 const double dt,
89 const Eigen::MatrixXd &x_phi,
90 const Eigen::MatrixXd &x_psi,
91 const Eigen::MatrixXd &x_phi_prev,
92 const Eigen::MatrixXd &x_psi_prev,
93 const QuadratureVector &da)
95 t(t), dt(dt),
98 da(da)
99 {
100 }
101
106
107 const double t;
108 const double dt;
109 const Eigen::MatrixXd &x_phi;
110 const Eigen::MatrixXd &x_psi;
111 const Eigen::MatrixXd &x_phi_prev;
112 const Eigen::MatrixXd &x_psi_prev;
115 };
116
118 {
119 public:
121 const double t,
122 const double dt,
123 const int el_id,
124 const Eigen::MatrixXd &local_pts,
125 const Eigen::MatrixXd &global_pts,
126 const Eigen::MatrixXd &grad_u_i)
128 {
129 }
130
131 const double t;
132 const double dt;
133 const int el_id;
134 const Eigen::MatrixXd &local_pts;
135 const Eigen::MatrixXd &global_pts;
136 const Eigen::MatrixXd &grad_u_i;
137 };
138
140 {
141 public:
143 const double t,
144 const int el_id,
145 const basis::ElementBases &bs,
147 const Eigen::MatrixXd &local_pts,
148 const Eigen::MatrixXd &fun)
150 {
151 }
152
153 const double t;
154 const int el_id;
157 const Eigen::MatrixXd &local_pts;
158 const Eigen::MatrixXd &fun;
159 };
160} // namespace polyfem::assembler
stores per element basis values at given quadrature points and geometric mapping
const ElementAssemblyValues & vals
stores the evaluation for that element
const QuadratureVector & da
contains both the quadrature weight and the change of metric in the integral
LinearAssemblerData(const ElementAssemblyValues &vals, const double t, int i, int j, const QuadratureVector &da)
MixedAssemblerData(const ElementAssemblyValues &psi_vals, const ElementAssemblyValues &phi_vals, const double t, int i, int j, const QuadratureVector &da)
const QuadratureVector & da
contains both the quadrature weight and the change of metric in the integral
const ElementAssemblyValues & phi_vals
stores the evaluation for that element
const ElementAssemblyValues & psi_vals
stores the evaluation for that element
MixedNonLinearAssemblerData(const ElementAssemblyValues &psi_vals, const ElementAssemblyValues &phi_vals, const double t, const double dt, const Eigen::MatrixXd &x_phi, const Eigen::MatrixXd &x_psi, const Eigen::MatrixXd &x_phi_prev, const Eigen::MatrixXd &x_psi_prev, const QuadratureVector &da)
const QuadratureVector & da
Contains both the quadrature weight and the change of metric in the integral.
const ElementAssemblyValues & phi_vals
Values for the first block, historically tensor velocity/displacement-like bases.
const ElementAssemblyValues & psi_vals
Values for the second block, historically scalar pressure-like bases.
NonLinearAssemblerData(const ElementAssemblyValues &vals, const double t, const double dt, const Eigen::MatrixXd &x, const Eigen::MatrixXd &x_prev, const QuadratureVector &da)
OptAssemblerData(const double t, const double dt, const int el_id, const Eigen::MatrixXd &local_pts, const Eigen::MatrixXd &global_pts, const Eigen::MatrixXd &grad_u_i)
const basis::ElementBases & bs
OutputData(const double t, const int el_id, const basis::ElementBases &bs, const basis::ElementBases &gbs, const Eigen::MatrixXd &local_pts, const Eigen::MatrixXd &fun)
const Eigen::MatrixXd & fun
const Eigen::MatrixXd & local_pts
const basis::ElementBases & gbs
Stores the basis functions for a given element in a mesh (facet in 2d, cell in 3d).
Used for test only.
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, MAX_QUAD_POINTS, 1 > QuadratureVector
Definition Types.hpp:17