|
dynLattice
|
Model for rod-to-rod contact interactions using penalty methods. More...
#include "RodContactModel.h"


Public Member Functions | |
| RodContactModel (const String &name, const Properties &conf, const Properties &props, const Properties &globdat) | |
| Constructor. | |
| virtual bool | takeAction (const String &action, const Properties ¶ms, const Properties &globdat) override |
| Handle model actions. | |
Static Public Member Functions | |
| static Ref< Model > | makeNew (const String &name, const Properties &conf, const Properties &props, const Properties &globdat) |
| Create new RodContactModel instance. | |
| static void | declare () |
| Declare model type to factory. | |
Static Public Attributes | |
Property identifiers | |
| static const char * | TYPE_NAME = "RodContact" |
| Model type name. | |
| static const char * | PENALTY_PROP = "penalty" |
| General penalty property. | |
| static const char * | PENALTY_STS_PROP = "penaltySTS" |
| Segment-to-segment penalty property. | |
| static const char * | PENALTY_NTS_PROP = "penaltyNTS" |
| Node-to-segment penalty property. | |
| static const char * | RADIUS_PROP = "radius" |
| Rod radius property. | |
| static const char * | VERBOSE_PROP = "verbose" |
| Verbose output property. | |
Protected Member Functions | |
| virtual void | findContacts_ (IdxVector &elementsA, IdxVector &elementsB, const Vector &disp) const |
| Find pairs of contacts. | |
| virtual void | findPossibleBeams_ (IdxVector &beamsA, IdxVector &beamsB, const Vector &disp) const |
| Find beams of possible contact pairs. | |
| virtual void | findPossibleElements_ (IdxVector &elemsA, IdxVector &elemsB, const idx_t &beamA, const idx_t &beamB, const Vector &disp) const |
| Get the contacting point between two beams in possible contact. | |
| virtual void | computeContacts_ (MatrixBuilder &mbld, const Vector &fint, const IdxVector &elementsA, const IdxVector &elementsB, const Vector &disp) |
| Compute the effects of the contact. | |
| virtual void | computeBlacklist_ (const IdxVector &elementsA, const IdxVector &elementsB, const Vector &disp) |
| Build the list of nodes initially in contact. | |
| virtual bool | filterBlacklist_ (const idx_t elementsA, const idx_t elementsB) const |
| Check whether a contact is on the blacklist. | |
| virtual void | findClosestPoints_ (double &uA, double &uB, const Matrix &possA, const Matrix &possB) const |
| Find the local coordinates of the closest points on two beams. | |
| virtual double | getClosestPoint_ (const Vector &posS, const Matrix &possM) const |
| Get the closest coordinate on the main element to the secondary point. | |
| virtual bool | computeSTS_ (Vector &f_contrib, Matrix &k_contrib, const Matrix &possA, const Matrix &possB, const double uA, const double uB) const |
| Compute the force and stiffness contributions of a segment-to-segment contact. | |
| virtual bool | computeNTS_ (Vector &f_contrib, Matrix &k_contrib, const Vector &possS, const Matrix &possM, const double uM) const |
| Compute the force and stiffness contributions of a node-to-segment contact. | |
The RodContactModel implements contact mechanics between rod elements using penalty-based formulations. It supports both segment-to-segment and node-to-segment contact types with automatic contact detection, blacklist filtering, and configurable penalty parameters.
Features:
|
explicit |
| name | Model name |
| conf | Actually used configuration properties (output) |
| props | User-specified model properties |
| globdat | Global data container |
|
protectedvirtual |
| elementsA | Element IDs A |
| elementsB | Element IDs B |
| disp | Displacement vector |
|
protectedvirtual |
| mbld | Stiffness matrix builder |
| fint | Internal force vector |
| elementsA | Element IDs of one side of the contact |
| elementsB | Element IDs of the other side |
| disp | Displacement vector of all elements |
|
protectedvirtual |
| f_contrib | Force contribution |
| k_contrib | Stiffness contribution |
| possS | Position of the secondary node |
| possM | Positions of the main beam |
| uM | Local coordinate of the main beam |
|
protectedvirtual |
| f_contrib | Force contribution |
| k_contrib | Stiffness contribution |
| possA | Positions of Beam A |
| possB | Positions of Beam B |
| uA | Local coordinate Beam A |
| uB | Local coordinate Beam B |
|
static |
|
protectedvirtual |
| elementsA | Element ID A |
| elementsB | Element ID B |
|
protectedvirtual |
| uA | Local coordinate Beam A |
| uB | Local coordinate Beam B |
| possA | Positions Beam A |
| possB | Positions Beam B |
|
protectedvirtual |
| elementsA | Element IDs of one side of the contact |
| elementsB | Element IDs of the other side |
| disp | Displacement vector of all elements |
|
protectedvirtual |
| beamsA | Indices of the beams in contact |
| beamsB | Indices of corresponding beams |
| disp | Displacement vector of all elements |
|
protectedvirtual |
| elemsA | Element ID of one side of the contact |
| elemsB | Corresponding element ID on the other side |
| beamA | Possible beam on side A |
| beamB | Possible beam on side B |
| disp | Displacement vector of all elements |
|
protectedvirtual |
| posS | Secondary point |
| possM | Main element positions |
|
static |
| name | Model name |
| conf | Actually used configuration properties (output) |
| props | User-specified model properties |
| globdat | Global data container |
|
overridevirtual |
| action | Action name |
| params | Action parameters |
| globdat | Global data container |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |