| NetDEM v1.0
    | 
An abstract class representing a collision solver for a particle and a wall. More...
#include <collision_solver_pw.hpp>
 
  
| Public Member Functions | |
| CollisionSolverPW () | |
| CollisionSolverPW (Particle *const p, Wall *const w) | |
| virtual CollisionSolverPW * | Clone () const =0 | 
| virtual void | Init (Particle *const p, Wall *const w) | 
| virtual bool | Detect ()=0 | 
| virtual bool | Detect (ContactPW *const cnt) | 
| virtual void | ResolveInit (ContactPW *const cnt, double timestep)=0 | 
| virtual void | ResolveUpdate (ContactPW *const cnt, double timestep)=0 | 
| virtual | ~CollisionSolverPW () | 
| Public Attributes | |
| Particle * | particle {nullptr} | 
| Wall * | wall {nullptr} | 
| Protected Member Functions | |
| void | InitBasicGeoms (CollisionGeometries *const cnt_geoms, double timestep) | 
| void | UpdateBasicGeoms (CollisionGeometries *const cnt_geoms, double timestep, Vec3d const &dir_n_old) | 
An abstract class representing a collision solver for a particle and a wall.
This class provides an interface for detecting and resolving collisions between a particle and a wall, and includes methods for initializing and updating the contact geometries associated with each collision. Subclasses are expected to implement the core collision detection and resolution logic.
| 
 | inline | 
Constructor for an empty CollisionSolverPW. 
Constructor for a CollisionSolverPW with specific particle and wall.
| p | The particle involved in the collision. | 
| w | The wall involved in the collision. | 
| 
 | inlinevirtual | 
Virtual destructor for CollisionSolverPW. 
| 
 | pure virtual | 
Clone this collision solver.
Implemented in netdem::SolverANNPPlane, netdem::SolverANNPW, netdem::SolverBooleanPW, netdem::SolverGJKPW, netdem::SolverSDFPW, netdem::SolverSpherePlane, and netdem::SolverSphereTriangle.
| 
 | pure virtual | 
Detect whether a collision has occurred between the particle and the wall.
true if a collision has occurred, false otherwise. Implemented in netdem::SolverANNPPlane, netdem::SolverANNPW, netdem::SolverBooleanPW, netdem::SolverGJKPW, netdem::SolverSDFPW, netdem::SolverSpherePlane, and netdem::SolverSphereTriangle.
| 
 | inlinevirtual | 
Initialize the particle and wall involved in the collision.
| p | The particle involved in the collision. | 
| w | The wall involved in the collision. | 
Reimplemented in netdem::SolverANNPPlane, netdem::SolverANNPW, netdem::SolverBooleanPW, netdem::SolverGJKPW, netdem::SolverSDFPW, netdem::SolverSpherePlane, and netdem::SolverSphereTriangle.
| 
 | protected | 
Initialize the basic geometries associated with the collision surface.
| cnt_geoms | A pointer to the CollisionGeometriesobject where contact geometry information will be stored. | 
| timestep | The timestep length used in the simulation. | 
| 
 | pure virtual | 
Prepare for resolving the collision by initializing the ContactPW object.
| cnt | A pointer to a ContactPWobject storing details of the collision. | 
| timestep | The timestep length used in the simulation. | 
Implemented in netdem::SolverANNPPlane, netdem::SolverANNPW, netdem::SolverBooleanPW, netdem::SolverGJKPW, netdem::SolverSDFPW, netdem::SolverSpherePlane, and netdem::SolverSphereTriangle.
| 
 | pure virtual | 
Update the particle and wall involved in the collision based on the current state of the simulation.
| cnt | A pointer to a ContactPWobject storing details of the collision. | 
| timestep | The timestep length used in the simulation. | 
Implemented in netdem::SolverANNPPlane, netdem::SolverANNPW, netdem::SolverBooleanPW, netdem::SolverGJKPW, netdem::SolverSDFPW, netdem::SolverSpherePlane, and netdem::SolverSphereTriangle.
| 
 | protected | 
Update the basic geometries associated with the collision surface.
| cnt_geoms | A pointer to the CollisionGeometriesobject where contact geometry information will be stored. | 
| timestep | The timestep length used in the simulation. | 
| dir_n_old | The old normal direction of the contact surface. | 
| Particle* netdem::CollisionSolverPW::particle {nullptr} | 
A pointer to the particle involved in the collision.
| Wall* netdem::CollisionSolverPW::wall {nullptr} | 
A pointer to the wall involved in the collision.