I found the problem. :) The problem were Dirichlet boundary conditions... I just realised how constraints in deal.II work.
I defined the boundary IDs in the following way now: // Boundary: Definition of boundary IDs const double tol_boundary = 1e-6; typename parallel::distributed::Triangulation<dim>::active_cell_iterator cell = triangulation.begin_active(), endc = triangulation.end(); for (; cell != endc; ++cell) { std::cout << "CELL NUMBER: " << cell->id() << std::endl; for (unsigned int i = 0; i < GeometryInfo<dim>::faces_per_cell; ++i) { if (cell->face(i)->at_boundary() == true) { // Boundary IDs for a 2D cube if (std::abs(cell->face(i)->center()[0]) == 0) { cell->face(i)->set_boundary_id(0); // LEFT Boundary (0) } else if (std::abs(cell->face(i)->center()[0] - 1.0) < tol_boundary) { cell->face(i)->set_boundary_id(1); // RIGHT Boundary (1) } else if (std::abs(cell->face(i)->center()[1]) == 0) { cell->face(i)->set_boundary_id(2); // BOTTOM Boundary (2) } else if (std::abs(cell->face(i)->center()[1] - 1.0) < tol_boundary) { cell->face(i)->set_boundary_id(3); // TOP Boundary (3) } pcout << "CELL CENTER X: " << cell->face(i)->center()[0] << std::endl; pcout << "CELL CENTER Y: " << cell->face(i)->center()[1] << std::endl; std::cout << "Cell face number " << cell->face(i) << " has boundary ID " << (int) cell->face(i)->boundary_id() << "." << std::endl; } } } For every newcomer with the same problem: std::map<types::global_dof_index, double> boundary_values; VectorTools::interpolate_boundary_values(dof_handler, 0, ZeroFunction<dim>(dim), boundary_values); MatrixTools::apply_boundary_values(boundary_values, system_matrix, locally_relevant_solution, system_rhs, false); These lines within our assembly are crucial. Hence, the second one is the most important part since it also takes the boundary_id into account. Now as we can see "0" fixes the left boundary in my case. Earlier 0 fixed my entire boundaries except the loaded ones due to the boundary IDs being initially 0. Now fixing the left boundary and loading the right boundary leads to the attached displacement field. I hope what I understood is correct and the Deal.II developers can confirm that. Thank you again for your help, Timo and Daniel. Best regards, Seyed Ali -- 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.