Merge branch 'feature/instationary' into 'master'
Feature/instationary Make it possible to solve instationary problems by providing a form called 'mass' in the UFL file. Some notes: - The most important change is in cache.py: Deleting the cache did not work. Consider the following minimal example: ```python global_dict = {} class ModDict(dict): def __init__(self, tags): dict.__init__(self) self.tags = tags def __getitem__(self, i): # if i == "True": # return True return i in self.tags def test(): print eval("True") print eval("True", {}) print global_dict.items() print eval("True", global_dict) print eval("True", ModDict('test')) print eval("not True", ModDict('test')) print ModDict('test')["True"] print ModDict('test')["Blubber"] # print global_dict["True"] -> key error test() ``` The modified dictionary never throws a key error. Instead it always returns False if a key is not found in the tags. Therefore `print eval("True", ModDict('test'))` returns False! - You can switch between implicit and explicit through formcompiler arguments. - The time loop in the driver is hard coded. Should be replaced with something smarter in the future. -> Issue - In order to test the problems I compare with an exact solution. Easiest way to do that: Chose g and f like in the poisson example. Unfortunately this leads to boring vtk files since everything ist stationary ;). - The explicit time stepping has some weird behavior. The reference solution behaves exactly the same and it is not surprising that an explicit time stepping method is not suitable for soling heat equation. Nonetheless I think it is strange how it behaves on the boundary (it doesn't try to satisfy the Dirichlet condition). The cause for that could be: 1. I'm doing the wrong thing in PDELab. 2. You shouldn't do explicit instationary CG in PDELab. 3. Some bug. - Probably it is the first option ;). See merge request !11
No related branches found
No related tags found
Showing
- python/dune/perftool/compile.py 46 additions, 50 deletionspython/dune/perftool/compile.py
- python/dune/perftool/generation/cache.py 12 additions, 0 deletionspython/dune/perftool/generation/cache.py
- python/dune/perftool/options.py 1 addition, 0 deletionspython/dune/perftool/options.py
- python/dune/perftool/pdelab/driver.py 484 additions, 138 deletionspython/dune/perftool/pdelab/driver.py
- python/dune/perftool/pdelab/localoperator.py 51 additions, 6 deletionspython/dune/perftool/pdelab/localoperator.py
- python/dune/perftool/pdelab/parameter.py 28 additions, 2 deletionspython/dune/perftool/pdelab/parameter.py
- test/CMakeLists.txt 2 additions, 1 deletiontest/CMakeLists.txt
- test/heatequation/CMakeLists.txt 27 additions, 0 deletionstest/heatequation/CMakeLists.txt
- test/heatequation/driver.hh 164 additions, 0 deletionstest/heatequation/driver.hh
- test/heatequation/heatequation.ufl 11 additions, 0 deletionstest/heatequation/heatequation.ufl
- test/heatequation/heatequation_explicit.mini 15 additions, 0 deletionstest/heatequation/heatequation_explicit.mini
- test/heatequation/heatequation_explicit_ref.cc 263 additions, 0 deletionstest/heatequation/heatequation_explicit_ref.cc
- test/heatequation/heatequation_implicit.mini 11 additions, 0 deletionstest/heatequation/heatequation_implicit.mini
- test/heatequation/heatequation_implicit_ref.cc 192 additions, 0 deletionstest/heatequation/heatequation_implicit_ref.cc
- test/heatequation/heatequation_implicit_ref.ini 29 additions, 0 deletionstest/heatequation/heatequation_implicit_ref.ini
- test/heatequation/nonlinearheatfem.hh 151 additions, 0 deletionstest/heatequation/nonlinearheatfem.hh
- test/heatequation/nonlinearpoissonfem.hh 171 additions, 0 deletionstest/heatequation/nonlinearpoissonfem.hh
- test/heatequation/problem.hh 70 additions, 0 deletionstest/heatequation/problem.hh
Loading
Please register or sign in to comment