45 node_name2type (
string name)
57 raw_polynomial_name2type (
string name)
84 return is_node_name(
name) || is_raw_polynomial_name(
name) ||
name ==
"sides";
89 set_node (node_name2type (
name));
94 set_raw_polynomial (raw_polynomial_name2type (
name));
99 check_macro (_node >= 0 && _node <= max_node,
100 "unexpected space node number = " << _node);
106 check_macro (_poly >= 0 && _poly <= max_raw_polynomial,
107 "unexpected space raw polynomial number = " << _poly);
113 if (is_node_name (option_name)) {
114 set_node (option_name);
115 }
else if (is_raw_polynomial_name (option_name)) {
116 set_raw_polynomial (option_name);
117 }
else if (option_name ==
"sides") {
118 set_restricted_to_sides();
120 error_macro (
"unexpected option name `" << option_name <<
"'");
126 if (_node == default_node && _poly == default_raw_polynomial) {
130 if (_node == default_node && _poly == default_raw_polynomial && !is_restricted_to_sides()) {
133 if (_node == default_node && _poly == default_raw_polynomial) {
136 string opt_sides = is_restricted_to_sides() ?
"sides," :
"";
138 string opt_sides =
"";
139 if (_poly == default_raw_polynomial) {
140 return "[" + opt_sides + get_node_name() +
"]";
142 if (_node == default_node) {
143 return "[" + opt_sides + get_raw_polynomial_name() +
"]";
145 return "[" + opt_sides + get_node_name() +
"," + get_raw_polynomial_name() +
"]";
basis_option - finite element method options
bool is_raw_polynomial_name(std::string name) const
std::string get_raw_polynomial_name() const
std::string get_node_name() const
bool is_option_name(std::string name) const
std::string stamp() const
void set(std::string option_name)
void set_node(node_type type)
bool is_node_name(std::string name) const
void set_raw_polynomial(raw_polynomial_type type)
static const char * static_node_name[basis_option::max_node+1]
static const char * static_raw_polynomial_name[basis_option::max_raw_polynomial+1]
#define error_macro(message)
This file is part of Rheolef.