Hello my name is Markus,

last week I started my first project with deal.II. I used step-8 
(linear-elasticity) as starting point, built my own grid_geometry and it 
worked fine. Then I added new boundary conditions:

        hanging_node_constraints.condense (system_matrix);
        hanging_node_constraints.condense (system_rhs);

        //std::map<types::global_dof_index,double> boundary_values;
        //VectorTools::interpolate_boundary_values (dof_handler,
        //                                          0,
        //                                          ZeroFunction<3>(3),
        //                                          boundary_values);
        //MatrixTools::apply_boundary_values (boundary_values,
        //                                    system_matrix,
        //                                    solution,
        //                                    system_rhs);




        normal_boundary_fixation_constraints.clear ();

        DoFTools::make_hanging_node_constraints (dof_handler,
                                                 
normal_boundary_fixation_constraints);

        VectorTools::compute_no_normal_flux_constraints(dof_handler,
                                                        0,
                                                        
hub_cell_fixation_id,
                                                        
normal_boundary_fixation_constraints);
        normal_boundary_fixation_constraints.close();

        normal_boundary_fixation_constraints.condense(system_matrix, 
system_rhs);


        normal_boundary_gab_constraints.clear ();

        DoFTools::make_hanging_node_constraints (dof_handler,
                                                 
normal_boundary_gab_constraints);

        const BoundaryValues<3> normal_boundary_value;

        typename FunctionMap<3>::type normal_boundary_functions;

        normal_boundary_functions[1]= & normal_boundary_value;

        VectorTools::compute_nonzero_normal_flux_constraints(dof_handler,
                                                             0,
                                                             
hub_cell_contact_id,
                                                             
normal_boundary_functions,
                                                             
normal_boundary_gab_constraints);

        normal_boundary_gab_constraints.close();

        normal_boundary_gab_constraints.condense(system_matrix, system_rhs);


and later I distributed my solution:

        normal_boundary_fixation_constraints.distribute(solution);
        normal_boundary_gab_constraints.distribute(solution);
        hanging_node_constraints.distribute (solution);

I have two versions of my grid. A simple, without any refinement. There it 
works fine. But if I use the grid, with an refinement on the boundary 
(nonzero_normal_flux), the program still runs/converges, but the 

       normal_boundary_fixation_constraints.distribute(solution);
       normal_boundary_gab_constraints.distribute(solution);
 
have no effect. (So there must be something rotten.) I know that the 
documentation says:

When combining adaptively refined meshes with hanging node constraints and 
boundary conditions like from the current function within one 
ConstraintMatrix 
<https://www.dealii.org/8.4.1/doxygen/deal.II/classConstraintMatrix.html> 
object, the hanging node constraints should always be set first, and then 
the boundary conditions since boundary conditions are not set in the second 
operation on degrees of freedom that are already constrained. This makes 
sure that the discretization remains conforming as is needed. See the 
discussion on conflicting constraints in the module on Constraints on 
degrees of freedom 
<https://www.dealii.org/8.4.1/doxygen/deal.II/group__constraints.html>.

But I think, I am doing this. What do I misunderstand?

Greetings
Markus

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to