On 11/29/21 1:35 PM, Chen Shen wrote:
>
> I have a benchmark 2-D problem with a square with linear elastic material
> under a uniform gravity in the horizontal direction. No boundary condition is
> given to the structure. I lumped the mass matrix so there is no solver
> involved in the problem. I expected the results would give me very small
> values in the y direction; However, I noticed I got significant rotations
> resulting from a negative displacements on the left side of the structure and
> the positive displacements on the right side. After debugging, I found that my
> stiffness matrix is symmetric but not positive definite in this case.
Yes, if you don't prescribe Dirichlet boundary conditions, then the stiffness
matrix will have a null space that corresponds to rigid body motions:
translations and rotations.
> I know
> this comes from the fact that there is not sufficient boundary conditions
> provided to eliminate some entries, I am just wondering if there is anything
> in dealii that I can use to improve the stiffness matrix.
You need to constrain these rigid body motions. For the translations, for
example, you could fix one node's displacement to zero. Dealing with rotations
is more difficult, and is typically done after obtaining a solution: you
compute the solution of the (underdetermined) linear system, and then you
subtract from the solution something that corresponds to the rotation of the body.
Dealing with rotations is not entirely trivial and requires a couple hundred
lines of code. You might want to take a look at how ASPECT does this here:
https://github.com/geodynamics/aspect/blob/master/source/simulator/nullspace.cc
Best
W.
--
------------------------------------------------------------------------
Wolfgang Bangerth email:
bang...@colostate.edu
www:
http://www.math.colostate.edu/~bangerth/