Flow123d
master-a7f2151e0
|
Implements algorithm for finding 1D-2D intersections. More...
#include <inspect_elements_algorithm.hh>
Public Member Functions | |
InspectElementsAlgorithm12 (Mesh *input_mesh) | |
void | compute_intersections_3 (std::vector< std::vector< ILpair >> &intersection_map, std::vector< IntersectionLocal< 1, 2 >> &storage) |
Runs the algorithm (3): compute 1D-2D intersection inside 3D mesh. It directly fills the intersection map and intersection storage. The intersection map is then also used to avoid duplicit intersections. More... | |
void | compute_intersections_2 (const BIHTree &bih) |
Runs the algorithm (2): compute 1D-2D intersection in 3D ambient space BIH is used to find intersection candidates. More... | |
void | compute_intersections_1 (const BIHTree &bih) |
Runs the algorithm (1): compute 1D-2D intersection in 2D plane. BIH is used to find intersection candidates. More... | |
Public Member Functions inherited from IntersectionAlgorithmBase< 1, 2 > | |
IntersectionAlgorithmBase (Mesh *mesh) | |
Private Attributes | |
std::vector< IntersectionAux< 1, 2 > > | intersectionaux_storage12_ |
Stores temporarily 1D-2D intersections. More... | |
Friends | |
class | MixedMeshIntersections |
Computes fundamental 1D-2D intersection of candidate pair. More... | |
Additional Inherited Members | |
Protected Attributes inherited from IntersectionAlgorithmBase< 1, 2 > | |
Mesh * | mesh |
Auxiliary function that translates ElementAccessor<3> to Simplex<simplex_dim> . More... | |
const unsigned int | undefined_elm_idx_ |
Implements algorithm for finding 1D-2D intersections.
There are 3 possibilities of computation:
1) 2D problem with 1D fractures 2D mesh is a plane and 1D mesh is the same plane; then we can solve the intersection only in 2D, probably not using Plucker; we can apply some prolongation algorithm like in 1D-3D..
2) 1D-2D intersection in 3D space 1D and 2D meshes are arbitrarily placed in 3D space; then we need to compute intersections using Plucker coordinates and we cannot rely on prolongation algorithm (only if there are 2 IPs -> both lie in the same plane)
3) 1D-2D intersection inside 3D mesh 1D and 2D mesh is inside a bulk mesh (3D); if 2D-3D and 1D-3D has been computed, we can iterate over 3D intersection and get candidates if there is both 1D-3D and 2D-3D at the same time. We might need to deal with intersections outside 3D mesh, using partially algorithm (2)
Definition at line 251 of file inspect_elements_algorithm.hh.
InspectElementsAlgorithm12::InspectElementsAlgorithm12 | ( | Mesh * | input_mesh | ) |
Definition at line 874 of file inspect_elements_algorithm.cc.
void InspectElementsAlgorithm12::compute_intersections_1 | ( | const BIHTree & | bih | ) |
Runs the algorithm (1): compute 1D-2D intersection in 2D plane. BIH is used to find intersection candidates.
Definition at line 1035 of file inspect_elements_algorithm.cc.
void InspectElementsAlgorithm12::compute_intersections_2 | ( | const BIHTree & | bih | ) |
Runs the algorithm (2): compute 1D-2D intersection in 3D ambient space BIH is used to find intersection candidates.
Definition at line 989 of file inspect_elements_algorithm.cc.
void InspectElementsAlgorithm12::compute_intersections_3 | ( | std::vector< std::vector< ILpair >> & | intersection_map, |
std::vector< IntersectionLocal< 1, 2 >> & | storage | ||
) |
Runs the algorithm (3): compute 1D-2D intersection inside 3D mesh. It directly fills the intersection map and intersection storage. The intersection map is then also used to avoid duplicit intersections.
intersection_map_ | map of intersections where 1D-3D and 2D-3D must be already computed |
storage | vector of intersection objects 1D-2D |
Definition at line 879 of file inspect_elements_algorithm.cc.
|
friend |
Computes fundamental 1D-2D intersection of candidate pair.
Definition at line 282 of file inspect_elements_algorithm.hh.
|
private |
Stores temporarily 1D-2D intersections.
Definition at line 277 of file inspect_elements_algorithm.hh.