[dune-pdelab] Output component gradients for PowerGridfunctionSpace

Michael Wenske m_wens01 at wwu.de
Thu Nov 14 15:36:39 CET 2019


Dear wizards,

i am working on a system of one or two (or more) reaction-diffusion
equations. I successfully
refactored my codebase to use the PowerGridfunctionSpace for this
application.
This way I can extend my system to more fields, or fall back to the
simple one-equation case.
I can switch between a PowerGFS of size 1 (one equation), and size 2
(two coupled equations),
and export the results to VTK. So far so good.

Now I want to inspect the gradients of my field(s). In the normal case
without the PowerGFS,
I could make use of the functionality of DiscreteGridFunctionGradient,
and then use the VTK adapter to write the gradient. This is very convenient!

How do I go about this when using a PowerGFS? I fail to get it to work
even for the
one-component PowerGFS. For the two component fields I can use the class
VectorDiscreteGridFunction<..,size>, and force the return types size
with the last
template argument. The class VectorDiscreteGridFunctionGradient does not
seem
to have that option. Here, in the case where the powerGFS has size one, the
Adapters can not convert the one-component Fieldvector to double (I think).

I tried a different route of extracting the sub-GFS-Type from the
PowerGFS and
create a handle on the first components subspace. The idea was to use
use the existing
functionality of the DGF's and adapters on the subGFS, but I also run
into problems.
How would I extract the (smaller) coefficient vector from the larger
PowerGFs one?

I figure that this might be interesting for other applications too,
where the GFS-Tree
might be even more complex than in my case.

I am attaching a minimal working example (dune module) which outputs the
two component fields
sucessfully. The parts where I horribly fail to output the gradients of
the first component are
commented, starting from line 107. I would appreciate any hints or
insights on how to do this.

Am I missing something? What would be the dune way to do this?

build with:
./dune-common/bin/dunecontrol --opts=./dune-powerGFS-output/debug_opts
--only=dune-powerGFS-output all

I am working on dune 2.6

thanks in advance!

Michael

-------------- next part --------------
A non-text attachment was scrubbed...
Name: dune-powerGFS-output.zip
Type: application/zip
Size: 9612 bytes
Desc: not available
URL: <https://lists.dune-project.org/pipermail/dune-pdelab/attachments/20191114/e8e63e37/attachment.zip>


More information about the dune-pdelab mailing list