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.

Reply via email to