Trellis Software
Trellis is a software framework developed in C++ to make up a reusable design for software to solve problems in geometrically based numerical mechanics. As a framework, Trellis dictates the architecture of the specific application written by the user of Trellis implementing a specific analysis. Most of the arising design decisions are made by Trellis, so the analysis programmer can concentrate on the problem specific implementation. For example, the programmer has to provide the actual problem specific functions that Trellis will call upon to solve the problem. Problem specific functions are all those functions that are specific to the analysis that is being solved. Usually, that will be at least the contribution of each integration point to the global system matrix or the right hand side of the system.
Trellis contains classes that represent the frame of a numerical analysis, such as knowing how to integrate over certain geometric entities (like tetrahedral elements) or how to solve non-linear problems using a Newton algorithm. Those classes were designed by identifying independent objects of numerical methods in general, rather than just defining nodes as objects, as it is done in many object-oriented finite element codes. As a result, Trellis' problem specific part is completely independent of the polynomial order of the shape functions used. Even the numerical method can be changed. The same problem can be solved using partition of unity methods (instead of finite element methods) without the need to change the problem specific part provided by the analysis programmer.
After the algorithms for an analysis are coded,
three input files have to be provided: the geometric model, the
discretization, and an attribute file. The geometric model has to
be created using a commercial geometric modeler. Currently, there
are interfaces for the following geometric modeler available that
can be used to create the geometric model such as Shapes, Acis,
and Parasolid.
In order to solve the problem using finite elements, the geometric
model is discretized using the SCOREC meshing environment MEGA or
another automatic mesh generator. The meshing is fully automatic,
based on specifications that control the size of the elements for
the entities of the geometric model. The attribute file contains
all the information needed for an analysis (boundary conditions,
initial conditions, etc.) The file also contains attributes that
control the solution process (linear/non-linear solver, polynomial
order of the shape functions, etc.) The attribute system supports
the use of expressions dependent on spacial coordinates or time
attributed to entities of the geometric model.
