MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Loading...
Searching...
No Matches
GmpMechanicalContact Class Reference

Static Public Member Functions

static void fillBorderNodeCoordinates (const GmElement *e, GmValueAccessor *nodeAc, GmMatrix &X, int border, int d, bool transposed=false)
 Given a element accessor, fills the matrix 'm' with the node coordinates of the cell border "b".
 
static void edgeToNodes (const GmContactBoundaryCondition *cbc, int bcIndex, int nbc, int d, GmValueAccessor *nodeAc, QVector< GmMatrix > &surfaces, QVector< GmVector > &nodesSurf)
 
static void nodeToSurfaceSearch (const QVector< GmMatrix > &surfMaster, const QVector< GmMatrix > &surfSlave, const QVector< GmVector > &nodesSurf1, const QVector< GmVector > &nodesSurf2, QVector< int > &nodesSlave, QVector< GmMatrix > &nodesMaster)
 Function that realize a local search for possible nodes in contact, fills the vectors "nodesSlave" list of a nodes in possible contact, and the matrix "nodesMaster" pairs or groups of nodes wich defines a surface.
 
static void coordinatesGlobal (GmValueAccessor *nodeAcc, GmValueAccessor *uAcc, QVector< double > &slaveCoordinates, QVector< double > &masterCoordinates, const QVector< int > &nodesSlave, const QVector< GmMatrix > &nodesMaster)
 
static void calVectors (const QVector< int > &nodesSlave, const QVector< GmMatrix > &nodesMaster, GmValueAccessor *nodeAcc, GmValueAccessor *uAcc, GmVector &lengthBorder, GmVector &xi_c, GmVector &impVec, GmVector &slipVec, bool &hasContact)
 
static void contactForce (GmValueAccessor *nodeAcc, GmValueAccessor *uAcc, const QVector< int > &nodesSlave, const QVector< GmMatrix > &nodesMaster, const GmVector &lengthBorder, const GmVector &xi_c, const GmVector &impVec, const GmVector &slipVec, double Kn, double Ks, double muAc, QVector< GmMatrix > &Fc)
 
static void contactMatrix (GmValueAccessor *nodeAcc, GmValueAccessor *uAcc, const QVector< int > &nodesSlave, const QVector< GmMatrix > &nodesMaster, const GmVector &lengthBorder, const GmVector &xi_c, const GmVector &impVec, const GmVector &slipVec, double Kn, double Ks, double muAc, QVector< GmMatrix > &Kc)
 
static void contactNodes (GmValueAccessor *nodeAcc, GmValueAccessor *uAcc, const QVector< int > &nodesSlave, const QVector< GmMatrix > &nodesMaster, const GmVector &impVec, QVector< int > &nodesInContact, QVector< GmVector > &dofMatrix)
 
static void translateMatrix (const GmVector &impVec, const QVector< int > &nodesSlave, const QVector< GmMatrix > &nodesMaster, const QVector< int > &nodesInContact, const QVector< GmMatrix > &Kc, GmMatrix &Kcc, const QVector< GmVector > &dofMatrix)
 
static void translateContactForce (const GmVector &impVec, const QVector< int > &nodesSlave, const QVector< GmMatrix > &nodesMaster, const QVector< int > &nodesInContact, const QVector< GmMatrix > &Fc, GmMatrix &Fcc, const QVector< GmVector > &dofMatrix)
 

Member Function Documentation

◆ fillBorderNodeCoordinates()

void GmpMechanicalContact::fillBorderNodeCoordinates ( const GmElement * e,
GmValueAccessor * nodeAcc,
GmMatrix & m,
int b,
int d,
bool transposed = false )
static

Given a element accessor, fills the matrix 'm' with the node coordinates of the cell border "b".

The result 'm' wil be filled with an "n x d" matrix where 'n' is the number of nodes in the cell border and 'd' is the number of dimensions of each coordinate, thus line 'i' holds the coordinates of node 'i'.

If transposed == true, the matrix will be transposed with size "d x n", with column 'i' holding the coordinates of a node 'i'.


The documentation for this class was generated from the following files: