BioCMAMC-ST
MC::ReactorDomain Class Reference

Represents the spatial domain where Monte Carlo particles can exist. More...

#include <domain.hpp>

Collaboration diagram for MC::ReactorDomain:
[legend]

Public Types

using n_cells_view_type = Kokkos::View<uint64_t*, ComputeSpace>

Public Member Functions

 ReactorDomain (const ReactorDomain &)=delete
ReactorDomainoperator= (const ReactorDomain &)=delete
 ReactorDomain ()
 Default constructor.
 ReactorDomain (ReactorDomain &&other) noexcept=default
 Move constructor.
 ReactorDomain (std::span< double > volumes)
 Main constructor.
 ReactorDomain (double total_volume, std::size_t size)
 ~ReactorDomain ()=default
 Default destructor.
ReactorDomainoperator= (ReactorDomain &&other) noexcept
 Move assignment operator.
void update (std::span< const double > newliquid_volume, std::span< const std::size_t > neighors_flat, std::span< const double > out_flows, std::span< const double > proba_flat)
void set_leaving_flow (std::size_t i, std::size_t i_flow, double flow) const
void init_inner (const std::size_t n_flows)
MoveInfo< ComputeSpace, true > get_const_inner ()
size_t getNumberCompartments () const noexcept
 Return the number of compartment in the domain.
double getTotalVolume () const noexcept
 Return total volume of domain.
template<class Archive>
void save (Archive &ar) const
 Return a const reference to neighbors.
template<class Archive>
void load (Archive &ar)

Public Attributes

MoveInfo< ComputeSpace, false > inner

Private Member Functions

void setVolumes (std::span< double const > volumes_liq)
 Set volume of liquid and gas of each compartment.
void setLiquidNeighbors (std::size_t e1, std::size_t e2, std::span< const size_t > flat_data)
 Update neigbors of compartments.

Private Attributes

double _total_volume = 0.
 Domain total volume.
size_t id = 0
 Domain ID.
size_t size = 0
 Number of compartment.

Detailed Description

Represents the spatial domain where Monte Carlo particles can exist.

The ReactorDomain class models a spatial domain using a compartment-based approach. Each compartment within the domain holds and manages its own state through an instance of ContainerState. The compartments collectively represent the entire spatial domain in which particles interact, move, and evolve according to Monte Carlo simulations.

The ReactorDomain class is responsible for maintaining the structure and state of the compartments, and for providing access to the compartments for simulation and modeling purposes.

  • The domain is partitioned into multiple compartments, each represented by a ContainerState.
    See also
    ContainerState

Member Typedef Documentation

◆ n_cells_view_type

using MC::ReactorDomain::n_cells_view_type = Kokkos::View<uint64_t*, ComputeSpace>

Constructor & Destructor Documentation

◆ ReactorDomain() [1/5]

MC::ReactorDomain::ReactorDomain ( const ReactorDomain & )
delete
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReactorDomain() [2/5]

MC::ReactorDomain::ReactorDomain ( )

Default constructor.

Here is the call graph for this function:

◆ ReactorDomain() [3/5]

MC::ReactorDomain::ReactorDomain ( ReactorDomain && other)
defaultnoexcept

Move constructor.

Here is the call graph for this function:

◆ ReactorDomain() [4/5]

MC::ReactorDomain::ReactorDomain ( std::span< double > volumes)
explicit

Main constructor.

Here is the call graph for this function:

◆ ReactorDomain() [5/5]

MC::ReactorDomain::ReactorDomain ( double total_volume,
std::size_t size )

◆ ~ReactorDomain()

MC::ReactorDomain::~ReactorDomain ( )
default

Default destructor.

Here is the call graph for this function:

Member Function Documentation

◆ get_const_inner()

MoveInfo< ComputeSpace, true > MC::ReactorDomain::get_const_inner ( )
inlinenodiscard

◆ getNumberCompartments()

size_t MC::ReactorDomain::getNumberCompartments ( ) const
inlinenodiscardnoexcept

Return the number of compartment in the domain.

Here is the caller graph for this function:

◆ getTotalVolume()

double MC::ReactorDomain::getTotalVolume ( ) const
inlinenodiscardnoexcept

Return total volume of domain.

◆ init_inner()

void MC::ReactorDomain::init_inner ( const std::size_t n_flows)
Here is the call graph for this function:

◆ load()

template<class Archive>
void MC::ReactorDomain::load ( Archive & ar)
inline

◆ operator=() [1/2]

ReactorDomain & MC::ReactorDomain::operator= ( const ReactorDomain & )
delete
Here is the call graph for this function:

◆ operator=() [2/2]

ReactorDomain & MC::ReactorDomain::operator= ( ReactorDomain && other)
noexcept

Move assignment operator.

Here is the call graph for this function:

◆ save()

template<class Archive>
void MC::ReactorDomain::save ( Archive & ar) const
inline

Return a const reference to neighbors.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_leaving_flow()

void MC::ReactorDomain::set_leaving_flow ( std::size_t i,
std::size_t i_flow,
double flow ) const

◆ setLiquidNeighbors()

void MC::ReactorDomain::setLiquidNeighbors ( std::size_t e1,
std::size_t e2,
std::span< const size_t > flat_data )
private

Update neigbors of compartments.

Here is the caller graph for this function:

◆ setVolumes()

void MC::ReactorDomain::setVolumes ( std::span< double const > volumes_liq)
private

Set volume of liquid and gas of each compartment.

Here is the caller graph for this function:

◆ update()

void MC::ReactorDomain::update ( std::span< const double > newliquid_volume,
std::span< const std::size_t > neighors_flat,
std::span< const double > out_flows,
std::span< const double > proba_flat )
Here is the call graph for this function:

Member Data Documentation

◆ _total_volume

double MC::ReactorDomain::_total_volume = 0.
private

Domain total volume.

◆ id

size_t MC::ReactorDomain::id = 0
private

Domain ID.

◆ inner

MoveInfo<ComputeSpace, false> MC::ReactorDomain::inner

◆ size

size_t MC::ReactorDomain::size = 0
private

Number of compartment.


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