Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
shammodels::sph::BasicSPHGhostHandler< vec > Class Template Reference
Collaboration diagram for shammodels::sph::BasicSPHGhostHandler< vec >:

Classes

struct  InterfaceBuildInfos
struct  InterfaceIdTable

Public Types

using flt = shambase::VecComponent<vec>
using per_index = sycl::vec<i32, dim>
using GeneratorMap = shambase::DistributedDataShared<InterfaceBuildInfos>
using CacheMap = shambase::DistributedDataShared<InterfaceIdTable>

Public Member Functions

 BasicSPHGhostHandler (PatchScheduler &sched, Config ghost_config, std::shared_ptr< shamrock::solvergraph::RankGetter > patch_rank_owner, std::shared_ptr< shamrock::patch::PatchDataLayerLayout > &xyzh_ghost_layout)
GeneratorMap find_interfaces (SerialPatchTree< vec > &sptree, shamrock::patch::PatchtreeField< flt > &int_range_max_tree, shamrock::patch::PatchField< flt > &int_range_max)
 Find interfaces and their metadata.
shambase::DistributedDataShared< InterfaceIdTablegen_id_table_interfaces (GeneratorMap &&gen)
 precompute interfaces members and cache result in the return
void gen_debug_patch_ghost (shambase::DistributedDataShared< InterfaceIdTable > &interf_info)
CacheMap make_interface_cache (SerialPatchTree< vec > &sptree, shamrock::patch::PatchtreeField< flt > &int_range_max_tree, shamrock::patch::PatchField< flt > &int_range_max)
 utility to generate both the metadata and index tables
template<class T>
shambase::DistributedDataShared< T > build_interface_native (shambase::DistributedDataShared< InterfaceIdTable > &builder, std::function< T(u64, u64, InterfaceBuildInfos, sham::DeviceBuffer< u32 > &, u32)> fct)
 native handle to generate interfaces generate interfaces of type T (template arg) based on the provided function
template<class T>
void modify_interface_native (shambase::DistributedDataShared< InterfaceIdTable > &builder, shambase::DistributedDataShared< T > &mod, std::function< void(u64, u64, InterfaceBuildInfos, sham::DeviceBuffer< u32 > &, u32, T &)> fct)
template<class T>
shambase::DistributedDataShared< T > build_interface_native_stagged (shambase::DistributedDataShared< InterfaceIdTable > &builder, std::function< T(u64, u64, InterfaceBuildInfos, sycl::buffer< u32 > &, u32)> gen_1, std::function< void(u64, u64, InterfaceBuildInfos, sycl::buffer< u32 > &, u32, T &)> modif)
 native handle to generate interfaces generate interfaces of type T (template arg) based on the provided function
shambase::DistributedDataShared< shamrock::patch::PatchDataLayerbuild_position_interf_field (shambase::DistributedDataShared< InterfaceIdTable > &builder)
shambase::DistributedDataShared< shamrock::patch::PatchDataLayercommunicate_pdat (const std::shared_ptr< shamrock::patch::PatchDataLayerLayout > &pdl_ptr, shambase::DistributedDataShared< shamrock::patch::PatchDataLayer > &&interf, std::shared_ptr< shamrock::solvergraph::ExchangeGhostLayer > exchange_gz_node, bool show_debug_infos)
template<class T>
shambase::DistributedDataShared< PatchDataField< T > > communicate_pdatfield (shambase::DistributedDataShared< PatchDataField< T > > &&interf, u32 nvar, std::shared_ptr< shamrock::solvergraph::ExchangeGhostField< T > > exchange_gz_node)
shambase::DistributedDataShared< shamrock::patch::PatchDataLayerbuild_communicate_positions (shambase::DistributedDataShared< InterfaceIdTable > &builder, std::shared_ptr< shamrock::solvergraph::ExchangeGhostLayer > &exchange_gz_positions, bool show_debug_infos)
template<class T, class Tmerged>
shambase::DistributedData< Tmerged > merge_native (shambase::DistributedDataShared< T > &&interfs, std::function< Tmerged(const shamrock::patch::Patch, shamrock::patch::PatchDataLayer &pdat)> init, std::function< void(Tmerged &, T &)> appender)
shambase::DistributedData< shamrock::patch::PatchDataLayermerge_position_buf (shambase::DistributedDataShared< shamrock::patch::PatchDataLayer > &&positioninterfs)
shambase::DistributedData< shamrock::patch::PatchDataLayerbuild_comm_merge_positions (shambase::DistributedDataShared< InterfaceIdTable > &builder, std::shared_ptr< shamrock::solvergraph::ExchangeGhostLayer > &exchange_gz_positions, bool show_debug_infos)

Public Attributes

std::shared_ptr< shamrock::patch::PatchDataLayerLayout > & xyzh_ghost_layout
std::shared_ptr< shamrock::solvergraph::RankGetterpatch_rank_owner

Static Public Attributes

static constexpr u32 dim = shambase::VectorProperties<vec>::dimension

Detailed Description

template<class vec>
class shammodels::sph::BasicSPHGhostHandler< vec >

Definition at line 57 of file BasicSPHGhosts.hpp.

Member Typedef Documentation

◆ CacheMap

Definition at line 122 of file BasicSPHGhosts.hpp.

◆ flt

template<class vec>
using shammodels::sph::BasicSPHGhostHandler< vec >::flt = shambase::VecComponent<vec>

Definition at line 66 of file BasicSPHGhosts.hpp.

◆ GeneratorMap

Definition at line 84 of file BasicSPHGhosts.hpp.

◆ per_index

template<class vec>
using shammodels::sph::BasicSPHGhostHandler< vec >::per_index = sycl::vec<i32, dim>

Definition at line 68 of file BasicSPHGhosts.hpp.

Constructor & Destructor Documentation

◆ BasicSPHGhostHandler()

template<class vec>
shammodels::sph::BasicSPHGhostHandler< vec >::BasicSPHGhostHandler ( PatchScheduler & sched,
Config ghost_config,
std::shared_ptr< shamrock::solvergraph::RankGetter > patch_rank_owner,
std::shared_ptr< shamrock::patch::PatchDataLayerLayout > & xyzh_ghost_layout )
inline

Definition at line 90 of file BasicSPHGhosts.hpp.

Member Function Documentation

◆ build_comm_merge_positions()

template<class vec>
shambase::DistributedData< shamrock::patch::PatchDataLayer > shammodels::sph::BasicSPHGhostHandler< vec >::build_comm_merge_positions ( shambase::DistributedDataShared< InterfaceIdTable > & builder,
std::shared_ptr< shamrock::solvergraph::ExchangeGhostLayer > & exchange_gz_positions,
bool show_debug_infos )
inline

Definition at line 507 of file BasicSPHGhosts.hpp.

◆ build_communicate_positions()

template<class vec>
shambase::DistributedDataShared< shamrock::patch::PatchDataLayer > shammodels::sph::BasicSPHGhostHandler< vec >::build_communicate_positions ( shambase::DistributedDataShared< InterfaceIdTable > & builder,
std::shared_ptr< shamrock::solvergraph::ExchangeGhostLayer > & exchange_gz_positions,
bool show_debug_infos )
inline

Definition at line 442 of file BasicSPHGhosts.hpp.

◆ build_interface_native()

template<class vec>
template<class T>
shambase::DistributedDataShared< T > shammodels::sph::BasicSPHGhostHandler< vec >::build_interface_native ( shambase::DistributedDataShared< InterfaceIdTable > & builder,
std::function< T(u64, u64, InterfaceBuildInfos, sham::DeviceBuffer< u32 > &, u32)> fct )
inline

native handle to generate interfaces generate interfaces of type T (template arg) based on the provided function

auto split_lists = grid.gen_splitlists(
[&](u64 id_patch, Patch cur_p, PatchData &pdat) -> sycl::buffer<u32> {
generate the buffer saying which cells should split
}
);
std::uint64_t u64
64 bit unsigned integer
Template Parameters
T
Parameters
builder
fct
Returns
shambase::DistributedDataShared<T>

Definition at line 159 of file BasicSPHGhosts.hpp.

◆ build_interface_native_stagged()

template<class vec>
template<class T>
shambase::DistributedDataShared< T > shammodels::sph::BasicSPHGhostHandler< vec >::build_interface_native_stagged ( shambase::DistributedDataShared< InterfaceIdTable > & builder,
std::function< T(u64, u64, InterfaceBuildInfos, sycl::buffer< u32 > &, u32)> gen_1,
std::function< void(u64, u64, InterfaceBuildInfos, sycl::buffer< u32 > &, u32, T &)> modif )
inline

native handle to generate interfaces generate interfaces of type T (template arg) based on the provided function

// Example usage
Template Parameters
T
Parameters
builder
fct
Returns
shambase::DistributedDataShared<T>

Definition at line 237 of file BasicSPHGhosts.hpp.

◆ build_position_interf_field()

Definition at line 294 of file BasicSPHGhosts.hpp.

◆ communicate_pdat()

template<class vec>
shambase::DistributedDataShared< shamrock::patch::PatchDataLayer > shammodels::sph::BasicSPHGhostHandler< vec >::communicate_pdat ( const std::shared_ptr< shamrock::patch::PatchDataLayerLayout > & pdl_ptr,
shambase::DistributedDataShared< shamrock::patch::PatchDataLayer > && interf,
std::shared_ptr< shamrock::solvergraph::ExchangeGhostLayer > exchange_gz_node,
bool show_debug_infos )
inline

Definition at line 323 of file BasicSPHGhosts.hpp.

◆ communicate_pdatfield()

template<class vec>
template<class T>
shambase::DistributedDataShared< PatchDataField< T > > shammodels::sph::BasicSPHGhostHandler< vec >::communicate_pdatfield ( shambase::DistributedDataShared< PatchDataField< T > > && interf,
u32 nvar,
std::shared_ptr< shamrock::solvergraph::ExchangeGhostField< T > > exchange_gz_node )
inline

Definition at line 391 of file BasicSPHGhosts.hpp.

◆ find_interfaces()

template<class vec>
auto BasicSPHGhostHandler::find_interfaces ( SerialPatchTree< vec > & sptree,
shamrock::patch::PatchtreeField< flt > & int_range_max_tree,
shamrock::patch::PatchField< flt > & int_range_max )

Find interfaces and their metadata.

Parameters
sptreethe serial patch tree
int_range_max_treethe smoothing length maximas hierachy
int_range_maxthe smoothing length maximas hierachy
Returns
GeneratorMap the generator map containing the metadata to build interfaces

Definition at line 261 of file BasicSPHGhosts.cpp.

Here is the call graph for this function:

◆ gen_debug_patch_ghost()

template<class vec>
void BasicSPHGhostHandler::gen_debug_patch_ghost ( shambase::DistributedDataShared< InterfaceIdTable > & interf_info)

Definition at line 582 of file BasicSPHGhosts.cpp.

◆ gen_id_table_interfaces()

template<class vec>
auto BasicSPHGhostHandler::gen_id_table_interfaces ( GeneratorMap && gen)

precompute interfaces members and cache result in the return

Parameters
gen
Returns
shambase::DistributedDataShared<InterfaceIdTable>

Definition at line 512 of file BasicSPHGhosts.cpp.

Here is the call graph for this function:

◆ make_interface_cache()

template<class vec>
CacheMap shammodels::sph::BasicSPHGhostHandler< vec >::make_interface_cache ( SerialPatchTree< vec > & sptree,
shamrock::patch::PatchtreeField< flt > & int_range_max_tree,
shamrock::patch::PatchField< flt > & int_range_max )
inline

utility to generate both the metadata and index tables

Parameters
sptree
int_range_max_tree
int_range_max
Returns
shambase::DistributedDataShared<InterfaceIdTable>

Definition at line 132 of file BasicSPHGhosts.hpp.

◆ merge_native()

template<class vec>
template<class T, class Tmerged>
shambase::DistributedData< Tmerged > shammodels::sph::BasicSPHGhostHandler< vec >::merge_native ( shambase::DistributedDataShared< T > && interfs,
std::function< Tmerged(const shamrock::patch::Patch, shamrock::patch::PatchDataLayer &pdat)> init,
std::function< void(Tmerged &, T &)> appender )
inline

Definition at line 452 of file BasicSPHGhosts.hpp.

◆ merge_position_buf()

Definition at line 478 of file BasicSPHGhosts.hpp.

◆ modify_interface_native()

template<class vec>
template<class T>
void shammodels::sph::BasicSPHGhostHandler< vec >::modify_interface_native ( shambase::DistributedDataShared< InterfaceIdTable > & builder,
shambase::DistributedDataShared< T > & mod,
std::function< void(u64, u64, InterfaceBuildInfos, sham::DeviceBuffer< u32 > &, u32, T &)> fct )
inline

Definition at line 183 of file BasicSPHGhosts.hpp.

Member Data Documentation

◆ dim

template<class vec>
u32 shammodels::sph::BasicSPHGhostHandler< vec >::dim = shambase::VectorProperties<vec>::dimension
staticconstexpr

Definition at line 67 of file BasicSPHGhosts.hpp.

◆ patch_rank_owner

template<class vec>
std::shared_ptr<shamrock::solvergraph::RankGetter> shammodels::sph::BasicSPHGhostHandler< vec >::patch_rank_owner

Definition at line 88 of file BasicSPHGhosts.hpp.

◆ xyzh_ghost_layout

template<class vec>
std::shared_ptr<shamrock::patch::PatchDataLayerLayout>& shammodels::sph::BasicSPHGhostHandler< vec >::xyzh_ghost_layout

Definition at line 86 of file BasicSPHGhosts.hpp.


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