16 using Values = std::vector<std::reference_wrapper<const ElementAssemblyValues>>;
17 using Coefficients = std::vector<std::reference_wrapper<const Eigen::VectorXd>>;
33 assert(
vals_.size() ==
x_.size());
41 const Eigen::VectorXd &
x(
const int space)
const {
return x_.at(space).get(); }
42 const Eigen::VectorXd &
x_prev(
const int space)
const {
return x_prev_.at(space).get(); }
61 const Eigen::MatrixXd &
x,
62 const Eigen::MatrixXd &
x_prev,
71 const Eigen::MatrixXd &
x;
136 const Eigen::MatrixXd &
x_phi,
137 const Eigen::MatrixXd &
x_psi,
195 const Eigen::MatrixXd &
fun)
205 const Eigen::MatrixXd &
fun;
ElementAssemblyValues vals
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
const int i
first local order
const int j
second local order
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 int i
first local order
const int j
second local order
const ElementAssemblyValues & phi_vals
stores the evaluation for that element
const ElementAssemblyValues & psi_vals
stores the evaluation for that element
const Eigen::MatrixXd & x_phi_prev
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 Eigen::MatrixXd & x_phi
const QuadratureVector & da
Contains both the quadrature weight and the change of metric in the integral.
const Eigen::MatrixXd & x_psi
const ElementAssemblyValues & phi_vals
Values for the first block, historically tensor velocity/displacement-like bases.
const Eigen::MatrixXd & x_psi_prev
const ElementAssemblyValues & psi_vals
Values for the second block, historically scalar pressure-like bases.
Local data shared by assemblers involving an arbitrary number of FE spaces.
MultiSpacesNLAssemblerData(Values vals, Coefficients x, Coefficients x_prev, const double t, const double dt, const QuadratureVector &da)
std::vector< std::reference_wrapper< const Eigen::VectorXd > > Coefficients
const ElementAssemblyValues & vals(const int space) const
virtual ~MultiSpacesNLAssemblerData()=default
const Eigen::VectorXd & x_prev(const int space) const
const Eigen::VectorXd & x(const int space) const
std::vector< std::reference_wrapper< const ElementAssemblyValues > > Values
const QuadratureVector & da
const Eigen::MatrixXd & x_prev
NonLinearAssemblerData(const ElementAssemblyValues &vals, const double t, const double dt, const Eigen::MatrixXd &x, const Eigen::MatrixXd &x_prev, const QuadratureVector &da)
const ElementAssemblyValues & vals
const Eigen::MatrixXd & x
const QuadratureVector & da
const Eigen::MatrixXd & local_pts
const Eigen::MatrixXd & global_pts
const Eigen::MatrixXd & grad_u_i
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).
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, MAX_QUAD_POINTS, 1 > QuadratureVector