18#ifndef LIBMESH_VARIABLE_H
19#define LIBMESH_VARIABLE_H
22#include "libmesh/libmesh_common.h"
23#include "libmesh/fe_type.h"
24#include "libmesh/id_types.h"
61 const unsigned int var_number,
62 const unsigned int first_scalar_num,
78 const unsigned int var_number,
79 const unsigned int first_scalar_num,
81 const std::set<subdomain_id_type> & var_active_subdomains) :
122 const std::string &
name()
const
224 std::vector<std::string> var_names,
225 const unsigned int var_number,
226 const unsigned int first_scalar_num,
227 const FEType & var_type) :
242 std::vector<std::string> var_names,
243 const unsigned int var_number,
244 const unsigned int first_scalar_num,
246 const std::set<subdomain_id_type> & var_active_subdomains) :
253 var_active_subdomains),
271 return (this->Variable::operator==(other)) &&
279 {
return cast_int<unsigned int>(
_names.size()); }
307 const std::string &
name(
unsigned int v)
const
316 unsigned int number(
unsigned int v)
const
341 {
_names.push_back (std::move(var_name)); }
This class handles the numbering of degrees of freedom on a mesh.
class FEType hides (possibly multiple) FEFamily and approximation orders, thereby enabling specialize...
This is the MeshBase class.
Manages consistently variables, degrees of freedom, and coefficient vectors.
This class defines a logically grouped set of variables in the system.
VariableGroup(System *sys, std::vector< std::string > var_names, const unsigned int var_number, const unsigned int first_scalar_num, const FEType &var_type)
Constructor.
VariableGroup(VariableGroup &&)=default
unsigned int n_variables() const
Variable operator()(unsigned int v) const
Support vg(v).
const std::string & name(unsigned int v) const
VariableGroup(System *sys, std::vector< std::string > var_names, const unsigned int var_number, const unsigned int first_scalar_num, const FEType &var_type, const std::set< subdomain_id_type > &var_active_subdomains)
Constructor.
std::vector< std::string > _names
unsigned int number() const
unsigned int number(unsigned int v) const
unsigned int first_scalar_number(unsigned int v) const
bool operator==(const VariableGroup &other) const
VariableGroup(const VariableGroup &)=default
Standard constructors.
VariableGroup & operator=(const VariableGroup &)=default
void append(std::string var_name)
Appends a variable to the group.
Variable variable(unsigned int v) const
This class defines the notion of a variable in the system.
unsigned int _first_scalar_number
unsigned int first_scalar_number() const
Variable & operator=(const Variable &)=default
const std::set< subdomain_id_type > & active_subdomains() const
std::set< subdomain_id_type > _active_subdomains
const std::string & name() const
bool active_on_subdomain(subdomain_id_type sid) const
bool implicitly_active() const
bool operator==(const Variable &other) const
Variable(System *sys, std::string var_name, const unsigned int var_number, const unsigned int first_scalar_num, const FEType &var_type)
Constructor.
unsigned int n_components() const
Variable(Variable &&)=default
Variable(const Variable &)=default
Standard constructors.
unsigned int number() const
const FEType & type() const
Variable(System *sys, std::string var_name, const unsigned int var_number, const unsigned int first_scalar_num, const FEType &var_type, const std::set< subdomain_id_type > &var_active_subdomains)
Constructor.
The libMesh namespace provides an interface to certain functionality in the library.