Yes, you're right, there is a bug. We need to add:

> system.get_dof_map().enforce_constraints_exactly(system);


before:

libMesh::out << "Computing stresses..." << std::endl;


This imposes the non-zero Dirichlet constraints on the solution, which is
what you need to do for plotting purposes. Note that this has no effect on
the solve itself, it's just required for correct visualization.

I think we also need to add:

> system.update();


in the same place as well so that we also update
system.current_local_solution, since that is what is used in the stress
calculation. I tried that but the stress still seems a bit strange on the
boundary, so not sure what is causing that. But anyway, my suggestion would
be to update this example to have two new lines:

system.get_dof_map().enforce_constraints_exactly(system);
> system.update();


Regards,
David


On Tue, Aug 31, 2021 at 9:11 AM Renato Poli <rebp...@gmail.com> wrote:

> Hi,
>
> Can you confirm the output of the example system_of_equations_ex8 is as
> expected?
> I see that the constrained face has zero displacement, whereas the
> neighboring nodes are ok.
>
> Thanks,
> Renato
>
> _______________________________________________
> Libmesh-users mailing list
> Libmesh-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/libmesh-users
>

_______________________________________________
Libmesh-users mailing list
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to