-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding the s_mu and k_mu to the tangent force Collision #139
base: main
Are you sure you want to change the base?
Conversation
Thanks again for the PR @antoinebou12! A few years ago, I thought about how we could have different static and dynamic coefficients of friction. I hit a wall with it for two reasons
However, I reviewed my notes from then, and I think I figured out a way to fix both problems. Here is a PDF of my Jupyter notebook. The main idea is to multiply the smooth friction force mollifier The nice thing, which I didn't realize back then, is the chain rule of this function will produce the same outcome as the original chain-rule. That is for a potential the force is where Hopefully, implementing this should be pretty easy. If not, let me know and I am happy to help in my spare time. |
* Create Dockerfile devcontainer * Create devcontainer.json * Add files via upload * Update pre-commit-config.yaml * Update pre-commit-config.yaml * Update devcontainer.json * Update Dockerfile * Update devcontainer.json * Update Dockerfile * Create CMakePresets.json * Update CMakePresets.json * Update Dockerfile * Rename pre-commit-config.yaml to .pre-commit-config.yaml * Update devcontainer.json * Update devcontainer.json * Update Dockerfile * Update devcontainer.json * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update devcontainer.json * Update Dockerfile * Update Dockerfile * Update devcontainer.json * Update .pre-commit-config.yaml
Description
Including the addition of multiple friction materials and blending types for friction coefficients. The changes span across documentation, collision mesh structures, and tangential collision calculations.
Documentation Updates:
docs/source/tutorial/frictions.rst
)Code Enhancements:
Collision Mesh Enhancements:
CollisionMesh
class, allowing different friction properties for various materials. (src/ipc/collision_mesh.cpp
,src/ipc/collision_mesh.hpp
) [1] [2] [3] [4] [5] [6]Tangential Collisions Enhancements:
BlendType
enum andMaterialPairFriction
struct to handle various methods of blending friction coefficients and defining friction interactions between materials. (src/ipc/collisions/tangential/tangential_collisions.hpp
,src/ipc/collisions/tangential/tangential_collisions.cpp
) [1] [2] [3] [4] [5] [6] [7] [8]Friction Potential Calculations:
TangentialPotential::gradient
method to use dynamic friction coefficients (k_mu
ands_mu
) if available, enhancing the accuracy of friction force calculations. (src/ipc/potentials/tangential_potential.cpp
)These changes collectively enhance the IPC Toolkit's ability to model and compute friction forces accurately, accommodating multiple materials.
Fixes # (issue)
polyfem/polyfem#199
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Test Configuration:
Checklist