24 int size(
const int x_size)
const override;
25 Eigen::VectorXd
inverse_eval(
const Eigen::VectorXd &
y)
const override;
26 Eigen::VectorXd
eval(
const Eigen::VectorXd &
x)
const override;
27 Eigen::VectorXd
apply_jacobian(
const Eigen::VectorXd &grad,
const Eigen::VectorXd &
x)
const override;
36 Scaling(
const double scale,
const int from = -1,
const int to = -1);
39 int size(
const int x_size)
const override;
40 Eigen::VectorXd
inverse_eval(
const Eigen::VectorXd &
y)
const override;
41 Eigen::VectorXd
eval(
const Eigen::VectorXd &
x)
const override;
42 Eigen::VectorXd
apply_jacobian(
const Eigen::VectorXd &grad,
const Eigen::VectorXd &
x)
const override;
52 PowerMap(
const double power = 1,
const int from = -1,
const int to = -1);
55 int size(
const int x_size)
const override;
56 Eigen::VectorXd
inverse_eval(
const Eigen::VectorXd &
y)
const override;
57 Eigen::VectorXd
eval(
const Eigen::VectorXd &
x)
const override;
58 Eigen::VectorXd
apply_jacobian(
const Eigen::VectorXd &grad,
const Eigen::VectorXd &
x)
const override;
71 int size(
const int x_size)
const override;
72 Eigen::VectorXd
inverse_eval(
const Eigen::VectorXd &
y)
const override;
73 Eigen::VectorXd
eval(
const Eigen::VectorXd &
x)
const override;
74 Eigen::VectorXd
apply_jacobian(
const Eigen::VectorXd &grad,
const Eigen::VectorXd &
x)
const override;
89 int size(
const int x_size)
const override;
91 Eigen::VectorXd
inverse_eval(
const Eigen::VectorXd &
y)
const override;
92 Eigen::VectorXd
eval(
const Eigen::VectorXd &
x)
const override;
93 Eigen::VectorXd
apply_jacobian(
const Eigen::VectorXd &grad,
const Eigen::VectorXd &
x)
const override;
97 const std::vector<basis::ElementBases> &
bases_;
110 int size(
const int x_size)
const override;
112 Eigen::VectorXd
inverse_eval(
const Eigen::VectorXd &
y)
const override;
113 Eigen::VectorXd
eval(
const Eigen::VectorXd &
x)
const override;
114 Eigen::VectorXd
apply_jacobian(
const Eigen::VectorXd &grad,
const Eigen::VectorXd &
x)
const override;
127 SliceMap(
const int from = -1,
const int to = -1,
const int total = -1);
131 Eigen::VectorXd
inverse_eval(
const Eigen::VectorXd &
y)
const override;
132 Eigen::VectorXd
eval(
const Eigen::VectorXd &
x)
const override;
133 Eigen::VectorXd
apply_jacobian(
const Eigen::VectorXd &grad,
const Eigen::VectorXd &
x)
const override;
145 int size(
const int x_size)
const override;
147 Eigen::VectorXd
inverse_eval(
const Eigen::VectorXd &
y)
const override;
148 Eigen::VectorXd
eval(
const Eigen::VectorXd &
x)
const override;
149 Eigen::VectorXd
apply_jacobian(
const Eigen::VectorXd &grad,
const Eigen::VectorXd &
x)
const override;
164 int size(
const int x_size)
const override;
166 Eigen::VectorXd
eval(
const Eigen::VectorXd &
x)
const override;
167 Eigen::VectorXd
inverse_eval(
const Eigen::VectorXd &
y)
const override;
168 Eigen::VectorXd
apply_jacobian(
const Eigen::VectorXd &grad,
const Eigen::VectorXd &
x)
const override;
180 int size(
const int x_size)
const override;
182 Eigen::VectorXd
inverse_eval(
const Eigen::VectorXd &
y)
const override;
183 Eigen::VectorXd
eval(
const Eigen::VectorXd &
x)
const override;
184 Eigen::VectorXd
apply_jacobian(
const Eigen::VectorXd &grad,
const Eigen::VectorXd &
x)
const override;
Abstract mesh class to capture 2d/3d conforming and non-conforming meshes.
Eigen::VectorXd apply_jacobian(const Eigen::VectorXd &grad, const Eigen::VectorXd &x) const override
Apply jacobian for chain rule.
Eigen::VectorXd eval(const Eigen::VectorXd &x) const override
Eval y = f(x).
int size(const int x_size) const override
Compute DOF of y given DOF of x.
int inverse_size(int y_size) const override
Compute DOF of x given DOF of y.
Eigen::VectorXd inverse_eval(const Eigen::VectorXd &y) const override
Eval x = f^-1 (y).
int size(const int x_size) const override
Compute DOF of y given DOF of x.
int inverse_size(int y_size) const override
Compute DOF of x given DOF of y.
Eigen::VectorXd eval(const Eigen::VectorXd &x) const override
Eval y = f(x).
Eigen::VectorXd inverse_eval(const Eigen::VectorXd &y) const override
Eval x = f^-1 (y).
Eigen::VectorXd apply_jacobian(const Eigen::VectorXd &grad, const Eigen::VectorXd &x) const override
Apply jacobian for chain rule.
Eigen::VectorXd apply_jacobian(const Eigen::VectorXd &grad, const Eigen::VectorXd &x) const override
Apply jacobian for chain rule.
Eigen::VectorXd inverse_eval(const Eigen::VectorXd &y) const override
Eval x = f^-1 (y).
int size(const int x_size) const override
Compute DOF of y given DOF of x.
Eigen::VectorXd eval(const Eigen::VectorXd &x) const override
Eval y = f(x).
int inverse_size(int y_size) const override
Compute DOF of x given DOF of y.
Maps to average of neighboring.
Eigen::SparseMatrix< double > tt_radius_adjacency
Eigen::VectorXd apply_jacobian(const Eigen::VectorXd &grad, const Eigen::VectorXd &x) const override
Apply jacobian for chain rule.
Eigen::VectorXd tt_radius_adjacency_row_sum
Eigen::VectorXd inverse_eval(const Eigen::VectorXd &y) const override
Eval x = f^-1 (y).
Eigen::VectorXd eval(const Eigen::VectorXd &x) const override
Eval y = f(x).
int size(const int x_size) const override
Compute DOF of y given DOF of x.
int inverse_size(int y_size) const override
Compute DOF of x given DOF of y.
Map per body to per element in dim major layout (x1 x2 ... y1 y1 ... z1 z2 ...)
Eigen::VectorXd eval(const Eigen::VectorXd &x) const override
Eval y = f(x).
Eigen::VectorXi compacted_body_elem_num_
Body num.
int size(const int x_size) const override
Compute DOF of y given DOF of x.
Eigen::VectorXd inverse_eval(const Eigen::VectorXd &y) const override
Eval x = f^-1 (y).
int reduced_size_
Element num.
Eigen::VectorXd apply_jacobian(const Eigen::VectorXd &grad, const Eigen::VectorXd &x) const override
Apply jacobian for chain rule.
int inverse_size(int y_size) const override
Compute DOF of x given DOF of y.
Eigen::VectorXi elem_id_to_compacted_body_id_
Number if elements of a body.
Map per body to per FE node in node major layout (x1 y1 z1 x2 y2 z2...)
int size(const int x_size) const override
Compute DOF of y given DOF of x.
Eigen::VectorXd eval(const Eigen::VectorXd &x) const override
Eval y = f(x).
Eigen::VectorXi compacted_body_node_num_
Body num.
int reduced_size_
FE node num.
Eigen::VectorXi node_id_to_compacted_body_
Number of nodes of a body.
Eigen::VectorXd apply_jacobian(const Eigen::VectorXd &grad, const Eigen::VectorXd &x) const override
Apply jacobian for chain rule.
int inverse_size(int y_size) const override
Compute DOF of x given DOF of y.
Eigen::VectorXd inverse_eval(const Eigen::VectorXd &y) const override
Eval x = f^-1 (y).
const std::vector< basis::ElementBases > & bases_
int inverse_size(int y_size) const override
Compute DOF of x given DOF of y.
Eigen::VectorXd eval(const Eigen::VectorXd &x) const override
Eval y = f(x).
int size(const int x_size) const override
Compute DOF of y given DOF of x.
Eigen::VectorXd apply_jacobian(const Eigen::VectorXd &grad, const Eigen::VectorXd &x) const override
Apply jacobian for chain rule.
Eigen::VectorXd inverse_eval(const Eigen::VectorXd &y) const override
Eval x = f^-1 (y).
int inverse_size(int y_size) const override
Compute DOF of x given DOF of y.
Eigen::VectorXd apply_jacobian(const Eigen::VectorXd &grad, const Eigen::VectorXd &x) const override
Apply jacobian for chain rule.
int size(const int x_size) const override
Compute DOF of y given DOF of x.
Eigen::VectorXd eval(const Eigen::VectorXd &x) const override
Eval y = f(x).
Eigen::VectorXd inverse_eval(const Eigen::VectorXd &y) const override
Eval x = f^-1 (y).
Eigen::VectorXd eval(const Eigen::VectorXd &x) const override
Eval y = f(x).
int inverse_size(int y_size) const override
Compute DOF of x given DOF of y.
Eigen::VectorXd inverse_eval(const Eigen::VectorXd &y) const override
Eval x = f^-1 (y).
Eigen::VectorXd apply_jacobian(const Eigen::VectorXd &grad, const Eigen::VectorXd &x) const override
Apply jacobian for chain rule.
int size(const int x_size) const override
Compute DOF of y given DOF of x.
Eigen::VectorXd apply_jacobian(const Eigen::VectorXd &grad, const Eigen::VectorXd &x) const override
Apply jacobian for chain rule.
Eigen::VectorXd inverse_eval(const Eigen::VectorXd &y) const override
Eval x = f^-1 (y).
int size(const int x_size) const override
Compute DOF of y given DOF of x.
Eigen::VectorXd eval(const Eigen::VectorXd &x) const override
Eval y = f(x).
int inverse_size(int y_size) const override
Compute DOF of x given DOF of y.