If my understanding of how dofs are numbered is correct. Essentially what I
want to do is
std::vector<bool> boundary_dofs (dof_handler.n_dofs(), false);
DoFTools::extract_boundary_dofs (dof_handler, ComponentMask(), boundary_dofs);
constraints.clear();
for (unsigned int i = dofs_per_block[0] + dofs_per_block[1]; i <
dof_handler.n_dofs(); ++i)
{
if(boundary_dofs[i] == true)
{
constraints.add_line (i);
\\ find 'corresponding_U_dof' of 'W_dof' with index 'i' according to
above said criterion
constraints.add_entry (i, corresponding_U_dof, 1);
}
}
constraints.close ();
So I want a way to find 'corresponding_U_dof' from 'W_dof' with index 'i'. Or
please suggest any other way to achieve this.
That's not enough. You also have to do something about the U dof that sits at
the edge midpoint.
You will want to read the paper I pointed to to see how these constraints are
computed. You can then try to look into the information you get out of
FE_Q::get_face_interpolation_matrix() that can be used to interpolate between
a Q1 and Q2 element. Essentially what you want to do is done in
DoFTools::make_hanging_node_constraints(), which you could try to understand
on a mesh with 2 cells for which one is a Q1 and one is a Q2 cell.
Best
W.
--
------------------------------------------------------------------------
Wolfgang Bangerth email: [email protected]
www: http://www.math.colostate.edu/~bangerth/
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.