Cannot write UGGrid object from Python
This is related to staging/dune-uggrid#46 (closed)
I am trying to write a UGGrid
object from Python, but I get a compiler error. When building dune-vtk
, the option dune-uggrid
dependency was (AFAICT) found correctly. Writing a YaspGrid
object works well.
Here is my test program:
import dune.grid
from dune.vtk import vtkWriter
mshfile = "l-shape.msh"
grid = dune.grid.ugGrid( (dune.grid.reader.gmsh, mshfile), dimgrid=2 )
writer = vtkWriter( grid, "nameTestNonlinear")
Here is the error I get:
(dune-env) ~/skripte/skript-feec/programs> python vtk-problem.py
Authorization required, but no authorization protocol specified
Authorization required, but no authorization protocol specified
Authorization required, but no authorization protocol specified
Traceback (most recent call last):
File "/home/sander/skripte/skript-feec/programs/vtk-problem.py", line 141, in <module>
writer = vtkWriter( grid, "nameTestNonlinear", pointData = {( "value"):xFunc})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/sander/dune-python/dune-vtk/build-cmake/python/dune/vtk/__init__.py", line 46, in vtkWriter
writer = load( allWriters[version][1],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/sander/dune-python/dune-vtk/build-cmake/python/dune/vtk/__init__.py", line 13, in load
module = generator.load(includes, typeName, moduleName)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/sander/dune-python/dune-common/build-cmake/python/dune/generator/generator.py", line 172, in load
return self.post(moduleName, source, postscript, extraCMake)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/sander/dune-python/dune-common/build-cmake/python/dune/generator/generator.py", line 124, in post
module = builder.load(moduleName, source, self.typeName[0], extraCMake)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/sander/dune-python/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line 387, in load
self._buildModule( moduleName, source, pythonName, extraCMake )
File "/home/sander/dune-python/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line 738, in _buildModule
raise CompileError(buffer_to_str(stderr))
dune.generator.exceptions.CompileError: /home/sander/dune-python/dune-common/build-cmake/dune-env/.cache/dune-py/python/dune/generated/vtkwriter_9a4407ddde2a9c4f571d3b98d5700e5a.cc: In function ‘void pybind11_init_vtkwriter_9a4407ddde2a9c4f571d3b98d5700e5a(pybind11::module_&)’:
/home/sander/dune-python/dune-common/build-cmake/dune-env/.cache/dune-py/python/dune/generated/vtkwriter_9a4407ddde2a9c4f571d3b98d5700e5a.cc:20:60: error: ‘UGGrid’ is not a member of ‘Dune’; did you mean ‘YGrid’?
20 | using DuneType = Dune::VtkUnstructuredGridWriter<Dune::UGGrid< 2 >::LeafGridView>;
| ^~~~~~
| YGrid
/home/sander/dune-python/dune-common/build-cmake/dune-env/.cache/dune-py/python/dune/generated/vtkwriter_9a4407ddde2a9c4f571d3b98d5700e5a.cc:20:70: error: template argument 1 is invalid
20 | using DuneType = Dune::VtkUnstructuredGridWriter<Dune::UGGrid< 2 >::LeafGridView>;
| ^
compilation terminated due to -fmax-errors=2.
make: *** [/home/sander/dune-python/dune-common/build-cmake/dune-env/.cache/dune-py/python/dune/generated/CMakeFiles/vtkwriter_9a4407ddde2a9c4f571d3b98d5700e5a.dir/vtkwriter_9a4407ddde2a9c4f571d3b98d5700e5a.make:3: CMakeFiles/vtkwriter_9a4407ddde2a9c4f571d3b98d5700e5a.dir/vtkwriter_9a4407ddde2a9c4f571d3b98d5700e5a.cc.o] Fehler 1
@andreas.dedner , @robert.kloefkorn , @simon.praetorius , can you help? Thank you!
Edited by Robert K