IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
ippl::detail::RegionLayout< T, Dim, Mesh, Properties > Class Template Reference

#include <RegionLayout.h>

Inheritance diagram for ippl::detail::RegionLayout< T, Dim, Mesh, Properties >:
Collaboration diagram for ippl::detail::RegionLayout< T, Dim, Mesh, Properties >:

Public Types

using NDRegion_t = NDRegion<T, Dim>
using view_type = typename ViewType<NDRegion_t, 1, Properties...>::view_type
using host_mirror_type = typename view_type::host_mirror_type
using uniform_type = typename CreateUniformType<base_type, view_type>::type

Public Member Functions

 RegionLayout ()
 RegionLayout (const FieldLayout< Dim > &, const Mesh &)
 ~RegionLayout ()=default
const NDRegion_tgetDomain () const
const view_type getdLocalRegions () const
const host_mirror_type gethLocalRegions () const
void write (std::ostream &=std::cout) const
void changeDomain (const FieldLayout< Dim > &, const Mesh &mesh)

Private Types

template<typename... Props>
using base_type = RegionLayout<T, Dim, Mesh, Props...>

Private Member Functions

NDRegion_t convertNDIndex (const NDIndex< Dim > &, const Mesh &mesh) const
void fillRegions (const FieldLayout< Dim > &, const Mesh &mesh)

Private Attributes

std::array< int, DimindexOffset_m
 Offset from 'normal' Index space to 'Mesh' Index space.
std::array< bool, DimcenterOffset_m
 Offset needed between centering of Index space and Mesh points.
NDRegion_t region_m
view_type dLocalRegions_m
 local regions (device view)
host_mirror_type hLocalRegions_m
 local regions (host mirror view)
view_type subdomains_m

Detailed Description

template<typename T, unsigned Dim, class Mesh, class... Properties>
class ippl::detail::RegionLayout< T, Dim, Mesh, Properties >

Definition at line 36 of file RegionLayout.h.

Member Typedef Documentation

◆ base_type

template<typename T, unsigned Dim, class Mesh, class... Properties>
template<typename... Props>
using ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::base_type = RegionLayout<T, Dim, Mesh, Props...>
private

Definition at line 38 of file RegionLayout.h.

◆ host_mirror_type

template<typename T, unsigned Dim, class Mesh, class... Properties>
using ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::host_mirror_type = typename view_type::host_mirror_type

Definition at line 43 of file RegionLayout.h.

◆ NDRegion_t

template<typename T, unsigned Dim, class Mesh, class... Properties>
using ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::NDRegion_t = NDRegion<T, Dim>

Definition at line 41 of file RegionLayout.h.

◆ uniform_type

template<typename T, unsigned Dim, class Mesh, class... Properties>
using ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::uniform_type = typename CreateUniformType<base_type, view_type>::type

Definition at line 45 of file RegionLayout.h.

◆ view_type

template<typename T, unsigned Dim, class Mesh, class... Properties>
using ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::view_type = typename ViewType<NDRegion_t, 1, Properties...>::view_type

Definition at line 42 of file RegionLayout.h.

Constructor & Destructor Documentation

◆ RegionLayout() [1/2]

template<typename T, unsigned Dim, class Mesh, class... Properties>
ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::RegionLayout ( )

Definition at line 24 of file RegionLayout.hpp.

References centerOffset_m, dLocalRegions_m, hLocalRegions_m, and indexOffset_m.

Referenced by RegionLayout().

Here is the caller graph for this function:

◆ RegionLayout() [2/2]

template<typename T, unsigned Dim, class Mesh, class... Properties>
ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::RegionLayout ( const FieldLayout< Dim > & fl,
const Mesh & mesh )

Definition at line 32 of file RegionLayout.hpp.

References changeDomain(), and RegionLayout().

Here is the call graph for this function:

◆ ~RegionLayout()

template<typename T, unsigned Dim, class Mesh, class... Properties>
ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::~RegionLayout ( )
default

Member Function Documentation

◆ changeDomain()

template<typename T, unsigned Dim, class Mesh, class... Properties>
void ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::changeDomain ( const FieldLayout< Dim > & fl,
const Mesh & mesh )

Definition at line 39 of file RegionLayout.hpp.

References centerOffset_m, convertNDIndex(), Dim, fillRegions(), ippl::FieldLayout< Dim >::getDomain(), indexOffset_m, and region_m.

Referenced by RegionLayout().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ convertNDIndex()

template<typename T, unsigned Dim, class Mesh, class... Properties>
RegionLayout< T, Dim, Mesh, Properties... >::NDRegion_t ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::convertNDIndex ( const NDIndex< Dim > & ni,
const Mesh & mesh ) const
private

Definition at line 59 of file RegionLayout.hpp.

Referenced by changeDomain(), and fillRegions().

Here is the caller graph for this function:

◆ fillRegions()

template<typename T, unsigned Dim, class Mesh, class... Properties>
void ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::fillRegions ( const FieldLayout< Dim > & fl,
const Mesh & mesh )
private

Definition at line 81 of file RegionLayout.hpp.

References convertNDIndex(), dLocalRegions_m, ippl::FieldLayout< Dim >::getHostLocalDomains(), and hLocalRegions_m.

Referenced by changeDomain().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getdLocalRegions()

template<typename T, unsigned Dim, class Mesh, class... Properties>
const RegionLayout< T, Dim, Mesh, Properties... >::view_type ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::getdLocalRegions ( ) const

Definition at line 114 of file RegionLayout.hpp.

References dLocalRegions_m.

◆ getDomain()

template<typename T, unsigned Dim, class Mesh, class... Properties>
const NDRegion_t & ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::getDomain ( ) const
inline

Definition at line 59 of file RegionLayout.h.

◆ gethLocalRegions()

template<typename T, unsigned Dim, class Mesh, class... Properties>
const RegionLayout< T, Dim, Mesh, Properties... >::host_mirror_type ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::gethLocalRegions ( ) const

Definition at line 120 of file RegionLayout.hpp.

References hLocalRegions_m.

Referenced by main().

Here is the caller graph for this function:

◆ write()

template<typename T, unsigned Dim, class Mesh, class... Properties>
void ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::write ( std::ostream & out = std::cout) const

Definition at line 98 of file RegionLayout.hpp.

References ippl::Comm, hLocalRegions_m, and region_m.

Referenced by ippl::detail::operator<<().

Here is the caller graph for this function:

Member Data Documentation

◆ centerOffset_m

template<typename T, unsigned Dim, class Mesh, class... Properties>
std::array<bool, Dim> ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::centerOffset_m
private

Offset needed between centering of Index space and Mesh points.

Definition at line 77 of file RegionLayout.h.

Referenced by changeDomain(), and RegionLayout().

◆ dLocalRegions_m

template<typename T, unsigned Dim, class Mesh, class... Properties>
view_type ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::dLocalRegions_m
private

local regions (device view)

Definition at line 82 of file RegionLayout.h.

Referenced by fillRegions(), getdLocalRegions(), and RegionLayout().

◆ hLocalRegions_m

template<typename T, unsigned Dim, class Mesh, class... Properties>
host_mirror_type ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::hLocalRegions_m
private

local regions (host mirror view)

Definition at line 85 of file RegionLayout.h.

Referenced by fillRegions(), gethLocalRegions(), RegionLayout(), and write().

◆ indexOffset_m

template<typename T, unsigned Dim, class Mesh, class... Properties>
std::array<int, Dim> ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::indexOffset_m
private

Offset from 'normal' Index space to 'Mesh' Index space.

Definition at line 74 of file RegionLayout.h.

Referenced by changeDomain(), and RegionLayout().

◆ region_m

template<typename T, unsigned Dim, class Mesh, class... Properties>
NDRegion_t ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::region_m
private

Definition at line 79 of file RegionLayout.h.

Referenced by changeDomain(), and write().

◆ subdomains_m

template<typename T, unsigned Dim, class Mesh, class... Properties>
view_type ippl::detail::RegionLayout< T, Dim, Mesh, Properties >::subdomains_m
private

Definition at line 87 of file RegionLayout.h.


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