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!
Best,
Mike
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users