[Libmesh-users] periodic boundary conditions and hanging nodes From: Michael Povolotskyi - 2005-08-09 18:17:18 ```Dear Libmesh developers, I'm solving a system of linear differential equations like d/dx_i C_ikl ( du_k/dx_l + b_kl) = 0, where a sum is assumed over the coordinate indexes i, j and k, u is a variable vector and C and b are known tensors. The simulation domain is a cuboid. There are periodic boundary conditions imposed on u along certain directions. I implemented them in the way I discussed with you previously. In brief, I construct special DOF constraints in order to implement periodic boundary conditions. It consists of the following steps: 1) A node that lies at the boundary is projected on the opposite boundary. 2) Value of basis functions is calculated at the projection of the node. 3) The function value are used to create a constraint for (int i1 = 0; i1 < phi.size(); i1++) { if ( std::abs(phi[i1][0]) > func_tol ) { constraint[dof_indices_component[i1]] = phi[i1][0]; } } dof_map.add_constraint_row (n_dof, constraint); The method is applicable for Lagrange elements only, which is okay for me. The simulation works fine if the mesh does not have hanging nodes. In the case when there are hanging nodes, I see some small deviations at the regions where hanging nodes are close to the boundary. My question: may it happen that DOF constrains that I impose "conflict" in some way with DOF constrains that are due to the hanging nodes? Thank you, Michael. ```
 [Libmesh-users] periodic boundary conditions and hanging nodes From: Michael Povolotskyi - 2005-08-09 18:17:18 ```Dear Libmesh developers, I'm solving a system of linear differential equations like d/dx_i C_ikl ( du_k/dx_l + b_kl) = 0, where a sum is assumed over the coordinate indexes i, j and k, u is a variable vector and C and b are known tensors. The simulation domain is a cuboid. There are periodic boundary conditions imposed on u along certain directions. I implemented them in the way I discussed with you previously. In brief, I construct special DOF constraints in order to implement periodic boundary conditions. It consists of the following steps: 1) A node that lies at the boundary is projected on the opposite boundary. 2) Value of basis functions is calculated at the projection of the node. 3) The function value are used to create a constraint for (int i1 = 0; i1 < phi.size(); i1++) { if ( std::abs(phi[i1][0]) > func_tol ) { constraint[dof_indices_component[i1]] = phi[i1][0]; } } dof_map.add_constraint_row (n_dof, constraint); The method is applicable for Lagrange elements only, which is okay for me. The simulation works fine if the mesh does not have hanging nodes. In the case when there are hanging nodes, I see some small deviations at the regions where hanging nodes are close to the boundary. My question: may it happen that DOF constrains that I impose "conflict" in some way with DOF constrains that are due to the hanging nodes? Thank you, Michael. ```