25 const std::vector<basis::ElementBases> &gbases,
26 const std::vector<basis::ElementBases> &bases,
27 const double &density_dx);
31 const std::vector<mesh::LocalBoundary> &local_boundary);
38 const int shape_,
const int n_el_,
39 const std::vector<mesh::LocalBoundary> &local_boundary,
40 const std::vector<int> &bnd_nodes);
44 const std::vector<mesh::LocalBoundary> &local_boundary,
45 const std::vector<int> &bnd_nodes);
49 const std::vector<mesh::LocalBoundary> &local_boundary,
50 const std::vector<int> &boundary_nodes_,
51 const std::vector<int> &pressure_boundary_nodes,
52 const std::vector<int> &bnd_nodes,
58 const double &viscosity_,
63 int trace_back(
const std::vector<basis::ElementBases> &gbases,
64 const std::vector<basis::ElementBases> &bases,
69 Eigen::MatrixXd &local_pos,
70 const Eigen::MatrixXd &sol,
73 int interpolator(
const std::vector<basis::ElementBases> &gbases,
74 const std::vector<basis::ElementBases> &bases,
77 Eigen::MatrixXd &local_pos,
78 const Eigen::MatrixXd &sol);
84 const std::vector<basis::ElementBases> &gbases,
85 const std::vector<basis::ElementBases> &bases,
88 const Eigen::MatrixXd &local_pts,
93 const std::vector<basis::ElementBases> &bases,
94 const std::shared_ptr<assembler::Problem> problem,
99 void advect_density(
const std::vector<basis::ElementBases> &gbases,
100 const std::vector<basis::ElementBases> &bases,
101 const Eigen::MatrixXd &sol,
105 void advection_FLIP(
const mesh::Mesh &mesh,
const std::vector<basis::ElementBases> &gbases,
const std::vector<basis::ElementBases> &bases, Eigen::MatrixXd &sol,
const double dt,
const Eigen::MatrixXd &local_pts,
const int order = 1);
107 void advection_PIC(
const mesh::Mesh &mesh,
const std::vector<basis::ElementBases> &gbases,
const std::vector<basis::ElementBases> &bases, Eigen::MatrixXd &sol,
const double dt,
const Eigen::MatrixXd &local_pts,
const int order = 1);
113 const std::vector<basis::ElementBases> &gbases,
114 const std::vector<basis::ElementBases> &bases,
116 Eigen::MatrixXd &sol,
117 const Eigen::MatrixXd &local_pts,
118 const std::shared_ptr<assembler::Problem> problem,
121 void solve_pressure(
const StiffnessMatrix &mixed_stiffness,
const std::vector<int> &pressure_boundary_nodes, Eigen::MatrixXd &sol, Eigen::MatrixXd &pressure);
126 const std::vector<basis::ElementBases> &gbases,
127 const std::vector<basis::ElementBases> &bases,
128 const std::vector<basis::ElementBases> &pressure_bases,
129 const Eigen::MatrixXd &local_pts,
130 Eigen::MatrixXd &pressure,
131 Eigen::MatrixXd &sol);
135 long search_cell(
const std::vector<basis::ElementBases> &gbases,
const RowVectorNd &pos, Eigen::MatrixXd &local_pts);
139 void compute_gbase_val(
const int elem_idx,
const Eigen::MatrixXd &local_pos, Eigen::MatrixXd &pos);
141 void compute_gbase_jacobi(
const int elem_idx,
const Eigen::MatrixXd &local_pos, Eigen::MatrixXd &jacobi);
146 Eigen::MatrixXd &local_pos);
182 Eigen::Matrix<double, 1, Eigen::Dynamic, Eigen::RowMajor, 1, 3>
grid_cell_num;