Zebulon User Additions

An extended information white paper on user additions and ZebFront is now available from z-mat-detail.pdf

Dynamic Linking

Zebulon is strongly oriented towards the user wishing to add custom routines for material models, element formulations, boundary conditions, output routines, and virtually all other operations of the calculation. The interface for these additions is greatly aided by the use of the high-level programming language C++. This language allows short, readable code to be written with automated verification and no sizing limitations. The later is supported through the use of dynamic memory allocation and a robust class library (with templates), which aid greatly in data management.

In order to add on to the standard Zebulon options, the user will create C++source code or use a special pre-processing modeling language (ZebFront) provided with the package. These files are compiled and linked into a user-executable which is connected to the standard options by dynamically linked libraries. No alteration to the standard code is required to add a particular option (material law, element formulation, etc), and there is no limit to the number of additions which can be made. The interface is seamless, making your additions look exactly like standard options of the program.

The Use of C++

Many people are intimidated by C++ and its notoriously difficult learning curve. In fact, the language can both be very easy and very hard. It is undeniable that to properly design and implement a large-scale object oriented software project in C++ is very difficuly, but if this job is properly done the expansion and "use" of the code can be very easy.

In most user addition cases, programming in C++ will be quite analogous to programming in a procedural language such as Fortran or Pascal. The C++ programmer has the advantage however of a large FEM and materials modeling library from which to draw on. This is most easily seen with the use of vector, matrix and tensorial objects which manage themselves, and can be manipulated as if they were built-in language types. Loops are thus eliminated and code written for two dimensions runs immediately in three dimensions.

Use of mathematical libraries is however only one of the benefits of this programming method. The major advantage is seen when seamless integration of new program modules is seen. Basic functionality is defined in the code using ``classes''. These classes describe the generic interface behind which implementations are given. For any given class there can be an unlimited number of implementations, all with different behavior, which seem to be the same to unrelated parts of the program. Exploiting this quality therefore eliminates any compatibility problems with existing code related to the addition of new methods. There is also no need to re-compile any existing files to integrate the new code.

Support

We are committed to making Zebulon a comfortable environment for advanced applications and users who create their own calculation components. To this end, Northwest Numerics and Modeling will strongly support the user addition aspect of the software package. This may come in the form of supplying additional documentation, examples, and coding tips, or actually providing user modules to your specification. We have been giving assistance in this way for a variety of models, including models, viscoplasticity and damage of rock salt, specialized crack calculations, new efficient implicit material integration methods, and generalized treatment of coupled problems for interaction.

Up: NW Numerics Software
Back: Material Laws
Next: Parallel Solver