PolyFEM
Loading...
Searching...
No Matches
polyfem::utils::BoundarySampler Class Reference

#include <BoundarySampler.hpp>

Static Public Member Functions

static void sample_parametric_quad_edge (int index, int n_samples, Eigen::MatrixXd &uv, Eigen::MatrixXd &samples)
 
static void sample_parametric_tri_edge (int index, int n_samples, Eigen::MatrixXd &uv, Eigen::MatrixXd &samples)
 
static void sample_parametric_quad_face (int index, int n_samples, Eigen::MatrixXd &uv, Eigen::MatrixXd &samples)
 
static void sample_parametric_tri_face (int index, int n_samples, Eigen::MatrixXd &uv, Eigen::MatrixXd &samples)
 
static void sample_polygon_edge (int face_id, int edge_id, int n_samples, const mesh::Mesh &mesh, Eigen::MatrixXd &uv, Eigen::MatrixXd &samples)
 
static void quadrature_for_quad_edge (int index, int order, const int gid, const mesh::Mesh &mesh, Eigen::MatrixXd &uv, Eigen::MatrixXd &points, Eigen::VectorXd &weights)
 
static void quadrature_for_tri_edge (int index, int order, const int gid, const mesh::Mesh &mesh, Eigen::MatrixXd &uv, Eigen::MatrixXd &points, Eigen::VectorXd &weights)
 
static void quadrature_for_quad_face (int index, int order, const int gid, const mesh::Mesh &mesh, Eigen::MatrixXd &uv, Eigen::MatrixXd &points, Eigen::VectorXd &weights)
 
static void quadrature_for_tri_face (int index, int order, const int gid, const mesh::Mesh &mesh, Eigen::MatrixXd &uv, Eigen::MatrixXd &points, Eigen::VectorXd &weights)
 
static void quadrature_for_polygon_edge (int face_id, int edge_id, int order, const mesh::Mesh &mesh, Eigen::MatrixXd &uv, Eigen::MatrixXd &points, Eigen::VectorXd &weights)
 
static void normal_for_quad_edge (int index, Eigen::MatrixXd &normal)
 
static void normal_for_tri_edge (int index, Eigen::MatrixXd &normal)
 
static void normal_for_quad_face (int index, Eigen::MatrixXd &normal)
 
static void normal_for_tri_face (int index, Eigen::MatrixXd &normal)
 
static void normal_for_polygon_edge (int face_id, int edge_id, const mesh::Mesh &mesh, Eigen::MatrixXd &normal)
 
static Eigen::Matrix2d tri_local_node_coordinates_from_edge (int le)
 
static Eigen::Matrix2d quad_local_node_coordinates_from_edge (int le)
 
static Eigen::MatrixXd tet_local_node_coordinates_from_face (int lf)
 
static Eigen::MatrixXd hex_local_node_coordinates_from_face (int lf)
 
static bool sample_boundary (const mesh::LocalBoundary &local_boundary, const int n_samples, const mesh::Mesh &mesh, const bool skip_computation, Eigen::MatrixXd &uv, Eigen::MatrixXd &samples, Eigen::VectorXi &global_primitive_ids)
 
static bool boundary_quadrature (const mesh::LocalBoundary &local_boundary, const int order, const mesh::Mesh &mesh, const bool skip_computation, Eigen::MatrixXd &uv, Eigen::MatrixXd &points, Eigen::MatrixXd &normals, Eigen::VectorXd &weights, Eigen::VectorXi &global_primitive_ids)
 
static bool boundary_quadrature (const mesh::LocalBoundary &local_boundary, const int order, const mesh::Mesh &mesh, const int i, const bool skip_computation, Eigen::MatrixXd &uv, Eigen::MatrixXd &points, Eigen::MatrixXd &normal, Eigen::VectorXd &weights)
 

Detailed Description

Definition at line 12 of file BoundarySampler.hpp.

Member Function Documentation

◆ boundary_quadrature() [1/2]

bool polyfem::utils::BoundarySampler::boundary_quadrature ( const mesh::LocalBoundary local_boundary,
const int  order,
const mesh::Mesh mesh,
const bool  skip_computation,
Eigen::MatrixXd &  uv,
Eigen::MatrixXd &  points,
Eigen::MatrixXd &  normals,
Eigen::VectorXd &  weights,
Eigen::VectorXi &  global_primitive_ids 
)
static

Definition at line 463 of file BoundarySampler.cpp.

References polyfem::mesh::LocalBoundary::element_id(), polyfem::mesh::LocalBoundary::global_primitive_id(), polyfem::mesh::LocalBoundary::size(), and polyfem::mesh::LocalBoundary::type().

Referenced by polyfem::solver::LayerThicknessForm::build_collision_mesh(), polyfem::solver::ProxyContactForceForm::build_collision_mesh(), polyfem::assembler::RhsAssembler::compute_energy(), and polyfem::assembler::RhsAssembler::compute_energy_hess().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ boundary_quadrature() [2/2]

bool polyfem::utils::BoundarySampler::boundary_quadrature ( const mesh::LocalBoundary local_boundary,
const int  order,
const mesh::Mesh mesh,
const int  i,
const bool  skip_computation,
Eigen::MatrixXd &  uv,
Eigen::MatrixXd &  points,
Eigen::MatrixXd &  normal,
Eigen::VectorXd &  weights 
)
static

Definition at line 579 of file BoundarySampler.cpp.

References polyfem::mesh::LocalBoundary::element_id(), polyfem::mesh::LocalBoundary::global_primitive_id(), polyfem::mesh::LocalBoundary::size(), and polyfem::mesh::LocalBoundary::type().

Here is the call graph for this function:

◆ hex_local_node_coordinates_from_face()

Eigen::MatrixXd polyfem::utils::BoundarySampler::hex_local_node_coordinates_from_face ( int  lf)
static

Definition at line 87 of file BoundarySampler.cpp.

◆ normal_for_polygon_edge()

void polyfem::utils::BoundarySampler::normal_for_polygon_edge ( int  face_id,
int  edge_id,
const mesh::Mesh mesh,
Eigen::MatrixXd &  normal 
)
static

Definition at line 432 of file BoundarySampler.cpp.

References edge_id, polyfem::mesh::CMesh2D::get_index_from_face(), polyfem::mesh::Mesh::is_volume(), polyfem::mesh::CMesh2D::n_face_vertices(), polyfem::mesh::Mesh2D::next_around_face(), polyfem::mesh::CMesh2D::point(), polyfem::mesh::CMesh2D::switch_edge(), and polyfem::mesh::Navigation::Index::vertex.

Referenced by polyfem::io::OutGeometryData::build_vis_boundary_mesh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ normal_for_quad_edge()

void polyfem::utils::BoundarySampler::normal_for_quad_edge ( int  index,
Eigen::MatrixXd &  normal 
)
static

Definition at line 388 of file BoundarySampler.cpp.

Referenced by polyfem::io::OutGeometryData::build_vis_boundary_mesh().

Here is the caller graph for this function:

◆ normal_for_quad_face()

void polyfem::utils::BoundarySampler::normal_for_quad_face ( int  index,
Eigen::MatrixXd &  normal 
)
static

Definition at line 408 of file BoundarySampler.cpp.

Referenced by polyfem::io::OutGeometryData::build_vis_boundary_mesh().

Here is the caller graph for this function:

◆ normal_for_tri_edge()

void polyfem::utils::BoundarySampler::normal_for_tri_edge ( int  index,
Eigen::MatrixXd &  normal 
)
static

Definition at line 398 of file BoundarySampler.cpp.

Referenced by polyfem::io::OutGeometryData::build_vis_boundary_mesh().

Here is the caller graph for this function:

◆ normal_for_tri_face()

void polyfem::utils::BoundarySampler::normal_for_tri_face ( int  index,
Eigen::MatrixXd &  normal 
)
static

Definition at line 420 of file BoundarySampler.cpp.

Referenced by polyfem::io::OutGeometryData::build_vis_boundary_mesh().

Here is the caller graph for this function:

◆ quad_local_node_coordinates_from_edge()

Eigen::Matrix2d polyfem::utils::BoundarySampler::quad_local_node_coordinates_from_edge ( int  le)
static

Definition at line 54 of file BoundarySampler.cpp.

◆ quadrature_for_polygon_edge()

void polyfem::utils::BoundarySampler::quadrature_for_polygon_edge ( int  face_id,
int  edge_id,
int  order,
const mesh::Mesh mesh,
Eigen::MatrixXd &  uv,
Eigen::MatrixXd &  points,
Eigen::VectorXd &  weights 
)
static

◆ quadrature_for_quad_edge()

void polyfem::utils::BoundarySampler::quadrature_for_quad_edge ( int  index,
int  order,
const int  gid,
const mesh::Mesh mesh,
Eigen::MatrixXd &  uv,
Eigen::MatrixXd &  points,
Eigen::VectorXd &  weights 
)
static

Definition at line 104 of file BoundarySampler.cpp.

References polyfem::mesh::Mesh::edge_length(), polyfem::quadrature::LineQuadrature::get_quadrature(), polyfem::quadrature::Quadrature::points, and polyfem::quadrature::Quadrature::weights.

Here is the call graph for this function:

◆ quadrature_for_quad_face()

void polyfem::utils::BoundarySampler::quadrature_for_quad_face ( int  index,
int  order,
const int  gid,
const mesh::Mesh mesh,
Eigen::MatrixXd &  uv,
Eigen::MatrixXd &  points,
Eigen::VectorXd &  weights 
)
static

Definition at line 150 of file BoundarySampler.cpp.

References polyfem::quadrature::QuadQuadrature::get_quadrature(), polyfem::quadrature::Quadrature::points, polyfem::mesh::Mesh::quad_area(), and polyfem::quadrature::Quadrature::weights.

Referenced by polyfem::io::Evaluator::interpolate_boundary_function().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ quadrature_for_tri_edge()

void polyfem::utils::BoundarySampler::quadrature_for_tri_edge ( int  index,
int  order,
const int  gid,
const mesh::Mesh mesh,
Eigen::MatrixXd &  uv,
Eigen::MatrixXd &  points,
Eigen::VectorXd &  weights 
)
static

Definition at line 127 of file BoundarySampler.cpp.

References polyfem::mesh::Mesh::edge_length(), polyfem::quadrature::LineQuadrature::get_quadrature(), polyfem::quadrature::Quadrature::points, and polyfem::quadrature::Quadrature::weights.

Here is the call graph for this function:

◆ quadrature_for_tri_face()

void polyfem::utils::BoundarySampler::quadrature_for_tri_face ( int  index,
int  order,
const int  gid,
const mesh::Mesh mesh,
Eigen::MatrixXd &  uv,
Eigen::MatrixXd &  points,
Eigen::VectorXd &  weights 
)
static

Definition at line 185 of file BoundarySampler.cpp.

References polyfem::quadrature::TriQuadrature::get_quadrature(), polyfem::quadrature::Quadrature::points, polyfem::mesh::Mesh::tri_area(), and polyfem::quadrature::Quadrature::weights.

Referenced by polyfem::io::Evaluator::interpolate_boundary_function().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sample_boundary()

bool polyfem::utils::BoundarySampler::sample_boundary ( const mesh::LocalBoundary local_boundary,
const int  n_samples,
const mesh::Mesh mesh,
const bool  skip_computation,
Eigen::MatrixXd &  uv,
Eigen::MatrixXd &  samples,
Eigen::VectorXi &  global_primitive_ids 
)
static

Definition at line 530 of file BoundarySampler.cpp.

References polyfem::mesh::LocalBoundary::element_id(), polyfem::mesh::LocalBoundary::global_primitive_id(), polyfem::mesh::LocalBoundary::size(), and polyfem::mesh::LocalBoundary::type().

Referenced by polyfem::assembler::RhsAssembler::lsq_bc().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sample_parametric_quad_edge()

void polyfem::utils::BoundarySampler::sample_parametric_quad_edge ( int  index,
int  n_samples,
Eigen::MatrixXd &  uv,
Eigen::MatrixXd &  samples 
)
static

Definition at line 217 of file BoundarySampler.cpp.

Referenced by polyfem::io::OutGeometryData::build_vis_boundary_mesh().

Here is the caller graph for this function:

◆ sample_parametric_quad_face()

void polyfem::utils::BoundarySampler::sample_parametric_quad_face ( int  index,
int  n_samples,
Eigen::MatrixXd &  uv,
Eigen::MatrixXd &  samples 
)
static

Definition at line 251 of file BoundarySampler.cpp.

References x.

Referenced by polyfem::io::OutGeometryData::build_vis_boundary_mesh().

Here is the caller graph for this function:

◆ sample_parametric_tri_edge()

void polyfem::utils::BoundarySampler::sample_parametric_tri_edge ( int  index,
int  n_samples,
Eigen::MatrixXd &  uv,
Eigen::MatrixXd &  samples 
)
static

Definition at line 234 of file BoundarySampler.cpp.

Referenced by polyfem::io::OutGeometryData::build_vis_boundary_mesh().

Here is the caller graph for this function:

◆ sample_parametric_tri_face()

void polyfem::utils::BoundarySampler::sample_parametric_tri_face ( int  index,
int  n_samples,
Eigen::MatrixXd &  uv,
Eigen::MatrixXd &  samples 
)
static

Definition at line 276 of file BoundarySampler.cpp.

Referenced by polyfem::io::OutGeometryData::build_vis_boundary_mesh().

Here is the caller graph for this function:

◆ sample_polygon_edge()

void polyfem::utils::BoundarySampler::sample_polygon_edge ( int  face_id,
int  edge_id,
int  n_samples,
const mesh::Mesh mesh,
Eigen::MatrixXd &  uv,
Eigen::MatrixXd &  samples 
)
static

Definition at line 307 of file BoundarySampler.cpp.

References edge_id, polyfem::mesh::CMesh2D::get_index_from_face(), polyfem::mesh::Mesh::is_volume(), polyfem::mesh::CMesh2D::n_face_vertices(), polyfem::mesh::Mesh2D::next_around_face(), polyfem::mesh::CMesh2D::point(), polyfem::mesh::CMesh2D::switch_edge(), and polyfem::mesh::Navigation::Index::vertex.

Referenced by polyfem::io::OutGeometryData::build_vis_boundary_mesh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tet_local_node_coordinates_from_face()

Eigen::MatrixXd polyfem::utils::BoundarySampler::tet_local_node_coordinates_from_face ( int  lf)
static

Definition at line 72 of file BoundarySampler.cpp.

◆ tri_local_node_coordinates_from_edge()

Eigen::Matrix2d polyfem::utils::BoundarySampler::tri_local_node_coordinates_from_edge ( int  le)
static

Definition at line 63 of file BoundarySampler.cpp.


The documentation for this class was generated from the following files: