-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
46f438e
commit 2e2508a
Showing
9 changed files
with
409 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
# Frictional contact (surface) | ||
|
||
<tldr> | ||
<p>A surface force model that simulates frictional forces between a particle and a plane in contact</p> | ||
<p>Name: <code>surface_contact_force_functor</code></p> | ||
<p>Defined in: <code><libgran/contact_force/surface_contact_force.h></code></p> | ||
</tldr> | ||
|
||
## Template parameters | ||
|
||
{type="wide"} | ||
`field_value_t` | ||
: primary field type | ||
|
||
`real_t` | ||
: scalar field type | ||
|
||
## Constructor arguments | ||
|
||
{type="wide"} | ||
`size_t n_part` | ||
: number of particles in the system | ||
|
||
`real_t k` | ||
: normal stiffness | ||
|
||
`real_t gamma_n` | ||
: normal damping coefficient | ||
|
||
`real_t k_t` | ||
: tangential stiffness | ||
|
||
`real_t gamma_t` | ||
: tangential damping coefficient | ||
|
||
`real_t mu_s` | ||
: static friction coefficient for sticking/sliding | ||
|
||
`real_t phi_d` | ||
: dynamic-to-static friction ratio for sticking/sliding | ||
|
||
`real_t k_r` | ||
: rolling resistance stiffness | ||
|
||
`real_t gamma_r` | ||
: rolling resistance damping coefficient | ||
|
||
`real_t mu_r` | ||
: static friction coefficient for rolling resistance | ||
|
||
`real_t phi_r` | ||
: dynamic-to-static friction ratio for rolling resistance | ||
|
||
`real_t k_o` | ||
: torsion resistance stiffness | ||
|
||
`real_t gamma_o` | ||
: torsion resistance damping coefficient | ||
|
||
`real_t mu_o` | ||
: static friction coefficient for torsion resistance | ||
|
||
`real_t phi_o` | ||
: dynamic-to-static friction ratio for torsion resistance | ||
|
||
`real_t r_part` | ||
: particle radius | ||
|
||
`real_t mass` | ||
: particle mass | ||
|
||
`real_t inertia` | ||
: particle moment of inertia | ||
|
||
`real_t dt` | ||
: integration time step | ||
|
||
`field_value_t field_zero` | ||
: zero-valued primary field | ||
|
||
`real_t real_zero` | ||
: zero-valued scalar field | ||
|
||
## Public member functions | ||
|
||
### operator () | ||
|
||
Synopsis: | ||
|
||
Called by the [triangular facet](Triangular-facet.md) to compute the acceleration | ||
of particle i due to its frictional contact with the triangular facet | ||
|
||
Arguments: | ||
|
||
{type="wide"} | ||
`size_t i` | ||
: index of the particle that is being accelerated | ||
|
||
`field_value_t const & x_facet` | ||
: point on the facet closest to the center of particle i | ||
|
||
`std::vector<fielv_value_t> const & x` | ||
: const reference to the position buffer | ||
|
||
`std::vector<fielv_value_t> const & v` | ||
: const reference to the velocity buffer | ||
|
||
`std::vector<fielv_value_t> const & theta` | ||
: const reference to the orientation buffer | ||
|
||
`std::vector<fielv_value_t> const & omega` | ||
: const reference to the angular velocity buffer | ||
|
||
`real_t t` | ||
: simulation time | ||
|
||
Return value: | ||
|
||
{type="wide"} | ||
`std::pair<field_value_t, field_value_t>` | ||
: translational acceleration and angular acceleration of particle i due to its | ||
frictional contact with particle j | ||
|
||
<seealso> | ||
<category ref="related"> | ||
<a href="Overview.md">Overview</a> | ||
<a href="Installation.md">Installation</a> | ||
<a href="Tutorials.md">Tutorials</a> | ||
<a href="Class-reference.md">Class reference</a> | ||
</category> | ||
<category ref="external"> | ||
<a href="https://github.com/egor-demidov/libgran">libgran on GitHub</a> | ||
<a href="https://github.com/egor-demidov/libtimestep">libtimestep on GitHub</a> | ||
</category> | ||
</seealso> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,140 @@ | ||
# Triangular facet | ||
|
||
<tldr> | ||
<p>A type that stores a variable number of references to surface force models</p> | ||
<p>Name: <code>triangular_facet</code></p> | ||
<p>Defined in: <code><libgran/surface_force/triangular_facet.h></code></p> | ||
</tldr> | ||
|
||
## Template parameters | ||
|
||
{type="wide"} | ||
`field_value_t` | ||
: primary field type | ||
|
||
`real_t` | ||
: scalar field type | ||
|
||
`surface_force_functors_t ...` | ||
: list of surface force model types | ||
|
||
## Constructor arguments | ||
|
||
{type="wide"} | ||
`field_value_t v_facet` | ||
: initial translational velocity of the facet | ||
|
||
`std::tuple<field_value_t, field_value_t, field_value_t> vertices` | ||
: vertices of the triangular facet | ||
|
||
`surface_force_functors_t & ...` | ||
: list of surface force model references | ||
|
||
## Public member functions | ||
|
||
### operator () | ||
|
||
Synopsis: | ||
|
||
Called by the [unary force container](Unary-force-container.md) to compute the acceleration of particle i due to | ||
surface forces exerted on it because of the triangular facet | ||
|
||
Arguments: | ||
|
||
{type="wide"} | ||
`size_t i` | ||
: index of the particle that is being accelerated | ||
|
||
`std::vector<fielv_value_t> const & x` | ||
: const reference to the position buffer | ||
|
||
`std::vector<fielv_value_t> const & v` | ||
: const reference to the velocity buffer | ||
|
||
`std::vector<fielv_value_t> const & theta` | ||
: const reference to the orientation buffer | ||
|
||
`std::vector<fielv_value_t> const & omega` | ||
: const reference to the angular velocity buffer | ||
|
||
`real_t t` | ||
: simulation time | ||
|
||
Return value: | ||
|
||
{type="wide"} | ||
`std::pair<field_value_t, field_value_t>` | ||
: translational acceleration and angular acceleration of particle i due to surface forces exerted on it by the | ||
triangular facet | ||
|
||
### get_unit_normal() | ||
|
||
Synopsis: | ||
|
||
Returns the normal unit vector of the plane in which the triangular facet lies | ||
|
||
Arguments: | ||
|
||
{type="wide"} | ||
`void` | ||
: no arguments | ||
|
||
Return value: | ||
|
||
{type="wide"} | ||
`field_value_t const &` | ||
: const reference to the normal unit vector of the plane in which the triangular facet lies | ||
|
||
### get_vertices() | ||
|
||
Synopsis: | ||
|
||
Returns the tuple with current positions of the vertices of the triangular facet | ||
|
||
Arguments: | ||
|
||
{type="wide"} | ||
`void` | ||
: no arguments | ||
|
||
Return value: | ||
|
||
{type="wide"} | ||
`std::tuple<field_value_t, field_value_t, field_value_t> const &` | ||
: const reference to the tuple containing the positions of the vertices of the triangular facet | ||
|
||
### update_positions() | ||
|
||
Synopsis: | ||
|
||
Needs to be called at every integration time step to update the positions of the vertices based on the | ||
facet velocity, `v_facet`, unless the facet is static | ||
|
||
Arguments: | ||
|
||
{type="wide"} | ||
`real_t dt` | ||
: time step by which the vertex positions need to be advanced | ||
|
||
{type="wide"} | ||
`void` | ||
: no return value | ||
|
||
## Public member variables | ||
|
||
{type="wide"} | ||
`field_value_t v_facet` | ||
: current translational velocity of the triangular facet | ||
|
||
<seealso> | ||
<category ref="related"> | ||
<a href="Overview.md">Overview</a> | ||
<a href="Installation.md">Installation</a> | ||
<a href="Tutorials.md">Tutorials</a> | ||
<a href="Class-reference.md">Class reference</a> | ||
</category> | ||
<category ref="external"> | ||
<a href="https://github.com/egor-demidov/libgran">libgran on GitHub</a> | ||
<a href="https://github.com/egor-demidov/libtimestep">libtimestep on GitHub</a> | ||
</category> | ||
</seealso> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# Unary force models | ||
|
||
libran comes with some build-in binary force models. Here, we provide class fererences | ||
for reach built-in binary model template: | ||
|
||
- [Triangular facet](Van-der-Waals-attraction.md) - a wrapper that simulates rigid triangular facets with particle-surface interaction | ||
forces described by surface force models: | ||
- [Van der Waals attraction](Van-der-Waals-attraction-surface.md) - simulates Van der Waals attraction between a | ||
particle and a plane based on [Hamaker theory](https://doi.org/10.1016/S0031-8914(37)80203-7) | ||
- [Frictional contact](Frictional-contact-surface.md) - simulates frictional forces between a particle | ||
and a plane in contact based on the approach described in [Luding 2008](https://doi.org/10.1007/s10035-008-0099-x) | ||
|
||
<seealso> | ||
<category ref="related"> | ||
<a href="Overview.md">Overview</a> | ||
<a href="Installation.md">Installation</a> | ||
<a href="Tutorials.md">Tutorials</a> | ||
<a href="Class-reference.md">Class reference</a> | ||
</category> | ||
<category ref="external"> | ||
<a href="https://github.com/egor-demidov/libgran">libgran on GitHub</a> | ||
<a href="https://github.com/egor-demidov/libtimestep">libtimestep on GitHub</a> | ||
</category> | ||
</seealso> |
Oops, something went wrong.