## RE: [Libmesh-users] Problems with DofObject::dof_number

 RE: [Libmesh-users] Problems with DofObject::dof_number From: KIRK, BENJAMIN (JSC-EG) (NASA) - 2005-02-24 15:25:09 ```That is the correct behavior. As implemented, each system numbers its = DOFs independently into contiguous blocks. The reason for this is because, conceptually (at least thus-far) each system corresponds to a coupled = set of variables to be solved as a single linear system. -Ben -----Original Message----- From: libmesh-users-admin@... [mailto:libmesh-users-admin@...] On Behalf Of Michael Schindler Sent: Thursday, February 24, 2005 4:22 AM To: libmesh-users@... Subject: [Libmesh-users] Problems with DofObject::dof_number Hello list, I have a couple of nodes and would like to know their dof numbers in = several systems: I have 3 systems, one with 3 variables, the others with one variable. Now, if I go through my list of (boundary) nodes and ask them = for their dof-numbers, I get the result, that they always report the = _first_ system, ignoring the other two. This is what I get by outputting the = system, variable, component and dof_number: system variable component --> dof_number 0 0 0 --> 1570 0 1 0 --> 3143 0 2 0 --> 3564 first node 1 0 0 --> 1570 2 0 0 --> 1570 0 0 0 --> 1114 0 1 0 --> 2687 0 2 0 --> 3471 second node 1 0 0 --> 1114 2 0 0 --> 1114 0 0 0 --> 1246 0 1 0 --> 2819 0 2 0 --> 3484 another node 1 0 0 --> 1246 2 0 0 --> 1246 This has been produced by the something like the following code: const Node * node =3D *nodes_itr; unsigned int n_sys =3D node->n_systems(); // all systems: loop begin for (sys_i=3D0; sys_in_vars(sys_i); // all variables in this system: loop begin for (var_i=3D0; var_in_comp(sys_i, var_i); // components: loop begin for (comp_i=3D0; comp_idof_number(sys_i, var_i, comp_i); assert( dof_gi !=3D libMesh::invalid_uint ); std::cout << sys_i << " " << var_i << " " << comp_i << " --> " = << cdof_gi << " " << dof_gi << std::endl; } // components: loop end } // variables: loop end } // systems: loop end I do not manipulate the dofs before this point (as far as I can see). Best greetings, Michael --=20 "A mathematician is a device for turning coffee into theorems" Paul Erd=F6s. ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real = users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=3D6595&alloc_id=3D14396&op=3Dclick _______________________________________________ Libmesh-users mailing list Libmesh-users@... https://lists.sourceforge.net/lists/listinfo/libmesh-users ```

 RE: [Libmesh-users] Problems with DofObject::dof_number From: KIRK, BENJAMIN (JSC-EG) (NASA) - 2005-02-24 15:25:09 ```That is the correct behavior. As implemented, each system numbers its = DOFs independently into contiguous blocks. The reason for this is because, conceptually (at least thus-far) each system corresponds to a coupled = set of variables to be solved as a single linear system. -Ben -----Original Message----- From: libmesh-users-admin@... [mailto:libmesh-users-admin@...] On Behalf Of Michael Schindler Sent: Thursday, February 24, 2005 4:22 AM To: libmesh-users@... Subject: [Libmesh-users] Problems with DofObject::dof_number Hello list, I have a couple of nodes and would like to know their dof numbers in = several systems: I have 3 systems, one with 3 variables, the others with one variable. Now, if I go through my list of (boundary) nodes and ask them = for their dof-numbers, I get the result, that they always report the = _first_ system, ignoring the other two. This is what I get by outputting the = system, variable, component and dof_number: system variable component --> dof_number 0 0 0 --> 1570 0 1 0 --> 3143 0 2 0 --> 3564 first node 1 0 0 --> 1570 2 0 0 --> 1570 0 0 0 --> 1114 0 1 0 --> 2687 0 2 0 --> 3471 second node 1 0 0 --> 1114 2 0 0 --> 1114 0 0 0 --> 1246 0 1 0 --> 2819 0 2 0 --> 3484 another node 1 0 0 --> 1246 2 0 0 --> 1246 This has been produced by the something like the following code: const Node * node =3D *nodes_itr; unsigned int n_sys =3D node->n_systems(); // all systems: loop begin for (sys_i=3D0; sys_in_vars(sys_i); // all variables in this system: loop begin for (var_i=3D0; var_in_comp(sys_i, var_i); // components: loop begin for (comp_i=3D0; comp_idof_number(sys_i, var_i, comp_i); assert( dof_gi !=3D libMesh::invalid_uint ); std::cout << sys_i << " " << var_i << " " << comp_i << " --> " = << cdof_gi << " " << dof_gi << std::endl; } // components: loop end } // variables: loop end } // systems: loop end I do not manipulate the dofs before this point (as far as I can see). Best greetings, Michael --=20 "A mathematician is a device for turning coffee into theorems" Paul Erd=F6s. ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real = users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=3D6595&alloc_id=3D14396&op=3Dclick _______________________________________________ Libmesh-users mailing list Libmesh-users@... https://lists.sourceforge.net/lists/listinfo/libmesh-users ```