I have read the Fenics tutorial carefully. Now I want to build a square mesh whose element sizes are very small at the left-bottom corner while the element sizes at other places are very large. I know we can achieve this using Gmsh. However, can we achieve this only using Fenics commands?
Thank you very much in advance for your kind help.
You can provide a sequence of geometric points and their connecting topology to dolfinx.mesh.create_mesh. There’s an example here. You’d need to provide the points and cells which satisfy your needs. I believe @dokken may have a separate tutorial for creating meshes too.
Thank you for your reply. I want my mesh to be unstructured.
I displayed my code to generate my mesh here. As can be seen, I used “generate_mesh()” to create my mesh. But the element sizes are basically the same. I focus on the left-bottom corner of the mesh (i.e. regions close to the quarter circle), so I want to make the element sizes around the quarter circle smaller. And I want to make the element sizes at other places larger (to decrease the computational cost). Can we achieve this without using Gmsh?
I am now reading the links that you shared. Thank you again.
Best regards.
from __future__ import print_function
from fenics import *
import matplotlib.pyplot as plt
import numpy as np
from mshr import *
N = 30
length = 10.0
width = 10.0
p0 = Point(np.array([0.0, 0.0]))
p1 = Point(np.array([length, width]))
r = 2
obj = Circle(Point(0, 0), r)
domain = Rectangle(p0, p1) - obj
mesh = generate_mesh(domain, N)
print( "number of cells:", mesh.num_cells() )
plot(mesh)
plt.show()