{"id":13823198,"url":"https://github.com/c3m-labs/MeshTools","last_synced_at":"2025-07-08T16:31:08.032Z","repository":{"id":201658280,"uuid":"127286273","full_name":"c3m-labs/MeshTools","owner":"c3m-labs","description":"Utilities for manipulating Mathematica ElementMesh objects","archived":false,"fork":false,"pushed_at":"2021-04-20T19:47:45.000Z","size":2731,"stargazers_count":28,"open_issues_count":0,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-05T09:11:36.086Z","etag":null,"topics":["finite-element-methods","mathematica","mesh","mesh-generation","wolfram-language"],"latest_commit_sha":null,"homepage":null,"language":"Mathematica","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/c3m-labs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-03-29T12:10:16.000Z","updated_at":"2024-02-05T03:55:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"f115d84a-74f3-45e0-b7f9-14c74839badd","html_url":"https://github.com/c3m-labs/MeshTools","commit_stats":null,"previous_names":["c3m-labs/meshtools"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c3m-labs%2FMeshTools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c3m-labs%2FMeshTools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c3m-labs%2FMeshTools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c3m-labs%2FMeshTools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/c3m-labs","download_url":"https://codeload.github.com/c3m-labs/MeshTools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225449314,"owners_count":17476069,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["finite-element-methods","mathematica","mesh","mesh-generation","wolfram-language"],"created_at":"2024-08-04T09:00:24.466Z","updated_at":"2024-11-20T00:30:55.524Z","avatar_url":"https://github.com/c3m-labs.png","language":"Mathematica","funding_links":[],"categories":["Finite Element Method Analysis"],"sub_categories":[],"readme":"# MeshTools\n\n[![releases](http://img.shields.io/github/release/c3m-labs/MeshTools.svg)](http://github.com/c3m-labs/MeshTools/releases)\n[![SemVer 2.0.0](http://img.shields.io/badge/SemVer-2.0.0-brightgreen.svg)](http://semver.org/spec/v2.0.0.html)\n\n_MeshTools_ is a [Mathematica](http://www.wolfram.com/mathematica/) package for creating and manipulating\nmeshes for finite element method (`ElementMesh` objects). It helps you to do the following tasks:\n\n* Create structured mesh in 2D or 3D\n* Split, transform and merge meshes\n* Convert triangular to quadrilateral mesh\n* Create high quality mesh on basic geometric shapes\n\n![niceExample](Images/ExampleMeshes.png)\n\n## Installation\n\n_MeshTools_ package requires Mathematica version 11. or later.\n\nThe package is released in the `.paclet` file format that contains the code,\ndocumentation and other necessary resources.\nDownload the latest `.paclet` file from the\nrepository [\"releases\"](https://github.com/c3m-labs/MeshTools/releases) page\nto your computer and install it by evaluating the following command in the Mathematica:\n\n```mathematica\n(* This built-in package is usually loaded automatically at kernel startup. *)\nNeeds[\"PacletManager`\"]\n\n(* Path to .paclet file downloaded from repository \"releases\" page. *)\nPacletInstall[\"full/path/to/MeshTools-X.Y.Z.paclet\"]\n```\n\nThis will permanently install the _MeshTools_ package to `$UserBasePacletsDirectory`.\nTo update the documentation it may be necessary to restart Mathematica.\nMathematica will always use the latest installed version of package and all installed versions\ncan be enumerated by evaluating `PacletFind[\"MeshTools\"]`.\nYou can get more detailed information about the package with `PacletInformation[\"MeshTools\"]`.\nAll versions can be uninstalled with:\n\n```mathematica\nPacletUninstall[\"MeshTools\"]\n```\n\nAlternative method of installation for Mathematica version 12.0+ is to use\n[ResourceFunction[\"GitHubInstall\"]](https://resources.wolframcloud.com/FunctionRepository/resources/GitHubInstall)\nfrom Wolfram Function Repository. Note that you need to be logged in with (free) Wolfram Account to use it.\n\n```mathematica\nResourceFunction[\"GitHubInstall\"][\"c3m-labs\", \"MeshTools\"]\n```\n\n### Try it online\n\nYou can try the package even without installation by going to\n[Wolfram Programming Lab](https://www.wolfram.com/programming-lab/)\nand clicking \"Start programming now\".\nThis will open a new notebook in Cloud environment where you should evaluate the following to load the package.\n\n```mathematica\nGet[\"http://raw.githubusercontent.com/c3m-labs/MeshTools/master/MeshTools/MeshTools.wl\"]\n```\n\nYou will not be able to access documentation, but it is helpful to list all available functions.\nThen you can also try the usage example from the section below.\n\n```mathematica\nInformation[\"MeshTools`*\"]\n```\n\n## Usage\n\nAfter installing the package, load it in the Mathematica session with `Needs`.\nTo access the documentation, open the notebook interface help viewer and search for \"MeshTools\".\n\n### Example of extruded mesh\n\n```mathematica\nNeeds[\"MeshTools`\"]\n\n(* Create MeshRegion object from Graphics. *)\nregion = DiscretizeGraphics[\n  Text[Style[\"\\[Pi]\", FontWeight -\u003e \"Bold\"]],\n  _Text,\n  MaxCellMeasure -\u003e 1/10\n]\n\n(* Convert MeshRegion object to ElementMesh object and smoothen mesh (improve quality). *)\nmeshTri = SmoothenMesh@ToElementMesh[region, \"MeshOrder\" -\u003e 1]\nmeshTri[\"Wireframe\"]\n```\n\n![screenshot1](Images/PiMeshTriangle.png )\n\n```mathematica\n(* Convert triangular mesh to quadrilateral and smoothen it again. *)\nmeshQuad = SmoothenMesh@TriangleToQuadMesh@meshTri\nmeshQuad[\"Wireframe\"]\n```\n\n![screenshot2](Images/PiMeshQuad.png )\n\n```mathematica\n(* Extrude 2D quadrilateral mesh to 3D hexahedral mesh (with 8 layers). *)\nmesh3D = ExtrudeMesh[meshQuad, 1, 8];\nmesh3D[\"Wireframe\"[\"MeshElementStyle\" -\u003e FaceForm@LightBlue]]\n```\n\n![screenshot3](Images/PiMesh3D.png )\n\n```mathematica\n(* Inspect the minimal, average and maximal quality of 3D mesh. *)\nThrough[{Min, Mean, Max}@Flatten[mesh3D[\"Quality\"]]]\n(* {0.47, 0.91, 0.99} *)\n```\n\n## Contributing and feedback\n\nPlease use the repository [\"issues\"](https://github.com/c3m-labs/MeshTools/issues) page to submit bugs or feature ideas.\nIf you find this package useful, feel free to send us feedback by email to `github(at)c3m.si`.\n\nPull requests to this repository are welcome.\nFor major changes, please open an issue first to discuss what you would like to change.\nInstructions on building the `.paclet` file from source code can be found in [CONTRIBUTING.md]( CONTRIBUTING.md ) file.\n\n## License\n\n[MIT](https://choosealicense.com/licenses/mit/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc3m-labs%2FMeshTools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fc3m-labs%2FMeshTools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc3m-labs%2FMeshTools/lists"}