Flow123d  release_2.1.2-337-g6b7a56b
radioactive_decay.hh
Go to the documentation of this file.
1 /*!
2  *
3  * Copyright (C) 2015 Technical University of Liberec. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU General Public License version 3 as published by the
7  * Free Software Foundation. (http://www.gnu.org/licenses/gpl-3.0.en.html)
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12  *
13  *
14  * @file radioactive_decay.hh
15  * @brief
16  */
17 
18 #ifndef RADIOACTIVE_DECAY_H_
19 #define RADIOACTIVE_DECAY_H_
20 
21 #include <vector>
22 
25 
26 class Mesh;
27 
28 /** @brief Class implements the radioactive decay chain.
29  *
30  * This class implements the user interface for radioactive decay chain and prepares the reaction matrix,
31  * The decay behaves like the linear reaction thus everything else is inherited from
32  * the @p FirstOrderReactionBase class.
33  *
34  * TODO: fix the mass balance - we do not take in account the emitted particles.
35  */
37 {
38 public:
40 
41  static const Input::Type::Record & get_input_type(); ///< Input record for class RadioactiveDecay.
42  static const Input::Type::Record & get_input_type_single_decay(); ///< Input record which defines particular decay step.
43  static const Input::Type::Record & get_input_type_product(); ///< Input record for a product of a radioactive decay.
44 
45  /// Constructor.
47 
48  /// Destructor.
49  ~RadioactiveDecay(void);
50 
51 
52 protected:
53  /// Initializes private members of sorption from the input record.
54  void initialize_from_input() override;
55 
56  /// Implements the assembly of the system matrix of the ODEs.
57  void assemble_ode_matrix(void) override;
58 
59  std::vector<double> half_lives_; ///< Half-lives of the substances.
60 
61 private:
62  /// Registrar of class to factory
63  static const int registrar;
64 };
65 
66 #endif // RADIOACTIVE_DECAY_H_
void assemble_ode_matrix(void) override
Implements the assembly of the system matrix of the ODEs.
static const Input::Type::Record & get_input_type_product()
Input record for a product of a radioactive decay.
~RadioactiveDecay(void)
Destructor.
Definition: mesh.h:97
Base class for linear reactions and decay chain.
void initialize_from_input() override
Initializes private members of sorption from the input record.
static const Input::Type::Record & get_input_type_single_decay()
Input record which defines particular decay step.
Mesh & mesh()
Definition: equation.hh:176
Class implements the radioactive decay chain.
Accessor to the data with type Type::Record.
Definition: accessors.hh:292
static const int registrar
Registrar of class to factory.
static const Input::Type::Record & get_input_type()
Input record for class RadioactiveDecay.
std::vector< double > half_lives_
Half-lives of the substances.
Record type proxy class.
Definition: type_record.hh:182
RadioactiveDecay(Mesh &mesh, Input::Record in_rec)
Constructor.
ReactionTerm FactoryBaseType