From: John P. <jwp...@gm...> - 2019-03-28 16:11:34
|
On Thu, Mar 28, 2019 at 11:02 AM Lee, Jae Ho <jae...@li...> 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 |