Contact mechanics models (slippy.contact
)¶
This module contains functions and classes for making contact mechanics models. These models allow the user to model complex contacts including user defined behaviours for material deformations, wear, friction, fluid flow etc.. For users of abaqus the API will be somewhat familiar: a ContactModel object contains all the information about the model. Within this object there are Surface objects which contain the geometry information, these have Materials assigned to them which control how the surfaces deform under load. The actual solving is done by ModelSteps which are again held within the ContactModel object. When the model is solved these steps are solved in order.
The Contact Model object¶
|
A container for multi step contact mechanics and lubrication problems |
Model Steps¶
There are ModelSteps for many different situations such as dry normal loading, mixed lubricated etc.. Some of these also require a Lubricant to be defined.
|
Static loading between two bodies |
|
A model step for quasi static relative movement |
|
Lubrication solutions by iteration of semi systems |
Materials¶
Slippy currently contains solvers for Elastic and Rigid materials, more materials will be added in future releases, it is also possible to add your own materials.
|
A Class for defining elastic materials |
|
A rigid material |
*note as the Rigid class has no options, an instance (rigid) is also provided for convenience
Lubricants¶
Lubricants in slippy are defined through the Lubricant object and lubricant sub models. A lubricant object is just a container for the sub models which define the behaviour of the lubricant. Sub models must be added for the behaviours required by a particular solver. These can be constants as for a newtonian lubricant or they can depend on other variables found during the solution eg pressure.
|
A class for describing lubricant behaviours |
Common sub models for lubricants |
Sub models¶
Slippy is quasi static, meaning that the normal contact problem is always solved for the static system. Transient behaviour such as wear, temperature change, tribofilm growth, plastic deformation etc. is dealt with by sub models. These are solved after the contact problem has been solved for each step.
Contact mechanics sub models (slippy.contact.sub_models) |
Output requests for long simulations¶
By default a contact model will return the final state when .solve() is called on it. However often this is not sufficient. Output requests allow the user to save all or part of the model state at set time points or after set steps. The OutputReader allows the user to read these files back in conveniently.
|
An output request for a multi step contact model |
|
A class for reading and querying output files (.sdb) and array files (.sar) |
Analytical solutions to common problems¶
Lastly slippy.contact also contains analytical solutions for common contacts. These are often useful as initial guesses to more complex contact problems.
|
Find the hertzian stress solution for the given system |
|
Finds remaining hertz parameter for a line contact |
|
Finds the remaining hertz parameter for a spherical contact |
Examples
Examples can be found in the examples folder on github: https://github.com/FrictionTribologyEnigma/SlipPY/tree/master/examples