Currently, the location of degrees of freedom in matrix level is implemented somewhat naive way, given maximum number of degrees of freedom max_dim, node id j, and index of dof i, we have gdofs(j,i) = max_dim(j-1)+i. This works, but does not support variable number of degrees of freedom per node, which is mandatory if we want to couple structural elements with continuum elements or have, for instance, pressure degree of freedom in some nodes and in some nodes not. This PR implements new type DOFMap which makes it easy to create more complex configurations of degrees of freedom.
Coverage decreased (-0.6%) to 99.444% when pulling 7f8a9b51d8bfa79d6c15ed5d08448f4cce5f1bb7 on dofmap into 2dba5992b3c90ad7a7f7953c18278bd7c4e3940d on master.
Currently, the location of degrees of freedom in matrix level is implemented somewhat naive way, given maximum number of degrees of freedom
max_dim
, node idj
, and index of dofi
, we havegdofs(j,i) = max_dim(j-1)+i
. This works, but does not support variable number of degrees of freedom per node, which is mandatory if we want to couple structural elements with continuum elements or have, for instance, pressure degree of freedom in some nodes and in some nodes not. This PR implements new typeDOFMap
which makes it easy to create more complex configurations of degrees of freedom.