BASIC_SIMULATOR#

Description#

The BASIC_SIMULATOR ZebFront class type is used for FEM behaviors which are meant to be run in the simulation mode as well. Classes of this type must be valid BASIC_NL_BEHAVIOR classes, and require special code to calculate the mixed-mode loading case, but also allow definition of yield surface functions.

Syntax#

The class declaration is the same as that for BASIC_NL_BEHAVIOR with some extensions. No new class methods (main functions) are provided for the simulation mode.

The class definition for BASIC_SIMULATOR is the following:

@class NAME_OF_CLASS : BASIC_NL_BEHAVIOR, BASIC_SIMULATOR { \(~\,~\,~\,\) standard behavior options from page \(~\,~\,~\,\) @Criterion list; \(~\,~\,~\,\) additional C++ code };

Resolving mixed flux-grad loading#

One of the main benefits of the simulator is the ability to solve mixed loadings exactly, while displacement based FE solutions are approximate and require iterations in the non-linear case (and therefore desiring a good tangent matrix calculation). The disadvantage is a formulation must be made to solve the mixed rate loading. To address the later, special methods are given in the BASIC_SIMULATOR base class for resolving such a difficulty (this is in contrast to the solution in the class SIMUL_MODEL discussed on pages -). Using the notation \({\bf f}\) for the flux and \(\bf g\) for the gradient, the following forms are allowed. See the developers manual for a description of how these methods are implemented.

CODE

DESCRIPTION

resolve_flux_grad(E, de, dg, de2)

\(\dot{{\bf f}}=\bf E(\dot{\bf g}-\dot{\bf e}-\dot{\bf e_2})\)

resolve_flux_grad(E, de, dg)

\(\dot{{\bf f}}=\bf E(\dot{\bf g}-\dot{\bf e})\)

Example#

Here’s an example of a combined FEM-simulator model with a criterion object.

@Class FEM_SIM_BEHAVIOR : BASIC_NL_BEHAVIOR, BASIC_SIMULATOR {
   @Name example;
   @Coefs    E, poisson;
   @Coefs    R0, H, Q, b;
   @Coefs    alpha, beta, A, k, r;
   @Coefs    dmax;
   @tVarInt  eel;
   @sVarInt  evcum, D;
   @sVarAux  R,j0,j1,j2,chi;
   @tVarAux  evi;
   @Criterion yield, damage;
};