BioCMAMC-ST
Simulation::SimulationUnit Class Reference

#include <simulation.hpp>

Collaboration diagram for Simulation::SimulationUnit:
[legend]

Public Member Functions

 SimulationUnit (std::unique_ptr< MC::MonteCarloUnit > &&_unit, const ScalarInitializer &scalar_init, std::optional< Feed::SimulationFeed > _feed=std::nullopt)
 ~SimulationUnit ()
 SimulationUnit (SimulationUnit &&other) noexcept
 SimulationUnit (const SimulationUnit &other)=delete
SimulationUnitoperator= (SimulationUnit &&rhs)=delete
SimulationUnitoperator= (const SimulationUnit &rhs)=delete
const Simulation::Feed::SimulationFeedget_feed () const
ProbeAutogeneratedBufferget_probes ()
void setProbes (ProbeAutogeneratedBuffer &&_probes)
void setMtrModel (MassTransfer::Type::MtrTypeVariant &&variant)
void setLogger (std::shared_ptr< IO::Logger >)
double & get_start_time_mut ()
double & get_end_time_mut ()
Dimensions getDimensions () const noexcept
std::span< double > getCliqData () const
std::optional< std::span< const double > > getCgasData () const
std::span< const double > getContributionData () const
bool two_phase_flow () const
std::optional< std::span< const double > > getMTRData () const
std::span< double > getContributionData_mut ()
void cycleProcess (auto &container, double d_t, auto &_functors)
void step (double d_t) const
void clearContribution () const noexcept
void update_feed (double t, double d_t, bool update_scalar=true) noexcept
void updateHydro (const CmaUtils::IterationStatePtrType &newstate)
void updateMCHydro (std::span< const double > vl, std::span< const std::size_t > neighors_flat, std::span< const double > proba_flat, std::span< const double > out_flows)
bool checkScalar () const
void reset ()
template<typename Space, ModelType Model>
KernelInline::CycleFunctors< Space, Model > init_functors (MC::ParticlesContainer< Model > container)

Public Attributes

std::unique_ptr< MC::MonteCarloUnitmc_unit

Private Member Functions

void updateScalarHydro (const CmaUtils::IterationStatePtrType &newstate)
void setVolumes (const CmaUtils::IterationStatePtrType &newstate) const
void setLiquidFlow (CmaUtils::PreCalculatedHydroState *_flows_l)
void setGasFlow (CmaUtils::PreCalculatedHydroState *_flows_g)
void post_init_compartments ()
MC::KernelConcentrationType getkernel_concentration () const
void scatter_contribute ()
void set_kernel_contribs_to_host ()
kernelContribution get_kernel_contribution () const
void post_init_concentration (const ScalarInitializer &scalar_init)
template<ModelType Model>
void post_cycle (MC::ParticlesContainer< Model > &container, auto &cycle_functors)
template<ModelType Model>
void pre_cycle (MC::ParticlesContainer< Model > &container, double d_t, auto &functors)

Private Attributes

MC::ContributionView contribs_scatter
MapProbes probes
Simulation::Feed::SimulationFeed feed
bool const_number_simulation = true
bool is_two_phase_flow
double starting_time
double end_time {}
bool f_reaction = true
std::shared_ptr< ScalarSimulationliquid_scalar
std::shared_ptr< ScalarSimulationgas_scalar
MassTransfer::MassTransferModel mt_model
KernelInline::MoveInfo< ComputeSpace > move_info
std::shared_ptr< IO::Loggerlogger

Constructor & Destructor Documentation

◆ SimulationUnit() [1/3]

Simulation::SimulationUnit::SimulationUnit ( std::unique_ptr< MC::MonteCarloUnit > && _unit,
const ScalarInitializer & scalar_init,
std::optional< Feed::SimulationFeed > _feed = std::nullopt )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~SimulationUnit()

Simulation::SimulationUnit::~SimulationUnit ( )
default

◆ SimulationUnit() [2/3]

Simulation::SimulationUnit::SimulationUnit ( SimulationUnit && other)
defaultnoexcept
Here is the call graph for this function:

◆ SimulationUnit() [3/3]

Simulation::SimulationUnit::SimulationUnit ( const SimulationUnit & other)
delete
Here is the call graph for this function:

Member Function Documentation

◆ checkScalar()

bool Simulation::SimulationUnit::checkScalar ( ) const
Here is the call graph for this function:

◆ clearContribution()

void Simulation::SimulationUnit::clearContribution ( ) const
noexcept

◆ cycleProcess()

void Simulation::SimulationUnit::cycleProcess ( auto & container,
double d_t,
auto & _functors )
Here is the call graph for this function:

◆ get_end_time_mut()

double & Simulation::SimulationUnit::get_end_time_mut ( )
nodiscard

◆ get_feed()

const Simulation::Feed::SimulationFeed & Simulation::SimulationUnit::get_feed ( ) const
nodiscard

◆ get_kernel_contribution()

kernelContribution Simulation::SimulationUnit::get_kernel_contribution ( ) const
nodiscardprivate
Here is the caller graph for this function:

◆ get_probes()

ProbeAutogeneratedBuffer & Simulation::SimulationUnit::get_probes ( )
Here is the caller graph for this function:

◆ get_start_time_mut()

double & Simulation::SimulationUnit::get_start_time_mut ( )
nodiscard

◆ getCgasData()

std::optional< std::span< const double > > Simulation::SimulationUnit::getCgasData ( ) const
nodiscard
Here is the caller graph for this function:

◆ getCliqData()

std::span< double > Simulation::SimulationUnit::getCliqData ( ) const
nodiscard
Here is the caller graph for this function:

◆ getContributionData()

std::span< const double > Simulation::SimulationUnit::getContributionData ( ) const
nodiscard

◆ getContributionData_mut()

std::span< double > Simulation::SimulationUnit::getContributionData_mut ( )

◆ getDimensions()

Dimensions Simulation::SimulationUnit::getDimensions ( ) const
nodiscardnoexcept
Here is the caller graph for this function:

◆ getkernel_concentration()

MC::KernelConcentrationType Simulation::SimulationUnit::getkernel_concentration ( ) const
nodiscardprivate
Here is the caller graph for this function:

◆ getMTRData()

std::optional< std::span< const double > > Simulation::SimulationUnit::getMTRData ( ) const
nodiscard
Here is the caller graph for this function:

◆ init_functors()

template<typename Space, ModelType Model>
KernelInline::CycleFunctors< Space, Model > Simulation::SimulationUnit::init_functors ( MC::ParticlesContainer< Model > container)
Here is the call graph for this function:

◆ operator=() [1/2]

SimulationUnit & Simulation::SimulationUnit::operator= ( const SimulationUnit & rhs)
delete
Here is the call graph for this function:

◆ operator=() [2/2]

SimulationUnit & Simulation::SimulationUnit::operator= ( SimulationUnit && rhs)
delete
Here is the call graph for this function:

◆ post_cycle()

template<ModelType Model>
void Simulation::SimulationUnit::post_cycle ( MC::ParticlesContainer< Model > & container,
auto & cycle_functors )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ post_init_compartments()

void Simulation::SimulationUnit::post_init_compartments ( )
private
Here is the caller graph for this function:

◆ post_init_concentration()

void Simulation::SimulationUnit::post_init_concentration ( const ScalarInitializer & scalar_init)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pre_cycle()

template<ModelType Model>
void Simulation::SimulationUnit::pre_cycle ( MC::ParticlesContainer< Model > & container,
double d_t,
auto & functors )
private
Here is the caller graph for this function:

◆ reset()

void Simulation::SimulationUnit::reset ( )

◆ scatter_contribute()

void Simulation::SimulationUnit::scatter_contribute ( )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_kernel_contribs_to_host()

void Simulation::SimulationUnit::set_kernel_contribs_to_host ( )
private
Here is the caller graph for this function:

◆ setGasFlow()

void Simulation::SimulationUnit::setGasFlow ( CmaUtils::PreCalculatedHydroState * _flows_g)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setLiquidFlow()

void Simulation::SimulationUnit::setLiquidFlow ( CmaUtils::PreCalculatedHydroState * _flows_l)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setLogger()

void Simulation::SimulationUnit::setLogger ( std::shared_ptr< IO::Logger > _logger)

◆ setMtrModel()

void Simulation::SimulationUnit::setMtrModel ( MassTransfer::Type::MtrTypeVariant && variant)
Here is the caller graph for this function:

◆ setProbes()

void Simulation::SimulationUnit::setProbes ( ProbeAutogeneratedBuffer && _probes)

◆ setVolumes()

void Simulation::SimulationUnit::setVolumes ( const CmaUtils::IterationStatePtrType & newstate) const
private
Here is the caller graph for this function:

◆ step()

void Simulation::SimulationUnit::step ( double d_t) const

◆ two_phase_flow()

bool Simulation::SimulationUnit::two_phase_flow ( ) const
nodiscard

◆ update_feed()

void Simulation::SimulationUnit::update_feed ( double t,
double d_t,
bool update_scalar = true )
noexcept

◆ updateHydro()

void Simulation::SimulationUnit::updateHydro ( const CmaUtils::IterationStatePtrType & newstate)
Here is the call graph for this function:

◆ updateMCHydro()

void Simulation::SimulationUnit::updateMCHydro ( std::span< const double > vl,
std::span< const std::size_t > neighors_flat,
std::span< const double > proba_flat,
std::span< const double > out_flows )
Here is the caller graph for this function:

◆ updateScalarHydro()

void Simulation::SimulationUnit::updateScalarHydro ( const CmaUtils::IterationStatePtrType & newstate)
private
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ const_number_simulation

bool Simulation::SimulationUnit::const_number_simulation = true
private

◆ contribs_scatter

MC::ContributionView Simulation::SimulationUnit::contribs_scatter
private

◆ end_time

double Simulation::SimulationUnit::end_time {}
private

◆ f_reaction

bool Simulation::SimulationUnit::f_reaction = true
private

◆ feed

Simulation::Feed::SimulationFeed Simulation::SimulationUnit::feed
private

◆ gas_scalar

std::shared_ptr<ScalarSimulation> Simulation::SimulationUnit::gas_scalar
private

◆ is_two_phase_flow

bool Simulation::SimulationUnit::is_two_phase_flow
private

◆ liquid_scalar

std::shared_ptr<ScalarSimulation> Simulation::SimulationUnit::liquid_scalar
private

◆ logger

std::shared_ptr<IO::Logger> Simulation::SimulationUnit::logger
private

◆ mc_unit

std::unique_ptr<MC::MonteCarloUnit> Simulation::SimulationUnit::mc_unit

◆ move_info

KernelInline::MoveInfo<ComputeSpace> Simulation::SimulationUnit::move_info
private

◆ mt_model

MassTransfer::MassTransferModel Simulation::SimulationUnit::mt_model
private

◆ probes

MapProbes Simulation::SimulationUnit::probes
private

◆ starting_time

double Simulation::SimulationUnit::starting_time
private
Initial value:
=
0.

The documentation for this class was generated from the following files:
  • apps/libs/simulation/public/simulation/simulation.hpp
  • apps/libs/simulation/src/simulation.cpp
  • apps/libs/simulation/src/simulation.getset.cpp
  • apps/libs/simulation/src/simulation.model.cpp