ZebFront#

Description#

The objective of the ZebFront preprocessor is to provide a means of reducing the technical programming tasks involved in material models. This will hopefully encourage material theorists to implement their models early in the development process. Resulting code should be of high enough quality for final implementations as well and therefore provides a general tool. Eventually, the preprocessor will be able to provide some symbolic math to reduce the efforts necessary to program implicit integration methods.

Several applications are envisioned for the preprocessor, each giving a similar interface (modeling language). As mentioned above, the main purpose is the creation of material behaviors. This currently applies to simulation models and FEM material behaviors. Soon, the preprocessor will be able to construct class definitions based on a generalized template, thereby allowing the user to create whole class hierarchies for different applications. Implementation of the template method of class formatting involves some significant modifications and influences largely the use of the @SubClass command. This command should thus be considered as unfinished; a more complete version will be available shortly.

The basic functionality of the ZebFront program may be summarized by the following figure:

../../_images/ZebFrontClasses.svg

The preprocessor is seen to be composed of a standard Z-set base class supporting the preprocessor mode, and a corresponding module in the preprocessor program defining the syntax and directives which are allowed. ZebFront is therefore expandable through the addition of these supporting pairs.

The user (model programmer) then writes a personalized model in a file suffixed by .z which is the program source. This source file is a complete model definition, and does not require any modifications to other program files. There is also no limit to the number of .z files in a given user project.

A model seen to be defined by a class definition, and code defining the implementation. The class definition resembles a C++ class and requires that the class derive from a defined class type, which specifies the class type which will be created. Note that different class types may have very different syntax and rules. The allowable modes are summarized below:

CODE

DESCRIPTION

SIMUL_MODEL

Simulation model (page 3.7).

BASIC_NL_BEHAVIOR

Presumed non-linear FEM material behavior (page 3.9).

BASIC_SIMULATOR

Simulation model derived from a BASIC_NL_BEHAVIOR (page 3.13).