libMesh
|
This class defines the notion of a variable in the system. More...
#include <variable.h>
Public Member Functions | |
Variable (System *sys, std::string var_name, const unsigned int var_number, const unsigned int first_scalar_num, const FEType &var_type) | |
Constructor. More... | |
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. More... | |
Variable (const Variable &)=default | |
Standard constructors. More... | |
Variable & | operator= (const Variable &)=default |
Variable (Variable &&)=default | |
Variable & | operator= (Variable &&)=default |
bool | operator== (const Variable &other) const |
System * | system () const |
const std::string & | name () const |
unsigned int | number () const |
unsigned int | first_scalar_number () const |
const FEType & | type () const |
unsigned int | n_components () const |
unsigned int | n_components (const MeshBase &mesh) const |
bool | active_on_subdomain (subdomain_id_type sid) const |
bool | implicitly_active () const |
const std::set< subdomain_id_type > & | active_subdomains () const |
Protected Attributes | |
System * | _sys |
std::string | _name |
std::set< subdomain_id_type > | _active_subdomains |
unsigned int | _number |
unsigned int | _first_scalar_number |
FEType | _type |
This class defines the notion of a variable in the system.
A variable is one of potentially several unknowns in the problem at hand. A variable is described by a unique name, a finite element approximation family, and (optionally) a list of subdomains to which the variable is restricted.
Definition at line 50 of file variable.h.
|
inline |
Constructor.
Omits the subdomain mapping, hence this constructor creates a variable which is active on all subdomains.
Definition at line 59 of file variable.h.
Referenced by libMesh::VariableGroup::variable().
|
inline |
Constructor.
Takes a set which contains the subdomain indices for which this variable is active.
Definition at line 76 of file variable.h.
|
default |
Standard constructors.
|
default |
|
inline |
true
if this variable is active on subdomain sid
, false
otherwise._active_subdomains
container as active everywhere, i.e. for all subdomains. Definition at line 167 of file variable.h.
References _active_subdomains.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::DofMap::_dof_indices(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_proj_constraints(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofMap::dof_indices(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::DofMap::local_variable_indices(), libMesh::DofMap::old_dof_indices(), libMesh::BoundaryProjectSolution::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectInteriors::operator()(), libMesh::DofMap::reinit(), and libMesh::Nemesis_IO_Helper::write_nodal_solution().
|
inline |
Definition at line 181 of file variable.h.
References _active_subdomains.
Referenced by libMesh::DifferentiableSystem::add_second_order_dot_vars(), libMesh::System::add_variable(), libMesh::EquationSystems::get_vars_active_subdomains(), main(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::VariableGroup::variable(), and libMesh::System::write_header().
|
inline |
Definition at line 138 of file variable.h.
References _first_scalar_number.
Referenced by libMesh::System::n_components(), and libMesh::VariableGroup::variable().
|
inline |
true
if this variable is active on all subdomains because it has no specified activity map. This can be used to perform more efficient computations in some places. Definition at line 175 of file variable.h.
References _active_subdomains.
Referenced by libMesh::System::add_variable().
unsigned int libMesh::Variable::n_components | ( | ) | const |
FEFamily
is SCALAR
or if the associated FEFieldType
is TYPE_SCALAR
. Otherwise this will error because determination of the number of components for a TYPE_VECTOR
requires the mesh Definition at line 23 of file variable.C.
References _type, libMesh::FEType::family, libMesh::FEInterface::field_type(), libMesh::OrderWrapper::get_order(), libMesh::FEType::order, libMesh::SCALAR, and libMesh::TYPE_VECTOR.
Referenced by libMesh::System::n_components(), libMesh::BoundaryVolumeSolutionTransfer::transfer_boundary_volume(), and libMesh::BoundaryVolumeSolutionTransfer::transfer_volume_boundary().
Definition at line 36 of file variable.C.
References _type, libMesh::FEType::family, libMesh::OrderWrapper::get_order(), mesh, libMesh::FEInterface::n_vec_dim(), libMesh::FEType::order, and libMesh::SCALAR.
|
inline |
Definition at line 122 of file variable.h.
References _name.
Referenced by libMesh::DifferentiableSystem::add_second_order_dot_vars(), DMlibMeshSetSystem_libMesh(), libMesh::StaticCondensationDofMap::reinit(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::DTKSolutionTransfer::transfer(), and libMesh::VariableGroup::variable().
|
inline |
Definition at line 128 of file variable.h.
References _number.
Referenced by libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::DirectSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::BoundaryVolumeSolutionTransfer::transfer_boundary_volume(), libMesh::BoundaryVolumeSolutionTransfer::transfer_volume_boundary(), and libMesh::VariableGroup::variable().
|
inline |
other
Variable has the same characteristics and system numbering as this one. Definition at line 102 of file variable.h.
References _active_subdomains, _first_scalar_number, _name, _sys, and _type.
|
inline |
Definition at line 114 of file variable.h.
References _sys.
Referenced by libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::operator()(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::DirectSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::BoundaryVolumeSolutionTransfer::transfer(), libMesh::DTKSolutionTransfer::transfer(), libMesh::BoundaryVolumeSolutionTransfer::transfer_boundary_volume(), libMesh::BoundaryVolumeSolutionTransfer::transfer_volume_boundary(), and libMesh::VariableGroup::variable().
|
inline |
FEType
for this variable. Definition at line 144 of file variable.h.
References _type.
Referenced by libMesh::DofMap::_dof_indices(), libMesh::DofMap::_node_dof_indices(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DifferentiableSystem::add_second_order_dot_vars(), libMesh::FEMSystem::assembly(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_proj_constraints(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DofMap::dof_indices(), libMesh::System::get_info(), main(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), libMesh::DofMap::old_dof_indices(), libMesh::BoundaryProjectSolution::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectEdges::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectSides::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectInteriors::operator()(), libMesh::System::project_vector(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::StaticCondensationDofMap::reinit(), libMesh::DofMap::reinit(), libMesh::DofMap::SCALAR_dof_indices(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::DirectSolutionTransfer::transfer(), libMesh::VariableGroup::variable(), libMesh::System::write_parallel_data(), and libMesh::System::write_serialized_vector().
|
protected |
Definition at line 187 of file variable.h.
Referenced by active_on_subdomain(), active_subdomains(), implicitly_active(), and operator==().
|
protected |
Definition at line 189 of file variable.h.
Referenced by first_scalar_number(), libMesh::VariableGroup::first_scalar_number(), and operator==().
|
protected |
Definition at line 186 of file variable.h.
Referenced by name(), and operator==().
|
protected |
Definition at line 188 of file variable.h.
Referenced by number(), and libMesh::VariableGroup::number().
|
protected |
Definition at line 185 of file variable.h.
Referenced by operator==(), and system().
|
protected |
Definition at line 190 of file variable.h.
Referenced by n_components(), operator==(), and type().