Skip to main content

Python subroutines to create a 1D mesh in Python.

Project description

This is a collection of Python subroutines and examples that illustrate how to build a 1D Mesh with custom mesh spacing. The meshes created in the package can be used for variety of applications, including physical simulation.

Installation

pip install mesh-generator

Dependencies

python >= 3.5.0 
numpy >= 1.15.2 
matplotlib >= 3.0.0 
scipy >= 1.1.0
h5py >= 2.8.0 
tk >= 8.6.0 
pyhdf >= 0.9.10

Usage

This an example for creating a 1D theta mesh. Read the comments inside the python scripts for more details.

  • Step 1 : Input mesh requirements. Make sure to specify:

    Mesh:

    • Set lower_bnd and upper_bnd limits of mesh.

    • Set periodic.

    • Set DEFAULT_BG_REGION_RATIO - Ratio in areas without ds constraint. (Optional)

    • Set DEFAULT_FG_REGION_RATIO - Ratio in areas with ds constraint. (Optional)

    Mesh segment:

    • Set s0 and s1 for segment domain limits.

    • Set ds to the resolution you want.

    • Set var_ds_ratio as segment maximum cell to cell mesh expansion ratio. (Optional)

from mesh_generator import Mesh
from mesh_generator import MeshSegment
import numpy 

# ratio in regions you do not care about. (Default is 1.06)
MeshSegment.DEFAULT_BG_REGION_RATIO = 1.06 

# ratio in regions you do care about. (Default is 1.03) 
MeshSegment.DEFAULT_FG_REGION_RATIO = 1.03  

# mesh boundaries and if periodic. 
mesh = Mesh(lower_bnd=0.00, upper_bnd=numpy.pi, periodic=False) 

# Mesh segment requirements:
# s0 - segment begin, s1- segment end, ds- mesh spacing
# (Optional) var_ds_ratio- the maximum ratio between each point in the mesh segment. 
mesh.insert_mesh_segment(MeshSegment(s0=1.10, s1=1.40, ds=0.01, var_ds_ratio=1.05))
mesh.insert_mesh_segment(MeshSegment(s0=1.30, s1=1.90, ds=0.02))
mesh.insert_mesh_segment(MeshSegment(s0=0.40, s1=2.80, ds=0.04, var_ds_ratio=1.02))
  • Step 2: Get final mesh and write results.
input_mesh = mesh.json_dict()
adjusted_mesh = mesh.resolve_mesh_segments().json_dict()
legacy_mesh = mesh.build_legacy_mesh().json_dict()
create_psi_mesh(adjusted_mesh, legacy_mesh, mesh_type="t", dir_name=os.getcwd(),
     output_file_name="tmp_mesh_t.dat", mesh_res_file_name="mesh_res_t.dat",
     save_plot=True, show_plot=True, save_plot_path=os.getcwd(), plot_file_name="t_mesh_spacing.png", 
     input_mesh=input_mesh)

Mesh Generator User Interface

from mesh_generator import MeshGeneratorUI
MeshGeneratorUI()

License

Apache

Authors

Predictive Science Inc.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mesh_generator-1.1.8.tar.gz (58.0 kB view details)

Uploaded Source

Built Distribution

mesh_generator-1.1.8-py3-none-any.whl (72.6 kB view details)

Uploaded Python 3

File details

Details for the file mesh_generator-1.1.8.tar.gz.

File metadata

  • Download URL: mesh_generator-1.1.8.tar.gz
  • Upload date:
  • Size: 58.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0.post20200814 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.6

File hashes

Hashes for mesh_generator-1.1.8.tar.gz
Algorithm Hash digest
SHA256 3748504b98e2af89d45a24ef7617f33e7beae84e751519e29a312d2092cbc26d
MD5 dfd380752c9aef3614a2b4d73ba92937
BLAKE2b-256 daede0ee86c54f320986376d4ad0351559999a4794303be8f4714c8c1b241731

See more details on using hashes here.

File details

Details for the file mesh_generator-1.1.8-py3-none-any.whl.

File metadata

  • Download URL: mesh_generator-1.1.8-py3-none-any.whl
  • Upload date:
  • Size: 72.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0.post20200814 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.6

File hashes

Hashes for mesh_generator-1.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 61d1e54b1099d29e901dd0c6e38294564aeda4fbd00ad617fc2259f61f434abc
MD5 39c6c1fd9b899669ef6933078a45adc9
BLAKE2b-256 1127f7ecad3c27cb1f5c9305e63319e7e6023d8ff8962f017a505746c1ffc9b9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page