0

I have installed Ubuntu-22.04 in wsl version 2. Later I have installed fenicsx and paraview. I have launched xming. If in the terminal I run paraview, I am capable of getting the user gui. But if I run the first tutorial of fenicsx (https://jsdokken.com/dolfinx-tutorial/chapter1/fundamentals_code.html), I will get the results of the error printed in the screen but it would not be able to open the plot of pyvista. I get a message that says: trame. What you can see on the image (I had to kill the process): enter image description here

Does somebody know how I can solve such thing? Thanks

The code looks like:

import numpy as np

import ufl
from dolfinx import fem, io, mesh, plot
from ufl import ds, dx, grad, inner

from mpi4py import MPI
from petsc4py.PETSc import ScalarType

msh = mesh.create_rectangle(comm=MPI.COMM_WORLD,
                            points=((0.0, 0.0), (2.0, 1.0)), n=(32, 16),
                            cell_type=mesh.CellType.triangle,)
V = fem.FunctionSpace(msh, ("Lagrange", 1))

facets = mesh.locate_entities_boundary(msh, dim=(msh.topology.dim - 1),
                                       marker=lambda x: np.logical_or(np.isclose(x[0], 0.0),
                                                                      np.isclose(x[0], 2.0)))

dofs = fem.locate_dofs_topological(V=V, entity_dim=1, entities=facets)

bc = fem.dirichletbc(value=ScalarType(0), dofs=dofs, V=V)

u = ufl.TrialFunction(V)
v = ufl.TestFunction(V)
x = ufl.SpatialCoordinate(msh)
f = 10 * ufl.exp(-((x[0] - 0.5) ** 2 + (x[1] - 0.5) ** 2) / 0.02)
g = ufl.sin(5 * x[0])
a = inner(grad(u), grad(v)) * dx
L = inner(f, v) * dx + inner(g, v) * ds

problem = fem.petsc.LinearProblem(a, L, bcs=[bc], petsc_options={"ksp_type": "preonly", "pc_type": "lu"})
uh = problem.solve()

with io.XDMFFile(msh.comm, "out_poisson/poisson.xdmf", "w") as file:
    file.write_mesh(msh)
    file.write_function(uh)

try:
    import pyvista
    cells, types, x = plot.create_vtk_mesh(V)
    grid = pyvista.UnstructuredGrid(cells, types, x)
    grid.point_data["u"] = uh.x.array.real
    grid.set_active_scalars("u")
    plotter = pyvista.Plotter()
    plotter.add_mesh(grid, show_edges=True)
    warped = grid.warp_by_scalar()
    plotter.add_mesh(warped)
    if pyvista.OFF_SCREEN:
        pyvista.start_xvfb(wait=0.1)
        plotter.screenshot("uh_poisson.png")
    else:
        plotter.show()

except ModuleNotFoundError:
    print("'pyvista' is required to visualise the solution")
    print("Install 'pyvista' with pip: 'python3 -m pip install pyvista'")

I have also tried to follow the instructions of the following video: https://www.youtube.com/watch?v=uL8nnuvybL8

and now the error looks like:

enter image description here

Best regards,

Dani

Daniel
  • 27
  • 2
  • 7
  • 1
    Please share more details, like the code involved and the error message you are facing **in text form** – Nico Haase Jun 12 '23 at 13:57
  • Why XMING? WSL2 now supports gui applications – SiHa Jun 15 '23 at 08:20
  • 1
    @SiHa I am unsure why, I can run paraview, gedit and others, but somehow with pyvista and python3 it does not work. At least in my office laptop, in my home laptop I do not have problems. – Daniel Jun 15 '23 at 08:33
  • The problem appears with plotter.show(), that is the point where nothing happens, and the computer is like frozen. – Daniel Jun 15 '23 at 09:27

0 Answers0