Closed loumalouomega closed 7 years ago
Yes, as observed there is storage overhead with the current implementation. The reason for the current approach is to be general enough to accommodate different types of problems, structural or other.
Note that this is done in the eigensolver_strategy.hpp which should work independent of the application.
@lorenzogracia or @loumalouomega if for the structural mechanics app it makes sense, you can try defining AddDofs() in structural_mechanics_eigensolver.py to only add DISPLACEMENT. This should solve the storage problem while keeping the strategy general.
Maybe the easiest way is, despite is technically a dynamic problem, consider it as a static problem, this way just the DISPLACEMENT
DoF will be added.
I think dynamic is more meaningful since it relates to the dynamic problem and there is possibly also static buckling.
Yes, is meaningful, but it is the easiest way to solve that problem, in a real dynamic problem the time derivatives are computed using a time scheme, in this case we just take the stiffness matrix and the mass matrix in order to compute the eigenfrequencies.
It's a minor change so I added the AddDofs() in 8798fd7ddb3d57f72e6a0996bc7f549522c260df .
Thanks @msandre
Regarding #138 , I discover that the DoF stored in the
EIGENVECTORS_MATRIX
are additionally to theDISPLACEMENT
the temporal derivativesVELOCITY
andACCELERATION
, but like these DoF are not considered in the systemK-M w^2=0
, which are solved with the time scheme, then they are going to be always zero, so storing them increases the database size for the eigenvectors 3 times.Additionally this means need to know which is the order for the DoF in the
EIGENVECTORS_MATRIX
to be able to process this info.