Skip to content

Add analytical cone boundaries and validation demos#67

Open
yvrob wants to merge 3 commits into
projectchrono:mainfrom
yvrob:analytical-cone-boundaries
Open

Add analytical cone boundaries and validation demos#67
yvrob wants to merge 3 commits into
projectchrono:mainfrom
yvrob:analytical-cone-boundaries

Conversation

@yvrob

@yvrob yvrob commented Jun 10, 2026

Copy link
Copy Markdown

Summary

This PR adds native analytical cone support to DEM-Engine, avoiding STL/mesh facets for cone and conical-frustum side contacts.

Changes:

  • Add analytical cone object types and DEMExternObj::AddCone / AddConeSegment.
  • Support finite cone segments via axial bounds, so frustum sides can be represented exactly; cap planes remain separate analytical planes.
  • Add exact sphere-cone contact detection for side, apex, and rim/segment-bound contacts.
  • Support inward and outward normals, matching the existing analytical cylinder convention.
  • Convert DEMdemo_ConePenetration to use an analytical cone tip instead of mesh/cone.obj.
  • Add validation demos:
    • DEMdemo_AnalyticalCone: exact static checks for inward side, outward side, apex, and no-contact control.
    • DEMdemo_AnalyticalConePour: dynamic pouring into corner-down cone, corner-up cone, and frustum-from-below cases.

Validation

  • git diff --check
  • source /home/codexuser/PBR-DEME_new/dem-engine-env.sh; cmake --build build-cone-smoke --target DEMdemo_AnalyticalCone DEMdemo_AnalyticalConePour -j 2
  • GPU exact contact validation on CUDA_VISIBLE_DEVICES=0: passed with 3 active analytical cone contacts and the no-contact control clean.
  • GPU dynamic pour validation on CUDA_VISIBLE_DEVICES=0: passed, 225 spheres, 250 frames, ~5 s simulated time.
  • ParaView artifact generated from real demo output; cone/cylinder surfaces are display-only, DEM used analytical objects.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant