Flow123d  3.9.0-97067769b
reaction_term.cc
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 reaction_term.cc
15  * @brief
16  */
17 
19 #include "system/global_defs.h"
20 
21 #include "io/output_time.hh"
22 
23 using namespace Input::Type;
24 
26  return Abstract("ReactionTerm",
27  "Abstract equation for a reaction term (dual porosity, sorption, reactions). Can be part of coupling with a transport equation via. operator splitting.")
28  .close();
29 }
30 
32  return Abstract("ReactionTermMobile",
33  "Abstract equation for a reaction term of the MOBILE pores (sorption, reactions). Is part of dual porosity model.")
34  .close();
35 }
36 
38  return Abstract("ReactionTermImmobile",
39  "Abstract equation for a reaction term of the IMMOBILE pores (sorption, reactions). Is part of dual porosity model.")
40  .close();
41 }
42 
44  return Abstract("GenericReaction",
45  "Abstract equation for a reaction of species in single compartment (e.g. mobile solid)."
46  "It can be part of: direct operator splitting coupling, dual porosity model, any sorption.")
47  .close();
48 }
49 
50 
52  : EquationBase(init_mesh, in_rec), eq_fields_base_(nullptr)
53 {}
54 
56 {}
57 
58 
59 
60 
62 {}
63 
64 
65 
67 {
68  ASSERT(0).error("ReactionTerm does not change TimeGovernor.\n");
69 }
ReactionTerm::it_abstract_immobile_term
static Input::Type::Abstract & it_abstract_immobile_term()
Definition: reaction_term.cc:37
ReactionTerm::ReactionTerm
ReactionTerm(Mesh &init_mesh, Input::Record in_rec)
Definition: reaction_term.cc:51
ASSERT
#define ASSERT(expr)
Definition: asserts.hh:351
ReactionTerm::EqData::EqData
EqData()
Constructor.
Definition: reaction_term.cc:61
ReactionTerm::choose_next_time
void choose_next_time(void) override
Disable changes in TimeGovernor by empty method.
Definition: reaction_term.cc:66
Input::Record
Accessor to the data with type Type::Record.
Definition: accessors.hh:291
ReactionTerm::it_abstract_reaction
static Input::Type::Abstract & it_abstract_reaction()
Definition: reaction_term.cc:43
output_time.hh
Input::Type::Abstract
Class for declaration of polymorphic Record.
Definition: type_abstract.hh:62
EquationBase
Definition: equation.hh:56
ReactionTerm::~ReactionTerm
~ReactionTerm(void)
Destructor.
Definition: reaction_term.cc:55
Input::Type
Definition: balance.hh:41
Mesh
Definition: mesh.h:361
global_defs.h
Global macros to enhance readability and debugging, general constants.
ReactionTerm::it_abstract_term
static Input::Type::Abstract & it_abstract_term()
Definition: reaction_term.cc:25
reaction_term.hh
Class ReactionTerm is an abstract class representing reaction term in transport.
ReactionTerm::it_abstract_mobile_term
static Input::Type::Abstract & it_abstract_mobile_term()
Definition: reaction_term.cc:31
Input::Type::Abstract::close
Abstract & close()
Close the Abstract and add its to type repository (see TypeRepository::add_type).
Definition: type_abstract.cc:190