Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F90700421
contact_neighbor_structure.hh
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Nov 3, 23:53
Size
3 KB
Mime Type
text/x-c++
Expires
Tue, Nov 5, 23:53 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
22121331
Attached To
rAKA akantu
contact_neighbor_structure.hh
View Options
/**
* @file contact_neighbor_structure.hh
* @author David Kammer <david.kammer@epfl.ch>
* @author Leonardo Snozzi <leonardo.snozzi@epfl.ch>
* @author Nicolas Richart <nicolas.richart@epfl.ch>
* @date Fri Oct 8 12:36:15 2010
*
* @brief Interface of the structure handling the neighbor lists
*
* @section LICENSE
*
* \<insert license here\>
*
*/
/* -------------------------------------------------------------------------- */
#ifndef __AKANTU_CONTACT_NEIGHBOR_STRUCTURE_HH__
#define __AKANTU_CONTACT_NEIGHBOR_STRUCTURE_HH__
/* -------------------------------------------------------------------------- */
#include "aka_common.hh"
#include "aka_vector.hh"
#include "contact_search.hh"
#include "mesh.hh"
/* -------------------------------------------------------------------------- */
__BEGIN_AKANTU__
class NeighborList {
public:
/// number of impactor nodes
UInt nb_nodes;
/// @todo check if data must be stored by element type (different surface elements)
/// list of nodes of slave surfaces near the master one
Vector<UInt> impactor_nodes;
/// neighbor facets (sparse storage)
ByElementTypeUInt facets_offset;
ByElementTypeUInt facets;
};
/* -------------------------------------------------------------------------- */
class ContactNeighborStructure {
/* ------------------------------------------------------------------------ */
/* Constructors/Destructors */
/* ------------------------------------------------------------------------ */
public:
ContactNeighborStructure(const ContactSearch & contact_search,
const Surface & master_surface,
const ContactNeighborStructureID & id = "contact_neighbor_structure_id");
virtual ~ContactNeighborStructure() {};
/* ------------------------------------------------------------------------ */
/* Methods */
/* ------------------------------------------------------------------------ */
public:
/// initialize the structure
virtual void init() = 0;
/// update the structure
virtual void update() = 0;
/// check if an update is needed
virtual bool check();
/* ------------------------------------------------------------------------ */
/* Accessors */
/* ------------------------------------------------------------------------ */
public:
/// get the neighbor list
virtual NeighborList * getNeighborList() = 0;
AKANTU_GET_MACRO(ContactSearch, contact_search, const ContactSearch &);
/* ------------------------------------------------------------------------ */
/* Class Members */
/* ------------------------------------------------------------------------ */
protected:
/// id of the object
ContactNeighborStructureID id;
/// associated contact search class
const ContactSearch & contact_search;
/// associated master surface
const Surface & master_surface;
};
__END_AKANTU__
#endif /* __AKANTU_CONTACT_NEIGHBOR_STRUCTURE_HH__ */
Event Timeline
Log In to Comment