159 double GetPotential(
double dist,
double node_area,
double size_eq,
162 static double KiToKn(
double ki,
double size_eq,
double size_ratio);
164 static double KiFromKn(
double kn,
double size_eq,
double size_ratio);
166 static double KiToEstar(
double ki,
double size_eq,
double size_ratio);
168 static double KiFromEstar(
double Estar,
double size_eq,
double size_ratio);
172 bool solve_1to2{
false};
175 bool solve_2to1{
false};
178 double bound_sphere_radius_1;
181 double bound_sphere_radius_2;
218 Shape *shape_1{
nullptr};
221 Shape *shape_2{
nullptr};
A class representing the geometries associated with a collision.
Definition collision_geometries.hpp:15
An abstract class representing a collision solver for a particle and a wall.
Definition collision_solver_pw.hpp:20
Definition particle.hpp:26
A class used to solve collisions between a particle and a wall using a signed distance field.
Definition solver_sdf_pw.hpp:18
static double KiToKn(double ki, double size_eq, double size_ratio)
Definition solver_sdf_pw.cpp:538
bool Detect() override
Detects if there is a collision between the particle and the wall.
Definition solver_sdf_pw.cpp:71
void ResolveUpdate(ContactPW *const cnt, double timestep) override
Updates the contact information object and resolves the collision based on the updated information an...
Definition solver_sdf_pw.cpp:199
void ResolveUpdatePToW(CollisionGeometries *const cnt_geoms, double timestep)
Updates the contact geometries object and resolves the collision based on the updated information and...
Definition solver_sdf_pw.cpp:451
void ResolveInit(ContactPW *const cnt, double timestep) override
Resolves the collision based on the initial contact information and timestep.
Definition solver_sdf_pw.cpp:171
void ResolveInitWToP(CollisionGeometries *const cnt_geoms, double timestep)
Resolves the collision between the wall and the particle based on the initial contact geometries and ...
Definition solver_sdf_pw.cpp:292
void ResolveUpdateWToP(CollisionGeometries *const cnt_geoms, double timestep)
Updates the contact geometries object and resolves the collision based on the updated information and...
Definition solver_sdf_pw.cpp:345
PotentialType
An enumeration of potential types used by the solver.
Definition solver_sdf_pw.hpp:27
@ linear
Definition solver_sdf_pw.hpp:27
@ hertz
Definition solver_sdf_pw.hpp:27
static double KiToEstar(double ki, double size_eq, double size_ratio)
Definition solver_sdf_pw.cpp:550
void Init(Particle *const p, Wall *const w) override
Initializes the SolverSDFPW instance with the given particles and walls.
Definition solver_sdf_pw.cpp:16
double GetPotential(double dist, double node_area, double size_eq, double size_ratio)
Calculates the potential energy between two shapes based on their distance and type of potential func...
Definition solver_sdf_pw.cpp:504
bool use_equivalent_stiffness
Definition solver_sdf_pw.hpp:37
int potential_type
Whether to solve both sides of the collision.
Definition solver_sdf_pw.hpp:30
CollisionSolverPW * Clone() const override
Clones the current SolverSDFPW instance.
Definition solver_sdf_pw.cpp:14
static double KiFromKn(double kn, double size_eq, double size_ratio)
Definition solver_sdf_pw.cpp:544
double beta
Definition solver_sdf_pw.hpp:39
bool solve_two_sides
Definition solver_sdf_pw.hpp:33
SolverSDFPW()
Default constructor for SolverSDFPW class.
Definition solver_sdf_pw.cpp:10
static double KiFromEstar(double Estar, double size_eq, double size_ratio)
Definition solver_sdf_pw.cpp:559
void ResolveInitPToW(CollisionGeometries *const cnt_geoms, double timestep)
Resolves the collision between the particle and the wall based on the initial contact geometries and ...
Definition solver_sdf_pw.cpp:400
A class representing a wall object in a physics simulation.
Definition wall.hpp:32
Definition bond_entry.hpp:7
std::vector< T > VecXT
Definition utils_macros.hpp:31
std::array< double, 3 > Vec3d
Definition utils_macros.hpp:18
std::array< double, 4 > Vec4d
Definition utils_macros.hpp:19