Skip to content

Enhance MeshFunction to handle vector variables #3714

@lindsayad

Description

@lindsayad
Member

We would resize the output vector to be equal to vec_dim * n_vector_vars + n_scalar_vars

Activity

andcarl1364

andcarl1364 commented on Apr 17, 2024

@andcarl1364

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

roystgnr commented on Apr 17, 2024

@roystgnr
Member

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.

andcarl1364

andcarl1364 commented on Apr 18, 2024

@andcarl1364

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

roystgnr commented on Apr 18, 2024

@roystgnr
Member

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.

added 2 commits that reference this issue on Apr 21, 2024
54b6ca6
8081c03
added 2 commits that reference this issue on May 6, 2025
3870415
17a803e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      Participants

      @roystgnr@lindsayad@andcarl1364

      Issue actions

        Enhance MeshFunction to handle vector variables · Issue #3714 · libMesh/libmesh