Flow123d
master-f7bc289
|
Class implements the linear reactions. More...
#include <first_order_reaction.hh>
Public Types | |
typedef ReactionTerm | FactoryBaseType |
Public Types inherited from ReactionTerm | |
typedef std::vector< std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > > | FieldFEScalarVec |
Public Member Functions | |
DECLARE_EXCEPTION (ExcTooManyReactants,<< "More than one reactant is not available at the moment.\n") | |
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) | |
~ReactionTerm (void) | |
Destructor. More... | |
ReactionTerm & | substances (SubstanceList &substances) |
Sets the names of substances considered in transport. More... | |
ReactionTerm & | output_stream (std::shared_ptr< OutputTime > ostream) |
Sets the output stream which is given from transport class. More... | |
ReactionTerm & | concentration_fields (FieldFEScalarVec &conc_mobile) |
virtual void | output_data (void) override |
Output method. More... | |
void | choose_next_time (void) override |
Disable changes in TimeGovernor by empty method. More... | |
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) |
TimeGovernor & | time () |
virtual void | set_time_governor (TimeGovernor &time) |
double | planned_time () |
virtual double | solved_time () |
Mesh & | mesh () |
std::shared_ptr< Balance > | balance () const |
TimeMark::Type | mark_type () |
FieldSet & | eq_fieldset () |
std::shared_ptr< FieldSet > | eq_fieldset_ptr () |
void | init_user_fields (Input::Array user_fields, FieldSet &output_fields) |
Static Public Member Functions | |
static const Input::Type::Record & | get_input_type () |
Input record for class FirstOrderReaction. More... | |
static const Input::Type::Record & | get_input_type_single_reaction () |
Input record which defines particular reaction. More... | |
static const Input::Type::Record & | get_input_type_reactant () |
Input record for a reactant of a reaction. More... | |
static const Input::Type::Record & | get_input_type_product () |
Input record for a product of a reaction. More... | |
Static Public Member Functions inherited from ReactionTerm | |
static Input::Type::Abstract & | it_abstract_term () |
static Input::Type::Abstract & | it_abstract_mobile_term () |
static Input::Type::Abstract & | it_abstract_immobile_term () |
static Input::Type::Abstract & | it_abstract_reaction () |
Static Public Member Functions inherited from EquationBase | |
static Input::Type::Record & | record_template () |
Template Record with common keys for derived equations. More... | |
static Input::Type::Record & | user_fields_template (std::string equation_name) |
Template Record with common key user_fields for derived equations. 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 void | compute_reaction (const DHCellAccessor &dh_cell) override |
Computes the reaction on a specified element. More... | |
unsigned int | find_subst_name (const std::string &name) |
Protected Member Functions inherited from ReactionTerm |
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... | |
std::shared_ptr< LinearODESolver > | linear_ode_solver_ |
Protected Attributes inherited from ReactionTerm | |
std::shared_ptr< OutputTime > | output_stream_ |
Pointer to a transport output stream. More... | |
std::shared_ptr< EqFields > | eq_fields_base_ |
Equation data - all fields needs in assembly class. More... | |
std::shared_ptr< EqData > | eq_data_base_ |
Equation data - all data needs in assembly class. More... | |
Protected Attributes inherited from EquationBase | |
bool | equation_empty_ |
flag is true if only default constructor was called More... | |
Mesh * | mesh_ |
TimeGovernor * | time_ |
Input::Record | input_record_ |
std::shared_ptr< FieldSet > | eq_fieldset_ |
std::shared_ptr< Balance > | balance_ |
object for calculation and writing the mass balance to file. More... | |
Static Private Attributes | |
static const int | registrar |
Registrar of class to factory. More... | |
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 39 of file first_order_reaction.hh.
Definition at line 42 of file first_order_reaction.hh.
FirstOrderReaction::FirstOrderReaction | ( | Mesh & | init_mesh, |
Input::Record | in_rec | ||
) |
Constructor.
Definition at line 83 of file first_order_reaction.cc.
FirstOrderReaction::~FirstOrderReaction | ( | void | ) |
Destructor.
Definition at line 88 of file first_order_reaction.cc.
|
overrideprotectedvirtual |
Implements the assembly of the system matrix of the ODEs.
Implements FirstOrderReactionBase.
Definition at line 92 of file first_order_reaction.cc.
FirstOrderReaction::DECLARE_EXCEPTION | ( | ExcTooManyReactants | , |
<< "More than one reactant is not available at the moment.\n" | |||
) |
|
static |
Input record for class FirstOrderReaction.
Definition at line 67 of file first_order_reaction.cc.
|
static |
Input record for a product of a reaction.
Definition at line 41 of file first_order_reaction.cc.
|
static |
Input record for a reactant of a reaction.
Definition at line 32 of file first_order_reaction.cc.
|
static |
Input record which defines particular reaction.
Definition at line 55 of file first_order_reaction.cc.
|
overrideprotectedvirtual |
Initializes private members of sorption from the input record.
Implements FirstOrderReactionBase.
Definition at line 111 of file first_order_reaction.cc.
|
protected |
Vector of reaction rates of the transported substances.
Definition at line 65 of file first_order_reaction.hh.
|
staticprivate |
Registrar of class to factory.
Definition at line 69 of file first_order_reaction.hh.