Skip to content
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

MultiPointContact with custom rigid edge / surface #810

Open
adtzlr opened this issue Jul 6, 2024 · 2 comments
Open

MultiPointContact with custom rigid edge / surface #810

adtzlr opened this issue Jul 6, 2024 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@adtzlr
Copy link
Owner

adtzlr commented Jul 6, 2024

In #805 and #808, a non-flat rigid edge would also be of interest.

$$f(\boldsymbol{x})$$

It is important to deal with coordinates of the deformed configuration (the rigid edge / surface is fixed in space). This requires the first partial derivatives $\partial f / \partial \boldsymbol{x}_t$ and $\partial f / \partial \boldsymbol{x}_C$.

The corresponding weak-form expression:

$$ \delta W_\text{ext} = \int_{\partial v} \delta u \cdot \lambda (x-x_\text{ext})^+ da $$

with the ramp function

$$ (x)^+ = \frac{x + |x|}{2} $$

@adtzlr adtzlr added the enhancement New feature or request label Jul 6, 2024
@adtzlr adtzlr self-assigned this Jul 6, 2024
@adtzlr adtzlr changed the title MultiPointContact: contact with custom rigid edge / surface MultiPointContact with custom rigid edge / surface Jul 6, 2024
@adtzlr
Copy link
Owner Author

adtzlr commented Jul 6, 2024

$$ \delta W_\text{ext} = \int_{\partial v} \delta u \cdot \lambda ((X + u) - x_\text{ext})^+ da $$

@adtzlr
Copy link
Owner Author

adtzlr commented Jul 6, 2024

The MultiPointContact does not need the centerpoint. The external displacements should be passed as array. This removes 3/4 of the entries of the stiffness matrix.

$$ \hat{r} = \lambda (\hat{x}_t - \hat{x}_C) $$

with the rigid obstacle

$$ \hat{x}_C = f(\hat{x}_t) $$

The coordinate-dependent obstacle is evaluated for the coordinates of the deformed configuration.

$$ \hat{K} = \lambda (1 - \frac{\partial f}{\partial \hat{x}})$$

This should be implemented as a new class, like Obstacle. The obstacle's coordinates must be provided by a callable,

def obstacle(points):
    return surface, derivatives_of_surface_wrt_points

The idea is to use an interpolated line mesh for this kind of obstacle; this also includes a special mesh.points_derivative array.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant