OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > Struct Template Reference

An object holding data for a contact which is described analog to Nassauer and Kuna (2013) More...

#include <particleContact.h>

+ Inheritance diagram for olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >:
+ Collaboration diagram for olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >:

Public Member Functions

 ParticleContactArbitraryFromOverlapVolume ()
 Constructor.
 
 ParticleContactArbitraryFromOverlapVolume (const std::array< std::size_t, 2 > &particleIDs)
 Constructor.
 
 ParticleContactArbitraryFromOverlapVolume (const ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > &pc)
 Copy Constructor.
 
 ParticleContactArbitraryFromOverlapVolume (ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > &&pc)
 Move Constructor.
 
constexpr const std::array< PhysR< T, D >, 2 > & getParticlePositions () const
 Read access to particle positions.
 
constexpr const PhysR< T, D > & getParticlePosition (const std::size_t &id) const
 Return particle position.
 
constexpr const PhysR< T, D > & getMin () const
 Read access to min.
 
constexpr const PhysR< T, D > & getMax () const
 Read access to max.
 
constexpr const std::array< std::size_t, 2 > & getIDs () const
 Read access to particle IDs.
 
constexpr const T getDampingFactor () const
 Read access to damping factor.
 
constexpr const int & getResponsibleRank () const
 Read access to the responsible rank.
 
constexpr void setParticlePositions (const std::array< PhysR< T, D >, 2 > &positions)
 Set particle positions.
 
constexpr void setParticlePosition (const PhysR< T, D > &position, const std::size_t &id)
 Set position of specific particle.
 
constexpr void setDampingFactor (const T dampingFactor)
 Set damping factor for contact.
 
constexpr void setDampingFactorFromInitialVelocity (const T coefficientOfRestitution, const T initialRelativeVelocityMagnitude)
 Set damping factor from the magnitude of the initial relative impact velocity in direction of contact normal and the wanted coefficient of restitution.
 
constexpr void setResponsibleRank (const int &rank)
 Set processor that is responsible for contact treatment.
 
constexpr void resetMinMax ()
 Reset min and max to default values.
 
constexpr void updateMinMax (const PhysR< T, D > &positionInsideTheContact)
 Update min and max with given position inside the contact.
 
constexpr void increaseMinMax (const Vector< T, D > &increaseBy)
 Increase bounding box size.
 
constexpr void combineWith (ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > &pc)
 Combining two contacts, if the particle ids are the same.
 
constexpr bool isEmpty () const
 Returns if contact holds data.
 
constexpr bool isNew () const
 Returns if the contact is a new contact.
 
constexpr void isNew (const bool newContact)
 Sets 'isNew'.
 
constexpr bool isParticlePositionUpdated () const
 Returns if the particle position is up-to-date.
 
constexpr void setParticlePositionUpdated (bool updated)
 
ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > & operator= (const ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > &pc)
 Copy assignment.
 
ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > & operator= (ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > &&pc)
 Move assignment.
 
std::size_t serialize (std::uint8_t *buffer)
 Serialize contact data.
 
std::size_t deserialize (std::uint8_t *buffer)
 Deserialize contact data and save in object.
 
void print ()
 Print relevant quantities.
 
- Public Member Functions inherited from olb::particles::contact::ParticleContact< D >
const std::vector< unsigned int > indicesDim ({0, 1})
 
const std::vector< unsigned int > indicesDim ({0, 1, 2})
 

Static Public Member Functions

static constexpr std::size_t getSerialSize ()
 Get serial size.
 

Additional Inherited Members

- Static Public Attributes inherited from olb::particles::contact::ParticleContact< D >
static const std::vector< unsigned int > indicesDim
 
static const std::vector< unsigned int > indicesPart
 
static const std::vector< unsigned int > indicesSingle
 

Detailed Description

template<typename T, unsigned D, bool CONVEX = true>
struct olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >

An object holding data for a contact which is described analog to Nassauer and Kuna (2013)

Definition at line 61 of file particleContact.h.

Constructor & Destructor Documentation

◆ ParticleContactArbitraryFromOverlapVolume() [1/4]

template<typename T , unsigned D, bool CONVEX>
olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::ParticleContactArbitraryFromOverlapVolume ( )

Constructor.

Definition at line 36 of file particleContact.hh.

◆ ParticleContactArbitraryFromOverlapVolume() [2/4]

template<typename T , unsigned D, bool CONVEX>
olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::ParticleContactArbitraryFromOverlapVolume ( const std::array< std::size_t, 2 > & particleIDs)

Constructor.

Definition at line 42 of file particleContact.hh.

45 : ids(sortParticleIDs(particleIDs))
46{
48}
std::array< std::size_t, 2 > sortParticleIDs(const std::array< std::size_t, 2 > &ids)
constexpr void resetMinMax()
Reset min and max to default values.

References olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::resetMinMax().

+ Here is the call graph for this function:

◆ ParticleContactArbitraryFromOverlapVolume() [3/4]

◆ ParticleContactArbitraryFromOverlapVolume() [4/4]

template<typename T , unsigned D, bool CONVEX>
olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::ParticleContactArbitraryFromOverlapVolume ( ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > && pc)

Move Constructor.

Definition at line 66 of file particleContact.hh.

69{
70 min = std::move(pc.min);
71 max = std::move(pc.max);
72 ids = std::move(pc.ids);
73 particlePositions = std::move(pc.particlePositions);
74 particlePositionUpdated = std::move(pc.particlePositionUpdated);
75 dampingFactor = std::move(pc.dampingFactor);
76 newContact = std::move(pc.newContact);
77 responsibleRank = std::move(pc.responsibleRank);
78}

Member Function Documentation

◆ combineWith()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::combineWith ( ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > & pc)
constexpr

Combining two contacts, if the particle ids are the same.

Definition at line 211 of file particleContact.hh.

213{
216 ids)) {
217 if(newContact[0] == pc.isNew()) {
218 newContact[0] = newContact[0] && pc.isNew();
219
220 // Determine bounding box of combined overlap area
221 for (unsigned iD = 0; iD < D; ++iD) {
222 min[iD] = util::min(min[iD], pc.getMin()[iD]);
223 max[iD] = util::max(max[iD], pc.getMax()[iD]);
224 }
225 // The damping factors should be either the same or one is -1 and the other has the correct value which is > 0
226 dampingFactor[0] = util::max(dampingFactor[0], pc.getDampingFactor());
227 responsibleRank[0] = util::min(responsibleRank[0], pc.getResponsibleRank());
228 particlePositionUpdated[0] =
229 particlePositionUpdated[0] || pc.isParticlePositionUpdated();
230 if (!particlePositionUpdated[0] && pc.isParticlePositionUpdated()) {
231 particlePositions = pc.getParticlePositions();
232 }
233 }
234 else {
235 if(!pc.isNew()) {
236 min = pc.getMin();
237 max = pc.getMax();
238 dampingFactor[0] = pc.getDampingFactor();
239 particlePositionUpdated[0] = pc.isParticlePositionUpdated();
240 particlePositions = pc.getParticlePositions();
241 }
242 responsibleRank[0] = util::min(responsibleRank[0], pc.getResponsibleRank());
243 newContact[0] = newContact[0] && pc.isNew();
244 }
245
246 // Ignore second contact by resetting it
247 pc.resetMinMax();
248 }
249}
bool particleContactConsistsOfIDs(PARTICLECONTACTTYPE &particleContact, const std::array< size_t, 2 > &ids)
Expr min(Expr a, Expr b)
Definition expr.cpp:249
Expr max(Expr a, Expr b)
Definition expr.cpp:245

References olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::getDampingFactor(), olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::getMax(), olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::getMin(), olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::getParticlePositions(), olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::getResponsibleRank(), olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::isNew(), olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::isParticlePositionUpdated(), olb::util::max(), olb::util::min(), olb::particles::contact::particleContactConsistsOfIDs(), and olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::resetMinMax().

+ Here is the call graph for this function:

◆ deserialize()

template<typename T , unsigned D, bool CONVEX>
std::size_t olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::deserialize ( std::uint8_t * buffer)

Deserialize contact data and save in object.

Definition at line 380 of file particleContact.hh.

382{
383 return processWithCommunicatables(
384 [&](auto& communicatablePositions, auto& communicatableMin,
385 auto& communicatableMax, auto& communicatableIDs,
386 auto& communicatableDamping,
387 auto& communicatableParticlePositionUpdated,
388 auto& communicatableIsNew, auto& communicatableRank) {
389 std::size_t serialIdx =
390 communicatablePositions.deserialize(this->indicesPart, buffer);
391 serialIdx +=
392 communicatableMin.deserialize(this->indicesDim, &buffer[serialIdx]);
393 serialIdx +=
394 communicatableMax.deserialize(this->indicesDim, &buffer[serialIdx]);
395 serialIdx += communicatableIDs.deserialize(this->indicesPart,
396 &buffer[serialIdx]);
397 serialIdx += communicatableDamping.deserialize(this->indicesSingle,
398 &buffer[serialIdx]);
399 serialIdx += communicatableParticlePositionUpdated.deserialize(
400 this->indicesSingle, &buffer[serialIdx]);
401 serialIdx += communicatableIsNew.deserialize(this->indicesSingle,
402 &buffer[serialIdx]);
403 serialIdx += communicatableRank.deserialize(this->indicesSingle,
404 &buffer[serialIdx]);
405
406 return serialIdx;
407 });
408}
static const std::vector< unsigned int > indicesDim
static const std::vector< unsigned int > indicesSingle
static const std::vector< unsigned int > indicesPart

◆ getDampingFactor()

template<typename T , unsigned D, bool CONVEX>
const T olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::getDampingFactor ( ) const
constexpr

Read access to damping factor.

Definition at line 156 of file particleContact.hh.

158{
159 return dampingFactor[0];
160}
+ Here is the caller graph for this function:

◆ getIDs()

template<typename T , unsigned D, bool CONVEX>
const std::array< std::size_t, 2 > & olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::getIDs ( ) const
constexpr

Read access to particle IDs.

Definition at line 82 of file particleContact.hh.

83{
84 return this->ids;
85}
+ Here is the caller graph for this function:

◆ getMax()

template<typename T , unsigned D, bool CONVEX>
const PhysR< T, D > & olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::getMax ( ) const
constexpr

Read access to max.

Definition at line 149 of file particleContact.hh.

150{
151 return this->max;
152}

References olb::max().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getMin()

template<typename T , unsigned D, bool CONVEX>
const PhysR< T, D > & olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::getMin ( ) const
constexpr

Read access to min.

Definition at line 142 of file particleContact.hh.

143{
144 return this->min;
145}
+ Here is the caller graph for this function:

◆ getParticlePosition()

template<typename T , unsigned D, bool CONVEX>
const PhysR< T, D > & olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::getParticlePosition ( const std::size_t & id) const
constexpr

Return particle position.

Definition at line 106 of file particleContact.hh.

108{
109 if (id == ids[0]) {
110 return particlePositions[0];
111 }
112 return particlePositions[1];
113}

◆ getParticlePositions()

template<typename T , unsigned D, bool CONVEX>
const std::array< PhysR< T, D >, 2 > & olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::getParticlePositions ( ) const
constexpr

Read access to particle positions.

Definition at line 89 of file particleContact.hh.

91{
92 return particlePositions;
93}
+ Here is the caller graph for this function:

◆ getResponsibleRank()

template<typename T , unsigned D, bool CONVEX>
const int & olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::getResponsibleRank ( ) const
constexpr

Read access to the responsible rank.

Definition at line 134 of file particleContact.hh.

136{
137 return responsibleRank[0];
138}
+ Here is the caller graph for this function:

◆ getSerialSize()

template<typename T , unsigned D, bool CONVEX = true>
static constexpr std::size_t olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::getSerialSize ( )
inlinestaticconstexpr

Get serial size.

Definition at line 165 of file particleContact.h.

165{ return serialSize; };

◆ increaseMinMax()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::increaseMinMax ( const Vector< T, D > & increaseBy)
constexpr

Increase bounding box size.

Definition at line 202 of file particleContact.hh.

204{
205 this->max += increaseBy;
206 this->min -= increaseBy;
207}

◆ isEmpty()

template<typename T , unsigned D, bool CONVEX>
bool olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::isEmpty ( ) const
constexpr

Returns if contact holds data.

Definition at line 253 of file particleContact.hh.

254{
255 for (unsigned iD = 0; iD < D; ++iD) {
256 if (min[iD] > max[iD]) {
257 return true;
258 }
259 }
260 return false;
261}
+ Here is the caller graph for this function:

◆ isNew() [1/2]

template<typename T , unsigned D, bool CONVEX>
bool olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::isNew ( ) const
constexpr

Returns if the contact is a new contact.

Definition at line 265 of file particleContact.hh.

266{
267 return newContact[0];
268}
+ Here is the caller graph for this function:

◆ isNew() [2/2]

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::isNew ( const bool newContact)
constexpr

Sets 'isNew'.

Definition at line 271 of file particleContact.hh.

273{
274 this->newContact[0] = newContact;
275}

◆ isParticlePositionUpdated()

template<typename T , unsigned D, bool CONVEX>
bool olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::isParticlePositionUpdated ( ) const
constexpr

Returns if the particle position is up-to-date.

Definition at line 279 of file particleContact.hh.

280{
281 return particlePositionUpdated[0];
282}
+ Here is the caller graph for this function:

◆ operator=() [1/2]

template<typename T , unsigned D, bool CONVEX>
ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > & olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::operator= ( const ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > & pc)

◆ operator=() [2/2]

template<typename T , unsigned D, bool CONVEX>
ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > & olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::operator= ( ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX > && pc)

Move assignment.

Definition at line 310 of file particleContact.hh.

312{
313 min = std::move(pc.min);
314 max = std::move(pc.max);
315 ids = std::move(pc.ids);
316 particlePositions = std::move(pc.particlePositions);
317 particlePositionUpdated = std::move(pc.particlePositionUpdated);
318 dampingFactor = std::move(pc.dampingFactor);
319 newContact = std::move(pc.newContact);
320 responsibleRank = std::move(pc.responsibleRank);
321
322 return *this;
323}

◆ print()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::print ( )

Print relevant quantities.

Definition at line 411 of file particleContact.hh.

412{
413 OstreamManager clout(std::cout, "ParticleContact");
414 clout.setMultiOutput(true);
415 int rank = singleton::mpi().getRank();
416 if (rank == responsibleRank[0]) {
417 clout << "Min=" << this->min << ", Max=" << this->max << std::endl;
418 clout << "IDs=" << this->ids << ", DampingFactor=" << dampingFactor[0]
419 << std::endl;
420 clout << "Positions=" << particlePositions << std::endl;
421 }
422 clout.setMultiOutput(false);
423}
int getRank() const
Returns the process ID.
MpiManager & mpi()

References olb::singleton::MpiManager::getRank(), olb::singleton::mpi(), and olb::OstreamManager::setMultiOutput().

+ Here is the call graph for this function:

◆ resetMinMax()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::resetMinMax ( )
constexpr

Reset min and max to default values.

Definition at line 182 of file particleContact.hh.

183{
184 for (unsigned iD = 0; iD < D; ++iD) {
185 min[iD] = std::numeric_limits<olb::BaseType<T>>::max();
186 max[iD] = -std::numeric_limits<olb::BaseType<T>>::max();
187 }
188 particlePositionUpdated[0] = false;
189}

References olb::max().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ serialize()

template<typename T , unsigned D, bool CONVEX>
std::size_t olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::serialize ( std::uint8_t * buffer)

Serialize contact data.

Definition at line 348 of file particleContact.hh.

350{
351 return processWithCommunicatables(
352 [&](auto& communicatablePositions, auto& communicatableMin,
353 auto& communicatableMax, auto& communicatableIDs,
354 auto& communicatableDamping,
355 auto& communicatableParticlePositionUpdated,
356 auto& communicatableIsNew, auto& communicatableRank) {
357 std::size_t serialIdx =
358 communicatablePositions.serialize(this->indicesPart, buffer);
359 serialIdx +=
360 communicatableMin.serialize(this->indicesDim, &buffer[serialIdx]);
361 serialIdx +=
362 communicatableMax.serialize(this->indicesDim, &buffer[serialIdx]);
363 serialIdx +=
364 communicatableIDs.serialize(this->indicesPart, &buffer[serialIdx]);
365 serialIdx += communicatableDamping.serialize(this->indicesSingle,
366 &buffer[serialIdx]);
367 serialIdx += communicatableParticlePositionUpdated.serialize(
368 this->indicesSingle, &buffer[serialIdx]);
369 serialIdx += communicatableIsNew.serialize(this->indicesSingle,
370 &buffer[serialIdx]);
371 serialIdx += communicatableRank.serialize(this->indicesSingle,
372 &buffer[serialIdx]);
373
374 return serialIdx;
375 });
376}

◆ setDampingFactor()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::setDampingFactor ( const T dampingFactor)
constexpr

Set damping factor for contact.

Definition at line 164 of file particleContact.hh.

166{
167 dampingFactor[0] = newDampingFactor;
168}

◆ setDampingFactorFromInitialVelocity()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::setDampingFactorFromInitialVelocity ( const T coefficientOfRestitution,
const T initialRelativeVelocityMagnitude )
constexpr

Set damping factor from the magnitude of the initial relative impact velocity in direction of contact normal and the wanted coefficient of restitution.

Definition at line 171 of file particleContact.hh.

175{
177 coefficientOfRestitution, initialRelativeVelocityMagnitude));
178}
constexpr T evalDampingFactor(const T coefficientOfRestitution, const T initialRelativeVelocityMagnitude)
Calculates the damping factor according to Carvalho & Martins (2019) (10.1016/j.mechmachtheory....
constexpr void setDampingFactor(const T dampingFactor)
Set damping factor for contact.

References olb::particles::contact::evalDampingFactor().

+ Here is the call graph for this function:

◆ setParticlePosition()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::setParticlePosition ( const PhysR< T, D > & position,
const std::size_t & id )
constexpr

Set position of specific particle.

Definition at line 117 of file particleContact.hh.

119{
120 particlePositions[id] = position;
121 particlePositionUpdated[0] = true;
122}

◆ setParticlePositions()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::setParticlePositions ( const std::array< PhysR< T, D >, 2 > & positions)
constexpr

Set particle positions.

Definition at line 97 of file particleContact.hh.

99{
100 particlePositions = positions;
101 particlePositionUpdated[0] = true;
102}

◆ setParticlePositionUpdated()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::setParticlePositionUpdated ( bool updated)
constexpr

Definition at line 286 of file particleContact.hh.

287{
288 particlePositionUpdated[0] = updated;
289}

◆ setResponsibleRank()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::setResponsibleRank ( const int & rank)
constexpr

Set processor that is responsible for contact treatment.

Definition at line 126 of file particleContact.hh.

128{
129 responsibleRank[0] = rank;
130}
+ Here is the caller graph for this function:

◆ updateMinMax()

template<typename T , unsigned D, bool CONVEX>
void olb::particles::contact::ParticleContactArbitraryFromOverlapVolume< T, D, CONVEX >::updateMinMax ( const PhysR< T, D > & positionInsideTheContact)
constexpr

Update min and max with given position inside the contact.

Definition at line 193 of file particleContact.hh.

195{
196 particles::contact::updateMinMax(this->min, this->max,
197 positionInsideTheContact);
198}
void updateMinMax(PhysR< T, D > &min, PhysR< T, D > &max, const PhysR< T, D > &pos)

References olb::particles::contact::updateMinMax().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

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