Awesome! Thank you so much! On Mar 28, 2019, at 12:11 PM, John Peterson <jwpeter...@gmail.com<mailto:jwpeter...@gmail.com>> wrote:
On Thu, Mar 28, 2019 at 11:02 AM Lee, Jae Ho <jaeho...@live.unc.edu<mailto:jaeho...@live.unc.edu>> wrote: I was modifying the subdivision FE example code in miscellaneous/ex11 to handle large deformations and do a bending and inflation of a circular plate in Cirak and Ortiz 2001 (https://pdfs.semanticscholar.org/6fb5/bf884883eda23383e1502f62dd63d2b6b39e.pdf), and the way it currently handles its BCs is by penalty method. But by doing so, it’s also pinning some elements that are actually in the mesh body in addition to pinning the ghost elements. Is there particular reason that it does that? For example, if I just pin the ghost elements by imposing penalty term just for the three nodes associated with a ghost element, it “looks” like it’s doing the right thing. for (unsigned int n = 1; n < 3; ++n) <——————— switched 4 to 3 to not pin the element that is in the actual mesh. { const dof_id_type u_dof = nodes[n]->dof_number(KL_system.number(), u_var, 0); const dof_id_type v_dof = nodes[n]->dof_number(KL_system.number(), v_var, 0); const dof_id_type w_dof = nodes[n]->dof_number(KL_system.number(), w_var, 0); KL_system.matrix->add(u_dof, u_dof, penalty); KL_system.matrix->add(v_dof, v_dof, penalty); KL_system.matrix->add(w_dof, w_dof, penalty); } I am just not sure if doing so will cause any issues. Also, what would be the best approach if I want to impose boundary conditions other than pinning on the ghost elements (i.e. both displacement and rotation free)? Thank you for your help! Unfortunately I don't really know the answer, but I replied off-list with some contact information for the original authors of the subdivision surfaces elements so you may try contacting them. -- John _______________________________________________ Libmesh-users mailing list Libmesh-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-users