# [dune-pdelab] Off main-diagonal Dirchlet conditions

Peter Bastian peter.bastian at iwr.uni-heidelberg.de
Fri Nov 27 15:32:10 CET 2009

```Dear Andreas,

In PDELab (as in the mathematical formulation) constraints are on the
function space and not "on equations". I.e. if you have a composite
space U = V x W then V (say pressure) may be constraint independently of
W (say saturation). This is done by the constraints method when given a
vector-valued boundary condition function as I said in the last mail.

The jacobian assembler then automatically puts trivial equations in the
rows corresponding to constrained degrees of freedom. The
GridOperatorSpace takes two GridFunctionSpaces, one for trial functions
(TrialGFS) and one for test functions (TestGFS). It is the space for the
test functions that determines the trivial rows. If TrialGFS=TestGFS (as
is often the case) those equations multiplied with a test function
(v_i,0) will be trivial if degree of freedom i is constrained and
correspondingly for (0,w_j).

Hope that this helps.

-- Peter

Am Donnerstag, den 26.11.2009, 18:03 +0100 schrieb Andreas Lauser:
> Hi pdelabers,
>
> Now I am able to use mixed boundary conditions with PowerGridFunctionSpace
> which is great! The next thing which would be nice to have is a way to specify
> which equation determines which dirichlet condition. If I my understanding of
> the constraints framework in PDELab is correct I do not see a way to do this.
>
> Example:
>
> For two-dimensional P1-Elements, the LocalPowerGridFunctionSpace for two
> equations looks like this:
>
> (root)
> |
> |--- (local finite element for equation 0)
> |     |-> coefficient index for vertex 0
> |     |-> coefficient index for vertex 1
> |     \-> coefficient index for vertex 2
> \--- (local finite element for equation 1)
>       |-> coefficient index for vertex 0
>       |-> coefficient index for vertex 1
>       \-> coefficient index for vertex 2
>
> If I understood everything correctly, constraints are defined by inserting the
> weights of number of DOFs to the constraints tranformation. Also the weights
> of the DOFs are specified by their index in the local finite element if I'm
> not mistaken.
>
> What I would like to have is a way to define constraints depending on the
> solution of a different finite element, for example using equation 1 to
> specify the dirichlet value for primary variable 0 on the the first vertex. I
> guess this would require to store some global DOF indices in the constraints
> transformation. How can I do this? Quite likely I'm just too stupid to see
> some obvious solution...
>
> Regards
>   Andreas
>
--
Peter Bastian
Universität Heidelberg
Interdisziplinäres Zentrum für Wissenschaftliches Rechnen
Im Neuenheimer Feld 368
D-69120 Heidelberg
Telefon +49 (6221) 54-8261/8249
Telefax +49 (6221) 54-8884
Email: peter.bastian at iwr.uni-heidelberg.de

```