|
PolyFEM
|
#include <Problem.hpp>
Public Member Functions | |
| Problem (const std::string &name) | |
| virtual void | set_units (const assembler::Assembler &assembler, const Units &units) |
| virtual | ~Problem () |
| virtual void | init (const mesh::Mesh &mesh) |
| const std::string & | name () const |
| virtual bool | is_scalar () const =0 |
| virtual void | rhs (const assembler::Assembler &assembler, const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val) const =0 |
| virtual bool | is_rhs_zero () const =0 |
| virtual void | dirichlet_bc (const mesh::Mesh &mesh, const Eigen::MatrixXi &global_ids, const Eigen::MatrixXd &uv, const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val) const =0 |
| virtual void | neumann_bc (const mesh::Mesh &mesh, const Eigen::MatrixXi &global_ids, const Eigen::MatrixXd &uv, const Eigen::MatrixXd &pts, const Eigen::MatrixXd &normals, const double t, Eigen::MatrixXd &val) const |
| virtual void | pressure_bc (const mesh::Mesh &mesh, const Eigen::MatrixXi &global_ids, const Eigen::MatrixXd &uv, const Eigen::MatrixXd &pts, const Eigen::MatrixXd &normals, const double t, Eigen::MatrixXd &val) const |
| virtual double | pressure_cavity_bc (const int boundary_id, const double t) const |
| virtual bool | is_boundary_pressure (const int boundary_id) const |
| virtual void | dirichlet_nodal_value (const mesh::Mesh &mesh, const int node_id, const RowVectorNd &pt, const double t, Eigen::MatrixXd &val) const |
| virtual void | neumann_nodal_value (const mesh::Mesh &mesh, const int node_id, const RowVectorNd &pt, const Eigen::MatrixXd &normal, const double t, Eigen::MatrixXd &val) const |
| virtual bool | is_nodal_dirichlet_boundary (const int n_id, const int tag) |
| virtual bool | is_nodal_neumann_boundary (const int n_id, const int tag) |
| virtual bool | has_nodal_dirichlet () |
| virtual bool | has_nodal_neumann () |
| virtual bool | has_exact_sol () const =0 |
| virtual void | exact (const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val) const |
| virtual void | exact_grad (const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val) const |
| virtual void | clear () |
| virtual bool | is_time_dependent () const |
| virtual bool | is_constant_in_time () const |
| virtual void | initial_solution (const mesh::Mesh &mesh, const Eigen::MatrixXi &global_ids, const Eigen::MatrixXd &pts, Eigen::MatrixXd &val) const |
| virtual void | initial_velocity (const mesh::Mesh &mesh, const Eigen::MatrixXi &global_ids, const Eigen::MatrixXd &pts, Eigen::MatrixXd &val) const |
| virtual void | initial_acceleration (const mesh::Mesh &mesh, const Eigen::MatrixXi &global_ids, const Eigen::MatrixXd &pts, Eigen::MatrixXd &val) const |
| virtual void | initial_density (const Eigen::MatrixXd &pts, Eigen::MatrixXd &val) const |
| virtual void | set_parameters (const json ¶ms, const std::string &root_path) |
| virtual bool | might_have_no_dirichlet () |
| virtual bool | is_dimension_dirichet (const int tag, const int dim) const |
| virtual bool | is_nodal_dimension_dirichlet (const int n_id, const int tag, const int dim) const |
| virtual bool | all_dimensions_dirichlet () const |
| void | setup_bc (const mesh::Mesh &mesh, const BoundaryKind kind, const int fe_space_id, const std::vector< basis::ElementBases > &bases, const std::vector< mesh::LocalBoundary > &local_boundary, std::vector< mesh::LocalBoundary > &selected_local_boundary, std::vector< int > &boundary_nodes) |
| void | setup_pressure_cavity_bc (const mesh::Mesh &mesh, const int fe_space_id, const std::vector< mesh::LocalBoundary > &local_boundary, std::unordered_map< int, std::vector< mesh::LocalBoundary > > &local_pressure_cavity) |
| void | setup_nodal_bc (const mesh::Mesh &mesh, const BoundaryKind kind, const int fe_space_id, const int n_bases, std::vector< int > &nodes) |
| void | setup_bc (const mesh::Mesh &mesh, const int n_bases, const std::vector< basis::ElementBases > &bases, const std::vector< basis::ElementBases > &geom_bases, const std::vector< basis::ElementBases > &pressure_bases, std::vector< mesh::LocalBoundary > &local_boundary, std::vector< int > &boundary_nodes, std::vector< mesh::LocalBoundary > &local_neumann_boundary, std::vector< mesh::LocalBoundary > &local_pressure_boundary, std::unordered_map< int, std::vector< mesh::LocalBoundary > > &local_pressure_cavity, std::vector< int > &pressure_boundary_nodes, std::vector< int > &dirichlet_nodes, std::vector< int > &neumann_nodes) |
| virtual void | update_nodes (const Eigen::VectorXi &in_node_to_node) |
Protected Attributes | |
| std::vector< int > | boundary_ids_ |
| std::vector< int > | neumann_boundary_ids_ |
| std::vector< int > | normal_aligned_neumann_boundary_ids_ |
| std::vector< int > | pressure_boundary_ids_ |
| std::vector< int > | pressure_cavity_ids_ |
| std::vector< int > | splitting_pressure_boundary_ids_ |
| bool | updated_dirichlet_node_ordering_ = false |
Private Member Functions | |
| bool | has_boundary (const BoundaryKind kind, const int tag) |
Private Attributes | |
| std::string | name_ |
Definition at line 20 of file Problem.hpp.
| polyfem::assembler::Problem::Problem | ( | const std::string & | name | ) |
Definition at line 11 of file Problem.cpp.
|
inlinevirtual |
Definition at line 26 of file Problem.hpp.
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, polyfem::problem::NodeProblem, and polyfem::problem::PointBasedTensorProblem.
Definition at line 70 of file Problem.hpp.
Referenced by polyfem::assembler::RhsAssembler::lsq_bc(), and polyfem::assembler::RhsAssembler::sample_bc().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, and polyfem::assembler::GenericScalarProblem.
Definition at line 54 of file Problem.hpp.
Referenced by polyfem::problem::ElasticCantileverExact::ElasticCantileverExact().
|
pure virtual |
Implemented in polyfem::assembler::GenericTensorProblem, polyfem::assembler::GenericScalarProblem, polyfem::problem::ElasticProblem, polyfem::problem::TorsionElasticProblem, polyfem::problem::DoubleTorsionElasticProblem, polyfem::problem::ElasticProblemZeroBC, polyfem::problem::GravityProblem, polyfem::problem::WalkProblem, polyfem::problem::ElasticCantileverExact, polyfem::problem::MinSurfProblem, polyfem::problem::TimeDependentProblem, polyfem::problem::NodeProblem, polyfem::problem::PointBasedTensorProblem, polyfem::problem::ProblemWithSolution, polyfem::problem::BilaplacianProblemWithSolution, polyfem::problem::ConstantVelocity, polyfem::problem::TwoSpheres, polyfem::problem::DrivenCavity, polyfem::problem::DrivenCavityC0, polyfem::problem::DrivenCavitySmooth, polyfem::problem::Flow, polyfem::problem::FlowWithObstacle, polyfem::problem::Kovnaszy, polyfem::problem::CornerFlow, polyfem::problem::Lshape, polyfem::problem::UnitFlowWithObstacle, polyfem::problem::TaylorGreenVortexProblem, polyfem::problem::StokesLawProblem, polyfem::problem::Airfoil, and polyfem::problem::TransientStokeProblemExact.
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, and polyfem::assembler::GenericScalarProblem.
Definition at line 43 of file Problem.hpp.
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, polyfem::assembler::GenericScalarProblem, polyfem::problem::ElasticCantileverExact, polyfem::problem::ProblemWithSolution, polyfem::problem::BilaplacianProblemWithSolution, polyfem::problem::Kovnaszy, polyfem::problem::TaylorGreenVortexProblem, polyfem::problem::StokesLawProblem, polyfem::problem::Airfoil, and polyfem::problem::TransientStokeProblemExact.
Definition at line 51 of file Problem.hpp.
Referenced by polyfem::io::OutStatsData::compute_errors(), polyfem::legacy::io::OutGeometryData::save_volume(), and polyfem::legacy::io::OutGeometryData::save_wire().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, polyfem::assembler::GenericScalarProblem, polyfem::problem::ElasticCantileverExact, polyfem::problem::ProblemWithSolution, polyfem::problem::BilaplacianProblemWithSolution, polyfem::problem::Kovnaszy, polyfem::problem::TaylorGreenVortexProblem, polyfem::problem::StokesLawProblem, polyfem::problem::Airfoil, and polyfem::problem::TransientStokeProblemExact.
Definition at line 52 of file Problem.hpp.
Referenced by polyfem::io::OutStatsData::compute_errors().
|
private |
Definition at line 16 of file Problem.cpp.
References boundary_ids_, polyfem::assembler::Dirichlet, might_have_no_dirichlet(), polyfem::assembler::Neumann, neumann_boundary_ids_, and normal_aligned_neumann_boundary_ids_.
|
pure virtual |
Implemented in polyfem::assembler::GenericTensorProblem, polyfem::assembler::GenericScalarProblem, polyfem::problem::ElasticProblem, polyfem::problem::TorsionElasticProblem, polyfem::problem::DoubleTorsionElasticProblem, polyfem::problem::ElasticProblemZeroBC, polyfem::problem::GravityProblem, polyfem::problem::WalkProblem, polyfem::problem::ElasticCantileverExact, polyfem::problem::MinSurfProblem, polyfem::problem::TimeDependentProblem, polyfem::problem::NodeProblem, polyfem::problem::PointBasedTensorProblem, polyfem::problem::ProblemWithSolution, polyfem::problem::BilaplacianProblemWithSolution, polyfem::problem::TimeDepentendStokesProblem, polyfem::problem::Kovnaszy, polyfem::problem::TaylorGreenVortexProblem, polyfem::problem::StokesLawProblem, polyfem::problem::Airfoil, and polyfem::problem::TransientStokeProblemExact.
Referenced by polyfem::io::OutStatsData::compute_errors(), polyfem::legacy::io::OutGeometryData::save_volume(), and polyfem::legacy::io::OutGeometryData::save_wire().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, and polyfem::assembler::GenericScalarProblem.
Definition at line 47 of file Problem.hpp.
Referenced by setup_nodal_bc().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, and polyfem::assembler::GenericScalarProblem.
Definition at line 48 of file Problem.hpp.
Referenced by setup_nodal_bc().
|
inlinevirtual |
Reimplemented in polyfem::problem::NodeProblem.
Definition at line 28 of file Problem.hpp.
Referenced by polyfem::assembler::GenericTensorProblem::set_parameters(), and polyfem::assembler::GenericScalarProblem::set_parameters().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, polyfem::problem::DoubleTorsionElasticProblem, polyfem::problem::GravityProblem, and polyfem::problem::WalkProblem.
Definition at line 61 of file Problem.hpp.
Referenced by polyfem::assembler::RhsAssembler::initial_acceleration().
|
inlinevirtual |
Reimplemented in polyfem::problem::TwoSpheres.
Definition at line 62 of file Problem.hpp.
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, polyfem::assembler::GenericScalarProblem, polyfem::problem::DoubleTorsionElasticProblem, polyfem::problem::GravityProblem, polyfem::problem::WalkProblem, polyfem::problem::TimeDependentProblem, polyfem::problem::GenericScalarProblemExact, polyfem::problem::TimeDepentendStokesProblem, polyfem::problem::TwoSpheres, polyfem::problem::Kovnaszy, polyfem::problem::TaylorGreenVortexProblem, polyfem::problem::StokesLawProblem, polyfem::problem::Airfoil, and polyfem::problem::TransientStokeProblemExact.
Definition at line 59 of file Problem.hpp.
Referenced by polyfem::assembler::RhsAssembler::initial_solution().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, polyfem::problem::DoubleTorsionElasticProblem, polyfem::problem::GravityProblem, and polyfem::problem::WalkProblem.
Definition at line 60 of file Problem.hpp.
Referenced by polyfem::assembler::RhsAssembler::initial_velocity().
|
inlinevirtual |
Definition at line 41 of file Problem.hpp.
References pressure_boundary_ids_.
Referenced by polyfem::assembler::RhsAssembler::compute_energy_hess().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, polyfem::assembler::GenericScalarProblem, polyfem::problem::TorsionElasticProblem, polyfem::problem::DoubleTorsionElasticProblem, polyfem::problem::WalkProblem, polyfem::problem::GenericScalarProblemExact, polyfem::problem::TimeDepentendStokesProblem, and polyfem::problem::TransientStokeProblemExact.
Definition at line 57 of file Problem.hpp.
Referenced by polyfem::assembler::RhsAssembler::compute_energy_grad().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, polyfem::problem::NodeProblem, and polyfem::problem::PointBasedTensorProblem.
Definition at line 67 of file Problem.hpp.
Referenced by polyfem::assembler::RhsAssembler::lsq_bc(), and polyfem::assembler::RhsAssembler::sample_bc().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem.
Definition at line 68 of file Problem.hpp.
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, and polyfem::assembler::GenericScalarProblem.
Definition at line 45 of file Problem.hpp.
Referenced by setup_nodal_bc().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, and polyfem::assembler::GenericScalarProblem.
Definition at line 46 of file Problem.hpp.
Referenced by setup_nodal_bc().
|
pure virtual |
Implemented in polyfem::assembler::GenericTensorProblem, polyfem::assembler::GenericScalarProblem, polyfem::problem::ElasticProblem, polyfem::problem::TorsionElasticProblem, polyfem::problem::DoubleTorsionElasticProblem, polyfem::problem::ElasticProblemZeroBC, polyfem::problem::GravityProblem, polyfem::problem::WalkProblem, polyfem::problem::ElasticCantileverExact, polyfem::problem::MinSurfProblem, polyfem::problem::TimeDependentProblem, polyfem::problem::NodeProblem, polyfem::problem::PointBasedTensorProblem, polyfem::problem::ProblemWithSolution, polyfem::problem::BilaplacianProblemWithSolution, polyfem::problem::ConstantVelocity, polyfem::problem::TwoSpheres, polyfem::problem::DrivenCavity, polyfem::problem::DrivenCavityC0, polyfem::problem::DrivenCavitySmooth, polyfem::problem::Flow, polyfem::problem::FlowWithObstacle, polyfem::problem::Kovnaszy, polyfem::problem::CornerFlow, polyfem::problem::Lshape, polyfem::problem::UnitFlowWithObstacle, polyfem::problem::TaylorGreenVortexProblem, polyfem::problem::StokesLawProblem, polyfem::problem::Airfoil, and polyfem::problem::TransientStokeProblemExact.
Referenced by polyfem::assembler::RhsAssembler::assemble(), and polyfem::assembler::RhsAssembler::compute_energy().
|
pure virtual |
Implemented in polyfem::assembler::GenericTensorProblem, polyfem::assembler::GenericScalarProblem, polyfem::problem::ElasticProblem, polyfem::problem::TorsionElasticProblem, polyfem::problem::DoubleTorsionElasticProblem, polyfem::problem::ElasticProblemZeroBC, polyfem::problem::ElasticProblemExact, polyfem::problem::CompressionElasticProblemExact, polyfem::problem::QuadraticElasticProblemExact, polyfem::problem::LinearElasticProblemExact, polyfem::problem::GravityProblem, polyfem::problem::WalkProblem, polyfem::problem::ElasticCantileverExact, polyfem::problem::FrankeProblem, polyfem::problem::FrankeProblemOld, polyfem::problem::KernelProblem, polyfem::problem::LinearProblem, polyfem::problem::QuadraticProblem, polyfem::problem::CubicProblem, polyfem::problem::SineProblem, polyfem::problem::ZeroBCProblem, polyfem::problem::MinSurfProblem, polyfem::problem::TimeDependentProblem, polyfem::problem::GenericScalarProblemExact, polyfem::problem::NodeProblem, polyfem::problem::PointBasedTensorProblem, polyfem::problem::BilaplacianProblemWithSolution, polyfem::problem::TimeDepentendStokesProblem, polyfem::problem::Kovnaszy, polyfem::problem::TaylorGreenVortexProblem, polyfem::problem::StokesLawProblem, polyfem::problem::Airfoil, polyfem::problem::SimpleStokeProblemExact, polyfem::problem::SineStokeProblemExact, polyfem::problem::TransientStokeProblemExact, and polyfem::problem::TestProblem.
Referenced by polyfem::io::OutStatsData::compute_errors(), polyfem::legacy::io::OutGeometryData::export_data(), polyfem::solver::BodyForceDerivative::force_shape_derivative(), polyfem::assembler::RhsAssembler::lsq_bc(), polyfem::assembler::RhsAssembler::sample_bc(), polyfem::io::OutStatsData::save_json(), polyfem::legacy::io::OutGeometryData::save_points(), polyfem::legacy::io::OutGeometryData::save_surface(), polyfem::legacy::io::OutGeometryData::save_volume(), polyfem::legacy::io::OutGeometryData::save_wire(), and polyfem::problem::ProblemWithSolution::size_for().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, polyfem::assembler::GenericScalarProblem, polyfem::problem::DoubleTorsionElasticProblem, polyfem::problem::GravityProblem, polyfem::problem::WalkProblem, polyfem::problem::TimeDependentProblem, polyfem::problem::GenericScalarProblemExact, polyfem::problem::TimeDepentendStokesProblem, polyfem::problem::Kovnaszy, polyfem::problem::TaylorGreenVortexProblem, polyfem::problem::StokesLawProblem, polyfem::problem::Airfoil, and polyfem::problem::TransientStokeProblemExact.
Definition at line 56 of file Problem.hpp.
Referenced by polyfem::legacy::io::OutGeometryData::save_volume().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, and polyfem::assembler::GenericScalarProblem.
Definition at line 66 of file Problem.hpp.
Referenced by has_boundary().
|
inline |
Definition at line 29 of file Problem.hpp.
References name_.
Referenced by polyfem::io::OutStatsData::save_json().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, polyfem::assembler::GenericScalarProblem, polyfem::problem::ElasticCantileverExact, polyfem::problem::NodeProblem, and polyfem::problem::PointBasedTensorProblem.
Definition at line 37 of file Problem.hpp.
Referenced by polyfem::assembler::RhsAssembler::compute_energy(), and polyfem::assembler::RhsAssembler::compute_energy_hess().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, and polyfem::assembler::GenericScalarProblem.
Definition at line 44 of file Problem.hpp.
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem.
Definition at line 38 of file Problem.hpp.
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem.
Definition at line 39 of file Problem.hpp.
Referenced by polyfem::assembler::PressureAssembler::compute_cavity_energy(), polyfem::assembler::PressureAssembler::compute_cavity_energy_grad(), and polyfem::assembler::PressureAssembler::compute_cavity_energy_hess().
|
pure virtual |
Implemented in polyfem::assembler::GenericTensorProblem, polyfem::assembler::GenericScalarProblem, polyfem::problem::ElasticProblem, polyfem::problem::TorsionElasticProblem, polyfem::problem::DoubleTorsionElasticProblem, polyfem::problem::ElasticProblemZeroBC, polyfem::problem::GravityProblem, polyfem::problem::WalkProblem, polyfem::problem::ElasticCantileverExact, polyfem::problem::KernelProblem, polyfem::problem::MinSurfProblem, polyfem::problem::TimeDependentProblem, polyfem::problem::GenericScalarProblemExact, polyfem::problem::NodeProblem, polyfem::problem::PointBasedTensorProblem, polyfem::problem::ProblemWithSolution, polyfem::problem::BilaplacianProblemWithSolution, polyfem::problem::ConstantVelocity, polyfem::problem::TwoSpheres, polyfem::problem::DrivenCavity, polyfem::problem::DrivenCavityC0, polyfem::problem::DrivenCavitySmooth, polyfem::problem::Flow, polyfem::problem::FlowWithObstacle, polyfem::problem::Kovnaszy, polyfem::problem::CornerFlow, polyfem::problem::Lshape, polyfem::problem::UnitFlowWithObstacle, polyfem::problem::TaylorGreenVortexProblem, polyfem::problem::StokesLawProblem, polyfem::problem::Airfoil, and polyfem::problem::TransientStokeProblemExact.
Referenced by polyfem::assembler::RhsAssembler::assemble(), polyfem::assembler::RhsAssembler::compute_energy(), and polyfem::solver::BodyForceDerivative::force_shape_derivative().
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, polyfem::assembler::GenericScalarProblem, polyfem::problem::TorsionElasticProblem, polyfem::problem::DoubleTorsionElasticProblem, polyfem::problem::GravityProblem, polyfem::problem::ElasticCantileverExact, polyfem::problem::KernelProblem, polyfem::problem::GenericScalarProblemExact, polyfem::problem::NodeProblem, polyfem::problem::PointBasedTensorProblem, polyfem::problem::TimeDepentendStokesProblem, polyfem::problem::Flow, polyfem::problem::FlowWithObstacle, polyfem::problem::Kovnaszy, polyfem::problem::CornerFlow, polyfem::problem::Lshape, polyfem::problem::UnitFlowWithObstacle, polyfem::problem::TaylorGreenVortexProblem, polyfem::problem::StokesLawProblem, polyfem::problem::Airfoil, polyfem::problem::SimpleStokeProblemExact, polyfem::problem::TransientStokeProblemExact, and polyfem::problem::TestProblem.
Definition at line 64 of file Problem.hpp.
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, and polyfem::assembler::GenericScalarProblem.
Definition at line 24 of file Problem.hpp.
| void polyfem::assembler::Problem::setup_bc | ( | const mesh::Mesh & | mesh, |
| const BoundaryKind | kind, | ||
| const int | fe_space_id, | ||
| const std::vector< basis::ElementBases > & | bases, | ||
| const std::vector< mesh::LocalBoundary > & | local_boundary, | ||
| std::vector< mesh::LocalBoundary > & | selected_local_boundary, | ||
| std::vector< int > & | boundary_nodes | ||
| ) |
| void polyfem::assembler::Problem::setup_bc | ( | const mesh::Mesh & | mesh, |
| const int | n_bases, | ||
| const std::vector< basis::ElementBases > & | bases, | ||
| const std::vector< basis::ElementBases > & | geom_bases, | ||
| const std::vector< basis::ElementBases > & | pressure_bases, | ||
| std::vector< mesh::LocalBoundary > & | local_boundary, | ||
| std::vector< int > & | boundary_nodes, | ||
| std::vector< mesh::LocalBoundary > & | local_neumann_boundary, | ||
| std::vector< mesh::LocalBoundary > & | local_pressure_boundary, | ||
| std::unordered_map< int, std::vector< mesh::LocalBoundary > > & | local_pressure_cavity, | ||
| std::vector< int > & | pressure_boundary_nodes, | ||
| std::vector< int > & | dirichlet_nodes, | ||
| std::vector< int > & | neumann_nodes | ||
| ) |
| void polyfem::assembler::Problem::setup_nodal_bc | ( | const mesh::Mesh & | mesh, |
| const BoundaryKind | kind, | ||
| const int | fe_space_id, | ||
| const int | n_bases, | ||
| std::vector< int > & | nodes | ||
| ) |
Definition at line 128 of file Problem.cpp.
References polyfem::assembler::Dirichlet, polyfem::mesh::Mesh::get_node_id(), has_nodal_dirichlet(), has_nodal_neumann(), polyfem::mesh::Mesh::has_node_ids(), is_nodal_dirichlet_boundary(), is_nodal_neumann_boundary(), and polyfem::assembler::Neumann.
| void polyfem::assembler::Problem::setup_pressure_cavity_bc | ( | const mesh::Mesh & | mesh, |
| const int | fe_space_id, | ||
| const std::vector< mesh::LocalBoundary > & | local_boundary, | ||
| std::unordered_map< int, std::vector< mesh::LocalBoundary > > & | local_pressure_cavity | ||
| ) |
Definition at line 101 of file Problem.cpp.
References polyfem::mesh::LocalBoundary::add_boundary_primitive(), polyfem::mesh::Mesh::get_boundary_id(), and pressure_cavity_ids_.
|
inlinevirtual |
Reimplemented in polyfem::assembler::GenericTensorProblem, and polyfem::assembler::GenericScalarProblem.
Definition at line 110 of file Problem.hpp.
|
protected |
Definition at line 113 of file Problem.hpp.
Referenced by polyfem::problem::PointBasedTensorProblem::add_constant(), polyfem::problem::PointBasedTensorProblem::add_function(), polyfem::problem::PointBasedTensorProblem::add_function(), polyfem::problem::Airfoil::Airfoil(), polyfem::problem::ConstantVelocity::ConstantVelocity(), polyfem::problem::CornerFlow::CornerFlow(), polyfem::assembler::GenericTensorProblem::dirichlet_bc(), polyfem::assembler::GenericScalarProblem::dirichlet_bc(), polyfem::problem::TorsionElasticProblem::dirichlet_bc(), polyfem::problem::DoubleTorsionElasticProblem::dirichlet_bc(), polyfem::problem::NodeProblem::dirichlet_bc(), polyfem::problem::PointBasedTensorProblem::dirichlet_bc(), polyfem::problem::DoubleTorsionElasticProblem::DoubleTorsionElasticProblem(), polyfem::problem::ElasticCantileverExact::ElasticCantileverExact(), polyfem::problem::ElasticProblem::ElasticProblem(), polyfem::problem::ElasticProblemZeroBC::ElasticProblemZeroBC(), polyfem::problem::Flow::Flow(), polyfem::problem::FlowWithObstacle::FlowWithObstacle(), polyfem::problem::GravityProblem::GravityProblem(), has_boundary(), polyfem::assembler::GenericTensorProblem::is_dimension_dirichet(), polyfem::problem::NodeProblem::is_dimension_dirichet(), polyfem::problem::PointBasedTensorProblem::is_dimension_dirichet(), polyfem::problem::Kovnaszy::Kovnaszy(), polyfem::problem::Lshape::Lshape(), polyfem::problem::NodeProblem::neumann_bc(), polyfem::assembler::GenericTensorProblem::set_parameters(), polyfem::assembler::GenericScalarProblem::set_parameters(), polyfem::problem::TorsionElasticProblem::set_parameters(), polyfem::problem::DoubleTorsionElasticProblem::set_parameters(), polyfem::problem::NodeProblem::set_parameters(), polyfem::problem::PointBasedTensorProblem::set_parameters(), polyfem::problem::Flow::set_parameters(), polyfem::problem::UnitFlowWithObstacle::set_parameters(), polyfem::problem::StokesLawProblem::StokesLawProblem(), polyfem::problem::TaylorGreenVortexProblem::TaylorGreenVortexProblem(), polyfem::problem::TorsionElasticProblem::TorsionElasticProblem(), polyfem::problem::UnitFlowWithObstacle::UnitFlowWithObstacle(), polyfem::assembler::GenericTensorProblem::update_dirichlet_boundary(), and polyfem::problem::WalkProblem::WalkProblem().
|
private |
Definition at line 125 of file Problem.hpp.
Referenced by name().
|
protected |
Definition at line 114 of file Problem.hpp.
Referenced by polyfem::problem::PointBasedTensorProblem::add_constant(), polyfem::problem::PointBasedTensorProblem::add_function(), polyfem::problem::PointBasedTensorProblem::add_function(), polyfem::problem::ElasticCantileverExact::ElasticCantileverExact(), has_boundary(), polyfem::assembler::GenericTensorProblem::neumann_bc(), polyfem::assembler::GenericScalarProblem::neumann_bc(), polyfem::problem::PointBasedTensorProblem::neumann_bc(), polyfem::assembler::GenericTensorProblem::set_parameters(), polyfem::assembler::GenericScalarProblem::set_parameters(), polyfem::problem::NodeProblem::set_parameters(), and polyfem::problem::PointBasedTensorProblem::set_parameters().
|
protected |
Definition at line 115 of file Problem.hpp.
Referenced by has_boundary(), polyfem::assembler::GenericTensorProblem::neumann_bc(), and polyfem::assembler::GenericTensorProblem::set_parameters().
|
protected |
Definition at line 116 of file Problem.hpp.
Referenced by polyfem::problem::CornerFlow::CornerFlow(), polyfem::problem::FlowWithObstacle::FlowWithObstacle(), is_boundary_pressure(), polyfem::problem::Lshape::Lshape(), polyfem::assembler::GenericTensorProblem::pressure_bc(), polyfem::assembler::GenericTensorProblem::set_parameters(), and polyfem::assembler::GenericTensorProblem::update_pressure_boundary().
|
protected |
Definition at line 117 of file Problem.hpp.
Referenced by polyfem::assembler::GenericTensorProblem::set_parameters(), and setup_pressure_cavity_bc().
|
protected |
Definition at line 118 of file Problem.hpp.
|
protected |