I am trying to solve a problem that enforces some constraints on the system
using Lagrange multipliers (LMs). The constraints are sort of on the average
behavior of certain quantities (for eg. centre of mass) in the domain which is
why the LMs are not field variables. This implies they do not depend on the
discretization and thus don't need to be a part of the FiniteElements. This is
different from some of the problems already discussed in the tutorials, for
eg., implementing incompressibility (step-44) wherein the LMs are taken as
finite elements or the obstacle problem (step-42) in which the active-inactive
set strategy is used.
Specifically, i have six constraint equations and thus six LMs. Therefore, the
total number of unknowns becomes n_dofs+n_lagrange_multiplers(=6).
I have attempted to implement this using the naive way of simply augmenting
the system_rhs(required size=n_dofs+6) and system_matrix(required
size=n_dofs+6) for these "extra dofs". The point where i get stuck is when
the function make_sparsity_pattern() checks for the condition:
sparsity.n_rows() == n_dofs
This condition is of course violated because i initialize my sparsity pattern
with rows=dofs + n_lagrange_multiplers(=6), columns=dofs +
n_lagrange_multiplers(=6) whereas the dof_handler has no information about the
"extra dofs" i.e. the LMs.
How can i solve this problem? Is there a better way to approach it?
Vinayak:
This happens to be exactly the kind of situation that we're still discussing
here:
https://github.com/dealii/dealii/pull/16412
I think you want to specifically look at the last comment at the bottom where
I point to a proposed code gallery program.
Best
Wolfgang
--
------------------------------------------------------------------------
Wolfgang Bangerth email: [email protected]
www: http://www.math.colostate.edu/~bangerth/
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/dealii/030610cf-39aa-478c-a46e-23e365869814%40colostate.edu.