Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::mesh::NgpRequestConnectionsT< NgpMemSpace > Class Template Reference

#include <NgpModRequests.hpp>

Inheritance diagram for mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >:
[legend]

Public Types

using memory_space = NgpMemSpace
using ticket_issuer_t = TicketIssuer<NgpMemSpace>
using control_space = Kokkos::SharedSpace

Public Member Functions

Constructors / Destructors
 NgpRequestConnectionsT ()=default
 Default constructor. Call initialize() before use.
void initialize ()
 NgpRequestConnectionsT (const NgpRequestConnectionsT &)=default
NgpRequestConnectionsToperator= (const NgpRequestConnectionsT &)=default
 NgpRequestConnectionsT (NgpRequestConnectionsT &&)=default
NgpRequestConnectionsToperator= (NgpRequestConnectionsT &&)=default
 ~NgpRequestConnectionsT ()=default
Control plane (HOST only)
void activate_host ()
 Sets the active memory space to host and synchronizes if needed. While active, both request and the ticket issuer will throw if used from device.
void activate_device ()
 Sets the active memory space to host and synchronizes if needed. While active, both request and the ticket issuer will throw if used from host.
void sync ()
 Synchronize between active and inactive memory spaces.
Actions
unsigned id () const noexcept
 Get our unique index among multiple request helpers.
ticket_issuer_ttickets () const noexcept
 Get the ticket issuer for entity requests.
FutureConnection request (size_t ticket, variant< stk::mesh::Entity, FutureEntity > from_entity, variant< stk::mesh::Entity, FutureEntity > to_entity, const stk::mesh::RelationIdentifier ordinal) const
 Record a connection between two entities with the given ordinal.
Mod cycle management
void reset ()
 Clears all internal request data to prepare for a fresh modification cycle.
size_t finalize_count ()
 Finalize counts for this request class. Users may no longer claim tickets after this call.

Friends

Friends <3
template<typename>
class NgpModRequestsT

Member Typedef Documentation

◆ memory_space

template<typename NgpMemSpace>
using mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::memory_space = NgpMemSpace

◆ ticket_issuer_t

template<typename NgpMemSpace>
using mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::ticket_issuer_t = TicketIssuer<NgpMemSpace>

◆ control_space

template<typename NgpMemSpace>
using mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::control_space = Kokkos::SharedSpace

Constructor & Destructor Documentation

◆ NgpRequestConnectionsT() [1/3]

template<typename NgpMemSpace>
mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::NgpRequestConnectionsT ( )
default

◆ NgpRequestConnectionsT() [2/3]

template<typename NgpMemSpace>
mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::NgpRequestConnectionsT ( const NgpRequestConnectionsT< NgpMemSpace > & )
default

◆ NgpRequestConnectionsT() [3/3]

template<typename NgpMemSpace>
mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::NgpRequestConnectionsT ( NgpRequestConnectionsT< NgpMemSpace > && )
default

◆ ~NgpRequestConnectionsT()

template<typename NgpMemSpace>
mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::~NgpRequestConnectionsT ( )
default

Member Function Documentation

◆ initialize()

template<typename NgpMemSpace>
void mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::initialize ( )
inline

◆ operator=() [1/2]

template<typename NgpMemSpace>
NgpRequestConnectionsT & mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::operator= ( const NgpRequestConnectionsT< NgpMemSpace > & )
default

◆ operator=() [2/2]

template<typename NgpMemSpace>
NgpRequestConnectionsT & mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::operator= ( NgpRequestConnectionsT< NgpMemSpace > && )
default

◆ activate_host()

template<typename NgpMemSpace>
void mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::activate_host ( )
inline

◆ activate_device()

template<typename NgpMemSpace>
void mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::activate_device ( )
inline

◆ sync()

template<typename NgpMemSpace>
void mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::sync ( )
inline

◆ id()

template<typename NgpMemSpace>
unsigned mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::id ( ) const
inlinenoexcept

◆ tickets()

template<typename NgpMemSpace>
ticket_issuer_t & mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::tickets ( ) const
inlinenoexcept

The lifetime of the tickets for this class should not exceed the class itself

◆ request()

template<typename NgpMemSpace>
FutureConnection mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::request ( size_t ticket,
variant< stk::mesh::Entity, FutureEntity > from_entity,
variant< stk::mesh::Entity, FutureEntity > to_entity,
const stk::mesh::RelationIdentifier ordinal ) const
inline

The mapping ( from_entity , ordinal ) -> to_entity must be unique.

Both entities may be either real entities or future entities.

Note
[IMPORTANT] Relation-declarations must be symmetric across all sharers of the involved entities within a modification cycle. For now, all future entities are owned by the current process.

◆ reset()

template<typename NgpMemSpace>
void mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::reset ( )
inline

Instead of resizing, we'll just zero out the existing requests to avoid reallocations.

◆ finalize_count()

template<typename NgpMemSpace>
size_t mundy::mesh::NgpRequestConnectionsT< NgpMemSpace >::finalize_count ( )
inline

◆ NgpModRequestsT

template<typename NgpMemSpace>
template<typename>
friend class NgpModRequestsT
friend