Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
shammodels::sph::modules::SPHSetup< Tvec, SPHKernel > Class Template Reference
+ Collaboration diagram for shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >:

Public Types

using Tscal = shambase::VecComponent< Tvec >
 
using Kernel = SPHKernel< Tscal >
 
using Config = SolverConfig< Tvec, SPHKernel >
 
using Storage = SolverStorage< Tvec, u32 >
 

Public Member Functions

 SPHSetup (ShamrockCtx &context, Config &solver_config, Storage &storage)
 
void apply_setup (SetupNodePtr setup, bool part_reordering, std::optional< u32 > insert_step=std::nullopt)
 
void apply_setup_new (SetupNodePtr setup, bool part_reordering, std::optional< u32 > gen_count_per_step=std::nullopt, std::optional< u32 > insert_count_per_step=std::nullopt, std::optional< u64 > max_msg_count_per_rank_per_step=std::nullopt, std::optional< u64 > max_data_count_per_rank_per_step=std::nullopt, std::optional< u64 > max_msg_size=std::nullopt, bool do_setup_log=false, bool speculative_balancing=false)
 
std::shared_ptr< ISPHSetupNodemake_generator_lattice_hcp (Tscal dr, std::pair< Tvec, Tvec > box, bool discontinuous=true)
 
std::shared_ptr< ISPHSetupNodemake_generator_lattice_cubic (Tscal dr, std::pair< Tvec, Tvec > box)
 
std::shared_ptr< ISPHSetupNodemake_generator_disc_mc (Tscal part_mass, Tscal disc_mass, Tscal r_in, Tscal r_out, std::function< Tscal(Tscal)> sigma_profile, std::function< Tscal(Tscal)> H_profile, std::function< Tscal(Tscal)> rot_profile, std::function< Tscal(Tscal)> cs_profile, std::mt19937_64 eng, Tscal init_h_factor)
 
std::shared_ptr< ISPHSetupNodemake_generator_from_context (ShamrockCtx &context_other)
 
std::shared_ptr< ISPHSetupNodemake_combiner_add (SetupNodePtr parent1, SetupNodePtr parent2)
 
std::shared_ptr< ISPHSetupNodemake_modifier_warp_disc (SetupNodePtr parent, Tscal Rwarp, Tscal Hwarp, Tscal inclination, Tscal posangle)
 
std::shared_ptr< ISPHSetupNodemake_modifier_custom_warp (SetupNodePtr parent, std::function< Tscal(Tscal)> inc_profile, std::function< Tscal(Tscal)> psi_profile, std::function< Tvec(Tscal)> k_profile)
 
std::shared_ptr< ISPHSetupNodemake_modifier_add_offset (SetupNodePtr parent, Tvec offset_postion, Tvec offset_velocity)
 
std::shared_ptr< ISPHSetupNodemake_modifier_filter (SetupNodePtr parent, std::function< bool(Tvec)> filter)
 
std::shared_ptr< ISPHSetupNodemake_modifier_split_part (SetupNodePtr parent, u64 n_split, u64 seed, Tscal h_scaling)
 

Public Attributes

ShamrockCtxcontext
 
Configsolver_config
 
Storagestorage
 

Static Public Attributes

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

Detailed Description

template<class Tvec, template< class > class SPHKernel>
class shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >

Definition at line 31 of file SPHSetup.hpp.

Member Typedef Documentation

◆ Config

template<class Tvec , template< class > class SPHKernel>
using shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::Config = SolverConfig<Tvec, SPHKernel>

Definition at line 37 of file SPHSetup.hpp.

◆ Kernel

template<class Tvec , template< class > class SPHKernel>
using shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::Kernel = SPHKernel<Tscal>

Definition at line 35 of file SPHSetup.hpp.

◆ Storage

template<class Tvec , template< class > class SPHKernel>
using shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::Storage = SolverStorage<Tvec, u32>

Definition at line 38 of file SPHSetup.hpp.

◆ Tscal

template<class Tvec , template< class > class SPHKernel>
using shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::Tscal = shambase::VecComponent<Tvec>

Definition at line 33 of file SPHSetup.hpp.

Constructor & Destructor Documentation

◆ SPHSetup()

template<class Tvec , template< class > class SPHKernel>
shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::SPHSetup ( ShamrockCtx context,
Config solver_config,
Storage storage 
)
inline

Definition at line 44 of file SPHSetup.hpp.

Member Function Documentation

◆ apply_setup()

template<class Tvec , template< class > class SPHKernel>
void shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::apply_setup ( SetupNodePtr  setup,
bool  part_reordering,
std::optional< u32 insert_step = std::nullopt 
)

Definition at line 111 of file SPHSetup.cpp.

◆ apply_setup_new()

template<class Tvec , template< class > class SPHKernel>
void shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::apply_setup_new ( SetupNodePtr  setup,
bool  part_reordering,
std::optional< u32 gen_count_per_step = std::nullopt,
std::optional< u32 insert_count_per_step = std::nullopt,
std::optional< u64 max_msg_count_per_rank_per_step = std::nullopt,
std::optional< u64 max_data_count_per_rank_per_step = std::nullopt,
std::optional< u64 max_msg_size = std::nullopt,
bool  do_setup_log = false,
bool  speculative_balancing = false 
)

Definition at line 265 of file SPHSetup.cpp.

◆ make_combiner_add()

template<class Tvec , template< class > class SPHKernel>
std::shared_ptr< shammodels::sph::modules::ISPHSetupNode > shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::make_combiner_add ( SetupNodePtr  parent1,
SetupNodePtr  parent2 
)
inline

Definition at line 106 of file SPHSetup.cpp.

◆ make_generator_disc_mc()

template<class Tvec , template< class > class SPHKernel>
std::shared_ptr< shammodels::sph::modules::ISPHSetupNode > shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::make_generator_disc_mc ( Tscal  part_mass,
Tscal  disc_mass,
Tscal  r_in,
Tscal  r_out,
std::function< Tscal(Tscal)>  sigma_profile,
std::function< Tscal(Tscal)>  H_profile,
std::function< Tscal(Tscal)>  rot_profile,
std::function< Tscal(Tscal)>  cs_profile,
std::mt19937_64  eng,
Tscal  init_h_factor 
)
inline

Definition at line 71 of file SPHSetup.cpp.

◆ make_generator_from_context()

template<class Tvec , template< class > class SPHKernel>
std::shared_ptr< shammodels::sph::modules::ISPHSetupNode > shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::make_generator_from_context ( ShamrockCtx context_other)
inline

Definition at line 99 of file SPHSetup.cpp.

◆ make_generator_lattice_cubic()

template<class Tvec , template< class > class SPHKernel>
std::shared_ptr< shammodels::sph::modules::ISPHSetupNode > shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::make_generator_lattice_cubic ( Tscal  dr,
std::pair< Tvec, Tvec >  box 
)
inline

Definition at line 65 of file SPHSetup.cpp.

◆ make_generator_lattice_hcp()

template<class Tvec , template< class > class SPHKernel>
std::shared_ptr< shammodels::sph::modules::ISPHSetupNode > shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::make_generator_lattice_hcp ( Tscal  dr,
std::pair< Tvec, Tvec >  box,
bool  discontinuous = true 
)
inline

Definition at line 52 of file SPHSetup.cpp.

◆ make_modifier_add_offset()

template<class Tvec , template< class > class SPHKernel>
std::shared_ptr< shammodels::sph::modules::ISPHSetupNode > shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::make_modifier_add_offset ( SetupNodePtr  parent,
Tvec  offset_postion,
Tvec  offset_velocity 
)
inline

Definition at line 1050 of file SPHSetup.cpp.

◆ make_modifier_custom_warp()

template<class Tvec , template< class > class SPHKernel>
std::shared_ptr< shammodels::sph::modules::ISPHSetupNode > shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::make_modifier_custom_warp ( SetupNodePtr  parent,
std::function< Tscal(Tscal)>  inc_profile,
std::function< Tscal(Tscal)>  psi_profile,
std::function< Tvec(Tscal)>  k_profile 
)
inline

Definition at line 1039 of file SPHSetup.cpp.

◆ make_modifier_filter()

template<class Tvec , template< class > class SPHKernel>
std::shared_ptr< shammodels::sph::modules::ISPHSetupNode > shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::make_modifier_filter ( SetupNodePtr  parent,
std::function< bool(Tvec)>  filter 
)
inline

Definition at line 1060 of file SPHSetup.cpp.

◆ make_modifier_split_part()

template<class Tvec , template< class > class SPHKernel>
std::shared_ptr< shammodels::sph::modules::ISPHSetupNode > shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::make_modifier_split_part ( SetupNodePtr  parent,
u64  n_split,
u64  seed,
Tscal  h_scaling 
)
inline

Definition at line 1068 of file SPHSetup.cpp.

◆ make_modifier_warp_disc()

template<class Tvec , template< class > class SPHKernel>
std::shared_ptr< shammodels::sph::modules::ISPHSetupNode > shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::make_modifier_warp_disc ( SetupNodePtr  parent,
Tscal  Rwarp,
Tscal  Hwarp,
Tscal  inclination,
Tscal  posangle 
)
inline

Definition at line 1031 of file SPHSetup.cpp.

Member Data Documentation

◆ context

template<class Tvec , template< class > class SPHKernel>
ShamrockCtx& shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::context

Definition at line 40 of file SPHSetup.hpp.

◆ dim

template<class Tvec , template< class > class SPHKernel>
constexpr u32 shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::dim = shambase::VectorProperties<Tvec>::dimension
staticconstexpr

Definition at line 34 of file SPHSetup.hpp.

◆ solver_config

template<class Tvec , template< class > class SPHKernel>
Config& shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::solver_config

Definition at line 41 of file SPHSetup.hpp.

◆ storage

template<class Tvec , template< class > class SPHKernel>
Storage& shammodels::sph::modules::SPHSetup< Tvec, SPHKernel >::storage

Definition at line 42 of file SPHSetup.hpp.


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