PolyFEM
|
#include "Assembler.hpp"
#include <polyfem/utils/Logger.hpp>
#include <polyfem/utils/MaybeParallelFor.hpp>
#include <igl/Timer.h>
#include <ipc/utils/eigen_ext.hpp>
Go to the source code of this file.
Namespaces | |
namespace | polyfem |
namespace | polyfem::assembler |
Used for test only. | |
std::unique_ptr<MatrixCache> cache = nullptr |
Definition at line 21 of file Assembler.cpp.
Referenced by polyfem::assembler::NLAssembler::assemble_energy(), polyfem::assembler::NLAssembler::assemble_energy_per_element(), polyfem::mesh::TetOperationCache::collapse_edge(), polyfem::mesh::TriOperationCache::collapse_edge(), polyfem::mesh::Remesher::project_quantities(), polyfem::mesh::PhysicsRemesher< wmtk::TetMesh >::smooth_after(), polyfem::mesh::TetOperationCache::split_edge(), polyfem::mesh::TriOperationCache::split_edge(), and polyfem::mesh::TriOperationCache::swap_edge().
QuadratureVector da |
Definition at line 23 of file Assembler.cpp.
Referenced by polyfem::assembler::RhsAssembler::compute_energy(), polyfem::basis::PolygonalBasis2d::compute_integral_constraints(), polyfem::solver::ComplianceForm::compute_partial_gradient_step(), polyfem::io::Evaluator::integrate_function(), and polyfem::basis::RBFWithQuadratic::setup_monomials_strong_2d().
double val |
Definition at line 86 of file Assembler.cpp.
Referenced by polyfem::assembler::MassMatrixAssembler::assemble_cross(), polyfem::assembler::NLAssembler::assemble_energy(), polyfem::assembler::NLAssembler::assemble_energy_per_element(), polyfem::basis::RBFWithLinear::bases_grads(), polyfem::basis::RBFWithQuadratic::bases_grads(), polyfem::basis::RBFWithQuadraticLagrange::bases_grads(), polyfem::basis::RBFWithLinear::bases_values(), polyfem::basis::RBFWithQuadratic::bases_values(), polyfem::basis::RBFWithQuadraticLagrange::bases_values(), polyfem::basis::RBFWithLinear::basis(), polyfem::basis::RBFWithQuadratic::basis(), polyfem::basis::RBFWithQuadraticLagrange::basis(), polyfem::LazyCubicInterpolator::bicubic_interpolation(), polyfem::solver::BoundarySmoothingForm::BoundarySmoothingForm(), polyfem::basis::PolygonalBasis2d::build_bases(), polyfem::basis::PolygonalBasis3d::build_bases(), polyfem::basis::BarycentricBasis2d::build_bases(), polyfem::mesh::Obstacle::change_displacement(), polyfem::mesh::Obstacle::change_displacement(), polyfem::assembler::ViscousDamping::compute_energy(), polyfem::assembler::AMIPSEnergy::compute_energy_aux(), polyfem::assembler::FixedCorotational::compute_energy_aux(), polyfem::assembler::GenericElastic< Derived >::compute_energy_aux(), polyfem::assembler::LinearElasticity::compute_energy_aux(), polyfem::assembler::MooneyRivlin3ParamSymbolic::compute_energy_aux(), polyfem::assembler::NeoHookeanElasticity::compute_energy_aux(), polyfem::assembler::NeoHookeanElasticity::compute_energy_aux_gradient_fast(), polyfem::assembler::AMIPSEnergy::compute_energy_hessian_aux_fast(), polyfem::assembler::NeoHookeanElasticity::compute_energy_hessian_aux_fast(), polyfem::io::OutStatsData::compute_errors(), polyfem::assembler::NavierStokesVelocity::compute_N(), polyfem::assembler::Helmholtz::compute_rhs(), polyfem::assembler::NavierStokesVelocity::compute_rhs(), polyfem::assembler::StokesVelocity::compute_rhs(), polyfem::assembler::GenericElastic< AMIPSEnergyAutodiff >::compute_stress_grad_multiply_vect(), polyfem::basis::RBFWithQuadratic::compute_weights(), polyfem::basis::RBFWithQuadraticLagrange::compute_weights(), polyfem::Units::convert(), polyfem::Units::convert(), polyfem::CubicHermiteSplineParametrization::deriv(), polyfem::BSplineParametrization2D::deriv(), polyfem::assembler::GenericTensorProblem::dirichlet_bc(), polyfem::assembler::GenericScalarProblem::dirichlet_bc(), polyfem::problem::ElasticProblem::dirichlet_bc(), polyfem::problem::TorsionElasticProblem::dirichlet_bc(), polyfem::problem::DoubleTorsionElasticProblem::dirichlet_bc(), polyfem::problem::ElasticProblemZeroBC::dirichlet_bc(), polyfem::problem::GravityProblem::dirichlet_bc(), polyfem::problem::WalkProblem::dirichlet_bc(), polyfem::problem::ElasticCantileverExact::dirichlet_bc(), polyfem::problem::MinSurfProblem::dirichlet_bc(), polyfem::problem::TimeDependentProblem::dirichlet_bc(), polyfem::problem::NodeProblem::dirichlet_bc(), polyfem::problem::PointBasedTensorProblem::dirichlet_bc(), polyfem::problem::ProblemWithSolution::dirichlet_bc(), polyfem::problem::BilaplacianProblemWithSolution::dirichlet_bc(), polyfem::problem::ConstantVelocity::dirichlet_bc(), polyfem::problem::TwoSpheres::dirichlet_bc(), polyfem::problem::DrivenCavity::dirichlet_bc(), polyfem::problem::DrivenCavityC0::dirichlet_bc(), polyfem::problem::DrivenCavitySmooth::dirichlet_bc(), polyfem::problem::Flow::dirichlet_bc(), polyfem::problem::FlowWithObstacle::dirichlet_bc(), polyfem::problem::Kovnaszy::dirichlet_bc(), polyfem::problem::CornerFlow::dirichlet_bc(), polyfem::problem::Lshape::dirichlet_bc(), polyfem::problem::UnitFlowWithObstacle::dirichlet_bc(), polyfem::problem::TaylorGreenVortexProblem::dirichlet_bc(), polyfem::problem::StokesLawProblem::dirichlet_bc(), polyfem::problem::Airfoil::dirichlet_bc(), polyfem::problem::TransientStokeProblemExact::dirichlet_bc(), polyfem::assembler::GenericTensorProblem::dirichlet_nodal_value(), polyfem::assembler::GenericScalarProblem::dirichlet_nodal_value(), polyfem::IntegrableFunctional::dj_dgradu(), polyfem::IntegrableFunctional::dj_dgradu_local(), polyfem::IntegrableFunctional::dj_dgradx(), polyfem::IntegrableFunctional::dj_du(), polyfem::IntegrableFunctional::dj_dx(), polyfem::assembler::MooneyRivlin3ParamElasticity::elastic_energy(), polyfem::assembler::MooneyRivlinElasticity::elastic_energy(), polyfem::assembler::NeoHookeanAutodiff::elastic_energy(), polyfem::assembler::MooneyRivlin3ParamSymbolic::elastic_energy(), polyfem::CubicHermiteSplineParametrization::eval(), polyfem::BSplineParametrization2D::eval(), polyfem::BSplineParametrization3D::eval(), polyfem::assembler::TensorBCValue::eval(), polyfem::basis::Basis::eval_basis(), polyfem::basis::Basis::eval_grad(), polyfem::IntegrableFunctional::evaluate(), polyfem::LazyCubicInterpolator::evaluate(), polyfem::basis::ElementBases::evaluate_bases_default(), polyfem::assembler::GenericTensorProblem::exact(), polyfem::assembler::GenericScalarProblem::exact(), polyfem::problem::ElasticCantileverExact::exact(), polyfem::problem::ProblemWithSolution::exact(), polyfem::problem::BilaplacianProblemWithSolution::exact(), polyfem::problem::Kovnaszy::exact(), polyfem::problem::TaylorGreenVortexProblem::exact(), polyfem::problem::StokesLawProblem::exact(), polyfem::problem::Airfoil::exact(), polyfem::problem::TransientStokeProblemExact::exact(), polyfem::assembler::GenericTensorProblem::exact_grad(), polyfem::assembler::GenericScalarProblem::exact_grad(), polyfem::problem::ElasticCantileverExact::exact_grad(), polyfem::problem::ProblemWithSolution::exact_grad(), polyfem::problem::BilaplacianProblemWithSolution::exact_grad(), polyfem::problem::Kovnaszy::exact_grad(), polyfem::problem::TaylorGreenVortexProblem::exact_grad(), polyfem::problem::StokesLawProblem::exact_grad(), polyfem::problem::Airfoil::exact_grad(), polyfem::problem::TransientStokeProblemExact::exact_grad(), polyfem::solver::OperatorSplittingSolver::external_force(), polyfem::CubicHermiteSplineParametrization::find_nearest_spline(), polyfem::solver::ElasticEnergyForm::get_integral_functional(), polyfem::solver::StressNormForm::get_integral_functional(), polyfem::solver::ComplianceForm::get_integral_functional(), polyfem::solver::PositionForm::get_integral_functional(), polyfem::solver::AccelerationForm::get_integral_functional(), polyfem::solver::KineticForm::get_integral_functional(), polyfem::solver::StressForm::get_integral_functional(), polyfem::solver::VolumeForm::get_integral_functional(), polyfem::solver::TargetForm::get_integral_functional(), polyfem::solver::SDFTargetForm::get_integral_functional(), polyfem::solver::MeshTargetForm::get_integral_functional(), polyfem::basis::RBFWithLinear::grad(), polyfem::basis::RBFWithQuadratic::grad(), polyfem::basis::RBFWithQuadraticLagrange::grad(), polyfem::CubicHermiteSplineParametrization::gradient(), polyfem::BSplineParametrization2D::gradient(), polyfem::BSplineParametrization3D::gradient(), polyfem::utils::ExpressionValue::init(), polyfem::utils::ExpressionValue::init(), polyfem::assembler::GenericTensorProblem::initial_acceleration(), polyfem::problem::DoubleTorsionElasticProblem::initial_acceleration(), polyfem::problem::GravityProblem::initial_acceleration(), polyfem::problem::WalkProblem::initial_acceleration(), polyfem::assembler::RhsAssembler::initial_acceleration(), polyfem::problem::TwoSpheres::initial_density(), polyfem::assembler::GenericTensorProblem::initial_solution(), polyfem::assembler::GenericScalarProblem::initial_solution(), polyfem::problem::DoubleTorsionElasticProblem::initial_solution(), polyfem::problem::GravityProblem::initial_solution(), polyfem::problem::WalkProblem::initial_solution(), polyfem::problem::TimeDependentProblem::initial_solution(), polyfem::problem::GenericScalarProblemExact::initial_solution(), polyfem::problem::TimeDepentendStokesProblem::initial_solution(), polyfem::problem::TwoSpheres::initial_solution(), polyfem::problem::Kovnaszy::initial_solution(), polyfem::problem::TaylorGreenVortexProblem::initial_solution(), polyfem::problem::StokesLawProblem::initial_solution(), polyfem::problem::Airfoil::initial_solution(), polyfem::problem::TransientStokeProblemExact::initial_solution(), polyfem::assembler::RhsAssembler::initial_solution(), polyfem::assembler::GenericTensorProblem::initial_velocity(), polyfem::problem::DoubleTorsionElasticProblem::initial_velocity(), polyfem::problem::GravityProblem::initial_velocity(), polyfem::problem::WalkProblem::initial_velocity(), polyfem::assembler::RhsAssembler::initial_velocity(), polyfem::solver::InsertConstantMap::InsertConstantMap(), polyfem::autogen::int_pow(), polyfem::io::Evaluator::interpolate_at_local_vals(), polyfem::io::Evaluator::interpolate_at_local_vals(), polyfem::solver::OperatorSplittingSolver::interpolator(), polyfem::assembler::Helmholtz::kernel(), polyfem::LazyCubicInterpolator::lazy_evaluate(), polyfem::assembler::AssemblerUtils::merge_mixed_matrices(), polyfem::assembler::GenericTensorProblem::neumann_bc(), polyfem::assembler::GenericScalarProblem::neumann_bc(), polyfem::problem::ElasticCantileverExact::neumann_bc(), polyfem::problem::NodeProblem::neumann_bc(), polyfem::problem::PointBasedTensorProblem::neumann_bc(), polyfem::mesh::CMesh3D::normalize(), polyfem::basis::Basis::operator()(), polyfem::problem::PointBasedTensorProblem::BCValue::operator()(), polyfem::solver::OperatorSplittingSolver::OperatorSplittingSolver(), polyfem::autogen::p_basis_value_2d(), polyfem::autogen::p_basis_value_3d(), polyfem::autogen::p_grad_basis_value_2d(), polyfem::autogen::p_grad_basis_value_3d(), polyfem::autogen::p_n_basis_grad_value_2d(), polyfem::autogen::p_n_basis_grad_value_3d(), polyfem::autogen::p_n_basis_value_2d(), polyfem::autogen::p_n_basis_value_3d(), polyfem::autogen::p_n_nodes_2d(), polyfem::autogen::p_n_nodes_3d(), polyfem::autogen::p_nodes_2d(), polyfem::autogen::p_nodes_3d(), polyfem::assembler::GenericTensorProblem::pressure_bc(), polyfem::autogen::q_0_basis_grad_value_3d(), polyfem::autogen::q_1_basis_grad_value_3d(), polyfem::autogen::q_2_basis_grad_value_3d(), polyfem::autogen::q_3_basis_grad_value_3d(), polyfem::autogen::q_basis_value_2d(), polyfem::autogen::q_basis_value_3d(), polyfem::autogen::q_grad_basis_value_2d(), polyfem::autogen::q_grad_basis_value_3d(), polyfem::autogen::q_m2_basis_grad_value_3d(), polyfem::autogen::q_nodes_2d(), polyfem::autogen::q_nodes_3d(), polyfem::assembler::GenericTensorProblem::rhs(), polyfem::assembler::GenericScalarProblem::rhs(), polyfem::problem::ElasticProblem::rhs(), polyfem::problem::TorsionElasticProblem::rhs(), polyfem::problem::DoubleTorsionElasticProblem::rhs(), polyfem::problem::ElasticProblemZeroBC::rhs(), polyfem::problem::GravityProblem::rhs(), polyfem::problem::WalkProblem::rhs(), polyfem::problem::ElasticCantileverExact::rhs(), polyfem::problem::KernelProblem::rhs(), polyfem::problem::MinSurfProblem::rhs(), polyfem::problem::TimeDependentProblem::rhs(), polyfem::problem::GenericScalarProblemExact::rhs(), polyfem::problem::NodeProblem::rhs(), polyfem::problem::PointBasedTensorProblem::rhs(), polyfem::problem::ProblemWithSolution::rhs(), polyfem::problem::BilaplacianProblemWithSolution::rhs(), polyfem::problem::ConstantVelocity::rhs(), polyfem::problem::TwoSpheres::rhs(), polyfem::problem::DrivenCavity::rhs(), polyfem::problem::DrivenCavityC0::rhs(), polyfem::problem::DrivenCavitySmooth::rhs(), polyfem::problem::Flow::rhs(), polyfem::problem::FlowWithObstacle::rhs(), polyfem::problem::Kovnaszy::rhs(), polyfem::problem::CornerFlow::rhs(), polyfem::problem::Lshape::rhs(), polyfem::problem::UnitFlowWithObstacle::rhs(), polyfem::problem::TaylorGreenVortexProblem::rhs(), polyfem::problem::StokesLawProblem::rhs(), polyfem::problem::Airfoil::rhs(), polyfem::problem::TransientStokeProblemExact::rhs(), polyfem::CubicHermiteSplineParametrization::second_deriv(), polyfem::assembler::NavierStokesVelocity::set_picard(), polyfem::solver::Form::set_project_to_psd(), polyfem::assembler::GenericTensorProblem::set_time_dependent(), polyfem::assembler::GenericScalarProblem::set_time_dependent(), polyfem::mesh::PhysicsTriRemesher::swap_edges(), polyfem::LazyCubicInterpolator::tricubic_interpolation(), polyfem::assembler::GenericTensorProblem::update_dirichlet_boundary(), polyfem::assembler::GenericTensorProblem::update_pressure_boundary(), polyfem::solver::AdjointForm::value(), polyfem::solver::FullNLProblem::value(), polyfem::solver::NLHomoProblem::value(), polyfem::solver::BoundarySmoothingForm::value_unweighted(), polyfem::solver::NodeTargetForm::value_unweighted_step(), and polyfem::solver::WeightedVolumeForm::value_unweighted_with_param().
ElementAssemblyValues vals |
Definition at line 22 of file Assembler.cpp.
Referenced by polyfem::solver::OperatorSplittingSolver::advection_FLIP(), polyfem::solver::OperatorSplittingSolver::advection_PIC(), polyfem::assembler::RhsAssembler::assemble(), polyfem::assembler::NLAssembler::assemble_energy(), polyfem::assembler::NLAssembler::assemble_energy_per_element(), polyfem::assembler::FixedCorotational::assign_stress_tensor(), polyfem::assembler::HookeLinearElasticity::assign_stress_tensor(), polyfem::assembler::IncompressibleLinearElasticityDispacement::assign_stress_tensor(), polyfem::assembler::LinearElasticity::assign_stress_tensor(), polyfem::assembler::MooneyRivlin3ParamSymbolic::assign_stress_tensor(), polyfem::assembler::NeoHookeanElasticity::assign_stress_tensor(), polyfem::assembler::SaintVenantElasticity::assign_stress_tensor(), polyfem::io::Evaluator::average_grad_based_function(), polyfem::State::build_basis(), polyfem::solver::LayerThicknessForm::build_collision_mesh(), polyfem::solver::ProxyContactForceForm::build_collision_mesh(), polyfem::io::OutGeometryData::build_vis_boundary_mesh(), polyfem::assembler::AssemblyValsCache::compute(), polyfem::solver::ProxyTransientForm::compute_adjoint_rhs(), polyfem::compute_diplacement_grad(), polyfem::compute_diplacement_grad(), polyfem::assembler::RhsAssembler::compute_energy(), polyfem::assembler::RhsAssembler::compute_energy_hess(), polyfem::io::OutStatsData::compute_errors(), polyfem::basis::PolygonalBasis3d::compute_integral_constraints(), polyfem::basis::PolygonalBasis2d::compute_integral_constraints(), polyfem::compute_integral_constraints(), polyfem::solver::ProxyTransientForm::compute_partial_gradient(), polyfem::solver::ComplianceForm::compute_partial_gradient_step(), polyfem::solver::WeightedVolumeForm::compute_partial_gradient_with_param(), polyfem::assembler::LinearElasticity::compute_stiffness_value(), polyfem::assembler::NeoHookeanElasticity::compute_stiffness_value(), polyfem::assembler::GenericElastic< AMIPSEnergyAutodiff >::compute_stress_grad_multiply_vect(), polyfem::io::OutStatsData::count_flipped_elements(), polyfem::solver::AdjointOptUtils::create_parametrization(), polyfem::IntegrableFunctional::dj_dgradu(), polyfem::IntegrableFunctional::dj_dgradu_local(), polyfem::IntegrableFunctional::dj_dgradx(), polyfem::IntegrableFunctional::dj_du(), polyfem::IntegrableFunctional::dj_dx(), polyfem::IntegrableFunctional::evaluate(), polyfem::utils::extract_nodes(), polyfem::utils::extract_nodes(), polyfem::solver::InertiaForm::force_shape_derivative(), polyfem::solver::BodyForm::force_shape_derivative(), polyfem::solver::ElasticEnergyForm::get_integral_functional(), polyfem::solver::StressNormForm::get_integral_functional(), polyfem::solver::ComplianceForm::get_integral_functional(), polyfem::solver::PositionForm::get_integral_functional(), polyfem::solver::AccelerationForm::get_integral_functional(), polyfem::solver::KineticForm::get_integral_functional(), polyfem::solver::StressForm::get_integral_functional(), polyfem::solver::VolumeForm::get_integral_functional(), polyfem::solver::TargetForm::get_integral_functional(), polyfem::solver::SDFTargetForm::get_integral_functional(), polyfem::solver::MeshTargetForm::get_integral_functional(), polyfem::utils::ExpressionValue::init(), polyfem::io::Evaluator::integrate_function(), polyfem::solver::AdjointTools::integrate_objective(), polyfem::problem::NodeValues::interpolate(), polyfem::io::Evaluator::interpolate_at_local_vals(), polyfem::io::Evaluator::interpolate_at_local_vals(), polyfem::io::Evaluator::interpolate_boundary_function(), polyfem::solver::OperatorSplittingSolver::interpolator(), polyfem::solver::OperatorSplittingSolver::projection(), polyfem::io::OutGeometryData::save_volume(), polyfem::basis::RBFWithQuadratic::setup_monomials_vals_2d(), polyfem::assembler::RhsAssembler::time_bc(), polyfem::solver::ProxyTransientForm::value_unweighted(), and polyfem::solver::WeightedVolumeForm::value_unweighted_with_param().
Eigen::MatrixXd vec |
Definition at line 72 of file Assembler.cpp.
Referenced by polyfem::assembler::RhsAssembler::compute_energy_hess(), polyfem::mesh::find(), and polyfem::utils::vector2matrix().