Hello Ali,

you have to modify the constraint matrix. This means you have to add the line corresponding to the dof you want to set to 0 to the constraint matrix. Have a look in the documentation of the ConstraintMatrix class, especially the function add_line.

Best Regards,
Markus



Ali M. Koupaei schrieb:
Hi,
 
I am solving the lid-driven cavity problem; though I would need to prescribe four dirichlet boundary condition for u and the other four for v velocity;
 
But, I would need to prescribe pressure to zero value on ONLY one node on the boundary; say the lower boundary just to make the solution unique; my code for imposing the boundary conditions looks like : 
 
  std::map<uint, double> boundary_values;
  this->dirichlet_bc(boundary_values);
  MatrixTools::apply_boundary_values(boundary_values,
         this->matrix,
         solution,
         rhs);
 
here, this->matrix is of the type "BlockSparseMatrix";
 
But I don't know how to prescribe the pressure constraint on only one node on the boundary; I manipulated the this->matrix directly after the above codes and set the appropriate pressure dof index to 1 and in rhs to 0; but it doesn't work; I mean the solution looks wrong; that node became a source of flow!!
 
Thank you very much,
Ali,


_______________________________________________ dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii


_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to