ZebFront#

Description#

The objective of the ZebFront preprocessor is to reduce the technical programming effort required for material models, encouraging material theorists to implement their models early in the development process. The resulting code should be of sufficient quality for final implementations, providing a general-purpose tool. In the future, the preprocessor will also offer symbolic math capabilities to simplify programming of implicit integration methods.

Several applications are envisioned, all providing a similar interface (modeling language). The main purpose is the creation of material behaviors, currently for simulation models and FEM material behaviors. Soon, the preprocessor will be able to generate class definitions from a generalized template, allowing users to create entire class hierarchies for different applications. Implementing the template method requires significant modifications and largely affects the use of the @SubClass command, which should be considered unfinished; a complete version will be provided shortly.

The basic functionality of ZebFront can 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:

Mode

Description

SIMUL_MODEL

Simulation model (see SIMUL_MODEL).

BASIC_NL_BEHAVIOR

Non-linear FEM material behavior (see BASIC_NL_BEHAVIOR).

BASIC_SIMULATOR

Simulation model derived from a BASIC_NL_BEHAVIOR (see BASIC_SIMULATOR).