OOFEM 3.0
Loading...
Searching...
No Matches
oofem::FEContactPoint Class Referenceabstract

#include <contactpoint.h>

Inheritance diagram for oofem::FEContactPoint:
Collaboration diagram for oofem::FEContactPoint:

Public Member Functions

 FEContactPoint (FEContactSurface *cs, int ceId, int sd)
 ~FEContactPoint ()
void computeNmatrix (FloatMatrix &answer) override
 Computes the interpolation matrix (N-matrix) for this contact point.
void compute_dNdxi_matrix (FloatMatrix &Bs, int i) override
 Computes derivative of shape functions w.r.t. the i-th local surface parameter.
FloatArray giveNormalVector () override
 Returns the surface normal vector at the contact point.
void computeVectorOf (ValueModeType mode, TimeStep *tStep, FloatArray &answer) override
 Computes a vector quantity of the contact point for a given value mode.
void computeCurvature (FloatMatrix &G, const FloatArray &normal, TimeStep *tStep) override
 Computes curvature-related surface quantities at this contact point.
bool giveLocationArray (IntArray &locationArray, const IntArray &dofIDArry, const UnknownNumberingScheme &s) const override
 Builds a location array for assembling quantities related to this contact point.
void giveUnknownVector (FloatArray &answer, const IntArray &dofMask, ValueModeType mode, TimeStep *tStep, bool padding=false) override
 Extracts the unknown vector associated with this contact point.
void giveUpdatedCoordinates (FloatArray &coords, TimeStep *tStep) override
 Returns updated coordinates of the contact point for the given time step.
bool inContact () override
 Returns whether this contact point is currently in contact.
const FloatArraygiveLocalCoordinates () override=0
 Returns the local (parametric) coordinates of the contact point.
FloatArray giveGlobalCoordinates () override=0
 Returns the current global coordinates of the contact point.
FEInterpolationgiveInterpolation ()
int giveContactElementId ()
void setContactElementId (int ceId)
Public Member Functions inherited from oofem::ContactPoint
 ContactPoint ()
 ~ContactPoint ()
virtual void updateYourself (TimeStep *tStep)
 Called to update internal state of the contact point for the time step.
virtual void init ()
 Initializes the contact point.
int giveSurfaceDimension ()
 Returns the surface dimension associated with this contact point.

Protected Attributes

int contactElementId
std::unique_ptr< FEContactSurfacecontactSurface
Protected Attributes inherited from oofem::ContactPoint
int surface_dimension

Detailed Description

Definition at line 189 of file contactpoint.h.

Constructor & Destructor Documentation

◆ FEContactPoint()

◆ ~FEContactPoint()

oofem::FEContactPoint::~FEContactPoint ( )
inline

Definition at line 197 of file contactpoint.h.

Member Function Documentation

◆ compute_dNdxi_matrix()

void oofem::FEContactPoint::compute_dNdxi_matrix ( FloatMatrix & Bs,
int i )
overridevirtual

Computes derivative of shape functions w.r.t. the i-th local surface parameter.

Parameters
BsOutput derivative matrix.
iLocal coordinate index.

Implements oofem::ContactPoint.

Definition at line 68 of file contactpoint.C.

References oofem::FloatMatrix::at(), oofem::FloatMatrix::beUnitMatrix(), giveInterpolation(), giveLocalCoordinates(), oofem::FloatMatrix::giveNumberOfRows(), oofem::FloatMatrix::resize(), oofem::FloatMatrix::setSubMatrix(), and oofem::ContactPoint::surface_dimension.

◆ computeCurvature()

void oofem::FEContactPoint::computeCurvature ( FloatMatrix & G,
const FloatArray & normal,
TimeStep * tStep )
overridevirtual

Computes curvature-related surface quantities at this contact point.

Parameters
GOutput curvature matrix/tensor representation.
normalCurrent surface normal used for curvature evaluation.
tStepCurrent time step.

Implements oofem::ContactPoint.

Definition at line 96 of file contactpoint.C.

References oofem::FloatArray::add(), oofem::FloatMatrix::at(), contactElementId, contactSurface, oofem::FloatArray::dotProduct(), giveInterpolation(), giveLocalCoordinates(), oofem::FEIElementDeformedGeometryWrapper::giveVertexCoordinates(), oofem::FloatMatrix::resize(), and oofem::ContactPoint::surface_dimension.

◆ computeNmatrix()

void oofem::FEContactPoint::computeNmatrix ( FloatMatrix & answer)
overridevirtual

Computes the interpolation matrix (N-matrix) for this contact point.

The N-matrix maps element/nodal DOFs to values at the contact point location.

Parameters
answerOutput matrix.

Implements oofem::ContactPoint.

Definition at line 60 of file contactpoint.C.

References contactElementId, contactSurface, and giveLocalCoordinates().

◆ computeVectorOf()

void oofem::FEContactPoint::computeVectorOf ( ValueModeType u,
TimeStep * tStep,
FloatArray & answer )
overridevirtual

Computes a vector quantity of the contact point for a given value mode.

Typically used to retrieve displacement/velocity/etc. at the point.

Parameters
uValue mode/quantity selector.
tStepCurrent time step.
answerOutput vector.

Implements oofem::ContactPoint.

Definition at line 126 of file contactpoint.C.

References contactElementId, and contactSurface.

◆ giveContactElementId()

int oofem::FEContactPoint::giveContactElementId ( )
inline

Definition at line 221 of file contactpoint.h.

References contactElementId.

◆ giveGlobalCoordinates()

FloatArray oofem::FEContactPoint::giveGlobalCoordinates ( )
overridepure virtual

Returns the current global coordinates of the contact point.

Returns
Global position vector.

Implements oofem::ContactPoint.

Implemented in oofem::FEContactPoint_Master, and oofem::FEContactPoint_Slave.

◆ giveInterpolation()

◆ giveLocalCoordinates()

const FloatArray & oofem::FEContactPoint::giveLocalCoordinates ( )
overridepure virtual

Returns the local (parametric) coordinates of the contact point.

The returned reference must remain valid while the ContactPoint exists.

Returns
Local coordinates (e.g., ξ,η on a face/segment).

Implements oofem::ContactPoint.

Implemented in oofem::FEContactPoint_Master, and oofem::FEContactPoint_Slave.

Referenced by compute_dNdxi_matrix(), computeCurvature(), computeNmatrix(), giveNormalVector(), and giveUpdatedCoordinates().

◆ giveLocationArray()

bool oofem::FEContactPoint::giveLocationArray ( IntArray & locationArray,
const IntArray & dofIDArry,
const UnknownNumberingScheme & s ) const
overridevirtual

Builds a location array for assembling quantities related to this contact point.

Parameters
locationArrayOutput location array.
dofIDArryRequested DOF IDs/mask.
sNumbering scheme.
Returns
True if the location array could be built, false otherwise.

Implements oofem::ContactPoint.

Definition at line 143 of file contactpoint.C.

References contactElementId, and contactSurface.

◆ giveNormalVector()

FloatArray oofem::FEContactPoint::giveNormalVector ( )
overridevirtual

Returns the surface normal vector at the contact point.

Returns
Normal vector.

Implements oofem::ContactPoint.

Definition at line 89 of file contactpoint.C.

References contactElementId, contactSurface, and giveLocalCoordinates().

◆ giveUnknownVector()

void oofem::FEContactPoint::giveUnknownVector ( FloatArray & answer,
const IntArray & dofMask,
ValueModeType mode,
TimeStep * tStep,
bool padding = false )
overridevirtual

Extracts the unknown vector associated with this contact point.

Used to obtain values (e.g. displacements) corresponding to a given DOF mask and value mode, with optional padding.

Parameters
answerOutput vector.
dofMaskDOF IDs/mask.
modeValue mode (current/incremental/etc.).
tStepCurrent time step.
paddingIf true, pads missing entries to match requested layout.

Implements oofem::ContactPoint.

Definition at line 155 of file contactpoint.C.

References contactElementId, and contactSurface.

◆ giveUpdatedCoordinates()

void oofem::FEContactPoint::giveUpdatedCoordinates ( FloatArray & coords,
TimeStep * tStep )
overridevirtual

Returns updated coordinates of the contact point for the given time step.

Parameters
coordsOutput coordinates.
tStepCurrent time step.

Implements oofem::ContactPoint.

Definition at line 134 of file contactpoint.C.

References contactElementId, contactSurface, giveInterpolation(), and giveLocalCoordinates().

◆ inContact()

bool oofem::FEContactPoint::inContact ( )
inlineoverridevirtual

Returns whether this contact point is currently in contact.

Returns
True if in contact, false otherwise.

Implements oofem::ContactPoint.

Definition at line 215 of file contactpoint.h.

References contactElementId.

◆ setContactElementId()

void oofem::FEContactPoint::setContactElementId ( int ceId)
inline

Definition at line 222 of file contactpoint.h.

References contactElementId.

Member Data Documentation

◆ contactElementId

◆ contactSurface


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

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011