You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
so we can easily get the vec_dim using this->_system_vars.size() as already implemented, however which specific vector vars are we counting to calculate n_vector_vars and the same for scaler vars with n_scalar_vars?
vec_dim isn't _system_vars.size(); it would be the dimensionality of the vector variables, not the total number of variables.
_system_vars is a vector of variable indices; vector variables with any of those indices would be included in n_vector_vars and scalar variables with any of those indices would be included in n_scalar_vars.
thank you! I guess what i'm confused about is which specific variables am I checking for having those indices, are they in the mesh_function.C file? and is there some sort of map of vector variables and their dimensionality in order to calculate vec_dim?
Variables are added dynamically to a System; DofMap::n_variables() returns the total count of them for its associated system. Each variable's information is available from DofMap::variable(i); that information includes a FEType, and FEInterface::n_vec_dim(mesh, fe_type) indicates how many dimensions a particular non-SCALAR variable has.
You might want to consider looking through some of the libMesh example programs; e.g. the distinction between variables in the C++ (might be named in a library .C file) context versus variables in the mathematical (added and named by an application) context is shown in introduction_ex2.C; later introduction_ex4.C is the first to use the returned index of a newly-added variable.
Activity
andcarl1364 commentedon Apr 17, 2024
so we can easily get the vec_dim using this->_system_vars.size() as already implemented, however which specific vector vars are we counting to calculate n_vector_vars and the same for scaler vars with n_scalar_vars?
roystgnr commentedon Apr 17, 2024
vec_dim
isn't_system_vars.size()
; it would be the dimensionality of the vector variables, not the total number of variables._system_vars
is a vector of variable indices; vector variables with any of those indices would be included inn_vector_vars
and scalar variables with any of those indices would be included inn_scalar_vars
.andcarl1364 commentedon Apr 18, 2024
thank you! I guess what i'm confused about is which specific variables am I checking for having those indices, are they in the mesh_function.C file? and is there some sort of map of vector variables and their dimensionality in order to calculate
vec_dim
?roystgnr commentedon Apr 18, 2024
Variables are added dynamically to a
System
;DofMap::n_variables()
returns the total count of them for its associated system. Each variable's information is available fromDofMap::variable(i)
; that information includes aFEType
, andFEInterface::n_vec_dim(mesh, fe_type)
indicates how many dimensions a particular non-SCALAR
variable has.You might want to consider looking through some of the libMesh example programs; e.g. the distinction between variables in the C++ (might be named in a library .C file) context versus variables in the mathematical (added and named by an application) context is shown in introduction_ex2.C; later introduction_ex4.C is the first to use the returned index of a newly-added variable.
resizes output vector to better handle vectors
resizes output vector to better handle vectors
Adding 2D tests for Lagrange, Nedelec, and Raviart Thomas vector vari…
Adding 2D tests for Lagrange, Nedelec, and Raviart Thomas vector vari…