On 6/20/24 22:09, kai huang wrote:
> I am working on some problems involving eigenvalues and eigenvectors.
> I am having some issues when assembling the stiffness matrix. Generally,
> there are three methods to handle Dirichlet boundary conditions, such as the
> penalty method (multiplying by a large number); setting the diagonal elements
> to 1 and the remaining elements to zero; or removing the corresponding degrees
> of freedom from the stiffness matrix. However, the penalty method (multiplying
> by a large number) can cause the matrix to become ill-conditioned. Setting the
> diagonal elements to 1 and the remaining elements to zero can affect the
> computation of lower-order eigenvalues, leading to eigenvalues of 1 that might
> not be the desired eigenvalues. The best method for solving eigenvalue
> problems is to remove the corresponding degrees of freedom from the stiffness
> matrix, as this not only saves computational effort but also avoids the
> aforementioned issues. However, in sparse matrices, this method is not easy to
> handle. Is there a function in deal.II that can manage this?
You are in luck, we thought of this when we wrote step-36 :-) Take a look at
this section:
https://dealii.org/developer/doxygen/deal.II/step_36.html#step_36-EigenvaluesandDirichletboundaryconditions
> Additionally, I would like to ask if isogeometric analysis can be done in
> deal.II?
This depends on how exactly you define "isogeometric". We can use arbitrary
geometries (in particular NURBS-based geometries) and there are tutorial
programs about that as well (step 54, for example).
Best
W.
--
------------------------------------------------------------------------
Wolfgang Bangerth email:
bang...@colostate.edu
www:
http://www.math.colostate.edu/~bangerth/