Flow123d  jenkins-Flow123d-windows32-release-multijob-51
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
LinearReaction Class Reference

#include <linear_reaction.hh>

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

Public Member Functions

 LinearReaction (Mesh &init_mesh, Input::Record in_rec)
 Constructor. More...
 
 ~LinearReaction (void)
 Destructor. More...
 
void initialize () override
 Prepares the object to usage. More...
 
void zero_time_step () override
 
void update_solution (void) override
 Updates the solution. More...
 
- Public Member Functions inherited from ReactionTerm
 ReactionTerm (Mesh &init_mesh, Input::Record in_rec)
 Constructor. More...
 
 ~ReactionTerm (void)
 Destructor. More...
 
virtual void output_data (void)
 Output method. More...
 
void choose_next_time (void) override
 Disable changes in TimeGovernor by empty method. More...
 
ReactionTermnames (const std::vector< string > &names)
 Sets the names of substances considered in transport. More...
 
ReactionTermoutput_stream (OutputTime &ostream)
 Sets the output stream which is given from transport class. More...
 
ReactionTermconcentration_matrix (double **concentration, Distribution *conc_distr, int *el_4_loc, int *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)
 
virtual void set_time_lower_constraint (double dt)
 
TimeGovernor const & time ()
 
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 Attributes

static Input::Type::Record input_type
 
static Input::Type::Record input_type_one_decay_substep
 
- Static Public Attributes inherited from ReactionTerm
static Input::Type::AbstractRecord input_type = AbstractRecord("ReactionTerm", "Equation for reading information about simple chemical reactions.")
 
static Input::Type::Record input_type_output_record
 Specification of the output record. More...
 

Protected Member Functions

virtual void modify_reaction_matrix (void)
 
virtual double ** compute_reaction (double **concentrations, int loc_el) override
 
void reset_reaction_matrix ()
 Resets reaction matrix as eye matrix. More...
 
void initialize_from_input ()
 Initializes private members of sorption from the input record. More...
 
void print_reaction_matrix (void)
 
void print_indices (int dec_nr, int n_subst)
 
void print_half_lives ()
 
unsigned int find_subst_name (const std::string &name)
 
- Protected Member Functions inherited from ReactionTerm
virtual void output_vector_gather (void)
 

Protected Attributes

std::vector< std::vector
< double > > 
reaction_matrix_
 
std::vector< double > prev_conc_
 
std::vector< double > half_lives_
 
std::vector< std::vector
< unsigned int > > 
substance_ids_
 
std::vector< std::vector
< double > > 
bifurcation_
 
unsigned int n_substances_
 
- Protected Attributes inherited from ReactionTerm
double ** concentration_matrix_
 
int * el_4_loc_
 Indices of elements belonging to local dofs. More...
 
int * row_4_el_
 Indices of rows belonging to elements. More...
 
Distributiondistribution_
 Pointer to reference to distribution of elements between processors. More...
 
vector< string > names_
 Names belonging to substances. More...
 
OutputTimeoutput_stream_
 Pointer to a transport output stream. 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_
 

Detailed Description

Definition at line 20 of file linear_reaction.hh.

Constructor & Destructor Documentation

LinearReaction::LinearReaction ( Mesh init_mesh,
Input::Record  in_rec 
)

Constructor.

Definition at line 38 of file linear_reaction.cc.

LinearReaction::~LinearReaction ( void  )

Destructor.

Definition at line 43 of file linear_reaction.cc.

Member Function Documentation

double ** LinearReaction::compute_reaction ( double **  concentrations,
int  loc_el 
)
overrideprotectedvirtual

For simulation of chemical reaction in just one element either inside of MOBILE or IMMOBILE pores.

Implements ReactionTerm.

Definition at line 112 of file linear_reaction.cc.

Here is the caller graph for this function:

unsigned int LinearReaction::find_subst_name ( const std::string &  name)
protected

Finds a position of a string in specified array.

Definition at line 237 of file linear_reaction.cc.

Here is the caller graph for this function:

void LinearReaction::initialize ( )
overridevirtual

Prepares the object to usage.

Allocating memory, reading input, initialization of fields.

Reimplemented from EquationBase.

Reimplemented in PadeApproximant.

Definition at line 47 of file linear_reaction.cc.

Here is the caller graph for this function:

void LinearReaction::initialize_from_input ( )
protected

Initializes private members of sorption from the input record.

Definition at line 134 of file linear_reaction.cc.

Here is the caller graph for this function:

void LinearReaction::modify_reaction_matrix ( void  )
protectedvirtual

This method modificates reaction matrix as described in ini-file a single section [Decay_i] or [FoReact_i]. It is used when bifurcation is switched off.

Reimplemented in PadeApproximant.

Definition at line 86 of file linear_reaction.cc.

Here is the caller graph for this function:

void LinearReaction::print_half_lives ( )
protected

For printing (nr_of_isotopes - 1) doubles containing half-lives belonging to particular isotopes on screen.

Definition at line 228 of file linear_reaction.cc.

void LinearReaction::print_indices ( int  dec_nr,
int  n_subst 
)
protected

For printing nr_of_isotopes identifies of isotopes in a current decay chain.

void LinearReaction::print_reaction_matrix ( void  )
protected

For control printing of a matrix describing simple chemical raections.

Definition at line 209 of file linear_reaction.cc.

void LinearReaction::reset_reaction_matrix ( )
protected

Resets reaction matrix as eye matrix.

Definition at line 74 of file linear_reaction.cc.

Here is the caller graph for this function:

void LinearReaction::update_solution ( void  )
overridevirtual

Updates the solution.

Goes through local distribution of elements and calls compute_reaction.

Reimplemented from EquationBase.

Definition at line 192 of file linear_reaction.cc.

void LinearReaction::zero_time_step ( )
overridevirtual

Initialization of the solution in the zero time. There is lot of things that can not be done in the constructor since we have not fully initialized fields yet. Fields coming from coupling has to be set after the constructor and before zero_time_step.

Reimplemented from EquationBase.

Reimplemented in PadeApproximant.

Definition at line 64 of file linear_reaction.cc.

Here is the caller graph for this function:

Member Data Documentation

std::vector<std::vector<double> > LinearReaction::bifurcation_
protected

Two dimensional array contains mass percentage of every single decay bifurcation on every single row.

Definition at line 108 of file linear_reaction.hh.

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

Sequence of (nr_of_isotopes - 1) doubles containing half-lives belonging to particular isotopes.

Definition at line 100 of file linear_reaction.hh.

Record LinearReaction::input_type
static
Initial value:
= Record("LinearReactions", "Information for a decision about the way to simulate radioactive decay.")
.derive_from( ReactionTerm::input_type )
.declare_key("decays", Array( LinearReaction::input_type_one_decay_substep ), Default::obligatory(),
"Description of particular decay chain substeps.")

Static variable for new input data types input

Definition at line 26 of file linear_reaction.hh.

Record LinearReaction::input_type_one_decay_substep
static
Initial value:
= Record("Substep", "Equation for reading information about radioactive decays.")
.declare_key("parent", String(), Default::obligatory(),
"Identifier of an isotope.")
.declare_key("half_life", Double(), Default::optional(),
"Half life of the parent substance.")
.declare_key("kinetic", Double(), Default::optional(),
"Kinetic constants describing first order reactions.")
.declare_key("products", Array(String()), Default::obligatory(),
"Identifies isotopes which decays parental atom to.")
.declare_key("branch_ratios", Array(Double()), Default("1.0"),
"Decay chain branching percentage.")

Static variable gets information about particular decay step

Definition at line 30 of file linear_reaction.hh.

unsigned int LinearReaction::n_substances_
protected

Definition at line 110 of file linear_reaction.hh.

std::vector<double> LinearReaction::prev_conc_
protected

Pointer to reference previous concentration array used in compute_reaction().

Definition at line 96 of file linear_reaction.hh.

std::vector<std::vector<double> > LinearReaction::reaction_matrix_
protected

Small (nr_of_species x nr_of_species) square matrix for realization of radioactive decay and first order reactions simulation.

Definition at line 92 of file linear_reaction.hh.

std::vector< std::vector <unsigned int> > LinearReaction::substance_ids_
protected

Sequence of integers describing an order of isotopes in decay chain or first order reaction.

Definition at line 104 of file linear_reaction.hh.


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