On 3/10/19 7:39 AM, [email protected] wrote:
> 
> In order to check if this code is right, I want to use a model with 
> analytical 
> solution to verify it. And I need to make the displacement in y direction to 
> be zero.
> At first I use fe.component_mask(displacement),
> But this works for both displacements in x and y directions.
> 
> Then I try to construct a ComponentMask vector:
> I make the 2*dim+1 term to be false(which represent the constraints of y 
> direction)
> 
> However, I got this error:
> 
>           void
>         dealii::VectorTools::{anonymous}::do_interpolate_boundary_values(const
>         M_or_MC<dim, spacedim>&, const DoFHandlerType<dim, spacedim>&, const
>         std::map<unsigned int, const dealii::Function<spacedim, number>*>&,
>         std::map<unsigned int, number>&, const dealii::ComponentMask&) [with
>         int dim = 2; int spacedim = 2; number = double; DoFHandlerType =
>         dealii::DoFHandler; M_or_MC = dealii::Mapping]
> 
>         The violated condition was: 
> 
>              cell->get_fe().is_primitive (i)
> 
>         Additional information: 
> 
>              This function can only deal with requested boundary values that
>         correspond to primitive (scalar) base elements
> 
> 
> 
> Is there a good way to solve this problem?
> Thank you in advance!

You are trying to interpolate boundary values for components described by the 
Raviart-Thomas element. This element is not primitive -- see also
https://dealii.org/developer/doxygen/deal.II/DEALGlossary.html#GlossPrimitive
The problem with non-primitive elements is that one can not easily interpolate 
boundary values for them. But there are a number of other boundary value 
interpolation functions in namespace VectorTools that can be used for these 
kinds of elements.

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.

Reply via email to