polyfem-python icon indicating copy to clipboard operation
polyfem-python copied to clipboard

No deformation at all in using problem class.

Open PoutineSyropErable opened this issue 1 year ago • 0 comments

I tried a lot of much simpler cases, but again, none of them shows any deformation. Is the problem class incapable of showing deformation?

Code to create a simple square grid:

import numpy as np
import meshio
import polyscope as ps

# Define grid dimensions
n = 10

# Create vertices for a grid of (n x n) squares
vertices = []
for i in range(n + 1):
    for j in range(n + 1):
        vertices.append([i / n, j / n, 0])

vertices = np.array(vertices, dtype=np.float32)

# Create faces (triangles) for each square
faces = []
k = 0
for i in range(n):
    for j in range(n):
        # Indices of the vertices for the current square
        v0 = i * (n + 1) + j
        v1 = v0 + 1
        v2 = v0 + (n + 1)
        v3 = v2 + 1
        center = (vertices[v0]+vertices[v1]+vertices[v2]+vertices[v3])/4
        
        print(k, center)
                
        
        # First triangle
        faces.append([v0, v1, v2])
        # Second triangle
        faces.append([v1, v3, v2])
        k+=2



faces = np.array(faces, dtype=np.int32)

# Save to OBJ file using meshio
mesh = meshio.Mesh(points=vertices, cells=[("triangle", faces)])
meshio.write("grid_mesh.obj", mesh)

# Initialize Polyscope
ps.init()

# Load the mesh from the OBJ file
mesh = meshio.read("grid_mesh.obj")

# Extract vertices and faces
vertices = mesh.points
faces = mesh.cells_dict["triangle"]

# Register the mesh with Polyscope
ps_mesh = ps.register_surface_mesh("2D Grid", vertices, faces)

# Show the mesh
ps.show()

Polyfem Code:

import numpy as np
import meshio
import polyscope as ps

# Define grid dimensions
n = 10

# Create vertices for a grid of (n x n) squares
vertices = []
for i in range(n + 1):
    for j in range(n + 1):
        vertices.append([i / n, j / n, 0])

vertices = np.array(vertices, dtype=np.float32)

# Create faces (triangles) for each square
faces = []
k = 0
for i in range(n):
    for j in range(n):
        # Indices of the vertices for the current square
        v0 = i * (n + 1) + j
        v1 = v0 + 1
        v2 = v0 + (n + 1)
        v3 = v2 + 1
        center = (vertices[v0]+vertices[v1]+vertices[v2]+vertices[v3])/4
        
        print(k, center)
                
        
        # First triangle
        faces.append([v0, v1, v2])
        # Second triangle
        faces.append([v1, v3, v2])
        k+=2



faces = np.array(faces, dtype=np.int32)

# Save to OBJ file using meshio
mesh = meshio.Mesh(points=vertices, cells=[("triangle", faces)])
meshio.write("grid_mesh.obj", mesh)

# Initialize Polyscope
ps.init()

# Load the mesh from the OBJ file
mesh = meshio.read("grid_mesh.obj")

# Extract vertices and faces
vertices = mesh.points
faces = mesh.cells_dict["triangle"]

# Register the mesh with Polyscope
ps_mesh = ps.register_surface_mesh("2D Grid", vertices, faces)

# Show the mesh
ps.show()

PoutineSyropErable avatar Aug 05 '24 06:08 PoutineSyropErable