54 Eigen::Vector4d
spectrum = Eigen::Vector4d::Zero();
116 const std::vector<polyfem::basis::ElementBases> &bases,
117 const std::vector<polyfem::basis::ElementBases> &gbases,
121 const Eigen::MatrixXd &sol);
161 void save_json(
const nlohmann::json &args,
162 const int n_bases,
const int n_pressure_bases,
163 const Eigen::MatrixXd &sol,
165 const Eigen::VectorXi &disc_orders,
166 const Eigen::VectorXi &disc_ordersq,
169 const std::string &formulation,
170 const bool isoparametric,
171 const int sol_at_node_id,
172 nlohmann::json &j)
const;
double loading_mesh_time
time to load the mesh
double assembling_stiffness_mat_time
time to assembly
double total_time() const
computes total time
double assigning_rhs_time
time to computing the rhs
double assembling_mass_mat_time
time to assembly mass
double building_basis_time
time to construct the basis
double solving_time
time to solve
double computing_poly_basis_time
time to build the polygonal/polyhedral bases
int pyramid_count
statiscs on the mesh (simplices)
int n_flipped
number of flipped elements, compute only when using count_flipped_els (false by default)
int simplex_count
statiscs on the mesh (simplices)
json solver_info
information of the solver, eg num iteration, time, errors, etc the informations varies depending on t...
int simple_singular_count
statiscs on the mesh (irregular quad/hex part of the mesh), see Polyspline paper for desciption
Eigen::Vector4d spectrum
spectrum of the stiffness matrix, enable only if POLYSOLVE_WITH_SPECTRA is ON (off by default)
int prism_count
statiscs on the mesh (simplices)
void count_flipped_elements(const polyfem::mesh::Mesh &mesh, const std::vector< polyfem::basis::ElementBases > &gbases)
counts the number of flipped elements
double l2_err
errors, lp_err is in fact an L8 error
int undefined_count
statiscs on the mesh (not quad/hex simplex), see Polyspline paper for desciption
void compute_errors(const int n_bases, const std::vector< polyfem::basis::ElementBases > &bases, const std::vector< polyfem::basis::ElementBases > &gbases, const polyfem::mesh::Mesh &mesh, const assembler::Problem &problem, const double tend, const Eigen::MatrixXd &sol)
compute errors
void compute_mesh_size(const polyfem::mesh::Mesh &mesh_in, const std::vector< polyfem::basis::ElementBases > &bases_in, const int n_samples, const bool use_curved_mesh_size)
computes the mesh size, it samples every edges n_samples times uses curved_mesh_size (false by defaul...
double average_edge_length
avg edge lenght
double max_angle
statiscs on angle, compute only when using p_ref (false by default)
int non_regular_boundary_count
statiscs on the mesh (irregular boundary quad/hex part of the mesh), see Polyspline paper for descipt...
int non_regular_count
statiscs on the mesh (irregular quad/hex part of the mesh), see Polyspline paper for desciption
int regular_boundary_count
statiscs on the mesh (regular quad/hex boundary part of the mesh), see Polyspline paper for desciptio...
long long nn_zero
non zeros and sytem matrix size num dof is the total dof in the system
double mesh_size
max edge lenght
void reset()
clears all stats
void save_json(const nlohmann::json &args, const int n_bases, const int n_pressure_bases, const Eigen::MatrixXd &sol, const mesh::Mesh &mesh, const Eigen::VectorXi &disc_orders, const Eigen::VectorXi &disc_ordersq, const assembler::Problem &problem, const OutRuntimeData &runtime, const std::string &formulation, const bool isoparametric, const int sol_at_node_id, nlohmann::json &j) const
saves the output statistic to a json object
int multi_singular_boundary_count
statiscs on the mesh (irregular boundary quad/hex part of the mesh), see Polyspline paper for descipt...
void compute_mesh_stats(const polyfem::mesh::Mesh &mesh)
compute stats (counts els type, mesh lenght, etc), step 1 of solve
double sigma_max
statiscs on tri/tet quality, compute only when using p_ref (false by default)
int boundary_count
statiscs on the mesh (boundary quads/hexs), see Polyspline paper for desciption
int regular_count
statiscs on the mesh (regular quad/hex part of the mesh), see Polyspline paper for desciption
double min_edge_length
min edge lenght
int multi_singular_count
statiscs on the mesh (irregular quad/hex part of the mesh), see Polyspline paper for desciption
Abstract mesh class to capture 2d/3d conforming and non-conforming meshes.