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

Request helper for writing COO link relations, supporting FutureEntity linkers. More...

#include <NgpModRequests.hpp>

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

Public Types

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

Public Member Functions

Constructors / Destructors
 NgpRequestLinkRelationsT ()=default
void initialize ()
 NgpRequestLinkRelationsT (const NgpRequestLinkRelationsT &)=default
NgpRequestLinkRelationsToperator= (const NgpRequestLinkRelationsT &)=default
 NgpRequestLinkRelationsT (NgpRequestLinkRelationsT &&)=default
NgpRequestLinkRelationsToperator= (NgpRequestLinkRelationsT &&)=default
 ~NgpRequestLinkRelationsT ()=default
Control plane (HOST only)
void activate_host ()
void activate_device ()
void sync ()
Actions
unsigned id () const noexcept
ticket_issuer_ttickets () const noexcept
void request (size_t ticket, variant< stk::mesh::Entity, FutureEntity > linker, variant< stk::mesh::Entity, FutureEntity > linked_entity, unsigned link_ordinal) const
 Record a COO link relation request.

Mod cycle management

template<typename>
class NgpModRequestsT
void reset ()
size_t finalize_count ()

Detailed Description

template<typename NgpMemSpace>
class mundy::mesh::NgpRequestLinkRelationsT< NgpMemSpace >

This class mirrors NgpRequestConnectionsT but targets LinkData::coo_data().declare_relation() rather than bulk_data.declare_relation(). The key use case is "I am requesting a new link entity, and I want to record that its linked-entity slots should be filled once it exists." Both the linker and the linked entity may be FutureEntity handles.

COO writes do not require an open modification cycle, so these requests are processed after NgpModRequestsT::process_requests() closes the modification cycle — entities are valid at that point and the write is mod-cycle-free.

Member Typedef Documentation

◆ memory_space

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

◆ ticket_issuer_t

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

◆ control_space

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

Constructor & Destructor Documentation

◆ NgpRequestLinkRelationsT() [1/3]

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

◆ NgpRequestLinkRelationsT() [2/3]

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

◆ NgpRequestLinkRelationsT() [3/3]

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

◆ ~NgpRequestLinkRelationsT()

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

Member Function Documentation

◆ initialize()

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

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ activate_host()

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

◆ activate_device()

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

◆ sync()

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

◆ id()

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

◆ tickets()

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

◆ request()

template<typename NgpMemSpace>
void mundy::mesh::NgpRequestLinkRelationsT< NgpMemSpace >::request ( size_t ticket,
variant< stk::mesh::Entity, FutureEntity > linker,
variant< stk::mesh::Entity, FutureEntity > linked_entity,
unsigned link_ordinal ) const
inline
Parameters
ticketTicket claimed from tickets().claim().
linkerThe link entity (real or future).
linked_entityThe entity to connect at link_ordinal (real or future).
link_ordinalCOO ordinal slot (0 .. dimensionality-1).

◆ reset()

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

◆ finalize_count()

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

◆ NgpModRequestsT

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