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