Hi, I’m trying to create an anisotropic order Lagrange mesh which is linear in x and quadratic in y. Here’s a minimal example of what I’m doing:
import vtk
from vtkmodules.vtkRenderingCore import vtkProperty
order = [2, 3]
cells = [0, 3, 5, 2, 3, 1]
points = [
[-1.0, -2.0, 0.0],
[-1.0, 0.0, 1.0],
[-1.0, 2.0, 0.0],
[1.0, -2.0, 0.0],
[1.0, 0.0, 1.0],
[1.0, 2.0, 0.0],
]
cell = vtk.vtkLagrangeQuadrilateral()
cell.SetOrder(*order)
cell.GetPointIds().SetNumberOfIds(len(cells))
cell.GetPoints().SetNumberOfPoints(len(cells))
cell.Initialize()
for i, p in enumerate(points):
cell.GetPointIds().SetId(i, cells[i])
cell.GetPoints().SetPoint(i, p[0], p[1], p[2])
g = vtk.vtkUnstructuredGrid()
g.InsertNextCell(cell.GetCellType(), cell.GetPointIds())
g.SetPoints(cell.GetPoints())
mapper = vtk.vtkDataSetMapper()
mapper.SetInputData(g)
actor = vtk.vtkActor()
actor.SetMapper(mapper)
props = vtkProperty()
props.SetEdgeVisibility(True)
props.SetLineWidth(3)
actor.SetProperty(props)
renderer = vtk.vtkRenderer()
renderWindow = vtk.vtkRenderWindow()
renderWindow.AddRenderer(renderer)
renderWindowInteractor = vtk.vtkRenderWindowInteractor()
renderWindowInteractor.SetRenderWindow(renderWindow)
renderer.AddActor(actor)
renderer.SetBackground(0.2, 0.3, 0.4)
renderWindow.Render()
renderWindowInteractor.Start()
Unfortunately, when I try this I get an error in the console:
2025-06-10 05:52:02.140 (1992.961s) [ 7A1CDB85C300]vtkHigherOrderQuadrilat:586 ERR| vtkLagrangeQuadrilateral (0x14ebe320): The degrees are direction dependents, and should be set in the input file.
ERROR:root:The degrees are direction dependents, and should be set in the input file.
2025-06-10 05:52:02.140 (1992.961s) [ 7A1CDB85C300]vtkHigherOrderQuadrilat:586 ERR| vtkLagrangeQuadrilateral (0x14ebe320): The degrees are direction dependents, and should be set in the input file.
ERROR:root:The degrees are direction dependents, and should be set in the input file.
2025-06-10 05:52:02.140 (1992.961s) [ 7A1CDB85C300]vtkHigherOrderQuadrilat:609 ERR| vtkLagrangeQuadrilateral (0x14ebe320): The degrees might be direction dependents, and should be set before GetOrder is called. numPts is 6 and Order[2] 4
ERROR:root:The degrees might be direction dependents, and should be set before GetOrder is called. numPts is 6 and Order[2] 4
2025-06-10 05:52:02.140 (1992.961s) [ 7A1CDB85C300]vtkHigherOrderQuadrilat:609 ERR| vtkLagrangeQuadrilateral (0x14ebe320): The degrees might be direction dependents, and should be set before GetOrder is called. numPts is 6 and Order[2] 4
ERROR:root:The degrees might be direction dependents, and should be set before GetOrder is called. numPts is 6 and Order[2] 4
It does render something, however the rendered mesh appears to be linear in all dimensions.
Is there something else I need to do to get anisotropic order elements to work?