Skip to content

c3m-labs/ImportMesh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ImportMesh

This package is obsolete. Its functionality, with additional upgrades, is now included in FEMAddOns from Wolfram Research.

Utilities for importing FEM meshes to Mathematica. Currently supported file formats:

Installation

The following description is for people who just want to use the package functionality and are not interested in package development.

To use ImportMesh package you need Mathematica version 11. or later.

ImportMesh package is released in the .paclet file format, which contains code, documentation and other necessary resources. Download the latest .paclet file from the repository "releases" page to your computer and install it by evaluating the following command in the Mathematica:

(* This built-in package is usually loaded automatically at kernel startup. *)
Needs["PacletManager`"]

(* Path to .paclet file downloaded from repository "releases" page. *)
PacletInstall["full/path/to/ImportMesh-X.Y.Z.paclet"]

This will permanently install the ImportMesh package to $UserBasePacletsDirectory. To update the documentation it may be necessary to restart Mathematica. Mathematica will always use the latest installed version of package and all installed versions can be enumerated by evaluating PacletFind["ImportMesh"]. You can get more detailed information about the package with PacletInformation["ImportMesh"]. All versions can be uninstalled with:

PacletUninstall["ImportMesh"]

Alternately load the package directly from online repository by running Get["https://raw.githubusercontent.com/c3m-labs/ImportMesh/master/ImportMesh.wl"].

Usage

Basic

The only (currently) public function is ImportMesh. It creates ElementMesh object from a text file:

Get["ImportMesh`"]

mesh=ImportMesh["path/to/your_mesh_file"];
mesh["Wireframe"]

screenshot

Advanced

There are also functions in the "`Package`" subcontext that implement ImportMesh. Similarly, support is added for Import registration, so it is possible to import a file as an "ElementMesh" and get it to work as expected. For example:

$repURL = "https://raw.githubusercontent.com/c3m-labs/ImportMesh/master";
file = URLDownload@($repURL <> "/Tests/Gmsh/Hex8_box.msh");

mesh = Import[file, "ElementMesh"];
pic = mesh["Wireframe"["MeshElementStyle" -> FaceForm@LightBlue]]

example

Support is also provided for import as a string if the format type of the file is known:

inputText = ReadString@($repURL <> "/Tests/Abaqus/Quad4_annulus.inp");
mesh = ImportString[inputText, "AbaqusMesh"];
pic = mesh["Wireframe"["MeshElementStyle" -> FaceForm@LightBlue]]

example

Specific elements may also be extracted when the format is known:

ImportString[inpText, {"AbaqusMesh", "Elements"}]
(* {"Mesh", "MeshNodes", "MeshElements"} *)
ImportString[inpText, {"AbaqusMesh", "MeshNodes"}]
(* {{0.,1.}, {0., 1.4375}, ... } *)

More information on how to manipulate and visualize ElementMesh objects is available in official documentation

Contributing and bug reports

You can open a new issue with bug report or feature request.

Contributions to ImportMesh package are very welcome. Guidelines on how to build paclet file from source code can be found in CONTRIBUTING.md file. These are some things you can help with:

  • Test package with different mesh files
  • Provide sample mesh files from other, not yet supported, software
  • Propose code improvements (style or performance)