Files
SERiF/utils/meshGeneration/generateMesh.py

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')