Solver for triangle mesh and wall contacts using boolean operations.
More...
#include <solver_boolean_pw.hpp>
|
| | SolverBooleanPW () |
| | Default constructor for SolverBooleanPW.
|
| |
| | SolverBooleanPW (Particle *const p, Wall *const w) |
| | Constructor for SolverBooleanPW.
|
| |
| CollisionSolverPW * | Clone () const override |
| | Creates a copy of this collision solver.
|
| |
| void | Init (Particle *const p, Wall *const w) override |
| | Initializes the collision solver with a particle and a wall.
|
| |
| bool | Detect () override |
| | Detects collisions between a particle and a wall using boolean operations on their triangle meshes.
|
| |
| void | ResolveInit (ContactPW *const cnt, double timestep) override |
| | Initializes the contact point between a particle and a wall at time t = 0.
|
| |
| void | ResolveUpdate (ContactPW *const cnt, double timestep) override |
| | Updates the contact point between a particle and a wall at time t > 0.
|
| |
| void | ResolveInit (CollisionGeometries *const cnt_geoms, double timestep, const VecXT< Vec3d > &vertices, const VecXT< Vec3i > &facets, const VecXT< int > &facets_of_1or2) |
| | Initializes the contact geometries between a particle and a wall at time t = 0.
|
| |
| void | ResolveUpdate (CollisionGeometries *const cnt_geoms, double timestep, const VecXT< Vec3d > &vertices, const VecXT< Vec3i > &facets, const VecXT< int > &facets_of_1or2) |
| | Updates the contact geometries between a particle and a wall at time t > 0.
|
| |
| void | ResolveInit_Equivalent (CollisionGeometries *const cnt_geoms, double timestep) |
| | Initializes the contact geometries between two equivalent shapes at time t = 0.
|
| |
| void | ResolveUpdate_Equivalent (CollisionGeometries *const cnt_geoms, double timestep) |
| | Updates the contact geometries between two equivalent shapes at time t > 0.
|
| |
| STLModel | GetContactTriMesh (int id) |
| | Returns an STL model of the contact triangle mesh for a given component.
|
| |
| | CollisionSolverPW () |
| |
| | CollisionSolverPW (Particle *const p, Wall *const w) |
| |
| virtual bool | Detect (ContactPW *const cnt) |
| |
| virtual | ~CollisionSolverPW () |
| |
◆ SolverBooleanPW() [1/2]
| netdem::SolverBooleanPW::SolverBooleanPW |
( |
| ) |
|
◆ SolverBooleanPW() [2/2]
| netdem::SolverBooleanPW::SolverBooleanPW |
( |
Particle *const | p, |
|
|
Wall *const | w ) |
Constructor for SolverBooleanPW.
- Parameters
-
| p | The particle to check for collisions against the wall. |
| w | The wall to check for collisions against the particle. |
◆ ClearIntersectInfo()
| void netdem::SolverBooleanPW::ClearIntersectInfo |
( |
| ) |
|
|
protected |
Clears the intersection information between the two triangle meshes.
◆ Clone()
Creates a copy of this collision solver.
- Returns
- A new instance of the collision solver.
Implements netdem::CollisionSolverPW.
◆ Detect()
| bool netdem::SolverBooleanPW::Detect |
( |
| ) |
|
|
overridevirtual |
◆ GetContactTriMesh()
| STLModel netdem::SolverBooleanPW::GetContactTriMesh |
( |
int | id | ) |
|
Returns an STL model of the contact triangle mesh for a given component.
- Parameters
-
| id | The ID of the component. |
- Returns
- The STL model of the contact triangle mesh.
◆ Init()
| void netdem::SolverBooleanPW::Init |
( |
Particle *const | p, |
|
|
Wall *const | w ) |
|
overridevirtual |
◆ ResolveInit() [1/2]
Initializes the contact geometries between a particle and a wall at time t = 0.
- Parameters
-
| cnt_geoms | The contact geometries. |
| timestep | The simulation timestep. |
| vertices | The vector of vertices defining the triangle mesh. |
| facets | The vector of facets defining the triangle mesh. |
| facets_of_1or2 | A vector indicating whether each facet is from the particle or the wall. |
◆ ResolveInit() [2/2]
| void netdem::SolverBooleanPW::ResolveInit |
( |
ContactPW *const | cnt, |
|
|
double | timestep ) |
|
overridevirtual |
◆ ResolveInit_Equivalent()
| void netdem::SolverBooleanPW::ResolveInit_Equivalent |
( |
CollisionGeometries *const | cnt_geoms, |
|
|
double | timestep ) |
Initializes the contact geometries between two equivalent shapes at time t = 0.
- Parameters
-
| cnt_geoms | The contact geometries. |
| timestep | The simulation timestep. |
◆ ResolveUpdate() [1/2]
Updates the contact geometries between a particle and a wall at time t > 0.
- Parameters
-
| cnt_geoms | The contact geometries. |
| timestep | The simulation timestep. |
| vertices | The vector of vertices defining the triangle mesh. |
| facets | The vector of facets defining the triangle mesh. |
| facets_of_1or2 | A vector indicating whether each facet is from the particle or the wall. |
◆ ResolveUpdate() [2/2]
| void netdem::SolverBooleanPW::ResolveUpdate |
( |
ContactPW *const | cnt, |
|
|
double | timestep ) |
|
overridevirtual |
Updates the contact point between a particle and a wall at time t > 0.
- Parameters
-
| cnt | The contact point. |
| timestep | The simulation timestep. |
Implements netdem::CollisionSolverPW.
◆ ResolveUpdate_Equivalent()
| void netdem::SolverBooleanPW::ResolveUpdate_Equivalent |
( |
CollisionGeometries *const | cnt_geoms, |
|
|
double | timestep ) |
Updates the contact geometries between two equivalent shapes at time t > 0.
- Parameters
-
| cnt_geoms | The contact geometries. |
| timestep | The simulation timestep. |
◆ SeperateComponents()
| void netdem::SolverBooleanPW::SeperateComponents |
( |
| ) |
|
|
protected |
Separates the intersection components in the triangle mesh into separate lists.
◆ bound_sphere_radius_1
| double netdem::SolverBooleanPW::bound_sphere_radius_1 |
|
protected |
< The radius of the bounding sphere for the first STL model.
The radius of the bounding sphere for the second STL model.
◆ bound_sphere_radius_2
| double netdem::SolverBooleanPW::bound_sphere_radius_2 |
|
protected |
The relative position vector between the centers of the two bounding spheres.
◆ comp_facets_list
List of components containing facets from either the first or second STL model.
◆ comp_facets_of_1or2_list
| VecXT<VecXT<int> > netdem::SolverBooleanPW::comp_facets_of_1or2_list |
|
protected |
◆ dpos_12
| Vec3d netdem::SolverBooleanPW::dpos_12 |
|
protected |
◆ facets_birth_ids
| VecXT<int> netdem::SolverBooleanPW::facets_birth_ids |
|
protected |
List of components (connected sets of facets) for each STL model.
◆ facets_isct
List of birth IDs for each intersection facet.
◆ stl_model_1
| STLModel* netdem::SolverBooleanPW::stl_model_1 {nullptr} |
|
protected |
◆ stl_model_2
| STLModel* netdem::SolverBooleanPW::stl_model_2 {nullptr} |
|
protected |
List of intersection vertices.
◆ vertices_isct
| VecXT<Vec3d> netdem::SolverBooleanPW::vertices_isct |
|
protected |
List of intersection facets.
The documentation for this class was generated from the following files: