fedoo.ListBC.check

ListBC.check(problem=None, t_fact=1)

Look for boundary conditions applied twice on the same dof.

A displacement and a generalized force may be prescribed on the same node as long as the dof are different. The following cases are reported:

  • "dirichlet_conflict": Dirichlet bc with different values on the same dof. The same value prescribed twice (for instance on the nodes shared by two sets) is accepted.

  • "mpc_slave_dirichlet": Dirichlet bc on a dof eliminated by a mpc.

  • "mpc_slave_duplicate": dof eliminated by several mpc.

  • "neumann_on_dirichlet": non zero nodal Neumann bc on a dof with a Dirichlet bc. The Dirichlet bc prevails: the prescribed force is ignored and the nodal force is the reaction. This case has the severity "warning" and never raises an error, the other ones have the severity "conflict".

The generalized forces prescribed by several Neumann bc on the same dof are summed and are not reported. The distributed loads (e.g. fedoo.constraint.Pressure) are not reported either: the equivalent nodal forces are computed over the whole surface as if no dof was blocked, then the Dirichlet bc prevails on the blocked dof.

Parameters:
  • problem (Problem, optional) – Problem used to generate the boundary conditions. By default, the problem associated to the list.

  • t_fact (float, default = 1) – Time factor used to generate the boundary conditions.

Returns:

One dict per kind of reported case, with the keys "kind", "severity", "dof", "node", "variable" (arrays with one item per dof) and "bc" (list of the involved bc). The list is empty if nothing is reported.

Return type:

list of dict

Notes

This check is automatically launched the first time the boundary conditions are applied after a modification of the list, according to the check_mode attribute.