Dear All,
I want to apply non-zero neumann boundary condition on the curved domain of 
half of the circle. The way that I define my geometry, the boundary id and 
apply the Neumann B.C is written as follow:

*Defining boundary id for different sections of domain (half_hyper_ball):*

        const double tol_boundary = 1e-12
for (typename Triangulation<dim> ::active_cell_iterator
cell=triangulation.begin_active();
cell!=triangulation.end(); ++cell)
for (unsigned int face=0; face<GeometryInfo<dim>::faces_per_cell; ++face)
if (cell->face(face)->at_boundary() == true)
 {
   const Point<dim> face_center = cell->face(face)->center();
   if 
(std::abs(std::sqrt(face_center[0]*face_center[0]+face_center[1]*face_center[1])
                  - radius) < tol_boundary)
              cell->face(face)->set_boundary_id (2); // faces on the outer 
curved edge of the domain...
   else
    cell->face(face)->set_boundary_id (1);

*// Implying the mechanical boundary value to the curved surface of the 
domain that appears on the right hand side *

    for (unsigned int face=0; face<GeometryInfo<dim>::faces_per_cell; 
++face)
      if (cell->face(face)->at_boundary() == true
          && cell->face(face)->boundary_id() == 2)
       {
        scratch.fe_face_values_ref.reinit(cell, face);
        for (unsigned int f_q_point=0; f_q_point<n_q_points_f; ++f_q_point)
     {
      const double eta_orderM = 
local_quadrature_point_history[f_q_point].get_eta_orderM();
      for (unsigned int i=0; i<dofs_per_cell; ++i)
       {
        const unsigned int i_group =fe.system_to_base_index(i).first.first;
        if (i_group == u_dof)
     {
      const Tensor<1, dim> neumann_value = eta_orderM * 
scratch.fe_face_values_ref.normal_vector(f_q_point);
      const unsigned int component_i = 
fe.system_to_component_index(i).first;
      const double JxW = scratch.fe_face_values_ref.JxW(f_q_point);
      data.cell_rhs(i) += neumann_value[component_i] * 
scratch.fe_face_values_ref.shape_value(i, f_q_point) * JxW;
     }
       }
     }
       }
It would be very kind of you if you let me know whether this definition for 
the Neumann boundary condition on the curved side of my domain is true or 
not.
Bests,
Benhour

-- 
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