Flow123d  jenkins-Flow123d-linux-release-multijob-282
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
FirstOrderReaction Class Reference

Class implements the linear reactions. More...

#include <first_order_reaction.hh>

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

Public Member Functions

 FirstOrderReaction (Mesh &init_mesh, Input::Record in_rec)
 Constructor. More...
 
 ~FirstOrderReaction (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...
 
- 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)
 Output method. More...
 
void choose_next_time (void) override
 Disable changes in TimeGovernor by empty method. More...
 
ReactionTermsubstances (SubstanceList &substances)
 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
 Input record for class FirstOrderReaction. More...
 
static Input::Type::Record input_type_single_reaction
 Input record which defines particular reaction. More...
 
static Input::Type::Record input_type_reactant
 Input record for a reactant of a reaction. More...
 
static Input::Type::Record input_type_product
 Input record for a product of a reaction. More...
 
- 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

void assemble_ode_matrix (void) override
 Implements the assembly of the system matrix of the ODEs. More...
 
void initialize_from_input () override
 Initializes private members of sorption from the input record. 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 Member Functions inherited from ReactionTerm
virtual void output_vector_gather (void)
 

Protected Attributes

std::vector< double > reaction_rates_
 Vector of reaction rates of the transported 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...
 
LinearODESolverBaselinear_ode_solver_
 
- 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...
 
SubstanceList substances_
 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

Class implements the linear reactions.

This class implements the user interface for linear reactions and prepares the reaction matrix. Common features are inherited from the FirstOrderReactionBase class.

Definition at line 16 of file first_order_reaction.hh.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 50 of file first_order_reaction.cc.

FirstOrderReaction::~FirstOrderReaction ( void  )

Destructor.

Definition at line 55 of file first_order_reaction.cc.

Member Function Documentation

void FirstOrderReaction::assemble_ode_matrix ( void  )
overrideprotectedvirtual

Implements the assembly of the system matrix of the ODEs.

Implements FirstOrderReactionBase.

Definition at line 59 of file first_order_reaction.cc.

void FirstOrderReaction::initialize_from_input ( )
overrideprotectedvirtual

Initializes private members of sorption from the input record.

Implements FirstOrderReactionBase.

Definition at line 78 of file first_order_reaction.cc.

Member Data Documentation

Record FirstOrderReaction::input_type
static
Initial value:
= Record("FirstOrderReaction", "A model of first order chemical reactions (decompositions of a reactant into products).")
.derive_from( ReactionTerm::input_type )
.declare_key("reactions", Array( FirstOrderReaction::input_type_single_reaction), Default::obligatory(),
"An array of first order chemical reactions.")
.declare_key("ode_solver", LinearODESolverBase::input_type, Default::optional(),
"Numerical solver for the system of first order ordinary differential equations coming from the model.")

Input record for class FirstOrderReaction.

Definition at line 19 of file first_order_reaction.hh.

Record FirstOrderReaction::input_type_product
static
Initial value:
= Record("FirstOrderReactionProduct", "A record describing a product of a reaction.")
.allow_auto_conversion("name")
.declare_key("name", String(), Default::obligatory(),
"The name of the product.")
.declare_key("branching_ratio", Double(0.0), Default("1.0"),
"The branching ratio of the product when there are more products.\n"
"The value must be positive. Further, the branching ratios of all products are normalized "
"in order to sum to one.\n"
"The default value 1.0, should only be used in the case of single product.")

Input record for a product of a reaction.

Definition at line 22 of file first_order_reaction.hh.

Record FirstOrderReaction::input_type_reactant
static
Initial value:
= Record("FirstOrderReactionReactant", "A record describing a reactant of a reaction.")
.allow_auto_conversion("name")
.declare_key("name", String(), Default::obligatory(),
"The name of the reactant.")

Input record for a reactant of a reaction.

Definition at line 21 of file first_order_reaction.hh.

Record FirstOrderReaction::input_type_single_reaction
static
Initial value:
= Record("Reaction", "Describes a single first order chemical reaction.")
.declare_key("reactants", Array(FirstOrderReaction::input_type_reactant,1), Default::obligatory(),
"An array of reactants. Do not use array, reactions with only one reactant (decays) are implemented at the moment!")
.declare_key("reaction_rate", Double(0.0), Default::obligatory(),
"The reaction rate coefficient of the first order reaction.")
.declare_key("products", Array(FirstOrderReaction::input_type_product,1), Default::obligatory(),
"An array of products.")

Input record which defines particular reaction.

Definition at line 20 of file first_order_reaction.hh.

std::vector<double> FirstOrderReaction::reaction_rates_
protected

Vector of reaction rates of the transported substances.

Definition at line 38 of file first_order_reaction.hh.


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