Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
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 506 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 441 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.

+ Here is the call graph for this function:

◆ 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.

+ Here is the call graph for this function:

◆ build_position_interf_field()

Definition at line 293 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 322 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 390 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.

+ Here is the call graph for this function:

◆ 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 451 of file BasicSPHGhosts.hpp.

◆ merge_position_buf()

Definition at line 477 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 >
constexpr 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: