Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
pySPHModel.cpp File Reference
Include dependency graph for pySPHModel.cpp:

Go to the source code of this file.

Typedefs

using VariantSPHModelBind

Functions

template<class Tvec, template< class > class SPHKernel>
void add_instance (py::module &m, std::string name_config, std::string name_model)
template<class Tvec, template< class > class SPHKernel>
void add_analysisBarycenter_instance (py::module &m, const std::string &name_model)
template<class Tvec, template< class > class SPHKernel>
void add_analysisEnergyKinetic_instance (py::module &m, const std::string &name_model)
template<class Tvec, template< class > class SPHKernel>
void add_analysisEnergyPotential_instance (py::module &m, const std::string &name_model)
template<class Tvec, template< class > class SPHKernel>
void add_analysisTotalMomentum_instance (py::module &m, const std::string &name_model)
template<class Tvec, template< class > class SPHKernel>
void add_analysisAngularMomentum_instance (py::module &m, const std::string &name_model)
template<class Tvec, template< class > class SPHKernel>
void add_analysisDustMass_instance (py::module &m, const std::string &name_model)
template<class Analysis, typename Tvec, template< class > class SPHKernel>
auto analysis_impl (shammodels::sph::Model< Tvec, SPHKernel > &model) -> Analysis
template<template< class, template< class > class > class Analysis>
void register_analysis_impl_for_each_kernel (py::module &msph, const char *name_class)
&EvolveUntilResults::reach_target_time def_readwrite ("reach_niter_max", &EvolveUntilResults::reach_niter_max) .def_readwrite("reach_max_walltime"
&EvolveUntilResults::reach_target_time &EvolveUntilResults::reach_max_walltime def_readwrite ("iter_count", &EvolveUntilResults::iter_count) .def("__repr__"
 add_instance< f64_3, shammath::M4 > (msph, "SPHModel_f64_3_M4_SolverConfig", "SPHModel_f64_3_M4")
 add_instance< f64_3, shammath::M6 > (msph, "SPHModel_f64_3_M6_SolverConfig", "SPHModel_f64_3_M6")
 add_instance< f64_3, shammath::M8 > (msph, "SPHModel_f64_3_M8_SolverConfig", "SPHModel_f64_3_M8")
 add_instance< f64_3, shammath::C2 > (msph, "SPHModel_f64_3_C2_SolverConfig", "SPHModel_f64_3_C2")
 add_instance< f64_3, shammath::C4 > (msph, "SPHModel_f64_3_C4_SolverConfig", "SPHModel_f64_3_C4")
 add_instance< f64_3, shammath::C6 > (msph, "SPHModel_f64_3_C6_SolverConfig", "SPHModel_f64_3_C6")
def ("get_Model_SPH", [](ShamrockCtx &ctx, const std::string &vector_type, const std::string &kernel) -> VariantSPHModelBind { VariantSPHModelBind ret;if(vector_type=="f64_3" &&kernel=="M4") { ret=std::make_unique< Model< f64_3, shammath::M4 > >(ctx);} else if(vector_type=="f64_3" &&kernel=="M6") { ret=std::make_unique< Model< f64_3, shammath::M6 > >(ctx);} else if(vector_type=="f64_3" &&kernel=="M8") { ret=std::make_unique< Model< f64_3, shammath::M8 > >(ctx);} else if(vector_type=="f64_3" &&kernel=="C2") { ret=std::make_unique< Model< f64_3, shammath::C2 > >(ctx);} else if(vector_type=="f64_3" &&kernel=="C4") { ret=std::make_unique< Model< f64_3, shammath::C4 > >(ctx);} else if(vector_type=="f64_3" &&kernel=="C6") { ret=std::make_unique< Model< f64_3, shammath::C6 > >(ctx);} else { throw shambase::make_except_with_loc< std::invalid_argument >("unknown combination of representation and kernel");} return ret;}, py::kw_only(), py::arg("context"), py::arg("vector_type"), py::arg("sph_kernel"))
 py::class_< shammodels::sph::modules::ISPHSetupNode, std::shared_ptr< shammodels::sph::modules::ISPHSetupNode > > (msph, "ISPHSetupNode") .def("get_dot"
py::class_< shammodels::sph::TimestepLog >(msph, "TimestepLog") .def(py add_analysisBarycenter_instance< f64_3, shammath::M4 > (msph, "AnalysisBarycenter_f64_3_M4")
 add_analysisBarycenter_instance< f64_3, shammath::M6 > (msph, "AnalysisBarycenter_f64_3_M6")
 add_analysisBarycenter_instance< f64_3, shammath::M8 > (msph, "AnalysisBarycenter_f64_3_M8")
 add_analysisBarycenter_instance< f64_3, shammath::C2 > (msph, "AnalysisBarycenter_f64_3_C2")
 add_analysisBarycenter_instance< f64_3, shammath::C4 > (msph, "AnalysisBarycenter_f64_3_C4")
 add_analysisBarycenter_instance< f64_3, shammath::C6 > (msph, "AnalysisBarycenter_f64_3_C6")
 add_analysisEnergyKinetic_instance< f64_3, shammath::M4 > (msph, "AnalysisEnergyKinetic_f64_3_M4")
 add_analysisEnergyKinetic_instance< f64_3, shammath::M6 > (msph, "AnalysisEnergyKinetic_f64_3_M6")
 add_analysisEnergyKinetic_instance< f64_3, shammath::M8 > (msph, "AnalysisEnergyKinetic_f64_3_M8")
 add_analysisEnergyKinetic_instance< f64_3, shammath::C2 > (msph, "AnalysisEnergyKinetic_f64_3_C2")
 add_analysisEnergyKinetic_instance< f64_3, shammath::C4 > (msph, "AnalysisEnergyKinetic_f64_3_C4")
 add_analysisEnergyKinetic_instance< f64_3, shammath::C6 > (msph, "AnalysisEnergyKinetic_f64_3_C6")
 add_analysisEnergyPotential_instance< f64_3, shammath::M4 > (msph, "AnalysisEnergyPotential_f64_3_M4")
 add_analysisEnergyPotential_instance< f64_3, shammath::M6 > (msph, "AnalysisEnergyPotential_f64_3_M6")
 add_analysisEnergyPotential_instance< f64_3, shammath::M8 > (msph, "AnalysisEnergyPotential_f64_3_M8")
 add_analysisEnergyPotential_instance< f64_3, shammath::C2 > (msph, "AnalysisEnergyPotential_f64_3_C2")
 add_analysisEnergyPotential_instance< f64_3, shammath::C4 > (msph, "AnalysisEnergyPotential_f64_3_C4")
 add_analysisEnergyPotential_instance< f64_3, shammath::C6 > (msph, "AnalysisEnergyPotential_f64_3_C6")
 add_analysisTotalMomentum_instance< f64_3, shammath::M4 > (msph, "AnalysisTotalMomentum_f64_3_M4")
 add_analysisTotalMomentum_instance< f64_3, shammath::M6 > (msph, "AnalysisTotalMomentum_f64_3_M6")
 add_analysisTotalMomentum_instance< f64_3, shammath::M8 > (msph, "AnalysisTotalMomentum_f64_3_M8")
 add_analysisTotalMomentum_instance< f64_3, shammath::C2 > (msph, "AnalysisTotalMomentum_f64_3_C2")
 add_analysisTotalMomentum_instance< f64_3, shammath::C4 > (msph, "AnalysisTotalMomentum_f64_3_C4")
 add_analysisTotalMomentum_instance< f64_3, shammath::C6 > (msph, "AnalysisTotalMomentum_f64_3_C6")
 add_analysisAngularMomentum_instance< f64_3, shammath::M4 > (msph, "AnalysisAngularMomentum_f64_3_M4")
 add_analysisAngularMomentum_instance< f64_3, shammath::M6 > (msph, "AnalysisAngularMomentum_f64_3_M6")
 add_analysisAngularMomentum_instance< f64_3, shammath::M8 > (msph, "AnalysisAngularMomentum_f64_3_M8")
 add_analysisAngularMomentum_instance< f64_3, shammath::C2 > (msph, "AnalysisAngularMomentum_f64_3_C2")
 add_analysisAngularMomentum_instance< f64_3, shammath::C4 > (msph, "AnalysisAngularMomentum_f64_3_C4")
 add_analysisAngularMomentum_instance< f64_3, shammath::C6 > (msph, "AnalysisAngularMomentum_f64_3_C6")
 register_analysis_impl_for_each_kernel< modules::AnalysisBarycenter > (msph, "analysisBarycenter")
 register_analysis_impl_for_each_kernel< modules::AnalysisEnergyKinetic > (msph, "analysisEnergyKinetic")
 register_analysis_impl_for_each_kernel< modules::AnalysisEnergyPotential > (msph, "analysisEnergyPotential")
 register_analysis_impl_for_each_kernel< modules::AnalysisTotalMomentum > (msph, "analysisTotalMomentum")
 register_analysis_impl_for_each_kernel< modules::AnalysisAngularMomentum > (msph, "analysisAngularMomentum")
 add_analysisDustMass_instance< f64_3, shammath::M4 > (msph, "AnalysisDustMass_f64_3_M4")
 add_analysisDustMass_instance< f64_3, shammath::M6 > (msph, "AnalysisDustMass_f64_3_M6")
 add_analysisDustMass_instance< f64_3, shammath::M8 > (msph, "AnalysisDustMass_f64_3_M8")
 add_analysisDustMass_instance< f64_3, shammath::C2 > (msph, "AnalysisDustMass_f64_3_C2")
 add_analysisDustMass_instance< f64_3, shammath::C4 > (msph, "AnalysisDustMass_f64_3_C4")
 add_analysisDustMass_instance< f64_3, shammath::C6 > (msph, "AnalysisDustMass_f64_3_C6")
 register_analysis_impl_for_each_kernel< modules::AnalysisDustMass > (msph, "analysisDustMass")

Variables

 ON_PYTHON_INIT
py::module msph = m.def_submodule("model_sph", "Shamrock sph solver")
&EvolveUntilResults::reach_target_time &EvolveUntilResults::reach_max_walltime const EvolveUntilResultsself

Detailed Description

Typedef Documentation

◆ VariantSPHModelBind

using VariantSPHModelBind
Initial value:
std::variant<
std::unique_ptr<Model<f64_3, shammath::M4>>,
std::unique_ptr<Model<f64_3, shammath::M6>>,
std::unique_ptr<Model<f64_3, shammath::M8>>,
std::unique_ptr<Model<f64_3, shammath::C2>>,
std::unique_ptr<Model<f64_3, shammath::C4>>,
std::unique_ptr<Model<f64_3, shammath::C6>>>

Definition at line 1643 of file pySPHModel.cpp.

Function Documentation

◆ add_analysisAngularMomentum_instance()

template<class Tvec, template< class > class SPHKernel>
void add_analysisAngularMomentum_instance ( py::module & m,
const std::string & name_model )

Definition at line 1514 of file pySPHModel.cpp.

◆ add_analysisBarycenter_instance()

template<class Tvec, template< class > class SPHKernel>
void add_analysisBarycenter_instance ( py::module & m,
const std::string & name_model )

Definition at line 1448 of file pySPHModel.cpp.

◆ add_analysisDustMass_instance()

template<class Tvec, template< class > class SPHKernel>
void add_analysisDustMass_instance ( py::module & m,
const std::string & name_model )

Definition at line 1530 of file pySPHModel.cpp.

◆ add_analysisEnergyKinetic_instance()

template<class Tvec, template< class > class SPHKernel>
void add_analysisEnergyKinetic_instance ( py::module & m,
const std::string & name_model )

Definition at line 1466 of file pySPHModel.cpp.

◆ add_analysisEnergyPotential_instance()

template<class Tvec, template< class > class SPHKernel>
void add_analysisEnergyPotential_instance ( py::module & m,
const std::string & name_model )

Definition at line 1482 of file pySPHModel.cpp.

◆ add_analysisTotalMomentum_instance()

template<class Tvec, template< class > class SPHKernel>
void add_analysisTotalMomentum_instance ( py::module & m,
const std::string & name_model )

Definition at line 1498 of file pySPHModel.cpp.

◆ add_instance()

template<class Tvec, template< class > class SPHKernel>
void add_instance ( py::module & m,
std::string name_config,
std::string name_model )

Definition at line 51 of file pySPHModel.cpp.

◆ analysis_impl()

template<class Analysis, typename Tvec, template< class > class SPHKernel>
auto analysis_impl ( shammodels::sph::Model< Tvec, SPHKernel > & model) ->Analysis

Definition at line 1548 of file pySPHModel.cpp.

◆ register_analysis_impl_for_each_kernel()

template<template< class, template< class > class > class Analysis>
void register_analysis_impl_for_each_kernel ( py::module & msph,
const char * name_class )

Definition at line 1553 of file pySPHModel.cpp.

Variable Documentation

◆ msph

py::module msph = m.def_submodule("model_sph", "Shamrock sph solver")

Definition at line 1616 of file pySPHModel.cpp.

◆ ON_PYTHON_INIT

ON_PYTHON_INIT
Initial value:
{
auto &m = root_module

Definition at line 1613 of file pySPHModel.cpp.

◆ self

Initial value:
{
return shambase::format(
"EvolveUntilResults(reach_target_time={}, reach_niter_max={}, "
"reach_max_walltime={}, iter_count={})",
self.reach_target_time,
self.reach_niter_max,
self.reach_max_walltime,
self.iter_count)

Definition at line 1623 of file pySPHModel.cpp.