The goal of Seeder is simple: create an octree mesh out of a given geometry.
Typically the geometry is given in the form of
STL-files.
As simple as this goal is the basic idea for the construction of this mesh.
The user first has to describe the cubical outline of the mesh, which has to
enclose the complete geometry.
This is referred to as bounding_cube
.
It is the root node of the octree, from which all elements of the mesh are
derived by recursive bisection in all three spatial dimensions.
The generated mesh will be written to the location provided by the folder
setting.
This either is simply a prefix to use for all mesh file names or a directory,
if it is a directory, the string has to include the path-separator at the end,
and the directory has to exist.
A third global setting can be used to define a minimial refinement level to
use for all elements that will be part of the final mesh.
This minlevel
setting provides a method to prescribe a minimal resolution
for the complete domain, if it is not provided the resolution will only be
defined by the geometrical objects you put into the bounding cube.
See the fully periodic cube
example for a mesh that uses only these three settings.
Geometric definitions, have to be given one of the attributes.
Attributes are defined by their kind
:
For some further internal details see:
the overall algorithm.
Octree describes the implementation of the Octree data structure in a little more detail.
Treelm is a common library that implements the octree mesh handling for the solvers.
Aotus is a library that provides the access to Lua scripts as configuration files.
Seeder is licensed under the terms of the 2-clause BSD license reproduced below. This means that Seeder is free software and can be used, reproduced, modified, distributed and redistributed also for commercial purposes under the conditions of the BSD license. The only requirement is that some credit to the authors is given by putting this copyright notice somewhere in your project.
According to good scientific practice, publications on results achieved in whole or in part due to Seeder should cite at least one paper presenting the Seeder software.
An appropriate reference is:
@incollection{harlacher_seeder12, author = {Harlacher, Daniel F. and Hasert, Manuel and Klimach, Harald and Zimny, Simon and Roller, Sabine}, affiliation = {German Research School for Simulation Sciences GmbH, and RWTH, Aachen, Germany}, title = {Tree Based Voxelization of STL {Data}}, booktitle = {High Performance Computing on Vector Systems 2011}, editor = {Resch, Michael and Wang, Xin and Bez, Wolfgang and Focht, Erich and Kobayashi, Hiroaki and Roller, Sabine}, publisher = {Springer Berlin Heidelberg}, pages = {81-92}, year = {2012} }
See each file for respective copyright notices.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.