Flow123d  release_3.0.0-955-g4db4b48
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Private Attributes | List of all members
RadioactiveDecay Class Reference

Class implements the radioactive decay chain. More...

#include <radioactive_decay.hh>

Inheritance diagram for RadioactiveDecay:
Inheritance graph
[legend]
Collaboration diagram for RadioactiveDecay:
Collaboration graph
[legend]

Public Types

typedef ReactionTerm FactoryBaseType
 

Public Member Functions

 RadioactiveDecay (Mesh &mesh, Input::Record in_rec)
 Constructor. More...
 
 ~RadioactiveDecay (void)
 Destructor. More...
 
- Public Member Functions inherited from FirstOrderReactionBase
 FirstOrderReactionBase (Mesh &init_mesh, Input::Record in_rec)
 Constructor. More...
 
 ~FirstOrderReactionBase (void)
 Destructor. More...
 
void initialize () override
 Prepares the object to usage. More...
 
void zero_time_step () override
 Moves the model to zero time. More...
 
void update_solution (void) override
 Updates the solution. More...
 
bool evaluate_time_constraint (double &time_constraint) override
 Computes a constraint for time step. More...
 
- Public Member Functions inherited from ReactionTerm
 TYPEDEF_ERR_INFO (EI_Substance, std::string)
 
 TYPEDEF_ERR_INFO (EI_Model, std::string)
 
 DECLARE_INPUT_EXCEPTION (ExcUnknownSubstance,<< "Unknown substance name: "<< EI_Substance::qval)
 
 DECLARE_INPUT_EXCEPTION (ExcWrongDescendantModel,<< "Impossible descendant model: "<< EI_Model::qval)
 
 ReactionTerm (Mesh &init_mesh, Input::Record in_rec)
 Constructor. More...
 
 ~ReactionTerm (void)
 Destructor. More...
 
virtual void output_data (void) override
 Output method. More...
 
void choose_next_time (void) override
 Disable changes in TimeGovernor by empty method. More...
 
ReactionTermset_dh (std::shared_ptr< DOFHandlerMultiDim > dof_handler)
 Sets the pointer to DOF handler (shared through the reaction tree) More...
 
ReactionTermsubstances (SubstanceList &substances)
 Sets the names of substances considered in transport. More...
 
ReactionTermoutput_stream (std::shared_ptr< OutputTime > ostream)
 Sets the output stream which is given from transport class. More...
 
ReactionTermconcentration_matrix (double **concentration, Distribution *conc_distr, LongIdx *el_4_loc, LongIdx *row_4_el)
 
- Public Member Functions inherited from EquationBase
 EquationBase ()
 
 EquationBase (Mesh &mesh, const Input::Record in_rec)
 
virtual ~EquationBase ()
 
virtual void set_time_upper_constraint (double dt, std::string message)
 
virtual void set_time_lower_constraint (double dt, std::string message)
 
TimeGovernortime ()
 
virtual void set_time_governor (TimeGovernor &time)
 
double planned_time ()
 
double solved_time ()
 
Meshmesh ()
 
TimeMark::Type mark_type ()
 
FieldSetdata ()
 
virtual void get_solution_vector (double *&vector, unsigned int &size)
 
virtual void get_parallel_solution_vector (Vec &vector)
 

Static Public Member Functions

static const Input::Type::Recordget_input_type ()
 Input record for class RadioactiveDecay. More...
 
static const Input::Type::Recordget_input_type_single_decay ()
 Input record which defines particular decay step. More...
 
static const Input::Type::Recordget_input_type_product ()
 Input record for a product of a radioactive decay. More...
 
- Static Public Member Functions inherited from ReactionTerm
static Input::Type::Abstractit_abstract_term ()
 
static Input::Type::Abstractit_abstract_mobile_term ()
 
static Input::Type::Abstractit_abstract_immobile_term ()
 
static Input::Type::Abstractit_abstract_reaction ()
 

Protected Member Functions

void initialize_from_input () override
 Initializes private members of sorption from the input record. More...
 
void assemble_ode_matrix (void) override
 Implements the assembly of the system matrix of the ODEs. More...
 
- Protected Member Functions inherited from FirstOrderReactionBase
virtual double ** compute_reaction (double **concentrations, int loc_el) override
 Computes the reaction on a specified element. More...
 
unsigned int find_subst_name (const std::string &name)
 

Protected Attributes

std::vector< double > half_lives_
 Half-lives of the substances. More...
 
- Protected Attributes inherited from FirstOrderReactionBase
std::vector< std::vector< unsigned int > > substance_ids_
 
std::vector< std::vector< double > > bifurcation_
 
unsigned int n_substances_
 Number of all transported substances. It is the dimension of the reaction matrix. More...
 
arma::mat reaction_matrix_
 Reaction matrix. More...
 
arma::vec prev_conc_
 Column vector storing previous concetrations on an element. More...
 
arma::mat molar_matrix_
 Diagonal matrix with molar masses of substances. More...
 
arma::mat molar_mat_inverse_
 Inverse of molar_matrix_. More...
 
std::shared_ptr< LinearODESolverlinear_ode_solver_
 
- Protected Attributes inherited from ReactionTerm
double ** concentration_matrix_
 
LongIdxel_4_loc_
 Indices of elements belonging to local dofs. More...
 
LongIdxrow_4_el_
 Indices of rows belonging to elements. More...
 
Distributiondistribution_
 Pointer to reference to distribution of elements between processors. More...
 
SubstanceList substances_
 Names belonging to substances. More...
 
std::shared_ptr< OutputTimeoutput_stream_
 Pointer to a transport output stream. More...
 
std::shared_ptr< DOFHandlerMultiDimdof_handler_
 Pointer to DOF handler used through the reaction tree. More...
 
- Protected Attributes inherited from EquationBase
bool equation_empty_
 flag is true if only default constructor was called More...
 
Meshmesh_
 
TimeGovernortime_
 
Input::Record input_record_
 
FieldSeteq_data_
 
std::shared_ptr< Balancebalance_
 object for calculation and writing the mass balance to file. More...
 

Static Private Attributes

static const int registrar
 Registrar of class to factory. More...
 

Detailed Description

Class implements the radioactive decay chain.

This class implements the user interface for radioactive decay chain and prepares the reaction matrix, The decay behaves like the linear reaction thus everything else is inherited from the FirstOrderReactionBase class.

TODO: fix the mass balance - we do not take in account the emitted particles.

Definition at line 43 of file radioactive_decay.hh.

Member Typedef Documentation

Definition at line 46 of file radioactive_decay.hh.

Constructor & Destructor Documentation

RadioactiveDecay::RadioactiveDecay ( Mesh mesh,
Input::Record  in_rec 
)

Constructor.

Definition at line 78 of file radioactive_decay.cc.

RadioactiveDecay::~RadioactiveDecay ( void  )

Destructor.

Definition at line 83 of file radioactive_decay.cc.

Member Function Documentation

void RadioactiveDecay::assemble_ode_matrix ( void  )
overrideprotectedvirtual

Implements the assembly of the system matrix of the ODEs.

Implements FirstOrderReactionBase.

Definition at line 149 of file radioactive_decay.cc.

const Record & RadioactiveDecay::get_input_type ( )
static

Input record for class RadioactiveDecay.

Definition at line 61 of file radioactive_decay.cc.

const Record & RadioactiveDecay::get_input_type_product ( )
static

Input record for a product of a radioactive decay.

Definition at line 35 of file radioactive_decay.cc.

Here is the caller graph for this function:

const Record & RadioactiveDecay::get_input_type_single_decay ( )
static

Input record which defines particular decay step.

Definition at line 50 of file radioactive_decay.cc.

Here is the caller graph for this function:

void RadioactiveDecay::initialize_from_input ( )
overrideprotectedvirtual

Initializes private members of sorption from the input record.

Implements FirstOrderReactionBase.

Definition at line 88 of file radioactive_decay.cc.

Member Data Documentation

std::vector<double> RadioactiveDecay::half_lives_
protected

Half-lives of the substances.

Definition at line 66 of file radioactive_decay.hh.

const int RadioactiveDecay::registrar
staticprivate
Initial value:
=
Input::register_class< RadioactiveDecay, Mesh &, Input::Record >("RadioactiveDecay") +

Registrar of class to factory.

Definition at line 70 of file radioactive_decay.hh.


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