Flow123d  JS_before_hm-896-g486f41f
equation.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 equation.cc
15  * @brief Abstract base class for equation clasess.
16  * @author Jan Brezina
17  */
18 
19 #include <petscmat.h>
20 #include "tools/time_governor.hh"
21 
22 
23 #include "equation.hh"
24 #include "system/system.hh"
25 #include "input/accessors.hh"
26 #include "fields/field_set.hh"
27 
28 #include <boost/foreach.hpp>
29 
30 
31 
32 /*****************************************************************************************
33  * Implementation of EqBase
34  */
35 
37  return Input::Type::Record("EquationBase_AUX", "Auxiliary record with keys common for equations. Should not be used.")
39  "Time governor setting.")
40  .close();
41 }
42 
44 : equation_empty_(true),
45  mesh_(NULL),
46  time_(NULL),
47  input_record_(),
48  eq_data_(nullptr)
49 {}
50 
51 
52 
54 : equation_empty_(false),
55  mesh_(&mesh),
56  time_(NULL),
57  input_record_(in_rec),
58  eq_data_(nullptr)
59 {}
60 
61 
63 {
64  time_ = &time;
65 }
66 
TimeGovernor & time()
Definition: equation.hh:151
FieldSet * eq_data_
Definition: equation.hh:229
Abstract base class for equation clasess.
Class Input::Type::Default specifies default value of keys of a Input::Type::Record.
Definition: type_record.hh:61
Definition: mesh.h:78
Basic time management functionality for unsteady (and steady) solvers (class Equation).
Record & close() const
Close the Record for further declarations of keys.
Definition: type_record.cc:304
Basic time management class.
static Input::Type::Record & record_template()
Template Record with common keys for derived equations.
Definition: equation.cc:36
Mesh & mesh()
Definition: equation.hh:179
Accessor to the data with type Type::Record.
Definition: accessors.hh:292
Mesh * mesh_
Definition: equation.hh:220
Record & declare_key(const string &key, std::shared_ptr< TypeBase > type, const Default &default_value, const string &description, TypeBase::attribute_map key_attributes=TypeBase::attribute_map())
Declares a new key of the Record.
Definition: type_record.cc:503
virtual void set_time_governor(TimeGovernor &time)
Definition: equation.cc:62
bool equation_empty_
flag is true if only default constructor was called
Definition: equation.hh:219
Input::Record input_record_
Definition: equation.hh:222
static const Input::Type::Record & get_input_type()
Record type proxy class.
Definition: type_record.hh:182
TimeGovernor * time_
Definition: equation.hh:221