Hello, I am relatively new to deal.ii. I wonder if I can deal with conflicting constraints without using VectorTools::interpolate_boundary_values() <https://www.dealii.org/8.4.1/doxygen/deal.II/namespaceVectorTools.html#af6f700f193e9d5b52e9efe55e9b872d5>. The explanation here (https://www.dealii.org/8.4.1/doxygen/deal.II/group__constraints.html) only gives the cases using it. The reason I don't want to use it is that I need to impose Dirichlet boundary conditions at points (at specific nodes). I do not believe VectorTools::interpolate_boundary_values() <https://www.dealii.org/8.4.1/doxygen/deal.II/namespaceVectorTools.html#af6f700f193e9d5b52e9efe55e9b872d5> can handle such a boundary condition.
I assign such a boundary condition at points by giving boundary values to std::map<unsigned int,double> boundary_values directly, and it looks working well. However, for handling conflict between hanging node and boundary condition with ConstraintMatrix, just doing something like: typename DoFHandler<dim>::active_cell_iterator cell = dof_handler.begin_active(), endc = dof_handler.end(); for (; cell!=endc; ++cell) { for (unsigned int vert = 0; vert < GeometryInfo<dim>::vertices_per_cell; vert++) { if ("certain condition") { constraints_update.add_line(cell2->vertex_dof_index(vert,I)); } } } (Here constraints_update is an object of ConstraintMatrix). does not seem working because the solver eventually gives the error: Exception on processing: -------------------------------------------------------- An error occurred in line <828> of file </home/shlee/Software/dealii-8.1/include/deal.II/lac/solver_gmres.h> in function void dealii::SolverGMRES<VECTOR>::solve(const MATRIX&, VECTOR&, const VECTOR&, const PRECONDITIONER&) [with MATRIX = dealii::LinearAlgebraTrilinos::MPI::BlockSparseMatrix, PRECONDITIONER = BlockDiagonalPreconditioner<dealii::TrilinosWrappers::PreconditionAMG, dealii::TrilinosWrappers::PreconditionAMG>, VECTOR = dealii::TrilinosWrappers::MPI::BlockVector] The violated condition was: false The name and call sequence of the exception was: SolverControl::NoConvergence (this->control().last_step(), this->control().last_value()) Additional Information: Iterative method reported convergence failure in step 1000 with residual 1.2908e-13 The simulation result looks reasonable until it gives the error, and so I think I correctly assigned the boundary condition at the points. The problem might be conflicting constraints are not handled appropriately in ConstraintMatrix. I hope my explanation is clear. It would be great if you could replay my question. Regards. Sogo -- 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.