Zoltan2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Types | Public Member Functions | List of all members
Zoltan2::AlgDistance1TwoGhostLayer< Adapter > Class Template Reference

#include <Zoltan2_AlgHybridD1-2GL.hpp>

Inheritance diagram for Zoltan2::AlgDistance1TwoGhostLayer< Adapter >:
Inheritance graph
[legend]
Collaboration diagram for Zoltan2::AlgDistance1TwoGhostLayer< Adapter >:
Collaboration graph
[legend]

Public Types

using lno_t = typename Adapter::lno_t
 
using gno_t = typename Adapter::gno_t
 
using offset_t = typename Adapter::offset_t
 
using scalar_t = typename Adapter::scalar_t
 
using base_adapter_t = typename Adapter::base_adapter_t
 
using map_t = Tpetra::Map< lno_t, gno_t >
 
using femv_scalar_t = int
 
using femv_t = Tpetra::FEMultiVector< femv_scalar_t, lno_t, gno_t >
 
using device_type = typename femv_t::device_type
 
using execution_space = typename device_type::execution_space
 
using memory_space = typename device_type::memory_space
 
using host_exec = typename femv_t::host_view_type::device_type::execution_space
 
using host_mem = typename femv_t::host_view_type::device_type::memory_space
 
- Public Types inherited from Zoltan2::AlgTwoGhostLayer< Adapter >
using lno_t = typename Adapter::lno_t
 
using gno_t = typename Adapter::gno_t
 
using offset_t = typename Adapter::offset_t
 
using scalar_t = typename Adapter::scalar_t
 
using base_adapter_t = typename Adapter::base_adapter_t
 
using map_t = Tpetra::Map< lno_t, gno_t >
 
using femv_scalar_t = int
 
using femv_t = Tpetra::FEMultiVector< femv_scalar_t, lno_t, gno_t >
 
using device_type = typename femv_t::device_type
 
using execution_space = typename device_type::execution_space
 
using memory_space = typename device_type::memory_space
 
using host_exec = typename femv_t::host_view_type::device_type::execution_space
 
using host_mem = typename femv_t::host_view_type::device_type::memory_space
 
- Public Types inherited from Zoltan2::Algorithm< Adapter >
typedef Adapter::lno_t lno_t
 
typedef Adapter::gno_t gno_t
 
typedef Adapter::scalar_t scalar_t
 
typedef Adapter::part_t part_t
 

Public Member Functions

template<class ExecutionSpace , typename MemorySpace >
void detectD1Conflicts (const size_t n_local, Kokkos::View< offset_t *, Kokkos::Device< ExecutionSpace, MemorySpace >> dist_offsets, Kokkos::View< lno_t *, Kokkos::Device< ExecutionSpace, MemorySpace >> dist_adjs, Kokkos::View< int *, Kokkos::Device< ExecutionSpace, MemorySpace >> femv_colors, Kokkos::View< lno_t *, Kokkos::Device< ExecutionSpace, MemorySpace >> boundary_verts_view, Kokkos::View< lno_t *, Kokkos::Device< ExecutionSpace, MemorySpace > > verts_to_recolor_view, Kokkos::View< int *, Kokkos::Device< ExecutionSpace, MemorySpace >, Kokkos::MemoryTraits< Kokkos::Atomic > > verts_to_recolor_size_atomic, Kokkos::View< lno_t *, Kokkos::Device< ExecutionSpace, MemorySpace > > verts_to_send_view, Kokkos::View< size_t *, Kokkos::Device< ExecutionSpace, MemorySpace >, Kokkos::MemoryTraits< Kokkos::Atomic > > verts_to_send_size_atomic, Kokkos::View< size_t *, Kokkos::Device< ExecutionSpace, MemorySpace > > recoloringSize, Kokkos::View< int *, Kokkos::Device< ExecutionSpace, MemorySpace > > rand, Kokkos::View< gno_t *, Kokkos::Device< ExecutionSpace, MemorySpace > > gid, Kokkos::View< gno_t *, Kokkos::Device< ExecutionSpace, MemorySpace > > ghost_degrees, bool recolor_degrees)
 
virtual void detectConflicts (const size_t n_local, Kokkos::View< offset_t *, device_type > dist_offsets_dev, Kokkos::View< lno_t *, device_type > dist_adjs_dev, Kokkos::View< int *, device_type > femv_colors, Kokkos::View< lno_t *, device_type > boundary_verts_view, Kokkos::View< lno_t *, device_type > verts_to_recolor_view, Kokkos::View< int *, device_type, Kokkos::MemoryTraits< Kokkos::Atomic >> verts_to_recolor_size_atomic, Kokkos::View< lno_t *, device_type > verts_to_send_view, Kokkos::View< size_t *, device_type, Kokkos::MemoryTraits< Kokkos::Atomic >> verts_to_send_size_atomic, Kokkos::View< size_t *, device_type > recoloringSize, Kokkos::View< int *, device_type > rand, Kokkos::View< gno_t *, device_type > gid, Kokkos::View< gno_t *, device_type > ghost_degrees, bool recolor_degrees)
 
virtual void detectConflicts_serial (const size_t n_local, typename Kokkos::View< offset_t *, device_type >::HostMirror dist_offsets_host, typename Kokkos::View< lno_t *, device_type >::HostMirror dist_adjs_host, typename Kokkos::View< int *, device_type >::HostMirror femv_colors, typename Kokkos::View< lno_t *, device_type >::HostMirror boundary_verts_view, typename Kokkos::View< lno_t *, device_type >::HostMirror verts_to_recolor, typename Kokkos::View< int *, device_type >::HostMirror verts_to_recolor_size, typename Kokkos::View< lno_t *, device_type >::HostMirror verts_to_send, typename Kokkos::View< size_t *, device_type >::HostMirror verts_to_send_size, typename Kokkos::View< size_t *, device_type >::HostMirror recoloringSize, typename Kokkos::View< int *, device_type >::HostMirror rand, typename Kokkos::View< gno_t *, device_type >::HostMirror gid, typename Kokkos::View< gno_t *, device_type >::HostMirror ghost_degrees, bool recolor_degrees)
 
virtual void constructBoundary (const size_t n_local, Kokkos::View< offset_t *, device_type > dist_offsets_dev, Kokkos::View< lno_t *, device_type > dist_adjs_dev, typename Kokkos::View< offset_t *, device_type >::HostMirror dist_offsets_host, typename Kokkos::View< lno_t *, device_type >::HostMirror dist_adjs_host, Kokkos::View< lno_t *, device_type > &boundary_verts, Kokkos::View< lno_t *, device_type > verts_to_send_view, Kokkos::View< size_t *, device_type, Kokkos::MemoryTraits< Kokkos::Atomic >> verts_to_send_size_atomic)
 
 AlgDistance1TwoGhostLayer (const RCP< const base_adapter_t > &adapter_, const RCP< Teuchos::ParameterList > &pl_, const RCP< Environment > &env_, const RCP< const Teuchos::Comm< int > > &comm_)
 
- Public Member Functions inherited from Zoltan2::AlgTwoGhostLayer< Adapter >
double timer ()
 
 AlgTwoGhostLayer (const RCP< const base_adapter_t > &adapter_, const RCP< Teuchos::ParameterList > &pl_, const RCP< Environment > &env_, const RCP< const Teuchos::Comm< int > > &comm_)
 
void color (const RCP< ColoringSolution< Adapter > > &solution)
 Coloring method. More...
 
void twoGhostLayer (const size_t n_local, const size_t n_total, const Teuchos::ArrayView< const lno_t > &adjs, const Teuchos::ArrayView< const offset_t > &offsets, const Teuchos::ArrayView< const lno_t > &ghost_adjs, const Teuchos::ArrayView< const offset_t > &ghost_offsets, const Teuchos::RCP< femv_t > &femv, const Teuchos::ArrayView< const gno_t > &gids, const Teuchos::ArrayView< const int > &rand, const Teuchos::ArrayView< const int > &ghost_owners, RCP< const map_t > mapOwnedPlusGhosts, const std::unordered_map< lno_t, std::vector< int >> &procs_to_send)
 
- Public Member Functions inherited from Zoltan2::Algorithm< Adapter >
virtual ~Algorithm ()
 
virtual int localOrder (const RCP< LocalOrderingSolution< lno_t > > &)
 Ordering method. More...
 
virtual int globalOrder (const RCP< GlobalOrderingSolution< gno_t > > &)
 Ordering method. More...
 
virtual void match ()
 Matching method. More...
 
virtual void partition (const RCP< PartitioningSolution< Adapter > > &)
 Partitioning method. More...
 
virtual void partitionMatrix (const RCP< MatrixPartitioningSolution< Adapter > > &)
 Matrix Partitioning method. More...
 
virtual void map (const RCP< MappingSolution< Adapter > > &)
 Mapping method. More...
 
virtual bool isPartitioningTreeBinary () const
 return if algorithm determins tree to be binary More...
 
virtual void getPartitionTree (part_t, part_t &, std::vector< part_t > &, std::vector< part_t > &, std::vector< part_t > &, std::vector< part_t > &) const
 for partitioning methods, fill arrays with partition tree info More...
 
virtual std::vector
< coordinateModelPartBox > & 
getPartBoxesView () const
 for partitioning methods, return bounding boxes of the More...
 
virtual part_t pointAssign (int, scalar_t *) const
 pointAssign method: Available only for some partitioning algorithms More...
 
virtual void boxAssign (int, scalar_t *, scalar_t *, size_t &, part_t **) const
 boxAssign method: Available only for some partitioning algorithms More...
 
virtual void getCommunicationGraph (const PartitioningSolution< Adapter > *, ArrayRCP< part_t > &, ArrayRCP< part_t > &)
 returns serial communication graph of a computed partition More...
 
virtual int getRankForPart (part_t)
 In mapping, returns the rank to which a part is assigned. More...
 
virtual void getMyPartsView (part_t &, part_t *&)
 In mapping, returns a view of parts assigned to the current rank. More...
 

Additional Inherited Members

- Protected Attributes inherited from Zoltan2::AlgTwoGhostLayer< Adapter >
RCP< const base_adapter_tadapter
 
RCP< Teuchos::ParameterList > pl
 
RCP< Environmentenv
 
RCP< const Teuchos::Comm< int > > comm
 
bool verbose
 
bool timing
 

Detailed Description

template<typename Adapter>
class Zoltan2::AlgDistance1TwoGhostLayer< Adapter >

Definition at line 49 of file Zoltan2_AlgHybridD1-2GL.hpp.

Member Typedef Documentation

template<typename Adapter>
using Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::lno_t = typename Adapter::lno_t

Definition at line 51 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
using Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::gno_t = typename Adapter::gno_t

Definition at line 52 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
using Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::offset_t = typename Adapter::offset_t

Definition at line 53 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
using Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::scalar_t = typename Adapter::scalar_t

Definition at line 54 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
using Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::base_adapter_t = typename Adapter::base_adapter_t

Definition at line 55 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
using Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::map_t = Tpetra::Map<lno_t,gno_t>

Definition at line 56 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
using Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::femv_scalar_t = int

Definition at line 57 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
using Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::femv_t = Tpetra::FEMultiVector<femv_scalar_t, lno_t, gno_t>

Definition at line 58 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
using Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::device_type = typename femv_t::device_type

Definition at line 59 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
using Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::execution_space = typename device_type::execution_space

Definition at line 60 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
using Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::memory_space = typename device_type::memory_space

Definition at line 61 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
using Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::host_exec = typename femv_t::host_view_type::device_type::execution_space

Definition at line 62 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
using Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::host_mem = typename femv_t::host_view_type::device_type::memory_space

Definition at line 63 of file Zoltan2_AlgHybridD1-2GL.hpp.

Constructor & Destructor Documentation

template<typename Adapter>
Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::AlgDistance1TwoGhostLayer ( const RCP< const base_adapter_t > &  adapter_,
const RCP< Teuchos::ParameterList > &  pl_,
const RCP< Environment > &  env_,
const RCP< const Teuchos::Comm< int > > &  comm_ 
)
inline

Definition at line 348 of file Zoltan2_AlgHybridD1-2GL.hpp.

Member Function Documentation

template<typename Adapter>
template<class ExecutionSpace , typename MemorySpace >
void Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::detectD1Conflicts ( const size_t  n_local,
Kokkos::View< offset_t *, Kokkos::Device< ExecutionSpace, MemorySpace >>  dist_offsets,
Kokkos::View< lno_t *, Kokkos::Device< ExecutionSpace, MemorySpace >>  dist_adjs,
Kokkos::View< int *, Kokkos::Device< ExecutionSpace, MemorySpace >>  femv_colors,
Kokkos::View< lno_t *, Kokkos::Device< ExecutionSpace, MemorySpace >>  boundary_verts_view,
Kokkos::View< lno_t *, Kokkos::Device< ExecutionSpace, MemorySpace > >  verts_to_recolor_view,
Kokkos::View< int *, Kokkos::Device< ExecutionSpace, MemorySpace >, Kokkos::MemoryTraits< Kokkos::Atomic > >  verts_to_recolor_size_atomic,
Kokkos::View< lno_t *, Kokkos::Device< ExecutionSpace, MemorySpace > >  verts_to_send_view,
Kokkos::View< size_t *, Kokkos::Device< ExecutionSpace, MemorySpace >, Kokkos::MemoryTraits< Kokkos::Atomic > >  verts_to_send_size_atomic,
Kokkos::View< size_t *, Kokkos::Device< ExecutionSpace, MemorySpace > >  recoloringSize,
Kokkos::View< int *, Kokkos::Device< ExecutionSpace, MemorySpace > >  rand,
Kokkos::View< gno_t *, Kokkos::Device< ExecutionSpace, MemorySpace > >  gid,
Kokkos::View< gno_t *, Kokkos::Device< ExecutionSpace, MemorySpace > >  ghost_degrees,
bool  recolor_degrees 
)
inline

Definition at line 160 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
virtual void Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::detectConflicts ( const size_t  n_local,
Kokkos::View< offset_t *, device_type dist_offsets_dev,
Kokkos::View< lno_t *, device_type dist_adjs_dev,
Kokkos::View< int *, device_type femv_colors,
Kokkos::View< lno_t *, device_type boundary_verts_view,
Kokkos::View< lno_t *, device_type verts_to_recolor_view,
Kokkos::View< int *, device_type, Kokkos::MemoryTraits< Kokkos::Atomic >>  verts_to_recolor_size_atomic,
Kokkos::View< lno_t *, device_type verts_to_send_view,
Kokkos::View< size_t *, device_type, Kokkos::MemoryTraits< Kokkos::Atomic >>  verts_to_send_size_atomic,
Kokkos::View< size_t *, device_type recoloringSize,
Kokkos::View< int *, device_type rand,
Kokkos::View< gno_t *, device_type gid,
Kokkos::View< gno_t *, device_type ghost_degrees,
bool  recolor_degrees 
)
inlinevirtual

Implements Zoltan2::AlgTwoGhostLayer< Adapter >.

Definition at line 242 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
virtual void Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::detectConflicts_serial ( const size_t  n_local,
typename Kokkos::View< offset_t *, device_type >::HostMirror  dist_offsets_host,
typename Kokkos::View< lno_t *, device_type >::HostMirror  dist_adjs_host,
typename Kokkos::View< int *, device_type >::HostMirror  femv_colors,
typename Kokkos::View< lno_t *, device_type >::HostMirror  boundary_verts_view,
typename Kokkos::View< lno_t *, device_type >::HostMirror  verts_to_recolor,
typename Kokkos::View< int *, device_type >::HostMirror  verts_to_recolor_size,
typename Kokkos::View< lno_t *, device_type >::HostMirror  verts_to_send,
typename Kokkos::View< size_t *, device_type >::HostMirror  verts_to_send_size,
typename Kokkos::View< size_t *, device_type >::HostMirror  recoloringSize,
typename Kokkos::View< int *, device_type >::HostMirror  rand,
typename Kokkos::View< gno_t *, device_type >::HostMirror  gid,
typename Kokkos::View< gno_t *, device_type >::HostMirror  ghost_degrees,
bool  recolor_degrees 
)
inlinevirtual

Implements Zoltan2::AlgTwoGhostLayer< Adapter >.

Definition at line 281 of file Zoltan2_AlgHybridD1-2GL.hpp.

template<typename Adapter>
virtual void Zoltan2::AlgDistance1TwoGhostLayer< Adapter >::constructBoundary ( const size_t  n_local,
Kokkos::View< offset_t *, device_type dist_offsets_dev,
Kokkos::View< lno_t *, device_type dist_adjs_dev,
typename Kokkos::View< offset_t *, device_type >::HostMirror  dist_offsets_host,
typename Kokkos::View< lno_t *, device_type >::HostMirror  dist_adjs_host,
Kokkos::View< lno_t *, device_type > &  boundary_verts,
Kokkos::View< lno_t *, device_type verts_to_send_view,
Kokkos::View< size_t *, device_type, Kokkos::MemoryTraits< Kokkos::Atomic >>  verts_to_send_size_atomic 
)
inlinevirtual

Implements Zoltan2::AlgTwoGhostLayer< Adapter >.

Definition at line 312 of file Zoltan2_AlgHybridD1-2GL.hpp.


The documentation for this class was generated from the following file: