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

Abstract base class for contact search algorithms. More...

#include <contactsearch.h>

Inheritance diagram for oofem::ContactSearchAlgorithm:
Collaboration diagram for oofem::ContactSearchAlgorithm:

Public Member Functions

 ContactSearchAlgorithm (Domain *d)
 ~ContactSearchAlgorithm ()
virtual void createContactPairs ()=0
 Creates initial contact pairs based on the current configuration.
virtual void updateContactPairs (TimeStep *tStep)=0
 Updates previously created contact pairs for the current time step.
std::vector< std::unique_ptr< ContactPair > > & getContactPairs ()
 Returns the internally stored list of contact pairs.
const std::vector< std::unique_ptr< ContactPair > > & getContactPairs () const
 Returns the internally stored list of contact pairs (const overload).

Protected Attributes

Domaindomain
std::vector< std::unique_ptr< ContactPair > > contactPairs

Detailed Description

Abstract base class for contact search algorithms.

The ContactSearch class defines a common interface for algorithms responsible for detecting potential contact interactions between contact surfaces. It provides the functionality required to identify candidate contact pairs based on geometric proximity, bounding-box intersection, or other search strategies.

Concrete implementations may employ different search techniques, such as brute-force search, spatial partitioning, hierarchical bounding volumes, or grid-based methods. The output of a contact search is typically a set of potential contact pairs that can be further processed by contact enforcement algorithms.

This class focuses solely on contact detection and does not prescribe any particular contact formulation or constraint enforcement method.

Definition at line 67 of file contactsearch.h.

Constructor & Destructor Documentation

◆ ContactSearchAlgorithm()

oofem::ContactSearchAlgorithm::ContactSearchAlgorithm ( Domain * d)
inline

◆ ~ContactSearchAlgorithm()

oofem::ContactSearchAlgorithm::~ContactSearchAlgorithm ( )
inline

Definition at line 75 of file contactsearch.h.

Member Function Documentation

◆ createContactPairs()

virtual void oofem::ContactSearchAlgorithm::createContactPairs ( )
pure virtual

Creates initial contact pairs based on the current configuration.

Performs broad-phase (and possibly narrow-phase) detection to produce a set of candidate contact pairs used by the contact boundary condition.

Implemented in oofem::ContactSearchAlgorithm_Surface2FESurface.

◆ getContactPairs() [1/2]

std::vector< std::unique_ptr< ContactPair > > & oofem::ContactSearchAlgorithm::getContactPairs ( )
inline

Returns the internally stored list of contact pairs.

Definition at line 96 of file contactsearch.h.

References contactPairs.

◆ getContactPairs() [2/2]

const std::vector< std::unique_ptr< ContactPair > > & oofem::ContactSearchAlgorithm::getContactPairs ( ) const
inline

Returns the internally stored list of contact pairs (const overload).

Definition at line 100 of file contactsearch.h.

References contactPairs.

◆ updateContactPairs()

virtual void oofem::ContactSearchAlgorithm::updateContactPairs ( TimeStep * tStep)
pure virtual

Updates previously created contact pairs for the current time step.

Typical responsibilities include re-projection, pair filtering, and updating kinematic measures (gap, normals, tangents) as the configuration changes.

Parameters
tStepCurrent time step.

Implemented in oofem::ContactSearchAlgorithm_Surface2FESurface, oofem::ContactSearchAlgorithm_Surface2FESurface_2d, oofem::ContactSearchAlgorithm_Surface2FESurface_3d, and oofem::ContactSearchAlgorithm_Surface2FESurface_3d_SweepAndPrune.

Member Data Documentation

◆ contactPairs

◆ domain

Domain* oofem::ContactSearchAlgorithm::domain
protected

Definition at line 70 of file contactsearch.h.

Referenced by ContactSearchAlgorithm().


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

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