We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent b3edcb8 commit 91ef0d1Copy full SHA for 91ef0d1
.github/workflows/cuda.yml
@@ -40,7 +40,7 @@ jobs:
40
- uses: Jimver/[email protected]
41
id: cuda-toolkit
42
with:
43
- cuda: '12.5.0'
+ cuda: '12.3.2'
44
45
- name: Get number of CPU cores
46
uses: SimenB/[email protected]
cmake/recipes/scalable_ccd.cmake
@@ -9,4 +9,4 @@ message(STATUS "Third-party: creating target 'scalable_ccd::scalable_ccd'")
9
set(SCALABLE_CCD_WITH_CUDA ${IPC_TOOLKIT_WITH_CUDA} CACHE BOOL "Enable CUDA CCD" FORCE)
10
11
include(CPM)
12
-CPMAddPackage("gh:continuous-collision-detection/scalable-ccd#318352e6aa3c1008a67c80547c6fa21bf18fb1a5")
+CPMAddPackage("gh:continuous-collision-detection/scalable-ccd#95a078bbaf9659f2e1b4285d51475deff163bfa0")
src/ipc/ccd/additive_ccd.cpp
@@ -60,8 +60,8 @@ namespace {
60
}
61
} // namespace
62
63
-AdditiveCCD::AdditiveCCD(const double conservative_rescaling)
64
- : conservative_rescaling(conservative_rescaling)
+AdditiveCCD::AdditiveCCD(const double _conservative_rescaling)
+ : conservative_rescaling(_conservative_rescaling)
65
{
66
67
src/ipc/ccd/tight_inclusion_ccd.cpp
@@ -21,12 +21,12 @@ static constexpr double INITIAL_DISTANCE_TOLERANCE_SCALE = 0.5;
21
static constexpr long TIGHT_INCLUSION_UNLIMITED_ITERATIONS = -1;
22
23
TightInclusionCCD::TightInclusionCCD(
24
- const double tolerance,
25
- const long max_iterations,
26
- const double conservative_rescaling)
27
- : tolerance(tolerance)
28
- , max_iterations(max_iterations)
29
- , conservative_rescaling(conservative_rescaling)
+ const double _tolerance,
+ const long _max_iterations,
+ const double _conservative_rescaling)
+ : tolerance(_tolerance)
+ , max_iterations(_max_iterations)
+ , conservative_rescaling(_conservative_rescaling)
30
31
32
src/ipc/implicits/plane.cpp
@@ -100,7 +100,7 @@ double compute_point_plane_collision_free_stepsize(
100
const double earliest_toi = tbb::parallel_reduce(
101
tbb::blocked_range<size_t>(0, points_t0.rows()),
102
/*inital_step_size=*/1.0,
103
- [&](tbb::blocked_range<size_t> r, double earliest_toi) {
+ [&](tbb::blocked_range<size_t> r, double current_toi) {
104
for (size_t vi = r.begin(); vi < r.end(); vi++) {
105
for (size_t pi = 0; pi < n_planes; pi++) {
106
if (!can_collide(vi, pi)) {
@@ -116,13 +116,13 @@ double compute_point_plane_collision_free_stepsize(
116
plane_normal, toi);
117
118
if (are_colliding) {
119
- if (toi < earliest_toi) {
120
- earliest_toi = toi;
+ if (toi < current_toi) {
+ current_toi = toi;
121
122
123
124
125
- return earliest_toi;
+ return current_toi;
126
},
127
[&](double a, double b) { return std::min(a, b); });
128
src/ipc/ipc.cpp
@@ -56,8 +56,10 @@ double compute_collision_free_stepsize(
56
"Sweep and Tiniest Queue is only supported in 3D!");
57
58
// TODO: Use correct min_distance
59
- const double tolerance = TightInclusionCCD::DEFAULT_TOLERANCE;
- const long max_iterations = TightInclusionCCD::DEFAULT_MAX_ITERATIONS;
+ // TODO: Expose tolerance and max_iterations
+ constexpr double tolerance = TightInclusionCCD::DEFAULT_TOLERANCE;
+ constexpr long max_iterations =
+ TightInclusionCCD::DEFAULT_MAX_ITERATIONS;
const double step_size = scalable_ccd::cuda::ipc_ccd_strategy(
vertices_t0, vertices_t1, mesh.edges(), mesh.faces(),
/*min_distance=*/0.0, max_iterations, tolerance);
tests/src/tests/barrier/test_barrier.cpp
@@ -59,7 +59,7 @@ class NormalizedClampedLogBarrier : public ipc::Barrier {
/// @warning This implementation will not work with dmin > 0
class PhysicalBarrier : public ipc::NormalizedClampedLogBarrier {
public:
- PhysicalBarrier(const bool use_dist_sqr) : use_dist_sqr(use_dist_sqr) { }
+ PhysicalBarrier(const bool _use_dist_sqr) : use_dist_sqr(_use_dist_sqr) { }
double operator()(const double d, const double dhat) const override
tests/src/tests/ccd/test_gpu_ccd.cpp
@@ -43,15 +43,15 @@ TEST_CASE("GPU CCD", "[ccd][gpu]")
const double min_distance = 0;
const double toi_cpu = compute_collision_free_stepsize(
- mesh, V0, V1, BroadPhaseMethod::SWEEP_AND_PRUNE, min_distance,
47
- tolerance, max_iterations);
+ mesh, V0, V1, min_distance, BroadPhaseMethod::SWEEP_AND_PRUNE,
+ TightInclusionCCD(tolerance, max_iterations));
48
49
// Got this value from running the code
50
CHECK(toi_cpu == Catch::Approx(4.76837158203125000e-06));
51
52
const double toi_gpu = compute_collision_free_stepsize(
53
- mesh, V0, V1, BroadPhaseMethod::SWEEP_AND_TINIEST_QUEUE, min_distance,
54
+ mesh, V0, V1, min_distance, BroadPhaseMethod::SWEEP_AND_TINIEST_QUEUE,
55
CHECK(toi_gpu == Catch::Approx(3.05175781250000017e-6));
0 commit comments