MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Public Member Functions | List of all members
GmpMechanicalContact Class Reference

Public Member Functions

virtual void fillBorderNodeCoordinates (const GmElement *e, GmValueAccessor *nodeAc, GmMatrix &X, int border, int d, bool transposed=false) const
 Given a element accessor, fills the matrix 'm' with the node coordinates of the cell border "b". More...
 
virtual void edgeToNodes (const GmContactBoundaryCondition *cbc, int bcIndex, int nbc, int d, GmValueAccessor *nodeAc, QList< GmMatrix > &surfaces, QList< GmVector > &nodesSurf) const
 
virtual void nodeToSurfaceSearch (QList< GmMatrix > &surfMaster, QList< GmMatrix > &surfSlave, QList< GmVector > nodesSurf1, QList< GmVector > nodesSurf2, QList< int > &nodesSlave, QList< GmMatrix > &nodesMaster) const
 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.
 
virtual void coordinatesGlobal (GmValueAccessor *nodeAcc, GmValueAccessor *uAcc, QList< double > &slaveCoordinates, QList< double > &masterCoordinates, QList< int > &nodesSlave, QList< GmMatrix > &nodesMaster)
 
virtual void calVectors (QList< int > &nodesSlave, QList< GmMatrix > &nodesMaster, GmValueAccessor *nodeAcc, GmValueAccessor *uAcc, GmVector &lengthBorder, GmVector &xi_c, GmVector &impVec, GmVector &slipVec, bool &hasContact)
 
virtual void contactForce (GmValueAccessor *nodeAcc, GmValueAccessor *uAcc, QList< int > nodesSlave, QList< GmMatrix > nodesMaster, GmVector lengthBorder, GmVector xi_c, GmVector impVec, GmVector slipVec, double Kn, double Ks, double muAc, QList< GmMatrix > &Fc)
 
virtual void contactMatrix (GmValueAccessor *nodeAcc, GmValueAccessor *uAcc, QList< int > nodesSlave, QList< GmMatrix > nodesMaster, GmVector lengthBorder, GmVector xi_c, GmVector impVec, GmVector slipVec, double Kn, double Ks, double muAc, QList< GmMatrix > &Kc)
 
virtual void contactNodes (GmValueAccessor *nodeAcc, GmValueAccessor *uAcc, QList< int > nodesSlave, QList< GmMatrix > nodesMaster, GmVector impVec, QList< int > &nodesInContact, QList< GmVector > &dofMatrix)
 
virtual void translateMatrix (GmVector impVec, QList< int > nodesSlave, QList< GmMatrix > nodesMaster, QList< int > nodesInContact, QList< GmMatrix > Kc, GmMatrix &Kcc, QList< GmVector > &dofMatrix)
 
virtual void translateContactForce (GmVector impVec, QList< int > nodesSlave, QList< GmMatrix > nodesMaster, QList< int > nodesInContact, QList< GmMatrix > Fc, GmMatrix &Fcc, QList< GmVector > &dofMatrix)
 

Member Function Documentation

◆ fillBorderNodeCoordinates()

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

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: