mfem / mfem

Lightweight, general, scalable C++ library for finite element methods
http://mfem.org
BSD 3-Clause "New" or "Revised" License
1.67k stars 486 forks source link

Rigid elements #857

Closed dfxh closed 5 years ago

dfxh commented 5 years ago

How can one deal with idealized rigid elements? Are there penalty formulations for that?

tzanio commented 5 years ago

I'm not sure what exactly are you referring to here. Maybe other folks on the team can help, but it will be good if you can provide more details (ideally in the form of PDE and boundary conditions)

dfxh commented 5 years ago

"Commercial" FE codes offer lots of "special" elements to build "complex" systems. These contain 2-noded elements such as "springs", "dampers" etc. and "rigid" or other "multipoint constraint" elements. The area of the " rigid element" is any elasticity related problem. The "rigid element" constraints the motion of "n" nodes to that of a master "node" including translation and rotation. Technically done it is either by "elimination" the dependent degrees of freedom of the equation to be solved. After the solution the dependent dof are "added" to the output dataset again. Another option to solve the problem is that you do not remove the dependent dofs of the equation but to add lagrange multiplier.

Beside "rigid" "elements", there are also other "elements" such as multipoint constraings formulation "weighted motion" etc. .

tzanio commented 5 years ago

This is still difficult for me to follow, but if I understand correctly you want to impose a constraint on a subset of the degrees of freedom? We do that already for AMR with hanging nodes as well as in the hybridization support (see example 4).

dfxh commented 5 years ago

A constrain condition such as in AMR/automaticMeshRefinement where you constrain a node of a new elment to an edge/surface of an old one is the basic idea.

A basic description of "rigid" elements in commercial codes you can find at https://moodle.polymtl.ca/pluginfile.php/293954/mod_page/content/3/qrg.pdf page 1245ff. RBE2 (rigid) and RBE3 "weighted motion". (RBE=rigid body motion). It is clearly defined for mechanical problems including motion/displacement. For other pyhsical problems the constraints would have to be defined individualy (or not).

There are more detailed information, however the maths is not that complex.

tzanio commented 5 years ago

As a general rule, out finite elements are not specific to the problems we apply them to (which vary from solid mechanics, to flow, electromagnetics, etc.) but rather are used to define purely mathematical approximation spaces that could be used to approximate fields in different physics. For example the H(div) elements can be used for the discrete magnetic field, a flux, or in mixed methods.

So maybe the answer to your question is that we don't support "idealized rigid elements" directly but we do support constraints, so maybe implementing them is possible.