Fred,
For the compute_nonzero_normal_flux(), I want to generate a a constraint like
this:
Require that $q\in W_h$ is such that for all test functions $\lambda \in
\Trace V_h$ we have
$$
0 = \int_{\Gamma_N} \lambda ((q-g)\dot \eta) \dee x
$$
That looks easy enough if W_h is so that the normal component on the boundary
is discontinuous -- because then the condition can be enforced locally on
every face separately. Specifically, this is true for this choice of spaces:
Here, $W_h$ is fe_dgq^dim and $V_h$ is fe_dgq, both of the same degree (or
fe_dgp in both places).
Does the function you propose take two function spaces as arguments? Or are
W_h and V_h somehow related?
I do this now by building a matrix for each cell $\Omega_i$ like
$$
\int_{\Gamma_N\cap \partial \Omega_i} \lambda (q\dot \eta)\dee x
$$
for test functions in $V_h$ (not just $Trace V_h$),
But since you only evaluate \lambda at the boundary, the distinction really
doesn't matter. It just adds a bunch of rows to the matrix:
then I use the singular
value decomposition of this matrix to remove (really just identify) linearly
dependent rows of this matrix, and store the results in normal
SparseMatrices.
That seems unnecessary: these local matrices are dofs_per_cell times
dofs_per_cell, so pretty small.
What I haven't understood yet is how you're going to use this matrix. I
understand what the matrix means, but at the end of the day you want to
constrain some degrees of freedom so that they are equal to a linear
combination of other DoFs plus possibly an inhomogeneity. How do you go from
the matrix above to identifying a DoF that you want to constrain? (I think
that I can come up with an algorithm, but I'm curious to hear your idea first.)
Best
W.
--
------------------------------------------------------------------------
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].
For more options, visit https://groups.google.com/d/optout.