24 lines
910 B
Python
24 lines
910 B
Python
import pygmsh
|
|
import meshio
|
|
|
|
import argparse
|
|
|
|
def generate_spherical_mesh(radius=1, meshSize=0.1):
|
|
with pygmsh.geo.Geometry() as geo:
|
|
# Create a spherical (ball) geometry centered at (0,0,0)
|
|
sphere = geo.add_ball([0, 0, 0], radius, mesh_size=0.1)
|
|
# Generate a 2D mesh (i.e. surface mesh) of the sphere
|
|
myMesh = geo.generate_mesh(dim=3)
|
|
return myMesh
|
|
|
|
def write_mfem_mesh(meshData, filename):
|
|
meshio.write(filename, meshData, file_format='gmsh22')
|
|
|
|
if __name__ == '__main__':
|
|
parser = argparse.ArgumentParser(description='Generate a spherical mesh')
|
|
parser.add_argument('--radius', type=float, default=1.0, help='Radius of the sphere')
|
|
parser.add_argument('--meshSize', type=float, default=0.1, help='Mesh size')
|
|
args = parser.parse_args()
|
|
|
|
meshData = generate_spherical_mesh(args.radius, args.meshSize)
|
|
write_mfem_mesh(meshData, 'sphere.msh') |