A class to store several objects that are of a type which is templated by the patch.
More...
|
KOKKOS_FUNCTION | MultipatchType (T< Patches >... args) |
| Instantiate the MultipatchType class from an arbitrary number of objects.
|
|
template<template< typename P > typename OT, class... OPatches> |
KOKKOS_FUNCTION | MultipatchType (MultipatchType< OT, OPatches... > const &other) |
| Create a MultipatchType class by copying an instance of another compatible MultipatchType.
|
|
template<template< typename P > typename OT, class... OPatches> |
| MultipatchType (MultipatchType< OT, OPatches... > &&other) |
| Create a MultipatchType class from an r-value (temporary) instance of another MultipatchType which uses the same type for the internal tuple.
|
|
template<class Patch , std::enable_if_t<!has_data_access_methods_v< T< Patch > >, bool > = true> |
KOKKOS_FUNCTION T< Patch > | get () const |
| Retrieve an object from the patch that it is defined on.
|
|
KOKKOS_FUNCTION std::tuple< T< Patches >... > const & | get_tuple () const |
| Get a constant reference to the tuple of objects stored inside this MultipatchType.
|
|
template<template< typename P > typename T, class... Patches>
class MultipatchType< T, Patches >
A class to store several objects that are of a type which is templated by the patch.
On a multipatch domain when we have objects and types defined on different patches, e.g. fields. They can be stored in this class and then be accessed by the patch they are defined on.
- Template Parameters
-
T | The type of the objects that are stored on the given patches. |
Patches | The patches of the objects in the same order of the patches that the given objects are defined on. |
- Warning
- The objects have to be defined on different patches. Otherwise retrieving them by their patch is ill-defined.
template<template< typename P > typename T, class... Patches>
template<template< typename P > typename OT, class... OPatches>
Create a MultipatchType class by copying an instance of another compatible MultipatchType.
A compatible MultipatchType is one which uses all the patches used by this class. The object being copied may include more patches than this MultipatchType. Further the original MultipatchType must store objects of the correct type (the type template may be different but return the same type depending on how it is designed.
This function is not explicit as it is helpful to be able to change between equivalent multipatch definitions if the internal type is the same but the definition comes from different locations in the code.
- Parameters
-