Wiki

Clone wiki

geomIO / Home

[Home] [Basic 2D tutorial] [Basic 3D tutorial] [VaryGeom2D tutorial] [VaryGeom3D tutorial]

geomIO_logo


Overview

The geomIO workflow involves two steps:

  1. Geometry creation with Inkscape
  2. Invoke geomIO with user-defined options. This involves
  • Reading Inkscape's SVG files

  • Writing 3D geometry files for visualization and simulation initialization.

The geomIO outputs can be used for visualization (for example with Paraview) and as an initial configuration for thermomechanical simulation software


Getting started

  1. Clone this repository, either through SSH, i.e. git clone git@bitbucket.org:geomio/geomio.git, or through HTTPS git clone https://bitbucket.org/geomio/geomio.git.
  2. Change to the geomIO directory using the MATLAB console and type install_geomIO
  3. Add the provided expression to the startup.m file of your MATLAB installation.
  4. In case the MATLAB startup folder and startup.m do not exist, you may find more information here.
% startup.m (unix-version)

% geomIO installation
addpath(genpath('/FULL/PATH/TO/GEOMIO/INSTALLATION/geomio/src'));

Inkscape basics

Normally, a geomIO project starts with Inkscape. Here we have summarized some tools and basic object areas to help you get started.

Bézier tool

With the Bézier tool, you can create simple shapes that are smooth and easy to adapt to data.

Select tool logo

The select tool is probably the tool that you will be using most of the time to scale, translate or rotate objects.

Path tool

You use the path tool to change your path objects. This is especially useful if you want to duplicate an existing object (Ctrl + D) and adapt it to another template in the next level.

Edit objects

In the Fill and Stroke area, you can edit the line, width, shape, and so on. This helps you distinguish different objects. geomIO adopts these styles for later plotting of the objects.

Layers

The layer window is important because it controls the scaling of objects in the third direction. Several naming conventions are involved.

  1. Any layer name starting with # will be ignored by geomIO. Any image-data that is loaded into Inkscape (and is not just linked to the SVG file) should be placed in such a layer.
  2. The Reference layer. It contains a Bézier line with a CoordRef attribute that defines the scaling of all objects
  3. Regular layer names have the following format: <Direction_indicator>_<sign(p or m)><decimal(p)value>. For example, the layers shown in the figure below are translated to North-South_(+)5.4 and North-South_-0.5. All objects that are in these layers are referenced with these coordinates.

XML editor

We use the XML editor to add a label attribute to the object and give it a name. This ensures that the objects at different levels are linked with each other.


Getting started with geomIO

We have created a number of tutorials, examples, and benchmarks to help you get familiar with geomIO. The tutorial directories have an Input folder that contains an SVG file with the drawing and a Main_geomIO.m MATLAB script that invokes geomIO with the necessary options.

We recommend you to start with the Basic2Dtutorial and continue with the Basic3Dtutorial to learn the basics.

  • All files of the basic 2D tutorial are here,
  • and all files of the 3D tutorial are here.

Contributing to geomIO

Thank you for considering to contribute to geomIO. This is the basic guideline for contributing to geomIO. You can start contributing to geomIO in many ways. Help us to improve the documentation with other examples or tutorials, report issues and submit a feature request, or start implementing new functionalities to geomIO.

Report an issue

First, you should look for similar issues before you report your issue. It may have already been discussed or resolved in another issue. If you don't find a similar issue, you can create a new issue. Please don't include multiple issues into one issue report.

Feature requests and proposals

We appreciate feature requests as it gives feedback on how you are using geomIO or how you want to use geomIO. However, we need to take a moment to assess if this fits the purpose and scope of the project. We need a clear benefit and a strong incentive to implement the request. In any case, a function request is a basis for discussion. Please use the issue tracker to submit feature requests and proposals.

Pull request

You can create a pull request if you have fixed a thing or implemented new functionality for the geomIO project.

Updated