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

#include <Aggregate.hpp>

Public Types

using NgpComponentsTuple = tuple<NgpComponents...>

Public Member Functions

Constructors
 NgpAggregate ()
 Default constructor.
 NgpAggregate (stk::mesh::NgpMesh ngp_mesh, stk::mesh::Selector selector)
 Construct an Aggregate that has no components.
 NgpAggregate (stk::mesh::NgpMesh ngp_mesh, stk::mesh::Selector selector, NgpComponentsTuple ngp_components)
 Construct an Aggregate that has the given components.
 NgpAggregate (NgpAggregate &&other)
 Default move/copy/assign constructors.
 NgpAggregate (const NgpAggregate &other)
NgpAggregateoperator= (NgpAggregate &&other)
NgpAggregateoperator= (const NgpAggregate &other)

Accessors

const stk::mesh::NgpMesh & ngp_mesh () const
const stk::mesh::BulkDatabulk_data () const
const stk::mesh::MetaDatamesh_meta_data () const
const stk::mesh::Selector & selector () const
template<typename Tag, typename NewNgpComponent>
auto add_component (NewNgpComponent new_ngp_component) const
 Add a component (fluent interface): TODO(palmerb4): If we do decide to use get_updated_ngp_aggregate with references, then this function will need removed, as Aggregates managing the lifetime of NGP components means users should construct them.
template<typename Tag, typename NewNgpComponent>
void add_component (NewNgpComponent) const
template<typename NewNgpTaggedComponent>
auto add_component (NewNgpTaggedComponent new_ngp_component) const
template<typename NewNgpTaggedComponent>
void add_component (NewNgpTaggedComponent) const
template<typename Tag>
const auto & get_component () const
 Fetch the component corresponding to the given Tag.
template<typename Tag>
const void get_component () const
template<typename Tag>
auto & get_component ()
 Fetch the component corresponding to the given Tag.
template<typename Tag>
void get_component ()
template<typename... TagsToSync>
void sync_to_device ()
 Synchronize the components marked by the given tags to the device.
template<typename... TagsToSync>
void sync_to_host ()
 Synchronize the components marked by the given tags to the host.
template<typename... TagsToModify>
void modify_on_device ()
 Mark the components marked by the given tags as modified on the device.
template<typename... TagsToModify>
void modify_on_host ()
 Mark the components marked by the given tags as modified on the host.
template<typename Tag>
decltype(auto) get (stk::mesh::FastMeshIndex entity_index)
 Get the data tagged by the given tag for the given entity index.
template<typename Tag>
void get (stk::mesh::FastMeshIndex)
template<typename Tag>
decltype(auto) get (stk::mesh::FastMeshIndex entity_index) const
 Get the data tagged by the given tag for the given entity index.
template<typename Tag>
void get (stk::mesh::FastMeshIndex) const
template<typename Tag>
decltype(auto) get (stk::mesh::Entity entity)
 Get the data tagged by the given tag for the given entity.
template<typename Tag>
void get (stk::mesh::Entity)
template<typename Tag>
decltype(auto) get (stk::mesh::Entity entity) const
 Get the data tagged by the given tag for the given entity.
template<typename Tag>
void get (stk::mesh::Entity) const
template<typename Tag>
static constexpr bool has ()
 Check if we have a component with the given Tag.

Member Typedef Documentation

◆ NgpComponentsTuple

template<typename... NgpComponents>
using mundy::mesh::NgpAggregate< NgpComponents >::NgpComponentsTuple = tuple<NgpComponents...>

Constructor & Destructor Documentation

◆ NgpAggregate() [1/5]

template<typename... NgpComponents>
mundy::mesh::NgpAggregate< NgpComponents >::NgpAggregate ( )
inline

◆ NgpAggregate() [2/5]

template<typename... NgpComponents>
mundy::mesh::NgpAggregate< NgpComponents >::NgpAggregate ( stk::mesh::NgpMesh ngp_mesh,
stk::mesh::Selector selector )
inline

◆ NgpAggregate() [3/5]

template<typename... NgpComponents>
mundy::mesh::NgpAggregate< NgpComponents >::NgpAggregate ( stk::mesh::NgpMesh ngp_mesh,
stk::mesh::Selector selector,
NgpComponentsTuple ngp_components )
inline

◆ NgpAggregate() [4/5]

template<typename... NgpComponents>
mundy::mesh::NgpAggregate< NgpComponents >::NgpAggregate ( NgpAggregate< NgpComponents > && other)
inline

◆ NgpAggregate() [5/5]

template<typename... NgpComponents>
mundy::mesh::NgpAggregate< NgpComponents >::NgpAggregate ( const NgpAggregate< NgpComponents > & other)
inline

Member Function Documentation

◆ operator=() [1/2]

template<typename... NgpComponents>
NgpAggregate & mundy::mesh::NgpAggregate< NgpComponents >::operator= ( NgpAggregate< NgpComponents > && other)
inline

◆ operator=() [2/2]

template<typename... NgpComponents>
NgpAggregate & mundy::mesh::NgpAggregate< NgpComponents >::operator= ( const NgpAggregate< NgpComponents > & other)
inline

◆ ngp_mesh()

template<typename... NgpComponents>
const stk::mesh::NgpMesh & mundy::mesh::NgpAggregate< NgpComponents >::ngp_mesh ( ) const
inline

◆ bulk_data()

template<typename... NgpComponents>
const stk::mesh::BulkData & mundy::mesh::NgpAggregate< NgpComponents >::bulk_data ( ) const
inline

◆ mesh_meta_data()

template<typename... NgpComponents>
const stk::mesh::MetaData & mundy::mesh::NgpAggregate< NgpComponents >::mesh_meta_data ( ) const
inline

◆ selector()

template<typename... NgpComponents>
const stk::mesh::Selector & mundy::mesh::NgpAggregate< NgpComponents >::selector ( ) const
inline

◆ add_component() [1/4]

template<typename... NgpComponents>
template<typename Tag, typename NewNgpComponent>
auto mundy::mesh::NgpAggregate< NgpComponents >::add_component ( NewNgpComponent new_ngp_component) const
inline

◆ add_component() [2/4]

template<typename... NgpComponents>
template<typename Tag, typename NewNgpComponent>
void mundy::mesh::NgpAggregate< NgpComponents >::add_component ( NewNgpComponent ) const
inline

◆ add_component() [3/4]

template<typename... NgpComponents>
template<typename NewNgpTaggedComponent>
auto mundy::mesh::NgpAggregate< NgpComponents >::add_component ( NewNgpTaggedComponent new_ngp_component) const
inline

◆ add_component() [4/4]

template<typename... NgpComponents>
template<typename NewNgpTaggedComponent>
void mundy::mesh::NgpAggregate< NgpComponents >::add_component ( NewNgpTaggedComponent ) const
inline

◆ get_component() [1/4]

template<typename... NgpComponents>
template<typename Tag>
const auto & mundy::mesh::NgpAggregate< NgpComponents >::get_component ( ) const
inline

◆ get_component() [2/4]

template<typename... NgpComponents>
template<typename Tag>
const void mundy::mesh::NgpAggregate< NgpComponents >::get_component ( ) const
inline

◆ get_component() [3/4]

template<typename... NgpComponents>
template<typename Tag>
auto & mundy::mesh::NgpAggregate< NgpComponents >::get_component ( )
inline

◆ get_component() [4/4]

template<typename... NgpComponents>
template<typename Tag>
void mundy::mesh::NgpAggregate< NgpComponents >::get_component ( )
inline

◆ sync_to_device()

template<typename... NgpComponents>
template<typename... TagsToSync>
void mundy::mesh::NgpAggregate< NgpComponents >::sync_to_device ( )
inline

◆ sync_to_host()

template<typename... NgpComponents>
template<typename... TagsToSync>
void mundy::mesh::NgpAggregate< NgpComponents >::sync_to_host ( )
inline

◆ modify_on_device()

template<typename... NgpComponents>
template<typename... TagsToModify>
void mundy::mesh::NgpAggregate< NgpComponents >::modify_on_device ( )
inline

◆ modify_on_host()

template<typename... NgpComponents>
template<typename... TagsToModify>
void mundy::mesh::NgpAggregate< NgpComponents >::modify_on_host ( )
inline

◆ get() [1/8]

template<typename... NgpComponents>
template<typename Tag>
decltype(auto) mundy::mesh::NgpAggregate< NgpComponents >::get ( stk::mesh::FastMeshIndex entity_index)
inline

◆ get() [2/8]

template<typename... NgpComponents>
template<typename Tag>
void mundy::mesh::NgpAggregate< NgpComponents >::get ( stk::mesh::FastMeshIndex )
inline

◆ get() [3/8]

template<typename... NgpComponents>
template<typename Tag>
decltype(auto) mundy::mesh::NgpAggregate< NgpComponents >::get ( stk::mesh::FastMeshIndex entity_index) const
inline

◆ get() [4/8]

template<typename... NgpComponents>
template<typename Tag>
void mundy::mesh::NgpAggregate< NgpComponents >::get ( stk::mesh::FastMeshIndex ) const
inline

◆ get() [5/8]

template<typename... NgpComponents>
template<typename Tag>
decltype(auto) mundy::mesh::NgpAggregate< NgpComponents >::get ( stk::mesh::Entity entity)
inline

◆ get() [6/8]

template<typename... NgpComponents>
template<typename Tag>
void mundy::mesh::NgpAggregate< NgpComponents >::get ( stk::mesh::Entity )
inline

◆ get() [7/8]

template<typename... NgpComponents>
template<typename Tag>
decltype(auto) mundy::mesh::NgpAggregate< NgpComponents >::get ( stk::mesh::Entity entity) const
inline

◆ get() [8/8]

template<typename... NgpComponents>
template<typename Tag>
void mundy::mesh::NgpAggregate< NgpComponents >::get ( stk::mesh::Entity ) const
inline

◆ has()

template<typename... NgpComponents>
template<typename Tag>
constexpr bool mundy::mesh::NgpAggregate< NgpComponents >::has ( )
inlinestaticconstexpr