Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
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< Tvec(Tvec)> vel_profile, std::function< Tscal(Tvec)> 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
Config & solver_config
Storage & storage

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< Tvec(Tvec)> vel_profile,
std::function< Tscal(Tvec)> 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>
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: