On 08/03/2017 03:16 AM, 'Maxi Miller' via deal.II User Group wrote:
I am following example 52 for writing code which should solve a system of
three equations. In it I can rewrite my equations such that my source term is
zero, but my matrices on the left side are depending on time, which means that
I have to reassemble the system matrix and the inverse system matrix at every
time step. Is that a good idea, or rather performance-degrading?
Like all performance questions, it is not worth thinking about them *unless
you have concrete evidence* that your performance is too slow for what you
want to do. For example, if your solver takes 90% of the time, then it doesn't
make sense to look at the run time of the assembly.
Furthermore I then have to call
|
assemble_system(time)
|
in the function
|
evaluate_diffusion(constdoubletime,constVector<double>&y)
|
but compilation fails with
|
error:passing ‘constStep52::Diffusion<3>’as‘this’argument discards qualifiers
[-fpermissive]
assemble_system(time);
|
but why? And how can I fix that?
Your evaluate_diffusion() function is declared as `const`. But you can only
call `const` functions from `const` functions, so you are not allowed to call
the non-`const` function assemble_system().
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.