On 6/6/21 10:35 PM, Zhuoran Wang wrote:
I'm now trying to use WG(P1,P1) to solve Darcy. For WG(P0,P0), I used FE_DGQ and FE_FaceQ which are the same as FE_DGP and FE_FaceP. But for higher elements, I need to use FE_FaceP. If the face dof is correctly figured out, I suppose I can assign the D.B.C to constraints by myself. Is that correct?

The issue is that FE_DGP is not interpolatory (i.e., the basis functions do not have the phi_i(x_j)=delta_ij property), and consequently the VectorTools::interpolate_boundary_values function does not work.

But you can do the equivalent work yourself:
  for (cell=...)
    for (face=...)
      if (face->at_boundary())
        {
           get the DoF indices for that face, which in your case will only
             correspond to the FE_FaceP component
           determine which values these DoFs need to have
           add the corresponding constraints to the AffineConstraints object
        }

The second step in the inner loop might be the difficult one if you have nontrivial boundary values since then you probably want to compute the projection of these boundary values onto the finite element space on that face. But if you have zero boundary values, for example, then you'd just set all DoFs to zero in that loop.

Best
 W.


--
------------------------------------------------------------------------
Wolfgang Bangerth          email:                 bange...@colostate.edu
                           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 dealii+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/1ef2ff40-d865-dba5-847f-d5ad859ab04a%40colostate.edu.

Reply via email to